1 Introduction

Induction motor compared to DC motor has a high power, maximal speed, weak cost and it is robust. The absence of brooms and mechanical collector allows it to be the privileged motor in many domains as in aerospace, in chemistry and medicine where a less frequent maintenance is required. However, these advantages have been inhibited a long time by the complexity of its control. This complexity is due to the following fundamental reasons: the analytic model of the induction motor is nonlinear: the model exhibits multiple variables which are greatly coupled; parameters of the motor are uncertain and their variation in the time needs to be taken into account. Several strategies of sensorless control or with sensors are met in the literature [1,2,3,4,5,6,7,8,9,10,11]. However, they exhibit in one way or another several inconveniences:

  1. (i)

    Except in [6, 7], all the strategies of sensorless control aforementioned are independent of the state of the machine and are based on the standard model that disregards the magnetic saturation phenomenon. They consider a constant rotor flux reference, which quite often is the nominal value situated in principle in the neighborhood of the elbow of the magnetic characteristic of the machine [12, 13]. In such conditions, the efficiency is just maximal when the machine works in the neighborhood of the nominal operating point [14]. However, in the industrial applications, the asynchronous machines perform rarely in the neighborhood of the nominal point [6], particularly when their loads are variable. Thus, when the machine works at weak load torque (operating point below the nominal point), the useless energy consumed by it from one side, and from other side, the useless energy stocked in the inductances of the stator reduce the efficiency of the machine in the regime of saturation, since the inductance value falls considerably in this regime. Also, when the machine is overloaded (operating point above the nominal point), it operates in its nonlinear zone. Therefore, the standard model is no longer representative and the theoretical performances of the control are no longer guaranteed [6, 14] as well as the theoretical performances of the observer. It appears that, the fact to disregard the magnetic saturation phenomenon deeply damages the dynamic performances of the control of the asynchronous machine [15,16,17,18,19]. To increase the efficiency of the machine, it is necessary to optimize the rotor flux reference [20]. To achieve that, we need to readjust the flux reference while also considering the speed reference, and the load would be optimal. For this purpose, we must take absolutely into account the magnetic saturation to enable those fluxes variations to influence the inductances as in the real working of the asynchronous machine.

    In Refs. [6, 7], the authors tempted to consider the magnetic saturation in their study. They used the dynamics of the slower flux instead of the dynamics of faster currents and considered the inductances as constant, what decreases the efficiency of the machine in the saturation regime. The modelling taking into account the magnetic saturation generally relies on the fact that the flux and inductances vary with the magnetization current. Some such models exist in the literature [16, 21,22,23,24]. In the papers [6, 7], a variable flux generation method that allows to optimize the energy consumption is presented for a machine of 7.5 kW. It consists to determine randomly for some chosen values of the electromagnetic torque, the necessary values of the flux to be applied to the machine so that it consumes less energy; and the other intermediate values are evaluated using the look-up table functions (splines). Unfortunately, it is known that these functions generate fluctuating derivatives, which likely hinder their use in the optimization of systems. Besides, with this method, whenever we change the machine, we must first construct its magnetization curve before integrating it in control. That is trial by error method;

  2. (ii)

    These strategies do not give good dynamic performances on very large operating range of the machine: very low speed (critical zone), low speed, high speed with or without load. However, Refs. [1,2,3,4,5] report the tests using high and low speeds range of the machine but based on standard model. The sensorless controller developed in the Ref. [7] is validated solely in high speed and in low speed but not in the critical zone (very low speed);

  3. (iii)

    The quasi-totality of the articles met in the literature uses the classic methods of stability analysis as Lyapunov and Filipov. However, these methods in most cases, do not assure in spite of their global proofs of stability, some optimal convergences and can admit some oscillations close to the domain of convergency. In addition, these classic methods rather determine the ranges of the gains but not the exact values especially when the magnetic saturation is considered. They use trial by error method to find approximate gains. In this regard, their implementation is not easy to perform. On the other hand, in [25, 26], it is demonstrated that the particle swarm optimization (PSO) algorithm is one of the best methods leading to fast convergence with a weak level of complexity.

In spite of the efforts provided in the sensorless control of induction motor, strategies of control proposed in the literature do not always take into account the magnetic saturation. Besides, these strategies of control are functional on a restricted range and are not always optimized in terms of dynamic performances and waste energy.

In the present work, we propose a double optimization (from the point of view of dynamic and energetic performances) of the sensorless vector control of induction motor considering magnetic saturation and using the PSO approach to guarantee the stability and the global convergence. This controller is associated to an interconnected observer of Luenberger type using the dynamics of the currents and the speed. The stochastic algorithm PSO is used notably to determine the optimal gains of the observers as well as the optimal parameters of the regulators. The system considers all the operating ranges of the machine. We get very good dynamic performances, even in the critical zone called “unobservable”. Regarding the energy optimization, the flux reference of the rotor is elaborated dynamically through another algorithm developed which enables to determine in real time, for a given value of speed and load, the optimal flux trajectory of the rotor to be applied to the machine so that it consumes less energy.

