1 Introduction

Nowadays, Quadrotor UAV plays a significant role in people life and researchers have paid more attention for designing better control strategy for it. Due to the Quadrotor UAVs features such as speed, small size and environmentally friendly, it has been applying for weather monitoring, relief and rescue operation and military purposes, etc. The dynamic of the Quadrotor UAVs is highly coupled, nonlinear and under actuated, therefore it’s very difficult to design a robust controller despite the external disturbances and uncertainties. One more fact should be taken into consideration is that the Quadrotor UAVs is affected by aerodynamic effects and inertial torque during the flight pass.

It’s well known that sliding mode control (SMC) is a nonlinear control strategy which could cope with the uncertainties and external disturbances on sliding surface [1,2,3,4,5] and this powerful method repeatedly was applied for the Quadrotor UAVs. In [6], an adaptive sliding mode control by feedback linearization were used for a Quadrotor helicopter. In [7, 8], a new fuzzy integral sliding surface was designed for improving the stability of the nonlinear system. In [9], a finite-time control algorithm based on SMC was improved for altitude control of the Quadrotor UAVs and multi variable finite-time control were used in [10, 11]. In order to cope with the uncertainties, an adaptive sliding mode control was designed for the Quadrotor UAVs. Additional references about SMC can be found in [12, 13]. In [14], a Mixed H2/H∞ Controller based on LMI based Approach is used. The mentioned control strategies can improve the robustness of the system.

In the recent years, combination of back-stepping and sliding mode control was used for controlling the altitude and the position of the Quadrotor UAVs which back-stepping is used to track the desired trajectory [15] and SMC is responsible for inclining the robustness of the system [16, 17]. In [18], back-stepping and sliding mode techniques were applied to distributed secondary control of micro Quadrotor UAVs. A new fuzzy back-stepping sliding mode control was provided for the under-actuated Quadrotor UAVs in [19]. In [20], an adaptive back-stepping control method was designed and analyzed for fault-tolerant of the nonlinear system. In [21], despite of unmodeled dynamics, a new fuzzy adaptive back-stepping controller was used. In [22], a multi variable sliding mode with back-stepping controller based on disturbance observe was presented. A hybrid method based on fuzzy integral back-stepping controller was designed for hovering the Quadrotor [23]. In [24], combination of neural network and back-stepping was designed for helicopter.

Iterative learning control is formulated based on its previous experiments and repeatedly performed for a same task in order to increase the accuracy and the robustness against the uncertainties and external disturbances. In [25], a novel fuzzy PID-type iterative learning control was applied for the Quadrotor UAVs and in order to account with the unmodeled dynamic and systematic error, an adaptive tracking control with iterative learning control were used in [26]. In [27], an online PID-iterative learning control with switching gain was used for circular trajectory motion in three dimensions. For the precise Quadrotor UAVs trajectory tracking, optimization based on iterative learning control was used [28]. In [29], for accurate control of a team of Quadrotors, a distributed iterative learning control was used. According to the mentioned references, iterative learning control can incline the accuracy of the system and reject the disturbances by using simple update rules.

The main novelty of this paper is designing back-stepping integral sliding mode control with iterative learning control for the Quadrotor UAVs. On the other hand, the back-stepping is responsible for tracking the desired trajectory and the highly coupled feature of under-actuated of the dynamic are sought by virtual controller. Next, the integral sliding mode controller is designed and analyzed for coping with the uncertainties and external disturbances. In addition, in order to improve the accuracy of the tracking, iterative learning control is designed according to previous experiments which is resulted in better tracking, accuracy and robustness and lower errors of states.

The remaining part of this paper are organized as follow: Sect. 2 presents the Quadrotor UAVs dynamics. The back-stepping integral sliding mode control using Lyapunov theory are given in Sect. 3. Designing the iterative learning control is presented in Sect. 4. Simulation results are presented in Sect. 5 and finally, Sect. 6 Concludes the paper.

2 Quadrotor UAVs Model

In this paper, the model for dynamic of the Quadrotor UAVs is considered from [30], which is nonlinear, strongly coupled and under actuated. The Quadrotor UAVs structure is shown in Fig. 1 which consists of four rotors. In this structure two types of coordinate system such as earth coordinate ξ = [x, y, z] and body coordinate ƞ = [φ, θ, Ψ] were defined. The [x, y, z] denote the position of the Quadrotor UAVs and [φ, θ, Ψ] refer to roll angle, pitch angle and yaw angle which could control the altitude of the Quadrotor UAVs. It should be mentioned that the movement of the Quadrotor UAVs in different directions are achieved based on the thrust generated by adjusting the rotational speeds of the four rotors. According to [30], the translational and the rotational dynamic model for the Quadrotor UAVs can be defined as follow:

$$\begin{aligned} \tau = {{ {\text J}\dot{\upomega }}} + \upomega ({\text{J}}\upomega + {\text{J}}_{{\text{r}}} {\Omega }_{{\text{r}}} {\text{e}}_{3} ) + {\text{d}}_{\tau } \hfill \\ {{{\text m}\dot{\text v}}} = {\text{ RT }} - {\text{mge}}_{3} - {\text{d}}_{{\text{T}}} \hfill \\ \end{aligned}$$
(1)

