Load torque control BLDC

Good day folks,

I want to implement a motor torque control. Instead of controlling the torque generated by the motor, I want to control the load torque. Lets say I have a rope connected to the motors shaft. On the other end of the rope I have a spring. Now I want to control the resulting load torque. The provided measurement hold rpm, Current and Voltage. Is it possible to calculated the existing load torque using the measurements?

Thanks

Torque is proportional to current.

The torque generated by the motor is the load torque (less a little friction).

BLDCs are more complex to deal with than brushed DC motors but the same basic principles apply.

Thanks for the reply,
The torque generated by the motor is only equal the load torque when it is not moving. If it is moving then they are not the same, right?

Thats what "less a little friction" means... For a brushless motor the friction can be quite low

What is with the Inertia?

Yes, if the speed is changing then the torque reflects that too. There is a limit to torque control for
rapid acceleration, but you can model the acceleration and compensate for it (advanced servomotor
drivers will do this).

In a system with low moment of inertia you typically wouldn't usually worry about this. In a system
with high moment of intertia you have a problem responding quickly to anything!

Hey,
and how would you implement an current control? I haven't had any luck with the measurment of the current. I used a ina219, but it ripples a lot, even after low pass filter.

You implement a PID loop to set the drive PWM given the current error. Unless you are using too low a
PWM frequency the current ripple will be relatively small - but you typically need to measure the current at a fixed
point in the PWM cycle to avoid aliasing the PWM frequency into your current measurements. Thus running the PID once per PWM cycle is a common and simple approach - drive the loop from the PWM timer interrupt perhaps? Arduino ADC is pretty slow for this though, you might need to compromise. Typical motor PWM
rates are 16kHz, 8kHz, 4kHz (lower frequency for larger motor).

Low pass filtering in a PID loop usually causes instability - don't do it!

BTW you seem to think the torque developed by the motor is different from the load torque? How can that
be if there is a single shaft between them?