Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Exclusive Technology Feature

ISSUE: August 2014

Inductance-Measuring Algorithm Speeds Start Up Of Sensorless BLDC Motors


by Jiri Ryba, STMicroelectronics, Prague, Czech Republic

In a sensorless brushless dc (BLDC) motor control application, the rotor position must be known or the rotor
must be aligned to a known position to ensure successful motor start up. Aligning the rotor to a defined position
is the most widely used method to start a motor. Sounds simple enough.

However, there are disadvantages to this method: it is slow, and the motor is vulnerable to undefined
movement during rotor alignment.

In this article, we will examine a method to detect rotor position in mere milliseconds as opposed to several
hundreds of milliseconds. This method is based on an inductance-measuring algorithm that ensures the rotor
starts in the right direction. Specifically, this algorithm is based on inductance variations due to saturation and
geometrical effects.

The proposed method detects saturation in synchronous permanent magnet (SPM) motors by applying high
current to the motor for a very short time. And the simplicity of the algorithm provides a low cost way to
safeguard the start-up of sensorless BLDC motor control applications. Such a method can detect the saturation
effect on both solid rotors and rotors with salient poles.

Some sensorless vector control applications use salient poles detection to get rotor position during startup and
low speed, but the associated algorithms are too complex for startup of simple BLDC applications. The detection
is mostly based on high-frequency signal injection.

Algorithm Background
The algorithm is based on motor inductance variation. Influences on the variation are saturation, rotor salience,
and differences between the direct-axis (d-axis) and quadrature-axis (q-axis). The variation depends on the
motor construction, in particular, the rotor construction.

The inductance variation caused by magnetic saturation is present in all motors. When current producing flux is
applied in the d-axis, the total motor flux is increased, and due to magnetic saturation, the inductance is
decreased. An example of the inductance variation based on rotor position relative to the applied voltage vector
is shown in Fig. 1. The minimal inductance is in the direction of the d-axis of the rotor.

Fig. 1. Inductance variation is determined by factors such as saturation, rotor salience, and
differences between the d-axis and q-axis. These factors are heavily influenced by the
construction of the rotor.

Several methods exist to detect the rotor position based on inductance variation. The main issue, though, is
sensitivity—the difference could be too miniscule to detect. In that case, we need to detect the initial rotor
position only, and we can increase the sensitivity in two ways. One is to set the current high enough to reach

© 2014 How2Power. All rights reserved. Page 1 of 5


Exclusive Technology Feature

measurable saturation. Another is to repeat the measurement to increase the ratio between useable signal and
noise.

The proposed method, which we implemented and tested on an STM 8-bit MCU, is based on the differences in
current increase when different static voltage vectors are applied. The simplified block diagram is shown in Fig.
2. The six different voltage vectors are applied, while the current rise is calculated for each of them as
illustrated by the graphs in Fig. 3. In fact, it should be enough to calculate rotor position by using the
measurements of three axes shifted by 120°, but the additional measurements provide higher signal-to-noise
ratios.

DC-Bus

Vdc
Idc
trigger
ADC
Speed Startup ADC
Required Control

wr +
Voltage Over
v PWM 3-phase
PI Ripple Current
we Cancellation
generation
protection
Power Stage
-
Speed
wm
Controller
PWM Interrupt

Motor Speed Period qm Position


ADC
Calculation Calculation Recognition
tc

Timer Interrupt Capture Interrupt


BLDC

Fig 2. Simplified block diagram of a sensorless BLDC application with mentioned startup.

Fig. 3. Detection of motor current rise in response to the application of different static voltage
vectors.

© 2014 How2Power. All rights reserved. Page 2 of 5


Exclusive Technology Feature

Looking at the graph on the right in Fig. 3, in the first step, voltage is applied in the direction of phase U. The
current of the motor is sensed at two defined times—t0 and t1—as shown in the graph on the left. As the motor
is magnetized during such measurements, the demagnetization phase should commence.

To speed up the demagnetization process, the opposite voltage vector is then applied. This means that if the
first applied vector is in the direction of phase U, then the next vector is in the direction –U.

Since the next step is to move to the subsequent phase, the following vector would be in the direction of –W. In
this case, the step is 240° instead of 180°, so the demagnetization process will be slightly slower. As soon as
the current in the required phase is again positive, the two new currents are sensed with exactly the same time
difference as for phase U. These steps are repeated for each of the six applied voltage directions.

Experimental Results
The real measurement is shown in Fig. 3. The whole procedure took 2.5 ms in the tested application.

