Aci Fe
Aci Fe
Description This software module implements the flux estimator with the rotor flux angle
for the 3-ph induction motor based upon the integral of back emf’s (voltage
model) approach. To reduce the errors due to pure integrator and stator
resistance measurement, the compensated voltages produced by PI
compensators are introduced. Therefore, this flux estimator can be operating
over a wide range of speed, even at very low speed.
UDsS
pu PsiDrS
UQsS pu
pu ACIFE PsiQrS
IDsS MACRO pu
pu ThetaFlux
IQsS pu
pu
C Interface
Object Definition
The structure of ACIFE object is defined by following structure definition
ACIFE
The module definition is created as a data type. This makes it convenient to instance an
interface to the flux estimator of Induction Motor module. To create multiple instances of the
module simply declare variables of type ACIFE.
ACIFE_handle
User defined Data type of pointer to ACIFE module
ACIFE_DEFAULTS
Structure symbolic constant to initialize ACIFE module. This provides the initial values to the
terminal variables as well as method pointers.
Methods
ACIFE_MACRO(ACIFE_handle);
This definition implements one method viz., the flux estimator of Induction Motor computation
macro. The input argument to this macro is the module handle.
Module Usage
Instantiation
The following example instances two ACIFE objects
ACIFE fe1, fe2;
Initialization
To Instance pre-initialized objects
ACIFE fe1 = ACIFE_DEFAULTS;
ACIFE fe2 = ACIFE_DEFAULTS;
Example
The following pseudo code provides the information about the module usage.
main()
{
fe1.K1 = parem1_1; // Pass parameters to fe1
. .
. .
. .
fe1.K8 = parem1_8; // Pass parameters to fe1
Since the flux estimator of Induction motor module requires eight constants (K1,…, K8) to be
input basing on the machine parameters, base quantities, mechanical parameters, and
sampling period. These eight constants can be internally computed by the macro
(aci_fe_const.h). The followings show how to use the C constant computation macro.
Object Definition
The structure of ACIFE_CONST object is defined by following structure definition
ACIFE_CONST
The module definition is created as a data type. This makes it convenient to instance an
interface to the flux estimation of Induction Motor constant computation module. To create
multiple instances of the module simply declare variables of type ACIFE_CONST.
ACIFE_CONST_handle
User defined Data type of pointer to ACIFE_CONST module
ACIFE_CONST_DEFAULTS
Structure symbolic constant to initialize ACIFE_CONST module. This provides the initial
values to the terminal variables as well as method pointers.
Methods
ACIFE_CONST_MACRO (ACIFE_CONST_handle);
This definition implements one method viz., the flux estimator of Induction Motor constant
computation macro. The input argument to this macro is the module handle.
Module Usage
Instantiation
The following example instances two ACIFE_CONST objects
ACIFE_CONST fe1_const, fe2_const;
Initialization
To Instance pre-initialized objects
ACIFE_CONST fe1_const = ACIFE_CONST_DEFAULTS;
ACIFE_CONST fe2_const = ACIFE_CONST_DEFAULTS;
Example
The following pseudo code provides the information about the module usage.
main()
{
Technical Background
The overall of the flux estimator [1] can be shown in Figure 1. The rotor flux linkages in the
stationary reference frame are mainly computed by means of the integral of back emf’s in the
voltage model. By introducing the compensated voltages generated by PI compensators, the
errors associated with pure integrator and stator resistance measurement can be taken care.
The equations derived for this flux estimator are summarized as follows:
Continuous time:
Firstly, the rotor flux linkage dynamics in synchronously rotating reference frame
e can be shown as below:
r
d edr,i L m e 1
i ds edr,i e r eqr,i (1)
dt r r
d eqr,i
Lm e 1
i qs qre,i e r dre,i
(2)
dt r r
L
where Lm is the magnetizing inductance (H), r r is the rotor time constant (sec), and r
Rr
is the electrically angular velocity of rotor (rad/sec).
In the current model, total rotor flux linkage is aligned into the d-axis component, which is
modeled by the stator currents, thus
er ,i edr,i and eqr,i 0 (3)
Substituting qr 0 into (1)-(2), yields the oriented rotor flux dynamics are
e ,i
d edr,i L m e 1
i ds edr,i (4)
dt r r
eqr,i 0 (5)
Note that (4) and (5) are the classical rotor flux vector control equations. Then, the rotor flux
linkages in (4)-(5) are transformed into the stationary reference frame performed by inverse
park transformation.
sdr,i edr,i cos r eqr,i sin r edr,i cos r (6)
sqr,i edr,i sin r qre ,i cos r edr,i sin r (7)
where r is the rotor flux angle (rad).
Then, the stator flux linkages in stationary reference frame are computed from the rotor flux
linkages in (6)-(7)
- + u sds
Rs
Rs
u sqs
s s - +
i qs i ds
Eqs. (4)-(5) Eqs. (6)-(7)
u comp , ds +
e e ,i Eqs. (10)-(11)
i s ,i
dr
s ,i
ds -
s,v
ds
s
i ds ds dr -
s
i qs
Park
Trans.
i e
qs qr
e ,i Inverse park
Trans.
s ,i
qr
s ,i
s r , is s ,i s
s ,i
qs + - 2 PI's u comp , qs +
s ,v
qs
Eqs. (8)-(9)
ds
s ,v s,v
qs + Eqs. (12)-(13) - Voltage Model
Current Model
r r
s,v s,v
qs ds
s ,v
dr s,v
sqr,v dr
r tan 1 s ,v
s ,v
s ,v
s ,v
,i s
qr r s s
s,v
dr qr
Eqs. (14)-(15)
s s
i qs i ds
L s L r L2m s L m s ,i
L i L i
s ,i
ds
s
s ds
s
m dr
i ds
dr (8)
Lr Lr
L L L2m s L m s ,i
sqs,i L s i sqs L m i sqr s r i qs
qr (9)
Lr Lr
where Ls and Lr are the stator and rotor self inductance (H), respectively.
Next, the stator flux linkages in the voltage model is computed by means of back emf’s
integration with compensated voltages.
sds, v u sds i sds R s u comp,ds dt (10)
sqs, v u s
qs i sqs R s u comp,qs dt (11)
s s
where Rs is the stator resistance (), u ds , u qs are stationary dq-axis stator voltages, and
the compensated voltages are computed by the PI control law as follows:
Kp
u comp,ds K p sds, v sds,i
TI
s ,v
ds
sds,i dt (12)
u comp,qs K p sqs, v sqs,i P
K
TI
s,v
qs
sqs,i dt (13)
The proportional gain KP and the reset time TI are chosen such that the flux linkages
computed by current model is dominant at low speed because the back emf’s computed
by the voltage model are extremely low at this speed range (even zero back emf’s at zero
speed). While at high speed range, the flux linkages computed by voltage model is
dominant.
Once the stator flux linkages in (10)-(11) are calculated, the rotor flux linkages based on
the voltage model are further computed, by rearranging (8)-(9), as
L L L2m s L
sdr, v s r i ds r sds, v
(14)
Lm Lm
L L L2m s L
sqr, v s r i qs r sqs, v
(15)
Lm Lm
Then, the rotor flux angle based on the voltage model is finally computed as
sqr, v
r tan 1 s , v (16)
dr
Discrete time:
The oriented rotor flux dynamics in (4) is discretized by using backward approximation as
follows:
dre,i (k ) dre ,i (k 1) L m e 1
i ds (k ) edr,i (k ) (17)
T r r
where T is the sampling period (sec). Rearranging (17), then it gives
r e,i LmT e
e,i
dr (k) dr (k-1) i ds (k) (18)
r T r T
Digital Control Systems (DCS) Group 11
Texas Instruments
Technical Background
Next, the stator flux linkages in (10)-(11) are discretized by using trapezoidal (or tustin)
approximation as
sds, v (k ) sds, v (k 1)
T s
2
e ds (k ) e sds (k 1) (19)
T
sqs, v (k ) sqs, v (k 1) e sqs (k ) e sqs (k 1)
2
(20)
u comp,ds (k ) K p sds, v (k ) sds,i (k ) u comp,ds ,i (k 1) (23)
u comp,qs (k ) K p s,v
qs (k ) sqs,i (k ) u comp ,qs ,i (k 1) (24)
where the accumulating integral terms are as
u comp,ds ,i (k ) u comp,ds ,i (k 1)
K P T s,v
TI
ds (k ) sds,i (k )
(25)
u comp,ds ,i (k 1) K P K I (k ) (k ) s,v
ds
s ,i
ds
u comp,qs ,i (k ) u comp,qs ,i (k 1)
K T
T
P s,v
qs (k ) sqs,i (k )
I (26)
u comp,qs ,i (k 1) K P K I (k ) (k ) s,v
qs
s ,i
qs
T
where KI .
TI
Now all equations are normalized into the per-unit by the specified base quantities.
Firstly, the rotor flux linkage in current model (18) is normalized by dividing the base flux
linkage as
e,i T e
dr,pu
e,i
(k) r dr,pu (k 1) ids,pu (k) pu (27)
r T r T
where b L m I b is the base flux linkage (volt.sec) and Ib is the base current (amp).
Next, the stator flux linkages in the current model (8)-(9) are similarly normalized by
dividing the base flux linkage as
L L L2m s L
sds,i,pu (k ) s r i ds ,pu (k ) m sdr,i,pu (k )
pu (28)
LrLm Lr
L s L r L2m s L
s ,i
qs , pu (k ) i qs ,pu (k ) m sqr,i,pu (k )
pu (29)
LrLm Lr
Then, the back emf’s in (21)-(22) are normalized by dividing the base phase voltage Vb
IbR s s
e sds ,pu (k ) u sds ,pu (k ) i ds ,pu (k ) u comp,ds ,pu (k ) pu (30)
Vb
I R
e sqs ,pu (k ) u sqs ,pu (k ) b s i sqs ,pu (k ) u comp,qs ,pu (k ) pu (31)
Vb
Next, the stator flux linkages in the voltage model (19)-(20) are divided by the base flux
linkage.
VT e sds ,pu (k ) e sds ,pu (k 1)
s,v
(k ) s,v
(k 1) b pu (32)
ds , pu ds , pu
LmIb 2
V T e qs ,pu (k ) e qs ,pu (k 1)
s s
e,i
dr,pu (k) K1 e,i
dr,pu (k 1) K i e
2 ds,pu (k) pu (36)
r T
where K 1 , and K 2 .
r T r T
Current model – rotor flux linkages in the stationary reference frame 0
sds,i,pu (k ) K 4 i sds ,pu (k ) K 3 sdr,i,pu (k ) pu (37)
sqs,i,pu (k ) K 4 i sqs ,pu (k ) K 3 sqr,i,pu (k ) pu (38)
Lm L L L2m
where K 3 , and K 4 s r .
Lr LrLm
Voltage model – back emf’s in the stationary reference frame 0
e sds ,pu (k ) u sds ,pu (k ) K 5 i sds ,pu (k ) u comp,ds ,pu (k ) pu (39)
e s
qs , pu (k ) u s
qs , pu (k ) K i s
5 qs , pu (k ) u comp,qs ,pu (k ) pu (40)
IbR s
where K 5 .
Vb
Voltage model – stator flux linkages in the stationary reference frame 0
Lr L s L r L2m
where K 7 , and K 8 .
Lm LmLm
Voltage model – rotor flux angle
1 sqr, v,pu (k )
r ,pu (k ) tan 1 pu (45)
2 s, v (k )
dr , pu
Notice that the rotor flux angle is computed by a look-up table of 0o-45o with 256 entries.
In fact, equations (36)-(44) are mainly employed to compute the estimated flux linkages
in per-unit. The required parameters for this module are summarized as follows:
Notice that the stator self inductance is L s L sl L m (H) and the rotor self inductance
is L r L rl L m (H).
Next, Table 1 shows the correspondence of notations between variables used here and
variables used in the program (i.e., aci_fe.c, aci_fe.h). The software module requires that
both input and output variables are in per unit values.
i sds IDsS
i sqs IQsS
sdr, v PsiDrS
Outputs
sqr, v PsiQrS
r ThetaFlux
edr,i FluxDrE
sdr,i FluxDrS
sqr,i FluxQrS
sds,i FluxDsS
sqs,i FluxQsS
Others
sds, v PsiQsS
sqs, v PsiQsS
e sds EmfDsS
e sqs EmfQsS
u comp,ds UCompDsS
u comp,qs UCompQsS
References:
[1] C. Lascu, I. Boldea, and F. Blaabjerg, “A modified direct torque control for
induction motor sensorless drive”, IEEE Trans. Ind. Appl., vol. 36, no. 1, pp. 122-
130, January/February 2000.