where ω is the angular velocity vector, τ refers to the torque vector for the three axes, J denotes the inertia tensor, \({\Omega }_{{\text{r}}} = {\Omega }_{1} - {\Omega }_{2} + {\Omega }_{3} - {\Omega }_{4}\) is the component torques in the three directions, R is the rotation matrix, \({\text{J}}_{{\text{r}}}\) describes the moment of the rotor inertia, T is the force vector, \({\text{d}}_{\tau }\) and \({\text{d}}_{{\text{T}}}\) are the disturbance vectors for the translational and rotational subsystems respectively.

Fig. 1
figure 1

Quadrotor UAVs Structure

Based on Eq. (1), equations of the motion in each axes are described as follow [28]:

$${\ddot{\text{x}}} = (\sin{\uptheta }\cos {\upvarphi }\cos {\Psi } + \sin{\upvarphi} \sin{\Psi})\left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1} - \frac{{{\text{d}}_{{\text{x}}} }}{{\text{m}}}$$
(2)
$${{\ddot{\text{y}}}} = (\cos {\upvarphi} \sin{\uptheta} \cos {\Psi } - \sin\upvarphi \sin\Psi )\left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1} - \frac{{{\text{d}}_{{\text{y}}} }}{{\text{m}}}$$
(3)
$${{\ddot{\text{z}}}} = - {\text{ g }} + \cos{\uptheta} \cos {\upvarphi }\left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1} - \frac{{{\text{d}}_{{\text{z}}} }}{{\text{m}}}$$
(4)
$${{\ddot{\upvarphi } = \dot{\uptheta }\dot{\Psi }}}\frac{{{\text{I}}_{{\text{y}}} - {\text{I}}_{\text{z}} }}{{{\text{I}}_{\text{y}} }} + {{\dot{\uptheta }\Omega }}_{\text{r}} \frac{{{\text{J}}_{\text{r}} }}{{{\text{I}}_{\text{x}} }} + \frac{\text{Lb}}{{{\text{I}}_{\text{x}} }}{\text{u}}_{2} - \frac{{{\text{d}}_{\upvarphi } }}{{{\text{I}}_{\text{x}} }}$$
(5)
$${{\ddot{\uptheta } = \dot{\upvarphi }\dot{\Psi }}}\frac{{{\text{I}}_{{\text{z}}} - {\text{I}}_{\text{x}} }}{{{\text{I}}_{\text{y}} }} + {{\dot{\upvarphi }\Omega }}_{\text{r}} \frac{{{\text{J}}_{\text{r}} }}{{{\text{I}}_{\text{y}} }} + \frac{\text{Lb}}{{{\text{I}}_{\text{y}} }}{\text{u}}_{3} - \frac{{{\text{d}}_{\uptheta } }}{{{\text{I}}_{\text{y}} }}$$
(6)
$${{\ddot{\Psi } = \dot{\upvarphi }\dot{\uptheta }}}\frac{{{\text{I}}_{{\text{x}}} - {\text{I}}_{\text{y}} }}{{{\text{I}}_{\text{z}} }} + \frac{\text{d}}{{{\text{I}}_{\text{z}} }}{\text{u}}_{4} - \frac{{{\text{d}}_{\Psi } }}{{{\text{I}}_{\text{z}} }}$$
(7)

where L is the Quadrotor UAVs arm length, d is the drag coefficient, b refers to the thrust coefficient, m denote the total Quadrotor UAVs mass and \({\text{I}}_{{{\text{X}},{\text{Y}},{\text{Z }}}}\) are the moments of inertia about x, y, z axes. The parameters of the motion equations are defined in Table 1.

Table 1 Parameters of quadrotor UAVs dynamic

The relationship between the control inputs and the rotors speed in each axes is described as:

$${\text{U }} = \left[ {\begin{array}{*{20}c} {{\text{u}}_{1} } \\ {{\text{u}}_{2} } \\ {{\text{u}}_{3} } \\ {{\text{u}}_{4} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} 1 & {1} \\ 0 & { - 1} \\ \end{array} } & {\begin{array}{*{20}c} {1} & {1} \\ {0} & {1} \\ \end{array} } \\ {\begin{array}{*{20}c} 1 & {0} \\ 1 & { - 1} \\ \end{array} } & {\begin{array}{*{20}c} { - 1} & {0} \\ {1} & { - 1} \\ \end{array} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {{\Omega }_{1}^{2} } \\ {{\Omega }_{2}^{2} } \\ {{\Omega }_{3}^{2} } \\ {{\Omega }_{4}^{2} } \\ \end{array} } \right].$$
(8)

It should be mentioned that the translational dynamic is controlled by \({\text{u}}_{1}\) and the rotational dynamic is related to \({\text{u}}_{2}\), \({\text{u}}_{3}\) and \({\text{u}}_{4}\).

In order to design the controller, the state variables are selected as follow:

