Skip to main content
msingh
Senior
July 27, 2020
Solved

Is anyone able to drive a BLDC motor at low speeds? anything below 6 RPM?

  • July 27, 2020
  • 5 replies
  • 2993 views

I am using the X-NUCLEO-IHM08M1 as a power board and NUCLEO-F303RE as a control board. Using an incremental encoder of 1024CPT I was able to drive the motor as slow as 6RPM, even after several attempts I was unable to achieve any lower speeds. When I request any lower speeds the motor stops and goes into the "lock rotor" meaning the motor stops rotating but still draws current.

Thanks In advance

Manpreet

This topic has been closed for replies.
Best answer by msingh

Hi @Imen DAHMEN​ ,

I used position control instead of speed control which allowed to rotate slower than 6RPM, then adjusted PIDs to eliminate overshoots and vibrations, then I just had a bad connection and the motor simply stopped rotating ( I thought it was a firmware issue but it wasn't as it stopped working with the previous version of firmware) .

PID tuning is really a big issue. Personally I do not reccomend the Motor profiler as it is not usefull at all, the parameters should be used from the motor datasheet and PID tuning should be done manually.

5 replies

mscot.1
Associate II
August 12, 2020

Position control mode - AN5464 and set Duration to zero. It works.

msingh
msinghAuthor
Senior
September 16, 2020

Good morning mscot.1,

Thank you once again for your suggestion I have created a project using the AN5464 and the motor is able slower than 6RPM (I think) however I cannot use the "follow mode" as mentioned in the application note. When I set the duration to 0 it should start a continuous rotation if i keep updating the position however the rotor doesn't move at all. Is there any suggestion you have?

I would appreciate your help.

Kind Regards

Manpreet Singh

msingh
msinghAuthor
Senior
September 1, 2020

Hi @mscot.1​ ,

Really appreciate your help. I will try this soon.

Kind Regards

Manpreet

mscot.1
Associate II
September 16, 2020

Sorry, I have not got anything more to offer; I followed the App Note and achieved the motor moving between 2 positions. Then I set the duration to zero and advanced the angle in a loop and it worked. That is as far as I went.

msingh
msinghAuthor
Senior
September 16, 2020

Hi,

would you be kind enough to share the "loop" you have please?

I am able to move between 2 position however I cannot achieve any continuous movement, below is the code I am using.

msingh
msinghAuthor
Senior
September 16, 2020

0693W000003RnxwQAC.jpg

msingh
msinghAuthor
Senior
September 16, 2020

Actually I have identified the issue. THANK YOU VERY MUCH FOR YOUR HELP. MUCH APPRECIATED :)

Have a nice day.

Kind Regards

Manpreet Singh

Technical Moderator
September 16, 2020

Hello @msingh​ ,

Please, let us know how you solved your issue ?

Then, please select the post which is "Best Answer" or mark your post as answered the question.

Best Regards

Imen

"When your question is answered, please close this topic by clicking ""Accept as Solution"".ThanksImen"
msingh
msinghAuthorAnswer
Senior
September 16, 2020

Hi @Imen DAHMEN​ ,

I used position control instead of speed control which allowed to rotate slower than 6RPM, then adjusted PIDs to eliminate overshoots and vibrations, then I just had a bad connection and the motor simply stopped rotating ( I thought it was a firmware issue but it wasn't as it stopped working with the previous version of firmware) .

PID tuning is really a big issue. Personally I do not reccomend the Motor profiler as it is not usefull at all, the parameters should be used from the motor datasheet and PID tuning should be done manually.