2 Mathematical equations of the saturated induction motor

The global structure of the sensorless control strategy presented in Fig. 1 is a combination of an inverter, induction motor, observers, estimators and dynamic generator of rotor flux reference. The inverter is a H-bridge converter operating in accordance to the very well known pulse width modulation (PWM) principle. This inverter consists of six insulated gate bipolar transistor (IGBT) with anti-parallel diodes for bidirectional power flow mode. The achievement of speed regulation, rotor flux optimization and its regulation is only possible if the control design is based on a model that takes into account the magnetic saturation (nonlinear nature of the machine) and using PSO algorithm which allows to ensure stability and convergence.

Fig. 1
figure 1

Global structure of the sensorless control strategy

The electrical state equation of the saturated machine modeled from a 36 kW real machine is presented as follows [23]:

$$ \left[ V \right] = \left[ L \right]\left[ {\mathop I\limits^{ \bullet } } \right] + \left[ R \right]\left[ I \right] $$
(1)

where:

  • \( \left[ I \right] = \left[ {\begin{array}{*{20}c} {i_{ds} } \\ {i_{qs} } \\ {i_{dr} } \\ {i_{qr} } \\ \end{array} } \right] \) is a vector of stator and rotor current of the motor in dq reference;

  • \( \left[ {\mathop I\limits^{ \bullet } } \right] \) is a derivative matrix of stator and rotor current of the motor in dq reference;

  • \( \left[ V \right] = \left[ {\begin{array}{*{20}c} {V_{ds} } \\ {V_{qs} } \\ 0 \\ 0 \\ \end{array} } \right] \) is a vector of stator and short-circuited rotor voltages of the machine;

  • \( \left[ L \right] = \left[ {\begin{array}{*{20}c} {L_{s} } & 0 & M & 0 \\ 0 & {L_{s} } & 0 & M \\ M & 0 & {L_{r} } & 0 \\ 0 & M & 0 & {L_{r} } \\ \end{array} } \right] \) is a matrix of mutual inductance, stator and rotor winding self-inductance;

  • \( \left[ R \right] = \left[ {\begin{array}{*{20}c} {R_{s} } & { - \omega_{s} L_{s} } & 0 & { - \omega_{s} M} \\ {\omega_{s} L_{s} } & {R_{s} } & {\omega_{s} M} & 0 \\ 0 & { - (\omega_{s} - p\varOmega )M} & {R_{r} } & { - (\omega_{s} - p\varOmega )L_{r} } \\ {(\omega_{s} - p\varOmega )M} & 0 & {(\omega_{s} - p\varOmega )L_{r} } & {R_{r} } \\ \end{array} } \right] \) is a combination matrix of resistances and inductances of the machine.

Equation of the electromagnetic torque as well as the dynamics of the speed of the machine are given by:

$$ C_{em} = \frac{3}{2}pM(i_{dr} i_{qs} - i_{qr} i_{ds} ) $$
(2)
$$ \frac{d\varOmega }{dt} = \frac{1}{J}\left( {\frac{3}{2}pM(i_{dr} i_{qs} - i_{qr} i_{ds} ) - C_{r} - f\varOmega } \right) $$
(3)

Components of magnetization currents according to dq axes are:

$$ i_{md} = i_{ds} + i_{dr} $$
(4)
$$ i_{mq} = i_{qs} + i_{qr} $$
(5)

The global magnetization current in the machine is:

$$ i_{m} = \sqrt {i_{md}^{2} + i_{mq}^{2} } $$
(6)

Taking into account the magnetic saturation in the modelling of the asynchronous machine is done considering that the inductances vary as a function of the magnetization current [16, 21,22,23,24] as follows:

$$ L_{s} (i_{m} ) = L_{\sigma s} (i_{m} ) + M(i_{m} ) $$
(7)
$$ L_{r} (i_{m} ) = L_{\sigma r} (i_{m} ) + M(i_{m} ) $$
(8)

Inductances values of the machine considered in this work were determined experimentally, then approximated using polynomial functions [23]. They are given by:

$$ L_{\sigma s} (i_{m} ) = - 2.6e^{ - 9} i_{m}^{3} - 1.8e^{ - 7} i_{m}^{2} - 4.9e^{ - 5} i_{m} + 0.38\,\left[ {\text{mH}} \right] $$
(9)
$$ L_{\sigma r} (i_{m} ) = - 8.7e^{ - 10} i_{m}^{3} - 5.1e^{ - 8} i_{m}^{2} - 1.6e^{ - 5} i_{m} + 0.12\,\left[ {\text{mH}} \right] $$
(10)
$$\begin{aligned} M(i_{m} ) &= 1.2e^{ - 14} i_{m}^{7} - 8.4e^{ - 12} i_{m}^{6} + 2.1e^{ - 9} i_{m}^{5} - 2e^{ - 7} i_{m}^{4}\\ & \quad +6.2e^{ - 6} i_{m}^{3} - 1.7e^{ - 4} i_{m}^{2} + 2.9e^{ - 4} i_{m} + 8.3\,\left[ {\text{mH}} \right]\end{aligned} $$
(11)

