# ADRC and Feedforward Hybrid Control System of PMSM

Authors: Song Wang
Journal: Mathematical Problems in Engineering
 (2013)

---

## Abstract

The permanent-magnet synchronous motor (PMSM) is a complex controlled object that is difficult to drive and control. In this study, the vector control strategy is adopted to drive the PMSM. The active disturbance rejection controller is used to achieve the closed-loop control of PMSM, which simplifies the computational complexity. A load torque observer and feedforward compensation component are designed to overcome the PMSM speed fluctuation of the load disturbance. An experimental system based on the DSP board is designed to test the controller performance. The results validate the control algorithm.


---

## Body

## 1.  Introduction

The permanent-magnet synchronous motor (PMSM) is a multivariable, nonlinear, time-varying, and strongly coupled system. The control method and drive strategy of PMSMs are complex. The three main PMSM drive strategies are constant-frequency ratio control (VVVF), field-oriented control (also called vector control (VC)) [1], and direct-torque control (DTC). VVVF is called a variable-voltage and variable-frequency control; this strategy mostly adopts open-loop control [2] and has a simple structure. The VVVF does not perform well because of the lack of current and position feedback. VC and DTC belong to the high-performance PMSM control strategy and are thus different from VVFF [3]. VC requires an accurate PMSM model. Vector transformation and large-system calculations can be used to control PMSM but generally do not yield the desired effect. However, the use of high-precision encoders has significantly improved PMSM control. The DTC method does not require complex coordinate transformations [4] but has a large torque ripple component because it cannot generate a current loop or execute current protection. Therefore, DTC requires current-limiting measures. With the development of a control theory, various alternative control methods [5–8], including feedback linearization, sliding mode variable structure, neural network control, adaptive control, fuzzy control, and anti-step control, have been proposed. Most of these control methods are based on the VC and DTC strategies. The PMSM control system exhibits improved performance when combined with these control methods. In this study, we adopt the VC strategy to drive PMSM and use the double-loop (speed and current loops) control method to achieve a hybrid PMSM control system. The speed loop uses the active disturbances rejection controller (ADRC), whereas the current loop adopts a PID controller composite with feedforward. ADRC is useful in analyzing nonlinear uncertain systems with unknown disturbances. Therefore, the ADRC of the speed loop can adequately handle unknown load disturbances. However, the parameters of the ADRC are difficult to adjust. Thus, we propose a linear ADRC controller and design a load torque observer and feedforward compensation component to overcome the PMSM speed fluctuation of load disturbances. A DSP is used to design an embedded PMSM controller and perform actual machine experiments in order to evaluate the effectiveness and superiority of the method.


## 2. Mathematical Model of PMSM

The mathematical model of PMSM in ad, q two-phase rotating coordinate system is shown below [9, 10]. The voltage equation is
(1)uq=Rsiq+Lqdiqdt+ωψd,ud=Rsid+Lddiddt-ωψq.When the PMSM is in a steady state, the voltage equation is given by(2)uq=Rsiq+ωψd,ud=Rsid-ωψq,
where ud and uq represent the stator winding shaft in a straight axis and the quadrature voltage, respectively; id and iq are the direct-axis current and quadrature-axis current, respectively; Rs is the stator phase resistance; ψd and ψq represent the syntheses of the magnetic fields in space-direct and quadrature-axis stator winding of the magnetic chain, respectively; Ld is the straight axis inductance; and Lq is the quadrature axis inductance.The magnetic linkage equation can be expressed as follows:(3)ψd=ψf+Ldid,ψq=Lqiq,
where ψf is the permanent-magnet fundamental excitation magnetic field and stator winding of the magnetic chain.The electromagnetic torque of PMSM in thed, q coordinate is
(4)Te=np(ψdiq-ψqid)=np[ψfiq+(Ld-Lq)idiq].WhenLd is equal to Lq, the electromagnetic torque can be simplified as follows:
(5)Te=npψfiq.Figure1 shows the VC system structure of PMSM when id=0. The structure includes the current acquisition, rotor position, speed detection, speed control, torque control, flux controller, SVPWM modules, inverters, and PMSM.Figure 1
Structure of a permanent-magnet synchronous motor (PMSM) vector control (VC) system.The simulation system is established in MATLAB/SIMULINK using a VC system simulation model of PMSM (Figure2).Figure 2
Permanent-magnet synchronous motor (PMSM) vector control (VC) system model.


## 3. Application of ADRC in PMSM Speed Control

The ADRC technology is derived from the PID control theory. The ADRC has higher stability [11–13] and robustness than the PID controller and has thus been used to address the inherent defects of classical PID [14].


### 3.1. ADRC Controller

The ADRC consists of two parts. The first part is the tracking differentiator (TD), which tracks the system reference input and reasonably arranges the transient process. The second part is the extended state observer (ESO), which controls the system, observes the “integrated disturbance” of systems through the nonlinear-state error feedback (NLSEF) generalized error, and provides the corresponding feedforward compensation of the disturbance [15]. Figure 3 shows the structure of the ADRC controller.Figure 3
Active disturbance rejection controller (ADRC) structure.The ADRC can be widely used for the unknown disturbances of nonlinear uncertain systems, as follows:(6)x(n)=f(x,x˙,…,x(n-1),t)+ω(t)+bu,y=x(t),
where f(x,x˙,…,x(n-1),t) is the unknown function, ω(t) is the unknown disturbance, x(t) is the system output (which can be measured), u is the control action of the system, and b is the gain.


### 3.2. ADRC Controller Design

Although ADRC implementation does not rely on the accurate mathematical model of the object, (6) shows that the ADRC order can be determined by the order of the controlled object. In addition, given the choice of different constructors, ADRC implementation can also be in various forms.


#### 3.2.1. Tracking Differentiator (TD)

The mathematical model for the commonly usedn-order TD is as follows [16]:
(7)e1=z11-v,z˙11=z12,⋮z˙1n=-r2[(znrn-1,a1n,δ1n)fal(e1,a11,δ11)+β11fal(z2r,a12,δ12)hhhhhh+⋯+β1(n-1)fal(znrn-1,a1n,δ1n)],
where v is the reference input, z11 is the trace output after the TD arrangements, e1 is the difference between the TD trace output TD and the reference input, z12⋯z1n is the output of each derivative signal for the TD tracking reference input, r and β11⋯β1(n-1) are constants, and fal() is an error function.


