Keywords

1 Introduction

Induction machines, a type of AC drives, are used widely in practice for variable speed applications in wide power ranges. These machines are very economical, rugged and reliable [1, 2, 46, 9]. However, the control and estimation of important quantities of AC drives with induction motors is difficult because of variable frequency of a supply stator phase voltages realized by frequency converters, complex dynamics of AC machines, machine parameters variations, and signal processing of feedback signals [1]. In many decades, induction motor control methods, listed as scalar controlling, vector control, direct torque and flux control (DTC), intelligent control such as fuzzy logic, artificial neural network, are developed [3, 5, 8, 12, 13]. Among above mentioned control methods, vector control is the most popular control method of AC induction motor [10]. Vector control consists of controlling stator currents represented by a vector. By that way, the three phases are transformed into two coordinate (x and y coordinate) invariant time system, leading to a structure similarly to that of DC control. So, the control method includes two control loops: torque control loop and flux control loop. In traditional control, above control loops are usually PI controllers and therefore, it is very sensitivity to external noises, inaccuracy of mathematical model or inaccuracy measurements, etc. In this paper, the sliding mode control is proposed instead. Sliding mode control theory is published firstly in 1970s by V. Utkin. In the years after, sliding mode researches expand rapidly because of its robustness to the noise and parameter variations [2, 6, 11]. Moreover, sliding mode observer is used to estimate the rotor speed. This reduces the complexity of hardware, cost, increase reliability, etc. For enhancement of the robustness of sliding mode controllers and observers, online parameter identification methods are also proposed [8]. In this paper, a new choosing sliding gain together with sigmoid sliding function is proposed to eliminate the chattering problem.

The paper consists of five parts. The first is the mathematical model of induction machines. Then, sliding mode observer and the current model, used to estimate the rotor flux and speed, as well as the stability of the observer based on Lyapunov’s theory are analyzed in part III. Next, Sect. 4 introduces vector control with sliding mode controller of induction motor. To evaluate the performance of proposed algorithms, some simulation results are presented in Sect. 5. Finally, all conclusions are in Sect. 6.

2 Mathematical Model of Induction Machines

Dynamic model of an induction motor in two - phase stationary frame are described as follows [46]:

$$ \begin{aligned} \dot{x} & = A \cdot x + B \cdot v \\ y & = C \cdot x \\ \end{aligned} $$
(1)
$$ x = \left[ {i_{S\alpha } \;i_{S\beta } \;\psi_{R\alpha } \;\psi_{R\beta } } \right]^{T} ;v = \left[ {v_{S\alpha } \;v_{S\beta } } \right]^{T} $$
(2)
$$ A = \left[ {\begin{array}{*{20}l} {a_{11} } \hfill & {a_{12} } \hfill & {a_{13} } \hfill & {a_{14} } \hfill \\ {a_{21} } \hfill & {a_{22} } \hfill & {a_{23} } \hfill & {a_{24} } \hfill \\ {a_{31} } \hfill & {a_{32} } \hfill & {a_{33} } \hfill & {a_{34} } \hfill \\ {a_{41} } \hfill & {a_{42} } \hfill & {a_{43} } \hfill & {a_{44} } \hfill \\ \end{array} } \right],B = \frac{1}{{\sigma L_{S} }}\left[ {\begin{array}{*{20}l} 1 \hfill & 0 \hfill \\ 0 \hfill & 1 \hfill \\ 0 \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill \\ \end{array} } \right],C = \left[ {\begin{array}{*{20}l} 1 \hfill & 0 \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & 1 \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & 1 \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & 0 \hfill & 1 \hfill \\ \end{array} } \right] $$
(3)
$$ \begin{aligned} a_{11} & = a_{22} = - \frac{{\left( {L_{m}^{2} R_{R} + L_{R}^{2} R_{S} } \right)}}{{\sigma L_{S} L_{R}^{2} }},a_{12} = a_{21} = 0,a_{13} = a_{24} = \frac{{L_{m} R_{R} }}{{\sigma L_{S} L_{R}^{2} }},a_{14} = - a_{23} = \frac{{L_{m} \omega_{R} }}{{\sigma L_{S} L_{R} }} \\ a_{31} & = a_{42} = \frac{{L_{m} R_{R} }}{{L_{R} }},a_{32} = a_{41} = 0,a_{33} = a_{44} = - \frac{{R_{R} }}{{L{}_{R}}},a_{34} = - a_{43} = - \omega_{R} \\ \end{aligned} $$
(4)

