BLDC hub motor starting torque

Thread Starter

Osama_Ramadan17

Joined Jan 17, 2018
6
I am designing a BLDC hub motor (48V-500W-15A max)

I have designed a three phase inverter and the motor run normally with smooth rotation and as the motor start running and I apply the load the motor draw more current and every thing is normal.I am using PWM to control the speed

But the problem is that as I apply a load before the motor start to move even a very small load the motor do not start till we reach a high PWM value then the motor draw a very high current spike it reached a 26A then the motor start rotating at a fairly high speed. we run at 10KHz frequency.

So is there is an issue should I take care with at starting the motor on a load or this is a nature response and The only solution is to use very high rating components,,,

The power and drive stages are in the attachments,,

Thank you ,,
 

Attachments

dendad

Joined Feb 20, 2016
4,452
For motor drives, you always need to design for the max current as that is a condition of real use so yes, use very high rating components!
Do you have current limiting and speed feedback built into your circuit?
Set your max current to just enough to get it moving and ramp the PWM down as the speed increases. Your control loop needs to be quick enough to stop the motor runaway.
I like the opto FET drivers. I've not seen them before :)
 

Thread Starter

Osama_Ramadan17

Joined Jan 17, 2018
6
For motor drives, you always need to design for the max current as that is a condition of real use so yes, use very high rating components!
Do you have current limiting and speed feedback built into your circuit?
Set your max current to just enough to get it moving and ramp the PWM down as the speed increases. Your control loop needs to be quick enough to stop the motor runaway.
I like the opto FET drivers. I've not seen them before :)
Thank you for replying ,, so to just make sure that i understand you well ,, in my code i should start from high PWM value to allow the motor to draw the current it needs to start moving and then decreasing the PWM to the value needed ,, and if i do that i will have rush current so i need to use component with high ratings,, is that correct?
 

dendad

Joined Feb 20, 2016
4,452
Thank you for replying ,, so to just make sure that i understand you well ,, in my code i should start from high PWM value to allow the motor to draw the current it needs to start moving and then decreasing the PWM to the value needed ,, and if i do that i will have rush current so i need to use component with high ratings,, is that correct?
Yes. Motors under load take a lot of current to start. Have you ever noticed something like starting a drill press or other piece of heavy equipment and the lights dim a bit? That is the starting current being quite high dropping the mains voltage. Usually the start current is a number of times greater that the running current. The bigger the load, the larger the current and the longer it takes to start.
It is also like trying to push a car. It takes more effort to get it moving that keeping it going.
Do you include current sensing and limiting via PWM in your circuit?
 

Thread Starter

Osama_Ramadan17

Joined Jan 17, 2018
6
Yes. Motors under load take a lot of current to start. Have you ever noticed something like starting a drill press or other piece of heavy equipment and the lights dim a bit? That is the starting current being quite high dropping the mains voltage. Usually the start current is a number of times greater that the running current. The bigger the load, the larger the current and the longer it takes to start.
It is also like trying to push a car. It takes more effort to get it moving that keeping it going.
Do you include current sensing and limiting via PWM in your circuit?
I have a current sensor in the circuit ,, I think about doing the following to limit the starting current ,, as the current start to increase above a specific value i put the PWM to 0 so that the current would drop when but like 50ms delay then again write the PWM to the value I need and so on till the motor start moving ,, but as i test this way i had a very rough and fast current ripples it looks like the 50ms is not in effect at all ,, so now I stopped at this point i do not have the very high rating components and the current limiting technique I used is not working correctly and the motor can not start at a load,,
 

dendad

Joined Feb 20, 2016
4,452
Try a loop to limit the current. Not drop it to 0 PWM, just reduce it. A speed control also is a good addition. If the speed gets over a fixed amount, reduce the PWM. Getting the values right is a bit of a chore, but worth while.
Whet you could do, is ramp the PWM up until it starts to turn, then lower the PWM to keep it just turning.
Build in a current limiter that protects the circuitry and motor my limiting the PWM and shutting it off completely if in extreme overload.
Then control the motor speed by adjusting the PWM.
You have not said if you have included a speed sensor.
What are you using to generate the PWM?
 

Thread Starter

Osama_Ramadan17

Joined Jan 17, 2018
6
Try a loop to limit the current. Not drop it to 0 PWM, just reduce it. A speed control also is a good addition. If the speed gets over a fixed amount, reduce the PWM. Getting the values right is a bit of a chore, but worth while.
Whet you could do, is ramp the PWM up until it starts to turn, then lower the PWM to keep it just turning.
Build in a current limiter that protects the circuitry and motor my limiting the PWM and shutting it off completely if in extreme overload.
Then control the motor speed by adjusting the PWM.
You have not said if you have included a speed sensor.
What are you using to generate the PWM?
Yes I have a speed sensor and i think it has a good accuracy ,, I use PIC16F877A to generate the sequence and the PWM at 10KHz frequency,,
 

dendad

Joined Feb 20, 2016
4,452
If you are reading a pot for example, as the speed control, use that analog voltage to set the PWM.
But, also read the current and subtract the current reading from the pot reading therefore reducing the pot as the current increases. This will give you some protection.
 

Thread Starter

Osama_Ramadan17

Joined Jan 17, 2018
6
If you are reading a pot for example, as the speed control, use that analog voltage to set the PWM.
But, also read the current and subtract the current reading from the pot reading therefore reducing the pot as the current increases. This will give you some protection.
Aha ,, I understand you well ,, Thank you for the help I will try to reduce the PWM instead of writing it to 0 and i hope this can make the performance better ,,
 
Top