#### 3.2.2. Extended State Observer (ESO)

The commonly used mathematical model for then-order ESO is as follows:
(8)e2=z21-y,z˙21=z22-β21fal(e2,a21,δ21),⋮z˙2n=z2(n+1)-β2nfal(e2,a2n,δ2n)+bu,z˙2(n+1)=-β2(n+1)fal(e2,a2(n+1),δ2(n+1)),
where y is the system output, z21⋯z2n is the expansion state of the ESO observing systems, z2(n+1) is the total number of system disturbances observed by ESO, e2 is the difference between ESO observation and the system output, β21⋯β2(n+1) is a constant, u is the system control function, and b is the gain of the control action.Then-order nonlinear feedback control rate of the state error is expressed as follows:
(9)u0=k1fal(e31,a31,δ31)+⋯+knfal(e3n,a3n,δ3n)u=u0-1bz2(n+1),
where e31⋯e3n is the error between the system reference and the output of each order state; namely, e3x=e1x-e2x(x=1⋯n) and k1⋯kn is a constant.The nonlinear functionsfal() are used in TD, ESO, and NLSEF [17], as follows:
(10)fal(x,a,δ)={xδ1-a,|x|≤δsign(x)|x|a,|x|>δ,
where sign(x) is the sign function, in which sign(x)=1 when x≥0 and sign(x)=0 when x<0; a is the nonlinear factor and δ is the filter factor. When a<1, fal(x,a,δ) has a large error with a small gain or exhibits the characteristics of small errors with a large gain.


### 3.3. ADRC-Based PMSM VC

The mathematical model for PMSM in the two-phased, q rotating coordinate system can be derived as follows [18]:
(11)diddt=1Ld(ud-Rsid+ωLqiq),diqdt=1Lq(uq-Rsiq+ωLdid-ωψf),dωdt=1J(np2[ψfiq+(Ld-Lq)idiq]-npTL-Bω).When designing the ADRC controller of PMSM, the current loop inverter and PMSM are considered as one control object.The third expression in (11) shows that the PMSM speed is affected by iq, id, load torque, and friction coefficient. According to the ADRC principle, iq is due to the speed control, which is the ADRC output. id, the load torque, and the friction coefficient are considered system disturbances and are given by a(t)=(1/J)[np2(Ld-Lq)idiq-npTL-Bω]. Therefore, the three expressions in (11) can be written as
(12)dωdt=1Jnp2ψfiq+a(t)=biq+a(t),
where b=(1/J)np2ψf.In addition, the third expression in (11) shows that the PMSM speed loop is a first-order model. Therefore, the ADRC controller of the PMSM speed loop is also in the first order, as shown in Figure 4.Figure 4
Permanent-magnet synchronous motor (PMSM) speed loop active disturbance rejection controller (ADRC) model.In Figure4, ω* is a given speed reference signal, z11is the speed output after the TD transition procedure, z21 is the ESO speed output, z22 is the system disturbance of the ESO observation, u0 is the control signal of the nonlinear feedback control law, and u is the control signal compensated by the perturbation, which is the current reference of the quadrature axis (iq*).The first-order ADRC controller of the PMSM speed loop can be realized as follows.TD:(13)e1=z11-ω*,z˙11=-rfal(e1,a1,δ1).ESO:(14)e2=z21-ω,z˙21=z22-β21fal(e2,a21,δ21)+bu,z˙22=β22fal(e2,a22,δ22).Nonlinear-state error feedback-control law:(15)e=z21-z22,u0=β3fal(e,a3,δ3),u=u0-z22b.The MATLAB/SIMULINK is used to build a simulation model (Figure5) based on the mathematical model. The specific parameters are as follows.Figure 5
Permanent-magnet synchronous motor (PMSM) active disturbance rejection controller (ADRC) MATLAB model.The nominal voltage isU=560 V, the stator phase resistance is Rs=0.24 Ω, the cross-axis inductance is Ld=Lq=1.015 mH, the magnetic chain of permanent magnets and stator winding is ψf=0.06784 V·s, the moment of inertia is J=4.8×10-4 kg·m2, the rotor damping factor is B=1.619×10-4 N·m·s, and the number of pole pairs is np=4. Based on these parameters, the ADRC controller parameters of ADRC can be calculated as follows:
(16)b=1Jnp2ψf=2261.3.


### 3.4. Comparison between ADRC and a PID Controller

The current loop adopts the PID control method, whereas the speed loop uses the ADRC control strategy. This paper compares the overshooting, response time, antiload disturbance, and other capabilities of the ADRC and PID methods of PMSM in a VC system according to the requirements of the PMSM speed control.The DC voltage of the PMSM inverter stabilizes at the start of the rated voltage (560V) of the motor, drops to 460 V within 2 seconds, and then reverts to the rated voltage at 2.5 seconds. Moreover, this voltage increases to 660 V in 3 seconds and then reverts to the rated voltage at 3.5 seconds. The load torque input starts to stabilize at 0.5 N·m, increases to 3 N·m at 1 second, and then drops to 0.5 N·m at 1.5 seconds. The PMSM speed is set to 500 r/min under the same conditions. Figure 6 shows the speed output waveform of the two strategies of the PMSM speed controller.Figure 6
Permanent-magnet synchronous motor (PMSM) speed output based on PID.Figure6 shows that the speed output of the PID controller in the PMSM speed loop has significantly overshot at 23 r/min and that the regulation time is approximately 0.06 s. The torque increases to 3 N·m and then suddenly decreases. Moreover, the speed output has nearly 10 r/min fluctuations. The regulation time is approximately 0.1 seconds. However, the voltage fluctuations have no effect on the speed. The speed output and speed observation of ADRC are the same, and no overshoot occurs when the motor starts. When the torque changes as above, the ADRC speed output changes to approximately 2 r/min. The voltage fluctuations also have no effect on the speed output.The following conclusion can be drawn from the aforementioned results.(1)
The motor can start without an overshoot because of the TD arrangements and the nonlinear control state and variables. The classic PID control generates unavoidable overshoot even after adjusting the parameters.(2)
The load antidisturbance control by ADRC in the is greater than that by the PID control.(3)
The three-phase inverter DC voltage fluctuations do not affect the PMSM speed output.


### 3.5. ADRC Linearization

In simulation and practical applications, parameter adjustment inconvenience is the main factor that affects the ADRC control performance. On the other hand, because of the presence of nonlinear functions and its two parameters. Moreover, the calculation of nonlinear functions for embedded controllers requires a large amount of CPU resources. Thus, this study has simplified the nonlinear functions to facilitate parameter adjustment and calculations.The nonlinear function expressed in (10) is shown in Figure 7, where α=0.5, δ=0.05, the x-axis is the error input e, and the y-axis is the function value. This nonlinear function has yields a small error and a large gain, and vice versa [15, 19]. The linear function of error y=e is instead that of the non-linear function fal(e,α,δ); that is, a straight line through the origin is used in place of the curve in Figure 7.Figure 7
f
a
l
(
e
,
0.5,0.05
) function.


#### 3.5.1. Realization of Linear ADRC

The linear first-order model of ADRC in the PMSM speed loop of PMSM can be described as follows.TD:(17)e1=z11-ω*,z˙11=-re1.ESO:(18)e2=z21-ω,z˙21=z22-β21e2+bu,z˙22=β22e2.Control law of state-error feedback:(19)e=z21-z22,u0=β3e,u=u0-z22b.As shown in Figure8, the TD output of ADRC is smoother than that of the linear ADRC under the same r, and the duration of transition is longer. However, linear ADRC can track the reference signal given a suitable parameter, and the transition time arranged by TD in linear ADRC can be arbitrarily adjusted.Figure 8
Comparison of the tracking differentiator (TD) outputs of the linear active disturbance rejection controller (ADRC) and normal ADRC.


#### 3.5.2. PMSM Simulation Based on Linear ADRC

Figure9 shows the ADRC speed control output as well as the linear ADRC observations.Figure 9
Speed output and observation of permanent-magnet synchronous motor (PMSM) linear active disturbance rejection controller (ADRC).The speed controller with the linear ADRC also shows no overshooting. Under the same load disturbance, the linear and nonlinear ADRC controllers exhibit nearly similar speed fluctuations. Moreover, the power fluctuation of the three-phase inverter circuit has negligible effects on the linear ADRC. In terms of the speed observation of the linear ADRC, the ESO yields a more complete observation of the extended states.However, when the start or working process of PMSM is disrupted, the duration for which the system returns to the steady state is relatively long. This duration corresponds to the characteristic of thefal() function, wherein the gain increases when the error decreases. Given that the error gain of the linear ADRC near the steady state is negligible, the changes in the control action are also relatively small and the duration of the stabilization process is relatively long. Overall, the linear ADRC has achieved the expected improvements.


## 3.1. ADRC Controller

The ADRC consists of two parts. The first part is the tracking differentiator (TD), which tracks the system reference input and reasonably arranges the transient process. The second part is the extended state observer (ESO), which controls the system, observes the “integrated disturbance” of systems through the nonlinear-state error feedback (NLSEF) generalized error, and provides the corresponding feedforward compensation of the disturbance [15]. Figure 3 shows the structure of the ADRC controller.Figure 3
Active disturbance rejection controller (ADRC) structure.The ADRC can be widely used for the unknown disturbances of nonlinear uncertain systems, as follows:(6)x(n)=f(x,x˙,…,x(n-1),t)+ω(t)+bu,y=x(t),
where f(x,x˙,…,x(n-1),t) is the unknown function, ω(t) is the unknown disturbance, x(t) is the system output (which can be measured), u is the control action of the system, and b is the gain.


## 3.2. ADRC Controller Design

Although ADRC implementation does not rely on the accurate mathematical model of the object, (6) shows that the ADRC order can be determined by the order of the controlled object. In addition, given the choice of different constructors, ADRC implementation can also be in various forms.


### 3.2.1. Tracking Differentiator (TD)

The mathematical model for the commonly usedn-order TD is as follows [16]:
(7)e1=z11-v,z˙11=z12,⋮z˙1n=-r2[(znrn-1,a1n,δ1n)fal(e1,a11,δ11)+β11fal(z2r,a12,δ12)hhhhhh+⋯+β1(n-1)fal(znrn-1,a1n,δ1n)],
where v is the reference input, z11 is the trace output after the TD arrangements, e1 is the difference between the TD trace output TD and the reference input, z12⋯z1n is the output of each derivative signal for the TD tracking reference input, r and β11⋯β1(n-1) are constants, and fal() is an error function.


### 3.2.2. Extended State Observer (ESO)

The commonly used mathematical model for then-order ESO is as follows:
(8)e2=z21-y,z˙21=z22-β21fal(e2,a21,δ21),⋮z˙2n=z2(n+1)-β2nfal(e2,a2n,δ2n)+bu,z˙2(n+1)=-β2(n+1)fal(e2,a2(n+1),δ2(n+1)),
where y is the system output, z21⋯z2n is the expansion state of the ESO observing systems, z2(n+1) is the total number of system disturbances observed by ESO, e2 is the difference between ESO observation and the system output, β21⋯β2(n+1) is a constant, u is the system control function, and b is the gain of the control action.Then-order nonlinear feedback control rate of the state error is expressed as follows:
(9)u0=k1fal(e31,a31,δ31)+⋯+knfal(e3n,a3n,δ3n)u=u0-1bz2(n+1),
where e31⋯e3n is the error between the system reference and the output of each order state; namely, e3x=e1x-e2x(x=1⋯n) and k1⋯kn is a constant.The nonlinear functionsfal() are used in TD, ESO, and NLSEF [17], as follows:
(10)fal(x,a,δ)={xδ1-a,|x|≤δsign(x)|x|a,|x|>δ,
where sign(x) is the sign function, in which sign(x)=1 when x≥0 and sign(x)=0 when x<0; a is the nonlinear factor and δ is the filter factor. When a<1, fal(x,a,δ) has a large error with a small gain or exhibits the characteristics of small errors with a large gain.


## 3.2.1. Tracking Differentiator (TD)

The mathematical model for the commonly usedn-order TD is as follows [16]:
(7)e1=z11-v,z˙11=z12,⋮z˙1n=-r2[(znrn-1,a1n,δ1n)fal(e1,a11,δ11)+β11fal(z2r,a12,δ12)hhhhhh+⋯+β1(n-1)fal(znrn-1,a1n,δ1n)],
where v is the reference input, z11 is the trace output after the TD arrangements, e1 is the difference between the TD trace output TD and the reference input, z12⋯z1n is the output of each derivative signal for the TD tracking reference input, r and β11⋯β1(n-1) are constants, and fal() is an error function.


## 3.2.2. Extended State Observer (ESO)

The commonly used mathematical model for then-order ESO is as follows:
(8)e2=z21-y,z˙21=z22-β21fal(e2,a21,δ21),⋮z˙2n=z2(n+1)-β2nfal(e2,a2n,δ2n)+bu,z˙2(n+1)=-β2(n+1)fal(e2,a2(n+1),δ2(n+1)),
where y is the system output, z21⋯z2n is the expansion state of the ESO observing systems, z2(n+1) is the total number of system disturbances observed by ESO, e2 is the difference between ESO observation and the system output, β21⋯β2(n+1) is a constant, u is the system control function, and b is the gain of the control action.Then-order nonlinear feedback control rate of the state error is expressed as follows:
(9)u0=k1fal(e31,a31,δ31)+⋯+knfal(e3n,a3n,δ3n)u=u0-1bz2(n+1),
where e31⋯e3n is the error between the system reference and the output of each order state; namely, e3x=e1x-e2x(x=1⋯n) and k1⋯kn is a constant.The nonlinear functionsfal() are used in TD, ESO, and NLSEF [17], as follows:
(10)fal(x,a,δ)={xδ1-a,|x|≤δsign(x)|x|a,|x|>δ,
where sign(x) is the sign function, in which sign(x)=1 when x≥0 and sign(x)=0 when x<0; a is the nonlinear factor and δ is the filter factor. When a<1, fal(x,a,δ) has a large error with a small gain or exhibits the characteristics of small errors with a large gain.


## 3.3. ADRC-Based PMSM VC

The mathematical model for PMSM in the two-phased, q rotating coordinate system can be derived as follows [18]:
(11)diddt=1Ld(ud-Rsid+ωLqiq),diqdt=1Lq(uq-Rsiq+ωLdid-ωψf),dωdt=1J(np2[ψfiq+(Ld-Lq)idiq]-npTL-Bω).When designing the ADRC controller of PMSM, the current loop inverter and PMSM are considered as one control object.The third expression in (11) shows that the PMSM speed is affected by iq, id, load torque, and friction coefficient. According to the ADRC principle, iq is due to the speed control, which is the ADRC output. id, the load torque, and the friction coefficient are considered system disturbances and are given by a(t)=(1/J)[np2(Ld-Lq)idiq-npTL-Bω]. Therefore, the three expressions in (11) can be written as
(12)dωdt=1Jnp2ψfiq+a(t)=biq+a(t),
where b=(1/J)np2ψf.In addition, the third expression in (11) shows that the PMSM speed loop is a first-order model. Therefore, the ADRC controller of the PMSM speed loop is also in the first order, as shown in Figure 4.Figure 4
Permanent-magnet synchronous motor (PMSM) speed loop active disturbance rejection controller (ADRC) model.In Figure4, ω* is a given speed reference signal, z11is the speed output after the TD transition procedure, z21 is the ESO speed output, z22 is the system disturbance of the ESO observation, u0 is the control signal of the nonlinear feedback control law, and u is the control signal compensated by the perturbation, which is the current reference of the quadrature axis (iq*).The first-order ADRC controller of the PMSM speed loop can be realized as follows.TD:(13)e1=z11-ω*,z˙11=-rfal(e1,a1,δ1).ESO:(14)e2=z21-ω,z˙21=z22-β21fal(e2,a21,δ21)+bu,z˙22=β22fal(e2,a22,δ22).Nonlinear-state error feedback-control law:(15)e=z21-z22,u0=β3fal(e,a3,δ3),u=u0-z22b.The MATLAB/SIMULINK is used to build a simulation model (Figure5) based on the mathematical model. The specific parameters are as follows.Figure 5
Permanent-magnet synchronous motor (PMSM) active disturbance rejection controller (ADRC) MATLAB model.The nominal voltage isU=560 V, the stator phase resistance is Rs=0.24 Ω, the cross-axis inductance is Ld=Lq=1.015 mH, the magnetic chain of permanent magnets and stator winding is ψf=0.06784 V·s, the moment of inertia is J=4.8×10-4 kg·m2, the rotor damping factor is B=1.619×10-4 N·m·s, and the number of pole pairs is np=4. Based on these parameters, the ADRC controller parameters of ADRC can be calculated as follows:
(16)b=1Jnp2ψf=2261.3.


## 3.4. Comparison between ADRC and a PID Controller

The current loop adopts the PID control method, whereas the speed loop uses the ADRC control strategy. This paper compares the overshooting, response time, antiload disturbance, and other capabilities of the ADRC and PID methods of PMSM in a VC system according to the requirements of the PMSM speed control.The DC voltage of the PMSM inverter stabilizes at the start of the rated voltage (560V) of the motor, drops to 460 V within 2 seconds, and then reverts to the rated voltage at 2.5 seconds. Moreover, this voltage increases to 660 V in 3 seconds and then reverts to the rated voltage at 3.5 seconds. The load torque input starts to stabilize at 0.5 N·m, increases to 3 N·m at 1 second, and then drops to 0.5 N·m at 1.5 seconds. The PMSM speed is set to 500 r/min under the same conditions. Figure 6 shows the speed output waveform of the two strategies of the PMSM speed controller.Figure 6
Permanent-magnet synchronous motor (PMSM) speed output based on PID.Figure6 shows that the speed output of the PID controller in the PMSM speed loop has significantly overshot at 23 r/min and that the regulation time is approximately 0.06 s. The torque increases to 3 N·m and then suddenly decreases. Moreover, the speed output has nearly 10 r/min fluctuations. The regulation time is approximately 0.1 seconds. However, the voltage fluctuations have no effect on the speed. The speed output and speed observation of ADRC are the same, and no overshoot occurs when the motor starts. When the torque changes as above, the ADRC speed output changes to approximately 2 r/min. The voltage fluctuations also have no effect on the speed output.The following conclusion can be drawn from the aforementioned results.(1)
The motor can start without an overshoot because of the TD arrangements and the nonlinear control state and variables. The classic PID control generates unavoidable overshoot even after adjusting the parameters.(2)
The load antidisturbance control by ADRC in the is greater than that by the PID control.(3)
The three-phase inverter DC voltage fluctuations do not affect the PMSM speed output.


## 3.5. ADRC Linearization

In simulation and practical applications, parameter adjustment inconvenience is the main factor that affects the ADRC control performance. On the other hand, because of the presence of nonlinear functions and its two parameters. Moreover, the calculation of nonlinear functions for embedded controllers requires a large amount of CPU resources. Thus, this study has simplified the nonlinear functions to facilitate parameter adjustment and calculations.The nonlinear function expressed in (10) is shown in Figure 7, where α=0.5, δ=0.05, the x-axis is the error input e, and the y-axis is the function value. This nonlinear function has yields a small error and a large gain, and vice versa [15, 19]. The linear function of error y=e is instead that of the non-linear function fal(e,α,δ); that is, a straight line through the origin is used in place of the curve in Figure 7.Figure 7
f
a
l
(
e
,
0.5,0.05
) function.


### 3.5.1. Realization of Linear ADRC

The linear first-order model of ADRC in the PMSM speed loop of PMSM can be described as follows.TD:(17)e1=z11-ω*,z˙11=-re1.ESO:(18)e2=z21-ω,z˙21=z22-β21e2+bu,z˙22=β22e2.Control law of state-error feedback:(19)e=z21-z22,u0=β3e,u=u0-z22b.As shown in Figure8, the TD output of ADRC is smoother than that of the linear ADRC under the same r, and the duration of transition is longer. However, linear ADRC can track the reference signal given a suitable parameter, and the transition time arranged by TD in linear ADRC can be arbitrarily adjusted.Figure 8
Comparison of the tracking differentiator (TD) outputs of the linear active disturbance rejection controller (ADRC) and normal ADRC.


### 3.5.2. PMSM Simulation Based on Linear ADRC

Figure9 shows the ADRC speed control output as well as the linear ADRC observations.Figure 9
Speed output and observation of permanent-magnet synchronous motor (PMSM) linear active disturbance rejection controller (ADRC).The speed controller with the linear ADRC also shows no overshooting. Under the same load disturbance, the linear and nonlinear ADRC controllers exhibit nearly similar speed fluctuations. Moreover, the power fluctuation of the three-phase inverter circuit has negligible effects on the linear ADRC. In terms of the speed observation of the linear ADRC, the ESO yields a more complete observation of the extended states.However, when the start or working process of PMSM is disrupted, the duration for which the system returns to the steady state is relatively long. This duration corresponds to the characteristic of thefal() function, wherein the gain increases when the error decreases. Given that the error gain of the linear ADRC near the steady state is negligible, the changes in the control action are also relatively small and the duration of the stabilization process is relatively long. Overall, the linear ADRC has achieved the expected improvements.


## 3.5.1. Realization of Linear ADRC

The linear first-order model of ADRC in the PMSM speed loop of PMSM can be described as follows.TD:(17)e1=z11-ω*,z˙11=-re1.ESO:(18)e2=z21-ω,z˙21=z22-β21e2+bu,z˙22=β22e2.Control law of state-error feedback:(19)e=z21-z22,u0=β3e,u=u0-z22b.As shown in Figure8, the TD output of ADRC is smoother than that of the linear ADRC under the same r, and the duration of transition is longer. However, linear ADRC can track the reference signal given a suitable parameter, and the transition time arranged by TD in linear ADRC can be arbitrarily adjusted.Figure 8
Comparison of the tracking differentiator (TD) outputs of the linear active disturbance rejection controller (ADRC) and normal ADRC.


## 3.5.2. PMSM Simulation Based on Linear ADRC

Figure9 shows the ADRC speed control output as well as the linear ADRC observations.Figure 9
Speed output and observation of permanent-magnet synchronous motor (PMSM) linear active disturbance rejection controller (ADRC).The speed controller with the linear ADRC also shows no overshooting. Under the same load disturbance, the linear and nonlinear ADRC controllers exhibit nearly similar speed fluctuations. Moreover, the power fluctuation of the three-phase inverter circuit has negligible effects on the linear ADRC. In terms of the speed observation of the linear ADRC, the ESO yields a more complete observation of the extended states.However, when the start or working process of PMSM is disrupted, the duration for which the system returns to the steady state is relatively long. This duration corresponds to the characteristic of thefal() function, wherein the gain increases when the error decreases. Given that the error gain of the linear ADRC near the steady state is negligible, the changes in the control action are also relatively small and the duration of the stabilization process is relatively long. Overall, the linear ADRC has achieved the expected improvements.


## 4. PMSM Control System Based on ADRC and Feedforward Control

Feedforward control is used [20] to increase the load antidisturbance in the PMSM speed control (Figure 10). The observation and compensation of the load torque are used to achieve greater speed control.Figure 10
Feedforward and feedback controller.The feedforward controller of the load torque achieves the hybrid control of PMSM. Thus, a PMSM load torque observer, such as a state observer, should be constructed to achieve state reconstruction [18, 21, 22].


### 4.1. Full-Dimensional State Observer of the Load Torque

A state observer is constructed to achieve a state observation. The dimension of the state observer is the same as that of the control system and is called a full-dimensional state observer. A state observer for PMSM is constructed according to the state reconstruction principle.According to the motion equation (4) of the PMSM drive system, the electrical angle w is used instead of a mechanical angular velocity ωm, which is expressed as follows:
(20)dωmdt=-BJωm-1JTL+1JTe.
Suppose that the PMSM state is x=[wTL]T, the input is u=Te, and the output is y=w. The variation in the PMSM torque is unknown, and the torque parameter is assumed to be constant; that is, the rate of torque change is zero. Therefore, the speed system of PMSM can be described as
(21)x˙=Ax+Bu,y=Cx,
where
(22)A=[-BJ-1J00],B=[1J0],C=[10].According to the systemΣ(A,B,C), the new system  Σ^(A,B,C)can be constructed as follows:
(23)x^˙=Ax^+Bu,y^=Cx^,
where x^ represents the state Σ^, which is called the observer value of x. Therefore, x˙-x^˙=A(x-x^), the solution of which is x-x^=eAt[x(0)-x^(0)]. Under normal conditions, the initial conditions are not always the same because of the assumption that the torque is constant. To eliminate the state error, the feedback of the error x-x^ is used based on the new system, namely, the error y-y^. Thus, G is the feedback matrix of the state observer.Figure11 shows the structural diagram of the state observer. The state equation is expressed as
(24)x^˙=Ax^+G(y-y^)+Bu=(A-GC)x^+Bu+Gy.Figure 11
Structural diagram of the state observer.The state-estimated variables yield accurate approximations of the true value as long as the eigenvalues of the coefficient matrix (A-GC) in (4) to (6) of the state observer ​have negative real parts.LetG=[g1,g2]T. Then, the state equation of the observer can be expressed as
(25)|sI-(A-GC)|=s2+(BJ+g1)s-g2J=0.If the expected poles of the state observer areα and β, then
(26)g1=-BJ-(α+β),g2=-Jαβ.Figure12 shows the MATLAB-established full-dimensional state observer model of the load torque. Given the known parameters J and B of the PMSM in MATLAB, the rational poles of the observer can be used to determine the PMSM state observer, in which inputs are the mechanical angular velocity and torque of the motor and the load torque and the mechanical angular velocity are the outputs.Figure 12
Full-dimensional state observer of the load torque.


### 4.2. Direct Calculation of the Load Torque

Although the load torque observation in previous studies [21, 22] is mainly designed using a full-dimensional or reduced-order observer, the load torque can be calculated directly and straightforwardly by using the PMSM drive equation [23].The drive equation of PMSM can be rewritten as follows, and the expression [10], of the load torque can be calculated using the following equation:
(27)TL=Te-Jdωmdt-Bωm.Figure13 shows a model diagram of the load torque observer, which is established using MATLAB via direct calculation.Figure 13
Load torque observer obtained via direct calculation.Equation (27) shows that the method of directly calculating the load torque requires the same parameters and inputs as those used for the full-dimensional state observer, except for the speed observation.


### 4.3. Comparison of the Two State Observers of Load Torque

To compare the performances of the two load torque observers, we simulate a state observer via calculation and via full-order observation. The load torque is initially set at 0.5 N·m, is increased to 4 N·m at 0.5 s, and is returned to 0.5 N·m at 1 s. Figure14 shows the observations of the two load torque state observers.Figure 14
Comparison of the load torque observers.


### 4.4. Load Torque Feedforward Controller

The two current loops, the inverter, and the PMSM are regarded as generalized controlled objects. Moreover, the current loop is approximated to a proportional element with a ratio of 1. Then, the expression of the controlled object is a modification of the PMSM motion equation and is given bydωm/dt=-(B/J)ωm-(1/J)TL+(1/J)Te. At id=0 or  Ld=Lq, this equation can be rewritten as
(28)dωmdt=-BJωm-1JTL+1Jnpψfiq,
where the control input is iq, which can be considered as an electromagnetic torque, and the disturbance is the load torque. According to (28), GYD(s)=-1/(Js+B) and GYC(s)=npψf/(Js+B) can yield the following:
(29)GFF(s)=-GYD(s)GYC(s)=1npψf.
Equation (28) shows that once the load torque changes after compensation of the same electromagnetic torque, the right-hand side of the equation becomes constant to ensure a constant speed. The feedforward observer can then be expressed as follows:
(30)iq=TLnpψf.
After verification, (30) is shown to have the same relationship as (29).


### 4.5. Simulation of PMSM Based on ADRC and Feedforward Control

The load torque observer and feedforward controller consist of the load torque compensation. The output is the compensation ofiq once the load suddenly changes. The linear ADRC in the PMSM speed loop achieves the feedback control for speed, the output of which is the reference for iq. This output and the compensation of the load feedforward controller consist of the reference input of iq. Figure 15 shows the model for the PMSM control system based on ADRC and feedforward control, which are established using MATLAB.Figure 15
Modeling of the permanent-magnet synchronous motor (PMSM) vector control (VC) based on active disturbance rejection control (ADRC) and feedforward control.The PID control is used in the current loop, and the speed reference is set at 500 r/min (Figure15). Moreover, the DC voltage fluctuations of the inverter have no effect on the entire system and are thus directly set to 560 V. Figure 14 shows the setting of the load torque, and Figure 16 shows the PMSM speed output.Figure 16
Permanent-magnet synchronous motor (PMSM) speed output based on the active disturbance rejection control (ADRC) and feedforward control.Figure16 shows the results of a comparison of the actual outputs of the speed using PID, ADRC, and ADRC with the feedforward speed control. The ADRC and feedforward control have not exhibited overshooting and have shown nearly negligible speed fluctuations when the load suddenly changes. These results confirm that the ADRC controller with the feedforward load torque compensation exhibits a stable performance and antidisturbance ability when PMSM starts.The speed controller output is not constant even when the feedforward compensation is added under ideal conditions because of the speed and the differential signal used in designing the load torque observer. That is, the output of the load torque observer changes and compensates when the speed output changes. In addition, the results of the simulation are acceptable as long as the motor model in MATLAB is accurate. However, because an accurate model and parameters cannot be obtained in practical applications, so the feedforward control cannot fully compensate for the effects of changes in the load torque.


## 4.1. Full-Dimensional State Observer of the Load Torque

A state observer is constructed to achieve a state observation. The dimension of the state observer is the same as that of the control system and is called a full-dimensional state observer. A state observer for PMSM is constructed according to the state reconstruction principle.According to the motion equation (4) of the PMSM drive system, the electrical angle w is used instead of a mechanical angular velocity ωm, which is expressed as follows:
(20)dωmdt=-BJωm-1JTL+1JTe.
Suppose that the PMSM state is x=[wTL]T, the input is u=Te, and the output is y=w. The variation in the PMSM torque is unknown, and the torque parameter is assumed to be constant; that is, the rate of torque change is zero. Therefore, the speed system of PMSM can be described as
(21)x˙=Ax+Bu,y=Cx,
where
(22)A=[-BJ-1J00],B=[1J0],C=[10].According to the systemΣ(A,B,C), the new system  Σ^(A,B,C)can be constructed as follows:
(23)x^˙=Ax^+Bu,y^=Cx^,
where x^ represents the state Σ^, which is called the observer value of x. Therefore, x˙-x^˙=A(x-x^), the solution of which is x-x^=eAt[x(0)-x^(0)]. Under normal conditions, the initial conditions are not always the same because of the assumption that the torque is constant. To eliminate the state error, the feedback of the error x-x^ is used based on the new system, namely, the error y-y^. Thus, G is the feedback matrix of the state observer.Figure11 shows the structural diagram of the state observer. The state equation is expressed as
(24)x^˙=Ax^+G(y-y^)+Bu=(A-GC)x^+Bu+Gy.Figure 11
Structural diagram of the state observer.The state-estimated variables yield accurate approximations of the true value as long as the eigenvalues of the coefficient matrix (A-GC) in (4) to (6) of the state observer ​have negative real parts.LetG=[g1,g2]T. Then, the state equation of the observer can be expressed as
(25)|sI-(A-GC)|=s2+(BJ+g1)s-g2J=0.If the expected poles of the state observer areα and β, then
(26)g1=-BJ-(α+β),g2=-Jαβ.Figure12 shows the MATLAB-established full-dimensional state observer model of the load torque. Given the known parameters J and B of the PMSM in MATLAB, the rational poles of the observer can be used to determine the PMSM state observer, in which inputs are the mechanical angular velocity and torque of the motor and the load torque and the mechanical angular velocity are the outputs.Figure 12
Full-dimensional state observer of the load torque.


## 4.2. Direct Calculation of the Load Torque

Although the load torque observation in previous studies [21, 22] is mainly designed using a full-dimensional or reduced-order observer, the load torque can be calculated directly and straightforwardly by using the PMSM drive equation [23].The drive equation of PMSM can be rewritten as follows, and the expression [10], of the load torque can be calculated using the following equation:
(27)TL=Te-Jdωmdt-Bωm.Figure13 shows a model diagram of the load torque observer, which is established using MATLAB via direct calculation.Figure 13
Load torque observer obtained via direct calculation.Equation (27) shows that the method of directly calculating the load torque requires the same parameters and inputs as those used for the full-dimensional state observer, except for the speed observation.


## 4.3. Comparison of the Two State Observers of Load Torque

To compare the performances of the two load torque observers, we simulate a state observer via calculation and via full-order observation. The load torque is initially set at 0.5 N·m, is increased to 4 N·m at 0.5 s, and is returned to 0.5 N·m at 1 s. Figure14 shows the observations of the two load torque state observers.Figure 14
Comparison of the load torque observers.


## 4.4. Load Torque Feedforward Controller

The two current loops, the inverter, and the PMSM are regarded as generalized controlled objects. Moreover, the current loop is approximated to a proportional element with a ratio of 1. Then, the expression of the controlled object is a modification of the PMSM motion equation and is given bydωm/dt=-(B/J)ωm-(1/J)TL+(1/J)Te. At id=0 or  Ld=Lq, this equation can be rewritten as
(28)dωmdt=-BJωm-1JTL+1Jnpψfiq,
where the control input is iq, which can be considered as an electromagnetic torque, and the disturbance is the load torque. According to (28), GYD(s)=-1/(Js+B) and GYC(s)=npψf/(Js+B) can yield the following:
(29)GFF(s)=-GYD(s)GYC(s)=1npψf.
Equation (28) shows that once the load torque changes after compensation of the same electromagnetic torque, the right-hand side of the equation becomes constant to ensure a constant speed. The feedforward observer can then be expressed as follows:
(30)iq=TLnpψf.
After verification, (30) is shown to have the same relationship as (29).


## 4.5. Simulation of PMSM Based on ADRC and Feedforward Control

The load torque observer and feedforward controller consist of the load torque compensation. The output is the compensation ofiq once the load suddenly changes. The linear ADRC in the PMSM speed loop achieves the feedback control for speed, the output of which is the reference for iq. This output and the compensation of the load feedforward controller consist of the reference input of iq. Figure 15 shows the model for the PMSM control system based on ADRC and feedforward control, which are established using MATLAB.Figure 15
Modeling of the permanent-magnet synchronous motor (PMSM) vector control (VC) based on active disturbance rejection control (ADRC) and feedforward control.The PID control is used in the current loop, and the speed reference is set at 500 r/min (Figure15). Moreover, the DC voltage fluctuations of the inverter have no effect on the entire system and are thus directly set to 560 V. Figure 14 shows the setting of the load torque, and Figure 16 shows the PMSM speed output.Figure 16
Permanent-magnet synchronous motor (PMSM) speed output based on the active disturbance rejection control (ADRC) and feedforward control.Figure16 shows the results of a comparison of the actual outputs of the speed using PID, ADRC, and ADRC with the feedforward speed control. The ADRC and feedforward control have not exhibited overshooting and have shown nearly negligible speed fluctuations when the load suddenly changes. These results confirm that the ADRC controller with the feedforward load torque compensation exhibits a stable performance and antidisturbance ability when PMSM starts.The speed controller output is not constant even when the feedforward compensation is added under ideal conditions because of the speed and the differential signal used in designing the load torque observer. That is, the output of the load torque observer changes and compensates when the speed output changes. In addition, the results of the simulation are acceptable as long as the motor model in MATLAB is accurate. However, because an accurate model and parameters cannot be obtained in practical applications, so the feedforward control cannot fully compensate for the effects of changes in the load torque.


## 5. Experiments

The PMSM used in this paper is the Wuhan 110ST-M02030 motor, which has a surface-type package permanent magnet rotor. Moreover, the direct-axis inductance of this motor is the same as its quadrature-axis inductance, its stator windings are star wirings and do not have neutral wires, and the sum of its three-phase currents is zero. In addition, the motor is packaged with a compound incremental encoder to detect the rotor position. The parameters of the motor and encoder are presented in Table1.Table 1
Permanent-magnet synchronous motor (PMSM) parameters.
Rated voltage
220 V
Rated current
4 A
Rated power
600 W
Rated speed
3000 r/min
Rated torque
2 N·m
Phase resistance
0.97 Ω
Phase inductance
2.89 mH
Pole pairs
4
Inertia
0.00033 kg·m2The DSP board and IPM driver board for the PMSM control system testing in the experiments are shown in Figure17.Main hardware control equipment.
(a)
DSP control and current acquisition
(b)
IPM diver boardDuring the test, the PMSM is connected to a ZC100 hysteresis dynamometer (Guangzhong Electrical Equipment Co. Ltd.) via couplings to detect the motor speed conveniently and add load to the motor immediately.We conducted motor starting experiments and load tests to verify the control method. The PMSM speed reference is set at 500 r/min. Figure18 shows the changes in the speed, output torque, and output power recorded by the collecting system under a 1 N·m load input.Load test results.
(a)
PID test results
(b)
Linear active disturbance rejection controller (ADRC) test resultsCurves 1 and 2 in Figure18 show the relationship between motor speed and output torque and between output power and output torque, respectively. The two curves exhibit the relations of speed and power with the changes in the output power. The relationship of speed and power with the torque shows the following. (1) When the motor starts, the PMSM output torque overcomes the load torque and increases the speed. As a result, the output torque is higher than that of the no-load. When the motor speed is kept equal to the reference speed, the output torque becomes lower than that of the no-load (if the effects of the rotor-damping factor are ignored). Thus, curve 1, which is drawn from 0 r/min to 500 r/min, represents the decrease in the output torque. The difference between the two curves is that the output torque is reduced with the PID controller when the speed reaches the set value, whereas the output torque reaches its maximum value with the ADRC controller when the speed increases. These phenomena can also explain the occurrence of an overshoot in the PID controller but not in the ADRC controller. When the output power changes with the product of the output torque and speed, the change trends are decided by the control method and are consistent with the changes in the output torque. The output power for the PID controller reaches its maximum value when the speed approaches the set value. By contrast, the output torque for the ADRC controller reaches its peak and remains constant when the motor starts. (2) The speed can return to the set value because of the closed-loop regulation when the load changes. The changes in the output power vary with the changes in the load torque and thus illustrate the linear relationship between the two parameters. However, because of the greater changes in the speed with the PID control, the output power of this controller is relatively larger than that of the ADRC controller.In the PID control system of PMSM, the overshoot is 15 r/min. Figure18(a) shows the speed change when a sudden load is added. The output torque reaches the maximum and the maximum speed decreases to 17 r/min. The change in speed when the added load suddenly disappears is shown in the upper portion of Figure 18(a). When returned back to the no-load torque, the maximum change in speed reaches 20 r/min. The overshoot is negligible with ADRC (Figure 18(b)). When a sudden load is added, the speed drop is 4 r/min. When the load disappears, the maximum speed is 5 r/min. In addition, the output torque of ADRC begins to decrease before the speed reaches the set value, whereas the output power is nearly kept constant to ensure that no overshoot occurs when PMSM starts. These results confirm that ADRC performs better than PID. The comparison results are shown in Table 2.Table 2
Changes in speed with the different control methods under sudden load.
Control method
PID
ADRC
ADRC and feedforward
Decrease in the speed upon load addition (r/min)
17
4
3
Increase in the speed under decreasing load (r/min)
20
5
4The performance improves when a compound control of ADRC or PID with a PMSM feedforward control of PMSM is used (Figure19). The maximum speed change decreases to 3 and 4 r/min when the load increases and disappears, respectively. The feedforward control requires an accurate PMSM model, such as the inertia, damping, stator flux, and real-time iq. iq is necessary in the measurement of fixed parameters. However, this current is inaccurate because of the inaccurate measurement of the three-phase current as well as the nonideal mutual difference of 120° between the three-phase current. Therefore, the measurement of the load torque is inaccurate and results in the insufficient compensation of the feedforward control and of the speed changes caused by the load torque. Thus, the test results are not accurate as the simulation performance.Figure 19
Results for the active disturbance rejection controller (ADRC) and feedforward controller.Figure20 shows the line voltage and line current waveform of the PMSM, as measured by a FLUKE 43B power quality analyzer. In Figure 20, the line voltage and current waveform are approximately equal to the sinusoidal signal, which has a frequency of 33.4 Hz and is nearly equal to the 33.33 Hz frequency set by the speed set value. This result further confirms the suitability of the PMSM VC.Figure 20
Line voltage and current waveform.


## 6. Conclusions

PMSM is difficult to drive because of the synchronicity requirement. The ADRC is an excellent controller in industrial control. In this study, we use ADRC to achieve a closed-loop control of PMSM. A linearization method is also adopted to simplify the computational complexity. To achieve load antidisturbance, a feedforward component is designed by observing the load change. The simulation results show the excellent performance of the combined ADRC and feedforward component. The load disturbance has no effect on the PMSM speed. An embedded controller based on DSP is designed to validate the practical application of the new controller. The combined ADRC and feedforward component shows higher performance than the PID in terms of the steady-state and dynamic characteristics. Although the results are promising, additional research, particularly on the online parameter estimation of PMSM, is necessary to improve the accuracy of the PMSM model.



---

*Source: 180179-2013-12-22.xml*