Where \( i_{S\alpha } ,i_{S\beta } \) - stator current vector components in \( \left[ {\alpha ,\beta } \right] \) stator coordinate system; \( v_{S\alpha } ,v_{S\beta } \) - stator voltage vector components in \( \left[ {\alpha ,\beta } \right] \) stator coordinate system; \( \psi_{R\alpha } ,\psi_{R\beta } \) - rotor magnetic flux in \( \left[ {\alpha ,\beta } \right] \) stator coordinate system; \( L_{m} \) - magnetizing inductance; \( L_{R} \) - rotor inductance; \( L_{S} \) - stator inductance; \( R_{R} \) - rotor phase resistance; \( R_{S} \) - stator phase resistance; \( \omega_{R} \) - rotor angular speed; \( \sigma \) - total leakage factor \( \left( {\sigma = 1 - \frac{{L_{m}^{2} }}{{L_{R} L_{S} }}} \right) \); \( p \) - the number of poles.

The electrical torque produced by induction motor is:

$$ T_{e} = K_{T} \psi_{R} i_{Sy} $$
(5)

Where \( T_{e} \) - electrical torque, \( i_{Sy} \) - torque current component in field oriented coordinate system [x,y]. By maintaining the amplitude of the rotor flux \( \psi_{R} \) at the fixed value, there is a linear relationship between torque \( T_{e} \) and the torque component \( i_{Sy} \).

3 Sliding Mode Observer

3.1 Sliding Mode Observer for Speed Estimation

Depending on field oriented control of induction motor, the stator currents, rotor fluxes and rotor speed need to be estimated. The stator currents \( i_{S\alpha } ,i_{S\beta } \), rotor speed \( \omega_{R} \) are estimated by using sliding mode observer.

The sliding mode observer can be given as:

$$ \begin{aligned} \frac{d}{dt}\hat{x} & = \hat{A} \cdot \hat{x} + B \cdot v + G \cdot sign\left[ {y - \hat{y}} \right] \\ y & = C \cdot \hat{x} \\ \end{aligned} $$
(6)
$$ \hat{A} = A_{{\left( {\omega_{R} = \hat{\omega }_{R} } \right)}} ;G = \left[ {\begin{array}{*{20}l} {g_{1} } \hfill & { - g_{2} } \hfill & 0 \hfill & 0 \hfill \\ {g_{2} } \hfill & {g_{1} } \hfill & 0 \hfill & 0 \hfill \\ {g_{3} } \hfill & { - g_{4} } \hfill & 0 \hfill & 0 \hfill \\ {g_{4} } \hfill & {g_{3} } \hfill & 0 \hfill & 0 \hfill \\ \end{array} } \right] $$
(7)

We can derive the following equations for the calculation of G matrix elements:

$$ \begin{array}{*{20}l} {g_{1} = \lambda \left( {k - 1} \right)\left( {R_{S} L_{R} + R_{R} L_{S} } \right);g_{2} = - \left( {k - 1} \right)\hat{\omega }_{R} } \hfill \\ {g_{3} = - \frac{{\left( {k - 1} \right)\left( {R_{R} L_{S} - kR_{S} L_{R} } \right)}}{{L_{m} }};g_{4} = \frac{{\left( {k - 1} \right)}}{{\lambda L_{m} }}\hat{\omega }_{R} } \hfill \\ {\lambda = \frac{1}{{L_{R} L_{S} - L_{m}^{2} }}} \hfill \\ \end{array} $$
(8)

The proof of convergence of sliding mode observer is based on Lyapunov, presented in previous paper of authors [14]. Also from [14], the rotor speed is estimated by the following equations:

