Can not get maximum torque (stall torque) when iq is maximum

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 bellow 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?



Welcome to the forum.

What version of the SimpleFOC library you use, what is your MCU/Driver/Sensor/Servo combo hardware (post exact specifications/links to hardware), also, please post the actual code you used to drive the servos.

Pictures/videos of the setup would be also very helpful.


PS One thing I noticed, your servos are rated 220V but you drive them with 36V, did I understand this correctly?

I used STM32 with TMC6200 with servo from china (10010, 10015). I dont use FOC library.

our servos are rated 220V but you drive them with 36V, did I understand this correctly? => yes correct. i just use with low rpm

I understand. This forum is for SimpleFOC library and you may not get much help on closed proprietary solutions. Your best approach would be to contact the manufacturers and the developers of the library you used.

May be someone else can help here, you never know.

One small thing I would like to point out is that power = voltage * current so if you are using a servo rated at 220V and driving with 36V you will never be able to match the specs. I could be wrong on this, however.


i think they arent much different. the developer just follows FOC algorithm.
trigger ADC each time pwm switch → filter value → clark/park transform → PID id=0, iq=setpoint to get Udq → inverse park → SVPWM.

Of course. If you believe they are not that different, please download the source code for SimpleFOC and investigate where the problem is by experimentally comparing the behavior between the two solutions using the hardware you have.


1 Like

it is a good idea :). i will try it.

1 Like

From your images, you show that the measured torque is higher than the rated torque. So what is the issue?

For example 10015, peak torque is 25Nm, with torque constant = 1.67. If i control current iq= 25/1.67 = 15A, the motor torque must be 25Nm right? but actual i measured it just 18 Nm.

But, that is peak torque. How are you measuring it? What is the timescale for the definition of “peak”?
Using a torque wrench or some digital gauge might only show the rated torque after the peak force is disspated.

My manufacturer told me it is the maximum torque under load or in acceleration/desecration. I used a wrench with a loadcell to measure.

1 Like

Those are interesting motors none the less. Have you tried using a higher resolution magnetic encoder with them, instead of the Hall effect type latching ones?

Seeing the Kv konstant is around 100, what speed can you achieve w. 36v & FOC?

Is it possible to get those motors bare-boned without hall-effect sensors. I would love to experiment on those :nerd_face:

How is the pole-pair count ?

Yes, used it with higher resolution encoder already.
It has 4 pole pairs and can reach 250rpm at 36v

Yeah, I’m with valentine. The manufacture is the one to ask about this stuff, man. People here might have the knowledge in some respects, but it’s definitely not the optimal place to ask this question.

I dig the temptation to use a board that supposedly does things for you, but this is just the tip of the iceberg with problems. I went through that too, I tried several different motor control boards. I don’t know what’s wrong with this world, but companies just don’t do a good job, basically, except if you are lucky for a very particular situation. Most of the boards I tried couldn’t even get many motors to turn at all, never mind do the other things I needed.

If you were using simpleFOC, this situation could be resolved in one of several ways. You could set the electrical angle to zero, measure the current and then use the wrench to determine the stall torque reliably by trying to rotate the motor. I doubt you can do that with the board you have.


I already worked with them but still haven’t solved it. I will use simplefoc to test to see :).

1 Like