rotor speed and load torque estimation in bldc drives

162
Pieter D`haese Rotor Speed and Load Torque Estimation in BLDC Drives Academic year 2013-2014 Faculty of Engineering and Architecture Chairman: Prof. dr. ir. Jan Melkebeek Department of Electrical Energy, Systems and Automation Master of Science in Electromechanical Engineering Master's dissertation submitted in order to obtain the academic degree of Counsellor: Ir. Araz Darba Supervisors: Prof. dr. ir. Jan Melkebeek, Dr. ir. Frederik De Belie

Upload: others

Post on 01-Oct-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 2: Rotor Speed and Load Torque Estimation in BLDC Drives
Page 3: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 4: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 5: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 6: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 7: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 8: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 9: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 10: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 11: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 12: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 13: Rotor Speed and Load Torque Estimation in BLDC Drives

Contents x

B PAPERS 122

Bibliography 139

List of figures 142

List of tables 147

Page 14: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 15: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 16: Rotor Speed and Load Torque Estimation in BLDC Drives

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-

Page 17: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 18: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 19: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 20: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 21: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 22: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 23: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 24: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 25: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 26: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 27: Rotor Speed and Load Torque Estimation in BLDC Drives

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 %.

Page 28: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 29: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 30: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 31: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 32: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 33: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 34: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 35: Rotor Speed and Load Torque Estimation in BLDC Drives

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 −

3)ib + F (θe +

3)ic

](3.13)

Page 36: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 37: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 38: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 39: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 40: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 41: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 42: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 43: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 44: Rotor Speed and Load Torque Estimation in BLDC Drives

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).

Page 45: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 46: Rotor Speed and Load Torque Estimation in BLDC Drives

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:

Page 47: Rotor Speed and Load Torque Estimation in BLDC Drives

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,

Page 48: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 49: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 50: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 51: Rotor Speed and Load Torque Estimation in BLDC Drives

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).

Page 52: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 53: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 54: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 55: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 56: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 57: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 58: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 59: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 60: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 61: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 62: Rotor Speed and Load Torque Estimation in BLDC Drives

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).

Page 63: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 64: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 65: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 66: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 67: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 68: Rotor Speed and Load Torque Estimation in BLDC Drives

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-

Page 69: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 70: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 71: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 72: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 73: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 74: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 75: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 76: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 77: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 78: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 79: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 80: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 81: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 82: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 83: Rotor Speed and Load Torque Estimation in BLDC Drives

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:

Page 84: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 85: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 86: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 87: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 88: Rotor Speed and Load Torque Estimation in BLDC Drives

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 .

Page 89: Rotor Speed and Load Torque Estimation in BLDC Drives

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 .

Page 90: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 91: Rotor Speed and Load Torque Estimation in BLDC Drives

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).

Page 92: Rotor Speed and Load Torque Estimation in BLDC Drives

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).

Page 93: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 94: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 95: Rotor Speed and Load Torque Estimation in BLDC Drives

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]:

Page 96: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 97: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 98: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 99: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 100: Rotor Speed and Load Torque Estimation in BLDC Drives

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 .

Page 101: Rotor Speed and Load Torque Estimation in BLDC Drives

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:

Page 102: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 103: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 104: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 105: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 106: Rotor Speed and Load Torque Estimation in BLDC Drives

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 λ.

Page 107: Rotor Speed and Load Torque Estimation in BLDC Drives

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).

Page 108: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 109: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 110: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 111: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 112: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 113: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 114: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 115: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 116: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 117: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 118: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 119: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 120: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 121: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 122: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 123: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 124: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 125: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 126: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 127: Rotor Speed and Load Torque Estimation in BLDC Drives

Chapter 7. Controlling rotor speed using MBPC 113

the load torque as a feedforward greatly improves the disturbance rejection of the drive.

Page 128: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 129: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 130: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 131: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 132: Rotor Speed and Load Torque Estimation in BLDC Drives

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].

Page 133: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 134: Rotor Speed and Load Torque Estimation in BLDC Drives

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]:

Page 135: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

.

Page 136: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 137: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 138: Rotor Speed and Load Torque Estimation in BLDC Drives

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 −

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

Page 139: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 140: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 141: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 142: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 143: Rotor Speed and Load Torque Estimation in BLDC Drives

[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

Page 144: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 145: Rotor Speed and Load Torque Estimation in BLDC Drives

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 −

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)

Page 146: Rotor Speed and Load Torque Estimation in BLDC Drives

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)

Page 147: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 148: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 149: Rotor Speed and Load Torque Estimation in BLDC Drives

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 .

Page 150: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 151: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 152: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 153: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 154: Rotor Speed and Load Torque Estimation in BLDC Drives

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.

Page 155: Rotor Speed and Load Torque Estimation in BLDC Drives

[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.

Page 156: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 157: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 158: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 159: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 160: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 161: Rotor Speed and Load Torque Estimation in BLDC Drives

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

Page 162: Rotor Speed and Load Torque Estimation in BLDC Drives