Keywords

1 Introduction

The doubly fed induction machine (DFIM) is a wound rotor asynchronous machine; this form of drive is widely used in many industrial plants, for example pumps, compressors and fans. The DFIM has some distinct advantages over the conventional squirrel-cage machine. The DFIM can be fed and controlled from either or both the stator and the rotor windings. Sub and super-synchronous speeds are possible and the system can be used in generator or motor operation like a DC motor (Morel et al. 1998). In motor operation, two solutions are possible, namely: the machine can be supplied by one converter (at the rotor) or by two converters (one at the stator and one at the rotor). The advantage of the first solution is that the power electronic equipment only has to handle a fraction (~30 %) of the total system power. This allows the minimizing of converter size and therefore a decreased price of the whole system (Morel et al. 1998). However, the disadvantage in terms of cost of the second solution can be compensated by the best control performances of the powered systems (Brown et al. 1992). In the DFI-Motor operation, the inherent instability due of the double feeding requires a performing control to achieve a good stability and to obtain a high dynamic behavior. Different strategies were proposed in the literature to solve the DFI-Motor control problem. Most of the control strategies are established on the vector control based on the flux orientation that offers the decoupled control of the active and reactive powers (Bogalecka and Kzeminski 1993; Drid et al. 2005; Hopfensperger et al. 2000; Leonhard 1997; Morel et al. 1998; Peresada et al. 2003, 1999; Wang and Ding 1993). Therefore, most of the reported control approaches are based on exact knowledge of the DFI-Motor nonlinear model. Then, the control performance of the DFI-Motor is still influenced by the uncertainties, such as parameter variations, external disturbance and unmodeled dynamics, etc.

In electric motor drives and motion control, the fuzzy controller is considered as a promising alternative for conventional control methods in the control of complex nonlinear plants (Ghamri et al. 2007). The fuzzy controller is applied to static power converters, DC and induction motors. It has been reported that fuzzy controllers are more robust to system parameter changes and have better disturbance rejection. The main advantage of fuzzy control as compared to conventional control resides in the fact that no mathematical model of the plant is required and the human experience can be implanted in the controller as fuzzy rules. However, classical fuzzy controllers (i.e. the non-adaptive fuzzy controllers) can not adapt themselves to changes in their environment or in operating conditions. Then, it is necessary to add some form of adaptation that updates the controller parameters in order to maintain and improve the control performance in wide range of changing conditions Lee (1990); Li and Lau (1989). Using fuzzy systems for approximating of the nonlinear uncertain functions, adaptive fuzzy controllers for inductions motors (IM) have been developed in Agamy et al. (2004), Lin et al. (2002), Youcef and Wahba (2009).

Therefore, the motivation of this chapter is the design of a nonlinear controller for DFI-Motor drives which guarantees speed tracking and reactive power regulation at stator side. The DFI-Motor configuration taken in this work uses one converter in the rotor and the stator is directly connected to the line grid. Our approach is based on the decomposition of the machine model in two coupled subsystems; the stator flux and the speed-rotor flux subsystems. First, the stator voltage vector oriented reference frame is adopted, and the stator reactive power regulation purpose is converted into a stator flux regulation problem. In fact, the time varying stator flux vector is required to be orthogonal to line voltage. In fact, the d-axis component of rotor flux appears as the control input for the stator flux subsystem. Then, with an appropriate choice of the stator flux reference and a strict control of d-axis component of rotor flux to a suitable value, the stator flux error dynamics become linear and exponentially stable independently of the speed dynamics. Consequently, the DFI-Motor stator unity power factor control and the speed tracking problems are converted into a rotor flux control problem. The controller design is based on combination of sliding-mode control, fuzzy control and adaptive backstepping control approaches. The adaptive fuzzy systems are used to reasonably approximate the unknown nonlinear functions appearing in the DFI-Motor model and the tracking errors dynamics and the uncertainties. While, the sliding-mode control is used to effectively compensate for the unavoidable fuzzy approximation error. The adaptive laws, which are used to estimate on-line the load torque and the fuzzy parameters, are derived in the sense of Lyapunov stability theorem. Briefly, the nonlinear control approach described in this paper has the following important advantages:

  • The motor-generated torque becomes linear with respect to system control states.

  • The rotor flux can be easily regulated in order to increase the machine efficiency.

  • The system robustness can be achieved against the uncertain parameters of DFI-Motor (rotor resistance, stator resistance), perturbations (i.e. the unknown load torque), functional uncertainties, etc.

  • The controller design does not strongly depend on the model of DFI-Motor.

Moreover, to the authors’ best knowledge, there is no result reported in the literature on the fuzzy adaptive control design for doubly-fed induction machine. It is worth noting that the design of the adaptive control based on state-all flux model, for a DFI-Motor controlled by acting on the rotor winding and with a stator which is directly connected to the grid, is very challenge.

This chapter is organized as follows: Section 2 introduces the state-all-flux DFI-Motor model. In Sect. 3, the DFI-Motor control problem is presented. In Sect. 4, the fuzzy logic system used for approximating the unknown nonlinear function is described. In Sect. 5, the proposed fuzzy adaptive backstepping controller (FABC) is presented. In Sect. 6, the effectiveness of our FABC for a DFI-Motor is demonstrated via some simulations results. Conclusions are drawn in Sect. 7.

2 The DFI-Motor Model

The Concordia and Park transformation’s application to the traditional abc DFI-Motor model allows to write a dynamic model in a d-q synchronous reference frame as follows

$$ \begin{array}{*{20}c} {\frac{{d\varphi_{sd} }}{dt} = - \frac{{R_{s} }}{{L_{s} \sigma }}\varphi_{sd} + \frac{{R_{s} M}}{{L_{s} L_{r} \sigma }}\varphi_{rd} + \omega_{s} \varphi_{sq} + u_{sd} } \\ {\frac{{d\varphi_{sq} }}{dt} = - \frac{{R_{s} }}{{L_{s} \sigma }}\varphi_{sq} + \frac{{R_{s} M}}{{L_{s} L_{r} \sigma }}\varphi_{rq} - \omega_{s} \varphi_{sd} + u_{sq} } \\ {\frac{{d\varphi_{rd} }}{dt} = - \frac{{R_{r} }}{{L_{r} \sigma }}\varphi_{rd} + \frac{{R_{r} M}}{{L_{s} L_{r} \sigma }}\varphi_{sd} + \omega_{r} \varphi_{rq} + u_{rd} } \\ {\frac{{d\varphi_{rq} }}{dt} = - \frac{{R_{r} }}{{L_{r} \sigma }}\varphi_{rq} + \frac{{R_{r} M}}{{L_{s} L_{r} \sigma }}\varphi_{sq} - \omega_{r} \varphi_{rd} + u_{rq} } \\ \end{array} $$
(1)

Stator and rotor flux equations are

$$ \begin{array}{*{20}c} {\varphi_{sd} = L_{s} i_{sd} + M{\kern 1pt} i_{rd} } \\ {\varphi_{sq} = L_{s} i_{sq} + M{\kern 1pt} i_{rq} } \\ {\varphi_{rd} = L_{r} i_{rd} + M{\kern 1pt} i_{sd} } \\ {\varphi_{rq} = L_{r} i_{rq} + M{\kern 1pt} i_{sq} } \\ \end{array} $$
(2)

The mechanical equation is given by

$$ J\frac{{d\Omega }}{dt} =\Gamma _{e} -\Gamma _{l} - k_{f}\Omega $$
(3)

The electromagnetic torque is given by

$$ \Gamma _{e} = \frac{{p{\kern 1pt} M}}{{L_{s} L_{r} \sigma }}{\kern 1pt} \left( {\varphi_{sq} \varphi_{rd} - \varphi_{sd} \varphi_{rq} } \right) $$
(4)

where

s, r :

Rotor and stator indices

d, q :

Synchronous reference frame

α, β :

Stationary reference frame

R, L, M :

Resistance, inductance and mutual in ductance