$${\text{X}} = [{\text{x}},{\text{ y}},{\text{ z}},\upvarphi ,\uptheta ,\Psi ,\dot{\text {x}},\;\dot{\text{y}},\;\dot{\text{z}},\;\dot{\upvarphi },\dot{\uptheta },\dot{\Psi }].$$
(9)

Then according to Eqs. (27), a state space representation for Quadrotor UAVs can be achieved as:

$${{\dot{\text{X}}}} = \left[ \begin{array}{*{20}c} {\text{x}}_{7}\\ {\text{x}}_{8}\\ {\text{x}}_{9}\\ {\text{x}}_{10}\\ {\text{x}}_{11}\\ {\text{x}}_{12} \left( \sin{\text{x}}_{5} \cos{\text{x}}_{4} \cos{\text{x}}_{6} + \sin{\text{x}}_{4} \sin{\text{x}}_{6} \right)\left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1} - \frac{{{\text{d}}_{\text{x}} }}{{\text{m}}} \\ \left( \cos{\text{x}}_{4} \sin{\text{x}}_{5} \cos{\text{x}}_{6} - \sin{\text{x}}_{4} \sin{\text{x}}_{6} \right)\left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1} - \frac{{{\text{d}}_{\text{y}} }}{{\text{m}}} \\ - {\text{g }} + \cos{\text{x}}_{5} \cos{\text{x}}_{4} \left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1} - \frac{{{\text{d}}_{\text{z}} }}{{\text{m}}} \\ {\text{x}}_{11} {\text{x}}_{12} \frac{{{\text{I}}_{\text{y}} - {\text{I}}_{\text{z}} }}{{{\text{I}}_{\text{y}} }} + {\text{x}}_{11} {\Omega }_{\text{r}} \frac{{{\text{J}}_{\text{r}} }}{{{\text{I}}_{\text{x}} }} + \frac{\text{Lb}}{{{\text{I}}_{\text{x}} }}{\text{u}}_{2} - \frac{{{\text{d}}_{\varphi } }}{{{\text{I}}_{\text{x}} }} \\ {\text{x}}_{10} {\text{x}}_{12} \frac{{{\text{I}}_{\text{z}} - {\text{I}}_{\text{x}} }}{{{\text{I}}_{\text{y}} }} + {\text{x}}_{10} {\Omega }_{\text{r}} \frac{{{\text{J}}_{\text{r}} }}{{{\text{I}}_{\text{y}} }} + \frac{\text{Lb}}{{{\text{I}}_{\text{y}} }}{\text{u}}_{3} - \frac{{{\text{d}}_{\theta } }}{{{\text{I}}_{\text{y}} }} \\ {\text{x}}_{11} {\text{x}}_{12} \frac{{{\text{I}}_{\text{x}} - {\text{I}}_{\text{y}} }}{{{\text{I}}_{\text{z}} }} + \frac{\text{d}}{{{\text{I}}_{\text{z}} }}{\text{u}}_{4} - \frac{{{\text{d}}_{\Psi } }}{{{\text{I}}_{\text{z}} }} \\ \end{array} \right]$$

It’s crystal clear that the body coordinate angles and their time derivation don’t depend on the earth coordinate states and the whole of the dynamic can be decoupled into two subsystems: the angular rotations and the linear translation. The control system schematic diagram for this approach is shown in Fig. 2.

Fig. 2
figure 2

The control system schematic diagram

In this section the desired trajectories are calculated by considering Eqs. (2) and (3) which extremely depend on the roll and pitch angles and the desired positions are transformed into commands of the roll angle and the pitch angle:

$${{\ddot{x}}}_{\text{d}} = \left( \sin{\text x}_{{5{\text{d}}}} \cos{\text x}_{{4{\text{d}}}} \cos{\text x}_{{6{\text{d}}}} + \sin{\text x}_{{4{\text{d}}}} \sin{\text x}_{{6{\text{d}}}} \right)\left( {\frac{{\text{b}}}{{\text{m}}}} \right) \text{u}_{1}$$
(10)
$$\ddot{y}_{{\text{d}}} = \left( \cos {\text{x}}_{{4{\text{d}}}} \sin {\text{x}}_{{5{\text{d}}}} \cos {\text{x}}_{{6{\text{d}}}} + \sin {\text{x}}_{{4{\text{d}}}} \sin {\text{x}}_{{6{\text{d}}}} \right)\left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1}$$
(11)

where \({{\ddot{x}}}_{\text{d}}\) and \({{\ddot{y}}}_{\text{d}}\) can be approximated by \({{\ddot{x}}}_{\text{d}} = {\text{k}}_{{\text{x}}} {\text{e}}_{{\text{x}}}\) and \({{\ddot{y}}}_{\text{d}} = {\text{k}}_{{\text{y}}} {\text{e}}_{{\text{y}}}\) where \({\text{k}}_{\text{x}}\) and \({\text{k}}_{\text{y}}\) are positive constants. The desired commands for both roll and pitch angles are designed as follow:

