Sensorless brushless DC motor - an explanation


A common configurations for sensorless brushless DC motors is a three phase stator winding with a permanent magnet rotor. The rotor may be inside the stator (inrunner) or outside the stator (outrunner). These types of motors are often used floppy disk drives, hard disk drives, CD drives, and electric models (cars, boats, planes, helicopters, multi-rotors) to name a few.


Fig 1:

Fig 1 shows a example, a NTM1312-2400 outrunner by Hobbyking, about 13mm in diameter, about 6g mass, and rated for 40W.

Fig 2:

Fig 2 shows the internals of the motor. The permanent magnet rotor has 6 pole pairs and 3 x 3 stator poles. It is the permanent magnet poles that determine the relationship between rotational speed and drive frequency, and the fractional winding poles are a measure to reduce cogging, to reduce speed and torque ripple.

For the purposes of this article, lets consider that the three phase winding is arranged in a wye, Y or star configuration, so individual coils are divided into sets of three adjacent coils, and the first coil in each set are wired in series, and so on for the second and third coils of each set. The start of each series connection is taken to an external wire, and the ends of each series connection are connected together.

Fig 2a:

Fig 2a shows a winding diagram for a 9S12P motor in Y configuration. Actual winds might be more than a single wire as illustrated, two or more wires may be wound in parallel to obtain the desired current rating and packing into the slots.

Note that the pitch of the permanent magnet field is different to the stator, this is known as fractional pitch.

Electronic speed controller

The motor is usually controlled by an electronic speed controller (ESC).

Fig 3:

Fig 3 shows an example 6A ESC (HK 261000001), it is 15mm wide (top to bottom in the pic). This example also contains a battery eliminator circuit (BEC) to provide 5V for other electronics (servos, receivers etc). The larger red and black leads on the left connect to the battery, the smaller red, black and white leads at the left are the servo input signal to control motor speed, and the three red leads on the right go to the motor.

ESCs vary in their implementation, and most contain proprietary magic held to give them an advantage. The proprietary magic includes algorithms to timing, startup, low battery management etc. The features are often customisable or programmable. Most are programmable through the servo input, and some have additional dedicated programming hardware that is quick and convenient.

Fig 4:

Fig 4 shows an ESC programming card (though not to suit the ESC in Fig 3). The programming protocols are not standard, nevertheless some cards program a lot of devices, possibly because many devices come from just two sources and possibly due to IP theft (very big in China).

The ESC is usually a pulse width modulated (PWM) driver that at any instant may connect the power supply +ve to one wire, -ve to another wire and float the other wire, float to mean not driven high or low but there may be circuitry attached (eg snubber diodes) that may permit current to flow under some circumstances.

Brushless DC motors need to commutate the coil drive to alternate the magnetic fields in time with the rotating permanent magnet rotor. Some motors use magnetic sensors to provide that information, but this article describes a sensorless method that uses the back EMF induced in the motor windings to control drive commutation.

The PWM drive will commonly be at a constant frequency, eg 8kHz or period of 125µS, and the width of the pulse used to control the energy delivered to the motor. Drivers will tend to modulate either the high side of the motor (+ve supply), or the low side of the motor (-ve supply), or possibly both. In summary, for a low side modulated 8kHz PWM controller, in every 125µs PWM interval for part of the interval, one wire is +, the second wire is - and the third floats, and for the rest of the interval, the first wire is still +, the second wire is +, and the third still floats.

There is good argument to run the PWM drive at 16kHz for this particular application (6 pole pairs and 12,000rpm), but this is how it was configured out of the box as almost ready to fly.

Fig 5:

Fig 5 shows the voltage waveform on wires 1 and 2. Just as the waveform on wire 2 is similar (apart from the phasing of the PWM pulses) to that on wire 1 but delayed by 1.7div, then so is wire 3 similar delayed a further 1.7div.

The motor is running at 1.5A DC on 12V, so 18W input power and about 12W output power at typical efficiency.