u, i, φ :

Voltage, current and flux

\( \theta_{s} ,\theta_{r} \) :

Stator and rotor electrical angles

\( \theta ,\Omega \) :

Rotor mechanical position and speed

\( \omega_{s} = \frac{{d\theta_{s} }}{dt},\,\omega_{r} = \frac{{d\theta_{r} }}{dt},\,\omega = \frac{d\theta }{dt} \) :

Electrical frequencies of stator, rotor and shaft

\( \Gamma _{l} ,\Gamma _{e} \) :

Load and electromagnetic torque

J, p :

Inertia, number of pole pairs

σ = 1−(M2/L s L r ):

Leakage coefficient

In a DFI-Motor, the combined effect of the stator and rotor currents produces a fundamental flux that is sinusoidally distributed around the air gap and that rotates at frequency proportional to the stator supply frequency. For all speed ranges the stator and the rotor angular frequencies are related to the shaft mechanical speed by \( \omega_{s} = \omega_{r} + \omega \).

Expressions of stator and rotor active and reactive powers are respectively given by

$$ \begin{aligned} P_{s} & = u_{sd} i_{sd} + u_{sq} {\kern 1pt} i_{sq} \\ Q_{s} & = u_{sq} i_{sd} + u_{sd} {\kern 1pt} i_{sq} \\ P_{r} & = u_{rd} i_{rd} + u_{rq} {\kern 1pt} i_{rq} \\ Q_{r} & = u_{rq} i_{rd} + u_{rd} {\kern 1pt} i_{rq} \\ \end{aligned} $$
(5)

In the following section, the control objective of the DFI-Motor will be discussed.

3 DFI-Motor Control Objective

First, we suppose that the stator flux vector is aligned with d-axis as shown in Fig. 1. In the stationary frame abc, the component n of the stator voltage equation is given by

$$ u_{sn} = R_{s} i_{sn} + \frac{{d\varphi_{sn} }}{dt} $$
(6)
Fig. 1
figure 1

Reference frames and angles for DFI-Motor

By neglecting the stator resistance (Hopfensperger et al. 2000), (6) can be written as

$$ u_{sn} \approx \frac{{d\varphi_{sn} }}{dt} $$
(7)

This equation demonstrates that the stator voltage vector is \( \frac{\pi }{2} \) in advance of the stator flux. Then, in the chosen reference frame, we can write

$$ \begin{aligned} u_{sd} & = 0 \\ u_{sq} & = u_{s} {\kern 1pt} \\ \end{aligned} $$
(8)

The stator is directly connected to the grid, then, the stator electrical angle \( \theta_{s} \) is calculated only with the grid voltage.

$$ \theta_{s} = \theta_{1} - \frac{\pi }{2} $$
(9)

where \( \theta_{1} = \arctan \left( {{{u_{s\beta } } \mathord{\left/ {\vphantom {{u_{s\beta } } {u_{s\alpha } }}} \right. \kern-0pt} {u_{s\alpha } }}} \right) \) is the stator voltage vector angle in the stationary reference frame abc as shown in Fig. 1.

Our control objective is the design of a controller for the DFI-Motor which ensures reactive power regulation at stator side and speed tracking reference with unknown load torque. It will be demonstrated that the stator-side reactive power regulation problem can be formalized as the requirement to guarantee that the line voltage vector and the stator flux vector are orthogonal.

Considering the stator equations expressed in terms of stator fluxes and currents in the line voltage reference frame

$$ \begin{aligned} \dot{\varphi }_{sd} & = - R_{s} i_{sd} + \omega_{s} \varphi_{sq} \\ \dot{\varphi }_{sq} & = - R_{s} i_{sq} - \omega_{s} \varphi_{sd} + u_{s} \\ \end{aligned} $$
(10)

From the second equation of (5), the unity power factor objective is equivalent to \( i_{sd} = 0 \). In steady-state condition, all the derivatives are zero. According to the first equation of (10), \( \varphi_{sq} = 0 \) is necessary to ensure \( i_{sd} = 0 \). Then, the stator-side unity power factor control is reformulated as a stator flux orientation control objective (the stator flux vector is required to be orthogonal to line voltage vector).

In the following section, the fuzzy logic system used to approximate the uncertain functions will be described in detail.

4 Description of the Fuzzy Logic System

The basic configuration of a fuzzy logic system consists of a fuzzifier, some fuzzy IF-THEN rules, a fuzzy inference engine and a defuzzifier, as shown in Fig. 2. The fuzzy inference engine uses the fuzzy IF-THEN rules to perform a mapping from an input vector \( x^{T} = [x_{1} ,x_{2} , \ldots ,x_{n} ] \in R^{n} \) to an output \( \hat{f} \, \in \, R \). The ith fuzzy rule is written as

$$ R^{(i)}:{\text{ if }}x_{1} {\text{ is }}A_{1}^{i} {\text{ and}}\, \ldots \,{\text{and }}x_{n} {\text{ is }}A_{n}^{i} {\text{ then }}\hat{f}{\text{ is }}f^{i} $$
(11)

where \( A_{1}^{i} , \, A_{2}^{i} ,\, \ldots ,{\text{ and }}A_{n}^{i} \) are fuzzy sets and \( f^{i} \) is the fuzzy singleton for the output in the ith rule. By using the singleton fuzzifier, product inference, and center-average defuzzifier, the output of the fuzzy system can be expressed as follows:

$$ \begin{aligned} \hat{f}(x) & = \frac{{\sum\nolimits_{i = 1}^{m} {f^{i} \left( {\prod\nolimits_{j = 1}^{n} {\mu_{{A_{j}^{i} }} (x_{j} )} } \right)} }}{{\sum\nolimits_{i = 1}^{m} {\left( {\prod\nolimits_{j = 1}^{n} {\mu_{{A_{j}^{i} }} (x_{j} )} } \right)} }} \\ & = \theta^{T} \psi (x) \\ \end{aligned} $$
(12)

where \( \mu_{{A_{j}^{i} }} (x_{j} ) \) is the degree of membership of \( x_{j} \) to \( A_{j}^{i} \), m is the number of fuzzy rules, \( \theta^{T} = [f^{1} , { }f^{ 2} , { } \ldots { ,} f^{m} ] \) is the adjustable parameter vector (composed of consequent parameters), and \( \psi^{T} = [\psi^{1} \psi^{2} \ldots \psi^{m} ] \) with

$$ \psi^{i} (x) = \frac{{\left( {\prod\nolimits_{j = 1}^{n} {\mu_{{A_{j}^{i} }} (x_{j} )} } \right)}}{{\sum\nolimits_{i = 1}^{m} {\left( {\prod\nolimits_{j = 1}^{n} {\mu_{{A_{j}^{i} }} (x_{j} )} } \right)} }} $$

being the fuzzy basis function (FBF). Throughout the paper, it is assumed that the FBFs are selected so that there is always at least one active rule (Wang 1994), i.e. \( \sum\nolimits_{i = 1}^{m} {\left( {\prod\nolimits_{j = 1}^{n} {\mu_{{A_{j}^{i} }} (x_{j} )} } \right) \, > 0} \).

Fig. 2
figure 2

The basic configuration of a fuzzy logic system

It is worth noting that the fuzzy system (12) is commonly used in control applications. Following the universal approximation results (Wang 1994; Azar 2010a, b, 2012), the fuzzy system (12) is able to approximate any nonlinear smooth function \( f(x) \) on a compact operating space to an arbitrary degree of accuracy. Of particular importance, it is assumed that the structure of the fuzzy system (i.e. the pertinent inputs, the number of membership functions for each input and the number of rules) and the membership function parameters are properly specified beforehand. The consequent parameters \( \theta \) are then determined by appropriate adaptation algorithms.

In the following section, the proposed fuzzy adaptive backstepping controller will be presented.

5 Design of the Fuzzy Adaptive Backstepping Control

