# How can a BLDC motor respond to a specific dynamic load demand without changing the supply voltage? [duplicate]

Coming at BLDC motors from the theory side, my understanding has always been that they have a linear curve based on Kv, no-load current, and resistance, for a given applied voltage. Now the thing is, say they have a given "system load", like a propeller, that varies during the operation. So the load demands a certain RPM/torque combination at time A, and then a different one at time B. My understanding was that in order to achieve both combination A and B, it has to vary the supply voltage so that it's linear torque-speed curve intersects this operating point (provided this point lies below it's highest torque-speed curve).

What I can't seem to find is how this works without changing the supply voltage? If I use a PWM controller at 50% (but the supply voltage is the same), is the torque-speed curve really going to have a characteristic curve that responds as if the supply voltage was half? If not, how are these BLDC motors controller for dynamic applications where a specific torque and speed are needed at different times?

If I use a PWM controller at 50% (but the supply voltage is the same), is the torque-speed curve really going to have a characteristic curve that responds as if the supply voltage was half?

More or less sorta kinda yes. It depends on some details of how the driver is implemented, but if the drive truly has a 50% duty cycle, if it does not have much dead time in the gate drive, and if the voltage is brought low in the low parts of the cycle -- yes.

Even when the PWM to the motor is looser the motor drive will still generally be monotonically increasing for increasing duty cycle.

If not, how are these BLDC motors controller for dynamic applications where a specific torque and speed are needed at different times?

They have RPM governors. You need to know the position of the armature with respect to the stator to make a BLDC work, which means you have all the information you need to determine the shaft speed. If you want a constant speed (as with a hobby ESC in "helicopter mode") then you have a control loop that monitors the BLDC zero crossings, times them, and uses that to drive the duty cycle.

• Thank you. I think that first part is what I was looking to be assured about, as a Mechanical Engineer. I want to be confident that using PWM will give us the ability to change lower/raise the torque-speed curve, even if not exactly in a perfect ratio. – spaceprops Jul 1 at 16:29
• Note that if you're commanding a hobby ESC, the "servo PWM" is a very different thing from the PWM to the motor coils. – TimWescott Jul 1 at 18:47
• Why not just use a DC-DC convertor to increase/decrease supply voltage from the bus, vs using a PWM? Is it just too inefficient? An addendum to that question is: on the flip side, why not just have a much higher bus voltage than required (if possible to provide), and then use PWM to achieve any desired voltage below bus? What's the point of "getting the supply voltage right"? – spaceprops Jul 1 at 22:18
• First, those are good standalone questions to ask -- Stackexchange likes nice tidy question/answer pairs. Second, in a lot of ways a motor driven by PWM is a DC/DC converter, using the motor coils as the inductor. An actual converter would be redundant unless the voltages are severely mismatched. Finally, a motor makes an OK inductor for smoothing its own current, but if you have a really high rail voltage then things get inefficient. Ask separately, and someone will expand. – TimWescott Jul 1 at 23:44

Think about BLDC motor in the same manner as it is a permanent magnet brush DC motor. So, if you apply a certain voltage the speed will follow the Kv curve at no load, but when loaded it will settle at the speed where torque characteristics of load and motor intersect. Now, if you lower the voltage also the rpm decrease. Now if you exchange brushes with electronic commutation you get a BLDC, but these switching elements do the same as brushes and additionally you can control the voltage amplitude by means of PWM control.

If not, how are these BLDC motors controller for dynamic applications where a specific torque and speed are needed at different times?

It it done by the use of so called cascaded loop control, where two controllers are used: speed and torque(current). Speed controller senses the speed and its output goes to the torque controller which senses the current, the output of torque controller adjust voltage by PWM modulation.

With combining limits on both controllers you can achieve;

• speed control with torque limit
• torque control with speed limit

Simple BLDC driver doesn't support this, rather it controls the switch sequence (brushes like emulation) and voltage with PWM control. In such case there is no dynamic load compensation in speed.

• I understand that the intersection of torque and speed of the load and the motor is where the system will operate. However, if the desired operating point of the load is a different torque and RPM, my understanding is we would have to change the voltage as the only way of achieving that intersection? – spaceprops Jul 1 at 17:03