$${\text{x}}_{{4{\text{d}}}} = \cos ^{{ - 1}} {\text{ }}\left( {\frac{{{\text{mk}}_{{\text{x}}} {\text{e}}_{{\text{x}}} }}{{{\text{bu}}_{1} \sin {\text{x}}_{{5{\text{d}}}} \cos {\text{x}}_{{6{\text{d}}}} }} - \frac{{\sin {\text{x}}_{{4{\text{d}}}} \sin {\text{x}}_{{6{\text{d}}}} }}{{\sin {\text{x}}_{{{\text{5d}}}} \cos {\text{x}}_{{{\text{6d}}}} }}} \right)$$
(12)
$${\text{x}}_{{5{\text{d}}}} = \sin ^{{ - 1}} \left( {\frac{{{\text{mk}}_{{\text{y}}} {\text{e}}_{{\text{y}}} }}{{{\text{bu}}_{1} \cos {\text{x}}_{{4{\text{d}}}} \cos {\text{x}}_{{6{\text{d}}}} }} + \frac{{\sin {\text{x}}_{{4{\text{d}}}} \sin {\text{x}}_{6} {\text{d}}}}{{\cos {\text{x}}_{4} {\text{d}}\cos {\text{x}}_{6} {\text{d}}}}} \right)$$
(13)

It can be concluded from the analysis of Eqs. (2) and (3) that the position of the Quadrotor UAVs indirectly are controlled by \({\varphi }\), θ which are adjusted by \({\text{u}}_{2}\) and \({\text{u}}_{3}\). In addition, the altitude of the Quadrotor UAVs and the yaw angle are directly controlled by \({\text{u}}_{1}\) and \({\text{u}}_{4}\) respectively.

3 BISMC Design for Translational Subsystem

Define \({\text{z}}_{3} = {\text{x}}_{3} - {\text{x}}_{{3{\text{d}}}}\) as error of the altitude. The time derivation of \(z_{3}\) will be \({{\dot{z}}}_{3} = {{\dot{\text{x}}}}_{3} - {{\dot{x}}}_{{3{\text{d}}}}\).

According to stability theory (Lyapunov), a positive candidate function is defined as \({\text{v}}_{1} = \frac{1}{2}{\text{z}}_{3}^{2}\) and the time derivation of \({\text{v}}_{1}\) will be \({{\dot{v}}}_{1} = {\text{z}}_{3} {{\dot{z}}}_{3}\).

$${{\dot{v}}}_{1} = {\text{z}}_{3} ({{\dot{x}}}_{3} - {{\dot{x}}}_{{3{\text{d}}}} )$$
(14)

Define \({\text{z}}_{6}\) = \({{\dot{x}}}_{3}\) − \({\text{a}}_{1}\), where \(a_{1}\) is a virtual control input. Then \({{\dot{v}}}_{1}\) is written as:

$${{\dot{v}}}_{1} = {\text{z}}_{3} {\text{z}}_{6} + {\text{z}}_{3} (a_{1} - {{\dot{x}}}_{{3{\text{d}}}} ).$$
(15)

In order to make sure that Eq. (15) is stable, \(a_{1}\) is implemented as:

$$a_{1} = {{\dot{\text{x}}}}_{{3{\text{d }}}} - {\text{c}}_{1} {\text{z}}_{3}$$
(16)

where \({\text{c}}_{1}\) is a non-zero positive constant. In addition, the time derivation of \({\text{v}}_{1}\) can be computed as:

$${{\dot{v}}}_{1} = {\text{z}}_{3} {\text{z}}_{6} + {\text{z}}_{3} ({{\dot{x}}}_{{3{\text{d}}}} - {\text{c}}_{1} {\text{z}}_{3} - {{\dot{x}}}_{{3{\text{d}}}} ) = - {\text{c}}_{1} {\text{z}}_{3}^{2} + {\text{z}}_{3} {\text{z}}_{6} .$$
(17)

The integral sliding mode surface for the altitude state is considered as follow:

$${\text{s}}_{1} = {\text{z}}_{6} + {\text{k}}_{1} \smallint {\text{z}}_{3} .$$
(18)

By considering the switching law as:

$${{\dot{s}}}_{1} = - \varepsilon {\text{s}}_{1} - {\text{sgn }}({\text{s}}_{1} )$$
(19)

where ε is a positive constant and the time derivation of \({\text{s}}_{1}\) is calculated as follow:

$${{\dot{z}}}_{6} + {\text{k}}_{1} {\text{z}}_{3} = - \varepsilon {\text{s}}_{1} - {\text{sgn }}({\text{s}}_{1} ).$$
(20)

By combination of the Lyapunov theory and the integral sliding mode, the control input \({\text{u}}_{1}\) is designed as follow:

$${\text{u}}_{1} = \frac{\text{m}}{{\cos{\text{x}}_{5} {\cos{\text x}}_{4} {\text{b}}}}\left[ { - \left( {{\text{k}}_{1} + {\text{c}}_{1} } \right){\text{z}}_{3} + {\text{g}} - \varepsilon {\text{s}}_{1} - {\text{sgn }}\left( {{\text{s}}_{1} } \right) + {{\dot{\text{x}}}}_{{6{\text{d}}}} + \frac{{{\text{d}}_{\text{z}} }}{\text{m}}} \right].$$
(21)

