Speed control of BLDC motor based on hall-effect sensors

04. November, 2009, Autor článku: Suchánek Miroslav, Elektrotechnika, Študentské práce
Ročník 2, číslo 11 This page as PDF Pridať príspevok

This paper is dedicated to methods of high resolution velocity and position estimation using low resolution position sensors like binary Hall effect sensors. Methods of estimation based on Phase Locked Loop was described and verified. It was considered a several options for decreasing a vector tracking error for example a harmonic decoupling of position vector or parameters adaptation. Speed control loop with IP controller and filtering the actuating signal was designed by Pole Placement method. Both simulation and experimental results confirmed high quality depending on rotor speed.


The idea of use Hall effect sensors with very low resolution for controlling a brushless motors was first developed by Corzine and Sudhoff (1996), and later by Morimoto et al. These authors evolved two different solutions how to obtain high resolution velocity and position estimates from binary Hall sensors with typically resolution of 60º electrical. In the first solutions a hybrid state filter based on differential equations of a rotating vector is used to estimate a rotor synchronous reference frame transformation terms by using the rotor average velocity between two sensor transitions.

Second solution is using linear extrapolation to estimate a rotor position. Disadvantage of both approaches is using the average velocity because the sensor misplacement or inaccuracy adds a significant noise. The other group of methods of determining a rotor position is called sensorless methods. In these approaches the back electromagnetic field (EMF) is measured in the undriven coils to estimate a rotor position. These solutions require an exact knowledge of the electrical parameters such as phase resistance, inductance and flux which can be different in vary working conditions.

Different limitation was described by several authors, mainly by Tesch (2005) and Capponi et. al. when the estimated position is processed from a simple vector model ejΘel. The observer tracks the quantized position vector Hα,β which have a additional harmonics. Tesch (2005) described a method which modelled a quantized rotating position vector as a continuous rotating fundamental vector included with number of additional harmonics. Harke et. al. (2008) mainly addicts to compensate mentioned limitation by harmonic decoupling of rotating position vector and observer gain scheduling.

Vector-trackig observers

Harke et al. developed method furthermore in which the Hall sensor binary outputs are transformed into the spatial rotate vector showed on the fig. 1. Vector turn around the hexagon in quantized 60º steps as the sensor outputs change during rotation. Vector position, i.e. rotor position can be estimated by using the Luenberger observer which used vector cross-product phase-detection method or also by Phase Locked Loop.

Fig. 1 Quantized position vectors with Hα,β set at 60º (source: Harke M.C., 2008)

Phase Locked Loop

Rotor position is described as a spatial rotating vector in stator coordinate system which angle is represented by the position feedback’s scalar value.

Fig. 2 Expression of vector X in stator, rotor and observer coordinate system

According to fig. 2 following equations can be written. Vector is described in estimated coordinate system (1,2) and formulated by stator’s parameters.

\hat{x} = (\tilde{x}_{1} +j\tilde{x}_{2})e^{j\tilde{v}s} = x_{\alpha} +jx_{\beta}/e^{-j\tilde{v}s} \\ \hat{x}e^{-j\tilde{v}s}=(\tilde{x}_{1} +j\tilde{x}_{2})=(x_{\alpha} +jx_{\beta})e^{-j\tilde{v}s}\\=(\tilde{x}_{1} +j\tilde{x}_{2})(cos(\tilde{v}_{s}) - j sin(\tilde{v}_{s})) (1)

After separating the previous equation to the elements, the next formulas can be written

\tilde{x}_{1}=x_{\alpha}cos(\tilde{v}_{s}) + x_{\beta} sin(\tilde{v}_{s})  \\ \tilde{x}_{2}=x_{\beta}cos(\tilde{v}_{s}) - x_{\alpha} sin(\tilde{v}_{s}) (2)

x_{\alpha}=X.cos(v_{s}) \\ x_{\beta}=X.sin(v_{s}) (3)

Combining (2) and (3) results in

\tilde{x}_{2}=X.sin(v_{s}).cos(\tilde{v}_{s})-X.cos(v_{s}).sin(\tilde{v}_{s}) (4)

After modification

\tilde{x}_{2}=X.sin(v_{s} - \tilde{v}_{s}) (5)

For small angles (less than 5º) it is

\tilde{x}_{2}=X.(v_{s} - \tilde{v}_{s}) (6)

According to the next formula, it is necessary to keep vector element \tilde{x}_{2} on zero value to ensure the correct position estimation.

\tilde{x}_{2}=0 \Rightarrow v_{s}=\tilde{v}_{s} (7)

This requirement can be provided by PLL with correct designed controller.

Fig. 3 Block scheme of PLL

BLDC Motor

In these times the use of brushless DC (BLDC) motor is increasing in many part of industry. BLDC motor is a synchronous motor with electronically controlled commutation based on rotating electromagnetic field. The three phase BLDC motor consists of a stator with coils and rotor with even number of permanent magnets (poles). Multiplication of a fundamental number of coils or increasing the number of poles gives a smaller rotation steps and smaller torque ripple.

Fig. 4 Cross section of BLDC motor with two fundamental sets of coils and four poles (source: Atmel AN AVR443, 2006, pp.2)

By exciting the coils with predefined sequence of electromagnetic field in the right moment the rotor rotates. Therefore BLDC have a built in rotor position sensor – typically Hall effect sensors that detect the rotor magnets position and then it is possible to determine which coils needs to be excited.

Fig. 5 Excitation signals (U,V,W) in the six commutation states for a BLDC motor and Hall sensor outputs (H1,H2,H3) (source: Atmel AN AVR443, 2006, pp.3)

