cancel
Showing results for 
Search instead for 
Did you mean: 

Having trouble using the torque mode in the ST MCSDK

MotorRunner
Associate II

hello there!

I was working with the torque mode in the ST MCSDK and encountered a problem I am unable to figure out so far.

if I want the motor to run at a specific iq while id is 0, if the motor is loaded eveything works fine as expected, but if the motor doesn't have load on its shaft, the motor begins to accelerate harshly(above its nominal speed!) and I get the speed feedback error.

is it NORMAL?! I don't know how the torque mode exactly works, so any help is appreciated!

I know it may be due to the torque mode itself, but I want to limit speed of the motor to its maximum nominal speed when the motor is unloaded

how can I overcome this problem guys?

thanks everybody!

4 REPLIES 4
Gael A
ST Employee

Hello MotorRunner,

Have you looked at this post, especially the second reply I made ? If it doesn't help you, I will be happy to answer your remaining questions.

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

Hey @Gael A 

Thank you! I guess it really solved my probelm. Now I understand how the torque mode works, but I still got a question.

Is there anyway to limit the speed of the motor instead of reducing the torque reference drastically when the motor is unloaded?

I see the motor wants to rotate at a speed which is far beyond its maximum nominal speed in a short time even though I set the ramp time to something like 5Secs.

Here is my problem, in my application, the motor starts rotating when we got load on its shaft, but it could be unloaded at some point and I want the speed of the motor to be maintained at a maximum speed  and reach that smoothly.

To clarify even more, when want the firmware to detect the unloaded situation and not allow the speed of the motor to exceed a predetermined value

I am looking forward to heraing from you, Thanks:)

Hello MotorRunner,

I don't understand why you don't use Speed Control in that case. You would just have to input your maximum speed as reference and the system will do its best to maintain it, only slowing down when the resistive torque is too high. When the system gets unloaded, it will nicely settle towards your reference speed, depending on your PI tuning.

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

Hey @Gael A 

You are right, sorry for confusion

My main goal is to have a wide range of control over the motor. Imagine somehow I want to control the power consumption of the motor( constant power in different situations of the load)

its speed could only vary from 200 rpm to 600 rpm. Using the MC_ProgramSpeedRampMotor1() function is not efficient because it changes the speed of the motor by 1.

In my application, even 1 rpm is of great importance( the power consumption rises significantly) I am looking for a solution which I can control the currents apllied to the motor ( consider Iq varying from 1500 to 9000 in s16 unit, more preferable for me compared to controlling speed) this is why I don't use the speed control mode in my case

I couldn't come up with any better idea, so your help is very appreciated