For the stability analysis, a positive Lyapunov function is selected as:

$${\text{v}}_{2} = \frac{1}{2}{\text{v}}_{1}^{2} + \frac{1}{2}{\text{s}}_{1}^{2} .$$
(22)

The time derivation of Eq. (22) is calculated as:

$${{\dot{v}}}_{2} = {\text{v}}_{1} {{\dot{v}}}_{1} + {\text{s}}_{1} {{\dot{s}}}_{1} .$$
(23)

And

$${{\dot{v}}}_{2} = {\text{v}}_{1} {{\dot{v}}}_{1} + {\text{s}}_{1} \left( { - {\text{g }} + \cos{\text{x}}_{5} \cos{\text x}_{4} \left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1} - \frac{{{\text{d}}_{\text{z}} }}{{\text{m}}}} \right).$$
(24)

By substituting (21) into (24), the necessary condition of Lyapunov theorem verified (\({{\dot{v}}}_{2} < 0\)).

3.1 BISMC Design for Rotational Subsystem

By defining \({\text{z}}_{4}\) = \({\text{x}}_{4}\) − \({\text{x}}_{{4{\text{d}}}}\) as error of the roll angle, the time derivation of \({\text{z}}_{4}\) will be \({{\dot{z}}}_{4}\) = \({{\dot{\text{x}}}}_{4}\) − \({{\dot{x}}}_{{4{\text{d}}}}\).

The stability of the roll angle state is analyzed by Lyapunov theory with defining a positive definite function as \({\text{v}}_{3}\) = \(\frac{1}{2}{\text{z}}_{4}^{2}\) and the time derivation of \({\text{v}}_{3}\) will be \({{\dot{v}}}_{3}\) = \({\text{z}}_{4} {{\dot{z}}}_{4}\). Then:

$${{\dot{v}}}_{3} = {\text{z}}_{4} ({{\dot{x}}}_{4} - {{\dot{x}}}_{{4{\text{d}}}} ).$$
(25)

Define \({\text{z}}_{10}\) = \({{\dot{x}}}_{4}\) − \(a_{2}\), where \(a_{2}\) is virtual control input. Then \({{\dot{v}}}_{3}\) can be concluded:

$${{\dot{v}}}_{3} = {\text{z}}_{4} {\text{z}}_{10} + {\text{z}}_{4} (a_{2} - {{\dot{x}}}_{{4{\text{d}}}} ).$$
(26)

In order to make sure that Eq. (26) is stable, \(a_{2}\) is defined as:

$$a_{2} = {{\dot{\text{x}}}}_{{4{\text{d}}}} - {\text{c}}_{2} {\text{z}}_{4} ,$$
(27)

where \({\text{c}}_{2}\) is a non-zero positive constant. Furthermore, the time derivation of \({\text{v}}_{3}\) can be achieved as:

$${{\dot{v}}}_{3} = {\text{z}}_{4} {\text{z}}_{10} + {\text{z}}_{4} ({{\dot{x}}}_{{4{\text{d}}}} - {\text{c}}_{2} {\text{z}}_{4} - {{\dot{x}}}_{{4{\text{d}}}} ) = - {\text{c}}_{2} {\text{z}}_{4}^{2} + {\text{z}}_{4} {\text{z}}_{10} .$$
(28)

The integral sliding mode surface for the roll angle state is defined as follow:

$${\text{s}}_{2} = {\text{z}}_{10} + {\text{k}}_{2} \smallint {\text{z}}_{4}$$
(29)

Now consider the reaching law as:

$${{\dot{s}}}_{2} = - \varepsilon {\text{s}}_{2} - {\text{sgn }}({\text{s}}_{2} )$$
(30)

where ε is a positive constant. By the time derivation of Eq. (29):

$${{\dot{z}}}_{10} + {\text{k}}_{2} {\text{z}}_{4} = - \varepsilon {\text{s}}_{2} = {\text{sgn }}({\text{s}}_{2} )$$
(31)

According to Eqs. (28)–(31), the control input \({\text{u}}_{2}\) is designed as follow:

$${\text{u}}_{2} = \frac{{{\text{I}}_{\text{x}} }}{\text{Lb}}\left[ { - ({\text{k}}_{2} + {\text{c}}_{2} ){\text{z}}_{4} - \varepsilon {\text{s}}_{2} - {\text{sgn }}\left( {{\text{s}}_{2} } \right) + {{\dot{\text{x}}}}_{{10{\text{d}}}} + \frac{{{\text{d}}_{\varphi } }}{{{\text{I}}_{\text{x}} }} - {\text{x}}_{11} {\Omega }_{\text{r}} \frac{{{\text{J}}_{\text{r}} }}{{{\text{I}}_{\text{x}} }} - {\text{x}}_{11} {\text{x}}_{12} \frac{{{\text{I}}_{\text{y}} - {\text{I}}_{\text{z}} }}{{{\text{I}}_{\text{y}} }}} \right] .$$
(32)

For examining the stability, a positive Lyapunov function is defined as:

$${\text{v}}_{4} = \frac{1}{2}{\text{v}}_{3}^{2} + \frac{1}{2}{\text{s}}_{2}^{2} .$$
(33)

