Torque controle does not provide expected current values and does not settle

Hello! I am having a bit of trouble doing the charaterization of a motor (D6374) in order to determine its aproximate inertia and torque constant. For the procedure, I have to request that the driver places a specific amount of current onto the motor and then write down its settling speed. The issue that I am having is that it appears as if the current is not placed at the correct values that I require and the acceleration never reaches zero, i.e., the motor speeds up either untill it reaches its speed limit or when it exceeds the limit for the DC Bus voltage.

Here are some of my configs:

controller.config

anticogging:
  anticogging_enabled: True (bool)
  calib_anticogging: False (bool)
  calib_pos_threshold: 1.0 (float)
  calib_vel_threshold: 1.0 (float)
  cogging_ratio: 1.0 (float)
  index: 0 (uint32)
  pre_calibrated: False (bool)
axis_to_mirror: 255 (uint8)
circular_setpoint_range: 1.0 (float)
circular_setpoints: False (bool)
control_mode: 1 (uint8)
electrical_power_bandwidth: 20.0 (float)
enable_gain_scheduling: False (bool)
enable_overspeed_error: True (bool)
enable_torque_mode_vel_limit: True (bool)
enable_vel_limit: True (bool)
gain_scheduling_width: 10.0 (float)
homing_speed: 0.25 (float)
inertia: 0.0 (float)
input_filter_bandwidth: 2.0 (float)
input_mode: 1 (uint8)
load_encoder_axis: 1 (uint8)
mechanical_power_bandwidth: 20.0 (float)
mirror_ratio: 1.0 (float)
pos_gain: 20.0 (float)
spinout_electrical_power_threshold: 10.0 (float)
spinout_mechanical_power_threshold: -10.0 (float)
steps_per_circular_range: 1024 (int32)
torque_mirror_ratio: 0.0 (float)
torque_ramp_rate: 0.009999999776482582 (float)
vel_gain: 0.5 (float)
vel_integrator_gain: 0.0 (float)
vel_integrator_limit: inf (float)
vel_limit: 50.0 (float)
vel_limit_tolerance: 35.0 (float)
vel_ramp_rate: 1.0 (float)

motor.config

I_bus_hard_max: inf (float)
I_bus_hard_min: -inf (float)
I_leak_max: 0.10000000149011612 (float)
R_wL_FF_enable: False (bool)
acim_autoflux_attack_gain: 10.0 (float)
acim_autoflux_decay_gain: 1.0 (float)
acim_autoflux_enable: False (bool)
acim_autoflux_min_Id: 10.0 (float)
acim_gain_min_flux: 10.0 (float)
bEMF_FF_enable: False (bool)
calibration_current: 20.0 (float)
current_control_bandwidth: 2000.0 (float)
current_lim: 60.0 (float)
current_lim_margin: 8.0 (float)
dc_calib_tau: 0.20000000298023224 (float)
inverter_temp_limit_lower: 100.0 (float)
inverter_temp_limit_upper: 120.0 (float)
motor_type: 0 (uint8)
phase_inductance: 2.1585083231911995e-05 (float)
phase_resistance: 0.041853055357933044 (float)
pole_pairs: 7 (int32)
pre_calibrated: True (bool)
requested_current_range: 60.0 (float)
resistance_calib_max_voltage: 2.0 (float)
torque_constant: 0.055133331567049026 (float)
torque_lim: inf (float)

encoder.config

abs_spi_cs_gpio_pin: 1 (uint16)
bandwidth: 3000.0 (float)
calib_range: 0.019999999552965164 (float)
calib_scan_distance: 50.26548385620117 (float)
calib_scan_omega: 12.566370964050293 (float)
cpr: 400 (int32)
direction: 1 (int32)
enable_phase_interpolation: True (bool)
find_idx_on_lockin_only: False (bool)
hall_polarity: 0 (uint8)
hall_polarity_calibrated: False (bool)
ignore_illegal_hall_state: False (bool)
index_offset: 0.0 (float)
mode: 0 (uint16)
phase_offset: 224 (int32)
phase_offset_float: 1.0104387998580933 (float)
pre_calibrated: False (bool)
sincos_gpio_pin_cos: 4 (uint16)
sincos_gpio_pin_sin: 3 (uint16)
use_index: False (bool)
use_index_offset: True (bool)

In order to set the current I am simply using input_torque = 0.055 * current.

In the following example, I am plotting the measured (blue) and setpoint (orange) currents.This data was obtained after sending the command input_torque = 0.055 * 3

image

If I understand correctly, the controller is limiting the setpoint current in order to not exceed the speed limit. But in this case, the speed will not settle on the values that I actually require. Furthermore, if I happend to increase the speed limit, the DC Voltage is exceeded.

Is there a specific manner to set the current in order to not exceed the speed limit but at the same time guarantee it reaches it maximim speed? Are there any resources where I could find more technical information regarding this specific motor?

Hi,
the current/torque is proportional to the acceleration, so I don’t understand why you expect a settling speed.
If you want to measure the torque, you can do that with a lever on the motoraxis and a scale to measure the force.