cancel
Showing results for 
Search instead for 
Did you mean: 

Low Speed Issues w/ Steval SPIN 3202

nmamore
Associate II

I have driven my 3-Phase BLDC motor at speeds greater than 200RPM with great success. Driving at lower speeds has resulted in decreased performance. I find that the motor will run for a little, then drop to zero RPM for some time, and then overshoot the desired RPM and repeat. I am using Hall Sensors in my application, and using the PID parameters generated by the workbench. Any help is appreciated.

1 ACCEPTED SOLUTION

Accepted Solutions
Mathieu Casties
Associate II

If you control your motor in speed mode, your iq reference actually changes you just don't see it. The advanced panel is not configured by default to update this value that's why the displayed value doesn't change. If you want to monitor it in this panel you must :

  1. go to the panel Registers
  2. set the "torque reference" update period to 200
  3. click on the update icon to validate

0693W000005ArrDQAS.pngAnyway, I'm not sure that this value is relevant for you to configure your PI in speed mode.

Decreasing your your Ki should remove the oscillation at some point .

Is it possible that the oscillation come from the motor load ? what is your application?

Maybe you could also share the speed response using the plotting functionality to give more information.

Best Regards,

Mathieu C

View solution in original post

7 REPLIES 7
Mathieu Casties
Associate II

Dear nmamore,

it seems that your speed regulation loop is under-damped. You should try to:

  • decrease your Ki
  • increase your Kp

you can modify these values on the fly without reprogramming by using the motor control monitor in advanced mode. You can also use the plotting functionality to visualize the speed response. 0693W000005AGtvQAG.pngBest Regards,

Mathieu C

nmamore
Associate II

Still struggling a bit. One thing I am noticing is that my Iq reference never changes. Based on how FOC works, shouldn't the Iq reference be changing as the speed changes since it is set by the speed controller PID loop?

Mathieu Casties
Associate II

If you control your motor in speed mode, your iq reference actually changes you just don't see it. The advanced panel is not configured by default to update this value that's why the displayed value doesn't change. If you want to monitor it in this panel you must :

  1. go to the panel Registers
  2. set the "torque reference" update period to 200
  3. click on the update icon to validate

0693W000005ArrDQAS.pngAnyway, I'm not sure that this value is relevant for you to configure your PI in speed mode.

Decreasing your your Ki should remove the oscillation at some point .

Is it possible that the oscillation come from the motor load ? what is your application?

Maybe you could also share the speed response using the plotting functionality to give more information.

Best Regards,

Mathieu C

0693W000005AwTBQA0.jpgMathieu,

Thank you. I realized shortly after I posted that it was the value from torque control which is why it wasn't updating in the workbench. To update you on what I've noticed, my performance is better after adjusting the PWM and FOC Execution rate. I think it definitely needs some more adjusting, but I am confused as to what I should actually be setting values to. I attached my drive settings as a picture. PID Parameters still need work, but I want to ensure my drive settings are proper before diving in too deeply.

On a slightly unrelated note, are you aware of an easy way to get info from the register menu? I know it updates the register based on the period, but I was wondering if there is a way to dump that info to some sort of log file?

Thank you for all the help thus far.

Mathieu Casties
Associate II

Your settings seems correct, you can increase the execution rate, but if you see the error "FOC duration" occur, it means you increased too far.

Monitoring registers in real time is limited by the uart speed. The solution is to send the signal value to a DAC and connect an oscilloscope to the pin and read the value.

This functionality is already available on the workbench and easy to do:

  • on the main panel, click on DAC functionality
  • select debug and the signal you want to monitor
  • re generate the project

You should then be able to monitor the signal on the DAC pin (note that you can monitor to signals at the time).

I hope this helps,

Best regards,

Mathieu C

Dear @Mathieu Casties​ ,

I am using the IHM08M1 and NUCLEO-F303RE to drive a Maxon motor with 1024 incremental encoder using position control. I have managed to achieve a good standard driving speed ranges (I am using position control because I couldn't drive the motor lower than 6RPM with speed control) however I feel it could have a better performance. Do you think increasing the resolution count to 4096 can help achieve a smoother rotation at very low speeds (below 1RPM)? Is it better to have a high or low PWM frequency? You mentioned to increase the execution rate however my position control execution rate is set to 0.5ms and when I increase this the performance decreases.

Many thanks in advance

Kind Regards

Manpreet Singh

Laurent Ca...
Lead II

Dear @msingh​ 

If you have a new question, it is better to post a new message to open a new thread.

Best regards

Laurent Ca...