Fig. 4. Validation of motor start-up algorithm through bench measurements.

The current rise is calculated for each applied voltage vector:

Then, the current rises of the opposite vectors are subtracted. Such a calculation eliminates not only noise, but
also the direct component.

© 2014 How2Power. All rights reserved. Page 3 of 5


Exclusive Technology Feature

Finally, we have only three values representing rotor position. In fact, it is three-phase systems that could be
transformed by the Clarke transformation to the orthogonal system (𝞓Iα, 𝞓Iβ). For example:

The vector angle could then be obtained by a tabular method. Typically

As the has infinite value, it is better to use the table for instead, which is a nearly linear function.

The measurement shown in Fig. 5 represents the measured current rise in relation to the rotor position.

Fig 5. Measured rotor position. The parameters _diU, _diV, and _diW are the calculated current
increases in the three axes shifted by 120°. Position represents the aligned position of the rotor,
actual position represents the position obtained by the algorithm, and rotor position is the
obtained position sectionalized to six values.

The rotor position was detected at 180 different positions of the rotor to confirm the algorithm sensitivity. First
the rotor was aligned to the required position, and then the algorithm for rotor position detection was executed.
A time delay was inserted between rotor alignment and algorithm execution to ensure motor demagnetization.
This process is repeated for different rotor alignments, while each position step is approximately 2° electrical.

The rotor position sectionalized in 60° electrical resolution is usually enough to start the motor. However,
sometimes when a motor starts into a heavy load, the knowledge of rotor position may not be enough for a
successful sensorless start.

The successful motor start-up could need a reproducible torque/speed ramp. Typically, the BLDC application
uses only six different voltage vectors, which can be applied on the motor. In this case, the angle between
actual rotor position and first applied voltage vector is at a resolution of 60° electrical. This limitation causes a
different progression of torque during startup. If this limitation causes startup instability, it could be suppressed
by sinusoidal startup or fast pre-alignment in the sector of 60° electrical. If this is the case, a pre-alignment is

© 2014 How2Power. All rights reserved. Page 4 of 5


Exclusive Technology Feature

needed, so that the commutation step always has the same start conditions. In this way, the motor can be
aligned to a closed phase or to first phase in the required direction.

Conclusion
Rotor position detection is based on relative values of inductance variation. It allows successful detection of
rotor position independent of temperature and motor parameters. Some applications using six-step
commutations may need additional rotor alignment to 60° electrical granularity for reproducible startup. As the
method is based on relative values, the variation of motor parameters does not affect the algorithm.

A major change of parameters (for example, different types of motor) might require an adaptation of the
algorithm for concrete conditions to ensure that correct current values are applied to the motor. Nevertheless,
the total startup time is significantly reduced, and the rotor direction is always guaranteed—leading to safe and
worry-free motor operation.

References

1. “Position and Speed Control of Brushless DC Motors Using Sensorless Techniques and Application
Trends,” by José Carlos Gamazo-Real, Ernesto Vázquez-Sánchez, and Jaime Gómez-Gil, Sensors
(Basel). 2010.

2. “Sensorless Speed Estimation of PMSM near Zero Speed Using Online Short Time Fourier Transform
Ridges,” by G. El-Murr, D.Giaouris, and J.W. Finch, March 22, 2007.

3. “Determination of direct and quadrature axis inductances of synchronous reluctance motors with
allowance for cross saturation,” by Shu Yamamoto and Takahiro Ara, 1 SEP 2004 DOI:
10.1002/eej.10377.

4. “A New Starting Method of BLDC Motors without Position Sensor,” by Wook-Jin Lee and Seung-Ki Sul,
School of Electrical Engineering and Computer Science, Seoul National University, Seoul, Korea:
IEEE2004.

About The Author


Since 2003, Jiri Ryba, Ph.D, has been an application engineer at STMicroelectronics. His
focus is currently on 32-bit PPC-based microcontrollers. Before he joined
STMicroelectronics, he worked for Motorola focusing on Motor Control applications. He
produced several technical papers and participated in two patents. In 1999, he attained
his Honors Degree at Electrical faculty C.T.U Prague, Czech Republic, and did his post
graduate work in electrical machinery, apparatus and drives, concluding with a Ph.D.
Thesis titled “AC/DC Converter with Sine Wave Input Current.”

For further reading on motion control, see the How2Power Design Guide, select the Advanced Search option, go
to Search by Design Guide Category and select “Motion Control” in the Application category or select “Motor
drives” on the Power Supply Function category.

© 2014 How2Power. All rights reserved. Page 5 of 5

You might also like