In this section, the stator flux subsystem control is designed in order to achieve asymptotic alignment of the stator flux vector with the d-axis of the line voltage vector reference frame, consequently, the stator voltage and flux vectors become orthogonal.

Introduce flux stator tracking errors as

$$ \widetilde{\varphi }_{sd} = \varphi_{sd} - \varphi_{s}^{*} ,\quad\widetilde{\varphi }_{sq} = \varphi_{sq} $$
(13)

where \( \varphi_{s}^{*} \) is the d-axis flux reference trajectory.

Using (8), the stator flux dynamic equations in (1) can be written in error form as

$$ \begin{array}{*{20}c} {\dot{\widetilde{\varphi }}_{sd} = - a_{1} \widetilde{\varphi }_{sd} - a_{1} \varphi_{s}^{*} + a_{2} \varphi_{rd} + \omega_{s} \widetilde{\varphi }_{sq} - \dot{\varphi }_{s}^{*} } \\ {\dot{\widetilde{\varphi }}_{sq} = - a_{1} \widetilde{\varphi }_{sq} + a_{2} \varphi_{rq} - \omega_{s} \widetilde{\varphi }_{sd} - \omega_{s} \varphi_{s}^{*} + u_{s} } \\ \end{array} $$
(14)

where \( a_{1} = R_{s} /L_{s} \sigma \), \( a_{2} = R_{s} M/L_{r} L_{s} \sigma \).

To realize the required stator flux orientation, the d-axis component of rotor flux \( \varphi_{rd} \) can be considered as control input in (14), and should be

$$ \varphi_{rd} = \frac{1}{{a_{2} }}\left( {a_{1} \varphi_{s}^{*} + \dot{\varphi }_{s}^{*} } \right) $$
(15)

with the d-axis stator flux reference computed from the second equation of (14)

$$ \varphi_{s}^{*} = \frac{1}{{\omega_{s} }}\left( {u_{s} + a_{2} \varphi_{rq} } \right) $$
(16)

Using (15) and (16), (14) becomes

$$ \begin{aligned} \dot{\widetilde{\varphi }}_{sd} & = - a_{1} \widetilde{\varphi }_{sd} + \omega_{s} \widetilde{\varphi }_{sq} + a_{2} (\varphi_{rd} - \varphi_{rd}^{*} ) \\ \dot{\widetilde{\varphi }}_{sq} & = - a_{1} \widetilde{\varphi }_{sq} - \omega_{s} \widetilde{\varphi }_{sd} \\ \end{aligned} $$
(17)

However, in a DFI-Motor, the rotor flux is not available as control input and \( \varphi_{rd} \) in (15) can only represent the d-axis rotor flux reference \( \varphi_{rd}^{*} \) for the real flux \( \varphi_{rd} \). The rotor voltages \( u_{rd} \) and \( u_{rq} \) are the only physical available control inputs of DFI-Motor. From (17), one concludes that the dynamic of the stator flux is exponentially stable (i.e. \( \mathop {\lim }\limits_{t \to \infty } \varphi_{sd} = \varphi_{s}^{*} \) and \( \mathop {\lim }\limits_{t \to \infty } \varphi_{sq} = 0 \)) provided that \( \mathop {\lim }\limits_{t \to \infty } \varphi_{rd} = \varphi_{rd}^{*} \).

Remark 1

From (17) and (15), it can be concluded that in the steady state (\( \varphi_{s}^{*} \) constant), \( \varphi_{rd} = \frac{{a_{1} \varphi_{s}^{*} }}{{a_{2} }} = \frac{{L_{r} }}{M}\varphi_{s}^{*} \).

Now, it is required to design a control law (rotor voltages \( u_{rd} \) and \( u_{rq} \)) which guarantees that \( \mathop {\lim }\limits_{t \to \infty } \varphi_{rd} = \varphi_{rd}^{*} \) and \( \mathop {\lim }\limits_{t \to \infty }\Omega =\Omega ^{*} \). Then, we will consider the reduced order DFI-Motor model represented by the rotor flux and speed equations.

$$ \begin{aligned} \dot{x}_{1} & = a_{5} (x_{4} x_{3} - x_{5}^{{}} x_{2} ) - a_{6} x_{1} - a_{7}\Gamma _{l} \\ \dot{x}_{2} & = - a_{3} x_{2} + a_{4} x_{4} - \omega_{r} x_{3} + \delta_{1} (x_{1} ,x_{2} ) + u_{1} \\ \dot{x}_{3} & = - a_{3} x_{3} + a_{4} \,x_{5} + \omega_{r} x_{2} + \delta_{2} (x_{3} ,x_{2} ) + u_{2} \\ \end{aligned} $$
(18)

with \( x_{1} = {\Omega}, x_{2} = \varphi_{rq}, \) \( x_{3} = \varphi_{rd}, x_{4} = \varphi_{sq}, \) \( x_{5} = \varphi_{sd}, u_{1} = u_{rq}, \) \( u_{2} = u_{rd}, a_{3} = R_{r} /L_{r} \sigma, \) \( a_{4} = R_{r} M/L_{r} L_{s} \sigma, \) \( a_{5} = pM/JL_{r} L_{s} \sigma, \) \( a_{6} = k_{f} /J \) and \( a_{7} = 1/J \).where \( \delta_{i} \) (\( i = 1,\;2 \)) are the unknown uncertainties and perturbations that can be naturally generated from the parameter variations.