Main results

This section is dedicated to design of speed controller with actuating signal filtering by method of Pole Placement. In the second part of this section the PLL observer is designed.

Speed controller design

Structure of IP controller with actuating signal filtering was chosen for speed controller loop as it shows in fig 6.

Fig. 6 Block scheme of control loop

Phase Locked Loop used for rotor position estimation brings to the control loop high noise, which can be suppressed with actuating signal filtering. Transfer function without zeros is achieved by using the IP structure of speed control.

\frac{\omega}{\omega^{*}} = \frac{\frac{1}{JT_{i}T_{f}}}{s^{3}+\frac{1}{T_{f}}s^{2}+\frac{k_v}{JT_{f}}s+\frac{1}{JT_{i}T_{f}}} (8)

So the Pole Placement method is ideal for design a controller. Controller parameters are derived after comparison the denominator coefficients of the transfer function with coefficients of polynomial which express the wished dynamics.

s^{3}+(2b+k)\omega_{0}s^{2}+(2bk+1)\omega_{0}^{2}s+k\omega_{0}^{3} (9)

The wished dynamics of speed control loop is expressed by polynomial with two complex roots and one real. Increasing dynamics can be achieved by increasing a bandwidth ω0. Velocity ripple can be decreased by enlarging the damping b and gain k. Speed controller parameters are followed

K_{v} = (2bk+1)\omega_{0}^{2}JT_{f} (10)

T_{i} = \frac{1}{JT_{f}k\omega_{0}^{3}} (11)

Where a J is a moment of inertia of chosen BLDC motor and the filter time constant is

T_{f} = \frac{1}{(2b+k)\omega_{0}} (12)

Design of PLL observer

The fundamental requirement of PLL so that the estimated position element x2 = 0 can be ensured by controller with PI structure. Parameters of this controller can be derived from linearized model of PLL using the same method like in speed controller design.

Fig. 7 Linearized model of PLL with PI controller

Transfer function of this model is

\frac{\tilde{v}_s}{v_s} = \frac{\frac{K_{p}X}{T_i}+K_{p}Xs}{\frac{K_{s}X}{T_i}+K_{p}Xs+s^2} (13)

The parameters of the controller derived by using Pole Placement method are

K_{p} = \frac{2b\omega_{0}}{X} \\ T_{i} = \frac{2b}{\omega_{0}} (14)

Where b is a dumping and ω0 is a bandwidth which defines a PLL’s dynamic properties.


Designed speed control loop with PLL observer in the feedback was simulated and later verified on real BLDC motor. The observer with 10 Hz bandwidth brings to the control loop high noise which was damped with actuating signal filter with time constant 0.015s. Dynamics of speed loop was tuned by bandwidth 2.65 Hz. The operating point has two values to verify correct working of the designed system in several conditions. Step of desired speed to 30 rad/s was executed in time 0s and the other step of 70 rad/s was applied in time 5s. Experiments were made on set of BLDC motor Tetra 56SR1.35 and power drive CT MiniAx 60×10/20.

According to fig. 8 and fig. 9 the experimentally verified velocity follows the desired value with minimal error in steady states. Measured trends for chosen experiment with speed control loop using PLL observer for feedback is compared to control loop with incremental rotary encoder mounted on motor (2000 inc).

Fig. 8 Desired and experimental trends of velocity

Fig. 9 Experimental trends of velocity error

Fig. 10 Experimental trends of torque

For verifying the PLL observer several measurements were made. On the next figures error values in different speed is given. Error in low speed operation is approximately five times higher then the error in higher speed. Observer dynamics is indirectly proportional to the quality of velocity estimation.

Fig. 11 Velocity estimation error at 100 rad/s

Fig. 12 Velocity estimation error at 20 rad/s


The results was above our expectation, however this method cannot be used for high performance applications. The estimated velocity followed the wish value with low error. This method of velocity estimation is not suitable for low speed application due to limited resolution of binary Hall effect sensor which the rotor position error can be as high as 60º in low speed operation. Precision of the estimation can be increased by harmonic decoupling of position vector and subtracting additional harmonics, for example 5th and 7th harmonics. Another method to improve quality of estimation in low speed operation is usage of PLL or filter time constant parameters adaptation depending to velocity.


  1. Harke, M. C., G. De Donato, F. G. Capponi, T. R. Tesch, R. D.Lorenz (2008). Implementation Issues and Performance Evaluation of Sinusoidal, Surface-Mounted PM Machine Drives With Hall-Effect Position Sensors and a Vector-Tracking Observer, IEEE Transaction on Industry Applications, vol. 44, no. 1, pp. 161-173.
  2. Tesch, T.R., (2008). Disturbance Torque and Motion State Estimation With Low-Resolution Position Interfaces Using Heterodyning Observers, IEEE Transaction on Industry Applications, vol. 44, no. 1, pp. 124-134.
  3. Capponi F. G., G. D. Donato, L. D. Ferraro, O. Honorati,M. C. Harke, and R. D. Lorenz (1996). AC brushless drive with low-resolution hall-effect sensors for surface-mounted PM machines. IEEE Transaction on Industry Applications, vol. 42, no. 2, pp. 526-535.
  4. Atmel Application Note (2006), AVR443: Sensor-based control of three phase Brushless DC motor, Rev. 2596B-AVR-02/06.

1 príspevok k článku “Speed control of BLDC motor based on hall-effect sensors”

  1. burcu napísal:


    I am a student and I need more information about the idea of PLL to control a permanent magnet motor. Can you help me?


Napísať príspevok