The time derivation of Eq. (33) is calculated as follow:

$${{\dot{v}}}_{4} = {\text{v}}_{3} {{\dot{v}}}_{3} + {\text{s}}_{2} {{\dot{s}}}_{2} .$$
(34)

And

$${{\dot{v}}}_{4} = {\text{v}}_{3} {{\dot{v}}}_{3} + {\text{s}}_{1} \left( {{\text{x}}_{11} {\text{x}}_{12} \frac{{{\text{I}}_{\text{y}} - {\text{I}}_{\text{z}} }}{{{\text{I}}_{\text{y}} }} + {\text{x}}_{11} {\Omega }_{\text{r}} \frac{{{\text{J}}_{\text{r}} }}{{{\text{I}}_{\text{x}} }} + \frac{\text{Lb}}{{{\text{I}}_{\text{x}} }}{\text{u}}_{2} - \frac{{{\text{d}}_{\upvarphi } }}{{{\text{I}}_{\text{x}} }}} \right).$$
(35)

By replacing (32) into (35), the necessary condition of Lyapunov theorem is verified (\({{\dot{\text{v}}}}_{4} < 0\)).

It should be mentioned that the next steps are similar with \({\text{u}}_{2}\), so \({\text{u}}_{3}\) and \({\text{u}}_{4}\) can be achieved in the same way:

$${\text{u}}_{3} = \frac{{{\text{I}}_{\text{y}} }}{\text{Lb}}\left[ { - ({\text{k}}_{3} + {\text{c}}_{3} ){\text{z}}_{5} - \varepsilon {\text{s}}_{3} - {\text{sgn }}\left( {{\text{s}}_{3} } \right) + {{\dot{\text{x}}}}_{{12{\text{d}}}} + \frac{{{\text{d}}_{\theta } }}{{{\text{I}}_{\text{y}} }} - {\text{x}}_{10} {\Omega }_{\text{r}} \frac{{{\text{J}}_{\text{r}} }}{{{\text{I}}_{\text{y}} }} - {\text{x}}_{10} {\text{x}}_{12} \frac{{{\text{I}}_{\text{z}} - {\text{I}}_{\text{x}} }}{{{\text{I}}_{\text{y}} }}} \right]$$
(36)
$${\text{u}}_{4} = \frac{{{\text{I}}_{\text{z}} }}{\text{d}}\left[ { - ({\text{k}}_{4} + {\text{c}}_{3} ){\text{z}}_{6} - \varepsilon {\text{s}}_{4} - {\text{sgn }}\left( {{\text{s}}_{4} } \right) + {{\dot{\text{x}}}}_{{12{\text{d}}}} + \frac{{{\text{d}}_{\Psi } }}{{{\text{I}}_{\text{z}} }} - {\text{x}}_{11} {\text{x}}_{12} \frac{{{\text{I}}_{\text{x}} - {\text{I}}_{\text{y}} }}{{{\text{I}}_{\text{z}} }}} \right]$$
(37)

4 Iterative Learning Control

In this section, the iterative learning control (ILC) is designed and analyzed for the system for precise tracking of the desired trajectory. ILC is based on previous experiments so that in each iteration the recorded trajectories are analyzed in order to calculate the next commands as control inputs for better converging the actual values to reference trajectories. Standard iterative learning control scheme is shown in Fig. 3. On the other hand, ILC is able to cope with repetitive disturbance or systematic error in the model. The formulation of the iterative learning control is inspired from [31].

Fig. 3
figure 3

Iterative learning control scheme

At first, the states and the relative control inputs are considered separately in two vectors as follow:

$$\begin{aligned} {\text{U}} & = \left[ {{\text{U}}_{1} {\text{U}}_{2} {\text{U}}_{3} {\text{U}}_{4} } \right]^{\text{T}} \\ {\text{X}} & = \left[ {{\text{X}}_{9} {\text{X}}_{10} {\text{X}}_{11} {\text{X}}_{12} } \right]^{\text{T}} , \\ \end{aligned}$$
(38)

where