Backstepping design procedure (Krstic et al. 1995) is used here for the construction of the FABC which guarantees asymptotic tracking of rotor speed and rotor flux reference signals. Then, the variables to be controlled in the model (18) are the rotor speed (\( x_{1} \)) and the rotor flux (\( x_{2} ,\;x_{3} \)).

  1. Step 1.

    For a continuous bounded reference signal \( x_{1d} \), we define the tracking error \( e_{1} \) as follows

    $$ e_{1} = x_{1} - x_{1d} $$
    (19)

    Its derivative \( \dot{e}_{1} \) is given by

    $$ \dot{e}_{1} = \dot{x}_{1} - \dot{x}_{1d} $$
    (20)

    From the first subsystem of (18), we can write

    $$ \dot{e}_{1} = a_{5} x_{4}^{{}} x_{3} - a_{5} x_{5}^{{}} x_{2} - a_{6} x_{1} - a_{7}\Gamma _{l} - \dot{x}_{1d} $$
    (21)

    Choose \( a_{5} x_{5}^{{}} x_{2} \) as a virtual control to stabilize \( e_{1} \) and select \( \upsilon_{1} \) as a desired reference signal for \( a_{5} x_{5}^{{}} x_{2} \)

    $$ \upsilon_{1}^{{}} = a_{5} x_{4}^{{}} x_{3d} + c_{1} e_{1} - a_{6} x_{1d} - \dot{x}_{1d} - a_{7} {\Gamma}_{l} $$
    (22)

    where \( c_{1} > 0 \) is a design constant.

    However, the exact value of the external load torque \( {\Gamma}_{l} \) in (22) is generally difficult to be known in advance for practical applications. Then, it cannot be used in the virtual control signal. We can select the new virtual control as follows

    $$ \upsilon_{2} (z_{0} ) = a_{5} x_{4}^{{}} x_{3d} + c_{1} e_{1} - a_{6} x_{1d} - \dot{x}_{1d} - a_{7} \hat{{\Gamma} }_{l} $$
    (23)

    where \( \hat{{\Gamma} }_{l} \) is the estimate of \( {\Gamma}_{l} \) and \( z_{0} = [x_{1} ,x_{4} ,\hat{{\Gamma} }_{l} ]^{T} \).

    This leads to the following dynamics

    $$ \dot{e}_{1} = a_{5} x_{4}^{{}} e_{3} - e_{2} - \left( {c_{1} + a_{6} } \right)e_{1}^{{}} - a_{7} \widetilde{{\Gamma} }_{l} $$
    (24)

    where \( \widetilde{{\Gamma} }_{l} = {\Gamma}_{l} - \hat{{\Gamma} }_{l} \) is the load torque estimation error, and \( e_{2} \) is the tracking error of the variable \( a_{5} x_{5}^{{}} x_{2} \).

    $$ e_{2} = a_{5} x_{5}^{{}} x_{2} - \upsilon_{2} $$
    (25)

    Consider the following Lyapunov function candidate for the e 1-subsystem

    $$ V_{1} = \frac{1}{2}\left( {e_{1}^{2} + \frac{1}{{\gamma} }\widetilde{{\Gamma} }_{l}^{2} } \right) $$
    (26)

    where \( {\gamma} > 0 \) is a design constant.

    By assuming that the load torque is slowly time-varying (\( \dot{{\Gamma} }_{l} = 0 \)), the time-derivative of (26) along (24) is given by

    $$ \dot{V}_{1} = - e_{1}^{{}} e_{2} + a_{5} x_{4}^{{}} e_{3} e_{1} - \left( {c_{1} + a_{6} } \right)e_{1}^{2} - \widetilde{{\Gamma} }_{l} \left( {a_{7} e_{1} + \frac{1}{{\gamma} }\dot{\hat{{\Gamma} }}_{l} } \right) $$
    (27)

    If the load torque adaptation law is designed as

    $$ \dot{\hat{{\Gamma} }}_{l} = \beta \widetilde{{\Gamma} }_{l} - {\gamma} a_{7} e_{1} $$
    (28)

    where \( \beta > 0 \) is a design parameter.

    Then, (27) can be written as

    $$ \dot{V}_{1} = - e_{1}^{{}} e_{2} + a_{5} x_{4}^{{}} e_{3} e_{1} - \left( {c_{1} + a_{6} } \right)e_{1}^{2} - \frac{\beta }{{\gamma} }\widetilde{{\Gamma} }_{l}^{2} $$
    (29)

    The next step consists in stabilizing the tracking error \( e_{2} \).

  2. Step 2.

    The time-derivative of (25) is given by

    $$ \dot{e}_{2} = a_{5} x_{5}^{{}} \dot{x}_{2} + a_{5} \dot{x}_{5}^{{}} x_{2} - \dot{\upsilon }_{2} $$
    (30)

    From the second subsystem of (1), (18) and (23), we can write

    $$ \begin{aligned} \dot{e}_{2} & = f_{1} (z_{1} ) + e_{1}^{{}} + (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{3} \\&\quad- a_{7} (\beta + c_{1} )\hat{{\Gamma} }_{l} + a_{5} x_{5} u_{1} \\ \end{aligned} $$
    (31)

    with

    $$ \begin{aligned} f_{1} (z_{1} ) & = - e_{1} - a_{5} a_{3} x_{5} x_{2} + a_{5} a_{4} x_{5} x_{4} - a_{5} x_{5} \omega_{r} x_{3d} - a_{5} a_{1} x_{5} x_{2} \\ & \quad+ a_{5} \omega_{s} x_{4} x_{2} + a_{5} a_{1} x_{3d} x_{4} + a_{5} \omega_{s} x_{3d} x_{5} - a_{5} x_{3d} u_{s} - a_{5} x_{4} \dot{x}_{3d} \\ & \quad+ a_{6} \dot{x}_{1d} + \textit{\"{x}}_{1d} + c_{1} \left( {e_{2} + \left( {c_{1} + a_{6} } \right)e_{1} } \right) - a_{7}^{2} {\gamma} e_{1} \\& \quad+ a_{7} (\beta + c_{1} ){{\Gamma} }_{l} + a_{5} x_{5} \delta_{1} (x_{1} ,x_{2} ) \\ \end{aligned} $$

    where \( z_{1} = [x_{1} ,x_{2} ,x_{4} ,x_{5} ,v_{2} ,{\Gamma}_{l} ]^{T} \) and \( e_{3} \) is the tracking error of \( x_{3} \). It is given by

    $$ e_{3} = x_{3} - x_{3d} $$
    (32)

    The desired signal \( x_{3d} \) is given by the expression (15), i.e. \( x_{3d} = \frac{1}{{a_{2} }}\left( {a_{1} \varphi_{s}^{*} + \dot{\varphi }_{s}^{*} } \right) \).

    The uncertain continuous function \( f_{1} (z_{1} ) \) can be approximated by the fuzzy system (12) as follows

    $$ \hat{f}_{1} (z_{1} ,\theta_{1} ) = \theta_{1}^{T} \psi_{1} (z_{1} ) $$
    (33)

    where \( \psi_{1} (z_{1} ) \) is the FBF vector, which is fixed a priori by the designer, and \( \theta_{1} \) is the adjustable parameter vector of the fuzzy system. Furthermore, the functions \( f_{1} (z_{1} ) \) can be approximated optimally (Wang 1993, 1994) as follows

    $$ \begin{aligned} f_{1} (z_{1} ) & = \hat{f}_{1} (z_{1} ,\theta_{1}^{*} ) + \varepsilon_{1} (z_{1} ) \\ & = \theta_{1}^{*T} \psi_{1} (z_{1} ) + \varepsilon_{1} (z_{1} ) \\ \end{aligned} $$
    (34)

    where \( \theta_{1}^{*} \) is the optimal parameter vector and \( \varepsilon_{1} (z_{1} ) \) is the unavoidable fuzzy approximation error which is generally assumed to be bounded (Boulkroune et al. 2008, 2009, 2010a, b; Wang 1993, 1994) as follows

    $$ \left| {\varepsilon_{1} (z_{1} )} \right| \le \bar{\varepsilon }_{1} ,\quad\forall\,z_{1} \in {{\Omega} }_{{z_{1} }} $$

    where \( \bar{\varepsilon }_{1} \) is an unknown constant.

    Since the input vector \( z_{1} = [x_{1} ,x_{2} ,x_{4} ,x_{5} ,v_{2} ,{\Gamma}_{l} ]^{T} \) is not available, it must be replaced by its estimate \( \hat{z}_{1} = [x_{1} ,x_{2} ,x_{4} ,x_{5} ,v_{2} ,\hat{{\Gamma} }_{l} ]^{T} \) in (33). Thus, the fuzzy system (33) used to approximate \( f_{1} (z_{1} ) \) is replaced by the following fuzzy system:

    $$ \hat{f}_{1} (\hat{z}_{1} ,\theta_{1} ) = \theta_{1}^{T} \psi_{1} (\hat{z}_{1} ) $$
    (35)

    From (3335), we have

    $$ \begin{aligned} f_{1} (z_{1} ) & = f_{1} (z_{1} ) - \hat{f}_{1} (z_{1} ,\theta_{1}^{*} ) + \hat{f}_{1} (z_{1} ,\theta_{1}^{*} ) - \hat{f}_{1} (\hat{z}_{1} ,\theta_{1}^{*} ) + \hat{f}_{1} (\hat{z}_{1} ,\theta_{1}^{*} ) \\ & = \hat{f}_{1} (\hat{z}_{1} ,\theta_{1}^{*} ) + f_{1} (z_{1} ) - \hat{f}_{1} (z_{1} ,\theta_{1}^{*} ) + \hat{f}_{1} (z_{1} ,\theta_{1}^{*} ) - \hat{f}_{1} (\hat{z}_{1} ,\theta_{1}^{*} ) \\ & = \theta_{1}^{*T} \psi (\hat{z}_{1} ) + \varepsilon_{1} (z_{1} ) + [\theta_{1}^{*T} \psi_{1} (z_{1} ) - \theta_{1}^{*T} \psi_{1} (\hat{z}_{1} )] \\ & = \theta_{1}^{*T} \psi (\hat{z}_{1} ) + \vartheta_{1} (z_{1} ,\hat{z}_{1} ) \\ \end{aligned} $$
    (36)

    where \( \vartheta_{1} (z_{1} ,\hat{z}_{1} ) = \varepsilon_{1} (z_{1} ) + [\theta_{1}^{*T} \psi_{1} (z_{1} ) - \theta_{1}^{*T} \psi_{1} (\hat{z}_{1} )] \) is the approximation error. Notice that \( \vartheta_{1} (z_{1} ,\hat{z}_{1} ) \) has an upper bound, i.e. \( \left| {\vartheta_{1} (z_{1} ,\hat{z}_{1} )} \right| \le \kappa_{1}^{*} \) with \( \kappa_{1}^{*} \) is an unknown positive constant (Boulkroune et al. 2008).

    To stabilise the dynamics (31), the following fuzzy adaptive controller is proposed

    $$ u_{1} = \frac{1}{{a_{5} x_{5} }}\left( {a_{7} (\beta + c_{1} )\hat{{\Gamma} }_{l} - \theta_{1}^{T} \psi_{1} (\hat{z}_{1} ) - \lambda_{1} e_{2} - \frac{{\kappa_{1}^{2} e_{2} }}{{\kappa_{1}^{{}} \left| {e_{2} } \right| + \sigma_{1} \, e^{{ - \sigma_{2} t}} }}} \right) $$
    (37)

    where \( \sigma_{1} \) and \( \sigma_{2} > 0 \) are small design constants and \( \lambda_{1} \) is a positive design constant and \( \kappa_{1}^{{}} \) is the estimate of the unknown bound \( \kappa_{1}^{*} \).

Remark 2

The magnetising flux \( x_{5} \) must be non-zero (remanence flux).

Replacing (37) into (31) and using (36) yields

$$ \begin{aligned} \dot{e}_{2} & = e_{1}^{{}} + (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{3} - \widetilde{\theta }_{1}^{T} \psi_{1} (\hat{z}_{1} ) \\&\quad+ \vartheta_{1} (z_{1} ,\hat{z}_{1} ) - \lambda_{1} e_{2} - \frac{{\kappa_{1}^{2} e_{2} }}{{\kappa_{1}^{{}} \left| {e_{2} } \right| + \sigma_{1} \, e^{{ - \sigma_{2} t}} }} \\ \end{aligned} $$
(38)

where \( \widetilde{\theta }_{1}^{{}} = \theta_{1}^{{}} - \theta_{1}^{*} \) is the parameter error vector.

Multiplying (38) by \( e_{2} \), we get

$$ \begin{aligned} e_{2} \dot{e}_{2} & = e_{1}^{{}} e_{2}^{{}} + (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} e_{3} - e_{2} \widetilde{\theta }_{1}^{T} \psi_{1} (\hat{z}_{1} )\\&\quad + e_{2} \vartheta_{1} (z_{1} ,\hat{z}_{1} ) - \lambda_{1} e_{2}^{2} - \frac{{\kappa_{1}^{2} e_{2}^{2} }}{{\kappa_{1}^{{}} \left| {e_{2} } \right| + \sigma_{1} \, e^{{ - \sigma_{2} t}} }} \\ & \le e_{1}^{{}} e_{2}^{{}} + (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} e_{3} - e_{2} \widetilde{\theta }_{1}^{T} \psi_{1} (\hat{z}_{1} ) + \kappa_{1}^{*} \left| {e_{2} } \right| \\ &\quad- \lambda_{1} e_{2}^{2} - \frac{{\kappa_{1}^{2} e_{2}^{2} }}{{\kappa_{1}^{{}} \left| {e_{2} } \right| + \sigma_{1} \, e^{{ - \sigma_{2} t}} }} \\ & = e_{1}^{{}} e_{2}^{{}} + (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} e_{3} - e_{2} \widetilde{\theta }_{1}^{T} \psi_{1} (\hat{z}_{1} )\\ &\quad - \widetilde{\kappa }_{1}^{{}} \left| {e_{2} } \right| - \lambda_{1} e_{2}^{2} + \sigma_{1} \, e^{{ - \sigma_{2} t}} \\ \end{aligned} $$
(39)

where \( \widetilde{\kappa }_{1} = \kappa_{1}^{{}} - \kappa_{1}^{*} \) is the parameter error.

Define a Lyapunov function candidate for the (e 1, e 2)-subsystem as follows

$$ V_{2} = V_{1} + \frac{1}{2}e_{2}^{2} + \frac{1}{{2{\gamma}_{1} }}\,\widetilde{\theta }_{1}^{T} \widetilde{\theta }_{1}^{{}} + \frac{1}{{2\eta_{1} }}\,\widetilde{\kappa }_{1}^{2} $$
(40)

where \( {\gamma}_{1} \) and \( \eta_{1} > 0 \) are design constants.

Take the derivative of \( V_{2} \) with respect to time and using (39) and (29), one can obtain

$$ \begin{aligned} \dot{V}_{2} & = \dot{V}_{1} + e_{2}^{{}} \dot{e}_{2}^{{}} + \frac{1}{{{\gamma}_{1} }}\,\widetilde{\theta }_{1}^{T} \dot{\theta }_{1}^{{}} + \frac{1}{{\eta_{1} }}\,\widetilde{\kappa }_{1} \dot{\kappa }_{1} \\ & \le (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2} e_{3} + a_{5} x_{4}^{{}} e_{1} e_{3} - \left( {c_{1} + a_{6} } \right)e_{1}^{2} - \frac{\beta }{{\gamma} }\widetilde{{\Gamma} }_{l}^{2} \\ &\quad - e_{2} \widetilde{\theta }_{1}^{T} \psi_{1} (\widetilde{z}_{1} ) - \widetilde{\kappa }_{1} |e_{2} | - \lambda_{1} e_{2}^{2} + \sigma_{1} e^{{ - \sigma_{2} t}} + \frac{1}{{{\gamma}_{1} }}\,\widetilde{\theta }_{1}^{T} \dot{\theta }_{1} + \frac{1}{{\eta_{1} }}\,\widetilde{\kappa }_{1} \dot{\kappa }_{1} \\ & = (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2} e_{3} + a_{5} x_{4} e_{1} e_{3} - \left( {c_{1} + a_{6} } \right)e_{1}^{2} - \frac{\beta }{{\gamma} }\widetilde{{\Gamma} }_{l}^{2} \\ &\quad - \lambda_{1} e_{2}^{2} \, + \sigma_{1} \, e^{{ - \sigma_{2} t}} + \frac{1}{{{\gamma}_{1} }}\,\widetilde{\theta }_{1}^{T} \left[ {\dot{\theta }_{1}^{{}} - {\gamma}_{1} e_{2} \psi_{1} (\hat{z}_{1} )} \right] + \, \frac{1}{{\eta_{1} }}\,\widetilde{\kappa }_{1} \left[ {\dot{\kappa }_{1} - \eta_{1} \left| {e_{2} } \right|} \right] \\ \end{aligned} $$
(41)

If the adaptation laws are designed as

$$ \dot{\theta }_{1}^{{}} = {\gamma}_{1} e_{2} \psi_{1} (\hat{z}_{1} ) $$
(42)
$$ \dot{\kappa }_{1} = \eta_{1} \left| {e_{2} } \right| $$
(43)

Then, (41) can be expressed as follows

$$ \begin{aligned} \dot{V}_{2} & \le (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} e_{3} + a_{5} x_{4}^{{}} e_{1} e_{3} \\&- \left( {c_{1} + a_{6} } \right)e_{1}^{2}- \frac{\beta }{{\gamma} }\widetilde{{\Gamma} }_{l}^{2} - \lambda_{1} e_{2}^{2} + \sigma_{1} \, e^{{ - \sigma_{2} t}} \\ \end{aligned} $$
(44)

In the next step, we try to stabilize the tracking error \( e_{3} . \)

  1. Step 3.

    At this step, we will construct the control law \( u_{2}^{{}} \). The time-derivative of (32) is given by

    $$ \dot{e}_{3} = - a_{3} x_{3} + a_{4} \,x_{5} + \omega_{r} x_{2} + \delta_{2} (x_{3} ,x_{2} ) + u_{2} - \dot{x}_{3d} $$
    (45)

    We can rewrite (45) as follows

    $$ \dot{e}_{3} = - (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} - a_{5} x_{4}^{{}} e_{1} + f_{2} (z_{2} ) + u_{2} $$
    (46)

    with

    $$ \begin{aligned}f_{2} (z_{2} ) =&\, (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{5} )e_{2}^{{}} + a_{5} x_{4}^{{}} e_{1} - a_{3} x_{3} \\&+ a_{4} \,x_{5} + \omega_{r} x_{2} + \delta_{2} (x_{3} ,x_{2} ) \, - \dot{x}_{3d}\end{aligned} $$

    where \( z_{2} = [x_{1} ,x_{2} ,x_{3} ,x_{4} ,x_{5} ]^{T} \).

    The uncertain continuous function \( f_{2} (z_{2} ) \) can be approximated by the fuzzy system (12) as follows

    $$ \hat{f}_{2} (z_{2} ,\theta_{2} ) = \theta_{2}^{T} \psi_{2} (z_{2} ) $$
    (47)

    where \( \psi_{2} (z_{2} ) \) is the FBF vector, which is fixed a priori by the designer, and \( \theta_{2} \) is the adjustable parameter vector of the fuzzy system. Furthermore, the functions \( f_{2} (z_{2} ) \) can be approximated optimally (Wang 1993, 1994) as follows

    $$ \begin{aligned} f_{2} (z_{2} ) & = \hat{f}_{2} (z_{2} ,\theta_{2}^{*} ) + \varepsilon_{2} (z_{2} ) \\ & = \theta_{2}^{*T} \psi_{2} (z_{2} ) + \varepsilon_{2} (z_{2} ) \\ \end{aligned} $$
    (48)

    where \( \theta_{2}^{*} \) is the optimal parameter vector and \( \varepsilon_{2} (z_{2} ) \) is the unavoidable fuzzy approximation error which is assumed to be bounded (Boulkroune et al. 2008, 2009, 2010a, b; Wang 1993, 1994) as follows

    $$ \begin{aligned}\left| {\varepsilon_{2} (z_{2} )} \right| \le \bar{\varepsilon }_{2} ,\quad\forall z_{2}\, \in {{\Omega} }_{{z_{2} }} ,\end{aligned} $$

    where \( \bar{\varepsilon }_{2} \) is an unknown constant.

    From (47) and (48), we have

    $$ \begin{aligned} f_{2} (z_{2} ) & = f_{2} (z_{2} ) - \hat{f}_{2} (z_{2} ,\theta_{2}^{*} ) + \hat{f}_{2} (z_{2} ,\theta_{2}^{*} ) \\ & = \hat{f}_{2} (z_{2} ,\theta_{2}^{*} ) + f_{2} (z_{2} ) - \hat{f}_{2} (z_{2} ,\theta_{2}^{*} ) \\ & = \theta_{2}^{*T} \psi_{2} (z_{2} ) + \varepsilon_{2} (z_{2} ) \\ \end{aligned} $$
    (49)

    To stabilise the dynamics (46), the following fuzzy adaptive controller is proposed

    $$ u_{2} = - \theta_{2}^{T} \psi_{2} (z_{2} ) - \lambda_{2} e_{3} - \frac{{\kappa_{2}^{2} e_{3} }}{{\kappa_{2}^{{}} \left| {e_{3} } \right| + \sigma_{3} \, e^{{ - \sigma_{4} t}} }} $$
    (50)

    where \( \sigma_{3} \) and \( \sigma_{4} > 0 \) are small design constants, \( \lambda_{2} \) is a positive design constant and \( \kappa_{2}^{{}} \) is the estimate of the unknown bound \( \kappa_{2}^{*} = \bar{\varepsilon }_{2} \).

    Replacing (50) into (46) and using (49) yields

    $$ \begin{aligned} \dot{e}_{3} & = - (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} - a_{5} x_{4}^{{}} e_{1} - \widetilde{\theta }_{2}^{T} \psi_{2} (z_{2} ) \\&\quad+ \varepsilon_{2} (z_{2} ) - \lambda_{2} e_{3} - \frac{{\kappa_{2}^{2} e_{3} }}{{\kappa_{2}^{{}} \left| {e_{3} } \right| + \sigma_{3} \, e^{{ - \sigma_{4} t}} }} \\ \end{aligned} $$
    (51)

    where \( \widetilde{\theta }_{2}^{{}} = \theta_{2}^{{}} - \theta_{2}^{*} \) is the parameter error vector.

    Multiplying (51) by \( e_{3} \), we get

    $$ \begin{aligned} e_{3} \dot{e}_{3} & = - (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} e_{3}^{{}} - a_{5} x_{4}^{{}} e_{1} e_{3}^{{}} \\ & \quad - e_{3} \widetilde{\theta }_{2}^{T} \psi_{2} (z_{2} ) + e_{3} \varepsilon_{2} (z_{2} ) - \lambda_{2} e_{3}^{2} - \frac{{\kappa_{2}^{2} e_{3}^{2} }}{{\kappa_{2}^{{}} \left| {e_{3} } \right| + \sigma_{3} \, e^{{ - \sigma_{4} t}} }} \\ & \le - (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} e_{3}^{{}} - a_{5} x_{4}^{{}} e_{1} e_{3}^{{}} \\ & \quad - e_{3} \widetilde{\theta }_{2}^{T} \psi_{2} (z_{2} ) + \kappa_{2}^{*} \left| {e_{3} } \right| - \lambda_{2} e_{3}^{2} - \frac{{\kappa_{2}^{2} e_{3}^{2} }}{{\kappa_{2}^{{}} \left| {e_{3} } \right| + \sigma_{3} \, e^{{ - \sigma_{4} t}} }} \\ & = - (a_{5} a_{2} x_{2} - a_{5} x_{5} \omega_{r} - a_{5} c_{1} x_{4} )e_{2}^{{}} e_{3}^{{}} - a_{5} x_{4}^{{}} e_{1} e_{3}^{{}} \\ & \quad - e_{3} \widetilde{\theta }_{2}^{T} \psi_{2} (z_{2} ) - \lambda_{2} e_{3}^{2} - \widetilde{\kappa }_{2}^{{}} \left| {e_{3} } \right| + \sigma_{3} \, e^{{ - \sigma_{4} t}} \\ \end{aligned} $$
    (52)

    where \( \widetilde{\kappa }_{2} = \kappa_{2}^{{}} - \kappa_{2}^{*} \).

    Define a Lyapunov function candidate as follows

    $$ V_{3} = V_{2} + \frac{1}{2}e_{3}^{2} + \frac{1}{{2{\gamma}_{2} }}\,\widetilde{\theta }_{2}^{T} \widetilde{\theta }_{2}^{{}} + \frac{1}{{2\eta_{2} }}\,\widetilde{\kappa }_{2}^{2} $$
    (53)

    where \( {\gamma}_{2} \) and \( \eta_{2} > 0 \) are design constants.

    Take the derivative of \( V_{\begin{subarray}{l} 3 \\ \end{subarray} } \) with respect to time and using (52) and (44), one can obtain

    $$ \begin{aligned} \dot{V}_{3} & = \dot{V}_{2} + e_{3}^{{}} \dot{e}_{3}^{{}} + \frac{1}{{{\gamma}_{2} }}\,\widetilde{\theta }_{2}^{T} \dot{\theta }_{2}^{{}} + \frac{1}{{\eta_{2} }}\,\widetilde{\kappa }_{2} \kappa_{2} \\ & \le - \left( {c_{1} + a_{6} } \right)e_{1}^{2} - \frac{\beta }{{\gamma} }\widetilde{{\Gamma} }_{l}^{2} - \lambda_{1} e_{2}^{2} - e_{3} \widetilde{\theta }_{2}^{T} \psi_{2} (z_{2} ) - \lambda_{2} e_{3}^{2} \\ & \quad - \widetilde{\kappa }_{2} |e_{3} | + \sigma_{1} e^{{ - \sigma_{2} t}} + \sigma_{3} e^{{ - \sigma_{4} t}} + \frac{1}{{{\gamma}_{2} }}\widetilde{\theta }_{2}^{T} \dot{\theta }_{2} + \frac{1}{{\eta_{2} }}\widetilde{\kappa }_{2} \dot{\kappa }_{2} \\ &= - \left( {c_{1} + a_{6} } \right)e_{1}^{2} - \frac{\beta }{{\gamma} }\widetilde{{\Gamma} }_{l}^{2} - \lambda_{1} e_{2}^{2} - \lambda_{2} e_{3}^{2} + \sigma_{1} e^{{ - \sigma_{2} t}} + \sigma_{3} e^{{ - \sigma_{4} t}} \\ & \quad + \frac{1}{{{\gamma}_{2} }}\widetilde{\theta }_{2}^{T} [\dot{\theta }_{2} - {\gamma}_{2} e_{3} \psi_{2} (z_{2} )] \\ & \quad + \frac{1}{{\eta_{2} }}\,\widetilde{\kappa }_{2} \left[ {\dot{\kappa }_{2} - \eta_{2} \left| {e_{3} } \right|} \right] \\ \end{aligned} $$
    (54)

    If the adaptation laws are designed as

    $$ \dot{\theta }_{2}^{{}} = {\gamma}_{2} e_{3} \psi_{2} (z_{2} ) $$
    (55)
    $$ \dot{\kappa }_{2} = \eta_{2} \left| {e_{3} } \right| $$
    (56)

    Then, (54) becomes

    $$ \begin{aligned}\dot{V}_{3} &= \le - \left( {c_{1} + a_{6} } \right)e_{1}^{2} - \frac{\beta }{\gamma }\widetilde{\varGamma }_{l}^{2} - \lambda_{1} e_{2}^{2} - \lambda_{2} e_{3}^{2} \\ &\quad+ \sigma_{1} e^{{ - \sigma_{2} t}} + \sigma_{3} e^{{ - \sigma_{4} t}}\end{aligned} $$
    (57)

    One can write (57) as follows

    $$ \dot{V}_{3} \le - \lambda \left\| E \right\|^{2} + \varsigma (t) $$
    (58)

    where \( \lambda = \hbox{min} \left\{ {\left( {c_{1} + a_{6} } \right),\frac{\beta }{{\gamma} },\lambda_{2} ,\lambda_{3} } \right\},\,E = \left[ {e_{1} ,e_{2} ,e_{3} ,\widetilde{{\Gamma} }_{{l^{{}} }} } \right]^{T} \), and \( \varsigma (t) = \sigma_{1} e^{{ - \sigma_{2} t}} + \sigma_{3} e^{{ - \sigma_{4} t}} \).

    Note that \( \varsigma (t) \) verifies the following nice properties:

    • \( \varsigma (t) \in L_{\infty } \) and \( \mathop {\lim }\limits_{t \to \infty } \varsigma (t) = 0 \)

    • \( \varsigma (t) \in L_{2} \)

Those properties will be exploited later in the stability analysis.

5.1 Study of the Tracking Error Convergence

The study of the asymptotic convergence of tracking errors is divided into three parts.

5.1.1 Proof of the Boundedness and Square Integrability of the Tracking Errors

By inequality (58), \( \dot{V}_{3} \) can be rewritten as \( \dot{V}_{3} \le - \lambda \left\| E \right\|^{2} + \sigma_{1} + \sigma_{3} \). Choosing \( \lambda > \frac{{\sigma_{1} + \sigma_{3} }}{{\chi^{2} }} \) for any small \( \chi > 0 \), there exists a constant \( \lambda_{0} \) such that \( \dot{V}_{3} \le - \lambda_{0} \left\| E \right\|^{2} <\, 0 \) for all \( \left\| E \right\| > \chi \). Thus, there is a \( T > 0 \), such that \( \left\| E \right\| \le \chi \) for all \( t \ge T \). This implies that the tracking errors are uniformly ultimately bounded (UUB), i.e. \( (e_{1} ,e_{2} ,e_{3} , { }\widetilde{{\Gamma} }_{{l^{{}} }} ) \in L_{\infty } \) (Khalil 2001). According to the standard Lyapunov theorem, we conclude that \( \widetilde{\theta }_{1} ,\widetilde{\kappa }_{1} ,\widetilde{\theta }_{2} \) and \( \widetilde{\kappa }_{2} \) are all UUB. The boundedness of \( \theta_{1} ,\kappa_{1} ,\theta_{2} \) and \( \kappa_{2} \) is respectively established from that \( \widetilde{\theta }_{1} ,\widetilde{\kappa }_{1} ,\widetilde{\theta }_{2} \) and \( \widetilde{\kappa }_{2} \). Also, From (58) and since \( \varsigma (t) \in L_{2} \), one can easily show that \( (e_{1} ,e_{2} ,e_{3} , { }\widetilde{{\Gamma} }_{{l^{{}} }} ) \in L_{2} \).

5.1.2 Proof of \( (\dot{e}_{1} ,\dot{e}_{2} ,\dot{e}_{3} , { }\dot{\widetilde{{\Gamma} }}_{l} ) \in L_{\infty } \) and the Boundedness of All Signals in the Closed Loop

Because \( e_{1} ,e_{3} \in L_{\infty } \) and \( x_{1d} ,x_{3d} \in L_{\infty } \), therefore \( x_{1} ,x_{3} \in L_{\infty } \). From (14), one can write the dynamics of the tracking errors of the stator fluxes as follows:

$$ \begin{aligned} \dot{e}_{5} & = - a_{1} e_{5} + \omega_{s} e_{4} + e_{3} \\ \dot{e}_{4} & = - a_{1} e_{4} - \omega_{s} e_{5} \\ \end{aligned} $$

with \( e_{4} = \widetilde{\phi }_{sq} \) and \( e_{5} = \widetilde{\phi }_{sd} \).

From those dynamics and since \( e_{3} \in L_{\infty } \), we can easily prove the boundedness of \( e_{4} \), \( e_{5} \) and \( x_{4} \). From \( x_{4} ,x_{3d} ,e_{1} ,\dot{x}_{1d} ,x_{1} \in L_{\infty } \), it can be concluded that \( \upsilon_{2} \in L_{\infty } \) based on (23). Because \( x_{2} = (e_{2} + \upsilon_{2} )/a_{5} x_{5} \), \( e_{2} ,\upsilon_{2} \in L_{\infty } \), \( x_{5} > 0 \), we can show that \( x_{2} \in L_{\infty } \). The boundedness of \( \varphi_{sd}^{*} \) and \( x_{5}^{{}} \) follows that of \( x_{2} \) and \( e_{5} \). Due to the boundedness of \( x_{1} ,x_{2} ,x_{3} ,x_{4} ,x_{5} ,\hat{{\Gamma} }_{l} \) and since \( \theta_{1} ,\kappa_{1} ,\theta_{2} ,\kappa_{2} \in L_{\infty } \), we can conclude that the controls (\( u_{1} \) and \( u_{2} \))are also bounded. The boundedness of states, reference signals, tracking errors and adaptation parameters implies the boundedness of \( \dot{e}_{1} ,\dot{e}_{2} ,\dot{e}_{3} , { }\dot{\widetilde{{\Gamma} }}_{{l^{{}} }} \) (i.e. this implies that \( (\dot{e}_{1} ,\dot{e}_{2} ,\dot{e}_{3} , { }\dot{\widetilde{{\Gamma} }}_{{l^{{}} }} ) \in L_{\infty }. \))

5.1.3 Proof of the Asymptotic Convergence of the Tracking Errors

Because \( (e_{1} ,e_{2} ,e_{3} , { }\widetilde{{\Gamma} }_{{l^{{}} }} ) \in L_{\infty } \cap L_{2} \) and (\( \dot{e}_{1} ,\dot{e}_{2} ,\dot{e}_{3} \),\( \dot{\widetilde{{\Gamma} }}_{{l^{{}} }} ) \in L_{\infty } \), and using Barbalat’s lemma (Khalil 2001), we can conclude that all tracking errors and the estimation error \( \widetilde{{\Gamma} }_{{l^{{}} }} \) converge asymptotically to zero, despite the presence of the uncertainties and perturbations.

5.2 An Implementable Version of the Load Torque Estimator

Now, let us consider the load torque adaptation law (28) that can be written in the following form

$$ \dot{\hat{{\Gamma} }}_{l} = \beta\Gamma _{l} - \beta \hat{{\Gamma} }_{l} - {\gamma} a_{7} e_{1} $$
(59)

As the actual load torque \( {\Gamma}_{l} \) is unknown, the first equation in (18) will be used to compute its value. Consequently, \( {\Gamma}_{l} \) is given by

$$ \Gamma _{l} = - \frac{{\left( {\dot{x}_{1} + a_{5} x_{5} x_{2} - a_{5} x_{4} x_{3} + a_{6} x_{1} } \right)}}{{a_{7} }} $$
(60)

which leads to

$$ \dot{\hat{{\Gamma} }}_{l} = - \frac{\beta }{{a_{7} }}\left( {\dot{x}_{1} + a_{5} x_{5} x_{2} - a_{5} x_{4} x_{3} + a_{6} x_{1} } \right) - \beta \hat{{\Gamma} }_{l} - {\gamma} a_{7} e_{1} $$
(61)

It is worth noticing that because of the integral structure of the adaptation law (61), this updating law is implementable despite the presence of the time derivative \( \dot{x}_{1} \). To show that, let’s rewrite the adaptation law as

$$ \hat{{\Gamma} }_{l} = \hat{{\Gamma} }_{l} \left( 0 \right) - \frac{\beta }{{a_{7} }}\left( {x_{1} \left( t \right) - x_{1} \left( 0 \right)} \right) + \int\limits_{0}^{t} {h\left( \tau \right)d\tau } $$
(62)

where

$$ h = - \left( {\beta \hat{{\Gamma} }_{l} + {\gamma} a_{7} e_{1} + \frac{\beta }{{a_{7} }}\left( {a_{5} x_{5} x_{2} - a_{5} x_{4} x_{3} + a_{6} x_{1} } \right)} \right) $$
(63)

Consequently, the load torque adaptation law can be computed without the need of using \( \dot{x}_{1} \).

Remark 3

From (59), we can rewrite \( \dot{\widetilde{{\Gamma} }}_{l} = - \beta \widetilde{{\Gamma} }_{l} + {\gamma} a_{7} e_{1} \), this equation can be seen as a standard disturbance observer. In fact, if \( e_{1} \) converges to zero, then \( \widetilde{{\Gamma} }_{l} \) also converges to zero. Consequently, \( \hat{{\Gamma} }_{l} \) converges to \( {\Gamma}_{l} \).

To summary, Fig. 3 shows the block diagram of our FABC proposed. The overall scheme of the controlled DFI-Motor is depicted in Fig. 4 in which the stator is directly connected to the grid, and the DIF-Motor is controlled by acting on the rotor winding.

Fig. 3
figure 3

The proposed FABC

Fig. 4
figure 4

The overall control scheme of the DFI-Motor

In the following section, the effectiveness of the proposed FABC will be illustrated via some simulations results.

6 Simulation Results

In order to investigate the control system effectiveness, a numerical simulation has been realized with a 4 kW DFI-Motor. Table 1 summarizes the DFI-Motor’s parameters along with their respective values (Vidal 2004). The performances of the control scheme are evaluated in terms of response to speed variation, sensitivity to external disturbances and robustness against machine parameters variations. The design parameters are selected as: \( {\gamma}_{1} = 0.001 , \beta = 200 , \lambda_{1} = 200 , {\gamma}_{1} = 100 , \eta_{1} = 0.05 , \lambda_{2} = 200 , {\gamma}_{2} = 1,000 , \eta_{2} = 0.1 , \sigma_{1} = \sigma_{3} = 0.1 , \sigma_{2} = \sigma_{4} = 0.1. \) The initial conditions are chosen as: \( \kappa_{1} (0) = \kappa_{1} (0) = 0.2 \), and \( \theta_{1i} (0) = \theta_{2i} (0) = 0 \). The unknown uncertainties and perturbations are selected as: \( \delta_{1} \left( {x_{1} ,x_{2} } \right) = 3x_{2} \) and \( \delta_{2} \left( {x_{3} ,x_{2} } \right) = 4x_{2} + 2x_{2} \).

Table 1 DFI-Motor Parameters

The fuzzy system \( \theta_{1}^{T} \psi_{1} (\hat{z}_{1} ) \) has the vector \( [x_{1} ,x_{2} ,x_{4} ,x_{5} ,v_{2} ,\hat{{\Gamma} }_{l} ]^{T} \) as input, while the fuzzy system \( \theta_{2}^{T} \psi_{2} (z_{2} ) \) has the state vector \( [x_{1} ,x_{2} ,x_{3} ,x_{4} ,x_{5} ]^{T} \) as input. For each variable of the entries of these fuzzy systems, as in (Boulkroune et al. 2008), we define three (one triangular and two trapezoidal) membership functions uniformly distributed on the intervals \( \left[ { - 0.5,1.5} \right] \) for \( x{}_{2} , { }x{}_{3} \), \( x_{4} \) and \( x_{5} \), \( \left[ { - 150,150} \right] \) for \( x_{1} \), \( \left[ { - 2,2} \right] \) for \( \upsilon_{2} \), and \( \left[ { - 150,150} \right] \) for \( \hat{{\Gamma} }_{l} \).

The simulation results of the proposed FABC system are depicted in Figs. 5, 6 and 7. From these simulation results, we can clearly see that a satisfactory behavior of the mechanical speed with regard to the imposed speed profile is obtained without the knowledge of the load torque. Moreover, the load torque estimator gives a correct estimation for the actual load torque.

Fig. 5
figure 5

Simulation results: a Tracking of the rotor speed: \( x_{1} \) (solid line) and \( x_{1d} \) (dotted line). b Estimation of the load torque: the estimate \( \hat{{\Gamma} }_{l} \) (solid line) and the actual value \( \Gamma _{l} \) (dotted line). c Electromagnetic torque. d Stator reactive power

Fig. 6
figure 6

Flux responses of the DFI-Motor: a Tracking of \( \varphi_{sd} \): \( \varphi_{sd} \) (solid line) and \( \varphi_{sd}^{*} \) (dotted line). b Tracking of \( \varphi_{sq} \): \( \varphi_{sq} \) (solid line) and \( \varphi_{sq}^{*} \) (dotted line). c Tracking of \( \varphi_{rd} \): \( \varphi_{rd} \) (solid line) and \( \varphi_{rd}^{*} \) (dotted line). d Response of \( \varphi_{rq} \)

Fig. 7
figure 7

Voltages applied to the DFI-Motor

We can observe clearly that the flux responses respect the imposed constraints. So, after transient, the stator and the rotor fluxes recover respectively their reference signals. Consequently, the flux orientation objective is guaranteed, and the stator reactive power is equal zero in steady-state operation. Also, the results show quickness of transients, good robustness and insensitivity in the face of the uncertainties.

7 Conclusion

In this chapter, a new fuzzy adaptive backstepping controller has been developed for a DFI-Motor. A Lyapunov approach has been adopted to derive the parameter adaptation laws and prove the stability of the control system as well as the asymptotic convergence of the underlying tracking and estimation errors to zero. Simulation results show clearly the effectiveness of this control approach. In spite of the presence of the model uncertainties, the dynamic behavior of the DFI-Motor presents high performances in terms of the speed and the load torque tracking accuracy, satisfactory flux control and consequently, stator reactive power regulation to zero in steady-state. It is worth noting that the control methodology proposed here can be easily extended to any other high performance electric drives. In our future work, one will address the experimental implementation of this proposed control scheme and the design of a speed sensorless controller.