I am using FOC to control torque of 220V AC servo (SPMSM) with 36V power supply at low speed (100-200rpm). I tested with some servos (different manufacturers) which has specs as the below table. But I cannot get max torque although i checked current iq = peak current of servo, current id =0. all servo run smoothly so no issue with zero angle. I have no idea why. Do you have any idea?

enter image description here

enter image description here FOC algorithm: trigger ADC each time pwm switch → filter value → clark/park transform → PID id=0, iq=setpoint to get Udq → inverse park → SVPWM.

hardware: stm32 + driver TMC6200 (tried different driver same issue)

  • \$\begingroup\$ Was the max measured torque row added by you? Some spec sheets can be "optimistic". (Also, torque is measure in Nm, not N/m.) \$\endgroup\$ Apr 20, 2023 at 17:09
  • \$\begingroup\$ yes, last row is the results I measured. i updated the picture :) and add actual specs from manufacturer \$\endgroup\$
    – Breezehn
    Apr 20, 2023 at 17:13
  • 1
    \$\begingroup\$ The currents in the spec are likely not peak currents, but RMS currents. \$\endgroup\$ Apr 20, 2023 at 17:30
  • \$\begingroup\$ Ah, I add peak current = Peak torque/torque constant. with your commend, for example 10015, peak current = sqrt(2)*15 = 21A? currently i run 15A, servo get warm quickly. 15A maybe burn it soon :(!!!! \$\endgroup\$
    – Breezehn
    Apr 20, 2023 at 17:51

1 Answer 1


Consideration for choosing a motor:

Your motors are safe to run continuously at rated RMS current at temperatures of -20 to 50 C. Peak RMS current is the current that will provide peak torque, but only for a short time before overheating. At peak current, the motor is still functioning as a motor, but the losses (primarily resistive in the windings) are too high and the motor gets hot quickly. This is largely independent of speed, because the resistive losses are going to rely on current, which is proportional to torque. To get the most power through a small motor, run at its rated speed and torque, and gear down to get more torque at lower speed. If you try to use your FOC to run a small motor at low speed, you still are stuck with its rated torque for continuous operation. This results in a loss in efficiency as the motor's resistive losses (which are converted to heat) remain constant with the torque. So although you are getting less mechanical power out, this does not reduce your temperature rise.

  • \$\begingroup\$ I have a themal sensor to protect it is hot :) \$\endgroup\$
    – Breezehn
    Apr 21, 2023 at 0:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.