`Iq_setpoint` much higher than `Iq_measured` when above certain speeds (integral windup)

Hello everyone –

I’m using ODrive to run a small scale dyno and evaluate motors for a robotics application. I’m running into an issue where Iq_setpoint ramps up to the current limit and Iq_measured does not follow. I’ve attached a plot showing what I mean.


This issue is occurring under velocity control mode with a setpoint of ~14.5Hz and above. The ramp is faster at higher setpoints and faster with higher values of vel_integrator_gain – looks like the integrator in the velocity controller is just winding up.

I have a feeling this is just a simple issue with some parameter or limit I’m not setting, but not sure what it is. Any ideas? Appreciate the help!

Sounds like you’re hitting the limit of your bus voltage to me.

Thanks for the reply. My supply was set to 15V. My motor is 100 KV, so 14.5 Hz = 870 RPM = 8.7V of back EMF. I understand I probably can’t use 100% of my bus but <60% seems low. Am I missing something in the math there?

I think the limit is 70 or 80%

Ok I see. Also I neglected to consider the Ohm’s law voltage drop due to the phase resistance, which is quite high for the motor I am using, so 60% all considered makes sense. One of my bearings was shot so running current was higher than normal as well.