$$ - \frac{{\dot{\hat{\omega }}_{R} }}{{a_{\omega } }} + \frac{{L_{m} }}{{\sigma L_{R} L_{S} }}\left( {i_{S\alpha } - \hat{i}_{S\alpha } } \right)\hat{\psi }_{R\beta } - \frac{{L_{m} }}{{\sigma L_{R} L_{S} }}\left( {i_{S\beta } - \hat{i}_{S\beta } } \right)\hat{\psi }_{R\alpha } = 0 $$
(9)
$$ \hat{\omega }_{R} = K_{\omega } \int {zdt} $$
(10)

where \( z_{\omega } = \left( {i_{S\alpha } - \hat{i}_{S\alpha } } \right) \cdot \psi_{R\beta } - \left( {i_{S\beta } - \hat{i}_{S\beta } } \right) \cdot \psi_{R\alpha } \).

According to the (10), the rotor speed of induction motor can be estimated by a PI controller:

$$ \hat{\omega }_{R} = K_{P\omega } \cdot z_{\omega } + K_{I\omega } \int {z_{\omega } \cdot dt} $$
(11)

3.2 Flux Estimator

After estimating the stator currents \( i_{S\alpha } \), \( i_{S\beta } \), the rotor fluxes \( \psi_{R\alpha } \), \( \psi_{R\beta } \) are observed by using current model.

The current model is as follows:

$$ \begin{array}{*{20}l} {\frac{{d\psi_{R\alpha } }}{dt} = \frac{{L_{m} }}{{T_{R} }}i_{S\alpha } - \frac{1}{{T_{R} }}\psi_{R\alpha } - \omega_{R} \psi_{R\beta } } \hfill \\ {\frac{{d\psi_{R\beta } }}{dt} = \frac{{L_{m} }}{{T_{R} }}i_{S\beta } + \omega_{R} \psi_{R\alpha } - \frac{1}{{T_{R} }}\psi_{R\beta } } \hfill \\ \end{array} $$
(12)

where \( T_{R} = \frac{{L_{R} }}{{R_{R} }} \) is the rotor time constant. The stator currents \( i_{S\alpha } ,i_{S\beta } \), and rotor speed \( \omega_{R} \) are the output of sliding mode observer mentioned above.

3.3 Stator Resistance Estimator

The most important disturbances that affect accuracy of sliding mode observer are parameter changes, modeling errors and measuring noise [7, 12]. Some parameters, like resistances, are variable in a rather wide range. In Eq. 8, clearly, sliding mode observer for speed estimation is sensitivity to stator resistance. To improve the robustness and the accuracy of SMO, the stator resistance estimator employs two models, the current model described by (12) and the observer described by (6). The difference between output quantities of the models is evaluated by adaptation mechanism.

The adaptation signal is defined as:

$$ z_{R} = i_{S\alpha } \left[ {\hat{\psi }_{R\alpha } - \psi_{R\alpha } } \right] + i_{S\beta } \left[ {\hat{\psi }_{R\beta } - \psi_{R\beta } } \right] $$
(13)

The stator resistance is online estimated by:

$$ \hat{R}_{S} = R_{S0} + K_{PR} \cdot z_{R} + K_{IR} \int {z_{R} \cdot dt} $$
(14)

Where \( R_{S0} \) - nominal stator resistance, provided by the manufacturer. By using the nominal stator resistance, the trajectory goes to steady state rapidly.

4 Sliding Mode Control

4.1 Sliding Mode Control

In the traditional SMC, the feedback signals need the high order derivatives of the outputs. To reduce these high order derivatives, an integral sliding mode control should be used where it is defined by:

$$ S_{x} = \int {\left( {i_{mref} - i_{m} } \right)dt} + c_{x1} \left( {i_{mref} - i_{m} } \right) $$
(15)
$$ S_{y} = \int {\left( {\omega_{mref} - \omega_{m} } \right)dt} + c_{y1} \left( {\omega_{mref} - \omega_{m} } \right) $$
(16)

In above equations, constants \( c_{x1} ,c_{y1} \) are chosen to satisfy transient responses of the sliding surfaces.

