Properly turning senseless mode

I’m currently running a ducted fan from odrive and seem to be running into issues with the top speed I am able to achieve.

motor is a dr mad thrust 3900KV

I can change the odrv0.axis0.controller.set_vel_setpoint between 0 and 4000 and get different speeds but any value above that has no change on the motors speed.

odrv0.axis0.motor.config.pole_pairs = 3
odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION
odrv0.axis0.motor.config.pre_calibrated = True
odrv0.axis0.config.spin_up_current = 10.0
odrv0.axis0.config.spin_up_acceleration = 1000.0
odrv0.axis0.config.spin_up_target_vel = 1000.0
odrv0.axis0.controller.config.control_mode = 2
odrv0.axis0.controller.config.vel_gain = 0.01
odrv0.axis0.controller.config.vel_integrator_gain = 0.05
odrv0.axis0.controller.config.control_mode = 2
odrv0.axis0.controller.vel_setpoint = 400
odrv0.axis0.sensorless_estimator.config.pm_flux_linkage = 0.0004922

odrv0.axis0.requested_state = AXIS_STATE_SENSORLESS_CONTROL

am I missing any part of the set up for sensorless or have any part drastically wrong.

I tried to set up a new motor and drive with these parameters to match the first one and it starts the pinup then loses a step and starts to slowly turn and vibrate. even though the motor is the same as the previous one does it need seperate tuning rather than reusing the previous values?


Hi, regarding your speed, I think you’re hitting the odrv0.axis0.controller.config.vel_limit. Try increasing the setpoint here.

I would expect a motor to be slightly different from an identical model.

thanks for your reply. the vel limit was already set fairly high but I discovered the problem was due to odrv0.axis0.controller.config.vel_gain and odrv0.axis0.motor.config.current_control_bandwidth. they both needed to be lowered and I set the vel_gain to 0.001 and the control_bandwidth to 100. Oskar recommended not going below 50 on the bandwidth.