rotor speed and load torque estimation in bldc drives
TRANSCRIPT
Pieter D`haese
Rotor Speed and Load Torque Estimation in BLDC Drives
Academic year 2013-2014Faculty of Engineering and ArchitectureChairman: Prof. dr. ir. Jan MelkebeekDepartment of Electrical Energy, Systems and Automation
Master of Science in Electromechanical EngineeringMaster's dissertation submitted in order to obtain the academic degree of
Counsellor: Ir. Araz DarbaSupervisors: Prof. dr. ir. Jan Melkebeek, Dr. ir. Frederik De Belie
Pieter D`haese
Rotor Speed and Load Torque Estimation in BLDC Drives
Academic year 2013-2014Faculty of Engineering and ArchitectureChairman: Prof. dr. ir. Jan MelkebeekDepartment of Electrical Energy, Systems and Automation
Master of Science in Electromechanical EngineeringMaster's dissertation submitted in order to obtain the academic degree of
Counsellor: Ir. Araz DarbaSupervisors: Prof. dr. ir. Jan Melkebeek, Dr. ir. Frederik De Belie
Preface
This is the master’s dissertation that I have written in order to obtain the academic degree
of Master of Science in Electromechanical Engineering.
A regular BLDC machine is equipped with Hall sensors to be able to drive it properly. These
sensors have a baleful influence on the size, the cost and the reliability of the drives. There-
fore, sensorless control and its dynamics are studied in this master’s dissertation.
I would like to thank everyone who contributed to and supported the realization of this mas-
ter’s dissertation.
First of all, I would like to thank prof. dr. ir. Jan Melkebeek. As head of the department
and director of EELAB, he made the research, presented in this thesis, possible. Moreover,
his courses imparted the rudiments of electrical drives to me.
I would like to express my gratitude to my counsellor, ir. Araz Darba. With his knowledge
about BLDC machines and programming of FPGAs, he supported me throughout the com-
plete process of the creation of this thesis. I would also like to thank dr. ir. Frederik De Belie.
He was always available for helping me with conceptual problems. He helped me with laying
out the broad lines of this thesis.
Furthermore, I would like to thank my parents for their support, which made it possible to
study carefree during my complete education. Last but not least, I would like to thank my
girlfriend Raısa. She is the control algorithm that motivates and supports me at all times.
Pieter D’haese
Gent, 2 June 2014
i
Permission for usage
De auteur geeft de toelating deze masterproef voor consultatie beschikbaar te stellen en delen
van de masterproef te kopieren voor persoonlijk gebruik. Elk ander gebruik valt onder de
beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron
uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef.
The author gives permission to make this master dissertation available for consultation and
to copy parts of this master dissertation for personal use. In the case of any other use, the
limitations of the copyright have to be respected, in particular with regard to the obligation
to state expressly the source when quotations result from this master dissertation.
Pieter D’haese, June 2014
ii
Rotor Speed and
Load Torque Estimation
in BLDC Drives
by
Pieter D’haese
Promotors: Prof. dr. ir. Jan Melkebeek and Dr. ir. Frederik De Belie
Supervisor: Ir. Araz Darba
Master’s dissertation submitted in order to obtain the academic degree of
Master of Science in Electromechanical Engineering
Department of Electrical Energy, Systems and Automation
Chairman: Prof. dr. ir. Jan Melkebeek
Faculty of Engineering and Architecture
Universiteit Gent
Academic year 2013–2014
Summary
BLDC machines are used more and more in industrial applications due to their energy-efficiency and their favourable power-to-volume ratio. Conventional BLDC machines areequipped with position sensors, which are required to drive the machine in an optimal way.However, these additional sensors lead to a bigger, a more costly and a less reliable drive.Therefore, sensorless control of BLDC machines is an important branch of the research ofBLDC machines.The goal of this master’s dissertation is the development of a new sensorless control methodfor BLDC machines, which has a better performance during rotor speed transients. Thesensorless control method proposed in this master’s thesis is based on back-emf measure-ments. The performance of the proposed sensorless algorithm was proven by simulations inMatlab/Simulink and by practical results from an FPGA implementation.In the next part of the thesis, it is shown that combining the sensorless control algorithmwith a load torque estimator improves the dynamic behaviour of the drive considerably. Theinfluence of load torque disturbances on the rotor speed is decreased significantly.In the last part of this master’s dissertation, a modelbased predictive control (MBPC) algo-rithm for speed control of BLDC machines is proposed. It is shown that using load torqueinformation in a MBPC strategy for BLDC machines has a positive effect on the drive’sdynamics as well.
Index terms
BLDC drives, modelling, sensorless control, sensorless speed estimation, sensorless load torque
estimation
iii
Rotor Speed and Load Torque Estimation inBLDC Drives
Pieter D’haese
Supervisors: ir. Araz Darba, dr. ir. Frederik De Belie and prof. dr. ir. Jan Melkebeek
Abstract—In this thesis, a new sensorless control methodis proposed for BLDC machines. The new method is ableto estimate the commutation moments accurately, even intransients. A load torque estimation method is presented andused to increase the dynamic stiffness of a BLDC machine.In this thesis, an FPGA implementation of a ModelbasedPredictive Control (MBPC) strategy is proposed to controlthe rotor speed of BLDC drives.
Keywords—Sensorless control, speed estimation, loadtorque estimation, dynamic stiffness, Modelbased PredictiveControl
I. INTRODUCTION
One of the drawbacks of a regular BLDC machine,is the need for position information to drive it prop-erly. This information usually comes from Hall sensors.However, additional position sensors imply an additionalconstruction cost, an additional maintenance cost andlarger machines. Therefore, sensorless control methodswere developed [1]. In this thesis, a new sensorlesscontrol method is proposed, which is able to estimatethe switching moments accurately, even in rotor speedtransients. This way, the behaviour of BLDC drives intransient conditions is improved. The sensorless controlalgorithm is based on back-emf measurements. A secondbranch is investigated in order to reduce the influence ofexternal disturbances on the rotor speed, thereby reducingthe unwanted transients themselves. In the last part, aMBPC strategy is proposed to control the rotor speed ofBLDC drives.
II. SPEED AND POSITION ESTIMATION
In driving a BLDC machine, one terminal of themachine is not connected to the supply. The back-emfin this phase can be measured using the methodologydescribed in [2]. The rotor speed and position estimationare based on these back-emf measurements. For a three-phase machine, the back-emf in each phase of a BLDCcan be formulated as:
ea = keωmF (θe) (1)
eb = keωmF (θe −2π
3) (2)
ec = keωmF (θe −4π
3) (3)
Where ke is the back-emf constant, ωm the rotor speed,θe the electrical rotor angle and F a function that capturesthe waveform of the back-emf. For a BLDC machine,the back-emf waveform is trapezoidal. This implies the
following equation for F :
F (θe) =
1, 0 ≤ θe ≤ 2π3
1− 6π
(θe − 2π
3
), 2π
3 ≤ θe ≤ 4π3
−1, π ≤ θe ≤ 5π3
−1 + 6π
(θe − 5π
3
), 5π
3 ≤ θe ≤ 2π
(4)
When a BLDC machine is driven correctly, the back-emf in the unexcited phase of the machine is in itslinear part. An estimation of the rotor speed can thenbe derived from the back-emf measurements from theunexcited phase:
ωm[k] =
√e[k]− e[k − 1]
kemLTsNp(5)
From the speed estimation, an estimation of the actualvalue of F in that phase can be determined:
F (θe[k]) =e[k]
keωm[k](6)
As there is a one-to-one relationship between F andθe (equation 4), an estimation of F implies an estimationof θe. The algorithm was programmed on a XC3S1600EFPGA board. The BLDC motor on which the algorithmis tested, is equipped with Hall sensors. However, thesesensors phase shifted on the stator axis, resulting ininaccurate commutation moments (there is a shift of7.422 electrical).
For proper commutation, the commutation instants de-termined by the sensorless algorithm should lead thosedetermined by the Hall sensors with 7.422 rad/s. Thephase lead of the switching state1 determined by thesensorless method with respect to the switching statedetermined by the Hall sensors is denoted by φ. Theresults of measurements on the BLDC machine of thepractical setup, when the machine is unloaded, are shownin Fig. 1. In this figure, φ = 0 corresponds to the switch-ing moments that are determined by the Hall sensors.The dashed line corresponds to the optimal switchingmoments. It can be noticed that the sensorless algorithmapproximates the switching instants with an accuracy of5 electrical in transient conditions. The accuracy of theproposed sensorless method, which is based on back-emf measurements, is of the same order of magnitudeas that of the method described in [3], where the authorsproposed a method for low rotor speeds.
1To drive a BLDC machine, the control algorithm must choosebetween 6 voltage vectors (0-5) to apply to the machine. Every vectorcorresponds to a certain position of the rotor. The 6 voltage vectors arecalled switching states.
III. LOAD TORQUE ESTIMATION
The load torque that is applied to a electrical driveis known upto a certain level. However, it is possiblethat load torque disturbances are present that influencethe rotor speed. A load torque estimation can be usedin diagnostic systems, as described in [4]. Here, theestimation of the load torque will be used to improve thedynamic behaviour of a drive.
0 5 10 15 20 25 300
2
4
6
8
Time [ms]
Switchingstate
Hall sensors Sensorless method
0 5 10 15 20 25 300
10
20
30
Time [ms]
Loa
dtorque[m
Nm]
0 5 10 15 200
5
10
15
Commutation number
Phaselead
φ[]
Transient φ Steady-state φ
Fig. 1. Measurement of the switching state (top), the external appliedload torque (mid) and the phase lead angle φ when the machine isunloaded (bottom).
If the rotor speed estimation ωm, the DC-bus currentiDC and the load torque Tl at time t = k are known, thefollowing equation can be used to predict the rotor speedat time t = k + 1:
ωm,pred[k + 1] = ωm[k] + Ts2ktidc[k]− Tl[k]
J(7)
Where Ts is the discretization time step, kt is the torqueconstant and J represents the inertia of the machine.However, the load torque at time instant t = k isunknown. An updating scheme is used for the load torqueestimation. Two indices m and l are used for the loadtorque estimation, Tl[m, l]. The first index represents thetime instant for which the load torque estimation is made.The second index represents the time instant at which theestimation is done. The load torque estimation Tl[m, l]thus represents the load torque estimation for the instantt = m, done at the time instant t = l. At t = k, there isno information about the load torque. We assume, as aninitial guess, that the load torque did not change:
Tl[k, k] ≈ Tl[k − 1, k] (8)
At t = k + 1, new information about the load torqueis derived: a new measurement of the back-emf isperformed. From this measurement, a new estimationof the speed, ωm[k + 1], is made. This rotor speedestimation is compared with the predicted speed fromequation 7.
The difference in the estimated rotor speed and thepredicted rotor speed, results from a difference in nettorque applied to the rotor. From equation 7, a new
estimation of the load torque at time instant t = k can bedetermined:
Tl[k, k+1] = Tl[k, k]+J
Ts(ωm,pred[k + 1]− ωm[k + 1])
(9)
IV. DYNAMIC STIFFNESS
As mentioned in the previous section, an available loadtorque estimation can be used to improve the dynamicbehaviour of a BLDC drive. The influence of the loadtorque on the controlled variable (position or speed) ischaracterized by the dynamic stiffness of the drive [5].Here, the rotor speed is considered as the controlledvariable. Increasing the dynamic stiffness of a drive leadsto a reduced impact of load torque disturbances on therotor speed. This is particularly useful in low inertiadrives, which have a very low dynamic stiffness. Thedynamic stiffness of BLDC machines can be improvedusing load torque feedforward (Fig. 2). In this figure, λrepresents the PWM reference.
Fig. 2. Scheme of PI controllers with the load torque feedforward
The load torque is multiplied with the gain gLT andadded to the current reference. The idea behind thisis that the setpoint for the electromagnetic torque ishereby altered (field-oriented control). The load torquemultiplied with the gain gLT should be of the same orderof magnitude as the DC-bus current to have a noticeableeffect on the dynamics of the drive. Therefore, the gaingLT is expressed in terms of the torque constant kt:
gLT = aLT k−1t (10)
Using load torque feedforward allows to reduce theoscillation amplitude of the rotor speed, caused by aperiodic load torque, up to approximately 60%. This isshown in Fig. 3 for a sinusoidal load torque.
0 500 1000 1500 20001000
1100
1200
1300
1400
1500
1600
1700
1800
1900
2000
Time [ms]
Rotorspeed[rpm]
aLT = 0aLT = 0.576aLT = 1
Fig. 3. The influence of aLT on the oscillation amplitude of therotor speed when a the machine is loaded with a sinusoidal load torque.(measurement)
V. MODELBASED PREDICTIVE CONTROL
In Modelbased Predictive Control (MBPC), the inputto be applied to the system is determined from makingpredictions using a model and minimizing a cost function.The model that is used for this purpose, does not takeinto account current commutations and the correspond-ing transients. The differential equations that govern theBLDC machine are then reduced to the following statespace model:
[didtdωm
dt
]=
[−RL −keL2ktJ 0
] [iωm
]+
[12L 00 − 1
J
] [λVsTl
]
(11)In this thesis, a MBPC algorithm is used to control
the rotor speed of the drive. Next to controlling the rotorspeed, the current must stay limited. This leads to thefollowing cost function:
J = |r(t+N |t)− ωm(t+N |t)|+µN∑
k=1
ai(k) (12)
Where ai is defined as:
ai =
|i| if |i|> imax0 if |i|≤ imax
(13)
In equation 12, r represents the speed reference signal.The parameter µ is a weight factor. While a MBPCalgorithm is computationally demanding, it is possible tocalculate the optimal PWM reference λ in real-time usingthe possibility of pipelining and parallelism on the FPGA.The PWM signals are applied to the lower switches ofthe power stage only, limiting λ to the interval [0, 1]. Tooptimize the cost function from equation 12, the followingprocedure is followed:• The interval [0, 1] of possible values for λ is divided
in 10 equal intervals. The cost function is evaluatedfor the limiting values of each interval (i.e. for λequal to 0, 0.1,..., 1). A total of 11 values for λ areevaluated in this step.
• For one of these values of λ, the cost functionbecomes minimal. The optimal solution will lie inone of the neighbouring intervals. The two neigh-bouring intervals are merged together. The resultinginterval is then divided in 12 equal intervals.
• Two of the limiting values of the intervals areknown from the previous iteration. Hence, also inthe second iteration 11 values for λ have to beevaluated. The number of cost function evaluationsis limited to 22, while achieving a resolution of0.0167 for the optimal value for λ.
The parameter µ has an impact on the current limita-tion. It can be expected that for high values of µ, there is abetter current limitation to the maximum allowed currentimax than for low values of µ. The current limitation isdescribed by the parameter β:
β =i− imaxω∗m − ωm
(14)
The parameter β was calculated for several values ofµ. The results are shown in Fig. 4.• For low values of µ, there is a big influence of µ
on β. This is the region where the cost for a current
i that is higher than imax is of the same order ofmagnitude as the cost that comes from a rotor speedthat deviates from ω∗
m.• As µ becomes higher, β becomes lower. The current
limitation becomes more strict. However, the effectof increasing µ lowers for higher values of µ. Astrict limitation of the current is obtained for µreaching to infinity.
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1x 10
−4
Parameter µ [rad/(As)]
β[A
s/rad]
Fig. 4. Impact of µ on β. (measurement)
VI. CONCLUSIONS
A new sensorless control algorithm for BLDC ma-chines is proposed. The algorithm is demonstrated towork well under transient conditions. An accuracy of 5electrical degrees is achieved, even in transients.An algorithm is proposed to estimate the load torque. Itis shown that using the load torque as a feedforward tothe current reference of PI current controller, can greatlyimprove the dynamic stiffness of the drive.An implementation of MBPC for BLDC machines ispresented. Even though the algorithm is computationallydemanding, it is possible to implement it on an FPGA.
REFERENCES
[1] P. Acarnley and J. Watson, “Review of Position-Sensorless Oper-ation of Brushless Permanent-Magnet Machines,” IEEE Transac-tions on Industrial Electronics, vol. 53, pp. 352–362, April 2006.
[2] A. Darba, F. De Belie, and J. Melkebeek, “Sensorless commutationand speed control of Brushless DC-machine drives based on theback-EMF symmetric threshold-tracking,” in Electric MachinesDrives Conference (IEMDC), 2013 IEEE International, pp. 492–497, 2013.
[3] F. De Belie, J. De Backer, A. Darba and J. Melkebeek, “Low-SpeedSalient-Pole BLDC-Machine Control by Using a Single Sensor,”15th IEEE International Conference on Electrical Machines andSystems (ICEMS), vol. , pp. 21–24, Oct. 2012.
[4] J. Guzinski, H. Abu-Rub, M. Diguet, Z. Krzeminski, andA. Lewicki, “Speed and load torque observer application in high-speed train electric drive,” Industrial Electronics, IEEE Transac-tions on, vol. 57, pp. 565–574, Feb 2010.
[5] P.B. Schmidt and R.D. Lorenz, “Design principles and imple-mentation of acceleration feedback to improve performance ofDC drives,” IEEE Transactions on Industry Applications, vol. 28,
pp. 594–599, May/June 1992.
Contents
Preface i
Permission for usage ii
Overview iii
Extended abstract iv
Contents vii
List of abbreviations and symbols xi
1 Introduction 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Overview master thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 General aspects of BLDC machines 4
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Classification of permanent-magnet synchronous machines . . . . . . . . . . . 4
2.3 Six-step control of BLDC machines . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Field-weakening operation of a BLDC machine . . . . . . . . . . . . . . . . . 11
2.5 Control scheme of a BLDC motor . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Methods for sensorless control of BLDC machines . . . . . . . . . . . . . . . . 14
3 Dynamical model of a BLDC machine 19
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Model of the permanent magnet synchronous motor . . . . . . . . . . . . . . 19
3.3 Model of the inverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 Discretization of the BLDC model . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5 Discretization of PID controller . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6 Simulation of model using Simulink . . . . . . . . . . . . . . . . . . . . . . . . 26
3.6.1 Implementation of the model in Simulink . . . . . . . . . . . . . . . . 26
3.6.2 Simulated waveforms using the BLDC model . . . . . . . . . . . . . . 26
vii
Contents viii
4 Speed, position and load torque estimation 29
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1.1 Luenberger observer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1.2 Kalman-Bucy filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 Speed and position estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Load torque estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.4 Simulation results from Matlab/Simulink without current and speed controller 35
4.5 Origin of the estimation error during transients . . . . . . . . . . . . . . . . . 39
4.6 Improvement of the rotor speed and load torque estimation through rotor
position and acceleration feedback . . . . . . . . . . . . . . . . . . . . . . . . 40
4.7 Dynamical behaviour of the rotor speed and load torque estimation . . . . . . 42
4.8 FPGA implementation of the rotor speed estimator . . . . . . . . . . . . . . . 47
4.8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.8.2 Compensating the effect of using a virtual neutral point . . . . . . . . 47
4.8.3 Commutation transients . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.8.4 PWM synchronized sampling of the back-emf . . . . . . . . . . . . . . 49
4.8.5 Measurement and quantization noise . . . . . . . . . . . . . . . . . . . 50
4.8.6 Evaluation of the square root . . . . . . . . . . . . . . . . . . . . . . . 52
4.8.7 Experimental results of the speed estimator . . . . . . . . . . . . . . . 53
4.9 FPGA implementation of the rotor position estimator . . . . . . . . . . . . . 53
4.10 FPGA implementation of the load torque estimator . . . . . . . . . . . . . . . 58
4.10.1 Practical implementation of the programmable load torque . . . . . . 59
4.10.2 Results from the load torque estimation . . . . . . . . . . . . . . . . . 60
4.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5 Influence of parameter uncertainty in the estimators 63
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2 Effect of ke on the speed, position and load torque estimation . . . . . . . . . 63
5.3 Effect of uncertainties in J on the load torque estimation . . . . . . . . . . . 65
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6 Improving the dynamic stiffness by load torque estimation feedforward 67
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.2 Dynamic stiffness and load torque feedforward . . . . . . . . . . . . . . . . . 67
6.2.1 Dynamic stiffness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.2.2 Load torque feedforward . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.3 Derivation of a simplified discrete-time model for BLDC machines . . . . . . 69
6.4 Influence of aLT on the dynamic stiffness of a BLDC drive . . . . . . . . . . . 72
6.5 Results from FPGA implementation . . . . . . . . . . . . . . . . . . . . . . . 73
6.5.1 Influence of the gain aLT . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.5.2 Influence frequency of the applied load torque . . . . . . . . . . . . . . 76
6.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Contents ix
7 Controlling rotor speed using MBPC 79
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.2 Concepts of MBPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.2.1 Multistep predictor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.2.2 Extended Prediction Self-Adaptive Control . . . . . . . . . . . . . . . 83
7.2.3 Nonlinear Extended Prediction Self-Adaptive Control . . . . . . . . . 86
7.3 Optimization of a nonlinear cost function . . . . . . . . . . . . . . . . . . . . 86
7.3.1 Determination of the direction pk . . . . . . . . . . . . . . . . . . . . . 87
7.3.2 Determination of the step length αk . . . . . . . . . . . . . . . . . . . 88
7.3.3 Stopping criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7.4 BLDC model to be used in MBPC . . . . . . . . . . . . . . . . . . . . . . . . 89
7.5 Effect of the cost function and the design parameters α and N . . . . . . . . 91
7.5.1 Design of the cost function . . . . . . . . . . . . . . . . . . . . . . . . 91
7.5.2 Influence of the design parameter α . . . . . . . . . . . . . . . . . . . 98
7.5.3 Influence of the prediction horizon N . . . . . . . . . . . . . . . . . . . 100
7.6 Using load torque feedback in the MBPC strategy . . . . . . . . . . . . . . . 102
7.6.1 Simulation results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.7 FPGA implementation of the MBPC strategy . . . . . . . . . . . . . . . . . . 104
7.7.1 Switching strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.7.2 Optimization of the cost function . . . . . . . . . . . . . . . . . . . . . 105
7.7.3 Calculation of the optimal λ . . . . . . . . . . . . . . . . . . . . . . . 105
7.7.4 Influence of xωm feedback . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.7.5 Effect of µ and xi on the current limitation . . . . . . . . . . . . . . . 109
7.7.6 Influence of the parameter α on the disturbance rejection . . . . . . . 110
7.7.7 Influence of using the load torque Tl . . . . . . . . . . . . . . . . . . . 111
7.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
8 Conclusions and further research 114
8.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.2 Further research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
A Practical set-up 117
A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
A.2 BLDC motors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.2.1 BLDC Maxon Motors . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.2.2 BLDC Tiger Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
A.3 Power stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
A.4 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
A.5 ADC modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
A.6 Digital isolators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
A.7 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Contents x
B PAPERS 122
Bibliography 139
List of figures 142
List of tables 147
List of abbreviations and symbols
Abbreviations
AC Alternating current
BLAC Brushless AC machine
BLDC Brushless DC machine
CORDIC COordinate Rotation DIgital Computer
CSI Current-source inverter
DC Direct current
DSP Digital signal processor
EKF Extended Kalman Filter
EPSAC Extended Prediction Self-Adaptive Control
emf Electromotive force
FPGA Field-programmable gate array
HVAC Heating, ventilation and air conditioning
IPMSM Interior permanent-magnet synchronous machine
MBPC Modelbased predictive control
NEPSAC Nonlinear Extended Prediction Self-Adaptive Control
PID Proportional-integral-derivative
PMSM Permanent-magnet synchronous machine
PWM Pulse-width modulation
RMS Root-mean-square
SPMSM Surface permanent-magnet synchronous machine
VSI Voltage-source inverter
Symbols
Matrices and vectors are indicated by using bold symbols. The used symbols are explained
in the text itself.
xi
Chapter 1
Introduction
1.1 Introduction
Brushless DC machines (BLDC) are used more and more in numerous branches of industry:
automation, robotics, automotive, household appliances and industrial applications [1]. They
are used in electric and hybrid vehicles [2], HVAC and refrigeration applications [3], as well
as for motion and position control of actuation systems [4].
The speed and torque of a regular DC machine, where the axis of the brushes is perpendicular
to the axis of the field winding, are controlled without much programming effort. The relative
speed between the magnetic field and the armature winding results in an induced voltage Ea
in the armature winding, which is proportional to the rotor speed. The interaction between
the magnetic field and the armature winding gives rise to an electromagnetic torque Te, which
is proportional to the armature current. By controlling the current in the armature winding,
the produced electromagnetic torque is controlled. It is this property that control methods
like field-oriented control try to pursue [5].
A major drawback of regular DC machines is the need for mechanical commutators to drive
it. These commutators are liable to wear: they are always under severe mechanical (friction,
vibration, heat) and electrical (electrical arcs) stresses. As a result, DC machines require
periodic maintenance and their lifetime is as low as one third of modern BLDC machines,
where the current is commutated using advanced power electronic components. Another dis-
advantage of a DC machine is the presence of a voltage drop across the brushes.
The electromagnetic field in a BLDC machine is generated using permanent magnets that
are mounted on the rotor. This implies that copper losses related to the generation of the
electromagnetic field are absent. This aspect entails that the efficiency of the BLDC machine
is higher than that of a DC machine. In addition, the armature winding of the BLDC ma-
chine, which caries the load current of the machine, is placed in the stator. This results in
a better heat conduction to the surroundings of the machine (assuming an internal rotor).
1
Chapter 1. Introduction 2
As thermal aspects contribute in sizing the machine, a BLDC machine can thus be produced
more compactly than a regular DC machine.
When comparing BLDC machines to AC machines, it can be noted that BLDC machines are
more compact than induction machines for the same output power, due to the presence of
stator and rotor windings in an induction machine. A BLDC machine is also able to produce
its maximum torque at lower speeds, whereas the torque produced by induction machines at
lower speeds is lower [6]. Due to winding distribution in the stator and the positioning of the
permanent magnets in the rotor, a BLDC machine is able to produce more torque for the
same machine volume than other permanent magnet machines.
With energy bills getting higher, all these effects drive the advance of BLDC machines in
industry.
1.2 Overview master thesis
In the previous section, the advantages of BLDC machines were explained. Like any other
technology, BLDC machines have some drawbacks too. The most important one of these
drawbacks is the necessity of rotor position sensors to determine the commutation moments.
In this master dissertation, a new sensorless control method is proposed to drive BLDC
machines, which makes rotor position sensors obsolete. In chapter 2, an overview of the
general aspects of BLDC machines is given. Because a new sensorless control method is de-
veloped, an overview of existing methods for sensorless control of BLDC machines is included.
In chapter 3, a model for BLDC machines is derived, which allows to test control algorithms
and estimators using simulations. A further use of the model is in Modelbased Predictive
Control of BLDC machines.
Chapter 4 covers the theory behind the proposed sensorless control method. In this chapter, a
new methodology to estimate the rotor speed and load torque of BLDC machines drives from
back-emf measurements is explained. The practical results of the position, speed and load
torque estimators are included. The accuracy with which machine parameters are known
is limited. Some of the machine parameters can change during operation. Therefore, the
influence of parameter errors on the position, speed and load torque estimations is examined
in chapter 5.
In chapters 4 and 5, the focus is on the estimation of position, speed and load torque, i.e. the
estimation of the state of the machine and the disturbances that influence the machine. In
the rest of this master’s dissertation, the focus shifts to the control of BLDC machines. In
chapter 6, the load torque estimator proposed in chapter 4 is used to improve the dynamic
stiffness of a BLDC drive. Chapter 7 covers the fundamentals of Modelbased Predictive Con-
Chapter 1. Introduction 3
trol, which are then applied to a BLDC drive to control the rotor speed of BLDC drives.
The details about the practical set-up that is used to test the proposed algorithms are included
in appendix A. During the course of this master’s dissertation two scientific papers were
written, which are added to appendix B. The first paper was submitted and accepted for
the 5th International Symposium on Sensorless Control for Electrical Drives (SLED 2014)
in Hiroshima, Japan. The second paper will be submitted for publication in the journal
Transactions on Industry Applications.
Chapter 2
General aspects of BLDC machines
2.1 Introduction
BLDC machines belong to the family of permanent-magnet synchronous machines. The two
most fundamental permanent-magnet synchronous machines are discussed in section 2.2. The
fundamental ideas behind the control of BLDC machines are explained in sections 2.3-2.5. In
later chapters, a new sensorless control method will be introduced and investigated. For this
reason, also a short overview of existing sensorless control methods is given in section 2.6.
2.2 Classification of permanent-magnet synchronous machines
A lot of different types of permanent-magnet synchronous machines (PMSM) exist. Generally,
they can be classified and characterized based on the following criteria:
The waveform of the back-electromotive force (back-emf) of the machine. This wave-
form can be trapezoidal or sinusoidal.
The mounting of the magnets (surface-mounted or interior magnets).
The flux direction (radial or axial).
Structural configuration: radial (internal or external rotor), axial (single or multiple
rotor and stators, with or without magnetic core).
In this section, the waveforms of two types of PMSM are discussed. The waveforms are
described in terms of the angle α, that determines the position of the rotor in the air gap,
and the dimensionless time ωt. The definition of α and ω is shown in Fig. 2.1. The shown
rotor position corresponds with t = 0.
4
Chapter 2. General aspects of BLDC machines 5
Figure 2.1: Definition of the angle α and ω, the rotor position is shown for t = 0.
Two types of PMSM are commonly used in practice. In the first type, the magnets are
mounted on the surface of the rotor, as illustrated in Fig. 2.2a, producing an approximately
rectangular magnetic induction in the air gap (Fig. 2.3a). In the second type, the magnets are
positioned in the interior of the rotor, as shown in Fig. 2.2b, the resulting magnetic induction
can be rectangular or sinusoidal (Fig. 2.3b). The magnetic inductance B in Fig. 2.3a and 2.3b
is normalized to an amplitude of 1. The positioning of the magnets in the second type results
in a smaller chance of dismounting magnets due to centrifugal forces at high operating speeds.
Besides the permanent magnets (dark grey coloured parts in Fig. 2.2), non-magnetic material
(hatched parts in Fig. 2.2) is used to prevent magnetic short circuit. The difference in the
positioning of the permanent magnets leads to a different ratio of d- and q-axis inductances,
Ld and Lq respectively. The reluctance of the permanent magnets is comparable to that
of air. For the SPMSM (surface permanent-magnet synchronous machine), the permanent
magnets lie partially or completely in the air gap between stator and rotor. As a result, there
is only a small difference between Ld and Lq for SPMSM. In this case, the reluctance torque
can be neglected. Conversely, a difference between Ld and Lq exists for IPMSM (interior
permanent-magnet synchronous machine). For these machines, Ld is usually smaller than
Lq.
d
q
(a)
d
q
(b)
Figure 2.2: Position of permanent magnets in rotor of SPMSM (a) and IPMSM (b)
Chapter 2. General aspects of BLDC machines 6
To obtain a good electromagnetic energy conversion [5], the distribution of the stator winding
is chosen in such a way that it generates a magnetic field similar to the produced rotor field.
For an SPMSM, this implies a concentrated stator winding. For an IPMSM, a distributed
stator winding is chosen.
Due to the choice of the winding distribution in the stator, the induced voltage in the sta-
tor winding (the back-emf) is rectangular or trapezoidal (Fig. 2.3c) when the induction is
rectangular. The back-emf is sinusoidal when the induction is sinusoidal (Fig. 2.3d). The
trapezoidal waveform of the back-emf of an SPMSM is constant over 120 electrical degrees.
The back-emf varies linearly over 60 electrical degrees in between the intervals where the
back-emf is constant. When the back-emf is trapezoidal, the machine is called a brushless
DC machine (BLDC), due to the resemblance of the magnetic field in the air gap to that of a
DC machine. A synchronous machine with interior permanent magnets (sinusoidal back-emf)
is also called a brushless AC machine (BLAC). The amplitude of the back-emf waveforms in
Fig. 2.3c and Fig. 2.3d is normalized to 1.
To achieve a constant delivery of power, the machine is fed by an inverter that guarantees
the similarity of the armature current waveform to the waveform of the back-emf. In the
case of a BLDC machine, this means that the inverter must deliver current blocks of 120
electrical degrees. This current then matches the back-emf waveform in the 120 degree in-
terval where it is constant (trapezoidal waveform). Between positive and negative current
blocks, the armature current is zero for 60 electrical degrees (Fig. 2.4a). This implies that
the inverter should be of the current-source type (CSI). Another possibility, which is used
more often, is to use the VSI-PWM (voltage-source inverter) type, where the amplitude of
the current is controlled using PWM (pulse-width modulation) [5]. An IPMSM needs to
be fed by a sinusoidal current (Fig. 2.4b). The amplitude of the current waveform of the
IPMSM in Fig. 2.4b is normalized to 1. The losses in the stator winding are determined
by the RMS (root-mean-square) value of the current. The RMS value of the depicted cur-
rent waveform of the IPMSM is equal to√22 . The amplitude of the current waveform of the
SPMSM is chosen to lead to the same stator losses (same current RMS value), i.e.√32 ≈ 0.866.
To produce the maximum obtainable power, the current blocks should be in phase with the
back-emf (field-oriented control). The instantaneous back-emf is dependent on the rotor posi-
tion (induced by the permanent magnets). This implies that the inverter needs rotor position
information to be able to guide the current correctly, i.e. to the right stator phase and with
the appropriate current direction. The inverter commutates the current in the machine elec-
tronically (e.g. without brushes).
One advantage of a BLDC machine over a BLAC machine, is that for the same machine
size (same losses), the BLDC machine delivers a power that is a factor 2√33 greater than
that of the BLAC machine (Fig. 2.4). Another advantage of the BLDC machine is that
Chapter 2. General aspects of BLDC machines 7
a position sensor with a resolution of 60 electrical degrees suffices to drive it properly. In
practice, this is achieved by using Hall sensors. Because the current waveform in a BLAC
machine is sinusoidal, a sensor with higher resolution is required for a good dynamic control
performance. The position sensors in a BLDC machine should, however, be accurately aligned
with the axis of the machine to detect the commuation moments accurately. A bad angular
accuracy results in a lower output power, torque ripple and corresponding speed variations
and acoustic noise.
0 π/6 5π/6 π 7/6π 11/6π 2π−1
0
1
Position in air gap α
Magnetic
inductionB
(a)
0 π 2π−1
0
1
Position in air gap α
Magnetic
inductionB
(b)
0 π/6 5π/6 π 7/6π 11/6π 2π−1
0
1
Dimensionless time ωt
Back-emfe p
ω 6= 0
(c)
0 π 2π−1
0
1
Dimensionless time ωt
Back-emfe p
ω 6= 0
(d)
Figure 2.3: Comparison between the waveforms of the magnetic induction and the back-EMF of
SPMSM (left) and IPMSM (right)
Chapter 2. General aspects of BLDC machines 8
0 π/6 5π/6 π 7π/6 11π/6 2π
−0.866
0
0.866
Dimensionless time ωt
Currenti
(a)
0 π 2π−1
0
1
Dimensionless time ωt
Currenti
(b)
0 π/6 5π/6 π 7π/6 11π/62π0
0.866
Dimensionless time ωt
Electricalpow
erPphase
(c)
0 π 2π0
1
Dimensionless time ωt
Electricalpow
erPphase
(d)
0 π 2π0
1.732
Dimensionless time ωt
Electricalpow
erPtota
l
(e)
0 π 2π0
3/2
Dimensionless time ωt
Electricalpow
erPtota
l
(f)
Figure 2.4: Comparison between the waveforms of the curent, the power per phase and the total
power of SPMSM (left) and IPMSM (right)
Chapter 2. General aspects of BLDC machines 9
2.3 Six-step control of BLDC machines
From the current waveforms in Fig. 2.4a and 2.4b, it follows that the inverter connects the
terminals of two phases to the DC supply at every given time. One terminal is connected
to the positive side of the supply, one is connected to the negative side of the supply. In
steady-state, the current in the first phase is opposite to the current in the second phase and
the terminal of the third phase is not connected (unexcited phase). There are six possible
ways for the inverter to guide the current to the phases of the machine (six-step control).
This implies that there are six active voltage vectors. At every time, there are also two zero
vectors, which result from connecting the motor terminals to the same side of the DC supply.
The six active stator voltage vectors, Vi, i = 1, ..., 6, are depicted in Fig. 2.5. In this figure,
also the back-emf E induced by the rotor flux in the stator winding is shown.
Figure 2.5: Vector diagram with the stator voltage vectors Vi, i = 1, ..., 6 and the back-emf E
Due to the symmetry of the machine, it follows that each of these combinations is active
during 60 electrical degrees. Out of the six possible voltage vectors, the switching signals to
the inverter are chosen to get an approximated 90 degree shift between the stator and rotor
field. In each interval the stator and rotor field start 120 electrical degrees apart and end
with a difference of 60 electrical degrees. This corresponds with a stator voltage vector that
leads the back-emf by 30 electrical degrees at the beginning of the conduction interval and
lags the back-emf by 30 electrical degrees at the end of the conduction interval (grey coloured
area in Fig. 2.5). The control algorithm chooses the stator voltage vector that lies in the grey
coloured area (or possibly the opposite or a zero vector to limit the stator current), which is
fixed with respect to the back-emf vector. In Fig. 2.5, vector V3 is active. The conduction
path in steady-state when phase A is connected to the positive side of the DC supply and
phase B to the negative side, is shown in Fig. 2.6. Transient currents can exist in the diodes.
Chapter 2. General aspects of BLDC machines 10
Figure 2.6: Conduction path of current when switch T1 and T4 are conducting
To drive a PMSM machine in an optimal way, the position of the back-emf E, induced by
the permanent magnets in the rotor, has to be known. This implies that the rotor position
has to be known, as E is fixed with respect to the rotor. The rotor position of a BLDC
machine can be measured by a resolver, an optical encoder or a set of Hall sensors on the
stator. When using Hall sensors, additional (small) magnets are mounted on the rotor. Hall
sensors detect when an new active voltage vector enters the grey area in Fig. 2.5. When this
happens, the output of one of the Hall sensors changes and the inverter has to switch to the
next conduction state. The output signals of the Hall sensors over one electrical revolution
are shown in Fig. 2.7.
0 60 120 180 240 300 3600
1
0
1
0
1
Rotor angle α ()
OutputHallsensor
Hall sensor 1 Hall sensor 2 Hall sensor 3
Figure 2.7: Output Hall sensors BLDC machine over one electrical revolution
Chapter 2. General aspects of BLDC machines 11
2.4 Field-weakening operation of a BLDC machine
The obtainable speed of a BLDC machine in the regular six-step control method (where the
stator current is in phase with the back-emf) is limited. When the speed rises, the back-emf
rises along with it. It becomes harder and harder to maintain the current in the stator, which
is necessary to produce the required torque. At a certain rotor speed, the back-emf balances
the supply voltage. In a no-load condition, the stator current becomes zero at this point. The
vector diagram of the voltages and currents in the regular six-step control method is depicted
in Fig. 2.8 in a d-q reference frame. The variable Ip is the equivalent excitation current that
is required to produce a magnetic field equal to that produced by the permanent magnets.
The variable E is the induced back-emf in the stator winding. The stator current I is in
phase with E. Due to the inductance of the stator winding, the stator voltage V leads the
stator current I. In Fig. 2.8, the stator current I does not influence the produced magnetic
field by the rotor [5].
In regular DC machines, the obtainable rotor speed is increased by lowering the current in
the field winding, allowing higher rotor speeds for the same back-emf value. However, the
magnetic field in BLDC machines is produced by permanent magnets. At first sight, it seems
that there is no comparable action to allow higher rotor speeds in BLDC drives, as the field
produced by the permanent magnets cannot be altered. However, the magnetic flux produced
by the stator windings can be used to accomplish the same effect. This is done by letting
the stator current I lead the back-emf E. By doing so, the stator current gets a component
Id along the positive d-axis. This component will produce a magnetic field that counteracts
the field produced by the permanent magnets in the rotor.
Figure 2.8: Vector diagram for situation where stator current I is in phase with the produced back-
emf E in a d-q reference frame
Chapter 2. General aspects of BLDC machines 12
Ip
Figure 2.9: Vector diagram for the situation where the stator current I leads the back-emf E in a
d-q reference frame
2.5 Control scheme of a BLDC motor
A standard speed control scheme for a BLDC machine is depicted in Fig. 2.10. The rotor
position is measured with an encoder in this figure, but it can be replaced by a sensorless
position estimation algorithm. Once the rotor position information is known, the switching
signals for the power stage are generated by the control algorithm. The magnetic field, pro-
duced by the stator winding, is guided in such a way that it is approximately perpendicular
to the magnetic field produced by the rotor. At that instant, the produced torque is pro-
portional to the current in the DC bus. The speed of the BLDC machine is controlled by
a PI (proportional-integral) controller. This speed controller generates the setpoint for the
DC-bus current, which determines the required electromagnetic torque. The current in the
DC bus is also controlled by a PI controller. The current controller determines the voltage
reference, which is translated as a duty ratio and is applied to the switches of the power
stage: the output of the current controller (PWM reference) is compared with a triangular
carrier signal to generate the PWM signals to drive the switches, Fig. 2.11.
VSI
BLDC
Rotor-position
DC - supply
PIComparator
PI
Rotor-speedProcessor
Figure 2.10: Control scheme for speed of BLDC machine
Chapter 2. General aspects of BLDC machines 13
Carrier
Current reference
t
OFF
ON
Switching signal
Figure 2.11: Working principle PWM
The duty ratio determines the time a conduction path to the DC supply is closed, relative to
the PWM period. Different switching strategies exist.
Standard switching strategy In the six-step control of BLDC machines, a conduction
path is formed by closing one of the upper switches and one of the bottom switches
of the inverter. In the standard switching strategy, the upper switch remains closed
at all times. When the PWM signal is OFF, the bottom switch is opened and the
current starts flowing through the upper anti-parallel diode of the same inverter leg.
The terminals of the two motor phases that conduct current are attached to each other,
i.e. the motor phases are now fed with a voltage of 0 V. The current decays due to the
resistance of the motor phases. The PWM switching signals, for the conduction path
shown in Fig. 2.6, are depicted in Fig. 2.12a for a duty ratio of 50 %.
Independent switching strategy The conduction path is broken by opening both of the
conducting switches. Due to the inductance of the motor windings, the direction of
the current remains the same and decays by flowing through the diodes (D2 and D3
for Fig. 2.6). The polarity of the voltage applied to the active phases of the machine
reverses when opening the conduction path and it forces the current to drop to zero.
While the current decays, power is delivered to the DC supply (the DC supply must
be able to deal with a reversed power flow). The PWM switching signals, for the
conduction path shown in Fig. 2.6, are depicted in Fig. 2.12b for a duty ratio of 50 %.
Complementary switching strategy When the conducting switches are opened in the
complementary switching strategy, the other switches of the same inverter legs are closed
simultaneously (T2 and T3 in Fig. 2.6). When the conducting switches are opened, the
polarity of the voltage applied to the active phases of the machine again changes sign.
The current in the motor phases decreases while delivering power to the DC supply
(the DC supply must be able to deal with a reversed power flow). Furthermore, the
current can now change sign, reversing the electromagnetic torque. As long as the rotor
speed remains positive, the mechanical energy of the machine is reduced while taking
energy from the supply (counter-current braking). The PWM switching signals, for the
conduction path shown in Fig. 2.6, are depicted in Fig. 2.12c for a duty ratio of 50 %.
Chapter 2. General aspects of BLDC machines 14
(a) (b) (c)
Figure 2.12: Standard (a), independent (b) and complementary (c) PWM switching strategy for the
conduction path in Fig. 2.6 and a duty ratio of 50 %.
2.6 Methods for sensorless control of BLDC machines
Using position sensors, a behaviour similar to that of a conventional DC machine can be
obtained for BLDC machines. However, additional sensors to detect the rotor position re-
quire an additional cost (electronics, volume) and more maintenance [7]. Moreover, a BLDC
machine without additional position sensors can be manufactured more compactly. Besides
cost, also reliability plays an important role. Drives with position sensors will stop working
when the sensitive position sensors or their supplying equipment fail. These disadvantages
of additional position sensors drove the evolution of sensorless (no mechanical sensors) and
self-sensing control methods, where the different mechanical states of the machine are esti-
mated from measurements of voltages and currents. The estimated rotor position is used to
decide when the commutation to the next switching state should happen. As these meth-
ods are often not as accurate in predicting these commutation moments, a lower operation
performance can be expected. An overview of several sensorless control methods for BLDC
machines is given in [8] and [9].
In general, a distinction has to be made between methods that estimate the rotor position
at low speed and those that estimate the rotor position at high rotor speeds (above 10 % of
nominal rotor speed).
A method that is used to estimate the rotor position at low rotor speeds is the VASCO
method, which was developped by dr. ir. F. De Belie [10]. In this method, high frequent
test-signals are added to the output of the current controller, such that the average-current
samples remain unchanged. From the current response of the machine to these signals, the
rotor position is estimated. This method is based on a difference between Ld and Lq.
When the rotor speed becomes large enough, it is often preferred to use back-emf mea-
surements in order to estimate the commutation moments. From the current waveform in
Fig. 2.4a, it follows that at every moment, one machine terminal is not connected to the
Chapter 2. General aspects of BLDC machines 15
DC supply through the controlled switches. Once the transient current in this phase of the
machine has died out, the measured voltage at this terminal is related to the back-emf. For
a BLDC machine that is star-connected, access to the star point is required to measure the
back-emf in a phase. When a connection to the star point is absent, three star-connected
resistances are connected to the machine terminals [7]. The voltage of the star point of these
resistances can be measured and is called the virtual neutral point voltage, Fig. 2.13. In this
figure, A, B and C represent the motor windings. The voltage vn is the voltage of the inac-
cessible neutral point of the machine, v′n is the virtual neutral point voltage. A static circuit
analysis is carried out by simulation in SPICE (scheme in Fig. 2.14) in order to illustrate the
difference between the back-emf signal which is referred to vn and the back-emf signal which
is referred to v′n. The two waveforms are shown in Fig. 2.15.
Figure 2.13: Creation of a virtual neutral point v′n using resistors
The measured back-emf signal can be used in different ways to estimate the rotor position.
Methods that use zero-crossings of the back-emf to estimate the rotor position are outlined
in [11]-[12]. Referring to Fig. 2.3c, we see that the back-emf crosses zero in the middle of
the 60 degree interval [5π6 ,7π6 ]. The next commutation moment should happen 30 electrical
degrees after the zero-crossing of the back-emf.
Rs
0.17
Ls
0.00028
Rs0.17
Ls
0.00028
Rs
0.17
Ls
0.00028
R12K2
R22K2
R3
2K2
ea
eb
ec
V1
Vn Vn'
Back-EMFirefereditovirtualineutralipoint
Back-EMFirefereditoneutralipoint
I1
I2 I1-I2
Vc
Figure 2.14: The schematic diagram which is used in SPICE to simulate the effect of using the
virtual neutral point v′n instead of the actual neutral point vn
Chapter 2. General aspects of BLDC machines 16
0ms 10ms 20ms 30ms 40ms 50ms 60ms 70ms 80ms 90ms 100ms 110ms
-3.0V
-2.4V
-1.8V
-1.2V
-0.6V
0.0V
0.6V
1.2V
1.8V
2.4V
3.0V
Back-EMF refered tovirtual neutral point
Back-EMF refered toneutral point
120ms
Figure 2.15: Back-emf signal measured relative to the neutral point voltage v′n
In steady-state, this can easily be achieved using timers. When a commutation occurs, a
timer is started. At the zero-crossing of the back-emf, the timer value is stored in a memory
block and a new timer is started. When the value of the new timer reached the stored one,
the next commutation should happen. The big disadvantage of this method is that in tran-
sients the commutation moments are not estimated accurately, as shown in Fig. 2.16. Due to
transients in the rotor speed, the time needed to go through the first 30 degree interval is not
equal to that for the second 30 degree interval, leading to an error in the commutation timing.
0.1170 0.1215 0.1226−150
−100
−50
0
50
100
150
Time [Sec]
U
V
W
Figure 2.16: Using timers and zero-crossings of the back-emf signal to estimate the commutation
moment and error during transients
The third-harmonic component in the back-emf signal can also be used to estimate the rotor
position [13]. In this method, the voltage between the (accessible) star point of the motor
and the virtual neutral point (Fig. 2.13) is integrated. Zero-crossings of the resulting signal
correspond to the commutation moments. A major drawback of this method is that the star
point of the machine has to be accessible. The method is also susceptible to integration drift.
The conduction state of the free-wheeling diodes in the silent phase can be used to detect
the zero-crossings of the back-emf indirectly. A drawback of this method is that additional
Chapter 2. General aspects of BLDC machines 17
electronic circuits are required to monitor the conduction state of the diodes.
Other methods use the flux linkage Ψ to estimate the rotor position. Here, the voltage
equation of the machine is integrated:
Ψ =
∫ t
0V (τ)−RI(τ)dτ (2.1)
For these methods, the relationship between the flux linkage and the rotor position and the
initial position has to be known. Also the matrix R (which depends on temperature, for
example) has to be known with satisfactory accuracy. The method is sensitive to integration
drift.
In transients, more advanced methods than tracking the zero-crossings are required to achieve
a good commutation timing. The problem with the methods that use the zero-crossings of the
back-emf is that they use timers to determine the commutation moments. It would be more
logical to consider the value of the back-emf to get a better estimation of the commutation
moments, as the value of the back-emf has a direct relation with the working condition of
the machine. To get a better performance in transient conditions, the symmetric-threshold-
tracking method can be used, which is explained in Fig. 2.17 [7]. In this method, the value of
the back-emf is sampled after a commutation has occurred. Because the current is commu-
tated, the back-emf signal is corrupted with transient spikes. To get a more reliable value for
the back-emf, it is sampled with a delay ∆t. The back-emf is then monitored until it reaches
the negative of the stored back-emf value. At this moment, the algorithm waits a time equal
to the delay ∆t before performing the next commutation. The delay ∆t is adapted to the
working conditions of the machine. At high speeds and during transients, ∆t is chosen as
small as possible. At low rotor speeds, ∆t is chosen as big as possible [7]. Special care is
needed when using small values for ∆t: when the speed drops suddenly, it is possible that
the back-emf signal does not reach its threshold. For this reason, the authors of [7] calculated
the minimal allowable ∆t. The availability of a load torque estimation would improve the
behaviour of the algorithm in transients, as it would decrease the minimal allowable ∆t.
Chapter 2. General aspects of BLDC machines 18
commutation spikesclearance delay
back-emf amplitude sampling moment
phaseback-emf
commutationmoment [n+1]
commutationmoment [n]
zero-crossingmoment
Δt
Δt
sampled back-emfamplitude (SEA)
threshold=SEA
Figure 2.17: Using a threshold for the commutation timing to improve performance in transients
Chapter 3
Dynamical model of a BLDC
machine
3.1 Introduction
In this section, a mathematical machine model for BLDC machines is derived. By discretiz-
ing the continuous-time model, a discrete time model will be derived as well. The derivation
of a discrete time model has several purposes. The behaviour of the machine can be ex-
amined under several working conditions. Moreover, the machine model, together with the
correct machine parameters, can be used to tune the PID (proportional-integral-derivative)
controllers for speed and current (Hardware-in-the-loop). The gains of the PID controllers can
be changed without risk of damaging the real machine. Further, a reliable machine model is
also inevitable to predict the future behaviour of the machine (for example in a Model Based
Predictive Control strategy).
3.2 Model of the permanent magnet synchronous motor
Modelling a system is, in general, performed in such a way that it covers the most important
behaviour and features of the system (the model must be accurate enough), while keeping
it simple enough to be managed by simulation programs and algorithms. Therefore, some
simplifications and assumptions are made in the derivation of the model for a BLDC machine:
The BLDC machine has a three phase stator winding that is star connected. This
number of phases occurs frequently in BLDC machines, as it suffices for an acceptable
torque ripple.
The machine is three phase symmetrical.
Non-linearities due to saturation are neglected.
Skin effect is not considered. This implies that resistances are assumed to be indepen-
dent of frequency.
19
Chapter 3. Dynamical model of a BLDC machine 20
Slot effects are neglected.
Models of regular induction and synchronous machines are usually derived in a d-q reference
frame. When deriving these models, the three phase reference frames are recalculated to
equivalent two phase reference frames using the Clarke or the zero-direct-quadrature trans-
formation. Sinusoidal varying (with respect to the position) inductances become constants in
this two phase reference frame. Unlike the modelling of regular induction and synchronous
machines, the modelling of a BLDC machine will be done in the abc-reference frame. The
inductances in a BLDC machine do not vary sinusoidally (trapezoidal back-emf), so there is
no advantage in using a two phase reference frame [14].
The electrical equations that describe the machine are derived using Kirchhoff’s laws. The
terminal voltage v = [va, vb, vc]T , referred to the star point of the machine, can be written
as:
v = R · i+d
dt[L(θ) · i] + e (3.1)
Where i = [ia, ib, ic]T represents the phase current vector and e = [ea, eb, ec]
T is the back-emf
vector. R is the phase resistance matrix and L the rotor position dependent phase inductance
matrix:
R =
Rs 0 0
0 Rs 0
0 0 Rs
(3.2)
L =
Ls Ms Ms
Ms Ls Ms
Ms Ms Ls
−Ls2
cos(2θ) cos(2(θ − π3 )) cos(2(θ − 2π
3 ))
cos(2(θ − π3 )) cos(2(θ − 2π
3 )) cos(2(θ − 3π3 ))
cos(2(θ − 2π3 )) cos(2(θ − 3π
3 )) cos(2(θ − 4π3 ))
(3.3)
In these matrices, Rs is the phase resistance and Ls is the phase inductance. The machine
parameter Ls2 reflects the saliency of the machine. This reluctance effect will be neglected:
Ls2 = 0 (3.4)
The star point of an electrical machine is normally not accessible. Methods exist to create a
virtual neutral point, which behaves similar to the star point of the machine (see section 2.6).
The model can, however, be derived without using the neutral point voltage by considering
line-to-line voltages:
vab = Rs(ia − ib) + (Ls −Ms)d
dt(ia − ib) + (ea − eb) (3.5)
vbc = Rs(ib − ic) + (Ls −Ms)d
dt(ib − ic) + (eb − ec) (3.6)
vca = Rs(ic − ia) + (Ls −Ms)d
dt(ic − ia) + (ec − ea) (3.7)
Chapter 3. Dynamical model of a BLDC machine 21
The back-emf of the machine is the voltage that is induced in the stator winding by a changing
magnetic field due to the rotation speed of the rotor. It is equal to the product of the magnetic
flux in the machine and the rotor speed wm and is assumed to be perfectly trapezoidal:
ea = keωmF (θe) (3.8)
eb = keωmF (θe −2π
3) (3.9)
ec = keωmF (θe −4π
3) (3.10)
The parameter ke is called the back-emf constant, the electrical angle of the rotor is repre-
sented by θe and the function F is a trapezoidal function with amplitude 1, that determines
the shape of the back-emf waveform:
F (θe) =
1, 0 ≤ θe ≤ 2π3
1− 6π
(θe − 2π
3
), 2π
3 ≤ θe ≤ 4π3
−1, π ≤ θe ≤ 5π3
−1 + 6π
(θe − 5π
3
), 5π
3 ≤ θe ≤ 2π
(3.11)
The function F is sometimes called the speed-normalized back-emf. If the rotor position and
speed are known, the corresponding value of the back-emf can be calculated. The switching
signals to the inverter determine the applied line-to-line voltages vab, vbc and vca. These
switching signals are applied in such a way that the torque is maximal at that rotor position.
Using the equations 3.5-3.7, the instantaneous current in each phase can be calculated. The
quasi-rectangular waveform of the currents results from the PWM switching signals to the
inverter.
In addition to the electrical equations, the mechanical differential equation has to be consid-
ered as well:
Jdωmdt
= Te − kf · ωm − Tl (3.12)
The variable ωm represents the rotor speed, J is the inertia of the rotor and load, Te is the
electromagnetic torque and Tl is the load torque. In equation 3.12, a frictional torque is
also introduced. The frictional torque is proportional to the rotor speed, with a factor of
proportionality kf .
The electromagnetic torque Te depends on the magnetic flux in the air gap and the current
that flows in the stator. Because the flux depends on the rotor position (as illustrated in
Fig. 2.3a), Te also depends on the rotor position. The electromagnetic torque can be expressed
in function of F :
Te = kt
[F (θe)ia + F (θe −
2π
3)ib + F (θe +
2π
3)ic
](3.13)
Chapter 3. Dynamical model of a BLDC machine 22
Here, kt is the torque constant. Because the sum of the line-to-line voltages is equal to zero,
only two of the three equations 3.5-3.7 are independent of each other. This implies that the
third equation does not have any added value to the model: vca can be derived from vab and
vbc. The equation for vca will not be considered in the rest of the model derivation.
As already mentioned, the machine is assumed to be star connected, where the star point is
not accessible. It follows that zero-sequence currents cannot exist:
ia + ib + ic = 0 (3.14)
The voltage equations 3.5-3.6 then become:
vab = Rs(ia − ib) + (Ls −Ms)d
dt(ia − ib) + (ea − eb) (3.15)
vbc = Rs(ia + 2ib) + (Ls −Ms)d
dt(ia + 2ib) + (eb − ec) (3.16)
These equations can be transformed into the following state space model:
d
dt
ia
ib
ωm
θm
=
−RsL 0 0 0
0 −RsL 0 0
0 0 −kfJ 0
0 0 1 0
ia
ib
ωm
θm
+
23L
13L 0
− 13L
13L 0
0 0 1J
0 0 0
vab − eabvbc − ebcTe − TL
(3.17)
Where L = Ls −Ms and the back-emf voltages eab and ebc are defined as:
eab = ea − eb (3.18)
ebc = eb − ec (3.19)
3.3 Model of the inverter
In the previous section, the electrical and mechanical equations governing the stator winding
and rotor of the machine were modelled. A BLDC machine is connected to a DC supply
through an inverter. This inverter serves as an input to the electrical equations. The model
for the inverter depends on the switching strategy. In this study, the model is derived for the
complementary switching strategy.
As mentioned earlier, eab and ebc are determined by the rotor position and speed. The volt-
ages vab and vbc are determined by the switching signals to the inverter. For every time
interval of 60 electrical degrees, we can calculate the possible values for the applied line-to-
line voltages.
Chapter 3. Dynamical model of a BLDC machine 23
In the interval 0-60 electrical degrees (interval I), the switches T1 and T4 are turned on
(Fig. 2.6). The current in phase A is positive, the current in phase B is negative. In phase
C, only a transient current flows: its sign depends on the previous state of the switches.
In interval I, the line-to-line voltage vab is equal to the supply voltage, regardless of the
currents ia, ib and ic.
vab = Vs, θ ∈[0,π
3
](3.20)
If there is a positive transient current in phase C, diode D6 is conducting. This means that
the terminal of phase C is connected with the low voltage side of the supply. As both the
terminals of phase B and phase C are connected to the low voltage side of the supply, the
line-to-line voltage vbc is zero.
When the current ic drops to zero, the current that flows through phase A is identical to that
in phase B. The supply voltage Vs can be expressed in terms of the current ia, the impedance
Z = R+ jωL of the phases A and B, ea and eb:
Vs = 2 · Z · ia + ea − eb (3.21)
This equation results in the following expression for the voltage drop over the impedance of
a conducting phase:
Z · ia =1
2(Vs − ea + eb) (3.22)
The line-to-line voltage vbc can now be written in function of this voltage drop:
vbc = eb − Zia − ec =1
2(−Vs + ea + eb)− ec (3.23)
With this equation, an expression for vbc − ebc is found.
If the transient current in phase C is negative, the diode D5 is conducting. The voltage vbc
then equals the negative of the supply voltage, so that the following expression holds:
vbc − ebc = −Vs − eb + ec (3.24)
Similar calculations can be done for the other switching states of the inverter. The expres-
sions for the voltages vab − eab and vbc − ebc of the six conducting states of the inverter are
summarized in table 3.1.
Other values for vab − eab and vbc − ebc result when the PWM output is OFF. The values
depend on the chosen PWM switching strategy, as this strategy determines the path the
current follows during OFF mode. More tables like table 3.1 ensue for each switching strategy.
The table for the complementary switching strategy is easily derived from table 3.1. When
the PWM output changes to OFF, the conducting switches are opened and the other switches
Chapter 3. Dynamical model of a BLDC machine 24
of the same inverter leg are closed (section 2.5). This action is equivalent to jumping from
one conduction state (determined by θe) to the one that belongs to θe + π. The switching
action of the PWM is equal to shifting three conduction states in table 3.1.
Table 3.1: Voltages vab − eab and vbc − ebc for the conducting states of the invertor
θe Transient current vab − eab vbc − ebc
0− π3
ic > 0
Vs − ea + eb
−eb + ec
ic = 0 12 (−Vs + ea − eb)
ic < 0 −Vs − eb + ec
π3 − 2π
3
ib > 0 Vs − ea + eb −eb + ec
ib = 0 12 (Vs − ea + ec)
12 (Vs − ea + ec)
ib < 0 −ea + eb Vs − eb + ec
2π3 − π
ia > 0 −Vs − ea + eb
Vs − eb + ecia = 0 12 (−Vs + eb − ec)
ia < 0 −ea + eb
π − 4π3
ic > 0
−Vs − ea + eb
Vs − eb + ec
ic = 0 12 (Vs + ea − eb)
ic < 0 −eb + ec
4π3 − 5π
3
ib > 0 −ea + eb −Vs − eb + ec
ib = 0 12 (−Vs − ea + ec)
12 (−Vs − ea + ec)
ib < 0 −Vs − ea + eb Vs − eb + ec
5π3 − 2π
ia > 0 −ea + eb
−Vs − eb + ecia = 0 12 (Vs + eb − ec)
ia < 0 Vs − ea + eb
3.4 Discretization of the BLDC model
The dynamical model derived above is described in continuous time. The result is a set of
differential equations. These equations are solved numerically in Simulink/Matlab. Imple-
menting the model in digital processing units (DSP’s, FPGA’s,...), which are used to control
BLDC machines, requires the model to be discrete. In this section, the derived continuous
model will be discretized. A zero-order hold discretization method [15] will be used for this
purpose. The differential equation 3.17 is one of the following form:
dx
dt= Ax+Bu (3.25)
It can be proven that a general solution for this differential equation is given by:
x(t) = eA(t−t0)x(t0) +
∫ t
t0
eA(t−τ)Bu(τ)dτ (3.26)
Chapter 3. Dynamical model of a BLDC machine 25
The solution x at time kδ is denoted by xk. If the solution is sampled at time kδ and at time
(k+ 1)δ and the input u is kept constant in between two samples (δ is the sampling period),
it follows that:
xk+1 = eAδxk +
∫ δ
0eA(δ−τ)Bdτ · uk (3.27)
= ASHxk +BSHuk (3.28)
The vector uk is the value of the input u in the time interval [kδ, (k + 1)δ]. Applying the
formulas of equation 3.27 to the matrices in equation 3.17, results in the following discretized
system:
ASH =
e−RsδL 0 0 0
0 e−RsδL 0 0
0 0 1 0
0 0 δ 1
BSH =
231−e−
RsδL
Rs131−e−
RsδL
Rs0
−131−e−
RsδL
R131−e−
RsδL
R 0
0 0 δJ
0 0 δ2
2J
(3.29)
3.5 Discretization of PID controller
Two PID controllers are used to control the machine: a speed controller and a current
controller (as illustrated in Fig. 2.10). The parameter to be controlled is measured and
compared with its setpoint. The error signal e is the input to the PID controller:
e(t) = r(t)− y(t) (3.30)
The setpoint at time t is represented by r(t) and y(t) is the measurement of the controlled
variable at time t. The PID controller translates this error e into a control effort u:
u(t) = kpe(t) + ki
∫ t
0e(τ)dτ + kd
de
dt(3.31)
The parameters kp, ki and kd are chosen in such a way that the error e approaches zero in
an acceptable way. Taking the derivative of equation 3.31, we get the following expression:
du
dt= kp
de
dt+ kie+ kd
d2e
dt2(3.32)
We can discretize this equation using the backward Euler method:
u(tk)− u(tk−1)h
= kpe(tk)− e(tk−1)
h+ kie(tk) + kd
e(tk)− e(tk−1)h
(3.33)
Where e represents the first derivative to time of e:
u(tk)− u(tk−1)h
= kpe(tk)− e(tk−1)
h+ kie(tk) + kd
e(tk)−e(tk−1)h − e(tk−1)−e(tk−2)
h
h(3.34)
Chapter 3. Dynamical model of a BLDC machine 26
The control effort at time t = tk, u(tk), can be written as:
u(tk) = u(tk−1) + kp [e(tk)− e(tk−1)] + kihe(tk) +kdh
[e(tk)− 2e(tk−1) + e(tk−2)] (3.35)
3.6 Simulation of model using Simulink
3.6.1 Implementation of the model in Simulink
In the previous sections, a continuous-time and a discrete-time model were derived. The
continuous-time model (equation 3.17) was represented as a linear state space model of the
following form:
x = Ax+Bu (3.36)
However, the model equations of a BLDC machine are nonlinear in the used state variables
x = [ia, ib, ωm, θm]. The back-emf results from the product of the function F , which depends
on the state variables θm and ωm. The generated electromagnetic torque Te depends on the
product of current (ia and ib) and the function F . The set of equations in 3.17 is thus a
set of nonlinear differential equations. By considering the nonlinear components, the back-
emf and the electromagnetic torque, as external inputs (illustrated in Fig. 3.1), the resulting
system was discretized using a procedure for linear systems, based on the matrix exponential.
Simulations show that the discrete-time model approximates the continuous-time model well
if the discretization period is sufficiently small when compared with the carrier frequency of
the current PI controller.
Figure 3.1: Nonlinear components of the derived differential equations are modelled as nonlinear
feedback signals
3.6.2 Simulated waveforms using the BLDC model
The model outlined above is implemented in Simulink/Matlab. The model is first tested
without speed and current controller. The waveform of the phase currents for this case are
depicted in Fig. 3.2. They are equal to those that would result from a VSI topology. The
rotor speed is shown in Fig. 3.3a. The back-emf evolves proportional to the rotor speed.
At low rotor speeds, the back-emf is small and the phase currents can become high. Every
Chapter 3. Dynamical model of a BLDC machine 27
60 electrical degrees, the current from one phase is commutated to the unexcited phase.
The waveform of the electromagnetic torque Te is depicted in Fig. 3.3b. The electromagnetic
torque is proportional to the phase current in the conducting phases. Without current control,
the current is allowed to vary substantially. As a consequence, there is a visible torque ripple.
0 5 10 15 20 25 30 35 40 45 50
−30
−20
−10
0
10
20
30
Time [ms]
Current[A
]
IaIbIc
Figure 3.2: Phase currents in function of time for a BLDC machine without speed and current PI
controller
0 20 40 60 80 1000
50
100
150
200
250
300
350
400
450
Time [ms]
Rotorspeedωm
[rad
/s]
(a)
0 20 40 60 80 1000
0.2
0.4
0.6
0.8
1
1.2
1.4
Time [ms]
Electromag
netic
torqueTe[N
m]
(b)
Figure 3.3: Rotor speed (a) and electromagnetic torque (b) in function of time without PI speed
and current controller
As a second test, we investigate the dynamical behaviour of the BLDC machine using the
speed and current PI controllers. The speed reference is set to 200 rad/s, after 50 ms the
setpoint is changed to 100 rad/s. The phase current is now limited to 2 A (Fig. 3.4), this
limits the obtainable acceleration of the machine, Fig. 3.5a. The limitation on the current
is achieved by using a saturate block in between the speed and current controller, i.e. by
limiting the current reference of the PI current controller. The complementary switching
strategy is used to limit the current. When the speed reference is lowered, the sign of the
Chapter 3. Dynamical model of a BLDC machine 28
phase current reverses. The applied electromagnetic torque Te becomes negative, slowing
down the machine. The ripple in the current is limited by the PWM action that comes from
the speed and current controllers. The supply now approximately delivers constant current
blocks to the machine (VSI-PWM). The torque ripple is lower than in the uncontrolled case,
as shown in Fig. 3.5b.
0 10 20 30 40 50 60 70 80 90 100−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
Time [ms]
Cur
rent
[A]
Ia
Ib
Ic
Figure 3.4: Phase currents in function of time for a BLDC machine with speed and current PI
controller
0 20 40 60 80 1000
20
40
60
80
100
120
140
160
180
200
Time [ms]
Rotor
speedωm
[rad
/s]
(a)
0 20 40 60 80 100−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Time [ms]
Electromagnetic
torqueTe[N
m]
(b)
Figure 3.5: Rotor speed (a) and electromagnetic torque (b) in function of time with PI speed and
current controller
Chapter 4
Speed, position and load torque
estimation
4.1 Introduction
Control theory is used to obtain a dynamical system which fulfils certain criteria (overshoot
and settling time, for example). This is usually done by implementing a feedback loop like
that in Fig. 4.1. The input to the created system is the signal we want the output to follow.
This signal is referred to as the reference signal. The output of the system is measured using
sensors and is compared with the reference signal. The difference between these two signals
is used by the controller to determine the input to the process.
ProcessController
Sensors
Reference Output
Figure 4.1: Scheme of a controlled system
Unfortunately, it is not always possible or desirable to measure all the outputs of the process.
However, it is possible that these unmeasured outputs are required to control the process in
a good way. For this reason, observers for state estimation were developed. In BLDC drives,
an extra set of position sensors (Hall sensors, for example) is unwanted. Therefore, a position
estimation is important for determining the correct commutation moments. Furthermore,
speed information is required for speed control of the drive.
Direct measurement of the load torque on the machine shaft would require another expensive
and sensitive mechanical sensor to the drive system. For this reason, a load torque estimation
algorithm is proposed in this chapter. If the control algorithm disposes of information about
load torque disturbances, the dynamics of the drive can greatly be improved, as shown in
29
Chapter 4. Speed, position and load torque estimation 30
chapter 6. A load torque estimation can also be used for mechanical fault detection, as
described in [16].
4.1.1 Luenberger observer
The most fundamental observer for time-invariant linear systems is the Luenberger observer
[15]. In what follows, the Luenberger observer will be derived for the following discrete
system:
x(k + 1) = Ax(k) +Bu(k) (4.1)
y(k) = Cx(k) (4.2)
The vector x represents the state we want to estimate from measurements y. The vector u
represents the input to the system and is considered measurable. A state estimator of the
following form was proposed by Luenberger:
x(k + 1) = Ax(k) +Bu(k) +L[y(k)− y(k)] (4.3)
y(k) = Cx(k) (4.4)
The estimated state is denoted with x. Introducing the error of the estimation e(k) =
x(k)− x(k), it follows that the dynamics of the error are given by:
e(k + 1) = (A−LC)e(k) (4.5)
A discrete-time system is stable if its poles lie within the unit circle. The estimated state x
will converge to the real state x if the poles of A−LC lie within the unit circle. If a matrix
L exists such that this is the case, the system from equations 4.1-4.2 is called observable. A
disadvantage of the Luenberger observer is that it does not take into account the occurring
disturbances in the system and the noise in the measurements y.
4.1.2 Kalman-Bucy filter
For linear systems which are influenced by noise, usually a Kalman-Bucy filter is used. The
Kalman-Bucy filter will be explained for a discrete-time system:
x(k + 1) = A(k)x(k) +B(k)u(k) +w(k) (4.6)
y(k) = C(k)x(k) + v(k) (4.7)
The vectors v andw represent the measurement noise and disturbance inputs, respectively. It
is assumed that v and w have a mean value of zero, that successive values of v and successive
values of w are uncorrelated and that v and w are uncorrelated (white Gaussian processes).
Chapter 4. Speed, position and load torque estimation 31
Under these conditions, it is possible to derive an optimal (in the class of linear and nonlinear
filters) state estimator [15]:
x(k + 1) = A(k)x(k) +B(k)u(k) +H(k)(y(k)−C(k)x(k)) (4.8)
Where H(k) is determined as:
H(k) = A(k)P (k)C(k)T (V (k) +C(k)P (k)C(k)T )−1 (4.9)
The matrix P (k) is the covariance matrix of the estimation error at time t = k and is updated
as follows:
P (k + 1) = A(k)P (k)A(k)T
−A(k)P (k)C(k)T (V (k) +C(k)P (k)C(k)T )−1C(k)P (k)A(k)T +W (k) (4.10)
Here, V (k) andW (k) represent the covariance matrices at time t = k of v andw, respectively.
A similar filter, the Extended Kalman Filter (EKF), exists for nonlinear systems of the form:
x(k + 1) = f(x(k),u(k)) +w(k) (4.11)
y(k) = h(x(k)) + v(k) (4.12)
The functions f en h are nonlinear and differentiable. In the EKF, the functions f and h are
linearized around the last estimated state x:
A(k) =∂f
∂x
∣∣∣∣x(k−1),u(k−1)
(4.13)
C(k) =∂f
∂x
∣∣∣∣x(k−1),u(k−1)
(4.14)
Disadvantages of the Kalman-Bucy filter are:
The computational complexity of the algorithm (the calculation of the inverse of a
matrix required).
The variables v and w are assumed to be white noise processes, in practice this is not
always the case.
Information about V (k) and W (k) is necessary to obtain good observer dynamics.
Chapter 4. Speed, position and load torque estimation 32
4.2 Speed and position estimation
The need for a good position estimation emerges clearly from chapter 2. The methods that
were explained in chapter 2 rely on timers, integration or the value of the measured back-emf.
All of these methods have some inherent disadvantages. When using timers, it is impossible
to capture transients in the rotor speed for the position estimation. Methods that rely on
the integration of a measured variable suffer from integration drift, which is hard to eliminate.
Using the value of the measured back-emf signal (symmetric-threshold-tracking method) in-
stead of timers greatly improves transient performance of the commutation timing. However,
more information is contained in the measured back-emf signal. The measured back-emf
is the result of a changing magnetic rotor flux in the stator winding. The change of the
magnetic rotor flux has two origins. Firstly, the magnitude of the rotor flux is position de-
pendent, the measured back-emf will change due to a change in the rotor position. Secondly,
the rotor speed determines how fast the rotor position changes and thus has an influence on
the measured back-emf:
e = keF (θe)ωm
Monitoring the changes in the back-emf, besides monitoring the amplitude, allows to obtain
an estimation of the rotor speed. It is possible to obtain an estimation of the exact com-
mutation instants by using the value of the back-emf and the estimated rotor speed. This
eliminates the need for speed and position sensors.
When driving a BLDC machine, only two phases of the machine are conducting. This means
that the back-emf can be measured in the unexcited (third) phase. An estimation of the speed
is obtained by comparing the value of the measured back-emf signal for successive samples
e[k − 1] (measured back-emf at sample k − 1) and e[k] (measured back-emf at sample k).
Starting from equation 3.8, it follows that:
e[k]− e[k − 1] = ke (F (θe[k])− F (θe[k − 1]))ωm[k]
+ keF (θe[k])(ωm[k]− ωm[k − 1]) (4.15)
= kemL (θe[k]− θe[k − 1])ωm[k] + keF (θe[k])(ωm[k]− ωm[k − 1]) (4.16)
≈ kemLTsNpωm[k − 1]ωm[k] + keF (θe[k])(ωm[k]− ωm[k − 1]) (4.17)
The approximation in equation 4.17 is only valid if the sampling time Ts is small enough. In
this derivation, it is assumed that the back-emf varies linearly with the electrical angle θe.
The slope of this relationship is represented by mL. Furthermore, by considering τm >> τe,
it can be assumed that the rotor speed does not change between successive back-emf samples
(ω[k − 1] ≈ ω[k]). From equation 4.17, the following expression is obtained to estimate the
rotor speed:
Chapter 4. Speed, position and load torque estimation 33
ωm[k] =
√e[k]− e[k − 1]
kemLTsNp(4.18)
Using the back-emf measurement e[k] and the estimation of the rotor speed ωm[k], the value
of the function F at that instant can be estimated:
F (θe[k]) =e[k]
keωm[k](4.19)
As there is a one-to-one relationship between F and θe (equation 3.11), an estimation of F
implies an estimation of θe.
4.3 Load torque estimation
The load torque estimator is derived from the differential equation that governs the mechan-
ical part of the BLDC macine. By neglecting the friction, equation 3.12 can be reduced
to:
Jdωmdt
= Te − Tl (4.20)
This equation was already discretized in section 3.4 (equation 3.29):
ωm[k + 1] = ωm[k] + TsTe[k]− Tl[k]
J(4.21)
In steady-state, Te is proportional to the measured DC-bus current idc. This can be proven
by considering equation 3.13. In steady-state, one of the currents ia, ib or ic is zero. The
other two currents are equal in magnitude, but have an opposite sign. In equation 3.13, one
of the currents is multiplied by 1, the other one is multiplied by -1. This leads to the following
expression for Te in steady-state:
Te = 2ktidc (4.22)
Equation 4.21 is used to predict the rotor speed at the next time sample t = k + 1 (t is now
a discrete time):
ωm,pred[k + 1] = ωm[k] + Ts2ktidc[k]− Tl[k]
J(4.23)
The value of the rotor position at the time sample t = k + 1 can be predicted using the
discretized model from equation 3.29:
θe,pred[k + 1] = θe[k] + Tsωm[k] +T 2s
2J
(2ktidc[k]− Tl[k]
)(4.24)
However, the load torque at time instant t = k is unknown. An updating scheme is used for
the load torque estimation. Two indices m and l are used for the load torque estimation,
Chapter 4. Speed, position and load torque estimation 34
Tl[m, l]. The first index represents the time instant for which the load torque estimation is
made. The second index represents the time instant at which the estimation is done. The
load torque estimation Tl[m, l] thus represents the load torque estimation for the instant
t = m, done at the time instant t = l. At t = k, there is no information about the load
torque. We assume, as an initial guess, that the load torque did not change:
Tl[k, k] ≈ Tl[k − 1, k] (4.25)
At t = k + 1, new information about the load torque is derived: a new measurement of the
back-emf is performed. From this measurement, a rotor speed estimation ωm[k + 1] at time
t = k + 1 is made. This rotor speed estimation is compared with the predicted speed from
equation 4.23.
The difference in the estimated rotor speed and the predicted rotor speed results from a
difference in net torque applied to the rotor. From equation 4.21, at time instant t = k + 1,
a new estimation of the load torque at the time instant t = k can be determined:
Tl[k, k + 1] = Tl[k, k] +J
Ts(ωm,pred[k + 1]− ωm[k + 1]) (4.26)
Chapter 4. Speed, position and load torque estimation 35
4.4 Simulation results from Matlab/Simulink without current
and speed controller
To test the algorithm outlined above, we will use the model which was derived in chapter 3.
The method will be applied with the motor parameters of the Maxon Motor BLDC machine,
which are given in appendix A.
For the first set of simulations, the machine is driven without any kind of control. The speed
and current controller which were build in the model are disabled. The machine starts with
a rotor speed of 50 rad/s. Without speed controller, the motor will speed up to its maximum
speed, ωm = 400 rad/s. Without current controller, the machine will accelerate as fast as
possible. At t = 0.06 s, a load torque of 0.06 Nm is applied. At every instant, the back-emf
can be measured at one of the motor terminals. In steady-state, the measured back-emf is
linear, with an alternating positive and negative slope, forming a triangular waveform. The
waveform deforms when speed transients are present, the waveform does not consist of lin-
ear pieces any more. The theoretical measured back-emf signal for this test is depicted in
Fig. 4.2. During start-up, the peak-to-peak value of the simulated back-emf signal increased
due to the increase in rotor speed. When the load torque is applied, this peak-to-peak value
decreases again.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−10
−8
−6
−4
−2
0
2
4
6
8
10
Time [s]
Sim
ulat
ed b
ack−
emf [
V]
Figure 4.2: Measured back-emf at the motor terminals
By using equation 4.18, the rotor speed can be estimated from the measured back-emf. The
actual rotor speed and the rotor speed estimation are shown in Fig. 4.3. When the machine
is commutated to the next switching state, the slope of F , mL, changes from 6π to − 6
π , or
vice versa. At the commutation instant, the measured back-emf exhibits a singularity: the
derivative does not exist at these points. At these moments, the estimated rotor speed is not
Chapter 4. Speed, position and load torque estimation 36
updated. In Fig. 4.4, it can be seen that the estimated rotor speed ωm deviates from the
actual rotor speed. The estimated rotor speed is equal to the actual rotor speed approximately
halfway in between two commutation instants.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
50
100
150
200
250
300
350
400
Time [s]
Rot
or s
peed
[rad
/s]
Estimated rotor speedActual rotor speed
Figure 4.3: Estimated rotor speed from back-emf measurements and the actual rotor speed
0.063 0.0635 0.064 0.0645 0.065 0.0655376
378
380
382
384
386
388
390
Time [s]
Rot
or s
peed
[rad
/s]
Estimated rotor speedActual rotor speed
Figure 4.4: Detailed view of the estimated rotor speed from back-emf measurements and the actual
rotor speed
Chapter 4. Speed, position and load torque estimation 37
By using equation 4.19, it is possible to estimate the value of the function F at each time
sample. The results of this equation are depicted in Fig. 4.5a and 4.5b. In Fig. 4.5a, the
estimation of F is shown when the BLDC machine accelerates from ωm = 50 rad/s to ωm =
400 rad/s. After π3 radians, most of the transients in this estimation have died out. In
Fig. 4.5b, the estimation of the function F is represented when the machine is loaded with
0.06 Nm. There is no noticeable transient in the estimation.
0 0.002 0.004 0.006 0.008 0.01
−1
−0.5
0
0.5
1
1.5
Time [s]
Estim
ated
valueF
(a)
0.055 0.06 0.065
−1
−0.5
0
0.5
1
1.5
Time [s]
Estim
ated
valueF
(b)
Figure 4.5: (a) Estimated value for the function F during acceleration from 50 rad/s to 400 rad/s (b)
Estimated value for the function F , machine is loaded with Tl = 0.06 Nm at t = 0.06 s
From the estimation of F , the position can be estimated using equation 3.11. The results are
shown in Fig. 4.6a and 4.6b. The electrical angle θe is calculated in such a way that it lies
between 0 and π3 . In these figures, the switching interval is represented as well. Every level
of this staircase function corresponds with a certain conduction state. Note that the rotor
position θe is estimated accurately after the first interval. The first commutation instant is
approximated well.
The load torque can be estimated using the equations 4.25 and 4.26. The simulation results
for the machine without speed and current controller are depicted in Fig. 4.7 and 4.8. During
transients, the speed estimation, used in the algorithm to estimate the load torque, differs
from the actual rotor speed. This causes the estimated load torque to differ from the ac-
tual load torque during transients. The slope of the estimated rotor speed in between two
commutations is more positive than the slope of the actual rotor speed. When the machine
accelerates from ωm = 50 rad/s to 400 rad/s, there is an underestimation of the load torque, as
the method believes that the machine accelerates faster (a negative load torque corresponds
to a torque that accelerates the rotor).
Chapter 4. Speed, position and load torque estimation 38
0 0.002 0.004 0.006 0.008 0.01
0
0.2
0.4
0.6
0.8
1
1.2
Time [s]
Estim
ated
electrical
angleθ e
[rad
]
Estimated rotor angleSwitching interval
(a)
0.055 0.06 0.065
0
0.2
0.4
0.6
0.8
1
1.2
Time [s]
Estim
ated
electrical
angleθ e
[rad
]
Estimated rotor angleSwitching interval
(b)
Figure 4.6: (a) Estimated rotor position from back-emf measurements during acceleration of the
machine from 50 rad/s to 400 rad/s (b) Estimated rotor position from back-emf mea-
surements when a load torque Tl = 0.06 Nm is applied at t = 0.06 s
After transients, the slope of the estimated speed is approximately equal to that of the actual
rotor speed. The estimated load torque then converges to 0 Nm. When the load torque is
applied to the BLDC machine, an immediate response can be noticed in the estimated load
torque. There is a small overestimation when applying the load torque at t = 0.06 s. This is,
again, due to a different slope between the actual rotor speed and the estimated rotor speed,
as the slope of the estimated rotor speed is more negative. The estimated load torque then
converges to 0.06 Nm. There are some spikes present in the estimation Tl after applying the
load torque. These spikes are the result of the spikes in the phase currents (which are used
to get an approximation of the electromagnetic torque Tem).
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−2
−1
0
1
2
3
4
Time [s]
LoadtorqueTl[N
m]
Estimated load torqueApplied load torque
Figure 4.7: Estimated load torque Tl from back-emf measurements
Chapter 4. Speed, position and load torque estimation 39
0.055 0.06 0.065 0.07 0.075 0.08 0.085 0.09 0.095 0.1−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
Time [s]
LoadtorqueTl[N
m]
Estimated load torqueApplied load torque
Figure 4.8: Estimated load torque Tl from back-emf measurements
4.5 Origin of the estimation error during transients
In the previous section, it was noted that the estimated rotor speed deviates from the actual
rotor speed during large accelerations of the BLDC machine. The variation in the estimated
rotor speed is due to the effect of transients. In the derivation of equation 4.18, transients
in the speed were neglected in between successive time samples (ωm[k] = ω[k − 1]). This is
clear when equation 4.17 is rewritten to obtain:
kemLTsNpωm[k − 1]ωm[k] ≈ e[k]− e[k − 1]− keF (θe[k]) · (ωm[k]− ωm[k − 1]) (4.27)
In this equation, the second term is omitted when neglecting speed transients. During accel-
eration of the machine, it holds that:
ωm[k]− ωm[k − 1] > 0 (4.28)
The measured back-emf signal e consists of rising and falling edges. It is a triangular waveform
that is deformed by transients. For a falling edge, the difference between successive back-emf
measurements is negative:
e[k]− e[k − 1] < 0 (4.29)
The corresponding value for mL is −π6 . The left hand side of equation 4.27 is negative. The
first term of the right hand side of this equation is also negative. As the case of a falling edge
for the measured back-emf signal is considered, the F function varies from positive (+1) to
negative values (−1). If the value of F is positive, the value of the right hand side is more
negative than assumed by the estimation method (equation 4.18). The resulting estimated
Chapter 4. Speed, position and load torque estimation 40
rotor speed is lower than the actual rotor speed. The opposite holds when the function
F takes on negative values. At a certain point in between two commutation instants, the
estimated rotor speed becomes equal to the actual rotor speed. This point corresponds with
a value of F equal to 0. For this value of the function F , the second term of the right hand
side of equation 4.27 is zero, like it is when neglecting transients. A similar approach can be
used to interpret the difference between the estimated rotor speed and the actual rotor speed
for a rising edge of the measured back-emf signal.
4.6 Improvement of the rotor speed and load torque estima-
tion through rotor position and acceleration feedback
In the previous section, it was explained how neglecting transients in the rotor speed influences
the rotor speed and load torque estimation, ωm and Tl respectively. In this section, it is
shown that using the rotor position and acceleration enhances the rotor speed and load
torque estimation. Rotor position and acceleration information allows to obtain a rotor speed
estimation, without having to neglect rotor speed transients. Referring back to equation 4.27,
the following estimation rule should result in better rotor speed estimations:
ωm[k] ≈√e[k]− e[k − 1]− keF (θe[k − 1])(ωm[k − 1]− ωm[k − 2])
kemLTsNp(4.30)
It was explained above how the rotor position θe was estimated using back-emf measure-
ments and the already obtained rotor speed estimation ωm. For this reason, θe[k− 1] instead
of θe[k] is used in equation 4.30. A similar manipulation is done with the speed difference
ωm[k] − ωm[k − 1]. In equation 4.30, the actual speed difference is used instead of the esti-
mated speed difference.
To see the influence of acceleration feedback, two cases are considered. In the first case,
the acceleration derived from the actual rotor speed is used. To understand the effect of
the acceleration feedback, a second case is considered. In this case, the acceleration used in
equation 4.30 is the actual acceleration multiplied by 12 . In both cases, the speed and cur-
rent controllers are enabled. The current controller reduces the ripple in the electromagnetic
torque, thereby reducing the spikes in the load torque estimation.
The results for the estimated rotor speed are depicted in Fig. 4.9. By using the actual rotor
acceleration in equation 4.30, the spikes in the estimated rotor speed at the commutation
instants are completely eliminated. The estimated rotor speed that results from using only
half of the actual rotor acceleration still behaves better than the one that results from equa-
tion 4.18. Fig. 4.9 shows how the spikes at the commutation moments are reduced using
acceleration feedback.
Chapter 4. Speed, position and load torque estimation 41
Using acceleration and position feedback improves the estimation of the rotor speed. As a
consequence, the slope of the estimated rotor speed bears close resemblance to the slope of
the actual rotor speed. This is important for a good load torque estimation. The influence
of the acceleration and position feedback on the load torque estimation is shown in Fig. 4.10.
During start-up of the machine, the load torque is wrongly estimated from the estimated
rotor speed that results from equation 4.18. In this case, a deviation of −0.04 Nm from the
actual applied load torque is observed. When a sudden load torque of 0.06 Nm is applied, an
overestimation of 47 % occurs. When half of the actual rotor acceleration is used to estimate
the rotor speed, the deviation from the actual load torque becomes −0.02 Nm during start-up.
The load torque estimation error is reduced to 19 % when a sudden load torque is applied. If
the actual rotor acceleration is used to estimate the rotor speed, the deviation during start-up
is approximately 0 Nm. There is no load torque estimation error when a sudden load torque
is applied.
0.008 0.009 0.01 0.011 0.012 0.013 0.014
100
105
110
115
120
125
130
Time [s]
Rotor
speedωm
[rad
/s]
Estimation rotor speed without feedback
Estimation rotor speed using position and acceleration feedback
Estimation rotor speed using position and half of the acceleration
Figure 4.9: Influence of rotor position and acceleration feedback on the rotor speed estimation
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Time [s]
Loa
dtorqueTl[N
m]
Estimated load torque without feedbackEstimated load torque using position and acceleration feedbackEstimated load torque using position and half of the acceleration
Figure 4.10: Influence of rotor position and acceleration feedback on the load torque estimation
Chapter 4. Speed, position and load torque estimation 42
4.7 Dynamical behaviour of the rotor speed and load torque
estimation
In this section, the rotor speed and load torque estimation methods are tested under vari-
able load torque conditions. To test the performance of the estimation methods under such
circumstances, two types of load torque waveforms are used. The first one is a sawtooth
waveform, with a frequency of 100 Hz. This load torque waveform first increases linearly up
to 0.06 Nm and then suddenly drops to 0 Nm. The second waveform is a sinusoidal one with
an amplitude of 0.06 Nm and a frequency of 25 Hz. The speed and current controller are
enabled in both tests. The varying load torques are applied after the machine has reached
its steady-state.
Firstly, the behaviour of the estimation methods for the load torque of the first case is
investigated, without position and acceleration feedback. The estimated rotor speed is shown
in Fig. 4.11. The estimated rotor speed matches the actual rotor speed. The spikes in the
estimated rotor speed that are due to neglecting transients in the rotor speed are present
here as well.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
20
40
60
80
100
120
140
160
180
200
Time [s]
Rot
or s
peed
[rad
/s]
Estimated rotor speedTrue rotor speed
Figure 4.11: Estimated rotor speed under sawtooth load torque
The estimated load torque is depicted in Fig. 4.12. The initial transients were discussed
earlier. The estimated load torque deviates from the actual applied load torque, even in
steady-state. This is because no acceleration feedback is used in this set of simulations.
When the applied load torque does not change abruptly, the transients in the estimation are
absent and only a steady-state error exists.
The load torque estimation can be improved by using the average acceleration aavg of the
BLDC machine. The average acceleration aavg is derived from the time between successive
Chapter 4. Speed, position and load torque estimation 43
commutation instants. The average acceleration for this test is depicted in Fig. 4.13. It
approximates the actual rotor acceleration quite well in regions where the acceleration does
not change. In regions where the acceleration changes (e.g. between t = 0.02 s and 0.03 s),
aavg lags behind the actual acceleration. It can be expected that this lagging will cause a
deviation in the load torque estimation.
The estimated load torque using aavg is plotted in Fig. 4.14. In the regions where the accel-
eration was approximated well enough, the load torque estimation has improved remarkably.
The error in the load torque estimation has become smaller. The steady-state error at the
linear parts of the applied load torque has disappeared.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Time [s]
Load
torqueTl[N
m]
Estimated load torqueApplied load torque
Figure 4.12: Estimated load torque under sawtooth load torque without acceleration and position
feedback
As a second test of the dynamical performance of the estimation algorithms, the BLDC ma-
chine is loaded with a sinusoidal load torque during steady-state operation of the machine.
The estimated rotor speed is shown in Fig. 4.15. Using this rotor speed estimation, the cor-
responding estimation for the load torque is performed (Fig. 4.16). The resulting estimated
load torque is smooth when the sinusoidal load torque is applied. However, the amplitude
and phase differ from the actual amplitude and phase.
For this test, the influence of feedback of aavg is also checked. The average acceleration
aavg for this experiment is depicted in Fig. 4.17. The effect on the estimated load torque is
illustrated in Fig. 4.18.
Chapter 4. Speed, position and load torque estimation 44
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−4000
−2000
0
2000
4000
6000
8000
10000
12000
14000
16000
Time [s]
Rotoracceleration
[rad
/s2]
Average rotor acceleration
Actual rotor acceleration
Figure 4.13: Average acceleration for BLDC motor under sawtooth load torque
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10.1
0.08
0.06
0.04
0.02
0
0.02
0.04
0.06
0.08
0.1
Time [s]
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
Figure 4.14: Estimated load torque using the average acceleration of the BLDC machine
Chapter 4. Speed, position and load torque estimation 45
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
50
100
150
200
250
Time [s]
Rot
or s
peed
[rad
/s]
Estimated rotor speedTrue rotor speed
Figure 4.15: Estimated rotor speed when applying a sinusoidal load torque, without acceleration
feedback
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Time [s]
LoadtorqueTl[N
m]
Estimated load torqueApplied load torque
Figure 4.16: Estimated load torque when applying a sinusoidal load torque, without acceleration
feedback
Chapter 4. Speed, position and load torque estimation 46
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−4000
−2000
0
2000
4000
6000
8000
10000
12000
Time [s]
Rotoracceleration
[rad
/s2]
Average rotor accelerationActual rotor acceleration
Figure 4.17: Average acceleration of the BLDC machine when applying a sinusoidal load torque
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Time [s]
LoadtorqueTl[N
m]
Estimated load torqueApplied load torque
Figure 4.18: Estimated load torque when applying sinusoidal load torque, using average acceleration
Chapter 4. Speed, position and load torque estimation 47
4.8 FPGA implementation of the rotor speed estimator
4.8.1 Introduction
The rotor speed estimator proposed in section 4.2 was implemented on a Spartan-3E eval-
uation board equipped with a XC3S1600E FPGA. For the speed estimation, a back-emf
measurement is required. As the position estimator is not yet implemented, the built-in Hall
sensors of the BLDC machine are used to detect the actual position of the machine. With
this information, it is possible to retrieve the motor phase (A, B or C) where the back-emf is
in its linear part (table 4.1). Referring back to Fig. 2.15, we are able to sample the back-emf
in the grey indicated regions.
Table 4.1: Relationship between the 60 interval and the phase voltage to be monitored
60 interval Phase
1 C
2 B
3 A
4 C
5 B
6 A
4.8.2 Compensating the effect of using a virtual neutral point
The BLDC machines used in the set-up do not dispose of a neutral point connection. To
have an approximated back-emf-to-neutral measurement, a virtual neutral point is used (sec-
tion 2.6), which consists of three 2.2 kΩ resistors. The virtual neutral point voltage is not
completely equal to the actual neutral point voltage. This leads to a difference between the
measured back-emf signal estar, which is referred to the actual neutral point vn, and the
measured back-emf signal ev′n , which is referred to the virtual neutral point vn′ (Fig. 4.19).
Figure 4.19: The measured back-emf signal referred to the actual neutral point and the measured
back-emf signal referred to virtual neutral point
Chapter 4. Speed, position and load torque estimation 48
Because resistors are used in the virtual neutral point circuit, the star point of the three phase
resistance is equal to the average of the three voltages that are connected to the terminals of
the star connected resistors. One of the terminals is connected to the positive side of the DC
supply, which corresponds with a voltage Vs. Another one is connected to the negative side
of the DC supply, which corresponds with 0 V. The last one is connected to the unexcited
motor phase. The back-emf voltage is thus connected to the third terminal. The three
voltages mentioned here are referred to the negative side of the DC supply. The back-emf
voltage, referred to this point, is denoted by e−. The virtual neutral point voltage is given
by:
v′n =Vs + 0 + e−
3(4.31)
This entails that the slope of ev′n , the back-emf voltage referred to the virtual neutral point,
is only 2/3 of that of estar. The voltage ev′n is measured by the program and its slope is then
corrected by multiplying it by 3/2. The signal is subsequently used for the speed estimation.
4.8.3 Commutation transients
To estimate the rotor speed, the back-emf in the unexcited phase is monitored. At the commu-
tation instant, the current is commutated from one phase to the previously unexcited phase.
The current commutation results in a transient in the measured back-emf (Fig. 4.20). The du-
ration of this transient is proportional to the amplitude of the current that flows through the
phases of the machine. The commutation transient will cause an unrealistic speed estimation.
As the speed estimation is not correct in the period that is shaded in dark grey, we might
as well not consider the speed estimation in that period by implementing a zero order hold
sampler with a varying sample period. The rotor speed estimation updating frequency is
equal to the PWM frequency (section 4.8.4). After a commutation instant, the rotor speed
estimation is not updated. Instead, a counter is started. As long as the counter value stays
below a predefined value cv, the rotor speed estimation is not updated (dark grey areas in
Fig. 4.20). If the counter value becomes larger than cv, the rotor speed estimation is again
updated with the PWM frequency (light grey areas in Fig. 4.20). At the next commutation
instant, the counter value is reset to zero. A commutation moment is observed by comparing
the actual switching state with that of the previous time sample (Fig. 4.21).
Chapter 4. Speed, position and load torque estimation 49
0 1 2 3 4 5 6
−2
−1
0
1
2
Time [ms]
Terminalvoltagephase
U
Updating ωn with PWM carrier frequency
0 1 2 3 4 5 6−2
−1
0
1
2
Time [ms]
Measuredback-emfe v
′ n
Zero-order hold for ωn
Figure 4.20: Measured terminal voltage of the phase U referred to the virtual neutral point (top)
and the measured back-emf signal referred to the virtual neutral point that results from
the finite-state machine (bottom) with a DC-bus current of 1.4 A.
Figure 4.21: Implemenation of a zero order sampler with two sampling frequencies
4.8.4 PWM synchronized sampling of the back-emf
PWM signals are applied to the switches of the power stage to control the current and speed.
The PWM switching action is another source of disturbances that interfere with the speed
estimation. As a result of the PWM action on the energized phases, short spikes are formed
on the measured back-emf signal. We can eliminate these spikes by synchronizing the sample
moments with the PWM carrier. The PWM switching signals are formed by considering the
intersections of the PWM reference with the carrier, Fig. 4.22. In this figure, the switching
signals for three different PWM references are depicted. At the moments indicated by the
arrows, there is no PWM switching action. These moments are used to sample the back-emf
and calculate the corresponding rotor speed estimation.
Chapter 4. Speed, position and load torque estimation 50
Figure 4.22: PWM-synchronized rotor speed estimation
4.8.5 Measurement and quantization noise
The back-emf measurements are liable to measurement noise coming from external distur-
bances (e.g. electromagnetic interference). Furthermore, 12-bit analog-to-digital converters
are used to sample the analog electrical signals (including the back-emf voltage) of the ma-
chine (see appendix A). With a maximum voltage of 18 V, these give us an accuracy of
0.004 394 V. For low rotor speeds or a high back-emf sampling rate, the change of the back-
emf between two samples is small. Under these conditions, the back-emf measurement is
subject to quantization noise. For small differences between the back-emf voltage at succes-
sive time samples, quantization leads to a poor signal-to-noise ratio. This can be counteracted
by choosing a high enough back-emf sampling period.
To cope with the measurement and quantization noise, a second-order low-pass filter is used.
The general form of this filter is:
H(s) =ω2n
s2 + 2ζωns+ ω2n
(4.32)
In this equation, s represents the Laplace variable. The design parameters ωn and ζ have the
following effects:
ωn represents the undamped natural frequency. Low values of ωn allow only low-
frequency signals to pass. Higher values of ωn allow high and low frequencies to pass.
Chapter 4. Speed, position and load torque estimation 51
ζ is the damping ratio. If ζ is close to zero, there is almost no damping. Frequencies
around ωn are greatly amplified. If ζ is close to one, all frequencies are damped, leading
to a delay for all frequencies. Negative values for ζ result in an unstable filter.
A trade-off exists when designing the filter. On one hand, a large value for ζ combined with
a low value for ωn will allow to eliminate most of the noise1. On the other hand, a filter with
this kind of parameter choice will react very slowly to rotor speed transients, leading to a
delayed output. A filter with a low value for ζ, combined with a high value for ωn will react
very fast to rotor speed transients, but noise will not be effectively damped.
In the practical set-up, four different filters are tested. Three of those filters are second-order
filters, each with different values for ωn and ζ. One of these filters is badly designed: the
natural frequency ωn is very low, the damping ratio ζ is high and the discretization was
performed with a wrong sampling period (8333 Hz instead of 10 000 Hz). The fourth filter
is a moving average filter. In a moving average filter, the output of the filter is equal to
the average of the last n inputs. A moving average filter with n = 5 is implemented. The
Matlab command c2d is used to discretize the continuous-time filters to discrete-time. The
following discrete-time filters (with a sampling frequency equal to the PWM frequency) are
implemented:
H1(z) =0.004771z + 0.004553
z2 − 1.86z + 0.8694H2(z) =
0.0182z + 0.01657
z2 − 1.721z + 0.7558
ωn = 1000 rad/s ωn = 2000 rad/s
ζ = 0.7 ζ = 0.7
H3(z) =7.153 · 10−5z + 7.057 · 10−5
z2 − 1.971z + 0.9716H4(z) =
1
5
z4 + z3 + z2 + z + 1
z4
ωn = 100 rad/s
ζ = 1.2
Ts = 1.2 · 10−4s
The results for the speed estimation when using these filters are depicted in Fig. 4.23. In this
figure, the applied load torque is shown as well. In section 4.10, it is explained how this load
torque is generated using another BLDC machine that is coupled to the tested motor. In
Fig. 4.23, it is observed that the speed estimators with the filter H1 and H2 quickly respond
to a changing rotor speed. The filter H3 has severe filtering effects. It has a low natural
frequency ωn, so only low-frequency signals can pass. Furthermore, ζ is quite high (higher
than 1), which implies a high damping. The combination of these values for the parameters
1Noise in the measured signals is assumed to be of a high frequency.
Chapter 4. Speed, position and load torque estimation 52
ωn and ζ, leads to a visible delay in Fig. 4.23. The moving average filter H4 also reacts quickly
to changing rotor speeds, but it is influenced more by noise. To validate the dynamics of
the speed estimator, the time between commutations is tracked by using a counter. It is
assumed that there is an electrical angle of 60 between two successive commutations. The
value of the counter at the end of a switching state allows to calculate an average rotor speed
during that 60 degree interval. This rotor speed measurement is also shown in Fig. 4.23.
The rotor speed estimations, that result from using the moving average filter H3 and the two
second order filters H1 and H2, match the rotor speed estimation that results from using the
commutation moments.
0 100 200 300 400 500 600 700 800 900 10000
500
1000
1500
Time [ms]Estim
atedrotorsp
eed[rpm]
H1 H2 H3 H4 Commutation moments
0 100 200 300 400 500 600 700 800 900 10000
10
20
30
Time [ms]
Loadtorque[m
Nm]
Figure 4.23: The speed estimations for the different filters, when loading the machine with an ex-
ternal load torque with rectangular waveform. (measurement)
4.8.6 Evaluation of the square root
The rotor speed is estimated using equation 4.18. In the Xilinx System Generator pro-
gramming environment, the possible basic mathematical operations are additions, constant
multiplications and the multiplication of two signals. However, the Xilinx Reference Blockset
possesses a dedicated block to take the square root of a number: CORDIC SQRT. This block
implements the COordinate Rotation DIgital Computer (CORDIC) to calculate the square
root of a variable [17]. The algorithm behind the CORDIC block is implemented using the
basic mathematical operations.
Every evaluation of the square root requires a number of calculations and iterations. All
these calculations should be done within one clock period of the FPGA. For the Spartan-3E
boards (specifications in appendix A), this is 20 ns. If the calculations required for the square
root cannot be performed within one clock period, the program does not meet the boundary
conditions and the compiler will return an error. Timing problems can be solved by pipelining
the required calculations. Only the first fraction of the calculations is performed in a first
Chapter 4. Speed, position and load torque estimation 53
clock period. In a second clock period, a second fraction of the calculations is performed,
while the first fraction of the calculations is repeated for a new input value in separate FPGA
resources (parallelism). By doing this, the calculations are spread over time. In every clock
period, the timing constraints are satisfied. Depending on the data width (in bits) of the
input signal to the CORDIC SQRT block, the required calculations are spread over time by the
block itself.
4.8.7 Experimental results of the speed estimator
The rotor speed estimations that result from the practical implementation of the speed esti-
mator are given in Fig. 4.24. Even though the speed estimator uses back-emf measurements,
the rotor speed can be controlled to values that are as low as 2 % of the nominal rotor speed.
0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.60
200
400
600
800
1000
1200
1400
1600
Time [Sec](a)
Speed[rpm]
ω∗=100 rpm
ω∗=150 rpm
ω∗=1000 rpm
ω∗=1500 rpm
(a)
0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.60
200
400
600
800
1000
1200
1400
1600
Time [Sec]
Speed[rpm]
Speed change from 150 rpm to 1500 rpm
Speed change from 1000 rpm to 1500 rpm
Speed change from 1500 rpm to 150 rpm
Speed change from 1500 rpm to 1000 rpm
(b)
Figure 4.24: Rotor speed in steady-state (a) and when the speed reference is changed (b)
4.9 FPGA implementation of the rotor position estimator
The rotor position estimator and the corresponding sensorless method are implemented for
the Maxon Motors BLDC machine, which is equipped with Hall sensors (specifications in
appendix A). The position estimator requires a division of the measured back-emf and the
estimated rotor speed. A division of two variables can be implemented in the System Gener-
ator programming environment using the CORDIC DIVIDER block from the Xilinx Reference
Blockset.
When this BLDC machine is driven using the Hall sensors and a DC-bus voltage of 2.8 V,
the terminal voltage U from Fig. 4.25 results. In this figure, two successive commutation
moments are indicated by arrows. The back-emf voltage at the first commutation moment is
approximately equal to the supply voltage of 2.8 V. The back-emf value at the second com-
mutation moment is approximately 0.4 V lower than that at the first commutation moment.
It can thus be noted that the waveform is not trapezoidal.
Chapter 4. Speed, position and load torque estimation 54
0 2 4 6 8 10 12 14 16 18 20−1
−0.5
0
0.5
1
1.5
2
2.5
3
3.5
4
Time [ms]
TerminalvoltageU
[V]
Figure 4.25: The measured terminal voltage U referred to the ground of the power stage when the
machine is driven with a voltage of 2.8 V, using the Hall sensors to drive it
This is validated by driving the Tiger BLDC machine (specifications in appendix A), which
is coupled mechanically to the Maxon Motor BLDC, and measuring the back-emf waveform
from the Maxon Motor BLDC. The line-to-line back-emf is measured and recalculated to the
phase back-emf by dividing the amplitude by√
3. The result is given in Fig. 4.26. Instead of
a trapezoidal back-emf, the back-emf of the machine is sinusoidal. In Fig. 4.26, the correct
and incorrect conducting intervals are indicated by a dashed and a dash-dot line, respectively.
In the situation where there is an incorrect commutation timing, the absolute value of the
back-emf at successive commutation moments is different. An incorrect commutation timing
together with a sinusoidal back-emf explains the measured terminal voltage in Fig. 4.25.
The fact that the back-emf is sinusoidal is advantageous in the sense that it is tolerant to
errors in the estimation of the commutation instants. The waveform allows to investigate the
performance of the sensorless method in rotor speed transients.
0 2 4 6 8 10 12 14 16 18 20
−3
−2
−1
0
1
2
3
Time [ms]
Measuredline-to-lineback-emf[V
]
Figure 4.26: Measurement of the phase back-emf. The correct conducting intervals are indicated
by a dashed line. The conducting intervals using the Hall sensors are indicated by a
dash-dot line
Fig. 4.25 and Fig. 4.26 point out the possibility that the Hall sensors were positioned incor-
Chapter 4. Speed, position and load torque estimation 55
rectly. They allow to drive the machine, yet not in an optimal way. A better performance
of the machine is obtained when using the sensorless control method proposed in section 4.2.
The terminal voltage of phase U when the machine is driven using the sensorless method is
given in Fig. 4.27. The absolute value of the back-emf at successive commutation moments
is approximately the same.
When driving a BLDC machine, it is important that no steps in the switching state sequence
are skipped. To test this in dynamical circumstances, the Maxon Motor BLDC machine is
loaded using the Tiger BLDC machine. The results are shown in Fig. 4.28. In this figure, the
switching state sequence resulting from the sensorless method and that resulting from the
Hall sensors is depicted, together with the external applied load torque. Even though the Hall
sensors are positioned incorrectly on the stator, they make it possible to verify whether steps
in the switching sequence are skipped or not. The switching sequence of the Hall sensors is
shown in grey.
0 2 4 6 8 10 12 14 16 18 20−1
−0.5
0
0.5
1
1.5
2
2.5
3
3.5
4
Time [ms]
TerminalvoltageU
[V]
Figure 4.27: The measured terminal voltage U referred to the ground of the power stage when the
machine is driven with a voltage of 2.8 V, using the sensorless algorithm to drive it
With every change of the switching state determined by the Hall sensors, there should be
a corresponding change of the switching state determined by the sensorless method. In
Fig. 4.28, it can be observed that this is indeed the case. Furthermore, it can also be noticed
that the switching sequence determined by the sensorless method leads that determined by
the Hall sensors at all times.
Chapter 4. Speed, position and load torque estimation 56
0 5 10 15 20 25 30 35 40 450
10
20
30
40
50
Time [ms]
Loadtorque[m
Nm]
0 5 10 15 20 25 30 35 40 450
2
4
6
8
Time [ms]
Switchingstate
Sequence sensorless method Sequence Hall sensors
Figure 4.28: Measurement results for the external applied load torque (top), the switching state
sequence resulting from the sensorless method and the switching state resulting from
the Hall sensors (bottom)
Even though the provided Hall sensors allow to check if any steps from the switching sequence
are skipped, they do not allow to investigate the accuracy of the commutation instants deter-
mined by the sensorless method. This is due to the misalignment of the Hall sensors on the
stator of the machine. Because of the misalignment, the optimal commutation moments differ
from those determined by the sensors. From the back-emf measurement in Fig. 4.25, it follows
that the length of each conduction interval is correctly determined (60 non-conducting –
120 conducting positive current – 60 non-conducting – 120 conducting negative current
for each phase) by the Hall sensors. It can be concluded that the three Hall sensors are
shifted on the stator of the machine by the same angle. This angle was calculated to be
7.422 . This implies that in steady-state, there will be a fixed time between the commuta-
tion instants determined by the Hall sensors and the optimal commutation moments. The
sensorless method is capable to keep the switching instants close to the optimal switching
moments in steady-state. There is only a small influence of noise in the speed estimation. In
transients, however, this is no longer valid. Looking at the time between the commutation
instants determined by the Hall sensors and those determined by the sensorless method is no
longer suitable to verify the correctness of the sensorless method.
To overcome this problem, an encoder (specifications in appendix A) was added to the set-up.
The encoder allows to determine the angle that the rotor has turned between two arbitrary
time instants. The encoder permits to verify the correctness of the commutation timing
in transient conditions. To test this, the Maxon Motor BLDC machine is loaded with an
external rectangular load torque with a period of 400 ms. The commutation timing will be
investigated in the period where the external load torque starts to act and where the load
torque drops to zero again. The switching sequence that is determined by the Hall sensors
Chapter 4. Speed, position and load torque estimation 57
and the one that is determined by the sensorless method when the load torque is applied are
given in Fig. 4.29. The electrical angle by which the switching sequence that is determined
by the sensorless method leads the sequence that is determined by the Hall sensors is denoted
by φ. The angle φ is also shown in Fig. 4.29 (bottom). In steady-state, φ was determined to
be 7.422 . The steady-state value for φ is indicated by a dashed line. When the load torque
is applied, φ falls to approximately 5 . After 10 ms, the angle φ evolves back to 7.422 . At
any time, the commutation moments determined by the sensorless method are closer to the
optimal moments than those determined by the Hall sensors.
The switching sequence determined by the Hall sensors and that determined by the sensorless
method are shown in Fig. 4.30. The phase lead angle φ is also shown in this figure. It can
be observed that the phase lead angle φ now stays around its steady-state value of 7.422 ,
i.e. there is no visible effect of a changing load torque on the commutation timing. This
points out that the deviating φ in Fig. 4.29 is due to noise in the speed estimation.
0 5 10 15 20 25 300
2
4
6
8
Time [ms]
Switchingstate
Hall sensors Sensorless method
0 5 10 15 20 25 300
10
20
30
40
50
Time [ms]
Loadtorque[m
Nm]
0 5 10 15 200
5
10
15
Commutation number
Phaselead
φ[]
Transient φ Steady-state φ
Figure 4.29: Measurement of the switching state (top), the external applied load torque (mid) and
the phase lead angle φ when the machine is loaded (bottom)
Chapter 4. Speed, position and load torque estimation 58
0 5 10 15 20 25 300
2
4
6
8
Time [ms]
Switchingstate
Hall sensors Sensorless method
0 5 10 15 20 25 300
10
20
30
Time [ms]
Load
torque[m
Nm]
0 5 10 15 200
5
10
15
Commutation number
Phaselead
φ[]
Transient φ Steady-state φ
Figure 4.30: Measurement of the switching state (top), the external applied load torque (mid) and
the phase lead angle φ when the machine is unloaded (bottom)
When comparing the experimental results for the estimation of the commutation instants
with those that can be found in literature, it can be concluded that an error of 5 electrical
degrees on the estimation of the commutation moments is acceptable. In [18], an accuracy
of 5 electrical degrees is obtained for the estimation of the rotor position of a salient-pole
PMSM at standstill or low operating speeds (this method is based on the difference between
Ld and Lq). In [19], an accuracy between 6 and 14 electrical degrees is obtained (depending
on the rotor speed) in steady-state conditions. The method proposed in this thesis achieves
a lower estimation error in steady-state and in transients.
4.10 FPGA implementation of the load torque estimator
The implementation of the load torque estimator will be discussed in this section. To test
and verify the algorithm, a programmable load torque is implemented. The estimated load
torque can then be compared with a measurement of the external applied load torque.
Chapter 4. Speed, position and load torque estimation 59
4.10.1 Practical implementation of the programmable load torque
The set-up consists of two BLDC machines (see appendix A). The Maxon Motor BLDC ma-
chine serves as a motor. This motor gets its switching signals from the sensorless control
algorithm. The Tiger BLDC machine will be used as a generator. As this motor is a BLDC
machine, the electromagnetic torque produced by the machine is proportional to the stator
current. If the current is controlled, it is possible to steer the produced electromagnetic
torque. The back-emf produced by this BLDC machine is also (approximately) sinusoidal.
When the machine terminals are connected to a symmetric three phase load, a three phase
current will flow when the machine rotates. When the three phase load is a three phase
resistance, the stator current will be in phase with the produced back-emf.
A possible configuration to control the generated load torque is given in Fig. 4.31. The Tiger
BLDC machine is indicated by the symbol G. The produced three-phase current is rectified
using a three-phase passive rectifier. Two half bridges of a power stage board (specifications
in appendix A) are used to control the amplitude of the current. Only the switches S1 and S4
are allowed to conduct current. The other switches of the half bridges are open at all times.
The bottom switch S4 is closed at all times. The current through the resistor is controlled
by sending PWM switching signals to the switch S1. By sending PWM switching signals to
S1, a virtual variable resistor is created.
G
Figure 4.31: Electrical scheme of the Tiger BLDC machine, connected to a three-phase rectifier.
The current is controlled by using two half bridges of the power stage.
Inside the FPGA, a reference waveform is created (for example a sinusoidal or rectangular
waveform). One possibility to enforce the current through the resistor to be equal to the ref-
erence current is by comparing the reference waveform directly with the PWM carrier. With
a fixed DC link voltage (voltage after the rectifier), this strategy would work. When the rotor
speed of the machine becomes higher, the generated back-emf in the stator winding of the
generator will increase too. With the same PWM switching signals to the half bridge (the
described strategy is an open loop one), the current through the resistor and the generated
load torque will increase. Using this control strategy to control the load torque leads to a
speed-dependent load torque.
Chapter 4. Speed, position and load torque estimation 60
To have full control of the load torque, i.e. to eliminate of the speed dependency of the
created load torque, a closed loop control strategy is used. The Spartan-3E XC3S500E FPGA
board (specifications in appendix A) is able to measure the current through the load resistor.
Instead of comparing the reference waveform directly with the PWM carrier waveform, it is
first compared with the measured current. The difference between the reference waveform
and the measured current is sent to a PI controller. Next, the output of the PI controller is
compared with the PWM carrier to form the PWM switching signals. If the rotor speeds up,
the increased current through the load resistor will now be noticed by the control algorithm.
As a result, the duty ratio will be lowered to keep the current close to the current reference.
Figure 4.32: Control scheme for generating a variable load torque
4.10.2 Results from the load torque estimation
The load torque estimation algorithm is implemented on the Spartan-3E XC3S1600E FPGA
board. The algorithm to generate the variable load torque is implemented on the Spartan-3E
XC3S500E FPGA board. The current that flows through the load resistor of the configura-
tion is also measured by the XC3S1600E FPGA board. It allows to compare the load torque
estimated by the estimation algorithm with this current measurement, which is proportional
to the applied load torque. The load torque estimation is especially important during tran-
sients. In steady-state, the estimated load torque will be equal to the electromagnetic torque,
which can be derived from measurements of the DC-bus current that flows to the Maxon Mo-
tor BLDC machine. The behaviour of the load torque estimator is tested for rectangular and
sinusoidal loading of the drive.
The estimated load torque, when the machine is loaded with rectangular load torque with a
period of 400 ms, is depicted in Fig. 4.33:
It can be noticed that the estimated load torque exhibits the same waveform as that of
the external applied load torque.
There is a difference in the average values of the estimated load torque and the external
applied load torque. This deviation can be assigned to the presence of friction, which
is not visible via monitoring of the generator current. The external applied load torque
refers to the torque generated by the current in the phases of the Tiger BLDC machine
only. The friction causes a DC-bus current of 0.5 A to flow in no-load conditions, when
the machine runs at 1000 rpm.
Chapter 4. Speed, position and load torque estimation 61
The noise on the load torque estimation follows from noise on the speed estimation. If
necessary, a filter can be used to reduce the noise on the load estimation. However, this
also implies that a time delay is introduced in the load torque estimation.
The load torque estimation, when the machine is loaded with a sinusoidal load torque, is
shown in Fig. 4.34 (period of 270 ms) and Fig. 4.35 (period of 2314 ms). Similar conclusions
can be drawn as those stated above.
0 500 1000 1500 2000 2500 3000 3500 40000
20
40
60
80
100
120
140
Time [ms]
Loadtorque[m
Nm]
External applied load torqueEstimated load torque
Figure 4.33: The estimated load torque (black) and the applied external load torque (grey). (mea-
surement)
0 500 1000 1500 2000 2500 3000 3500 40000
20
40
60
80
100
120
140
Time [ms]
Loadtorque[m
Nm]
External applied load torqueEstimated load torque
Figure 4.34: The estimated load torque (black) and the applied external load torque (grey) for a
high-frequency sinusoidal loading of the machine. (measurement)
Chapter 4. Speed, position and load torque estimation 62
0 500 1000 1500 2000 2500 3000 3500 40000
20
40
60
80
100
120
140
Time [ms]
Loadtorque[m
Nm]
External applied load torqueEstimated load torque
Figure 4.35: The estimated load torque (black) and the applied external load torque (grey) for a
low-frequent sinusoidal loading of the machine. (measurement)
4.11 Conclusion
In this chapter, a new position, speed and load torque estimator were derived. The estimators
were implemented on a FPGA board and tested on a real BLDC machine.
From back-emf measurements, the rotor speed was estimated. To reduce the noise, a
synchronized sampling and a second-order filter were used. The speed estimator was
implemented and compared with the speed estimation that follows from the commu-
tation moments. The speed estimation was used for speed control of the drive. Rotor
speeds that are as low as 2 % of the nominal rotor speed are achieved.
The position estimator is based on measurements of the back-emf and estimations of the
rotor speed. In transient conditions, no steps from the switching sequence are skipped.
With an encoder it was validated that the switching moments stay very close to the
optimal switching moments during transients.
The dynamic performance of the load torque estimator was investigated using a load
torque with a sinusoidal and rectangular waveform. Ignoring the noise on the load
torque estimation, that comes from noise on the speed estimation, the torque estimator
behaves very well under these conditions.
Chapter 5
Influence of parameter uncertainty
in the estimators
5.1 Introduction
In the previous chapter, the proposed speed, position and load torque estimators were ex-
plained and discussed. The proposed algorithms were simulated in Matlab/Simulink and
the results were verified by experiments on a BLDC machine. To evaluate the parameter
sensitivity of the algorithms, the influence of parameter uncertainties on the estimation re-
sults are examined in this chapter. In this chapter, the influence of two parameters will be
investigated: the back-emf constant ke and the inertia J .
5.2 Effect of ke on the speed, position and load torque esti-
mation
In this section, the influence of an inaccurate back-emf constant ke is investigated. The back-
emf constant ke is used in equations 4.18 and 4.19 to estimate the rotor speed and position
of the BLDC machine, respectively. The speed estimation is used to obtain a load torque
estimation. This implies that a wrong value for ke may have an influence on the load torque
estimation as well. Therefore, the effect of errors in ke on the speed, position and load torque
estimation will be examined.
The effect of ke on the speed estimation is depicted in Fig. 5.1. The nominal value for ke is
represented by ke,n. Over- and underestimations of ke are considered in the simulations. The
rotor speed estimation ωm is inversely proportional with the square root of ke. This entails
that ωm becomes larger for smaller values of ke, and vice versa. Increasing ke with a factor
1.05 leads to a decrease of ωm with a factor of 0.976 . Decreasing ke with a factor 0.95 leads
to an increase of ωm with a factor of 1.026 .
The speed estimation resulting from equation 4.18 should be equal to the speed estimation
63
Chapter 5. Influence of parameter uncertainty in the estimators 64
that results from the time between successive commutation instants in steady-state. A wrong
estimation of the parameter ke will lead to a difference between the two estimations. The
code for the speed estimation can be extended with a part that is triggered in steady-state.
This code then compares the result of both estimations and adapts the value for ke accord-
ingly. This code has not been implemented yet and the performance of such an adaptation
of ke can be investigated in additional research.
The effect of ke on the position estimation is shown in Fig. 5.2. Increasing ke with a factor
1.05 leads to a decrease of θe with a factor of 0.988 . Decreasing ke with a factor 0.95 leads
to an increase of ωm with a factor of 1.013 .
The effect of ke on the load torque estimation is depicted in Fig. 5.3. The effect of ke on the
load torque estimation is rather small, especially when compared with the influence of the
inertia J on the load torque estimation, which is described in section 5.3.
0 10 20 30 40 50 60 70 80 90 1000
50
100
150
200
250
Time [ms]
ωm
[rad/s]
ωm for ke = 1.05ke,nωm for ke = ke,nωm for ke = 0.95ke,n
Figure 5.1: Influence of errors in the value of ke on the speed estimation
Chapter 5. Influence of parameter uncertainty in the estimators 65
45.2 45.3 45.4 45.5 45.6 45.7 45.8 45.9
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time [ms]
θ e[rad]
θe for ke = 1.05ke,n
θe for ke = ke,n
θe for ke = 0.95ke,n
Figure 5.2: Influence of errors in the value of ke on the position estimation
0 10 20 30 40 50 60 70 80 90 100−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
Time [ms]
Tl[N
m]
Tl for J = 1.5JnTl for J = JnTl for J = 0.5JnActual Tl
Figure 5.3: Influence of errors in the value of ke on the load torque estimation
5.3 Effect of uncertainties in J on the load torque estimation
The inertia J is only involved in estimating the load torque from speed estimations. The
simulation results for different values of J are given in Fig. 5.4. The nominal value for J is
represented by Jn. Over- and underestimations of Jn are considered in the simulations. The
inertia J is changed over a wide range, from 0.5Jn to 1.5Jn. Indeed, the inertia is a mechani-
cal parameter and is not only dependent on the rotor dimensions, but also on the coupled load.
In chapter 4, it was noticed that during transients, there is an error in the estimation of the
load torque. The origin of this error was the fact that the rotor acceleration was neglected
Chapter 5. Influence of parameter uncertainty in the estimators 66
in the speed estimation. The load torque estimation that was described in chapter 4 is also
shown in Fig. 5.4 (J = Jn). When J is considered much larger than its actual value Jn,
J = 1.5Jn in Fig. 5.4, the error in the load torque estimation during transients is aggravated.
When J is considered much smaller than its actual value Jn, J = 0.5Jn in Fig. 5.4, the
error in the load torque estimation becomes smaller. The resulting load torque estimation
gets closer to the actual applied load torque. The load torque estimation and its performance
strongly depend on the estimation of the value for J . The value for J can be tuned artificially
to obtain better load torque estimations.
0 10 20 30 40 50 60 70 80 90 100−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
Time [ms]
Tl[N
m]
Tl for J = 1.5JnTl for J = JnTl for J = 0.5JnActual Tl
Figure 5.4: Influence of errors in the value of J on the load torque estimation
5.4 Conclusion
The effect of ke and J on the position, speed and load torque estimation is investigated.
In terms of percentage, the error in ωm is smaller than the error in ke. This is due to
the mathematical form of the speed estimator. The mathematical form of the position
estimator reduces the error even more. The effect of ke on Tl is small when compared
with the error that results from errors in the estimation of the parameter J .
A methodology to reduce the error that results from errors in the estimation of the
parameter ke is proposed. The effect of this algorithm can be investigated in further
research.
Chapter 6
Improving the dynamic stiffness by
load torque estimation feedforward
6.1 Introduction
In chapter 4, a load torque estimator was described and implemented on a FPGA. In this
chapter, an application of the load torque knowledge is presented. A variation in the load
torque typically leads to a variation in the rotor speed. In applications where a constant rotor
speed is important, this is not desirable. Using the load torque information, it is possible to
improve the speed control characteristics of the drive. In this chapter, it is explained how
this is achieved in BLDC drives with the proposed self-sensing algorithm. The effect of load
torque estimation feedforward is proven by implementing it on the FPGA and testing it on
the available test set-up.
6.2 Dynamic stiffness and load torque feedforward
In this section, the dynamic stiffness of a drive will be described. Next, the information
collected from the load torque estimation will be used to improve the dynamic stiffness of
the drive, without affecting the response of the drive to a changing rotor speed setpoint.
6.2.1 Dynamic stiffness
Oxford Dictionaries [20] defines stiffness as:
“Stiff: not easily bent or changed in shape; rigid”
In an electrical machine, the dynamic stiffness refers to how much the controlled variable
is influenced by external disturbances. In [21], the influence of acceleration feedback on the
dynamic stiffness of DC drives is investigated. In this paper, the influence of an applied load
torque on the angular displacement is considered. For speed control, however, the rotor speed
and load torque should be considered. For drives with a low dynamic stiffness, a load torque
disturbance results in a large deviation of the rotor speed from the speed setpoint. Machines
67
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 68
with a high dynamic stiffness are able to reject load torque disturbances with only a small
deviation in the rotor speed.
6.2.2 Load torque feedforward
The PI controllers that are used to control the rotor speed of BLDC machines are normally
designed to achieve a good performance (e.g. overshoot and settling time) to changing rotor
speed setpoints. These PI controllers are also able to reject disturbances, that come from
load torque disturbances. There is, however, a fundamental difference in the behaviour of
the controller to changing setpoints and to disturbances.
When the speed reference is changed, the PI speed controller will change the current
reference with a certain rate. This rate depends on the gains of the PI speed controller.
Subsequently, the PI current controller changes the duty ratio of the switches of the
power stage. Assuming that the machine was in steady-state before changing the rotor
speed, the response of the machine to a changing setpoint is immediate. The speed
changes in the desired way.
When a load torque is applied, the rotor speed will decrease. The PI speed controller
will increase the current reference, thereby increasing the generated electromagnetic
torque. However, as long as the electromagnetic torque is lower than the applied load
torque, the machine will keep decelerating. The machine will accelerate again at the
point where the electromagnetic torque becomes larger than the applied load torque.
A similar reasoning can be followed for a sudden decrease in the load torque.
The problem with the PI controllers is that they do not recognize a change in the load torque
as a disturbance. They react in the same way that they would to a change of the rotor
speed setpoint. To reduce the influence of a load torque disturbance on the rotor speed, the
electromagnetic torque must evolve similarly to the applied load torque. In this chapter, the
performance of the drive to load torque disturbances is improved by using the load torque
estimator described in chapter 4.
The reference current i∗ determines the reference value for the electromagnetic torque. It is
thus plausible to let the load torque estimation adjust i∗ (Fig. 6.1). The idea behind this, is
to eliminate the influence of the disturbance before it has an noticeable effect on the rotor
speed. For the considered BLDC machine, the order of magnitude of the numeric value of
the load torque in SI units (10−3 Nm) is much smaller than the order of magnitude of the
numeric value of the DC-bus current in SI units (1 A). To have a perceptible effect of the
addition of the load torque estimation Tl to the current reference i∗, the gain gLT should
bridge the difference in order of magnitude between them. The electromagnetic torque is
related to the DC-bus current by the torque constant kt.
Te = 2ktiDC (6.1)
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 69
Therefore, it makes sense to express gLT in terms of k−1t :
gLT = aLTk−1t (6.2)
In the rest of this chapter, the influence of load torque feedforward on the dynamic stiffness
of the machine is described using the dimensionless parameter aLT .
Figure 6.1: Scheme of PI controllers with the load torque feedforward
6.3 Derivation of a simplified discrete-time model for BLDC
machines
In chapter 3, a model for a BLDC machine was derived. This model takes current com-
mutation and the corresponding transients into account. To not needlessly complicate the
theoretical analysis of load torque feedforward, a simplified model is derived in this section.
After transients, the dynamics are described by the electrical circuit in Fig. 6.2.
Figure 6.2: Electrical diagram of a BLDC machine after transients
Two phases, X and Y , are connected to the supply. Moreover, there is a mathematical
relationship between the back-emf voltages in the phases X and Y , ex and ey respectively.
In chapter 3, the waveform of the back-emf in a BLDC machine was described. A phase is
conducting when the value of the F function in that phase is 1 or -1. It follows that the
back-emf voltages ex and ey are equal in amplitude, but have different signs:
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 70
ex = keωm (6.3)
ey = −keωm (6.4)
The current flowing in the active phases is controlled using PWM switching signals (gener-
ated according to the complementary switching strategy) to the switches of the H bridge.
When the PWM signal is ON, the switches T1 and T4 are closed, the other two switches are
open. When the PWM signal is OFF, the switches T2 and T3 are closed, T1 and T4 are open.
This means that when the PWM signal is ON, the positive DC-bus voltage is applied to the
motor terminals of phases X and Y . When the PWM signal is OFF, X and Y are connected
to the reversed supply voltage. The level of the PWM reference is denoted by λ. If λ = 1, the
switches T1 and T4 are closed during the complete PWM period, while T2 and T3 are open. If
λ = −1, the switches T2 and T3 are closed during the complete PWM period, while T1 and T4
are open. If λ = 0, the motor terminals are connected to the positive supply voltage for half
of the PWM period and to the reversed supply voltage for the other half of the PWM period,
resulting in an average voltage of 0 V over the motor terminals X and Y . More generally, if
λ is the PWM reference, an averaged supply voltage of λVs is applied to the motor terminals
X and Y . The value for λ is controlled by the PI speed and current controllers.
The current in the phases X and Y can be determined by solving the following differential
equation (assuming R = Rx = Ry and L = Lx = Ly):
di
dt= −R
Li+
1
2LλVs −
1
2L2keωm (6.5)
A change in the rotor speed ωm follows from the difference between the electromagnetic
torque Te and the load torque Tl. Using equation 4.22 for Te leads to the following differential
equation for the rotor speed:
dωmdt
=1
J2kti−
1
JTl (6.6)
Equations 6.5 and 6.6 can be combined in a state-space model:
[didtdωmdt
]=
[−RL −ke
L2ktJ 0
][i
ωm
]+
[12L 0
0 − 1J
][λVs
Tl
](6.7)
This model is also discretized. To achieve the discrete-time equivalent of the derived simpli-
fied continuous-time model of the BLDC machine, an approach similar to that of section 3.4
can be used. In Matlab, the built-in command c2d is used to perform the discretization.
To illustrate the dynamics of the simplified model of the BLDC machine, the step responses
of the current i and rotor speed ωm to a step in the voltage λVs and in the load torque Tl
are depicted in Fig. 6.3 and 6.4 for the Maxon Motor BLDC machine, which motor parame-
ters are given in appendix A. In these figures, the discretization, performed with the Matlab
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 71
command c2d, is validated. When a step in the voltage λVs is applied, current will start
to flow, electromagnetic torque is produced and the machine starts to accelerate. Due to
the increasing rotor speed ωm, the amplitude of the back-emf induced in the stator winding
increases, which hinders the current to keep on flowing. At a certain speed, the back-emf
(referred to the neutral point) matches half of the supply voltage (the line-to-line back-emf
then equals the supply voltage), the current drops to zero and the machine stops accelerating.
When a step in the load torque Tl is applied, the machine decelerates. The back-emf decreases
and current starts to flow. The machine keeps decelerating until the electromagnetic torque
produced by the current in the machine matches the applied load torque.
0 10 20 30 40 50 60 700
0.5
1
1.5
2
Time [ms]
Currenti[A
]
Continuous-time systemDiscrete-time system
(a)
0 10 20 30 40 50 60 700
10
20
30
40
50
Time [ms]
Rotorsp
eedωm
[rad/s]
Continuous-time systemDiscrete-time system
(b)
Figure 6.3: Response of the current (a) and the rotor speed (b) to a step in the voltage λVs
0 10 20 30 40 50 60 700
10
20
30
40
50
Time [ms]
Currenti[A
]
Continuous-time systemDiscrete-time system
(a)
0 10 20 30 40 50 60 70−800
−700
−600
−500
−400
−300
−200
−100
0
Time [ms]
Rotorspeedωm
[rad/s]
Continuous-time systemDiscrete-time system
(b)
Figure 6.4: Response of the current (a) and the rotor speed (b) to a step in the load torque Tl
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 72
6.4 Influence of aLT on the dynamic stiffness of a BLDC drive
The model equations derived in the previous section can be combined with the scheme from
Fig.6.1 to obtain a transfer function that relates the rotor speed ωm to the applied load torque
Tl:
ωmTl
(s) =−(R+ Ls+ PIiVs) + 2ktaLTk
−1t PIiVs
(Js+ kf )(R+ Ls+ PIiVs) + 2kt(PIiPIωmVs + 2ke)(6.8)
The variable s represents the Laplace parameter. The transfer functions of the PI current
and speed controller are represented by PIi and PIωm , respectively. These transfer functions
are given by:
PIi =Kp,is+Ki,i
sPIωm =
Kp,ωms+Ki,ωm
s(6.9)
Where
Kp,i : the proportional gain of the PI current controller
Ki,i : the integral gain of the PI current controller
Kp,ωm : the proportional gain of the PI speed controller
Ki,ωm : the integral gain of the PI current controller
The frequency response of the amplitude of the transfer function ωm/Tl is depicted in Fig. 6.5.
The gains for the PI controllers are: Kp,i = 0.2 A−1, Ki,i = 0.001 A−1s−1, Kp,ωm = 0.1 As/rad
and Ki,ωm = 0.001 A/rad. The motor parameters of the Maxon BLDC machine are used (see
appendix A). In Fig.6.5, the effect of aLT is clear. There is a significant reduction of the
oscillation amplitude of the rotor speed over the considered frequency range.
10−4
10−2
100
102
104
0
50
100
150
200
250
300
350
400
450
500
Frequency [rad/s]
ωm Tl[rad/Nms]
aLT = 0aLT = 1
Figure 6.5: Frequency response of the amplitude of the transfer function ωm/Tl
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 73
6.5 Results from FPGA implementation
The implementation of the load torque estimation feedforward in the XC3S1600E FPGA is
straightforward, as the PI speed and current controllers are already implemented. In this
section, the influence of aLT on the dynamical behaviour of the drive is investigated. The
value for aLT is changed by using the rotary encoder of the FPGA. This way, it is possible
to check the influence of aLT online, without the need to recompile the FPGA code for every
value of aLT . The performance of load torque feedforward is also investigated for different
load torque frequencies in this section.
6.5.1 Influence of the gain aLT
The influence of the gain aLT is analyzed for three different types of load torque waveforms.
As a first test, the behaviour of the drive under a step load is examined. Secondly, a load
torque with rectangular waveform is applied. As a last test, the dynamical behaviour of the
drive under a sinusoidal load torque is investigated.
Step loading and unloading In chapter 4, it was described how a variable load is created
using a three-phase passive rectifier and two inverter legs. The BLDC machine is now
loaded with a fixed load. This is achieved by connecting a resistor of 1.36 Ω directly to
the DC-side of the three-phase passive rectifier. The response of the machine to such
a loading of the machine is given in Fig. 6.6. Once the machine reaches its setpoint
of 1000 rpm, the machine is unloaded again. The response of the rotor speed to the
unloading of the machine is depicted in Fig. 6.7. It can be seen that the effect of load
torque feedforward is twofold:
By using load torque feedforward, the deviation from the speed reference is re-
duced with 42 % when the machine is loaded, and with 61 % when the machine is
unloaded.
Because the deviation from the speed reference is limited, it is easier for the PI
current and speed controllers to bring the rotor speed back to its setpoint. This
leads to a reduction of the settling time1 with 754 ms when the machine is unloaded,
and with 1316 ms when the machine is loaded.
Rectangular load torque waveform The effect of aLT on the dynamical behaviour of the
drive to a rectangular load torque waveform with a period of 418 ms is examined. The
Maxon Motor BLDC machine is fed with a DC-bus voltage of 4 V. The speed reference
is 1000 rpm. The effect of aLT on the amplitude of the rotor speed oscillation is depicted
in Fig. 6.8. In this figure, the minimum and maximum rotor speed, that occur for a
certain value of aLT , are shown.
1A 5 % settling time is used. The settling time is then defined as the time needed to get back within 5 %
of the speed reference.
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 74
0 500 1000 1500 2000 2500 3000 3500700
750
800
850
900
950
1000
1050
1100
1150
1200
Time [ms]
Rotorsp
eed[rpm]
aLT = 0aLT = 1
Figure 6.6: Influence of aLT on the rotor speed response to a sudden loading of the machine. (mea-
surement)
0 500 1000 1500 2000 2500 3000 3500950
1000
1050
1100
1150
1200
1250
1300
1350
1400
1450
1500
Time [ms]
Rotorsp
eed[rpm]
aLT = 0aLT = 1
Figure 6.7: Influence of aLT on the rotor speed response to a sudden unloading of the machine.
(measurement)
It can be noticed that the effect of load torque feedforward is significant. When aLT = 0,
i.e. in the case where there is no load torque feedforward, the rotor speed oscillates
between 820 rpm and 1270 rpm. The amplitude of the oscillation is 225 rpm. When
aLT is increased, the amplitude of the oscillation decreases. The reduction of the
oscillation amplitude, in terms of percentage, is also given in Fig. 6.8. When aLT = 1,
the amplitude of the oscillation is reduced with 46 % when compared with the case
where aLT = 0. The amplitude reduction varies close to linearly with aLT .
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 75
0 0.2 0.4 0.6 0.8 1 1.2800
900
1000
1100
1200
1300
Dimensionless gain aLT
Rotorsp
eed[rpm]
0 0.2 0.4 0.6 0.8 1 1.20
10
20
30
40
50
Dimensionless gain aLT
Red
uctionofamplitude[%
]
Figure 6.8: Influence of aLT on the amplitude of the oscillation, when the machine is loaded with
a load torque with rectangular waveform (top). The corresponding reduction in the
amplitude is also given (bottom). (measurement)
Sinusoidal load torque waveform The effect of aLT on the dynamical behaviour of the
drive to a sinusoidal load torque waveform with a period of 474 ms is examined. The
Maxon Motor BLDC machine is fed with a DC-bus voltage of 6 V. The load torque is
generated by controlling the current flowing through the Tiger BLDC machine. The
reference speed is increased to 1500 rpm. The influence of aLT on the oscillation ampli-
tude is shown in Fig. 6.9. When aLT = 0, the rotor speed oscillates between 1078 rpm
and 1922 rpm. Increasing aLT again leads a decrease in the oscillation amplitude. When
aLT is close to 1, the oscillation amplitude is reduced by approximately 65 %. Also for
sinusoidal loading conditions, the amplitude reduction varies close to linearly with aLT .
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 76
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 11000
1500
2000
Dimensionless gain aLT
Rotorsp
eed[rpm]
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
20
40
60
80
Dimensionless gain aLT
Red
uctionofamplitude[%
]
Figure 6.9: Influence of aLT on the amplitude of the oscillation, when the machine is loaded with a
load torque with sinusoidal waveform (top). The corresponding reduction in the ampli-
tude is also given (bottom). (measurement)
6.5.2 Influence frequency of the applied load torque
The effect of the load torque frequency on the performance of the load torque feedforward
is analyzed in this section. Rectangular and sinusoidal waveforms for the load torque are
considered in this investigation. The highest period in the experiments is 680 ms, the lowest
period is 18 ms. When the period becomes smaller than 18 ms, the variation in the rotor
speed of the BLDC machine, due to the applied load torque, becomes very small (smaller
than the noise in the speed estimation).
Rectangular load torque waveform In this experiment, a DC-bus voltage of 4 V is used.
The rotor speed reference is 1000 rpm. Rectangular waveforms with periods of 418 ms,
198 ms, 84 ms, 42 ms and 18 ms are used as external applied load torques. The results
of the measurements done on the set-up are given in Fig. 6.10. For low-frequency load
torques (waveforms with periods 418 ms, 198 ms and 84 ms) there is a clear and large
reduction of the oscillation period (a reduction of 47 %, 50 % and 55 %, respectively).
For a load torque with higher frequency (waveforms with periods 42 ms and 18 ms),
there still is a reduction in the oscillation period. The influence of noise in the speed
estimation, which entails noise in the load torque estimation, is more apparent for
higher frequencies. For the waveform with a period of 18 ms, there is a reduction of
the oscillation period, which is smaller than that for the other waveforms. For this
waveform, the oscillation amplitude of the rotor speed gets close to the amplitude of
the noise in the speed estimation.
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 77
0 500 1000 1500 2000800
900
1000
1100
1200
1300
Time [ms]
Rotorspeed[rpm]
aLT = 0aLT = 1
(a)
0 500 1000 1500 2000800
900
1000
1100
1200
1300
Time [ms]
Rotorspeed[rpm]
aLT = 0aLT = 1
(b)
0 500 1000 1500 2000800
900
1000
1100
1200
Time [ms]
Rotorspeed[rpm]
aLT = 0aLT = 1
(c)
0 500 1000 1500 2000900
950
1000
1050
1100
Time [ms]Rotorspeed[rpm]
aLT = 0aLT = 1
(d)
0 500 1000 1500 2000970
980
990
1000
1010
1020
1030
Time [ms]
Rotorspeed[rpm]
aLT = 0aLT = 1
(e)
Figure 6.10: The effect of aLT on the rotor speed when applying a load torque with rectangular
waveform with a period of 418 ms (a), 198 ms (b), 42 ms (c) and 18 ms (d). (measure-
ment)
Sinusoidal load torque waveform The effect of load torque feedforward on the dynamic
stiffness of the drive is tested for sinusoidal load torque waveforms with a period of
680 ms, 474 ms and 220 ms. The results are given in Fig. 6.11. As higher periods are
considered for sinusoidal loading, the effect of load torque feedforward is significant for
both high-frequency loading (tested by rectangular load torques) and for low-frequency
loading (tested by sinusoidal load torques).
Chapter 6. Improving the dynamic stiffness by load torque estimation feedforward 78
0 500 1000 1500 20001000
1200
1400
1600
1800
2000
2200
Time [ms]
Rotorspeed[rpm]
aLT = 0aLT = 1
(a)
0 500 1000 1500 20001000
1200
1400
1600
1800
2000
Time [ms]
Rotorspeed[rpm]
aLT = 0aLT = 1
(b)
0 500 1000 1500 20001200
1300
1400
1500
1600
1700
1800
Time [ms]
Rotorspeed[rpm]
aLT = 0aLT = 1
(c)
Figure 6.11: The effect of aLT on the rotor speed when applying a load torque with sinusoidal
waveform with a period of 680 ms (a), 474 ms (b) and 220 ms (c). (measurement)
6.6 Conclusion
In this chapter, load torque estimation feedforward was proposed as a way to improve the
dynamic stiffness of BLDC. The focus was on the influence of load torque disturbances on
the rotor speed. The positive effect of load torque feedforward on the dynamic stiffness
was proven theoretically, by means of the frequency response of the transfer function that
describes the relation between the rotor speed and the load torque. The algorithm was then
tested on the real set-up by an FPGA implementation. The following conclusions can be
drawn:
The influence of load torque feedforward was investigated for several loading conditions.
For a load torque that is periodic in time, reductions of the oscillation amplitude of
the rotor speed of up to 55 % were achieved. For load torque disturbances that occur
occasionally (modelled as a step load), there is an additional advantage of a reduced
settling time.
The frequency band where the load torque feedforward is beneficial was investigated.
From the theoretical results, it could be concluded that the effect is positive over the
complete frequency band that is of importance in practical applications. This was also
observed in the practical implementation of the method. Reducing the noise in the
speed estimation would further improve the effect of load torque feedforward in high-
frequency loading conditions (higher than the frequencies considered in this chapter).
Chapter 7
Controlling rotor speed using
MBPC
7.1 Introduction
In chapter 4, the focus was on rotor position, rotor speed and load torque estimation. Esti-
mating these variables will improve the dynamics of the BLDC drive and is important in any
control strategy that is used in BLDC drives.
Rotor position estimation is important to achieve a sensorless drive. The commutation
instants have to be estimated with sufficient accuracy to reduce the torque ripple.
The estimation of the rotor speed is critical in speed control of the drive.
Normally, the type of load is known up to a certain level, as the characteristics of
the load itself are usually known. The load is, however, liable to disturbances from
the environment. In chapter 6 , the load torque estimation was used to improve the
dynamic behaviour of the drive.
In regular BLDC drives, two PID controllers are used to control the rotor speed of the drive.
They allow to control the rotor speed to its setpoint, while keeping the current limited to its
nominal value. The parameters of the PID controllers can be determined in several ways:
The parameters can be tuned using a trial and error approach. A set of parameters is
tested on the machine. Based on the machine’s response to changing setpoints, a new
set of parameters is determined and tested again.
The PID parameters can be determined using auto-tuning algorithms (e.g. Astrom-
Hagglund, Kaiser-Chiara, Kaiser-Rajka and Ziegler-Nichols).
It is also possible to use root locus and frequency response techniques to determine the
gains of the PID controllers. These techniques require a model of the process.
79
Chapter 7. Controlling rotor speed using MBPC 80
The inherent disadvantage of PID controllers is that they only use historical information of
the error between the setpoint and the measurement. As a practical example, we can think
of driving a car. The goal is to stay in the middle of our lane. With PID controllers, any
difference from the actual car position and the middle of the lane is observed using the rear-
view-mirror only. When driving a straight road, this strategy may work. Yet, when the road
contains a lot of bends, this control strategy might leave you with a damaged car.
Using a model to predict future process outputs and optimizing future control actions leads
to a better performance of the controlled drive. This class of control strategies is called Model
Based Predictive Control (MBPC). A MBPC strategy is computationally more demanding
than PID controllers, but modern digital processing units are able to handle such advanced
control techniques.
7.2 Concepts of MBPC
In MBPC, a model is used to make predictions of process outputs, which depend on future
control actions. The optimal control scenario is calculated so that the controlled variable
moves to its setpoint, while meeting certain constraints. The optimal input is the one that
minimizes a predefined cost function.
Figure 7.1: Scheme of the evolution of the signals in a MBPC strategy
In this section, t represents a discrete-time index. At the current time t, a measurement of the
process output y(t) is available (Fig. 7.1). The setpoint of the process output at time t is de-
noted by w(t). At time t, a prediction of the future process outputs [y(t+ 1|t), ..., y(t+N |t)]is made (Fig. 7.2), which depends on the future control action [u(t|t), ..., u(t+N − 1)]. The
parameter N represents the prediction horizon. The vector of the predicted process outputs
[y(t+ 1|t),...,y(t + N |t)] is compared with the reference trajectory [r(t + 1|t), ..., r(t + N |t)].The reference trajectory starts at r(t|t) = y(t) and evolves towards the setpoint w(t). The
future control action [u(t|t), ..., u(t + N − 1)] is chosen in such a way that a cost function
Chapter 7. Controlling rotor speed using MBPC 81
is minimized. This cost function usually depends on the difference between the predicted
process outputs and the reference trajectory over the prediction horizon N . If for a certain
input vector [u(t|t), ..., u(t+N − 1)] a big difference exists between [y(t+ 1|t), ..., y(t+N |t)]and [r(t+ 1|t), ..., r(t+N |t)], a large value for the cost function will result, disfavouring this
input vector. When the input vector that minimizes the cost function is found, only the
first element, u(t), will be applied to the process. At time t + 1, the described process is
repeated (receding horizon principle). The receding horizon principle allows to adapt the
optimal input vector for changes in the disturbances that influence the system (y(t + 1) is
not necessarily equal to y(t+1|t)) and for changes in the setpoint for the output of the process.
Figure 7.2: Scheme of a model based predictive control algorithm
7.2.1 Multistep predictor
In MBPC, a representative model is necessary to be able to predict future process outputs.
The process output y can be thought of as consisting of two parts x and n:
y(t) = x(t) + n(t) (7.1)
The first part, x, is the part of the output that results from applying the input, that is
applied to the real process, to the model of the process. To keep the model manageable,
not all aspects of the process output are modelled. The measurement of the output of the
process is also susceptible to measurement noise. These effects are captured in the variable
n. A prediction of future process outputs follows from equation 7.1:
y(t+ k|t) = x(t+ k|t) + n(t+ k|t) (7.2)
The prediction x(t+ k|t) results from using the discrete-time model of the process:
x(t) =B(q−1)A(q−1)
u(t) (7.3)
= −a1x(t− 1)− a2x(t− 2)− a3x(t− 3)− ...− anax(t− na) (7.4)
+ b1u(t− 1) + b2u(t− 2) + b3u(t− 3) + ...+ bnbu(t− nb)
Where q−1 represents the time shift operator. For example, q−px represents the value of x at
time t− p, x(t− p). The unmodelled part of the output, n, is considered as a coloured noise
process. It can be defined as a white noise process e that goes through a filter [22]:
Chapter 7. Controlling rotor speed using MBPC 82
n(t) =C(q−1)D(q−1)
e(t) (7.5)
= −d1n(t− 1)− d2n(t− 2)− d3n(t− 3)− ...− dndn(t− nd) (7.6)
+ e(t) + c1e(t− 1) + c2e(t− 2) + c3e(t− 3) + ...+ cnce(t− nc)
A white noise process is a stochastic process of random variables that are uncorrelated and
have zero mean [15]. The noise model c1, ..., cnc , d1, ..., dnd should be considered as a design
parameter of the MBPC strategy. It may serve as a filter to reject disturbances in a certain
frequency band. When the model contains an integrator (factor 1− q−1 in the polynom D),
disturbances with non-zero mean are eliminated. It fulfils the same role as the integrating
action in a PID controller.
From previous values of the input u and previous values of the model output x, the model
output at time t can be determined by using equation 7.3. At time t, a new measurement is
performed. The value of n at time t can be evaluated as n(t) = y(t) − x(t). This value for
n(t) can be used, together with previous values for n and e, to obtain the value for e at time
t:
e(t) = −c1e(t− 1)− c2e(t− 2)− c3e(t− 3)− ...+ n(t) + d1n(t− 1) + ...+ dndn(t− nd) (7.7)
Now that the value for e at time t is known, it is possible to predict the future values for n
using the disturbance model:
n(t+ k|t) = −d1n(t+ k − 1|)− ...− dndn(t+ k − nd|t) (7.8)
+ e(t+ k|t) + c1e(t+ k − 1|t) + ...+ cnce(t+ k − nc|t)
This equation is similar to equation 7.6, but shifted in time over k time periods. The distur-
bance n will be predicted over the prediction horizon. This corresponds to k varying from
k = 1 to k = N . For k = 1, n(t + 1|t) is calculated based on previously calculated values
for n (n(t),..., n(t + 1 − nd)), previously calculated values for e (e(t),..., e(t + 1 − nc)) and
e(t + 1|t). The white noise disturbance e has zero mean and is uncorrelated with previous
values for e. It follows that the best prediction for e(t + 1|t) is zero. This is true for every
prediction e(t+ n|t), with n ≥ 1. Once n(t+ 1|t) is calculated, it is used for the calculation
of n(t+ 2|t), which in turn is used for the calculation of n(t+ 3|t). The procedure is followed
until a value for n(t+N |t) is achieved.
A popular choice for the disturbance model is [22]:
C(q−1)D(q−1)
=1
1− q−1 (7.9)
Chapter 7. Controlling rotor speed using MBPC 83
This disturbance model will be used in the simulations done in Matlab/Simulink and in
the practical implementation on the FPGA. For this choice of the disturbance model, the
prediction of the values for n at future time instants is calculated as:
n(t+ k|t) = n(t+ k − 1|t) + e(t+ k|t) (7.10)
Where k again varies from k = 1 up to k = N . Here, there is no contribution from previously
calculated values for e. As explained above, each element of the collection e(t + k|t), k =
1, ..., N will be predicted as zero. The value for n(t), which was calculated from the measure-
ment of the process output y(t) and model output x(t), is used over the complete prediction
horizon.
When the predictions for y are made, they can be compared with the reference signal r in
the interval [t+ 1, t+N ]:
r(t+ k|t) = αr(t+ k − 1|t) + (1− α)w(t+ k|t) (7.11)
The variable w represents the setpoint for the process output. The predictions for the setpoint
w at time t, [w(t+ 1|t), ..., w(t+N |t)], are usually equal to the setpoint at time t, w(t). The
idea is that the controller does not know how the setpoint will change in the future. The
initial value of r, r(t|t), is put equal to the measurement of the output of the process y(t).
The reference signal then determines how fast the output should evolve to its setpoint. The
design parameter that controls this rate is α. A large value for α implies that the output
of the process is allowed to evolve slowly to the setpoint w. The opposite holds true for
small values of α. The idea behind using the reference signal r instead of the setpoint w
in the MBPC algorithm, is that a dynamical system needs some time to react to changing
inputs, determined by the system’s time constants. A system with slow dynamics (large time
constants) requires a big effort (and much energy) to change its output in a fast way. An
analogy can be found in pushing a broken car to the car mechanic. Assume that we want
to push the car with a certain speed (setpoint). Due to the inertia of the car, it will take
some time before this speed is reached from standstill. The harder we push, the faster the
car will reach the desired speed. By the time the car reaches the speed setpoint, the car will
have a large acceleration and we will need to start pulling the car to keep the car’s speed
close to the speed setpoint (this requires energy too). If, however, we start pushing the car
from standstill more gently, the car will accelerate slowly. The acceleration of the car will be
approximately zero when it reaches the speed setpoint. No additional energy is required to
keep the car’s speed close to the setpoint. The parameter α represents a trade-off between a
fast-reacting, energy-demanding system and a slow-reacting energy-efficient system.
7.2.2 Extended Prediction Self-Adaptive Control
In section 7.2.1, it was explained how the model is used to predict future system outputs.
One methodology to find the optimal input signal is the Extended Prediction Self-Adaptive
Chapter 7. Controlling rotor speed using MBPC 84
Control method (EPSAC) [22]. The input is optimal when it minimizes a predefined cost
function. The most fundamental cost function takes into account deviations between the
process output y and the reference signal r:
J =
N∑
k=1
[r(t+ k|t)− y(t+ k|t)]2 (7.12)
This cost function can be extended with terms that take into account the control effort u.
An example is given by:
J =N∑
k=1
[r(t+ k|t)− y(t+ k|t)]2 + γN∑
k=0
[u(t+ k|t]2 (7.13)
The parameter γ is a weight factor that expresses the trade-off between the required control
effort and a process output that does not follow the reference signal. This trade-off can be
economic of nature: sometimes the cost of the control effort needed to reach the exact set-
point is higher than the cost of a deviation of the process output from the setpoint.
To limit the amount of possible control inputs for which the cost function has to be eval-
uated, the control input is usually structured in time1. One way to do this, is to keep the
control input [u(t|t), ..., u(t + N − 1|t)] constant after the control horizon Nu: u(t + k|t) =
u(t+Nu − 1), k ≥ Nu. The optimal control input is now defined as the one that minimizes
the predefined cost function and belongs to the chosen class of structured control inputs.
In the EPSAC method, the predicted system output y(t+ k|t) is split into two parts:
y(t+ k|t) = ybase(t+ k|t) + yopt(t+ k|t) (7.14)
The predicted base process output ybase is the result of the predicted disturbances n(t +
k|t), past control inputs u(t − 1), u(t − 2), ... and a base future control scenario ubase =
[ubase(t|t), ..., ubase(t|t+N−1)]T . This control scenario ubase is one part of the optimal control
scenario, which will be calculated later. Due to the superposition principle that holds for lin-
ear systems, the choice of ubase is arbitrary and will not influence the resulting optimal future
control scenario. The predicted base response ybase is calculated as described in section 7.2.1.
The predicted optimal process output yopt is the response to the optimizing future control
scenario δu = uopt − ubase. The optimizing future control scenario δu is the input vector
that has to be added to ubase so that the sum minimizes the predefined cost function.
Even though the base control scenario ubase can be chosen arbitrarily, it does not change af-
ter the control horizon Nu. If it would, the optimizing control scenario δu would also change
1Structuring in time refers to limiting the total amount of possible control scenarios by imposing a prede-
fined form to them.
Chapter 7. Controlling rotor speed using MBPC 85
after the control horizon, to result in a optimal control scenario uopt that is constant after
the control horizon. In the EPSAC method, [δu(t|t), ..., δu(t+N − 1|t)] is looked for. Allow-
ing ubase to change after the control horizon would eliminate the benefit of structuring the
possible control scenarios in the search for δu. It follows that after the control horizon Nu,
the optimal control scenario uopt, the base control scenario ubase and the optimizing control
scenario δu do not change anymore. The optimizing control scenario [δu(t|t), ..., δu(t|t)]T can
thus be considered as a sequence of impulses with amplitudes [δu(t|t), ..., δu(t+Nu− 2|t)] at
the time samples [t, ..., t+Nu − 2] and a step input with amplitude δu(t+Nu − 1|t) at time
t+Nu−1. Using the superposition principle that holds for linear systems, the corresponding
predicted optimal process output yopt is the result of summing the individual responses of
the system to this sequence of time-shifted inputs.
The discrete-time impulse response of a discrete linear system to an impulse with an amplitude
of one is characterized by the coefficients h1, ..., hN , .... The discrete-time step response of
a discrete linear system to a unit step is characterized by the coefficients g1, ..., gN , .... The
predicted optimal process output yopt(t+ k|t), k = 1, ..., N can be computed as:
yopt(t+ 1|t)yopt(t+ 2|t)yopt(t+ 3|t)
...
yoptt+N |t)
=
h1 0 ... 0 0
h2 h1 ... ... ...
h3 h2 ... ... ...
... ... ... ... ...
hN hN−1 ... hN−Nu+2 gN−Nu+1
·
δu(t|t)δu(t+ 1|t)δu(t+ 2|t)
...
δu(t+Nu − 1|t)
(7.15)
This expression can be written more compactly as:
yopt = Gδu (7.16)
When the cost function is simple enough, the optimizing future control scenario δu can be
derived from it. When using the cost function from equation 7.12, it follows that:
J =N∑
k=1
[r(t+ k|t)− y(t+ k|t)]2 = (r − y)T (r − y)
= (r − ybase −Gδu)T (r − ybase −Gδu) (7.17)
The vector ybase is the predicted base process output vector [ybase(t+ 1), ..., ybase(t+N)]T .
Equation 7.17 is a quadratic form in δu. The cost function J becomes minimal if:
δu∗ =[GTG
]−1GT (r − ybase) (7.18)
Only the first element of δu, δu(t|t)∗, will be used in this iteration. The control input that
will be applied to the process is given by:
uopt(t) = ubase(t|t) + δu(t|t)∗ (7.19)
Chapter 7. Controlling rotor speed using MBPC 86
7.2.3 Nonlinear Extended Prediction Self-Adaptive Control
The matrix G is filled with the coefficients of the unit impulse and unit step response of the
process. For linear systems, these coefficients can be calculated in advance. The resulting
response y is equal to the product of the calculated coefficients and the amplitude of the
optimizing future control scenario δu. This follows from the superposition principle that
holds for linear systems. When the system is nonlinear, this is no longer valid. The response
of the system then depends on the amplitude of the input signal. The response of a nonlinear
system is no longer equal to the product of the input signal amplitude and the coefficients of
the unit impulse and unit step response of the process.
The superposition principle for linear systems was also used in equations 7.14 and 7.19. For
nonlinear systems, the response of a sum of inputs u1 and u2 is not equal to the sum of
the individual responses y1 (response of the system to u1) and y2 (response of the system to
u2). In the Nonlinear Extended Prediction Self-Adaptive Control method (NEPSAC)[22], an
iterative procedure is followed to deal with nonlinear systems. The idea behind the NEPSAC
method is to bring δu closer to zero and adapt ubase accordingly in every iteration. Once δu
is zero, the optimal future control scenario uopt is equal to the base future control scenario
ubase. The optimal future process output yopt is then equal to the response of the system
to ubase: the superposition principle is no longer involved.
7.3 Optimization of a nonlinear cost function
A MBPC methodology is used to control the rotor speed ωm of a BLDC machine. The level of
the PWM reference λ is used as the control signal (λ was introduced in chapter 6). Increasing
λ will allow for higher rotor speeds, decreasing λ has the inverse effect. It is important to
keep the phase current within allowable limits. If the absolute value of the current is too
high, the machine may be damaged. The absolute value of the current will show up in the
cost function (see further), the cost function will therefore no longer have a quadratic form.
The derived optimal future control scenario in equation 7.18 is no longer valid.
To optimize the nonlinear cost function, a line search strategy is utilized. Generally, an
optimization technique tries to find the parameter value x∗ (in the feasible subset X of Rn)
for which a cost function f becomes minimal1:
x∗ = arg minx∈X⊂Rn
f(x) (7.20)
The idea behind line search strategies is to determine a direction pk in iteration k along
which a better solution will be looked for. Secondly, an appropriate step length αk along the
1The optimization problem will be treated as a minimization problem. The minimization of a function f
is equivalent to a maximization of the function −f .
Chapter 7. Controlling rotor speed using MBPC 87
direction pk is determined. The estimation of the optimum of the cost function in the k-th
iteration, xk, is updated as:
xk+1 = xk + αkpk (7.21)
The iterative procedure is depicted in Fig. 7.3.
Figure 7.3: Flowchart of the line search algorithm
7.3.1 Determination of the direction pk
As we are looking for the minimum of the function f , it makes sense to enforce the descending
property:
f(xk+1) < f(xk) (7.22)
Out of all possible directions pk, only those along which the cost function f decreases are
considered. A direction pk for which this holds is called a descent direction. The variation
of the cost function in the point xk is characterized by the gradient of the cost function in
that point ∇f(xk) = ∇fk. The direction pk is thus a descent direction if:
∇fkpk < 0 (7.23)
The descent direction pk can be structured using the gradient ∇fk:
pk = −Bk−1∇fk (7.24)
The matrix Bk is assumed to be symmetric and nonsingular. When Bk is positive definite,
the direction pk is a descent direction. Some popular choices [23] for the matrix Bk are:
Chapter 7. Controlling rotor speed using MBPC 88
The gradient ∇fk determines the direction along which the cost function changes the
most. In the steepest descent method, the matrix Bk is equal to the identity matrix.
The direction pk is then equal to the direction along which the cost function decreases
the most in xk.
In Newton’s method, Bk is equal to the Hessian of the cost function ∇2fk. A point x∗
will be called a local minimum if there exists a distance ε so that f(x) > f(x∗) for all
x that lie within a distance ε of x∗. For a continuous f , the gradient ∇f will become
zero in x∗. The Taylor expansion of ∇f around x, neglecting second-order terms in p,
is given by:
∇f(x+ p) ≈ ∇f(x) +∇2f(x)Tp (7.25)
In Newton’s method, the direction p is defined so that ∇f(x + p) = 0. Rearranging
equation 7.25 leads to:
p = −[∇2f(x)
]−1∇f(x) (7.26)
If the Hessian ∇2f(x) is positive definite, p is a descent direction.
The Hessian of a cost function is not always easy to calculate. In quasi-Newton methods,
Bk is put equal to an approximation of the Hessian ∇2f(x) or its inverse ∇2f(x)−1.
7.3.2 Determination of the step length αk
Once the descent direction pk is determined, we can look for an appropriate step length αk
along that direction. Because pk is a descent direction, we can limit αk to R+. We can
look for the exact local or global optimizer αk of f(xk + αkpk). However, this may require
a considerable amount of calculation effort. In inexact line search methods, the step length
αk is chosen to achieve a sufficient decrease of the cost function f [24]. For a cost function f
that changes continuously, taking small steps αk results in small changes of f . Taking a step
length αk that is too big may also result in a small decrease of the cost function. In both
cases, a lot of iterations (and calculations) will be needed to get close to the minimum of f .
The Wolfe conditions help to work out an acceptable step length αk:
f(xk + αkpk) ≤ f(xk) + c1αk∇fTk pk (7.27)
∇f(xk + αkpk)Tpk ≥ c2∇fTk pk (7.28)
Equation 7.27 expresses the sufficient decrease of the cost function f . The right hand side
of this equation is linear in the step length αk: the bigger αk, the bigger the reduction in f
must be. The reduction in f is characterized by the constant c1. Equation 7.28 prevents step
lengths that are too small. The constant c2 is taken positive. This implies that, for a descent
direction pk, the right hand side of equation 7.28 becomes negative. Equation 7.28 expresses
that around the minimum of f , the gradient ∇f gets close to zero.
Chapter 7. Controlling rotor speed using MBPC 89
7.3.3 Stopping criteria
In each iteration, a descent direction and a step length are calculated. The line search
algorithm stops if a stopping criterion is met. A possible stopping criterion is that we stop
the iterations if the vector xk is sufficiently close to the vector x∗, where the cost function
reaches its minimum. However, the vector x∗ is unknown. An alternative stopping criterion
is that the distance between the solutions from successive iterations becomes sufficiently small
[23]:
||xk+1 − xk||≤ ε1 (7.29)
Near the optimal vector x∗, the gradient ∇f approaches zero. This property can also serve
as a stopping condition:
||∇f(xk)||≤ ε2 (7.30)
7.4 BLDC model to be used in MBPC
In chapter 3, a three-phase model was derived for a BLDC machine. The model that was de-
rived, modelled current commutation and transient currents in the machine. This model was
used to simulate the behaviour of the developed position, speed and load torque estimators.
This model can also be used to predict future states of the BLDC machine in a MBPC scheme.
In the practical set-up, only the DC-bus current is measured. This measurement can be
projected to a current in the three phases of the machine using the switching state. However,
it is impossible to deduce the contribution of the transient current, in the phase that is dis-
connected at the commutation moment, to the DC-bus current. It is thus necessary to make
assumptions. It can be assumed, for example, that there is no transient current in the just
uncoupled phase. The current in that phase is assumed to drop to zero immediately after
the commutation. The phase current in the other two phases are, in this case, assumed to
be equal (in amplitude) to the measured DC-bus current. The previously unexcited phase
is assumed to conduct a current, with an amplitude equal to the DC-bus current, immedi-
ately after the commutation instant. These assumptions lead to table 7.1. An estimate of
the phase current in each phase and an estimate of the rotor speed at a time t then allows,
together with a certain value for the PWM reference λ, to predict the future values for the
phase currents and the rotor speed.
Chapter 7. Controlling rotor speed using MBPC 90
Table 7.1: Approximation of the phase currents if only iDC is measured
Switching state Electrical angle θe ia ib ic
0[0, π3
[iDC −iDC 0
1[π3 ,
2π3
[iDC 0 −iDC
2[2π3 , π
[0 iDC −iDC
3[π, 4π3
[−iDC iDC 0
4[4π3 ,
5π3
[−iDC 0 iDC
5[5π3 , 2π
[0 −iDC iDC
With the assumptions of no transient currents in the unexcited phase and a current com-
mutation with no delay, the model derived in chapter 3 seems too extensive. With these
assumptions, only two phases conduct current at any time. The current they conduct is
equal in amplitude, yet with a different sign. The assumptions lead to using the simplified
model derived in section 6.3.
In the standard control strategy of BLDC machines, λ is controlled by the PI current and
speed controllers. In this chapter, the value for λ will be determined by the MBPC algorithm.
When considering a PWM period, the periods in which Vs and −Vs are applied alternate.
Because Vs and −Vs are applied at different moments, with different initial conditions, re-
placing Vs and −Vs by λVs is not completely correct. The response of the BLDC model when
applying λVs and the response of the system when applying the same average voltage through
the PWM action are shown in Fig. 7.4. The difference between the two curves is very small.
It is assumed that the approximation is well enough for the MBPC strategy.
0 0.02 0.040
50
100
150
200
250
300
350
400
450
Time [s]
Rotorsp
eed[rad/s]
PWMMultiplication
0 0.02 0.040
5
10
15
20
25
30
35
40
Time [s]
Current[A
]
PWMMultiplication
Figure 7.4: Difference between the actual PWM action and λVs for λ = 0.5
Chapter 7. Controlling rotor speed using MBPC 91
7.5 Effect of the cost function and the design parameters α
and N
In the MBPC strategy discussed in section 7.2.1, some design parameters were introduced.
The parameter α determines how fast the reference signal evolves to the setpoint. The
prediction horizon N determines how far the algorithm will look ahead to determine the
optimal future control scenario, which is calculated using a cost function. The importance
of the cost function is investigated first. The effect of α and N will be investigated thereafter.
The MBPC strategy is implemented with the machine parameters from appendix A. The con-
trol horizon Nu that is used is Nu = 1. This implies that at every time instant, the MBPC
algorithm will determine a future optimal control scenario λ that is constant in time. The
PWM carrier frequency is taken as 10 kH. At the beginning of each PWM period, the current
i and the rotor speed ωm are sampled. With this information, the optimal λ for that PWM
period is calculated. As a test, the machine will be accelerated from standstill up to a rotor
speed of 200 rad/s. At time t = 0.1 s, a load torque of 50 mNm is applied. In this section, the
load torque is considered as an unknown variable for the control method. To optimize non-
linear cost functions, the built-in Matlab function fminunc is used. This is an unconstrained
optimization algorithm that will perform a line search optimization (described in section 7.3).
7.5.1 Design of the cost function
In this section, the influence of the cost function in the MBPC method will be investigated
for BLDC machines. The cost function is one of the design parameters that will determine
how the control method will behave. The goal is to control the rotor speed ωm of the BLDC
machine. Therefore, the cost function must contain a term with the difference between the
predicted rotor speed ωm and the rotor speed reference r. This term can be a sum of squared
differences or a sum of the absolute values of the differences. In an FPGA implementation,
squaring a signal means that multipliers are required. The amount of multipliers that can
be used is limited. Taking the absolute value means comparing the signal with zero, and if
necessary, multiplying the signal by −1. This multiplication with a constant requires less
resources. Taking this into account, the cost function is formulated using the absolute values
of the difference r − ωm:
J =
N∑
k=1
|r(t+ k|t)− ωm(t+ k|t)| (7.31)
To further reduce the computational effort needed to minimize the cost function, it is possible
to only consider the error between the reference r and the predicted rotor speed ωm at t+N .
From the step responses in section 6.3, it follows that between t and t + N , the rotor speed
will evolve like a second order system. If the cost function is reduced to the absolute value
of the difference r−ωm at the future time t+N , the optimal value for λ will be the one that
Chapter 7. Controlling rotor speed using MBPC 92
results in ωm(t + N |t) = r(t + N |t). For the cost function given in equation 7.31 this is not
necessarily the case. The cost function whose behaviour is simulated first is given by:
J = |r(t+N |t)− ωm(t+N |t)| (7.32)
The simulation results are given in Fig. 7.5 and 7.6. In this set of simulation, N = 1 and
α = 0.95. In Fig. 7.5a, it is noted that ωm reaches its setpoint without overshoot. This is
due to the postulated first order behaviour of the reference signal r. When the load torque
is applied at t = 0.1 s, the rotor speed decreases. The load torque is unavailable to the con-
trol algorithm, so the control algorithm cannot immediately compensate for it. Due to the
application of the load torque, the measured rotor speed at the beginning of a PWM period
is not equal to the rotor speed that was predicted in the previous PWM period. An error
nωm arises between the internal state of the algorithm (x from section 7.2.1) and the actual
state of the machine (y from section 7.2.1). The algorithm will bring the internal state for
the rotor speed to a higher value to compensate for the load torque disturbance.
During start-up, the current i and λ are oscillating. The current i (Fig. 7.5b) is oscillating
around a positive mean value. The optimal value for λ (Fig. 7.6a) oscillates between positive
and negative values. In the beginning of the first PWM period, when i is still zero, the
optimal λ will increase the current in the coming PWM period to generate electromagnetic
torque. Due to the form of the cost function, this torque will accelerate the machine so that
ωm reaches the postulated r at the end of the PWM period. In the beginning of the next
PWM period, this process repeats itself. However, the current i that exists at the end of the
first PWM period will be too high to achieve an ωm equal to the reference r at the end of
the second PWM period. Therefore, the optimal λ will now decrease the current i. During
start-up, the current i becomes higher than the nominal value of 3.46 A (the current reaches
15 A in the simulations). Moreover, λ takes on non-physical values as its absolute value be-
comes bigger than 1.
The computational effort is represented by the number of cost function evaluations, which are
shown in Fig. 7.6b. At the beginning of every PWM period, the used line search algorithm
will perform cost function evaluations to determine the descent direction1 and an appropriate
step length.
To limit the current during start-up, the cost function of the MBPC method must be adjusted.
When the absolute value of the current becomes larger than an allowable value imax, the cost
function should increase and force the current to stay within its limits. When the current
stays within its limits, there should be no additional penalty. This is achieved by adding a
second term to the cost function of equation 7.32 that is a function of the current:
1Generally, there is an infinite set of descent directions. We here consider a one-dimensional optimization
problem, where we look for the optimal λ. In every iteration, we can either increase or decrease λ. There is
just one descent direction at every possible value for λ.
Chapter 7. Controlling rotor speed using MBPC 93
J = |r(t+N |t)− ωm(t+N |t)|+µN∑
k=1
ai(k) (7.33)
Where ai is defined as:
ai =
|i| if |i|> imax
0 if |i|≤ imax(7.34)
In the simulations that are done in Matlab/Simulink, the parameter µ is chosen to be 1 radAs .
The influence of µ on the current limitation will be examined by means of measurements
on the real setup in section 7.7.5. Because the current i should stay below imax at every
instant, a summation over the prediction interval is used in equation 7.33. Using the value
of the current at the instant t+N , like the manipulation that was done on the speed term,
would allow the current to rise above imax between t and t+N in order to minimize the cost
function. However, this is not desirable.
The simulation results of the MBPC method using the cost function from equation 7.33 are
given in Fig. 7.7 and Fig. 7.8. In these simulations, imax is equal to 2 A.
The rotor speed ωm in Fig. 7.7a now increases linearly in the first part of the start-up. This
is caused by the limited current (Fig. 7.7b), which implies a limited value for the electromag-
netic torque. From a certain point, the machine can follow the reference r without going over
the current limit imax. From this point on, the current decreases gradually. When the load
torque is applied, the machine will decelerate. The control algorithm will react by increasing
the value for λ (Fig. 7.8a). The machine will accelerate again, but the acceleration will be
slower than in the case where the cost function of equation 7.32 is used.
Because the cost function is more complex, the number of iterations required to reach to the
optimal λ is higher in the time interval where the current limitation is active (Fig. 7.8b).
Chapter 7. Controlling rotor speed using MBPC 94
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
20
40
60
80
100
120
140
160
180
200
220
Time [s]
Rotorsp
eedωm
[rad/s]
(a)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−10
0
10
20
30
40
50
Time [s]
Currenti[A
]
(b)
Figure 7.5: (a) Rotor speed ωm in function of time (b) Current i in function of time for the MBPC
method using the cost function from equation 7.32. In these simulations, α = 0.95 and
N = 1.
Chapter 7. Controlling rotor speed using MBPC 95
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
−6
−4
−2
0
2
4
6
Time [s]
λ
(a)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
10
20
30
40
50
60
70
80
90
100
110
Time [s]
Number
ofcost
functionevaluations
(b)
Figure 7.6: (a) Value for λ in function of time (b) Number of function evaluations in function of time
for the MBPC method using the cost function from equation 7.32. In these simulations,
α = 0.95 and N = 1.
Chapter 7. Controlling rotor speed using MBPC 96
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
20
40
60
80
100
120
140
160
180
200
220
Time [s]
Rotorsp
eedωm
[rad/s]
(a)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
3
Time [s]
Currenti[A
]
(b)
Figure 7.7: (a) Rotor speed ωm in function of time (b) Current i in function of time for the MBPC
method using the cost function from equation 7.33. In these simulations, α = 0.95 and
N = 1.
Chapter 7. Controlling rotor speed using MBPC 97
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Time [s]
λ
(a)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
10
20
30
40
50
60
70
80
90
100
110
Time [s]
Number
ofcost
functionevaluations
(b)
Figure 7.8: (a) Value for λ in function of time (b) Number of function evaluations in function of time
for the MBPC method using the cost function from equation 7.33. In these simulations,
α = 0.95 and N = 1.
Chapter 7. Controlling rotor speed using MBPC 98
7.5.2 Influence of the design parameter α
The parameter α plays a role in determining the reference signal r that is used in the cost
function. The parameter defines a first order path between the actual measured process out-
put and the setpoint for this output. When a MBPC methodology is used to control the
rotor speed of a BLDC machine, the parameter α determines the reference path for the rotor
speed. The lower the value for α, the bigger the weight of the setpoint in determining the
reference path in equation 7.11.
The rotor speed, current and the PWM reference λ are depicted in Fig 7.9 and Fig 7.10 for
different values of α. In these figures, the range of the x-axis is limited to the portion where
the influence of α is most prominent. Before t = 0.05 s, the acceleration is limited by the
current limitation (imax = 2 A). When the rotor speed gets closer to its setpoint of 200 rad/s,
the reference path can be followed without needing a current higher than 2 A. The current
(Fig. 7.9b) tends to zero when the rotor speed is approaching its setpoint. For small α, the
reference is steep, even when the rotor speed is close to its setpoint. This results in a current
that stays at 2 A for a longer time. A clear difference between the start-up behaviour (around
t = 0.055 s) when using α = 0.5 or α = 0.95 is noted in Fig. 7.9a. For α = 0.95, the rotor
speed is allowed to evolve more slowly to the speed setpoint. The current decreases more
gradually for this value of α.
When the load torque of 0.05 Nm is applied at t = 0.1 s, the parameter α determines how
strongly the control strategy reacts to this disturbance. For α = 0.95, the speed drops to
approximately 193 rad/s until it starts returning to the setpoint. This big speed drop is due
to the gradual increase of the current. For α = 0.5 and α = 0.75, the control strategy reacts
more strongly to the disturbance, limiting the drop in the rotor speed when applying the
load torque. From the values for α we are considering, α = 0.5 allows the fastest change in
the current. For this value of α, the rotor speed decreases to approximately 199 rad/s. The
behaviour of the MBPC strategy with α = 0.75 lies in between that with α = 0.5 and that
with α = 0.95.
The influence of α can also be noticed in the behaviour of the PWM reference λ in Fig. 7.10.
When the rotor speed approaches its setpoint, the current must quickly drop to zero for lower
values of α (e.g. α = 0.5 and α = 0.75). This results in an oscillatory behaviour of λ around
this region. When the load torque is applied, the lower values of α imply a fast reaction
to counteract the load torque. The current rises quickly, again leading to an oscillatory
behaviour of λ. When using α = 0.95, the behaviour of λ is more smooth.
Chapter 7. Controlling rotor speed using MBPC 99
0.05 0.1 0.15 0.2180
185
190
195
200
205
210
215
220
Time [s]
Rotorsp
eedωm
[rad/s]
α = 0.95α = 0.75α = 0.5
(a)
0.05 0.1 0.15 0.2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
3
Time [s]
Currenti[A
]
α = 0.95α = 0.75α = 0.5
(b)
Figure 7.9: (a) Rotor speed ωm in function of time (b) Current i in function of time for the MBPC
method using the cost function equation 7.33. The value for N is 1.
Chapter 7. Controlling rotor speed using MBPC 100
0.05 0.1 0.15 0.20
0.1
0.2
0.3
0.4
0.5
0.6
Time [s]
λ
α = 0.95α = 0.75α = 0.5
Figure 7.10: PWM reference λ in function of time for the MBPC method using the cost function
from equation 7.33. The value for N is 1.
7.5.3 Influence of the prediction horizon N
In sections 7.5.1 and 7.5.2, the prediction horizon N was equal to 1. This means that at the
beginning of a PWM period, the available current and speed information is used to predict
the current and the rotor speed at the end of that PWM period. The influence of N on the
behaviour of the MBPC strategy is investigated in this section. In the simulations that are
performed here, α is taken 0.95. The behaviour will be simulated for N = 1 and N = 3.
When N = 3, the algorithm predicts the current and rotor speed over three PWM periods.
When the load torque is applied, the derived model is not able to make correct predictions
any more. It was explained in section 7.5.1 that when the load torque is applied, it is rejected
by an increasing nωn . Moreover, also the current is predicted wrongly. Feedback of the error
ni is not strictly necessary when N = 1, the control algorithm is reacting fast enough to keep
the system stable. When the prediction horizon is changed to a higher value, the control
algorithm does not react so strongly. Simulations in Matlab/Simulink have shown that with-
out feedback of ni, the system is not stable. After applying the load torque, the rotor speed
decreases. The increasing nωn pushes the rotor speed back to its setpoint, but because the
current is estimated wrongly, the rotor speed then evolves to very high values. The control
algorithm calculates an optimal λ of which it thinks it will lower the rotor speed and current.
However, due to the absence of feedback of ni, the real current and rotor speed will evolve
to higher values. Using ni in the control algorithm solves this stability problem.
The influence of N on the rotor speed is depicted in Fig. 7.11. There hardly is a difference
between the rotor speed for N = 1 and N = 3. For N = 1, the rotor speed restores some-
what faster from the load torque that is applied at t = 0.1 s. Because the control algorithm
Chapter 7. Controlling rotor speed using MBPC 101
does not dispose of correct load torque information (it assumes that a load torque of 0 Nm
is applied at every instant), the predictions of current and rotor speed are not correct. For
N = 3, the wrong model inputs are used to predict the model output over three PWM peri-
ods. Based on these predictions, an optimal input is determined. In the determination of the
optimal input, the algorithm does not only take the first PWM period into account, but also
the second and the third. Therefore, the control input will be more smooth and the control
algorithm is reacting less strongly. This causes the difference in the rotor speed response to
a load torque disturbance for N = 1 and N = 3. The evolution of the current i for N = 1
and N = 3 is displayed in Fig. 7.12. On this plot, there is only a small difference between
the two considered cases.
The PWM reference λ in function of time is shown in Fig. 7.13. In contrast with Fig. 7.11
and 7.12, where the difference between the algorithm using N = 1 and N = 3 was rather
small, a difference in λ can be noted. For N = 3, the PWM reference evolves smoothly when
it tries to bring the current to zero as the rotor speed approaches its setpoint. When the
load torque is applied, the variation in λ is again smooth. For N = 1, an oscillation appears
when the current is forced to zero and when the load torque is applied. This is due to a
strong reacting control algorithm for this value of N . If N = 1, the algorithm calculates the
optimal λ for the coming PWM period, without taking into account what will happen after
that period. The current build up in the first PWM period can be too high, for example.
In the next PWM period, the algorithm will try to lower this high current, resulting in an
oscillating λ. If N = 3, the algorithm calculates the optimal λ that, if applied to the machine,
would minimize the cost function over the coming three PWM periods. Hence, a situation
like the one described for N = 1 does not occur for N = 3.
0,052 0,054 0,056 0,058
194
196
198
200
202
192
Time [s]
Rotorspeedωm
[rad/s]
N = 1N = 3
(a)
0.1 0.102 0.104 0.106 0.108 0.11
194
196
198
200
202
Time [s]
Rotorspeedωm
[rad/s]
N = 1N = 3
(b)
Figure 7.11: Rotorspeed ωn in function of time for the MBPC method using the cost function from
equation 7.33. The value for α is 0.95.
Chapter 7. Controlling rotor speed using MBPC 102
0.052 0.054 0.056 0.058
0
0.5
1
1.5
2
2.5
−0.5
Time [s]
Currenti[A
]
N = 1N = 3
(a)
0.1 0.102 0.104 0.106 0.108 0.11−0.5
0
0.5
1
1.5
2
2.5
Time [s]
Currenti[A
]
N = 1N = 3
(b)
Figure 7.12: Current i in function of time for the MBPC method using the cost function from
equation 7.33. The value for α is 0.95.
0.052 0.054 0.056 0.0580.25
0.3
0.35
Time [s]
λ
N = 1N = 3
(a)
0.1 0.102 0.104 0.106 0.108 0.110.25
0.3
0.35
Time [s]
λ
N = 1N = 3
(b)
Figure 7.13: PWM reference λ in function of time for the MBPC method using the cost function
from equation 7.33. The value for α is 0.95.
7.6 Using load torque feedback in the MBPC strategy
In chapter 4, a new load torque estimation method was proposed. In this section, a purpose for
load torque estimation is presented. In the previous sections of this chapter, it was assumed
that there was no load torque information. Hence, the MBPC strategy was implemented
with a load torque equal to zero. The effect of using an estimate of the load torque in the
MBPC strategy will be investigated. The load torque estimation is not necessarily equal to
the actual load torque. The load torque estimation that is used by the MBPC strategy is
represented TMBPC .
7.6.1 Simulation results
The MBPC strategy using load torque information is implemented in Matlab. The parameter
N is 1, the parameter α is chosen to be 0.95. In the test, the machine is again loaded with
a load torque of 50 mNm at time t = 0.01 s. Different cases for TMBPC will be investigated.
The difference between having a correct estimation TMBPC = Tl will be compared with
Chapter 7. Controlling rotor speed using MBPC 103
an underestimation of the load torque TMBPC = 0.5Tl, having no load torque information
TMBPC = 0 and an overestimation of the load torque TMBPC = 1.5Tl.
The rotor speed for the different cases for TMBPC is shown in Fig. 7.14. The curve for
TMBPC = 0, α = 0.95 and N = 1 was already depicted in the previous sections. For this
value of TMBPC , the rotor speed drops to approximately 193 rad/s and then evolves back to
its setpoint (not shown in the figure for clarity of the rest of the speed evolution). When there
is information of the load torque (by using a load torque estimator, for example), the speed
evolution improves substantially. If TMBPC = 0.5Tl, the rotor speed drops to approximately
197 rad/s. The speed drop is reduced by a factor 2.33. The situation improves even more
if TMBPC gets closer to Tl. The speed drop is negligible for TMBPC = Tl and TMBPC = 1.5Tl .
The current i for the performed tests is given in Fig. 7.15, the PWM reference λ is depicted
in Fig. 7.16. For TMBPC = 0, the current i and the PWM reference λ slowly evolve to their
steady-state values. The current i increases after every sample period . The increase in the
current i is purely ascribed to the non-zero value for ni and nωm . If TMBPC = 0.5Tl, the
control algorithm knows that a load torque is applied, but there is an error in the estimation
of its amplitude. The current now evolves faster to its steady-state value. When TMBPC = Tl,
the current immediately jumps to its steady-state value. For TMBPC = 1.5Tl, this is also
the case. This is due to the limitation of the current to 2 A. If the current would not be
limited to that value, the current would initially evolve to larger values, to fall back to its
steady-state value later on.
0.1 0.102 0.104 0.106 0.108 0.11180
185
190
195
200
205
Time [s]
Rotorsp
eedωm
[rad/s]
TMBPC = TlTMBPC = 0.5TlTMBPC = 0TMBPC = 1.5Tl
Figure 7.14: The evolution of the rotor speed speed ωn under a load torque disturbance for different
values of TMBPC . The MBPC parameters are: α = 0.95 and N = 1.
Chapter 7. Controlling rotor speed using MBPC 104
0.1 0.102 0.104 0.106 0.108 0.11−0.5
0
0.5
1
1.5
2
2.5
Time [s]
Currenti[A
]
TMBPC = TlTMBPC = 0.5TlTMBPC = 0TMBPC = 1.5Tl
Figure 7.15: The evolution of the current i speed under a load torque disturbance for different values
of TMBPC . The MBPC parameters are: α = 0.95 and N = 1.
0.1 0.102 0.104 0.106 0.108 0.11−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Time [s]
λ
TMBPC = TlTMBPC = 0.5TlTMBPC = 0TMBPC = 1.5Tl
Figure 7.16: The evolution of the PWM reference λ speed under a load torque disturbance for
different values of TMBPC . The MBPC parameters are: α = 0.95 and N = 1.
7.7 FPGA implementation of the MBPC strategy
The MBPC algorithm was implemented on the XC3S1600E FPGA board. The implemented
algorithm differs somewhat from the one that is used in the simulations above. The first
difference lies in the used optimization procedure. The second difference lies in the used
switching strategy. The used cost function is that of equation 7.33.
Chapter 7. Controlling rotor speed using MBPC 105
7.7.1 Switching strategy
In the simulations of the previous section, the complementary switching strategy was used,
which allowed λ to vary between -1 and 1. However, the DC supply of the set-up is not able
to deal with a reversal of the electrical power. Therefore, the standard switching strategy is
implemented on the FPGA. This limits the boundaries for the value of λ to 0 and 1.
7.7.2 Optimization of the cost function
The number of cost function evaluations required to find a solution which lies sufficiently close
to the optimal solution is given in Fig. 7.6b and Fig. 7.8b for two different cost functions. In
these figures, it is noted that there is some variation on the number of evaluations. As every
cost function evaluation takes a certain amount of time, the time needed to find the optimal
solution varies in time. For real-time applications this can be problematic. Moreover, the
number of cost function evaluations is quite high. The number of iterations can be reduced
by allowing a lower accuracy of the solution returned by the optimization algorithm.
To counter both problems, another optimization algorithm is used in the practical implemen-
tation. The interval [0, 1] of possible values for λ is divided in 10 equal intervals. The cost
function is evaluated for the limiting values of each interval (i.e. for λ equal to 0, 0.1,..., 1).
For one of these values for λ, the cost function becomes minimal. The optimal solution will
lie in one of the neighbouring intervals. The two neighbouring intervals are merged together.
The resulting interval is then divided in 12 equal intervals. Two of the limiting values of the
intervals are known from the previous iteration. Hence, also in the second iteration 11 values
for λ have to be evaluated. The number of cost function evaluations is limited to 22, while
achieving a resolution of 0.0167 for the optimal value for λ.
7.7.3 Calculation of the optimal λ
The MBPC algorithm starts from the rotor speed estimation ωm and measurements of the
DC-bus voltage Vs and the DC-bus current iDC . The DC-bus current is sampled at the PWM
frequency of 10 kHz, at the point where the PWM carrier becomes -1. At this point, there
is no switching action and the measured DC-bus current is equal to the current i in the two
conducting phases of the machine. The algorithm calculates the optimal λ, and needs to do
a set of calculations:
Generation of the speed reference r
Calculation of the error parameters nωm and ni
First iteration: prediction and cost function evaluation
Generation of a second set of values for λ
Second iteration: prediction and cost function evaluation
Chapter 7. Controlling rotor speed using MBPC 106
Every mathematical operation on the FPGA takes a certain amount of time. It is impossible
for the FPGA to do all the aforementioned calculations in one FPGA clock cycle of 20 ns.
Hence, the calculations have to be spread over time, to prevent that some calculations are not
performed. The generation of the speed reference r takes 2 clock cycles, the calculation of nωmand the calculation of ni take 2 clock cycles each, the prediction and cost function evaluation
take 8 clock cycles for each value of λ and the generation of the second set of values for λ takes
2 clock cycles. If the calculations would be performed sequentially, it would take 184 clock cy-
cles to calculate the optimal λ (taking into account that 22 values for λ have to be evaluated).
The calculation time can be greatly reduced by exploiting the possibility of parallelism and
pipelining on the FPGA [25]. The first value for λ enters the calculation core (which is
responsible for the prediction and cost function evaluation) at the first clock pulse and un-
dergoes a set of calculations during the first clock cycle. The results of these calculations are
then passed to the hardware blocks that will do a second set of calculations during the second
clock cycle. During the second clock cycle, the hardware blocks that were responsible for the
first set of calculations are idle. Instead of waiting until the first value of λ has undergone all
calculations, we can insert the second value of λ in the calculation core at the second clock
pulse. The first set of values for λ can thus be pipelined in the calculation core. After 8 clock
cycles, the cost function has been evaluated for the first value for λ. After 18 clock cycles,
the last value of the first set with values for λ has been evaluated. Once the cost function
has been evaluated for the last value of the first set of values for λ, the second set can be
generated. The second set of values for λ can then again be pipelined through the prediction
and cost function evaluation steps. The reference signal r and the error parameters nωm and
ni can be calculated in parallel with the calculation core, as the results of these calculations
are available before they are required by the calculation core.
The calculation time for determining the optimal λ can be summarised as:
18 clock cycles for the first iteration
2 clock cycles for the generation of the second set of values for λ
18 clock cycles for the second iteration
The resulting calculation time is 38 clock cycles. Using parallelism and pipelining thus leads
to a calculation time that is reduced to approximately a fifth of the original one. The
scheme of the MBPC algorithm in the FPGA is depicted in Fig. 7.17. The calculation core is
programmed twice, each with its own hardware resources. In fact, this is not necessary. The
evaluation of the second set of λ-values can be done on the same calculation core as the one
that is used to evaluate the first set of λ-values.
Chapter 7. Controlling rotor speed using MBPC 107
Figure 7.17: Schematics of the MBPC algorithm implemented in the FPGA
7.7.4 Influence of xωm feedback
Instead of only using the speed estimation ωm to calculate the optimal λ, the MBPC algorithm
also takes into account the difference between the predicted rotor speed and the actual rotor
speed. The algorithm thus works with an internal state variable xωm . The reason for this is
twofold:
Compensate for modelling errors.
Improve the disturbance rejection of the drive.
To see the effect of feedback of the state variable xωm , the rotor speed reference is set to
1300 rpm. The MBPC algorithm was programmed in such a way that the feedback of xωmcan be enabled using one of the sliding switches provided on the FPGA experiment board.
The impact of xωm on the rotor speed is shown in Fig. 7.18. When feedback of xωm is en-
abled, the rotor speed stays close to the reference. Without feedback of xωm , the rotor speed
is approximately 1250 rpm. The test was performed in no-load conditions. The difference
in the rotor speed can be ascribed to modelling errors (friction was not modelled, for example).
To test the influence of the feedback of xωm on the disturbance rejection, the machine is
loaded with a load torque with rectangular waveform. The improvement in the disturbance
rejection that follows from the feedback of xωm can be seen in Fig. 7.19. With feedback, the
rotor speed starts to deviate, but then returns to its setpoint. Without feedback of xωm , the
rotor speed deviates from the rotor speed in no-load conditions, without returning back to
this rotor speed.
Chapter 7. Controlling rotor speed using MBPC 108
0 500 1000 1500 20001200
1220
1240
1260
1280
1300
1320
1340
1360
1380
1400
Time [ms]
ωm
[rpm]
With xωm feedbackWithout xωm feedbackRotor speed setpoint
Figure 7.18: Influence of feedback of xωmon the actual rotor speed. (measurement)
0 200 400 600 800 1000 1200 1400 1600 1800 2000
800
900
1000
1100
1200
Time [ms]
ωm
[rpm]
With xωm feedback Without xωm feedback Rotor speed setpoint
0 200 400 600 800 1000 1200 1400 1600 1800 20000
10
20
30
40
50
60
70
Time [ms]
Tl[m
Nm]
Figure 7.19: Influence of feedback of xωmon the disturbance rejection when the machine is loaded
with a load torque with rectangular waveform. (measurement)
Chapter 7. Controlling rotor speed using MBPC 109
7.7.5 Effect of µ and xi on the current limitation
In equation 7.33, the parameter µ was used as a weight factor for the current limitation
in the total cost. In the simulations that were done in sections 7.5 and 7.6, the parameter
µ was chosen as 1 radAs . The influence of µ on the current limitation is tested by means of
measurements on the real set-up. In this test, the speed setpoint is set to 2000 rpm, α = 0.99
and imax = 2 A. The machine is then loaded until the maximum allowed current imax is
reached. Because the MBPC algorithm will now limit the current, the rotor speed will no
longer be equal to the rotor speed setpoint. As equation 7.33 does not necessarily imply
a strict limitation of the current to the set maximum, loading the machine even more will
cause the current to become higher than imax. The effectiveness of the current limitation is
characterized by the parameter β (in As/rad), which is defined as:
β =i− imaxω∗m − ωm
(7.35)
The parameter β was calculated for several values of µ. The results are shown in Fig. 7.20.
For low values of µ, there is a big influence of µ on β. This is the region where the
cost of a current i higher than imax is of the same order of magnitude as the cost that
comes from a rotor speed that deviates from ω∗m.
As µ becomes higher, β becomes lower. The current limitation becomes more strict.
However, the effect of increasing µ lowers for higher values of µ. A strict limitation of
the current is obtained for µ reaching to infinity.
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1x 10
−4
Parameter µ [rad/(As)]
β[A
s/rad]
Figure 7.20: Influence of feedback of µ on the current limitation of the BLDC drive. (measurement)
Disabling the feedback of xi leads to a current that is limited to a lower value than imax,
i.e. 1.88 A (this corresponds to an error of 6 %). The modelling errors that were made, lead
Chapter 7. Controlling rotor speed using MBPC 110
to a conservative current limiting when there is no feedback of xi. However, seen from a
theoretical point of view, it is possible that the modelling errors are such that if there is no
feedback of xi, the current is limited to a value higher than imax.
7.7.6 Influence of the parameter α on the disturbance rejection
In section 7.5.2, the influence of the parameter α was investigated by means of simulations.
The effect of the parameter α can also be examined by means of the FPGA implementation
on the practical setup. In this section, the impact of α on the load torque disturbance rejec-
tion will be inspected.
The Maxon Motor BLDC machine is loaded with a load torque with a rectangular waveform.
The parameter values for α that will be considered are α = 0.99 and α = 0.999. From the
simulation results in section 7.5.2, it is expected that for a lower value of α, the algorithm
will react more swiftly. The measurements that result from the FPGA implementation are
depicted in Fig. 7.21. Besides the estimated rotor speed ωm, also the state variable xωm is
shown in this figure.
It is observed that for the lower value of α, the rotor speed estimation ωm varies between
boundaries that are closer to the setpoint of 1000 rpm. For α = 0.99, the disturbance rejection
of the algorithm is thus better than for the case where α = 0.999. The effect of α can also be
observed in the state variable xωm . When the load torque is applied, xωm reacts more quickly
to the estimated rotor speed that starts to deviate. Hereby, the deviation is counteracted
more quickly. Lower values of α are thus better for the disturbance rejection of the drive
and control algorithm. However, too low values for α also imply an increased susceptibility
to measurement noise. Occasional big noise peaks in the speed estimation then lead to a dip
or peak in xωm . This effect is observed in Fig. 7.21 between t = 1400 ms and t = 1600 ms.
The settings of the Chipscope software did not allow to capture the corresponding peak in
the speed estimation.
Chapter 7. Controlling rotor speed using MBPC 111
200 400 600 800 1000 1200 1400 1600 1800 2000800
1000
1200
1400
Time [ms]
ωm
[rpm]
α = 0.99 α = 0.999
200 400 600 800 1000 1200 1400 1600 1800 20001000
1200
1400
1600
Time [ms]
xωm
[rpm]
α = 0.99 α = 0.999
200 400 600 800 1000 1200 1400 1600 1800 20000
20
40
Time [ms]
Tl[m
Nm]
Figure 7.21: The estimated rotor speed ωm (top), the state variable xωm(mid) and the external
applied load torque (bottom) for different values of α. (measurement)
7.7.7 Influence of using the load torque Tl
In section 7.6, the effect of using the load torque in the MBPC algorithm was discussed
based on theoretical simulations. The impact of load torque information can be verified
on the practical setup too. To test the impact, the machine is loaded with a rectangular
load torque. The parameter α is taken as 0.999. Because there is already a lot of noise in
the speed estimation, using the estimated load torque in the MBPC strategy would further
increase the noise in the speed estimation. Therefore, the applied load torque estimated from
the measurement of the current through the load resistor is used instead. The results are
depicted in Fig. 7.22. In this figure, it is noted that using an approximation of the load
torque, the oscillation amplitude of the rotor speed is reduced by approximately 40 %. In
chapter 6, a similar order of magnitude was achieved using load torque feedforward in the PI
controllers.
Chapter 7. Controlling rotor speed using MBPC 112
50 100 150 200 250 300800
900
1000
1100
1200
Time [ms]
ωm
[rpm]
Without Tl With Tl
50 100 150 200 250 3000
10
20
30
40
50
Time [ms]
Tl[m
Nm]
Figure 7.22: The effect of load torque information. (measurement)
7.8 Conclusion
In this chapter, the fundamentals of MBPC are explained and applied to control the rotor
speed of BLDC drives. This chapter demonstrates that it is possible to create a cost function
that forces the rotor speed to stay close to its setpoint, while keeping the current limited to
its maximum value. It is proven that the weight factor µ for the current limitation primarily
influences the current limitation for lower values µ. For µ ≥ 1, a good current limitation is
achieved. The effect of the design parameters on the behaviour of the MBPC algorithm were
investigated by simulations and by experiments on the practical set-up.
From the experiments on the practical set-up, it can be concluded that lower values for α
improve the disturbance rejection of the controlled drive. The feedback of the internal state
variables xi and xωm has a significant effect on the disturbance rejection of the drive and
helps to eliminate the effect of modelling errors.
While the MBPC strategy is a computationally intensive algorithm, the possibility of pipelin-
ing and parallelism on the FPGA allow to calculate the optimal input λ in real-time.
Like the case where the BLDC drive is controlled through PI controllers, knowing and using
Chapter 7. Controlling rotor speed using MBPC 113
the load torque as a feedforward greatly improves the disturbance rejection of the drive.
Chapter 8
Conclusions and further research
8.1 Conclusions
A BLDC drive needs rotor position information to drive it properly. Therefore, a regular
BLDC machine is equipped with position sensors (usually Hall sensors). However, these ad-
ditional position sensors result in a more costly, a less compact and a less robust system.
In the first part of this master’s dissertation, the focus was on sensorless control of BLDC
drives, which eliminates the need for additional position sensors. In the second part of this
thesis, the focus was on the speed control characteristics of BLDC drives.
The conclusions were stated at the end of each chapter. The most important conclusions will
be repeated here.
A dynamical model for BLDC machines was derived in chapter 2. This model includes cur-
rent commutation and the corresponding transients. In chapter 4, new speed and position
estimators were discussed, which are based on back-emf measurements. These estimators
are necessary to obtain a sensorless speed controlled BLDC drive. A load torque estimation
algorithm was also proposed.
The discussed sensorless algorithm was designed to perform well in transients. After testing
the method on the practical set-up, it could be concluded that the commutation instants
determined by the sensorless algorithm are more accurate than those determined by Hall
sensors of the BLDC machine. It was also shown that the sensorless algorithm performs
well in transients. The estimated commutation instants lie within 5 electrical degrees of the
optimal commutation instants.
The proposed speed estimator is based on back-emf measurements. In order to achieve a
measurable back-emf, the rotor speed should be high enough. From tests on the set-up, it
could be concluded that the proposed speed estimator works for rotor speeds that are as low
as 2 % of the nominal rotor speed.
114
Chapter 8. Conclusions and further research 115
In chapter 6, the estimated load torque was used as a feedforward to improve the dynamical
behaviour of the proposed sensorless BLDC drive. When the machine was loaded with a
varying load torque (e.g. a sinusoidal or rectangular load torque), the oscillation amplitude
could be reduced by approximately 55 % by using load torque feedforward. It was proven
theoretically that the proposed load torque feedforward has a positive effect on the dynamics
of the drive over the complete frequency range. This was confirmed by experiments on the
practical set-up.
In chapter 7, the control characteristics of BLDC machines were further considered. Even
though the MBPC is computationally demanding, it is possible to calculate the optimal value
for the PWM reference signal in real-time, due to the parallel calculation possibilities of an
FPGA. The influence of the design parameters of the MBPC strategy on the behaviour of the
controlled BLDC drive was investigated and verified by experiments on the practical set-up.
It was shown that it is possible to obtain a rotor speed that is close to the speed reference and
a current that stays limited to a maximum value by using just one cost function. If the weight
of the cost that comes from a current that is higher than the maximum allowed current in
the total cost is high enough, the current limitation is very well. The disturbance rejection
of the BLDC drive, that is controlled using a MBPC strategy, improves greatly when load
torque information is available and is used by the algorithm.
8.2 Further research
One of the drawbacks of the proposed speed estimator is the presence of noise. Further
research can be done to eliminate the origins of the noise in the speed estimation. The
Kalman-Bucy and Extended Kalman filter were explained as an introduction to chapter 4.
The results from these filters can be compared with the proposed speed estimator.
In chapter 5, a suggestion for further research was adduced. The speed estimation resulting
from the proposed speed estimation algorithm should be equal to the speed estimation that
results from the time between successive commutation instants in steady-state, as they both
represent the same physical variable. The speed estimation that results from the proposed
speed estimator will deviate from the actual rotor speed when there is a parameter error in
the back-emf constant. The code for the speed estimation can be extended with a part that is
triggered in steady-state. This code then compares the result of both estimations and adapts
the value for the back-emf constant accordingly.
The proposed sensorless control algorithm, which is suited for rotor speeds that are higher
than 2 % of the nominal rotor speed, can be combined with an algorithm for position estima-
tion at low rotor speeds and standstill. Hereby, a sensorless algorithm is created that works
over the complete speed range of the drive.
Chapter 8. Conclusions and further research 116
Using the MBPC strategy to control the BLDC drive leads to a noisy speed estimation. The
implemented MBPC algorithm reacts strongly to estimation errors, thereby reinforcing noise.
Making the MBPC less reactive (e.g. by increasing α and by increasing the prediction horizon
N), should lead to better results.
The model, that is used by the MBPC algorithm, uses the machine parameters from the
datasheet of the BLDC machine. These machine parameters deviate somewhat from the
actual machine parameters, that result from measurements with an LCR meter. Even though
there are some parameter errors, the difference between the actual rotor speed and the internal
state for the rotor speed in the algorithm is small. The influence of a wrongly estimated load
torque was already investigated. This study could be extended by investigating how the
MPBC strategy behaves under large parameter errors.
Appendix A
Practical set-up
A.1 Introduction
The practical set-up consists of two BLDC machines that are connected to each other
(Fig. A.1). One of the BLDC machines serves as a motor, the other one as a generator,
which will fulfil the role of a variable load. Each BLDC machine is connected to its own
FGPA, which will control the drive. Between the FPGA and the BLDC drive, there is a set
of analog-to-digital converters (ADC) and an optical isolator. The control signals from the
FPGA are sent to a separate power stage. The schematics of the setup and its connections
are shown in Fig. A.2.
Figure A.1: Picture of the setup
117
Appendix A. Practical set-up 118
Figure A.2: Scheme of the setup
A.2 BLDC motors
A.2.1 BLDC Maxon Motors
One of the BLDC machines is a Maxon motor EC 45 flat with a power rating of 50 W. This
BLDC machine is equipped with Hall sensors, allowing validation of the sensorless control
method. The machine parameters of this motor are given in table A.1 [26].
Appendix A. Practical set-up 119
Table A.1: Machine parameters of the Maxon motor EC 45 flat
Nominal voltage 18 V Phase to phase resistance 0.463 Ω
No load speed 6720 rpm Phase to phase inductance 0.322 mH
No load current 247 mA Torque constant 25.1 mNm/A
Nominal speed 5220 rpm Speed constant 380 rpm/V
Nominal torque 95.2 mNm Rotor inertia 135 gcm2
Nominal current 3.46 A Number of pole pairs 8
Stall torque 925 mNm Number of phases 3
A.2.2 BLDC Tiger Motor
The BLDC machine that is used as a generator, is a Tiger MT4008 with a rated power of
370 W. This motor is not provided with Hall sensors. The machine parameters of this BLDC
machine are given in table A.2. The phase to phase resistance and inductance were measured
with a LCR meter. A variation of the phase to phase inductance was observed when changing
the rotor position.
Table A.2: Machine parameters of the Tiger MT4008 BLDC machine
Phase to phase resistance 0.179 Ω Phase to phase inductance 0.0615−0.0713 mH
No load current (at 10 V) 400 mA Torque constant 25.1 mNm/A
Speed constant 380 rpmV Nominal current 18 A
Number of pole pairs 12 Number of phases 3
A.3 Power stage
The used power stage (voltage source inverter) is the ATMEL MC300 motor control driver
board [27]. This power stage was developed for DC, BLDC and stepper motors. The board
can handle supply voltage up to 40 V and motor currents up to 6 A. The power stage disposes
of four half-bridges, of which three will be used in the set-up.
A.4 FPGA
The FPGA boards used to control the motor and generator of the set-up are Xilinxr Spartan-
3E Starter Kit boards with a XC3S1600E and a XC3S500E FPGA chip, respectively. The
XC3S1600E FPGA disposes of [28]:
14752 slices
Appendix A. Practical set-up 120
648 Kbits of RAM memory
36 dedicated multipliers
The XC3S500E FPGA has the following specifications [28]:
4656 slices
360 Kbits of RAM memory
20 dedicated multipliers
To program the FPGA’s, the Xilinx System Generator environment is used. The Xilinx
ChipScope software allows to view the value of internal FPGA signals on a PC.
A.5 ADC modules
The phase voltages of the BLDC machine can be measured relative to the ground of the
power stage. The power stage is equipped with a shunt resistor, which makes it possible
to measure the DC link current. These analog signals are converted to digital ones using
the Digilent PmodAD1TM ADC modules. Each module has two built-in AD7476A ADC’s,
produced by Analog Devices (Fig. A.3 [29]). Hence, each module allows for two signals to be
read by the FPGA. A total of four ADC modules are used in the set-up. The ADC’s have a
12-bit resolution. They achieve a maximum sampling rate of one million samples per second.
Because the maximum voltage allowed by the modules is limited to 5 V and the maximum
occurring voltage in the set-up is 18 V (the DC supply voltage), a voltage divider is used.
Figure A.3: Scheme of an ADC module [29]
A.6 Digital isolators
To get a galvanic isolation between the power stage and the FPGA board, IL715 digital
isolators produced by NVE Corporation are used. These isolators implement the Isoloopr
technology, which transfers the measured signals using a magnetic field. The isolators have
to following properties [30]:
Appendix A. Practical set-up 121
Data transfer rates of 110 Mbps
A quiescent current of 1.2 mA for each channel
A propagation delay of 10 ns
2500 VRMS isolation voltage
A barrier life of 44000 year.
A.7 Encoder
As a validation of the commutation timing in transient conditions, the setup was equipped
with a Wachendorff WDG 58H optical encoder [31].
The encoder is suited for high operating speeds, the maximum operating speed is fixed
to a rotor speed of 6000 rpm.
The pulses result from two waves in quadrature. The accuracy of the 90 phase shift
between the two waveforms is determined as 7.5 % of the pulse width.
The encoder generates 5000 pulses per revolution.
.
Appendix B
PAPERS
In March 2014, a conference paper with the work presented in this master dissertation was
submitted and accepted for the 5th International Symposium on Sensorless Control for Elec-
trical Drives (SLED 2014) in Hiroshima, Japan.
A second paper was written to be submitted for the journal Transactions on Industry Appli-
cations.
122
Rotor Speed, Position and Load Torque EstimationUsing Back-emf Sampling for Self-Sensing
Brushless DC Machine DrivesAraz Darba, Student Member, IEEE, Pieter D’haese, Student Member, IEEE,
Frederik De Belie, Member, IEEE, Jan Melkebeek, Senior Member, IEEE
Abstract—This paper presents a load torque estimation methodfor self-sensing brushless DC drives. Torque ripples in brushlessDC machines can be reduced using load torque information. Thismethod uses the terminal voltage, the virtual neutral point voltageand the DC-bus current of the machine. The algorithm uses thevariation of successive back-emf samples to estimate the rotorspeed. The rotor position is estimated by defining an intermediatefunction of estimated speed and back-emf samples. An estimate ofacceleration is used to estimate load torque. The mathematicalbackground is given and discussed and the simulation resultsprove the performance of the proposed method.
Index Terms—Permanent-magnet brushless DC-machine(BLDC-machine), back-EMF zero-crossing, self-sensing control,estimation method
I. INTRODUCTION
BRUSHLESS DC machines (BLDC) are widely used inhome, automotive, aerospace and military applications.
The reason of this huge interest in different industries tothis type of machine is due to their significant advantages.Brushless DC machines have a high power density, simpleconstruction and higher efficiency compared to conventionalAC and DC machines and lower cost comparing to permanent-magnet AC synchronous machines. The phase currents of aBLDC machine have to commutate properly which is doneby using power semiconductors. For proper commutation therotor position is often obtained by an auxiliary instrument,mostly hall-effect sensors. In modern and cost-effective BLDCdrives the focus is on replacing the noise sensitive and lessreliable mechanical sensors by numerical algorithms, often re-ferred to as sensorless or self-sensing methods. The advantageof these methods is the use of current or voltage measurementswhich are usually available as these are required for the controlof the drive or the protection of the semiconductor switches.Avoiding the mechanical position sensor yields remarkablesavings in production costs, installation and maintenance. Italso implies a higher power to volume ratio and improvesthe reliability of the drive system. Different self-sensing tech-niques have been developed for BLDC machines. In this paper,
Copyright c© 2014 IEEE. Personal use of this material is permitted.However, permission to use this material for any other purposes must beobtained from the IEEE by sending a request to [email protected].
A. Darba “Email: [email protected]”, Pieter D’haese “Email:[email protected]”, F. De Belie “Email: [email protected]”and J. Melkebeek “Email: [email protected]” are with the Departmentof Electrical Energy, Systems and Automation of Ghent University,St-Pietersnieuwstraat 41, B-9000 Gent, Belgium.
commutation instantbefore speed drop
0 500 1000 1500 2000
−2000
−1000
0
1000
2000
No. of samples
AD
C o
utp
ut
valu
e
commutation instantafter speed drop
zerocrossing
eΔt,1
eΔt,2
Δt1
Δt2-eΔt,1
-eΔt,2t1
Time [mSec]
0 4.5 9.0 13.5 18.0
Volta
ge
[V
]
-10
10
Fig. 1. The effect of speed drop on back-emf signal. Light grey trace: 1800rpm, dark grey trace: 1200 rpm
the proposed estimation and prediction methods are using themeasured back-emf signal of the BLDC machine. Differentaspects of using the back-emf signal in self-sensing controlmethods are studied in [1]–[10].
For a robust BLDC drive control algorithm with a widevariety of applications, load torque is as a disturbancewithin the control-loop. Coupling the load to the motorshaft may cause variations of the inertia and viscous frictioncoefficient besides the load variation [11]. Even for a drivewith known load torque characteristics there are always someunmodelled components that can affect the performance ofthe drive system. In self-sensing controlled drives, thesedisturbances are more critical due to the lower accuracy ofthe self-sensing algorithms compared to drives equipped withposition sensors. To compensate or reject torque disturbances,control algorithms need the information of those disturbances.Direct measurement of the load torque on the machine shaftwould require another expensive and sensitive mechanicalsensor to the drive system. An estimation algorithm can be agood alternative. As a possible application, in [12], [13] theload torque estimation is used for mechanical fault detectionin high-speed trains but the estimated load torque has largeerrors during dynamic-states and transients. In [14] differentobserver based estimation algorithms are proposed, howeverthe machine model has to be chosen carefully to reduceparameter sensitivity. Robustness against model uncertaintiesand noise in the disturbance load torque estimation methods
1 978-1-4799-5784-2/14/$31.00 c©2014 IEEE
are investigated in [15] for constant load torque disturbances.In [16] the current profile is used to generate a signal relatedto the load torque. The dynamic performance of the methodis also not studied.
In [9], [10] the authors proposed a self-sensing methodreferred to as the symmetric-threshold-tracking method whichis an enhanced estimation method based on the monitoring ofthe back-emf signal. For a safe and stable operation a maxi-mum limit for the applied load torque should be maintainedwithin the self-sensing algorithm to determine the minimumvalue of one of the parameters. Having an estimation of theload torque value even once every 60 electrical degrees willimprove the performance of this method during transients. InFig. 1 the measured back-emf waveform of a BLDC machineis illustrated for two different speeds. To generate the traces,the back-emf signal of each phase during an unexcited intervalare merged together. By using this method a continuous signalincluding useful back-emf information of all three phases isobtained that can be used for different purposes. The light greytrace corresponds to a high and the dark grey trace correspondsto a low rotor speed. A decrease in the speed can occur dueto a change in speed set point or a voltage drop of the supplywhich are deterministic and the effect can be compensatedas the source is known and measurable. The speed drop canalso happen due to a load torque variation which often is anunknown event from the control algorithm point of view. Inthis paper the theoretical background of speed, position andload torque estimation methods and the simulation results willbe presented and discussed in detail.
II. DISCRETE-TIME MACHINE MODEL
In this study, cogging torque and nonlinearities caused bysaturation will be neglected and it is assumed the machine isstar connected. The voltage equation of a BLDC machine isdescribed by:
v = Rxi+ Lxdi
dt+ e+ vn (1)
Where v =[va vb vc
]T, i =
[ia ib ic
]Tare phase
voltages and currents of the machine, e =[ea eb ec
]Tis the back-emf of the machine which is supposed to betrapezoidal. vn is the neutral point voltage of the machine.L, R are the phase inductance and resistance matrices of themachine respectively.
Lx =
L M MM L MM M L
, Rx =
R 0 00 R 00 0 R
The coupled or line-to-line voltages of the machine can bederived from (1) as follows:
vab = R(ia − ib) + (L−M)d
dt(ia − ib) + (ea − eb) (2)
vbc = R(ib − ic) + (L−M)d
dt(ib − ic) + (eb − ec) (3)
vca = R(ic − ia) + (L−M)d
dt(ic − ia) + (ec − ea) (4)
where ex is determined as:
ea = keωmF (θe) (5)
eb = keωmF (θe −2π
3) (6)
ec = keωmF (θe −4π
3) (7)
In these equations, ke is the back-emf constant of the machine,θe is the electrical rotor position and F (θe) is a function thatcorresponds to the trapezoidal waveform:
F (θe) =
1, 0 ≤ θe ≤ 2π3
1 − 6π
(θe − 2π
3
), 2π
3 ≤ θe ≤ π
−1, π ≤ θe ≤ 5π3
−1 + 6π
(θe − 5π
3
), 5π
3 ≤ θe ≤ 2π
(8)
Assuming friction torque proportional to the rotor speed, themechanical equation is described by:
Jdωmdt
= Te − kfωm − Tl (9)
where J , Tl and ωm are the inertia, load torque and themechanical speed, respectively. kf is the friction constant ofthe machine. The electromagnetic torque Te is given by:
Te = kt[F (θe)ia + F (θe −2π
3)ib + F (θe −
4π
3)ic] (10)
where kt is the torque constant of the machine. Only two ofthe equations (2), (3) and (4) are independent of each other,because the sum of the line-to-line voltages is equal to zero.This means that the third equation does not have any addedvalue to the model. As it is mentioned earlier in this sectionthe machine is assumed to be star connected, where the starpoint is not accessible. It follows that zero-sequence currentscannot exist:
ia + ib + ic = 0 (11)
The voltage equations (2), (3) then become:
vab = R(ia − ib) + (L−M)d
dt(ia − ib) + (ea − eb) (12)
vbc = R(ia + 2ib) + (L−M)d
dt(ia + 2ib) + (eb − ec) (13)
These equations can be transformed into the following statespace model:
d
dt
iaibωmθm
=
−RL 0 0 0
0 −RL 0 0
0 0 −kfJ 0
0 0 1 0
.
iaibωmθm
+
23L
13L 0
− 13L
13L 0
0 0 1J
0 0 0
.
vab − eabvbc − ebcTe − Tl
(14)
To evaluate the performance of the speed, position and theload torque estimation a simulation model of the BLDC driveis necessary. A discrete-time model of the machine and drive isused because modern drive systems are equipped with digitalcontrol units which work in a discrete way. A zero-order holddiscretization method is used for implementing the rotor speed
2 978-1-4799-5784-2/14/$31.00 c©2014 IEEE
and load torque estimation based on the instantaneous valueof the back-emf. Since the differential equation (14) is in theform of
x = Ax+Bu (15)y = Cx+Du (16)
it has a general solution as:
x(t) = eA(t−t0)x(t0) +
∫ t
t0
eA(t−τ)Bu(τ)dτ (17)
To discretize equation (15), we consider equation (17) betweenthe time samples t0 = kδ and (k+1)δ, where δ represents thesample period. The corresponding value for the state variablex is xk and xk+1, respectively. The usual procedure in digitalcontrol is to hold the control input u(t) constant betweensampling times.
xk+1 = eAδ︸︷︷︸ASH
xk +
∫ δ
0
eA(t−τ)Bdτ
︸ ︷︷ ︸BSH
.uk (18)
uk is the value of the input in the time interval [kδ, (k+ 1)δ].By applying (18) to the state-space model of the machine, thefollowing matrices can be derived for the discretized system:
ASH =
e−RδL 0 0 0
0 e−RδL 0 0
0 0 1 00 0 δ 1
(19)
BSH =
23
1−e−RδL
R13
1−e−RδL
R 0
− 13
1−e−RδL
R13
1−e−RδL
R 0
0 0δ
J0 0 δ2
2J
(20)
III. SPEED AND POSITION ESTIMATION FROM THEBACK-EMF MEASUREMENTS
To estimate the load torque, the back-emf is measured firstly.The method to obtain a reliable back-emf measurement isexplained in detail in [9], [10] by the authors. The back-emfmeasurements contain information about both the electricalposition θe (through F (θe)) and the rotor speed ωm. Anestimation of the speed is obtained by comparing the valueof the measured back-emf for successive samples e[k − 1](measured back-emf at sample k−1) and e[k] (measured back-emf at sample k). Starting from (5), (6) and (7), the followingequations can be derived from ∆e[k] = e[k] − e[k − 1]
∆e[k] = ke(F (θe[k]) − F (θe[k − 1]))ωm[k − 1]
+ keF (θe[k])(ωm[k] − ωm[k − 1])
= kemL(θe[k] − θe[k − 1])ωm[k]
+ keF (θe[k])(ωm[k] − ωm[k − 1]) (21)
where Ts is the time between two back-emf measurements(back-emf sampling time). mL is the slope of the linear part ofF (θe). By considering a small Ts compared to the mechanical
time constant of the machine an approximation of ∆e[k] canbe derived from (21) as follows:
∆e[k] ≈ kemLNpTs(ωm[k] − ωm[k] − ωm[k − 1]
2)ωm[k]
+ keF (θe[k])(ωm[k] − ωm[k − 1]) (22)
where Np is the number of pole pairs. It is assumed that atthe moment of the back-emf measurement in the unexcitedphase, the electrical angle θe is in the linear part of F (θe).Furthermore, supposing τm τe, it can be assumed that therotor speed does not change between two successive back-emfsamples (ωm[k] ≈ ωm[k − 1]). We then obtain the followingequation to estimate the rotor speed at the k-th time sample:
ωm[k] =
√e[k] − e[k − 1]
kemLTsNp(23)
From the back-emf measurement e[k] it is possible to get anestimate of the value of the function F at that time sample:
F (θe[k]) =e[k]
keωm[k](24)
As there is a one-to-one relationship between F and θe, anestimate of F implies an estimation of the rotor-position, θe[k].
In the symmetric-threshold-tracking algorithm [9], [10] theback-emf threshold determination instant for phase-currentcommutation is controlled by ∆t. The minimum value of∆t is determined by the maximum back-emf drop due tothe maximum applicable load torque. If the value of ∆tis determined before a sudden speed drop, the back-emfwaveform may not attain the threshold value in the oppositeside. For example in the case of Fig.1 the dark grey tracedoes not have an intersection with −e∆t1 which thresholdvalue has been determined sampling the back-emf at ∆t1. Thisproblem is solved in previous papers of the authors by addinga minimum limit to ∆t value to guarantee the intersection inthe event of a maximum possible speed drop. This problem canhave more dynamic solution by using load torque information.
IV. LOAD TORQUE ESTIMATION
By neglecting the friction, the evolution of the speed isgoverned by the following differential equation:
Jdωmdt
= Te − Tl (25)
Here Te represents the electromagnetic torque produced bythe BLDC machine. Tl is the applied load torque. The changein speed is proportional to the difference in electromagnetictorque and the load torque. We can discretize (25) to:
ωm[k + 1] = ωm[k] + TsTe − TlJ
(26)
θm[k + 1] = θm[k] + Tsωm[k] +T 2s
2J(Te[k] − Tl[k]) (27)
The electromagnetic torque Te is determined by (10) and thistorque can be evaluated using the current measurement idc:
Te = 2ktidc (28)
3 978-1-4799-5784-2/14/$31.00 c©2014 IEEE
Combining equations (23),(26) and (28), makes it possible toget a prediction for the speed at sample moment t = (k+1)Ts:
ωe,pred[k + 1] = ωe[k] + Ts2ktidc[k] − Tl[k]
J(29)
The rotor position can be predicted using the discretized modelin the same way from (27):
θe,pred[k + 1] = θe[k] + Tsωm[k]
+T 2s
2J
(2ktidc[k] − Tl[k]
)(30)
However, the load torque at time instant t = k (t is now adiscrete time) is unknown. An updating scheme is used forthe load torque estimation. We will use two indices, k and l,for this, Tl[k, l]. The first index represents the time instant atwhich we want an estimate of the load torque. The secondindex represents the time instant at which the estimation isdone. At t = k there is no information about the load torque.We assume, as an initial guess, that the load torque did notchange:
Tl[k, k] ≈ Tl[k − 1, k] (31)
At t = k+1, new information about the load torque is derived:a new measurement of the back-emf is performed. From thismeasurement, a new estimation of the speed ωm[k + 1], isdetermined. This rotor speed estimation is compared with thepredicted speed from equation (29).
The difference in the estimated rotor speed and the predictedrotor speed, results from a difference in net torque applied tothe rotor. From equation (26), a new estimation of the loadtorque at time instant t = k can be determined:
Tl[k, k + 1] = Tl[k, k] +J
Ts(ωm,pred[k + 1] − ωm[k + 1])
(32)
V. SIMULATION RESULTS
The proposed algorithm for rotor speed, position andload torque estimation is implemented in Matlab/Simulinksoftware. Appendix A shows the parameters of the modelledmachine.
To validate the performance of the discrete-time machinemodel as well as speed, position and load torque estimatorsthe machine is driven with a 6-step commutation method.For the first set of simulations the machine is driven withoutcurrent and speed controllers to compare the effect of thecontroller on the proposed algorithms. In Fig. 3 after reachingto steady-state at t = 60 ms a load torque of 0.1 Nm isapplied to the machine. At every instant, the back-emf canbe measured at the unexcited motor terminal. The theoreticalsimulated back-emf signal at the described test is depicted inFig. 2. The value of back-emf drops due to the speed dropwhich is a result of loading of the machine in absence of anycontrol loop.
Using equation (23), the rotor speed can be estimated fromthe back-emf which is illustrated in Fig. 2. The actual speedand estimated speed related to the same dynamic behaviour
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−10
−5
0
5
10
Time [s]
Sim
ula
ted b
ack−
em
f [V
]
Fig. 2. Continuous signal which is generated by merging the back-emf ofeach phase during its unexcited interval
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
50
100
150
200
250
300
350
400
450
Time [s]
Roto
r speed [
rad/s
]
Estimated ωm
Actual ωm
ωm*
0.059 0.0595 0.06 0.0605 0.061 0.0615 0.062 0.0625 0.063 0.0635 0.064380
385
390
395
400
Fig. 3. Simulation results during start-up and loading of the machine foractual and estimated speed signals
of the machine is illustrated in Fig. 3. When the machineis commutated to the next switching state, the slope of thefunction F changes from 6
pi to − 6pi or vice versa, equation (8).
At the commutation to the next switching state, the measuredback-emf exhibits a singularity: the derivative does not existat these points. At these moments, the estimated rotor speedis not updated. In Fig. 3, it can be seen that the estimatedrotor speed varies around the actual rotor speed. It can alsobe observed that the estimated rotor speed is equal to theactual rotor speed approximately halfway in between twocommutations.
The origin of the variation in the estimated rotor speedis due to the effect of transients. In the derivation of equa-tion (24), speed variations between successive time samples(ωm[k] = ωm[k+ 1]) are assumed to be zero. By consideringthe continuous time equivalent of equation (23) and by takingthe time derivative of the measured back-emf signal
de
dt= ke
dF
dtωm + keF
dωmdt
= kemLNpω2m + keF (θe)
dωmdt
(33)
the second term is omitted when neglecting speed transients.
Using equation (24), it is possible to estimate the value ofthe function F at each time sample. The estimation results of
4 978-1-4799-5784-2/14/$31.00 c©2014 IEEE
0 0.005 0.01−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
Time [s](a)
Estim
ate
d v
alu
e F
0.055 0.06 0.065
−1
0
1
2
Time [s](b)
Estim
ate
d v
alu
e F
Fig. 4. Estimation of the F function, (a) start-up transients, (b) loadingtransients
0 0.005 0.01
−0.5
0
0.5
1
Time [s](a)
Estim
ate
d θ
e[r
ad]
0.055 0.06 0.065
0
1
Time [s](b)
Estim
ate
d θ
e[r
ad]
Estimated θe
Commutation seq.
Estimated θe
Commutation seq.
Fig. 5. Estimated electrical angle θe of the machine, (a) start-up transients,(b) loading transients
this equation are depicted in Fig. 4-a,b. The machine is loadedwith 0.1 N.m at instant 60 ms and there is no noticeabletransient in the estimation. From the estimation of the Ffunction, the rotor position can be estimated. In Fig. 5-a,bthe estimation results are shown. The electrical angle θe (greyline) is plotted in such a way that the result lies between 0and π
3 . The commutation sequence of BLDC drive (0 through5) which comes from hall-effect sensors is shown by blacklines. It should be noticed that the estimated rotor position θeis accurate after the first interval. It can also be noticed thatdespite inaccurate position estimation during first interval, thefirst commutation instant is approximated accurately.
The load torque is estimated based on the procedureproposed in section IV. Accordingly, the simulation resultsare demonstrated in Figs. 6-a,b. As it can be seen theload torque estimation is converging to zero during thenoload condition. By loading the machine, the ripple in theelectromagnetic torque results in higher ripples in both theactual and estimated speed. As a result, the estimated loadtorque, which is derived from the speed estimation, oscillatesaround the applied load torque without converging to theexact value.
The second part of the simulation is carried out afterimplementing a speed and current control loop to the BLDCmachine and estimators. The results of the load torque estima-tion is evaluated again. As it can be seen from Fig. 7 the load
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
Time [s](a)
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
0.055 0.06 0.065 0.07 0.075 0.08−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
Time [s](b)
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
Fig. 6. Simulation results for load torque estimation, (a) start-up and loadingtransients, (b) zoomed view of loading transients
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.1
−0.05
0
0.05
0.1
Time [s]
Estimated load torque
Applied load torque
Fig. 7. Simulation results during start-up and loading of the machine foractual and estimated speed signals
torque estimation is converging to the exact value for both no-load and loaded conditions of the machine.
In order to test the dynamic performance of the estima-tion algorithms a programmed load torque is applied to themachine. Fig. 8 shows the simulation results for a graduallyincreasing load torque. The amplitude is varying between 0and 60 mN.m with a frequency of 100 Hz. The last dynamictest is applying a sinusoidal load torque which has positiveand negative values. Negative values of the load torque meanthat the machine is extenally driven by the load. Fig. 9 showsthe simulation results for this dynamic test. There is an errorin the estimation of the varying load torque due to the errorin the speed estimation which will not be present if the loadtorque varies slower.
5 978-1-4799-5784-2/14/$31.00 c©2014 IEEE
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
Time [s](a)
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
50
100
150
200
Time [s](b)
Roto
r speed [
rad/s
]
Estimated ωm
Actual ωm
0.085 0.086 0.087 0.088 0.089 0.09 0.091 0.092 0.093 0.094 0.095188
190
192
194
196
198
Fig. 8. Simulation results during start-up and loading of the machine foractual and estimated speed signals
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.1
−0.05
0
0.05
0.1
Time [s](a)
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
50
100
150
200
Time [s](b)
Roto
r speed [
rad/s
]
Estimated ωm
Actual ωm
0.085 0.086 0.087 0.088 0.089 0.09 0.091 0.092 0.093 0.094 0.095192
194
196
198
200
202
204
206
208
Fig. 9. Simulation results during start-up and loading of the machine foractual and estimated speed signals
VI. CONCLUSIONS
A self-sensing speed and position estimation method isdeveloped to estimate the load torque of a BLDC machinebased on the back-emf measurement of the machine which is
obtained using a technique described in [10]. This method canbe used as a stand alone self-sensing BLDC drive as it has theposition and speed information of the machine. In additionit can be used as an enhancement on other back-emf zero-crossing techniques to improve their loading performance, inparticular for the applications which have high varying loadingprofiles.
APPENDIX APARAMETERS OF THE SIMULATED MACHINE
Parameter Value
Stator Resistance 0.25Ω
Stator Inductance Constant 0.161 mHNumber of Pole Pairs 8
Nominal Voltage 18 VNominal Current 3.5 A
Inertia 135 gcm2
Torque constant kt 25.1 mNm/AVoltage constant ke 380 rpm/V
ACKNOWLEDGMENT
This work is carried out in the frame of the FWOProject G.0083.13N and financially supported by the FWO-Vlaanderen (Research Foundation - Flanders, Belgium). A.Darba thanks the FWO for the Fellowship received.
REFERENCES
[1] L.I. Iepure, I. Boldea, F. Blaabjerg, “Hybrid I-f Starting and Observer-Based Sensorless Control of Single-Phase BLDC-PM Motor Drives,”IEEE Trans. Ind. Electron., vol.59, no.9, pp.3436-3444, Sept. 2012.
[2] Jin Gao, Yuwen Hu, “Direct Self-Control for BLDC Motor Drives Basedon Three-Dimensional Coordinate System,” IEEE Trans. Ind. Electron.,vol.57, no.8, pp.2836-2844, Aug. 2010.
[3] F. De Belie, J. De Backer, A. Darba, J. Melkebeek, “Low-Speed Salient-Pole BLDC-Machine Control by Using a Single Sensor,” 15th IEEEInternational Conference on Electrical Machines and Systems (ICEMS),vol., no., pp.1,6, 21-24 Oct. 2012.
[4] P. Acarnley and J. Watson, “Review of Position-Sensorless Operation ofBrushless Permanent-Magnet Machines,” IEEE Trans. Ind. Electron., Vol.53(2), pp.352-362, April 2006.
[5] Taeyeon Kim, Chungil Kim, Joon Lyou, “A new sensorless drive schemefor a BLDC motor based on the terminal voltage difference,” IEEE Ind.Electron. Society IECON, vol., no., pp.1710-1715, 7-10 Nov. 2011.
[6] Jianwen Shao, D. Nolan, M. Teissier, D. Swanson, “A novelmicrocontroller-based sensorless brushless DC (BLDC) motor drive forautomotive fuel pumps,” IEEE Trans. on Industry Applications, vol.39,no.6, pp.1734-1740, Nov./Dec. 2003.
[7] Jianwen Shao, “An Improved Microcontroller-Based Sensorless BrushlessDC (BLDC) Motor Drive for Automotive Applications,” IEEE Trans. onIndustry Applications, vol.42, no.5, pp.1216,1221, Sept./Oct. 2006.
[8] P. Damodharan, K. Vasudevan, “Sensorless Brushless DC Motor DriveBased on the Zero-Crossing Detection of Back Electromotive Force(EMF) From the Line Voltage Difference,” IEEE Trans. on EnergyConversion, vol.25, no.3, pp.661-668, Sept. 2010.
[9] Darba A., De Belie F., Melkebeek J., “Sensorless commutation andspeed control of Brushless DC-machine drives based on the back-EMF symmetric threshold-tracking,” 2013 IEEE International ElectricMachines & Drives Conference (IEMDC), pp.492-497, 12-15 May 2013.
[10] Darba Araz, De Belie Frederik, Salem Aboubakr, Melkebeek Jan,“FPGA-based implementation of the back-EMF symmetric-threshold-tracking sensorless commutation method for Brushless DC-machines,”2013 IEEE International Symposium on Sensorless Control for ElectricalDrives and Predictive Control of Electrical Drives and Power Electronics(SLED/PRECEDE), 17-19 Oct. 2013.
6 978-1-4799-5784-2/14/$31.00 c©2014 IEEE
[11] Kyeong-Hwa Kim; Myung-Joong Youn, “A nonlinear speed control for aPM synchronous motor using a simple disturbance estimation technique,”IEEE Trans. on Ind. Electron., vol.49, no.3, pp.524-535, Jun 2002.
[12] Guzinski J., Diguet M., Krzeminski Z., Lewicki A., Abu-Rub H.,“Application of Speed and Load Torque Observers in High-Speed TrainDrive for Diagnostic Purposes,” IEEE Trans. on Ind. Electron., vol.56,no.1, pp.248,256, Jan. 2009.
[13] Guzinski J., Abu-Rub H., Diguet M., Krzeminski Z., Lewicki A., “Speedand Load Torque Observer Application in High-Speed Train ElectricDrive,” IEEE Trans. on Ind. Electron., vol.57, no.2, pp.565-574, Feb.2010.
[14] Buja, G.S.; Menis, R.; Valla, M.I., “Disturbance torque estimation in asensorless DC drive,” IEEE Trans. on Ind. Electron., vol.42, no.4, pp.351-357, Aug 1995.
[15] Grignion, D.; Xiang Chen; Kar, N.; Huijie Qian,, “Estimation of LoadDisturbance Torque for DC Motor Drive Systems Under Robustness andSensitivity Consideration,” IEEE Trans. on Ind. Electron., vol.61, no.2,pp.930-942, Feb. 2014.
[16] Wale J.D., Pollock C., “A low-cost sensorless technique for load torqueestimation in a hybrid stepping motor,” IEEE Trans. on Ind. Electron.,vol.46, no.4, pp.833-841, Aug 1999.
7 978-1-4799-5784-2/14/$31.00 c©2014 IEEE
1
Improving the Dynamic-stiffness in a Self-SensingBrushless DC Machine Drive by Using Estimated
Load Torque FeedforwardAraz Darba, Student Member, IEEE, Pieter D’haese, Student Member, IEEE,
Frederik De Belie, Member, IEEE, Jan Melkebeek, Senior Member, IEEE
Abstract—This paper presents a load torque estimation methodfor self-sensing brushless DC drives. Torque ripples in brushlessDC machines can be reduced using load torque information. Thismethod uses the terminal voltage, the virtual neutral point voltageand the DC-bus current of the machine. The algorithm uses thevariation of successive back-emf samples to estimate the rotorspeed. The rotor position is estimated by defining an intermediatefunction of estimated speed and back-emf samples. An estimate ofacceleration is used to estimate load torque. The mathematicalbackground is given and discussed and the simulation resultsprove the performance of the proposed method.
Index Terms—Permanent-magnet brushless DC-machine(BLDC-machine), back-EMF zero-crossing, self-sensing control,estimation method
I. INTRODUCTION
BRUSHLESS DC machines (BLDC) are widely used inhome, automotive, aerospace and military applications.
The reason of this huge interest in different industries tothis type of machine is due to their significant advantages.Brushless DC machines have a high power density, simpleconstruction and higher efficiency compared to conventionalAC and DC machines and lower cost comparing to permanent-magnet AC synchronous machines. The phase currents of aBLDC machine have to commutate properly which is doneby using power semiconductors. For proper commutation therotor position is often obtained by an auxiliary instrument,mostly hall-effect sensors. In modern and cost-effective BLDCdrives the focus is on replacing the noise sensitive and lessreliable mechanical sensors by numerical algorithms, often re-ferred to as sensorless or self-sensing methods. The advantageof these methods is the use of current or voltage measurementswhich are usually available as these are required for the controlof the drive or the protection of the semiconductor switches.Avoiding the mechanical position sensor yields remarkablesavings in production costs, installation and maintenance. Italso implies a higher power to volume ratio and improvesthe reliability of the drive system. Different self-sensing tech-niques have been developed for BLDC machines. In this paper,
Copyright c© 2014 IEEE. Personal use of this material is permitted.However, permission to use this material for any other purposes must beobtained from the IEEE by sending a request to [email protected].
A. Darba “Email: [email protected]”, Pieter D’haese “Email:[email protected]”, F. De Belie “Email: [email protected]”and J. Melkebeek “Email: [email protected]” are with the Departmentof Electrical Energy, Systems and Automation of Ghent University,St-Pietersnieuwstraat 41, B-9000 Gent, Belgium.
Las
Ras
Rbs
LcsRcs
Lbs
eA
eBeC
A
BC
SAt
SAb
SBt
SBb
SCt
SCb
Vdc/2
Vdc/2
V
o
IA
IBIC
IDC
BLDC
inverter
o'
ADC
DC-link GND
gate pulses
FPGA
FPGA GND
isolator
gate pulses
measurements measurementsSpartan 3E
XC3S500E
speedreference
+-
speedcontroller
currentcontroller
PIgate pulses +-
+
SC
tSC
b
SB
tSB
b
SA
tSA
b
commutation sequence
Commutation instants,
speed and load torque
estimator
VnVA,B,CiDCVDC
iDC
INS
IDE
FP
GA
load torque estimation
Fig. 1. Schematic diagram of the test setup
the proposed estimation and prediction methods are using themeasured back-emf signal of the BLDC machine. Differentaspects of using the back-emf signal in self-sensing controlmethods are studied in [1]–[10].
For a robust BLDC drive control algorithm with a widevariety of applications, load torque is as a disturbancewithin the control-loop. Coupling the load to the motorshaft may cause variations of the inertia and viscous frictioncoefficient besides the load variation [11]. Even for a drivewith known load torque characteristics there are always someunmodelled components that can affect the performance ofthe drive system. In self-sensing controlled drives, thesedisturbances are more critical due to the lower accuracy ofthe self-sensing algorithms compared to drives equipped withposition sensors. To compensate or reject torque disturbances,control algorithms need the information of those disturbances.Direct measurement of the load torque on the machine shaftwould require another expensive and sensitive mechanicalsensor to the drive system. An estimation algorithm can be agood alternative. As a possible application, in [12], [13] theload torque estimation is used for mechanical fault detectionin high-speed trains but the estimated load torque has largeerrors during dynamic-states and transients. In [14] different
2
observer based estimation algorithms are proposed, howeverthe machine model has to be chosen carefully to reduceparameter sensitivity. Robustness against model uncertaintiesand noise in the disturbance load torque estimation methodsare investigated in [15] for constant load torque disturbances.In [16] the current profile is used to generate a signal relatedto the load torque. The dynamic performance of the methodis also not studied.
In [9], [10] the authors proposed a self-sensing methodreferred to as the symmetric-threshold-tracking method whichis an enhanced estimation method based on the monitoringof the back-emf signal. For a safe and stable operationa maximum limit for the applied load torque should bemaintained within the self-sensing algorithm to determine theminimum value of one of the parameters. Having an estimationof the load torque value even once every 60 electrical degreeswill improve the performance of this method during transients.In this paper the theoretical background of the speed, positionand load torque estimation methods and the simulation resultsas well as experimental results and the results of application ofload torque estimation to increase the dynamic-stiffness of thedrive will be presented and discussed in detail. An schematicoverview of the basic experimental setup is illustrated in Fig.1
In terms of control theory, the load torque Tl is an externaldisturbance for electrical drive systems. Load torque is unre-lated to the speed reference and the internal variables. It canhas deterministic or stochastic nature in different applications.The transfer function ωm
Tlor θm
Tlreflect the output speed or
position sensitivity to applied load torque disturbances. In [17],[18] authors have proposed two basic measures of motioncontrol system performance: 1) command tracking and 2)disturbance rejection which the later is commonly related tothe term Dynamic Stiffness. The dynamic stiffness is definedby the transfer function between load torque and the controlledmechanical state of the machine (it can be position or velocity).In this paper, to improve the dynamic-stiffness of the drive aload torque feedforward is added to the already existent speedand current controllers.
The transfer function ωmTl
relating to the frequency domainof the system output ωm and the load torque Tl. In the idealcondition the transfer function of ωm
Tlshould be equal to zero.
Systems with the transfer function for outputdisturbance close to
zero are referred to as rigid or stiff, reflecting the fact thatthe disturbance inputs (in this case Tl) of the control system,have little or no influence on controlled variable (in this casemachine speed ωm).
II. DISCRETE-TIME MACHINE MODEL
In this study, cogging torque and nonlinearities caused bysaturation will be neglected and it is assumed the machine isstar connected. The voltage equation of a BLDC machine isdescribed by:
v = Rxi+ Lxdi
dt+ e+ vn (1)
Where v =[va vb vc
]T, i =
[ia ib ic
]Tare phase
voltages and currents of the machine, e =[ea eb ec
]Tis the back-emf of the machine which is supposed to betrapezoidal. vn is the neutral point voltage of the machine.L, R are the phase inductance and resistance matrices of themachine respectively.
Lx =
L M MM L MM M L
, Rx =
R 0 00 R 00 0 R
The coupled or line-to-line voltages of the machine can bederived from (1) as follows:
vab = R(ia − ib) + (L−M)d
dt(ia − ib) + (ea − eb) (2)
vbc = R(ib − ic) + (L−M)d
dt(ib − ic) + (eb − ec) (3)
vca = R(ic − ia) + (L−M)d
dt(ic − ia) + (ec − ea) (4)
where ex is determined as:
ea = keωmF (θe) (5)
eb = keωmF (θe −2π
3) (6)
ec = keωmF (θe −4π
3) (7)
In these equations, ke is the back-emf constant of the machine,θe is the electrical rotor position and F (θe) is a function thatcorresponds to the trapezoidal waveform:
F (θe) =
1, 0 ≤ θe ≤ 2π3
1 − 6π
(θe − 2π
3
), 2π
3 ≤ θe ≤ π
−1, π ≤ θe ≤ 5π3
−1 + 6π
(θe − 5π
3
), 5π
3 ≤ θe ≤ 2π
(8)
Assuming friction torque proportional to the rotor speed, themechanical equation is described by:
Jdωmdt
= Te − kfωm − Tl (9)
where J , Tl and ωm are the inertia, load torque and themechanical speed, respectively. kf is the friction constant ofthe machine. The electromagnetic torque Te is given by:
Te = kt[F (θe)ia + F (θe −2π
3)ib + F (θe −
4π
3)ic] (10)
where kt is the torque constant of the machine. Only two ofthe equations (2), (3) and (4) are independent of each other,because the sum of the line-to-line voltages is equal to zero.This means that the third equation does not have any addedvalue to the model. As it is mentioned earlier in this sectionthe machine is assumed to be star connected, where the starpoint is not accessible. It follows that zero-sequence currentscannot exist:
ia + ib + ic = 0 (11)
The voltage equations (2), (3) then become:
vab = R(ia − ib) + (L−M)d
dt(ia − ib) + (ea − eb) (12)
vbc = R(ia + 2ib) + (L−M)d
dt(ia + 2ib) + (eb − ec) (13)
3
These equations can be transformed into the following statespace model:
d
dt
iaibωmθm
=
−RL 0 0 0
0 −RL 0 0
0 0 −kfJ 0
0 0 1 0
.
iaibωmθm
+
23L
13L 0
− 13L
13L 0
0 0 1J
0 0 0
.
vab − eabvbc − ebcTe − Tl
(14)
To evaluate the performance of the speed, position and theload torque estimation a simulation model of the BLDC driveis necessary. A discrete-time model of the machine and drive isused because modern drive systems are equipped with digitalcontrol units which work in a discrete way. A zero-order holddiscretization method is used for implementing the rotor speedand load torque estimation based on the instantaneous valueof the back-emf. Since the differential equation (14) is in theform of
x = Ax+Bu (15)y = Cx+Du (16)
it has a general solution as:
x(t) = eA(t−t0)x(t0) +
∫ t
t0
eA(t−τ)Bu(τ)dτ (17)
To discretize equation (15), we consider equation (17) betweenthe time samples t0 = kδ and (k+1)δ, where δ represents thesample period. The corresponding value for the state variablex is xk and xk+1, respectively. The usual procedure in digitalcontrol is to hold the control input u(t) constant betweensampling times.
xk+1 = eAδ︸︷︷︸ASH
xk +
∫ δ
0
eA(t−τ)Bdτ︸ ︷︷ ︸
BSH
.uk (18)
uk is the value of the input in the time interval [kδ, (k+ 1)δ].By applying (18) to the state-space model of the machine, thefollowing matrices can be derived for the discretized system:
ASH =
e−RδL 0 0 0
0 e−RδL 0 0
0 0 1 00 0 δ 1
(19)
BSH =
231−e−Rδ
L
R131−e−Rδ
L
R 0
− 131−e−Rδ
L
R131−e−Rδ
L
R 0
0 0δ
J0 0 δ2
2J
(20)
III. SPEED AND POSITION ESTIMATION FROM THEBACK-EMF MEASUREMENTS
To estimate the load torque, the back-emf is measured firstly.The method to obtain a reliable back-emf measurement isexplained in detail in [9], [10] by the authors. The back-emf
measurements contain information about both the electricalposition θe (through F (θe)) and the rotor speed ωm. Anestimation of the speed is obtained by comparing the valueof the measured back-emf for successive samples e[k − 1](measured back-emf at sample k−1) and e[k] (measured back-emf at sample k). Starting from (5), (6) and (7), the followingequations can be derived from ∆e[k] = e[k] − e[k − 1]
∆e[k] = ke(F (θe[k]) − F (θe[k − 1]))ωm[k − 1]
+ keF (θe[k])(ωm[k] − ωm[k − 1])
= kemL(θe[k] − θe[k − 1])ωm[k]
+ keF (θe[k])(ωm[k] − ωm[k − 1]) (21)
where Ts is the time between two back-emf measurements(back-emf sampling time). mL is the slope of the linear part ofF (θe). By considering a small Ts compared to the mechanicaltime constant of the machine an approximation of ∆e[k] canbe derived from (21) as follows:
∆e[k] ≈ kemLNpTs(ωm[k] − ωm[k] − ωm[k − 1]
2)ωm[k]
+ keF (θe[k])(ωm[k] − ωm[k − 1]) (22)
where Np is the number of pole pairs. It is assumed that atthe moment of the back-emf measurement in the unexcitedphase, the electrical angle θe is in the linear part of F (θe).Furthermore, supposing τm τe, it can be assumed that therotor speed does not change between two successive back-emfsamples (ωm[k] ≈ ωm[k − 1]). We then obtain the followingequation to estimate the rotor speed at the k-th time sample:
ωm[k] =
√e[k] − e[k − 1]
kemLTsNp(23)
From the back-emf measurement e[k] it is possible to get anestimate of the value of the function F at that time sample:
F (θe[k]) =e[k]
keωm[k](24)
As there is a one-to-one relationship between F and θe, anestimate of F implies an estimation of the rotor-position, θe[k].
IV. LOAD TORQUE ESTIMATION
By neglecting the friction, the evolution of the speed isgoverned by the following differential equation:
Jdωmdt
= Te − Tl (25)
Here Te represents the electromagnetic torque produced bythe BLDC machine. Tl is the applied load torque. The changein speed is proportional to the difference in electromagnetictorque and the load torque. We can discretize (25) to:
ωm[k + 1] = ωm[k] + TsTe − TlJ
(26)
θm[k + 1] = θm[k] + Tsωm[k] +T 2s
2J(Te[k] − Tl[k]) (27)
The electromagnetic torque Te is determined by (10) and thistorque can be evaluated using the current measurement idc:
Te = 2ktidc (28)
4
Combining equations (23),(26) and (28), makes it possible toget a prediction for the speed at sample moment t = (k+1)Ts:
ωm,pred[k + 1] = ωm[k] + Ts2ktidc[k] − Tl[k]
J(29)
The rotor position can be predicted using the discretized modelin the same way from (27):
θe,pred[k + 1] = θe[k] + Tsωe[k]
+T 2s
2J
(2ktidc[k] − Tl[k]
)(30)
However, the load torque at time instant t = k (t is now adiscrete time) is unknown. An updating scheme is used forthe load torque estimation. We will use two indices, k and l,for this, Tl[k, l]. The first index represents the time instant atwhich we want an estimate of the load torque. The secondindex represents the time instant at which the estimation isdone. At t = k there is no information about the load torque.We assume, as an initial guess, that the load torque did notchange:
Tl[k, k] ≈ Tl[k − 1, k] (31)
At t = k+1, new information about the load torque is derived:a new measurement of the back-emf is performed. From thismeasurement, a new estimation of the speed ωm[k + 1], isdetermined. This rotor speed estimation is compared with thepredicted speed from equation (29).
The difference in the estimated rotor speed and the predictedrotor speed, results from a difference in net torque applied tothe rotor. From equation (26), a new estimation of the loadtorque at time instant t = k can be determined:
Tl[k, k + 1] = Tl[k, k] +J
Ts(ωm,pred[k + 1] − ωm[k + 1])
(32)
V. SIMULATION RESULTS
The proposed algorithm for rotor speed, position andload torque estimation is implemented in Matlab/Simulinksoftware. Appendix A shows the parameters of the modelledmachine.
To validate the performance of the discrete-time machinemodel as well as speed, position and load torque estimatorsthe machine is driven with a 6-step commutation method.For the first set of simulations the machine is driven withoutcurrent and speed controllers to compare the effect of thecontroller on the proposed algorithms. In Fig. 2 after reachingto steady-state at t = 60 ms a load torque of 0.1 Nm isapplied to the machine. At every instant, the back-emf canbe measured at the unexcited motor terminal.
Using equation (23), the rotor speed can be estimated fromthe back-emf. The actual speed and estimated speed related tothe same dynamic behaviour of the machine is illustrated inFig. 2. When the machine is commutated to the next switchingstate, the slope of the function F changes from 6
π to − 6π
or vice versa, equation (8). At the commutation to the nextswitching state, the measured back-emf exhibits a singularity:
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
50
100
150
200
250
300
350
400
450
Time [s]
Roto
r speed [
rad/s
]
Estimated ωm
Actual ωm
ωm*
0.059 0.0595 0.06 0.0605 0.061 0.0615 0.062 0.0625 0.063 0.0635 0.064380
385
390
395
400
Fig. 2. Simulation results during start-up and loading of the machine foractual and estimated speed signals
the derivative does not exist at these points. At these moments,the estimated rotor speed is not updated. In Fig. 2, it can beseen that the estimated rotor speed varies around the actualrotor speed. It can also be observed that the estimated rotorspeed is equal to the actual rotor speed approximately halfwayin between two commutations.
The origin of the deviation of the estimated rotor speedfrom the actual rotor speed is due to the effect of transients.In the derivation of equation (24), speed variations betweensuccessive time samples (ωm[k] = ωm[k + 1]) are assumedto be zero. By considering the continuous time equivalent ofequation (23) and by taking the time derivative of the measuredback-emf signal
de
dt= ke
dF
dtωm + keF
dωmdt
= kemLNpω2m + keF (θe)
dωmdt
(33)
the second term is omitted when neglecting speed transients.
Using equation (24), it is possible to estimate the valueof the function F at each time sample. This is sometimescalled “Speed-normalized Back-emf ”. From the estimation ofthe F function, the rotor position can be estimated. In Fig.3-a,b the estimation results are shown. The position signalhas a one-to-one relation with the F function. The position isderived directly from F using θe = (1+F )/mL. The electricalangle θe (grey line) is plotted in such a way that the resultlies between 0 and π
3 . The commutation sequence of BLDCdrive (0 through 5) which comes from hall-effect sensors isshown by black lines. It should be noticed that the estimatedrotor position θe is accurate after the first interval. It can alsobe noticed that despite inaccurate position estimation duringfirst interval, the first commutation instant is approximatedaccurately.
The load torque is estimated based on the procedureproposed in section IV. Accordingly, the simulation resultsare demonstrated in Figs. 4-a,b. As it can be seen theload torque estimation is converging to zero during thenoload condition. By loading the machine, the ripple in theelectromagnetic torque results in higher ripples in both theactual and estimated speed. As a result, the estimated loadtorque, which is derived from the speed estimation, oscillates
5
0 0.005 0.01
−0.5
0
0.5
1
Time [s](a)
Estim
ate
d θ
e[r
ad]
0.055 0.06 0.065
0
1
Time [s](b)
Estim
ate
d θ
e[r
ad]
Estimated θe
Commutation seq.
Estimated θe
Commutation seq.
Fig. 3. Estimated electrical angle θe of the machine, (a) start-up transients,(b) loading transients
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
Time [s](a)
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
0.055 0.06 0.065 0.07 0.075 0.08−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
Time [s](b)
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
Fig. 4. Simulation results for load torque estimation, (a) start-up and loadingtransients, (b) zoomed view of loading transients
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.1
−0.05
0
0.05
0.1
Time [s]
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
Fig. 5. Simulation results for load torque estimation and applied load torquesignal
around the applied load torque without converging to theexact value.
The second part of the simulation is carried out afterimplementing a speed and current control loop to the BLDCmachine and estimators. The results of the load torque estima-tion is evaluated again. As it can be seen from Fig. 5 the loadtorque estimation is converging to the exact value for both no-load and loaded conditions of the machine.
In order to test the dynamic performance of the estima-
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
Time [s](a)
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
50
100
150
200
Time [s](b)
Roto
r speed [
rad/s
]
Estimated ωm
Actual ωm
0.085 0.086 0.087 0.088 0.089 0.09 0.091 0.092 0.093 0.094 0.095188
190
192
194
196
198
Fig. 6. Simulation results during start-up and loading of the machine withsawtooth load torque profile for actual and estimated speed signals
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1−0.1
−0.05
0
0.05
0.1
Time [s](a)
Load t
orq
ue T
l[N
m]
Estimated load torque
Applied load torque
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10
50
100
150
200
Time [s](b)
Roto
r speed [
rad/s
]
Estimated ωm
Actual ωm
0.085 0.086 0.087 0.088 0.089 0.09 0.091 0.092 0.093 0.094 0.095192
194
196
198
200
202
204
206
208
Fig. 7. Simulation results during start-up and loading of the machine withsinusoidal load torque profile for actual and estimated speed signals
tion algorithms a programmed load torque is applied to themachine. Fig. 6 shows the simulation results for a graduallyincreasing load torque. The amplitude is varying between 0and 60 mN.m with a frequency of 100 Hz. The last dynamictest is applying a sinusoidal load torque which has positiveand negative values. Negative values of the load torque meanthat the machine is externally driven by the load. Fig. 7 showsthe simulation results for this dynamic test. There is an errorin the estimation of the varying load torque due to the errorin the speed estimation which will not be present if the loadtorque varies slower.
6
0 1 2 3 4 5 6 7 8 9 10−1
0
1
2
3
4
5
6
Time [m Sec]
Voltage [
V]
Sensorless operation
Operation with sensor
I''II''III''
Δt
IIIII
I'II'III'
IA B
C D
EF
G
Fig. 8. Comparison between self-sensing commutation and commutationusing hall-effect sensors
VI. EXPERIMENTAL RESULTS
In this section, the experimental results are used to verifyand validate the feasibility of the proposed state-estimationtechnique under the various operation conditions. The entiredrive system and the load torque emulator is implementedon SPARTAN 3E FPGA evaluation boards. Maximum clockfrequency of the FPGA boards is 50 MHz. To have moreflexibility on the control of dive and load torque, two identicaltest benches have been configured and set up. Fig. 1 showsthe schematic diagram of test bench configuration. An Isolatorcircuit is used to deploy a galvanic isolation between thecontrol and the power circuits using IL715 digital isolator.Three terminal voltages of the machine and virtual neutralpoint voltage are measured referred to the negative side of theDC-bus as well as DC-bus current which is measured using aseries resistor. All of the measured quantities are converted todigital data and feed to the FPGA board after passing througha digital isolator. The measured data is processed inside theFPGA and the inverter gate control pulses are applied to theinverter after passing an isolation channel. The advantageousfeatures of the isolator chips are very low propagation delay10 ns and low power consumption 1.2 mA per channel. Twolow power, low weight BLDC machines are used in this studywhich their application is driving drone propellers.• a Maxon brushless-DC machine is used as motor• a Tiger brushless-DC machine is used as programmable
load torqueThe specification of the machines are presented in appendicesA and B respectively. The machine which is used as motor isequipped with hall effect sensors.
A. Evaluation of the sensorless commutation
The first evaluation criterion for any BLDC self-sensingalgorithm is to determine the performance of the commuta-tion instant estimation of the commutation instant estimation.Measurements showed that the proposed self-sensing methodhas better performance in detecting the exact commutationinstant. Fig. 8 compares the terminal voltage of the machinewhile working in steady-state condition with two differentcommutation methods: first, self-sensing operation, second,operation with hall sensors. By comparing the values of theback-emf signal at the instants of successive commutations, itcan be seen from Fig. 8 that the commutations occur within
a small back-emf voltage trajectory (level II for instants Aand B, II′ for C and D, II′′ for E and F) during the self-sensing operation. However, during operation with the hall-effect sensors, commutation occurs at a time span equal to∆t later than optimal commutation instant. In commutationinstants A, C and E the back-emf voltage value is at levelI,I′ and I′′ and at the next commutation instants B, D and Fthe back-emf voltage is at level III, III′ and III′′. The error inthe commutation instant detection while using sensors comesfrom little misalignment of the sensors. The effect of thismisalignment is a reduction in the generated electromagneticload torque. For the same supply voltage, the measured speedfor the self-sensing operation was 1433 rpm with supplycurrent of 556 mA and for the operation with sensors it was1425 rpm and 570 mA. This means that, by having bettercommutation it will be possible to produce more output powerwith less input power.
An accurate commutation instant detection improves theBLDC drive performance in two ways:• By decreasing the torque ripple: If the commutation
occurs at the optimum instant, the electromagnetic torqueripple will be minimized.
– Lower torque ripple decreases the vibrations of thedrive system.
– Another effect of the lower torque ripple is the loweracoustic noise.
• By increasing the efficiency: The generated electromag-netic torque in a BLDC machine comes from P = E.I .By an accurate commutation the maximum overlap willhappen between the current and the back-emf waveformswhich results in more efficient performance of the ma-chine.
B. Speed estimation
The speed controller is implemented using the speed in-formation provided by the speed estimation algorithm. Speedcontrol algorithm compares the speed set point with estimatedspeed. A PI controller is used to eliminate the speed errorby generating proper set value for the current. Current setpoint is compared with the measured DC-bus current and itserror is eliminated using another PI controller. The output ofthe current PI controller is compared with a sawtooth signalto generate the switching pulses for inverter switches. Thefrequency of the sawtooth signal determines PWM frequency.Fig. 1 shows the schematic diagram of the control loop.Different tests have been carried out to evaluate the perfor-mance of the interaction of the speed estimation and speedcontroller. Fig. 9-a demonstrates speed estimation and speedcontrol results at steady-state condition. The cause of speedripple is due to the very low inertia of the system. Fig. 9-bshows the dynamic results while applying a sudden changeto the speed set point. As it can be seen in Fig 9-a, b it ispossible to control the machine in very low speeds eg. 100rpm or 150 rpm by using the proposed self-sensing algorithm.The characteristics of the speed control (rise time, overshootand etc.) performance can easily changed according to theapplication demands .
7
0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.60
200
400
600
800
1000
1200
1400
1600
Time [Sec](a)
Speed [
rpm
]
ω*=100 rpm
ω*=150 rpm
ω*=1000 rpm
ω*=1500 rpm
0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.60
200
400
600
800
1000
1200
1400
1600
Time [Sec](b)
Speed [
rpm
]
Speed change from 150 rpm to 1500 rpm
Speed change from 1000 rpm to 1500 rpm
Speed change from 1500 rpm to 150 rpm
Speed change from 1500 rpm to 1000 rpm
Fig. 9. Experimental results for speed estimator and controller (a): steadystate, (b): different speed set points
C. Load torque estimation
To evaluate the performance of the load torque estimation,the proposed algorithm is implemented on the same FPGAboard together with the speed and position estimation algo-rithms. A programmable load torque is mechanically coupledto the machine shaft. The programmable load torque providesrequired load torque characteristics which are chosen to eval-uate the performance of the estimation algorithm.
The proposed programmable load torque consists of aBLDC machine with the terminals connected to a conventionalthree phase diode rectifier. The output of the rectifier isconnected to a power resistor via a first-quadrant DC chopper.The chopper is used to control the applied voltage to the powerresistors. To generate the required current profile a closed-loopcurrent control is implemented on another FPGA board whichdrives the DC-chopper switch.
A PI-controller is implemented to force the rectifier outputcurrent to follow the current set-point. The generated breakingtorque from the BLDC generator acts as a load torque tothe coupled BLDC motor. This torque is proportional to thecurrent profile which flows through the rectifier output. Theonly difference between the current profile of the rectifieroutput and actual load torque applied to the BLDC motor isthe friction which can be neglected in this study. Fig. 10-a,b shows the actual and estimated load torque together withcorresponding speed estimation for applied rectangular (withperiod of 400 ms) and sinusoidal (with period of 270 ms)reference to the load torque respectively. A sinusoidal loadtorque (with period of 2314 ms) is applied to the machineto evaluate the performance of the estimation algorithm inlow frequency variations of the load torque (Fig. 11). In alltested situations the algorithm provides good estimation ofload torque. As it mentioned before, the difference betweenactual and estimated load torque comes from the friction whichis not included in actual load torque waveform.
0 500 1000 1500 2000 2500 3000 3500 40000
20
40
60
80
100
120
140
Time [ms](a)
Load t
orq
ue [
mN
m]
Actual load torque
Estimated load torque
0 500 1000 1500 2000 2500 3000 3500 40000
20
40
60
80
100
120
140
Time [ms](b)
Load t
orq
ue [
mN
m]
Actual load torque
Estimated load torque
Fig. 10. Experimental results for load torque estimator (a): pulsed, (b):sinusoidal
0 500 1000 1500 2000 2500 3000 3500 40000
20
40
60
80
100
120
140
Time [ms]
Load t
orq
ue [
mN
m]
Actual load torque
Estimated load torque
Fig. 11. Experimental results for load torque estimator
VII. APPLICATION OF LOAD TORQUE ESTIMATION TOIMPROVE THE DYNAMIC-STIFFNESS
There are different possible applications for estimated loadtorque in modern electrical drives. In [12], [13] load torqueinformation is used to detect and diagnose the mechanicalfailures of the load torque coupled to the machine. In this paperthe load torque estimation is utilized to improve the dynamic-stiffness of the drive. The load torque, affects the output speedof the machine ωm and introduces speed errors (ω∗m − ωm).Conventional PI controllers compromise between settling time,oscillations and steady-state error. When the machine is usedto drive a highly varying load torque, maintaining the desiredspeed using conventional PI controllers is challenging. A high-frequency variable load torque in a low inertia system cancause a high speed variation. Achieving a constant speedby only tuning the integral and proportional gains of the PIcontroller and having a wide bandwidth in the same time isbeyond the capabilities of the conventional PI controllers.
In this study, the load torque estimation information isused in order to improve the speed control characteristics ofthe proposed self-sensing drive within different variable loadtorques. Fig 12 shows the proposed control loop to achieve thispurpose. Different measurements are carried out to show the
8
Fig. 12. Load torque estimation feedforward
0 200 400 600 800 1000 1200 1400 1600 1800 2000800
900
1000
1100
1200
1300
Time [ms]
Roto
r speed [
rpm
]
Load torque feedback gain=0
Load torque feedback gain=1
Fig. 13. Experimental results for application of load torque estimationfeedforward signal with a rectangular load
0 200 400 600 800 1000 1200 1400 1600 1800 20001000
1200
1400
1600
1800
2000
Time [ms]
Roto
r speed [
rpm
]
Load torque feedback gain=0
Load torque feedback gain=0.576
Load torque feedback gain=1
Fig. 14. Experimental results for application of load torque estimationfeedforward signal with a sinusoidal load
performance of the proposed method. In Fig. 13 a rectangularload torque with the period of 198 ms is applied to the machineand the speed measurement is plotted with and without loadtorque feedback. The same experiment is done for a sinusoidalload torque with the period of 474 ms as well which is shownin Fig. 14. Both of the experiments verify the performance ofthe performance of proposed method.
VIII. CONCLUSIONS
A self-sensing speed and position estimation method isdeveloped to estimate the load torque of a BLDC machinebased on the back-emf measurement of the machine which isobtained using a technique described in [10]. This method canbe used as a stand alone self-sensing BLDC drive as it has theposition and speed information of the machine. In addition,it can be used as an enhancement on other back-emf zero-crossing techniques to improve their loading performance, inparticular for the applications which have high varying loadingprofiles. The estimated load torque information is used in
a the proposed self-sensing drive to increase the dynamic-stiffness of the BLDC drive and its performance is verifiedby experimental results. The proposed self-sensing and loadtorque estimation algorithms can be used in the growing aerialimaging drone market. The drones are mainly using verylow inertia BLDC driven propellers and have a control loopcapable of maintaining the speed reference is vital to capturehigh quality images. Better commutation timing and havingmore steady flight can increase the flying time by increasingthe efficiency of the drive and reducing the weight of the droneby eliminating the dampers which hold the mounted camera.
APPENDIX APARAMETERS OF THE SIMULATED AND MAXON MACHINES
Parameter Value
Stator Resistance 0.25Ω
Stator Inductance Constant 0.161 mHNumber of Pole Pairs 8
Nominal Voltage 18 VNominal Current 3.5 A
Inertia 135 gcm2
Torque constant kt 25.1 mNm/AVoltage constant ke 380 rpm/V
APPENDIX BPARAMETERS OF THE TIGER MACHINE
Parameter Value
Stator Resistance 0.154Ω
Stator Inductance Constant 0.161 mHNumber of Pole Pairs 12
Nominal Voltage 18 VNominal Current 18 A
Max Power 370 WVoltage constant ke 380 rpm/V
ACKNOWLEDGMENT
This work is carried out in the frame of the FWOProject G.0083.13N and financially supported by the FWO-Vlaanderen (Research Foundation - Flanders, Belgium). A.Darba thanks the FWO for the Fellowship received.
REFERENCES
[1] L.I. Iepure, I. Boldea, F. Blaabjerg, “Hybrid I-f Starting and Observer-Based Sensorless Control of Single-Phase BLDC-PM Motor Drives,”IEEE Trans. Ind. Electron., vol.59, no.9, pp.3436-3444, Sept. 2012.
[2] Jin Gao, Yuwen Hu, “Direct Self-Control for BLDC Motor Drives Basedon Three-Dimensional Coordinate System,” IEEE Trans. Ind. Electron.,vol.57, no.8, pp.2836-2844, Aug. 2010.
[3] F. De Belie, J. De Backer, A. Darba, J. Melkebeek, “Low-Speed Salient-Pole BLDC-Machine Control by Using a Single Sensor,” 15th IEEEInternational Conference on Electrical Machines and Systems (ICEMS),vol., no., pp.1,6, 21-24 Oct. 2012.
[4] P. Acarnley and J. Watson, “Review of Position-Sensorless Operation ofBrushless Permanent-Magnet Machines,” IEEE Trans. Ind. Electron., Vol.53(2), pp.352-362, April 2006.
[5] Taeyeon Kim, Chungil Kim, Joon Lyou, “A new sensorless drive schemefor a BLDC motor based on the terminal voltage difference,” IEEE Ind.Electron. Society IECON, vol., no., pp.1710-1715, 7-10 Nov. 2011.
9
[6] Jianwen Shao, D. Nolan, M. Teissier, D. Swanson, “A novelmicrocontroller-based sensorless brushless DC (BLDC) motor drive forautomotive fuel pumps,” IEEE Trans. on Industry Applications, vol.39,no.6, pp.1734-1740, Nov./Dec. 2003.
[7] Jianwen Shao, “An Improved Microcontroller-Based Sensorless BrushlessDC (BLDC) Motor Drive for Automotive Applications,” IEEE Trans. onIndustry Applications, vol.42, no.5, pp.1216,1221, Sept./Oct. 2006.
[8] P. Damodharan, K. Vasudevan, “Sensorless Brushless DC Motor DriveBased on the Zero-Crossing Detection of Back Electromotive Force(EMF) From the Line Voltage Difference,” IEEE Trans. on EnergyConversion, vol.25, no.3, pp.661-668, Sept. 2010.
[9] Darba A., De Belie F., Melkebeek J., “Sensorless commutation andspeed control of Brushless DC-machine drives based on the back-EMF symmetric threshold-tracking,” 2013 IEEE International ElectricMachines & Drives Conference (IEMDC), pp.492-497, 12-15 May 2013.
[10] Darba Araz, De Belie Frederik, Salem Aboubakr, Melkebeek Jan,“FPGA-based implementation of the back-EMF symmetric-threshold-tracking sensorless commutation method for Brushless DC-machines,”2013 IEEE International Symposium on Sensorless Control for ElectricalDrives and Predictive Control of Electrical Drives and Power Electronics(SLED/PRECEDE), 17-19 Oct. 2013.
[11] Kyeong-Hwa Kim; Myung-Joong Youn, “A nonlinear speed control for aPM synchronous motor using a simple disturbance estimation technique,”IEEE Trans. on Ind. Electron., vol.49, no.3, pp.524-535, Jun 2002.
[12] Guzinski J., Diguet M., Krzeminski Z., Lewicki A., Abu-Rub H.,“Application of Speed and Load Torque Observers in High-Speed TrainDrive for Diagnostic Purposes,” IEEE Trans. on Ind. Electron., vol.56,no.1, pp.248,256, Jan. 2009.
[13] Guzinski J., Abu-Rub H., Diguet M., Krzeminski Z., Lewicki A., “Speedand Load Torque Observer Application in High-Speed Train ElectricDrive,” IEEE Trans. on Ind. Electron., vol.57, no.2, pp.565-574, Feb.2010.
[14] Buja, G.S.; Menis, R.; Valla, M.I., “Disturbance torque estimation in asensorless DC drive,” IEEE Trans. on Ind. Electron., vol.42, no.4, pp.351-357, Aug 1995.
[15] Grignion, D.; Xiang Chen; Kar, N.; Huijie Qian,, “Estimation of LoadDisturbance Torque for DC Motor Drive Systems Under Robustness andSensitivity Consideration,” IEEE Trans. on Ind. Electron., vol.61, no.2,pp.930-942, Feb. 2014.
[16] Wale J.D., Pollock C., “A low-cost sensorless technique for load torqueestimation in a hybrid stepping motor,” IEEE Trans. on Ind. Electron.,vol.46, no.4, pp.833-841, Aug 1999.
[17] Schmidt, P.B.; Lorenz, R.D., “Design Principles and Implementationof Acceleration Feedback to Improve Performance of DC Drives,” IEEETransactions on Industry Applications, vol.28, no.3, pp.594-599, May/Jun1992.
[18] Lorenz, R.D.; Lipo, T.A.; Novotny, D.W., “Motion Control with Induc-tion Motors,” Proceedings of the IEEE,, vol.82, no.8, pp.1215-1240, Aug.1994.
Bibliography
[1] Chang-liang Xia, Permanent Magnet Brushless DC Motor Drives and Controls. Wiley,
2012.
[2] W. Na, T. Park, T. Kim, and S. Kwak, “Light fuel-cell hybrid electric vehicles based
on predictive controllers,” Vehicular Technology, IEEE Transactions on, vol. 60,
pp. 89–97, Jan 2011.
[3] M. Naidu, T. Nehl, S. Gopalakrishnan, and L. Wurth, “Keeping cool while saving space
and money: a semi-integrated, sensorless pm brushless drive for a 42-v automotive hvac
compressor,” Industry Applications Magazine, IEEE, vol. 11, pp. 20–28, July 2005.
[4] C.-T. Pan and E. Fang, “A phase-locked-loop-assisted internal model adjustable-speed
controller for bldc motors,” Industrial Electronics, IEEE Transactions on, vol. 55,
pp. 3415–3425, Sept 2008.
[5] J. Melkebeek, Gestuurde elektrische aandrijvingen. Universiteit Gent, Faculteit
Ingenieurswetenschappen en Architectuur, Fifth ed., 2007.
[6] Padmaraja Yedamale, Brushless DC (BLDC) Motor Fundamentals. Microchip
Technology Inc. Aplication note 885.
[7] A. Darba, F. De Belie, and J. Melkebeek, “Sensorless commutation and speed control
of brushless dc-machine drives based on the back-emf symmetric threshold-tracking,”
in Electric Machines Drives Conference (IEMDC), 2013 IEEE International,
pp. 492–497, 2013.
[8] P. Acarnley and J. Watson, “Review of Position-Sensorless Operation of Brushless
Permanent-Magnet Machines,” IEEE Transactions on Industrial Electronics, vol. 53,
pp. 352–362, April 2006.
[9] J. Johnson, M. Ehsani, and Y. Guzelgunler, “Review of sensorless methods for
brushless dc,” in Industry Applications Conference, 1999. Thirty-Fourth IAS Annual
Meeting. Conference Record of the 1999 IEEE, vol. 1, pp. 143–150 vol.1, 1999.
[10] F. De Belie, J. De Backer, A. Darba and J. Melkebeek, “Low-Speed Salient-Pole
BLDC-Machine Control by Using a Single Sensor,” 15th IEEE International
Conference on Electrical Machines and Systems (ICEMS), vol. , pp. 21–24, Oct. 2012.
139
Bibliography 140
[11] P. Damodharan and K. Vasudevan, “Sensorless Brushless DC Motor Drive Based on
the Zero-Crossing Detection of Back Electromotive Force (EMF) From the Line
Voltage Difference,” IEEE Transactions on Energy Conversion, vol. 25, pp. 661–668,
Sept. 2010.
[12] Q. Jiang, C. Bi, and R. Huang, “A new phase-delay-free method to detect back emf
zero-crossing points for sensorless control of spindle motors,” Magnetics, IEEE
Transactions on, vol. 41, no. 7, pp. 2287–2294, 2005.
[13] J. Moreira, “Indirect sensing for rotor flux position of permanent magnet ac motors
operating in a wide speed range,” in Industry Applications Society Annual Meeting,
1994., Conference Record of the 1994 IEEE, pp. 401–407 vol.1, 1994.
[14] P. Pillay and R. Krishnan, “Modeling of permanent magnet motor drives,” Industrial
Electronics, IEEE Transactions on, vol. 35, pp. 537–541, Nov 1988.
[15] G. de Cooman, Lineaire systemen. Universiteit Gent, Faculteit
Ingenieurswetenschappen en Architectuur, 2012.
[16] J. Guzinski, H. Abu-Rub, M. Diguet, Z. Krzeminski, and A. Lewicki, “Speed and load
torque observer application in high-speed train electric drive,” Industrial Electronics,
IEEE Transactions on, vol. 57, pp. 565–574, Feb 2010.
[17] Xilinx, System Generator for DSP, Reference Guide, 2008. Release 10.1.
[18] F. M. L. De Belie, P. Sergeant, and J. Melkebeek, “A sensorless drive by applying test
pulses without affecting the average-current samples,” Power Electronics, IEEE
Transactions on, vol. 25, pp. 875–888, April 2010.
[19] T.-H. Kim and M. Ehsani, “Sensorless control of the bldc motors from near-zero to high
speeds,” Power Electronics, IEEE Transactions on, vol. 19, pp. 1635–1645, Nov 2004.
[20] D. Oxford, May 2014. http://www.oxforddictionaries.com.
[21] P.B. Schmidt and R.D. Lorenz, “Design principles and implementation of acceleration
feedback to improve performance of DC drives,” IEEE Transactions on Industry
Applications, vol. 28, pp. 594–599, May/June 1992.
[22] R. De Keyser, Computer control of industrial processes. Universiteit Gent, Faculteit
Ingenieurswetenschappen en Architectuur, 2013.
[23] L. Dupre, G. Crevecoeur, Simulation and modelling of dynamical systems. Universiteit
Gent, Faculteit Ingenieurswetenschappen en Architectuur, 2013.
[24] M. Ferris, Nonlinear Optimization II. University of Wisconsin-Madison, 2008.
[25] T. Vyncke, S. Thielemans, and J. Melkebeek, “Finite-set model-based predictive
control for flying-capacitor converters: Cost function design and efficient fpga
implementation,” Industrial Informatics, IEEE Transactions on, vol. 9, pp. 1113–1121,
May 2013.
[26] Datasheet Maxon flat motor: EC 45 flat.
[27] Datasheet AVR430: MC300 Hardware User Guide.
[28] Xilinx Spartan-3E FPGA Family Data Sheet.
[29] Digilent PmodAD1TM Analog to Digital Module Converter Board Reference Manual.
[30] NVE CORPORATION High Speed Four-Channel Digital Isolators IL715/IL716/IL717.
[31] Wachendorff Online Data Sheet, Encoder WDG 58H.
List of Figures
2.1 Definition of the angle α and ω, the rotor position is shown for t = 0. . . . . . 5
2.2 Position of permanent magnets in rotor of SPMSM (a) and IPMSM (b) . . . 5
2.3 Comparison between the waveforms of the magnetic induction and the back-
EMF of SPMSM (left) and IPMSM (right) . . . . . . . . . . . . . . . . . . . 7
2.4 Comparison between the waveforms of the curent, the power per phase and
the total power of SPMSM (left) and IPMSM (right) . . . . . . . . . . . . . . 8
2.5 Vector diagram with the stator voltage vectors Vi, i = 1, ..., 6 and the back-
emf E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6 Conduction path of current when switch T1 and T4 are conducting . . . . . . 10
2.7 Output Hall sensors BLDC machine over one electrical revolution . . . . . . . 10
2.8 Vector diagram for situation where stator current I is in phase with the pro-
duced back-emf E in a d-q reference frame . . . . . . . . . . . . . . . . . . . . 11
2.9 Vector diagram for the situation where the stator current I leads the back-emf
E in a d-q reference frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.10 Control scheme for speed of BLDC machine . . . . . . . . . . . . . . . . . . . 12
2.11 Working principle PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.12 Standard (a), independent (b) and complementary (c) PWM switching strat-
egy for the conduction path in Fig. 2.6 and a duty ratio of 50 %. . . . . . . . 14
2.13 Creation of a virtual neutral point v′n using resistors . . . . . . . . . . . . . . 15
2.14 The schematic diagram which is used in SPICE to simulate the effect of using
the virtual neutral point v′n instead of the actual neutral point vn . . . . . . . 15
2.15 Back-emf signal measured relative to the neutral point voltage v′n . . . . . . . 16
2.16 Using timers and zero-crossings of the back-emf signal to estimate the com-
mutation moment and error during transients . . . . . . . . . . . . . . . . . . 16
2.17 Using a threshold for the commutation timing to improve performance in tran-
sients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 Nonlinear components of the derived differential equations are modelled as
nonlinear feedback signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Phase currents in function of time for a BLDC machine without speed and
current PI controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
142
List of Figures 143
3.3 Rotor speed (a) and electromagnetic torque (b) in function of time without PI
speed and current controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4 Phase currents in function of time for a BLDC machine with speed and current
PI controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Rotor speed (a) and electromagnetic torque (b) in function of time with PI
speed and current controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1 Scheme of a controlled system . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Measured back-emf at the motor terminals . . . . . . . . . . . . . . . . . . . . 35
4.3 Estimated rotor speed from back-emf measurements and the actual rotor speed 36
4.4 Detailed view of the estimated rotor speed from back-emf measurements and
the actual rotor speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 (a) Estimated value for the function F during acceleration from 50 rad/s to
400 rad/s (b) Estimated value for the function F , machine is loaded with Tl =
0.06 Nm at t = 0.06 s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.6 (a) Estimated rotor position from back-emf measurements during acceleration
of the machine from 50 rad/s to 400 rad/s (b) Estimated rotor position from
back-emf measurements when a load torque Tl = 0.06 Nm is applied at t = 0.06 s 38
4.7 Estimated load torque Tl from back-emf measurements . . . . . . . . . . . . . 38
4.8 Estimated load torque Tl from back-emf measurements . . . . . . . . . . . . . 39
4.9 Influence of rotor position and acceleration feedback on the rotor speed esti-
mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.10 Influence of rotor position and acceleration feedback on the load torque esti-
mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.11 Estimated rotor speed under sawtooth load torque . . . . . . . . . . . . . . . 42
4.12 Estimated load torque under sawtooth load torque without acceleration and
position feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.13 Average acceleration for BLDC motor under sawtooth load torque . . . . . . 44
4.14 Estimated load torque using the average acceleration of the BLDC machine . 44
4.15 Estimated rotor speed when applying a sinusoidal load torque, without accel-
eration feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.16 Estimated load torque when applying a sinusoidal load torque, without accel-
eration feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.17 Average acceleration of the BLDC machine when applying a sinusoidal load
torque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.18 Estimated load torque when applying sinusoidal load torque, using average
acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.19 The measured back-emf signal referred to the actual neutral point and the
measured back-emf signal referred to virtual neutral point . . . . . . . . . . 47
List of Figures 144
4.20 Measured terminal voltage of the phase U referred to the virtual neutral point
(top) and the measured back-emf signal referred to the virtual neutral point
that results from the finite-state machine (bottom) with a DC-bus current of
1.4 A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.21 Implemenation of a zero order sampler with two sampling frequencies . . . . 49
4.22 PWM-synchronized rotor speed estimation . . . . . . . . . . . . . . . . . . . . 50
4.23 The speed estimations for the different filters, when loading the machine with
an external load torque with rectangular waveform. (measurement) . . . . . 52
4.24 Rotor speed in steady-state (a) and when the speed reference is changed (b) . 53
4.25 The measured terminal voltage U referred to the ground of the power stage
when the machine is driven with a voltage of 2.8 V, using the Hall sensors to
drive it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.26 Measurement of the phase back-emf. The correct conducting intervals are
indicated by a dashed line. The conducting intervals using the Hall sensors
are indicated by a dash-dot line . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.27 The measured terminal voltage U referred to the ground of the power stage
when the machine is driven with a voltage of 2.8 V, using the sensorless algo-
rithm to drive it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.28 Measurement results for the external applied load torque (top), the switching
state sequence resulting from the sensorless method and the switching state
resulting from the Hall sensors (bottom) . . . . . . . . . . . . . . . . . . . . 56
4.29 Measurement of the switching state (top), the external applied load torque
(mid) and the phase lead angle φ when the machine is loaded (bottom) . . . 57
4.30 Measurement of the switching state (top), the external applied load torque
(mid) and the phase lead angle φ when the machine is unloaded (bottom) . . 58
4.31 Electrical scheme of the Tiger BLDC machine, connected to a three-phase
rectifier. The current is controlled by using two half bridges of the power stage. 59
4.32 Control scheme for generating a variable load torque . . . . . . . . . . . . . . 60
4.33 The estimated load torque (black) and the applied external load torque (grey).
(measurement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.34 The estimated load torque (black) and the applied external load torque (grey)
for a high-frequency sinusoidal loading of the machine. (measurement) . . . 61
4.35 The estimated load torque (black) and the applied external load torque (grey)
for a low-frequent sinusoidal loading of the machine. (measurement) . . . . . 62
5.1 Influence of errors in the value of ke on the speed estimation . . . . . . . . . 64
5.2 Influence of errors in the value of ke on the position estimation . . . . . . . . 65
5.3 Influence of errors in the value of ke on the load torque estimation . . . . . . 65
5.4 Influence of errors in the value of J on the load torque estimation . . . . . . . 66
6.1 Scheme of PI controllers with the load torque feedforward . . . . . . . . . . . 69
6.2 Electrical diagram of a BLDC machine after transients . . . . . . . . . . . . . 69
List of Figures 145
6.3 Response of the current (a) and the rotor speed (b) to a step in the voltage λVs 71
6.4 Response of the current (a) and the rotor speed (b) to a step in the load torque
Tl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.5 Frequency response of the amplitude of the transfer function ωm/Tl . . . . . . 72
6.6 Influence of aLT on the rotor speed response to a sudden loading of the machine.
(measurement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.7 Influence of aLT on the rotor speed response to a sudden unloading of the
machine. (measurement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.8 Influence of aLT on the amplitude of the oscillation, when the machine is
loaded with a load torque with rectangular waveform (top). The corresponding
reduction in the amplitude is also given (bottom). (measurement) . . . . . . 75
6.9 Influence of aLT on the amplitude of the oscillation, when the machine is
loaded with a load torque with sinusoidal waveform (top). The corresponding
reduction in the amplitude is also given (bottom). (measurement) . . . . . . 76
6.10 The effect of aLT on the rotor speed when applying a load torque with rectan-
gular waveform with a period of 418 ms (a), 198 ms (b), 42 ms (c) and 18 ms
(d). (measurement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.11 The effect of aLT on the rotor speed when applying a load torque with si-
nusoidal waveform with a period of 680 ms (a), 474 ms (b) and 220 ms (c).
(measurement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.1 Scheme of the evolution of the signals in a MBPC strategy . . . . . . . . . . 80
7.2 Scheme of a model based predictive control algorithm . . . . . . . . . . . . . 81
7.3 Flowchart of the line search algorithm . . . . . . . . . . . . . . . . . . . . . . 87
7.4 Difference between the actual PWM action and λVs for λ = 0.5 . . . . . . . . 90
7.5 (a) Rotor speed ωm in function of time (b) Current i in function of time
for the MBPC method using the cost function from equation 7.32. In these
simulations, α = 0.95 and N = 1. . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.6 (a) Value for λ in function of time (b) Number of function evaluations in
function of time for the MBPC method using the cost function from equation
7.32. In these simulations, α = 0.95 and N = 1. . . . . . . . . . . . . . . . . . 95
7.7 (a) Rotor speed ωm in function of time (b) Current i in function of time
for the MBPC method using the cost function from equation 7.33. In these
simulations, α = 0.95 and N = 1. . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.8 (a) Value for λ in function of time (b) Number of function evaluations in
function of time for the MBPC method using the cost function from equation
7.33. In these simulations, α = 0.95 and N = 1. . . . . . . . . . . . . . . . . . 97
7.9 (a) Rotor speed ωm in function of time (b) Current i in function of time for
the MBPC method using the cost function equation 7.33. The value for N is 1. 99
7.10 PWM reference λ in function of time for the MBPC method using the cost
function from equation 7.33. The value for N is 1. . . . . . . . . . . . . . . . 100
List of Figures 146
7.11 Rotorspeed ωn in function of time for the MBPC method using the cost func-
tion from equation 7.33. The value for α is 0.95. . . . . . . . . . . . . . . . . 101
7.12 Current i in function of time for the MBPC method using the cost function
from equation 7.33. The value for α is 0.95. . . . . . . . . . . . . . . . . . . . 102
7.13 PWM reference λ in function of time for the MBPC method using the cost
function from equation 7.33. The value for α is 0.95. . . . . . . . . . . . . . . 102
7.14 The evolution of the rotor speed speed ωn under a load torque disturbance for
different values of TMBPC . The MBPC parameters are: α = 0.95 and N = 1. 103
7.15 The evolution of the current i speed under a load torque disturbance for dif-
ferent values of TMBPC . The MBPC parameters are: α = 0.95 and N = 1. . . 104
7.16 The evolution of the PWM reference λ speed under a load torque disturbance
for different values of TMBPC . The MBPC parameters are: α = 0.95 and N = 1.104
7.17 Schematics of the MBPC algorithm implemented in the FPGA . . . . . . . . 107
7.18 Influence of feedback of xωm on the actual rotor speed. (measurement) . . . . 108
7.19 Influence of feedback of xωm on the disturbance rejection when the machine is
loaded with a load torque with rectangular waveform. (measurement) . . . . 108
7.20 Influence of feedback of µ on the current limitation of the BLDC drive. (mea-
surement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.21 The estimated rotor speed ωm (top), the state variable xωm (mid) and the
external applied load torque (bottom) for different values of α. (measurement) 111
7.22 The effect of load torque information. (measurement) . . . . . . . . . . . . . 112
A.1 Picture of the setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
A.2 Scheme of the setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.3 Scheme of an ADC module [29] . . . . . . . . . . . . . . . . . . . . . . . . . . 120
List of Tables
3.1 Voltages vab − eab and vbc − ebc for the conducting states of the invertor . . . 24
4.1 Relationship between the 60 interval and the phase voltage to be monitored 47
7.1 Approximation of the phase currents if only iDC is measured . . . . . . . . . 90
A.1 Machine parameters of the Maxon motor EC 45 flat . . . . . . . . . . . . . . 119
A.2 Machine parameters of the Tiger MT4008 BLDC machine . . . . . . . . . . . 119
147