Key events shown in Fig 5 include:

  1. At 3.05div wire 3 is + (it is not shown, trust me ), wire 1 is driven to - and current passes through coils 3 and coil 1 in that direction.
  2. At that moment, wire 2 is floating and the voltage on wire 2 is the sum of the star point voltage (which is half supply at this time) and the voltage induced in coil2 (back EMF). When the voltage on coil 2 decreases to half supply, the voltage induced in coil 2 is crossing through zero and commutation timing actions in the controller are triggered.
  3. After 0.85div at 3.90div, the controller commutates and wire 2 is pulsed to ground (wire 3 still +) and current flows through coil 3 and coil 2 in that direction.
  4. After 0.85div at 4.75div, the controller commutates and wire 1 is driven +, wire 2 is pulsed to ground (wire 3 floats) and current flows through coil 1 and coil 2 in that direction. Note that current flows through coil 1 in the opposite direction to step 1.

And so the process repeats until over a full cycle, all coils have carried current in both directions for part of the commutation cycle. The torque increment due to a coil depends on the voltage applied, and the duration of the ON period of the PWM cycle, and the inductance and resistance of the motor winding.

Motor current waveshape is determined by the PWM drive, rotational speed, and inductance and resistance of the motor. Needless to say that this method of driving the motor results in pulsating winding current which has higher heating effect than the DC value of the current. Efficiency for some implementations can be quite low, towards 50% for some RC model motors where efficiency is traded for low mass.

The zero crossing at 3.2div is followed by commutation at 3.6div, approximately 0.4div or 28° later. This angle is important and is one of the controlled parameters. The clever part is that the sensed zero crossing follows the speed related distortion of the magnetic field due to rotation, and so it is self compensating to some extent. Some controllers allow user adjustment, lower angle being used for faster inrunners, and larger angle for slower outrunners usually optimised for starting and efficiency. This is somewhat akin to adjusting the brush angles for lower sparking and improved efficiency on a motor equipped with adjustable brushes, compensating for distortion of the magnetic field due to rotation of the armature.

The commutation cycle must be synchronous to the actual rotational speed of the motor, the controller ensures that using the zero crossing detection discussed at step 2 (though the smoothing algorithms may be complicated). If the motor slows under load, the controller lengthens the commutation cycle time. So from Fig 5 showing 1.27ms cycle, 787.4Hz, and knowing the motor has 6 permanent magnet pole pairs, we can deduce the rotational speed as 787.4/6*60=7874rpm.

Now the scheme might seem simple, but the system so far described is not self starting. With a stationary rotor, this is no back EMF to sense the position and so the controller has to implement an open loop method of accelerating the motor to a speed where there is adequate back EMF to drive the position sensing logic, then switch to synchronous drive. Again there is scope for proprietary algorithms, though community developed code exists for some devices.

These motors are rated with a Kv factor, which is the rpm per volt (yes, Kv is an irrational an unconventional unit designation).

Fig 6:

Fig 6 shows the voltage waveform on wires 1 and 2 when a certain 12 pole motor is rotated.

From the measured data, rotational speed is 95.06/6*60=950.6rpm and voltage is 0.92/2=0.46V so Kv=950.6/0.46=2067, the motor is actually rated at 2300Kv so the magnets in this motor are probably a little stronger, clearances a little less or less likely that there are more turns on the winding.

Fig 7:

Fig 7 shows the same motor using wii-esc v2.1 firmware which uses a higher PWM rate of about 18kHz so there are more PWM cycles per commutation cycle for the same rotational speed. Note that wii-esc uses delta-sigma modulation so the PWM rate is not fixed.

Fig 8:

Fig 8 shows an expanded view of the drive waveform shown in Fig 7.


The article should not be seen as a recommendation or endorsement of any products.

The products shown in this article are from Hobbyking who manufacture products under a range of brand names, possibly creating and illusion of competition. Their products tend to be low in cost and low in quality, products are not good value when you have to throw a proportion of them in the rubbish because the cost of returning them exceeds the value of the replacement which is only available after excessive delay, many follow ups and haggling. If you see the claim [o]ther stores will force you to ship the product back to China in full retail packaging every time! Hobbyking's warranty service is professional, fair and fast, don't believe it, it doesn't work that way in my experience... I get better service from most eBay sellers!



Version Date Description
1.01 28/04/2013 Initial.

© Copyright: Owen Duffy 1995, 2021. All rights reserved. Disclaimer.