3 Synthesis of Luenberger interconnected observers using particle swarm optimization

3.1 Particle swarm optimization algorithm

PSO algorithm [25] is part of the stochastic methods of evolutionary type with fast convergency. Numerous applications of this algorithm in several domains and especially in engineering show its superiority compared to the other stochastic methods like the genetic algorithm, the biogeography and the colony of ants. It is an iterative algorithm. At every step of calculation, values of the individuals are compared according to the objective function fixed, the new guides are then chosen. The flowchart of this algorithm is given in Fig. 2.

Fig. 2
figure 2

Flowchart of the PSO algorithm

The update of the position and the speed of every particle is done by applying the following equations:

$$ \left\{ {\begin{array}{*{20}l} {V_{i + 1} = \gamma_{1} V_{i} + \gamma_{2} (x_{ip} - x_{i} ) + \gamma_{p} (x_{g} - x_{i} )} \hfill \\ {x_{i + 1} = x_{i} + V_{i + 1} } \hfill \\ \end{array} } \right. $$
(12)

where \( \gamma_{1} ,\gamma_{2} ,\gamma_{3} \) ∈ [0,1]. \( x_{ip} ,x_{g} \) are respectively the best position of an ith particle from the first iteration, and the best global position of the swarm.

3.2 Synthesis of interconnected observers

For the saturated induction motor, it is important to decompose the global nonlinear system into two nonlinear subsystems of small sizes in order to simplify the observer’s synthesis.

The first subsystem is then given by:

$$ \left\{ {\begin{array}{*{20}l} {\mathop {X_{1} }\limits^{ \bullet } = A_{1} (u,y,X_{2} )X_{1} + g_{1} \left( {u,y,X_{1} ,\mathop {X_{2} }\limits^{ \bullet } } \right)} \hfill \\ {y_{1} = C_{1} X_{1} } \hfill \\ \end{array} } \right. $$
(13)

with:

$$\begin{aligned} & A_{1} = \left[ {\begin{array}{*{20}c} { - \frac{{R_{s} }}{{L_{s} (i_{m} )}}} & 0 \\ { - \frac{3}{2J}pM(i_{m} )i_{qr} } & { - \frac{f}{J}} \\ \end{array} } \right],\\ & \qquad g_{1} = \left[ {\begin{array}{*{20}c} {\frac{{V_{ds} }}{{L_{s} (i_{m} )}} + \omega_{s} i_{qs} + \frac{{\omega_{s} M(i_{m} )i_{qr} }}{{L_{s} (i_{m} )}} - \frac{{M(i_{m} )}}{{L_{s} (i_{m} )}}\frac{{di_{dr} }}{dt}} \\ {\frac{1}{J}\left( {\frac{3}{2}pM(i_{m} )i_{dr} i_{qs} - C_{r} } \right)} \\ \end{array} } \right],\\ & \qquad C_{1} = \left[ {\begin{array}{*{20}c} 1 & 0 \\ \end{array} } \right]\;\;{\text{and}}\;\;X_{1} = \left[ {\begin{array}{*{20}c} {i_{ds} } \\ \varOmega \\ \end{array} } \right]. \end{aligned}$$

The second subsystem is given by:

$$ \left\{ {\begin{array}{*{20}l} {\mathop {X_{2} }\limits^{ \bullet } = A_{2} (u,y,X_{1} )X_{2} + g_{2} \left( {u,y,X_{1} ,\mathop X\limits^{ \bullet }_{1} ,\mathop {X_{2} }\limits^{ \bullet } } \right)} \hfill \\ {y_{2} = C_{2} X_{2} } \hfill \\ \end{array} } \right. $$
(14)

with

$$\begin{aligned} & A_{2} = \left[ {\begin{array}{*{20}c} {\frac{{R_{s} }}{{L_{s} (i_{m} )}}} & { - \frac{{\omega_{s} M(i_{m} )}}{{L_{s} (i_{m} )}}} & 0 \\ {(\omega_{s} - p\varOmega )\frac{{M(i_{m} )}}{{L_{r} (i_{m} )}}} & { - \frac{{R_{r} }}{{L_{r} (i_{m} )}}} & {(\omega_{s} - p\varOmega )} \\ 0 & { - (\omega_{s} - p\varOmega )} & { - \frac{{R_{r} }}{{L_{r} (i_{m} )}}} \\ \end{array} } \right],\\ & \qquad g_{2} = \left[ {\begin{array}{*{20}c} {\frac{{V_{qs} }}{{L_{s} (i_{m} )}} - \omega_{s} i_{ds} - \frac{{M(i_{m} )}}{{L_{s} (i_{m} )}}\frac{{di_{qr} }}{dt}} \\ { - \frac{{M(i_{m} )}}{{L_{r} (i_{m} )}}\frac{{di_{ds} }}{dt}} \\ { - (\omega_{s} - p\varOmega )\frac{{M(i_{m} )}}{{L_{s} (i_{m} )}}i_{ds} - \frac{{M(i_{m} )}}{{L_{r} (i_{m} )}}\frac{{di_{qs} }}{dt}} \\ \end{array} } \right],\\ & \qquad C_{2} = \left[ {\begin{array}{*{20}c} 1 & 0 & 0 \\ \end{array} } \right]\;{\text{and}}\;X_{2} = \left[ {\begin{array}{*{20}c} {i_{qs} } \\ {i_{dr} } \\ {i_{qr} } \\ \end{array} } \right]. \end{aligned}$$

Based on the two aforementioned subsystems, the states to be observed are therefore the rotor currents and the speed of the machine. The choice of these states justifies itself by the fact that the inductive parameters and the magnetic states (fluxes) depend exclusively of the magnetization current when one takes into account of the magnetic saturation. The use of the dynamics of the currents is therefore logically more convenient for the synthesis of observers when the magnetic saturation is considered. The structure of the interconnected observer is presented in Fig. 3.

Fig. 3
figure 3

Structure of the interconnected observer

The observers of subsystems (13) and (14) are thus given by:

$$ \left\{ {\begin{array}{*{20}l} {\mathop {Z_{1} }\limits^{ \bullet } = B_{1} (u,y,Z_{2} )Z_{1} + h_{1} \left( {u,y,Z_{1} ,\mathop {Z_{2} }\limits^{ \bullet } } \right) + \left[ G \right](y_{1} - \widehat{{y_{1} }})} \hfill \\ {\widehat{y}_{1} = C_{1} Z_{1} } \hfill \\ \end{array} } \right. $$
(15)
$$ \left\{ {\begin{array}{*{20}l} {\mathop {Z_{2} }\limits^{ \bullet } = B_{2} (u,y,Z_{1} )Z_{2} + h_{2} \left( {u,y,Z_{1} ,\mathop {Z_{1} }\limits^{ \bullet } ,\mathop {Z_{2} }\limits^{ \bullet } } \right) + \left[ K \right](y_{2} - \widehat{{y_{2} }})} \hfill \\ {\widehat{y}_{2} = C_{2} Z_{2} } \hfill \\ \end{array} } \right. $$
(16)

with:

$$\begin{aligned} & Z_{1} = \left[ {\begin{array}{*{20}c} {\widehat{i}_{ds} } \\ {\widehat{\varOmega }} \\ \end{array} } \right],\quad Z_{2} = \left[ {\begin{array}{*{20}c} {\widehat{i}_{qs} } \\ {\widehat{i}_{dr} } \\ {\widehat{i}_{qr} } \\ \end{array} } \right],\\ & \qquad \left[ G \right] = \left[ {\begin{array}{*{20}c} {G_{1} } \\ {G_{2} } \\ \end{array} } \right]\;\;{\text{and}}\;\;\left[ K \right] = \left[ {\begin{array}{*{20}c} {K_{1} } \\ {K_{2} } \\ {K_{3} } \\ \end{array} } \right]. \end{aligned}$$

The other matrices are given by:

$$ \begin{aligned} & B_{1} = \left[ {\begin{array}{*{20}c} { - \frac{{R_{s} }}{{\widehat{L}_{s} (i_{m} )}}} & 0 \\ { - \frac{3}{2J}p\widehat{M}(i_{m} )\widehat{i}_{qr} } & { - \frac{f}{J}} \\ \end{array} } \right],\\ & \qquad h_{1} = \left[ {\begin{array}{*{20}c} {\frac{{V_{ds} }}{{\widehat{L}_{s} (i_{m} )}} + \omega_{s} \widehat{i}_{qs} + \frac{{\omega_{s} \widehat{M}(i_{m} )\widehat{i}_{qr} }}{{\widehat{L}_{s} (i_{m} )}} - \frac{{\widehat{M}(i_{m} )}}{{\widehat{L}_{s} (i_{m} )}}\frac{{d\widehat{i}_{dr} }}{dt}} \\ {\frac{1}{J}\left( {\frac{3}{2}p\widehat{M}(i_{m} )\widehat{i}_{dr} \widehat{i}_{qs} - C_{r} } \right)} \\ \end{array} } \right] \\ & B_{2} = \left[ {\begin{array}{*{20}c} {\frac{{R_{s} }}{{\widehat{L}_{s} (i_{m} )}}} & { - \frac{{\omega_{s} \widehat{M}(i_{m} )}}{{\widehat{L}_{s} (i_{m} )}}} & 0 \\ {(\omega_{s} - p\widehat{\varOmega })\frac{{\widehat{M}(i_{m} )}}{{\widehat{L}_{r} (i_{m} )}}} & { - \frac{{R_{r} }}{{\widehat{L}_{r} (i_{m} )}}} & {(\omega_{s} - p\widehat{\varOmega })} \\ 0 & { - (\omega_{s} - p\widehat{\varOmega })} & { - \frac{{R_{r} }}{{\widehat{L}_{r} (i_{m} )}}} \\ \end{array} } \right]\\ & \qquad\;\;{\text{and}}\;\;h_{2} = \left[ {\begin{array}{*{20}c} {\frac{{V_{qs} }}{{\widehat{L}_{s} (i_{m} )}} - \omega_{s} \widehat{i}_{ds} - \frac{{\widehat{M}(i_{m} )}}{{\widehat{L}_{s} (i_{m} )}}\frac{{d\widehat{i}_{qr} }}{dt}} \\ { - \frac{{\widehat{M}(i_{m} )}}{{\widehat{L}_{r} (i_{m} )}}\frac{{d\widehat{i}_{ds} }}{dt}} \\ { - (\omega_{s} - p\widehat{\varOmega })\frac{{\widehat{M}(i_{m} )}}{{\widehat{L}_{s} (i_{m} )}}\widehat{i}_{ds} - \frac{{\widehat{M}(i_{m} )}}{{\widehat{L}_{r} (i_{m} )}}\frac{{d\widehat{i}_{qs} }}{dt}} \\ \end{array} } \right]. \\ \end{aligned} $$

The matrices of errors of the two interconnected observers are defined as:

$$ \left[ {e_{1} } \right] = X_{1} - Z_{1} = \left[ {\begin{array}{*{20}c} {i_{ds} - \widehat{i}_{ds} } \\ {\varOmega - \widehat{\varOmega }} \\ \end{array} } \right] $$
(17)
$$ \left[ {e_{2} } \right] = X_{2} - Z_{2} = \left[ {\begin{array}{*{20}c} {i_{qs} - \widehat{i}_{qs} } \\ {i_{dr} - \widehat{i}_{dr} } \\ {i_{qr} - \widehat{i}_{qr} } \\ \end{array} } \right] $$
(18)

Thus, the dynamics of the matrices of observation errors are:

$$ \left[ {\mathop {e_{1} }\limits^{ \bullet } }\right] = {\mathop {X_{1} }\limits^{ \bullet } } - {\mathop {Z_{1} }\limits^{ \bullet } } $$
(19)
$$ \left[ {\mathop {e_{2} }\limits^{ \bullet } }\right] = {\mathop {X_{2} }\limits^{ \bullet } } - {\mathop {Z_{2} }\limits^{ \bullet } } $$
(20)

Replacing the dynamics of the real states and observed by their values, we get:

$$ \left[ {\mathop {e_{1} }\limits^{ \bullet } } \right] = (B_{1} - \left[ G \right]C_{1} )\left[ {e_{1} } \right] + (g_{1} - h_{1} ) + (A_{1} - B_{1} )X_{1} $$
(21)
$$ \left[ {\mathop {e_{2} }\limits^{ \bullet } } \right] = (B_{2} - \left[ K \right]C_{2} )\left[ {e_{2} } \right] + (g_{2} - h_{2} ) + (A_{2} - B_{2} )X_{2} $$
(22)

We determine the matrices of the gains [G] and [K] capable to ensure the stability and the global convergence of the observation errors to zero by the PSO algorithm. The interconnected observers have a total of five states. We defined consequently five objectives functions where each considered objective function is the minimization of the integral of absolute error given by the following relation:

$$ J_{ITAE} = \int\limits_{0}^{{t_{simul} }} {\left| {e_{s} } \right|dt} $$
(23)

where tsimul is the time of simulation and \( e_{s} \) the error between measurable and observed states.

In order to avoid the use of multi-objectives optimization technique, we only use one objective function defined by the following relation:

$$ J = \sum\limits_{i = 1}^{5} {\alpha_{i} J_{i} } $$
(24)
$$ \alpha_{1} + \alpha_{2} + \alpha_{3} + \alpha_{4} + \alpha_{5} = 1 $$
(25)

The PSO algorithm therefore enables us to determine iteration by iteration the values of the gains \( G_{1} ,G_{2} ,K_{1} ,K_{2} ,K_{3} \).

When the algorithm is applied, we notice its fast convergency and a weak variation of the objective function from a certain iteration. This objective function of the observer’s gains which allows the convergence and the stability of the method is presented in Fig. 4.

Fig. 4
figure 4

Objective function of the observer’s gains

Rotor flux and electromagnetic torque of the machine depending of observed currents are then estimated by the following equations:

$$ {\widehat{{\varphi }}}_{dr} = {L}_{r} (i_{m} )\widehat{i}_{dr} + {M}(i_{m} )\widehat{i}_{ds} $$
(26)
$$ {\widehat{{\varphi }}}_{qr} = {L}_{r} (i_{m} )\widehat{i}_{qr} + {M}(i_{m} )\widehat{i}_{qs} $$
(27)
$$ {\widehat{C}}_{em} = \frac{3}{2}p{M}(i_{m} )(\widehat{i}_{dr} \widehat{i}_{qs} - \widehat{i}_{qr} \widehat{i}_{ds} ) $$
(28)

4 Field oriented control of the saturated induction motor associated to the Luenberger type observer

We present below the electric and magnetic equations of the induction motor in the Park referential:

$$ \left\{ {\begin{array}{*{20}l} {V_{ds} = R_{s} i_{ds} - \omega_{s} \varphi_{qs} + \frac{{d\varphi_{qs} }}{dt}} \hfill \\ {V_{qs} = R_{s} i_{qs} + \omega_{s} \varphi_{ds} + \frac{{d\varphi_{qs} }}{dt}} \hfill \\ {0 = R_{r} i_{dr} - (\omega_{s} - p\varOmega )\varphi_{qr} + \frac{{d\varphi_{dr} }}{dt}} \hfill \\ {0 = R_{r} i_{qr} - (\omega_{s} - p\varOmega )\varphi_{dr} + \frac{{d\varphi_{qr} }}{dt}} \hfill \\ \end{array} } \right. $$
(29)
$$ \left\{ {\begin{array}{*{20}l} {\varphi_{ds} = L_{s} (i_{m} )i_{ds} + M(i_{m} )i_{dr} } \hfill \\ {\varphi_{qs} = L_{s} (i_{m} )i_{qs} + M(i_{m} )i_{qr} } \hfill \\ {\varphi_{dr} = L_{r} (i_{m} )i_{dr} + M(i_{m} )i_{ds} } \hfill \\ {\varphi_{qr} = L_{r} (i_{m} )i_{qr} + M(i_{m} )i_{qs} } \hfill \\ \end{array} } \right. $$
(30)

4.1 The proposed trajectory dynamic generation algorithm of the optimal rotor flux

Induction motors are usually designed to have maximum efficiency at their nominal operating point. However, they often operate at some fluxes different to their nominal values. In these cases, the significant energy saving is really a major gain. Therefore, the rotor flux value should be readjusted, through an algorithm for each given load and speed of the motor.

The electromagnetic torque with orientation of the rotor flux in the machine is given by the relation:

$$ C_{em} = \frac{3}{2}p\frac{{M(i_{m} )}}{{L_{r} (i_{m} )}}\varphi_{r} i_{qs} = J\frac{d\varOmega }{dt} + f\varOmega + Cr $$
(31)
$$ i_{qs} = \sqrt {I_{s}^{2} - i_{ds}^{2} } $$
(32)

In the steady state, the stator current according to the direct axis becomes:

$$ i_{ds} = \frac{{\varphi_{r} }}{{M(i_{m} )}} $$
(33)

The module of the stator current considering Eqs. (31), (32) and (33) is:

$$ I_{s} = \sqrt {\frac{{C_{em}^{2} }}{{\left( {1.5p\frac{{M(i_{m} )}}{{L_{r} (i_{m} )}}\varphi_{r} } \right)^{2} }} + \left( {\frac{{\varphi_{r} }}{{M(i_{m} )}}} \right)^{2} } $$
(34)

For each given value of speed and the motor load, the reference of electromagnetic torque is evaluated from Eq. (31). For this value of electromagnetic torque, there are several combinations of the operating points (\( \varphi_{ri\,} \), \( I_{si\,} \)). From the energetic point of view, only one couple (\( \varphi_{r\,} \),\( I_{s\,} \)) implies the lowest stator current. To find the best operating point, the flux \( \varphi_{r\,} \) is incremented from 0 to 1.4 with a step of 0.01 to calculate the stator current value from Eq. (34). Then the lowest stator current value (optimal current) as well as its index are memorized. The optimal rotor flux corresponding to the index of the optimal current previously memorized is recovered. Thus, the best operating point (rotor flux) that consumes a weak stator current is evaluated and, in that way an optimal flux trajectory is dynamically generated and in real time.

4.2 Decoupling

According to the two first lines of Eq. (1), the dq voltages are given by the following relations:

$$\begin{aligned} & V_{ds} = R_{s} i_{ds} + L_{s} (i_{m} )\frac{{di_{ds} }}{dt} - \omega_{s} L_{s} (i_{m} )i_{qs}\\ & \qquad\qquad - \omega_{s} M(i_{m} )i_{qr} + M(i_{m} )\frac{{di_{dr} }}{dt}\end{aligned} $$
(35)
$$\begin{aligned} & V_{qs} = R_{s} i_{qs} + L_{s} (i_{m} )\frac{{di_{qs} }}{dt} + \omega_{s} L_{s} (i_{m} )i_{ds} \\ & \qquad\qquad + \omega_{s} M(i_{m} )i_{dr} + M(i_{m} )\frac{{di_{qr} }}{dt}\end{aligned} $$
(36)

We define two new variables of control \( V_{ds1} \) and \( V_{qs1} \) as:

$$ V_{ds} = V_{ds1} - e_{d} $$
(37)
$$ V_{qs} = V_{qs1} - e_{q} $$
(38)
$$ V_{qs1} = R_{s} i_{qs} + L_{s} (i_{m} )\frac{{di_{qs} }}{dt} $$
(39)
$$ V_{ds1} = R_{s} i_{ds} + L_{s} (i_{m} )\frac{{di_{ds} }}{dt} $$
(40)
$$ \varOmega = \frac{1}{JS + f}(C_{em} - C_{r} ) $$
(41)
$$ e_{d} = \omega_{s} L_{s} (i_{m} )i_{qs} + \omega_{s} M(i_{m} )i_{qr} - M(i_{m} )\frac{{di_{dr} }}{dt} $$
(42)
$$ e_{q} = - \omega_{s} L_{s} (i_{m} )i_{ds} - \omega_{s} M(i_{m} )i_{dr} - M(i_{m} )\frac{{di_{qr} }}{dt} $$
(43)

From the Eqs. (29) and (30), we determine the Eq. (44):

$$ \omega_{s} = p\varOmega + \omega_{REF} $$
(44)

\( \omega_{REF} \) represents the value of the relative speed of reference, and it is defined as:

$$ \omega_{REF} = \frac{{R_{r} M(i_{m} )}}{{L_{r} (i_{m} )\varphi_{r} }}i_{qs} $$
(45)

The oriented flux in the machine according to the Eqs. (29) and (30) is:

$$ \varphi_{r} = \frac{{M(i_{m} )}}{{1 + T_{r} S}}i_{ds} $$
(46)

where \( T_{r} \) is the constant time of the rotor and S the Laplace’s operator.

$$ C_{em} = \frac{3}{2}p\frac{{M(i_{m} )}}{{L_{r} (i_{m} )}}\varphi_{r} i_{qs} $$
(47)

From the new system exploited at the time of decoupling, we have:

$$ i_{ds} = \frac{1}{{R_{s} + SL_{s} (i_{m} )}}V_{ds1} $$
(48)
$$ i_{qs} = \frac{1}{{R_{s} + SL_{s} (i_{m} )}}V_{qs1} $$
(49)

And therefore:

$$ \varphi_{r} = \frac{{M(i_{m} )}}{{(1 + T_{r} S)}}\frac{1}{{(R_{s} + SL_{s} (i_{m} ))}}V_{ds1} $$
(50)
$$ C_{em} = \frac{3}{2}p\frac{{M(i_{m} )}}{{L_{r} (i_{m} )}}\varphi_{r} \frac{1}{{(R_{s} + SL_{s} (i_{m} ))}}V_{qs1} $$
(51)
$$ \varOmega = \frac{1}{JS + f}(C_{em} - C_{r} ) $$
(52)

4.3 Synthesis of different regulators

The optimization of PI regulators is also done by PSO algorithm. Here, three objectives functions are defined: the minimization of the integral of the absolute error of speed, torque and flux. The formulation of only one objective function as presented in the case of the observers is done. The optimization algorithm determines the good values of Kp and Ki that minimises the global criteria J.

The different regulators considering the Eqs. (50)–(52) are presented therefore by Fig. 5 and the objective function determined by the algorithm is given in Fig. 6. It shows the convergence and the stability of the method.

Fig. 5
figure 5

Diagram of PI/PSO regulators and reconstitution of dq voltages

Fig. 6
figure 6

Objectve function of PI regulators

5 Results of numerical simulations and discussion

The induction motor with sensorless controlled is simulated in the matlab/simulink environment using the electromechanical characteristics of a real-life machine found in [23]. It is a 36 kW induction machine whose magnetic characteristic is considered. The references of the speed and load take into account all trajectories that allow to analyze and illustrate the dynamic performances of the sensorless controller. The initial values of the mechanical speed and the load are maintained to 0 to allow the flux to settle in the machine.

At t = 0.75 s, the speed of the machine is carried to 20 rad/s and remains constant until 5 s. A load torque (Fig. 7) to three different levels is applied between 1 and 4.5 s. This first phase permits to test and to value the dynamic performances of the sensorless control in low speed with load. The machine is then accelerated until a high speed (100 rad/s). Then between t = 6.5 s and 9.5 s, three increasing level loads are applied again. The objective of this second phase is to test the performances of the sensorless control during a big transient of speed and in high speed with load. Then, the machine is slow down quickly to reach at t = 12 s, a negative weak speed (− 1 rad/s) that will remain constant until t = 15 s with load. This phase permits to show the performance of the sensorless induction motor in the critical zone so-called “unobservable”. Finally, the trajectories bring the machine in the low speed zone.

Fig. 7
figure 7

Load torque reference

Figure 8, generated dynamically using the developed algorithm for each given value of speed and load, shows the trajectory of the optimal flux allowing us to optimize the energy of the machine.

Fig. 8
figure 8

Optimal rotor flux dynamically generated

Figures 9 and 10 show the results of simulation in the case of the nominal resistances. We can notice some good dynamic performances in terms of tracking trajectory and disturbance rejection. In terms of tracking trajectory, the observed speed converges correctly towards its reference (speed, precision and stability) even in the critical zone. There is the same conclusion in the tracking of the flux. In terms of disturbance rejection, we can notice in Fig. 9 that the torque is very rejected in high speed, in low speed and in very low speed (critical zone).

Fig. 9
figure 9

Speed reference and observed

Fig. 10
figure 10

Rotor flux reference and estimated

Figure 11 shows the module of the stator absorbed current for a variable flux and Fig. 12 shows the case of stationary flux (0.4 Wbs). In all operating condition, the sensorless control with variable flux reference (magnetic saturation) absorbs a weaker current. This difference is more meaningfull with a weak load.

Fig. 11
figure 11

Stator module current for variable flux

Fig. 12
figure 12

Stator module current for constant flux

Figures 13, 14 and 15 show inductances and their estimated values. We observe a very dynamic convergence under the variation of load torque, speed and flux.

Fig. 13
figure 13

Stator winding self-inductance

Fig. 14
figure 14

Rotor winding self-inductance

Fig. 15
figure 15

Mutual inductance

Comparing the proposed method regulator to the conventional PI method, it appears below that the PSO algorithm can be used to optimize the gains of a PI controller. Indeed, by using PSO algorithm, we ensure the global proof of stability, optimal convergence and we do not have some oscillations close to the domain of convergency; in spite of taking into account the magnetic saturation effects in this work. The conventional PI method regulator also use Lyapunov technique, which is heavy in terms of calculations. The Lyapunov technique determines only the range of gains values and uses trial by error technique to find approximate gains; in spite of the proof of stability while using this technique, the control generally presents some oscillations near the domain of convergency.

5.1 Analysis of the robustness

The robustness tests are done through the resistance variations on the observers and the controller. The inductances vary already according to the level of saturation. In this purpose, Figs. 16, 17, 18 and 19 show the results respectively for a variation of − 50% and + 50% on the nominal value of stator resistance. Figures 20, 21, 22 and 23 show the results respectively for a variation of − 50% and + 50% on the nominal value of rotor resistance. For all these variations, one can notice an unsensitivity of the speed. However, flux are weakly sensitive. One can tell that globally, the results are identical to those got with the nominal values.

Fig. 16
figure 16

Speed robustness at − 50% on Rs

Fig. 17
figure 17

Flux robustness at − 50% on Rs

Fig. 18
figure 18

Speed robustness at + 50% on Rs

Fig. 19
figure 19

Flux robustness at + 50% on Rs

Fig. 20
figure 20

Speed robustness at − 50% on Rr

Fig. 21
figure 21

Flux robustness at − 50% on Rr

Fig. 22
figure 22

Speed robustness at + 50% on Rr

Fig. 23
figure 23

Flux robustness at + 50% on Rr

The Simulink blocks for all the simulation are presented in Figs. 24, 25 and 26. In Fig. 25, voltages Vs1, Vs2, Vs3 and currents is1, is2, is3 are achieved from three phase induction motor model easily implemented.

Fig. 24
figure 24

Simulink model of the inverter used

Fig. 25
figure 25

Simulink model of interconnected observers and estimators

Fig. 26
figure 26

Simulink model of sensorless control

6 Conclusion

In this article, we proposed a double optimization of the sensorless field-oriented control of induction motor taking into account of the magnetic saturation. We optimized the dynamic performances of an induction motor by using an interconnected Luenberger observers and stochastic algorithm PSO to determine the optimal gains of the observers as well as the optimal parameters of the regulators. The obtained results show some good dynamic performances in terms of tracking trajectory and disturbance rejection, global stability and convergence of the system. Regarding the energy optimization, the flux reference is dynamically generated by a proposed algorithm for each given load torque and speed. The results showed that all operating range of the machine namely critical zone, low speed, high speed with or without load are taken into account. Very good dynamic performances even in the critical zone is also gotten, showing the efficiency of the used approach. In the forthcoming paper, we plan to experimentally realise the proposed control scheme.