$$\left[ {\begin{array}{*{20}l} {{\text{X}}_{9} } \\ {{\text{X}}_{10} } \\ {{\text{X}}_{11} } \\ {{\text{X}}_{12} } \\ \end{array} } \right] = \left[ \begin{array}{*{20}l} - {\text{g }} + \cos{\text{x}}_{5} \cos{\text{x}}_{4} \left( {\frac{{\text{b}}}{{\text{m}}}} \right){\text{u}}_{1} - \frac{{{\text{d}}_{{\text{z}}} }}{{\text{m}}} \hfill \\ {\text{x}}_{11} {\text{x}}_{12} \frac{{{\text{I}}_{{\text{y}}} - {\text{I}}_{{\text{z}}} }}{{{\text{I}}_{{\text{y}}} }} + {\text{x}}_{11} {\Omega }_{{\text{r}}} \frac{{{\text{J}}_{{\text{r}}} }}{{{\text{I}}_{{\text{x}}} }} + \frac{\text{Lb}}{{{\text{I}}_{{\text{x}}} }}{\text{u}}_{2} - \frac{{{\text{d}}_{\varphi } }}{{{\text{I}}_{{\text{x}}} }} \hfill \\ {\text{x}}_{10} {\text{x}}_{12} \frac{{{\text{I}}_{{\text{z}}} - {\text{I}}_{{\text{x}}} }}{{{\text{I}}_{{\text{y}}} }} + {\text{x}}_{10} {\Omega }_{{\text{r}}} \frac{{{\text{J}}_{{\text{r}}} }}{{{\text{I}}_{{\text{y}}} }} + \frac{\text{Lb}}{{{\text{I}}_{{\text{y}} }}}{\text{u}}_{3} - \frac{{{\text{d}}_{\theta } }}{{{\text{I}}_{{\text{y}}} }} \hfill \\ {\text{x}}_{11} {\text{x}}_{12} \frac{{{\text{I}}_{{\text{x}}} - {\text{I}}_{{\text{y}}} }}{{{\text{I}}_{{\text{z}}} }} + \frac{\text{d}}{{{\text{I}}_{{\text{z}}} }}{\text{u}}_{4} - \frac{{{\text{d}}_{\Psi } }}{{{\text{I}}_{{\text{z}}} }} \hfill \\ \end{array} \right].$$
(39)

Due to the perfect model (39), the desired trajectory can be tracked using the back-stepping integral sliding mode controller as:

$${\text{X}}_{\text{ref}} = f({\text{U}}_{\text{BISMC}} ).$$
(40)

The main idea of the ILC is not approximating the uncertainties of the model but is calculating the commands input as unknown disturbance input \({\text{U}}_{\text{d}}\). That is to combine with \({\text{U}}_{\text{BISMC}}\) for better tacking the desired trajectory. The total control input is designed as follow:

$$\begin{aligned} {\text{U}}_{\text{total}} & = {\text{U}}_{\text{BISMC}} + {\text{U}}_{\text{d}} \\ {{\dot{\text{X}}}}_{\text{j}} & = f({\text{U}}_{\text{total}} ) \\ {{\dot{\text{X}}}}_{\text{j}} & = f({\text{U}}_{\text{BISMC}} + {\text{U}}_{\text{d}} ). \\ \end{aligned}$$
(41)

The update law for estimation of the next command for the unknown disturbance input \({\text{U}}_{\text{d}}\) is described as:

$${\text{U}}_{{{\text{d}},{\text{j}} + 1}} = {\text{U}}_{{{\text{d}},{\text{j}}}} - {\text{F}}^{\text{T}} {{{\text K}\delta }}_{\text{j}}$$
(42)

where \({\text K}\) is a positive matrix and \({\text{F}}\) is a matrix which is achieved according to Eq. (39) along the desired trajectories by linear time varying method as follow:

$${\text{F = }} \left[ {\begin{array}{*{20}c} {\frac{{{\text{dX}}_{9} }}{{{\text{dU}}_{1} }}} & \cdots & {\frac{{{\text{dX}}_{9} }}{{{\text{dU}}_{4} }}} \\ \vdots & \ddots & \vdots \\ {\frac{{{\text{dX}}_{12} }}{{{\text{dU}}_{1} }}} & \cdots & {\frac{{{\text{dX}}_{12} }}{{{\text{dU}}_{4} }}} \\ \end{array} } \right].$$
(43)

In addition, \({\delta }_{\text{j}}\) refers to the error vector between the desired trajectory and the actual value.

$${\delta }_{\text{j}} = {{\dot{\text{X}}}}_{\text{j}} - {{\dot{\text{X}}}}_{\text{ref}}$$
(44)

Then Eq. (41) can be written around the ideal operating point of \({\text{U}}_{\text{BISMC}}\).

$${{\dot{\text{X}}}}_{\text{j}} = f({\text{U}}_{\text{BISMC}} + {\text{U}}_{\text{d}} ) \sim f({\text{U}}_{\text{BISMC}} ) + \left( {\frac{{\text{d}}}{{\text{dU}}}f\left| {{\text{U}}_{\text{BISMC}} } \right.} \right) \cdot {\text{U}}_{\text{d}}$$
(45)

Finally, Eq. (44) can be achieved as function of the unknown disturbance input as:

$${\delta }_{\text{j}} = {{\dot{\text{X}}}}_{\text{j}} - {{\dot{\text{X}}}}_{\text{ref}} = \left( {\frac{{\text{d}}}{{\text{dU}}}f\left| {{\text{U}}_{\text{BISMC}} } \right.} \right) \cdot {\text{U}}_{\text{d}} = {\text{FU}}_{\text{d}}$$
(46)

5 Simulation

In this section, the effectiveness of the proposed method in comparison with only BISMC is validated. The desired trajectories for x, y and z axes are selected as: \({\text{x}}_{\text{d}}\) = \(\sin \left( {\frac{{2{\pi }}}{50}{\text{t}}} \right)\), \({\text{y}}_{\text{d}}\) = \(\cos \left( {\frac{{2{\pi }}}{50}{\text{t}}} \right)\) and \({\text{z}}_{\text{d}}\) = 3t and Eqs. (10) and (11) refer to reference commands for \({\varphi }\) and θ. The initial states are defined as \({\text{x}}\)(0) = 0, \({\text{y}}\)(0) = 1, \({\text{z}}\)(0) = 0, \({\varphi }\)(0) = 0, \({\theta }\)(0) = 0, Ψ(0) = − 0.12. The external disturbances are defined as follow:

$${\text{d}}_{\text{x}} = 2\sin {\text{t}},\;{\text{d}}_{\text{y}} = { 2}\sin {\text{t}},\;{\text{d}}_{\text{z}} = 2\sin {\text{t,}}$$
$${\text{d}}_\varphi = 0. 1\sin \left( {\frac{{{2\pi}}}{{50}}{\text{t}}} \right),\;{\text{d}}_\theta = 0. 1\sin \left( {\frac{{2{\pi }}}{50}{\text{t}}} \right),$$
$${\text{d}}_{{\Psi}} = 0.1\sin \left( {{\frac{{2\pi }}{{50}}{\text{t}}}} \right).$$

In addition, the controller parameters are selected as: \({\text{k}}_{1} = 100\), \({\text{k}}_{2} = 100\), \({\text{k}}_{3} = 100\), \({\text{k}}_{4} = 100\), K, ε, \({\text{c}}_{1}\), \({\text{c}}_{2}\), \({\text{c}}_{3}\), \({\text{c}}_{4} > 0.\) The parameters of the Quadrotor UAVs dynamic were listed in Table 1.

It should be mentioned that the desired trajectory, the actual tracking by BISMC with ILC, and the comparative method are shown in red, blue, and black.

The simulation results are shown in Figs. 4, 5, 6, 7, 8, 9, 10, 11, 12 and 13. The time responses for the position tracking of the Quadrotor UAVs for x, y, and z axes in the two control strategies are shown in Figs. 4, 5 and 6 respectively. As can be seen from these Figures, the proposed controller method has better tracking performance from their perspective reference commands, higher accuracy, and fast transient responses in comparison with another method in the presence of the uncertainties and external disturbances. It can be concluded that the trajectories tracking errors for the mentioned method is fewer than the comparative method by using the iterative learning control. By this means that, ILC process uses from previous information’s to improve tracking accuracy by calculating the total control signal.

Fig. 4
figure 4

Position X (M)

Fig. 5
figure 5

Position Y (M)

Fig. 6
figure 6

Position Z (M)

Fig. 7
figure 7

Roll angle (rad)

Fig. 8
figure 8

Pitch angle (rad)

Fig. 9
figure 9

Yaw angle

Fig. 10
figure 10

Control input \({\text{U}}_{1}\) (N)

Fig. 11
figure 11

Control input \({\text{U}}_{2}\) (N)

Fig. 12
figure 12

Control input \({\text{U}}_{3}\) (N)

Fig. 13
figure 13

Control input \({\text{U}}_{4}\) (N)

The time responses of the roll, the pitch, and the yaw angles under the two control schemes are drawn in Figs. 7, 8 and 9. From this Figures, it’s crystal clear that the BISMC with ILC has more accurate performance for tracking the desired commands in comparison with the BISMC despite the uncertainties and external disturbances. From Figs. 4, 5, 6, 7, 8 and 9, it can be concluded that the iterative learning control by calculating the unknown disturbance input \({\text{U}}_{\text{d}}\) in each iteration can reject the disturbances and help to the proposed controller (BISMC) for better tracking performance.

Figures 9, 10, 11 and 12 show the results of the control inputs for the translational and the rotational subsystems. ILC uses unknown disturbance input \({\text{U}}_{\text{d}}\) and \({\text{U}}_{\text{BISMC}}\), therefor in some control signals more control efforts are observed. Based on researches, the results of control inputs are in the acceptable ranges. In order to justify the better tracking of the mentioned control strategy, numerical indexes are given in Table 2 which shows the integral of squared errors and the control signals as error of the position state with \({\text{u}}_{1}\) and integral of the squared rotational angles states with their control signals as \({\text{u}}_{2}\), \({\text{u}}_{3}\), and \({\text{u}}_{4}\) for the proposed method and the comparative method. From this Table, it can be seen that despite the more control efforts for the mentioned control strategy, the numerical indexes are almost in a same range.

Table 2 Numerical index

6 Conclusion

In this paper, the combination of the back- stepping integral sliding mode control was designed and analyzed for the Quadrotor UAVs. The main aim of the proposed controller (BISMC) is to track the desired trajectories which were implemented by the guidance laws (10) and (11). For precise control, an iterative learning control algorithm in addition to the proposed controller (BISMC) implemented. The iterative learning control was updated by some simple formulas according to the previous experiments in the presence of the uncertainties and external disturbance. Next, the commands which were generated by the iterative learning control as unknown disturbance input \({\text{U}}_{\text{d}}\) were added to the \({\text{U}}_{\text{BISMC}}\). The simulation results illustrated that the iterative learning control with (BISMC) can be much better than only (BISMC) in term of accuracy and fast response and disturbance rejection.