Then the first derivation of Eq. (15) is in following equation.

$$ \dot{S}_{x} = \left( {i_{mref} - i_{m} } \right) - c_{x1} \frac{{di_{m} }}{dt} = \left( {i_{mref} - i_{m} } \right) - c_{x1} \frac{1}{{T_{R} }}\left( {i_{Sx} - i_{m} } \right) = - K_{x} sign(S_{x} ) $$
(17)
$$ i_{Sx}^{*} = \frac{{T_{R} }}{{c_{x1} }}\left( {i_{mref} - i_{m} } \right) + i_{m} + \frac{{T_{R} }}{{c_{x1} }}K_{x} sign(S_{x} ) $$
(18)

Similarly, the first derivation of Eq. (16) is:

$$ \begin{aligned} \dot{S}_{y} & = \left( {\omega_{mref} - \omega_{m} } \right) - c_{y1} \frac{1}{J}\left( {T_{e} - T_{L} } \right) \\ & = \left( {\omega_{mref} - \omega_{m} } \right) - c_{y1} \frac{1}{J}\left( {K_{T}^{'} i_{Sy} - T_{L} } \right) \\ & = \left( {\omega_{mref} - \omega_{m} } \right) - w_{1} i_{Sy} + d_{{T_{L} }} = - K_{y} sign(S_{y} ) \\ \end{aligned} $$
(19)

where \( K_{y} \) - positive constant. By maintaining the amplitude of the rotor flux at a fix value, let \( K_{T}^{'} = K_{T} \psi_{R} \) and \( w_{1} = \frac{{c_{y1} K_{T}^{'} }}{J} \), \( d_{{T_{L} }} = \frac{{c_{y1} }}{J}T_{L} \). In Eq. (19), \( d_{{T_{L} }} \) known as noise, the desired \( i_{Sy} \) is written by:

$$ i_{Sy}^{*} = \frac{{\omega_{mref} - \omega_{m} }}{{w_{1} }} + \frac{{K_{y} }}{{w_{1} }}sign(S_{y} ) $$
(20)

To proof that this theorem complies with the Lyapunov stability theory, the Lyapunov function is chosen:

$$ V = \frac{1}{2}\left( {S_{x}^{2} + S_{y}^{2} } \right) $$
(21)

The Lyapunov function (21) is positive definite. In practice, the operation parameters of the induction motor drives could be changed in working, such as the load torque (\( T_{L} + \Delta T_{L} \)), etc. The derivation of Lyapunov function is:

$$ \begin{aligned} \dot{V} & = S_{x} \dot{S}_{x} + S_{y} \dot{S}_{y} \\ & = S_{x} \left[ {\left( {i_{mref} - i_{m} } \right) - c_{x1} \frac{1}{{T_{R} }}\left( {i_{Sx} - i_{m} } \right)} \right] \\ & \quad + \,S_{y} \left[ {\left( {\omega_{mref} - \omega_{m} } \right) - \left( {w_{1} + \Delta w_{1} } \right)i_{Sy} + d_{{T_{L} }} } \right] \\ \end{aligned} $$
(22)

Replace \( i_{Sx}^{*} ,i_{Sy}^{*} \) in Eqs. (18) and (20) in Eq. (22), we have:

$$ \begin{aligned} \dot{V} & = S_{x} \dot{S}_{x} + S_{y} \dot{S}_{y} \\ & = S_{x} \left[ {\left( {i_{mref} - i_{m} } \right) - T_{R} \frac{1}{{T_{R} }}\left( {i_{mref} + K_{x} sign(S_{x} ) - i_{m} } \right)} \right] \\ & \quad + \,S_{y} \left[ {\left( {\omega_{mref} - \omega_{m} } \right) - w_{1} \left( {\frac{{\omega_{mref} - \omega_{m} }}{{w_{1} }} + \frac{{K_{y} }}{{w_{1} }}sign(S_{y} )} \right) + d_{{T_{L} }} } \right] \\ & = - K_{x} \left| {S_{x} } \right| + S_{y} \left[ {d_{{T_{L} }} - K_{y} sign(S_{y} )} \right] \\ \end{aligned} $$
(23)

Assume that \( \Delta d_{{T_{L} }} \) is bounded as \( \left| {d_{{T_{L} }} } \right| \le D_{{T_{L} }} \). If \( K_{x} ;K_{y} \) are positive constants and chosen in the limits of:

$$ K_{y} > D_{{T_{L} }} $$
(24)

Therefore, Eq. (23) can be written as:

$$ \dot{V} = - K_{x} \left| {S_{x} } \right| + \left( {D_{{T_{L} }} - K_{y} } \right)\left| {S_{y} } \right| < 0 $$
(25)

According to Lyapunov stability theory, trajectories of the induction motor with the stator current components will reach to the sliding surface at the infinitive time. As a result, the rotor speed and the magnetizing current component \( i_{m} \) will reach to the reference signals.

To overcome chattering problem, in this paper, sign function is replaced by sigmoid function:

$$ sigmoi(S) = \frac{S}{a + \left| S \right|} $$
(26)

This function eliminates the chattering problems. However, the error will be increased, depending on parameter a. The choice of a becomes an interested issue.

4.2 Gain Adaption Method

In Eq. (25), \( K_{y} \) is chosen large to overcomes the affection of load torque but if \( K_{y} \) is too large, the control will occurs oscillation. One of methods of \( K_{y} \) adapting is to change it with the load torque:

$$ K_{y} = K_{y0} + \left| {\frac{{c_{y1} }}{J}T_{L} } \right| $$
(27)

where \( K_{y0} \) is a small positive value.

The sliding mode control with sliding mode observer diagram is shown in Fig. 1.

Fig. 1.
figure 1

Schematic of induction motor control

5 Simulations

All simulations were carried out in MATLAB - SIMULINK, on the three phase two pole machine. The motor parameters used are listed as follows.

  • \( P_{n} \) = 2.2 kW, \( T_{n} \) = 19 Nm, \( \omega_{mn} \) = 1420 rpm, \( p \) = 2, \( I_{Sn} \) = 7.51 A, \( I_{Rn} \) = 17 A, \( I_{Sxn} \) = 6.8 A, \( I_{Syn} \) = 8.16 A, \( U_{Sn} \) = 400/230 V, \( \psi_{Sn} \) = 0.877 Wb

  • \( R_{S} \) = 1.28 Ω, \( R_{R} \) = 1.52 Ω, \( L_{S} \) = 0.137 H, \( L_{R} \) = 0.137 H, \( L_{m} \) = 0.129H, \( T_{R} \) = 0.09 s

First of all, simulation is developed with nominal stator resistance. The first figure (Fig. 2a) is the estimator stator current components \( i_{S\alpha } \), \( i_{S\beta } \). The error between the estimated and real value is about 0.02. The next figure is rotor flux vector components \( \psi_{R\alpha } ,\psi_{R\beta } \) (Fig. 2b). The figure Fig. 2c is estimated speed compared to reference speed. By using the sigmoid function and gain adaptation, the speed characteristic is very good. The speed difference is about 0.3 rpm.

Fig. 2.
figure 2

Simulation results at nominal stator resistance

The simulation results are repeated respectively on the Fig. 3 when the stator resistance increases 20 percentages. As we can see, the response of the induction motor is the same. The response is different at the first 0.05 s because of stator resistance estimation. The algorithm can work well when the stator increase up to 50 percentages.

Fig. 3.
figure 3

Simulation results when stator resistance increasing 20%

6 Conclusions

A sliding mode control was proposed in this paper. Instead of using a sign function, a kind of sigmoid function is used. This eliminate the chattering problem however it leads error increasing. In this case, the sliding mode gain is larger. One method of choosing gain adaptation to torque is proposed. Moreover, the sliding mode observer was used to estimate the speed of induction motor. With stator resistance estimation, the speed estimator gives good dynamic responses and the estimation of the mechanical speed is good in steady state and also in transient state, even with the presence of torque load and the change of stator resistance.