Not getting full motor torque

Hi, I’m developing a prototype that is using a B-G431B-ESC1 Discovery kit + SimpleFOC + T-Motor Gl40, and the issue that I’m having is that I’m not getting the max stall torque out of the motor.

I’m using a setup with a lever-arm and a scale to measure the stall torque, and I’m only measuring about .28 Nm, while the max stall torque .73 Nm.

The setup uses a power supply at 20V, the motor voltage limit is 18V, and I’m using voltage torque control, and I’ve tried both SinePWM and SpaceVectorPWM for foc_modulation. The encoder is a AS5147U that I’m using PWM to get the initial angle, and then using the AB encoder afterwards.

Hey @metainf,

I think the phase resistance of your motor is too high for you to get full torque (the rated 0.72 Nm @ 5A) with 20V.

How much more do you think I would need? If its roughly linear, then that would be we would need over 36V right? The phase resistance in the spec sheet is phase to phase by the way.

Also, could someone explain how DC current is calculated and what it means? I’m not measuring anywhere near the same current on the supply compared to DC current from getDCCurrent. I do have low side current sensing, and when I do the power calculations for each phase, they add up to the same power that the DC supply is providing.

I think it should be linear but you should want to test slowly and verify the results. Alternatively, a motor with smaller resistance is ideal for high torque applications.

The DC current the library calculates is NOT the same as the bus current, in fact the bus current has a non linear relationship with respect to torque. The DC current from the library is an estimate of the current through the phases as if the motor was a regular DC brushed motor, and it does have a linear relationship with torque.