Saturday, December 8, 2018

How to select the right power source for a hobby BLDC (PMSM) motor

If you have a '90 A, 2000 W, 6 to 10S' rated BLDC* motor such as this, do you then need a 90 A, 2000 W, 22 to 37 V power source?

The short(er) answer:


In most cases, no, not even close. Select your power source (battery or mains power supply) based on your own specific requirements using the following three steps:

1. Required Current: The current supplied to a motor controller does not equal the current supplied to a BLDC motor. Motor controllers ('ESC') take a relatively high voltage and low current power source and, though pulse width modulation (PWM), converts it into a low voltage and a high current for use with a motor. This single phase simulation (thanks to Oskar Weigl) demonstrates how a controlled current is supplied to a motor and has typical values for the resistance, inductance and capacitance seen in each part of the circuit. In short, most motors have a very low resistance (i.e. <  0.1 Ohm) and so a high current can be supplied with relatively little power. Therefore, you only need to consider the voltage and total power output of your power source and your motor controller will take care of the rest.

2. Required Voltage: The voltage required from your power source will depend on your motors velocity constant (`K_{V}`) and the the top speed you require. For example, if you required 3000 RPM from a 190 `K_{V}` motor then the power source voltage needed (`V_{PSU}`) is give by
`V_{PSU} = \frac{RPM_{max}}{K_{V}} \times 1.25 = 19.7 V`

The value of 1.25 is a safety margin since `K_{V}` is always measured with no load. Most fixed voltage mains power supplies come in voltage steps of 12, 15, 24, 36 and 48V. Therefore, provided it did not exceed the voltage limit of your motor controller, you would select a 24 V power supply.

3. Required Power: As a rough rule of thumb the peak power (`P_{max}`)  required from your power source will depend on the maximum motor current (`I_{max}`) needed at your maximum RPM as given by:

`P_{max} = I_{max} \times (\frac{RPM_{max}}{K_{V}}) \times 1.25`

were the value of 1.25 is again a safety margin is to account for inefficiencies in the motor and motor controller. Once you know the peak power required you can then select a power supply which meets your needs. At the end of this post I recommend a few different mains powered fixed voltage power supplies.

The remainder of this post will develop a more detailed understanding of when and why BLDC motors draw power.

Estimating power draw

The mechanical power produced by a motor is given by

`P = \tau \times \omega = \tau \times \pi \times \frac{RPM}{30}`

where `\tau` is the motor torque in N.m and `\omega` is its rotational velocity in radians per second. If we assuming for the moment that a motor is 100% efficient then its power consumption can  be mapped as follows

where the values labelling each contour line are the motors power draw. Of course, real BLDC hobby motors have an efficiency far lower than 100%. An electric motor is least efficient at low speeds and at high torque where the winding loss is largest with respect to the mechanical power output. We can estimate the winding losses for a  motor using the following equation:

`P_{loss} = I^{2}R`

Using the 190Kv motor mentioned above as an example, the current required to produce a given torque can be estimated using the motors known torque constant and its winding resistance which I have measured to be 0.0447 Ohm. Combining this power loss with the power output of the motor we can produce a slightly more realistic power map.

All of the contour lines are now moved closer to the left at high torque levels. Its clear that even a relatively small 450 W PSU can produce full torque up to ~1000 RPM or reduced torque up to 5000 RPM.  Note that this ignores any power loss in the motor controller and core losses, which will dominate at higher speeds. However, at these speed ranges and currents both of these losses will be fairly small relative to winding losses and so can be ignored.

If this motor is powered with a 24 V power supply voltage then its not possible to reach all regions of the power map due to the back EMF created by the motor as it spins. The motor can no longer reach a required torque when the back EMF plus the voltage drop across the motor exceeds the supply voltage. Using this cutoff the achievable torque and speed is shown below.
In reality the drop off in torque will be a smooth curve but here it has a 'saw tooth' pattern due to the speed only being plotted at 100 RPM intervals.

It is important to note here that the peak torque in the above power map would require a current of more than 70 A and a loss in the motor windings of more than 200 W. Testing has shown that this is enough to permanently damage the motor windings in about 30 seconds. The steady state torque output of the motor will depend on the cooling provided but for this motor a safe assumption is about 30 A, or one third of its 'peak power' value. This is equal to about 1.3 N.m and is shown by the dashed line in the power map above. The reason that this line is fixed at a constant torque and not at a constant power is that almost all the heat is generated by the previously mentioned winding losses. These losses are dependent upon the winding current which in turn determines the torque.

It can also be seen from the power contour lines that a 450 W power supply is able to provide enough power for any speed and torque up to 4000 RPM at 1 N.m. Rather than simply limiting the motor current for all speeds, and therefore the motor torque, motor controllers with active power management could instead actively limit the current depending on the motor speed, keeping the power draw always below a set limit. This is a planned feature for Odrive Robotics motor controllers.

In order to operate this motor at higher speeds we need a higher supply voltage. The power map for a 48 V supply voltage is shown below.



With a 48 V power supply you would now need to limit your peak torque to less than 0.6 N.m to in order to not exceed the 450 W power rating previously used. Therefore, if you are planning on operating at higher speeds and voltages you will generally need a more powerful power supply.

A few suggestions for power supplies

If you are uncomfortable working with mains voltages then a high current, low voltage mains laboratory bench power supply from a reputable supplier (Manson is a good choice) is the way to go.

If you are comfortable with having semi-exposed mains wiring and in adding your own plug, then any fixed voltage power supply will be much cheaper. I recommend a well known brand, such as the Mean Well SE series. You can find cheaper copies but they tend have lower real world outputs, have noisy always-on fans, poorly implemented protection and lower quality components that may fail sooner or even be a fire risk.

If you are more adventurous and want the absolute highest kW/$ then consider picking up a new-old-stock or used server power supply off ebay. For example, I picked up this 6.5kW 42V server power supply for less than $100 USD delivered. 





These power supplies are commonly used in the RC community to charge batteries but will also work fine with a motor controller in most situations. See this thread for more details. These power supplies can be modified to output slightly different voltage ranges if needed (~ 35 to 50V). The downside of using these power supplies is that the server fan can be quite noisy, and so may need replacing, and that its not always easy to get access to the output. An approach suggested by Macaba on the Odrive Robotics discord server was to drill holes in the case and attach cables to the internal binding posts. 

Image credit Macaba


Also, its worth remember that these power supplies can easily draw enough power to trip your mains breaker and so make sure you have the capacity to run them before buying. 

Provided you have the mains capacity, one of these power supplies should be able to meet even the highest peak power draws of any hobby BLDC motor.

* I'm told that most hobby motors produce a back EMF wave form that is closer to a pure sine wave than that of a traditional brushed motors trapezoidal wave form. Therefore most hobby 'BLDC' motors should more correctly be called permanent magnet synchronous motors (PMSM). This topic will receive more attention in the future.

The spreadsheet used to create the figures in this post can be found here. The contour figures were produced in Origin. If you have noticed any errors in the above article then please let me know.

2 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. When you made the adjusted power map factoring in losses. Is that Just P_max - P_loss?

    ReplyDelete