1 Introduction

In the last decades, helicopters, especially model-scaled ones, have attracted more and more attention. With capacities of vertically taking off and landing, hovering and low-speed flight, they have been widely employed in reconnaissance, surveillance, agriculture and other fields. However, due to their under-actuated nature, complex aerodynamics and strong coupling, there are still difficulties for researches to design high-performance, robust control approaches for helicopters.

Up to now, there are numerous available nonlinear trajectory tracking approaches for VTOL-UAVs, such as backstepping [1, 2], nonlinear dynamic inversion [3, 4], model predictive control (MPC) [5] and \(H_\infty \) [6]. Among them, hierarchical control approach is more commonly used, which is of a two-stage architecture consisting of a “low-level” fast inner loop and a “high-level” slow outer loop [7]. Zuo and Ru [8], Zuo and Ding [9], Cabecinhas et al. [10] adopted the hierarchical control approach to achieve the trajectory tracking for quad-rotors under external disturbances. Abdessameud and Sharifi [11], Abdessameud and Tayebi [12] accomplished the trajectory and target tracking for VTOL-UAVs using the hierarchical control approach without the linear velocity. However, the above control approaches are based on the model with the Euler angle or unit quaternion describing the attitude kinematics. Despite the fact that Euler angle is a minimal representation, it is defined locally and exhibits singularity for aggressive maneuvers [13]. For the quaternion, unwinding phenomenon, where the sign ambiguity leads to unnecessary large-angle rotation, may lead to discontinuity [14]. Instead, the rotation matrix has received much interest [15], in that it is available for a wider scope and capable of avoiding ambiguity and discontinuity.

Compared with other VTOL-UAVs, model-scaled helicopters are of more model uncertainty, which may affect the tracking performance seriously. In [1, 2, 16], neural network, nonlinear damping and disturbance observer were, respectively, employed to estimate and compensate unmodeled dynamics; however, they have their problems as well. Large number of nodes of the neural network may increase the algorithm complexity [8]; the nonlinear damping may result in a large control input [17]; and the disturbance observer requires large observer parameters [18].

In this paper, an adaptive hierarchical control approach is proposed for the model-scaled helicopter to achieve the trajectory tracking. The attitude kinematics of the helicopter is represented with the rotation matrix proposed in [19]. The position and attitude loop controls are designed separately. In the position loop, based on an integral-quadratic Lyapunov function, a position loop control with hyperbolic tangent functions is designed. As an intermediate step, a command rotation matrix is extracted. In the attitude loop, to avoid singularity proposed in [19], an attitude loop control is designed based on a barrier-quadratic Lyapunov function [20]. The contributions of this paper are as follows:

  1. (i)

    the minimum rotation principle is used to extract a command attitude, and criteria of control parameters are built to avoid singularity during the extraction;

  2. (ii)

    with the attitude represented by the rotation matrix, a singularity-free attitude control is developed;

  3. (iii)

    the upper bounds of the unmodeled dynamics are estimated with adaptive algorithms.

The configuration of this paper is arranged as follows: Sect. 2 provides the problem statements, Sect. 3 presents the main control approach design, Sect. 4 carries out some simulations on a model-scaled helicopter, and Sect. 5 draws conclusions.

2 Problem statements

2.1 Preliminaries

In the following, \(\varvec{I_3}\in {\mathbb {R}}^{3\times 3}\) denotes a \(3\times 3\) identity matrix, \(\Vert \cdot \Vert \) denotes the Euclidean norm of a vector, \(\mathrm {tr}(\cdot )\) denotes the trace of a square matrix, \(\bar{\lambda }(\cdot )\) and \(\underline{\lambda }(\cdot )\) denote the maximum and minimum eigenvalues of a square matrix. For \(\varvec{x}=[x_1,x_2,x_3]^T\in {\mathbb {R}}^3\), superscript \(\times \) indicates the transformation from \(\varvec{x}\) to a \(3\times 3\) skew-symmetric matrix, namely

$$\begin{aligned} \varvec{x}^{\times }=\left[ \begin{array}{ccc} 0&{}-x_{3}&{}x_{2}\\ x_3&{}0&{}-x_{1}\\ -x_{2}&{}x_{1}&{}0\end{array}\right] , \end{aligned}$$

and superscript \(\vee \) denotes the inverse operation of \(\times \). For \(x\in {\mathbb {R}}\), define the hyperbolic tangent function

$$\begin{aligned} \tanh (x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}, \end{aligned}$$

which is differential and satisfies \(-1<\tanh (x)<1\). For \(\varvec{x}=[x_1,\ldots ,x_n]^T\in {\mathbb {R}}^n\), define the hyperbolic tangent function vector

$$\begin{aligned} \varvec{\mathrm {tanh}}(\varvec{x})=[\tanh (x_1),\ldots ,\tanh (x_n)]^T, \end{aligned}$$

the hyperbolic tangent function matrix

$$\begin{aligned} \varvec{\mathrm {Tanh}}(\varvec{x})=\mathrm {diag}(\tanh (x_1),\ldots ,\tanh (x_n)), \end{aligned}$$

and the integral function

$$\begin{aligned} \int _{\varvec{0}}^{\varvec{x}}{\varvec{\mathrm {tanh}}(\chi )}\mathrm{d}\chi= & {} \int _{0}^{x_1}{\tanh (\chi )}\mathrm{d}\chi \\&+\cdots +\int _{0}^{x_n}{\tanh (\chi )}d\chi . \end{aligned}$$

Property 1

([21]) Given an interval \(\{\varvec{x}\in {\mathbb {R}}^n|\Vert \varvec{x}\Vert <\bar{x},\bar{x}>0\}\), there always exists a constant \(\chi (\bar{x})\) satisfying \(0<\chi <1\), such that \(\chi \Vert \varvec{x}\Vert \le \Vert \varvec{\tanh (x)}\Vert \le \Vert \varvec{x}\Vert \).

Lemma 1

([22]) Given a constant \(\epsilon >0\), the following inequality holds for all \(x\in {\mathbb {R}}\)

$$\begin{aligned} 0\le |x|-x\tanh \left( \frac{x}{\epsilon }\right) \le k_q\epsilon , \end{aligned}$$
(1)

where \(k_q=0.2758\).

Lemma 2

([23]) The following inequality holds for all \(\varvec{x}\in \{\varvec{x}\in {\mathbb {R}}^n|\Vert \varvec{x}\Vert <k,k>0\}\)

$$\begin{aligned} \ln {\frac{k^2}{k^2-\Vert \varvec{x}\Vert ^2}}\le \frac{\Vert \varvec{x}\Vert ^2}{k^2-\Vert \varvec{x}\Vert ^2}. \end{aligned}$$
(2)

2.2 Helicopter model

The helicopter model is established in two frames: the earth frame \({\mathcal {E}}=\{oxyz\}\) and the body frame \({\mathcal {B}}=\{o_bx_by_bz_b\}\), the definitions of which are in accordance with [1]. The frame \({\mathcal {E}}\) serves as the inertial frame, and the helicopter is regarded as a 6-dof rigid body. According to [1], the helicopter model is

$$\begin{aligned}&\varvec{\dot{p}}=\varvec{v}, \end{aligned}$$
(3)
$$\begin{aligned}&\varvec{\dot{v}}=-g\varvec{e_3}+\frac{1}{m}\varvec{R}\varvec{f}, \end{aligned}$$
(4)
$$\begin{aligned}&\varvec{\dot{R}}=\varvec{R}\varvec{\omega }^\times , \end{aligned}$$
(5)
$$\begin{aligned}&\varvec{J}\varvec{\dot{\omega }}=-\varvec{\omega }^{\times } \varvec{J}\varvec{\omega }+\varvec{\tau }, \end{aligned}$$
(6)

where \(\varvec{p}=[p_x,p_y,p_z]^T\) and \(\varvec{v}=[v_x,v_y,v_z]^T\) are the position and velocity of the helicopter c.g. (center of gravity) in the frame \({\mathcal {E}},\,m\) is the mass, g is the gravitational acceleration, \(\varvec{e_3}=[0,0,1]^T,\,\varvec{R}\in SO(3)=\{\varvec{R}\in {\mathbb {R}}^{3\times 3}|\det \varvec{R}=1,\varvec{R}^T\varvec{R}=\varvec{R}\varvec{R}^T=\varvec{I_3}\}\) is the rotation matrix from the frame \({\mathcal {B}}\) to the frame \({\mathcal {E}},\,\varvec{\omega }=[\omega _x,\omega _y,\omega _z]^T\) is the angular velocity of the helicopter in the frame \({\mathcal {B}}\), and \(\varvec{J}=\mathrm {diag}(J_x,J_y,J_z)\) is the inertial matrix.

During the low-speed flight, the applied force \(\varvec{f}\) and torque \(\varvec{\tau }\) are mainly generated by the main and tail rotors, which, according to [24], are derived as

$$\begin{aligned} \varvec{f}= & {} \left[ \begin{array}{c}T_m \mathrm {s} a_s\\ -T_m \mathrm {s} b_s+T_t\\ T_m \mathrm {c} b_s \mathrm {c} a_s\end{array}\right] ,\\ \varvec{\tau }= & {} \left[ \begin{array}{c}T_mh_m \mathrm {s} b_s+L_bb_s+T_t h_t+\tau _m \mathrm {s} a_s\\ T_ml_m+T_mh_m \mathrm {s}a_s+M_aa_s+\tau _t-\tau _m \mathrm {s} b_s\\ -T_ml_m \mathrm {s} b_s-T_tl_t+\tau _m \mathrm {c} a_s \mathrm {c} b_s\end{array}\right] , \end{aligned}$$

where \(\mathrm {c}(\cdot )=\cos (\cdot ),\,\mathrm {s}(\cdot )=\sin (\cdot )\), subscripts m and t denote the main and tail rotors, \(T_i\) and \(\tau _i\) (\(i=m\) or t) are the thrust and anti-torque generated by the main or tail rotor, \(L_b\) and \(M_a\) are the stiffness coefficients of the main rotor, \(h_i\) and \(l_i\) (\(i=m\) or t) are the horizontal and vertical positions of the main or tail rotor with respect to the helicopter c.g., \(a_s\) and \(b_s\) are the longitudinal and lateral flapping angles of the main rotor. Further, \(\tau _i\) (\(i=m\) or t) can be determined by

$$\begin{aligned} \tau _i=C_i|T_i|^{1.5}+D_i, \end{aligned}$$
(7)

where \({C_i}\) and \({D_i}\) are the aerodynamic constants.

2.3 Helicopter model for control approach design

In view of strong coupling, it is necessary to decompose the applied force and torque for ease of the control approach design. Specifically, according to [25], the flapping angles are fairly small, so that the small angle approximation is feasible, namely \(\cos (\cdot )\approx 1\) and \(\sin (\cdot )\approx (\cdot )\); moveover, \(T_ma_s,\,T_mb_s\) and \(T_t\) contribute little to the applied force \(\varvec{f}\) and \(\tau _t\) exerts little to the applied torque \(\varvec{\tau }\). Thus, we can decompose \(\varvec{f}\) and \(\varvec{\tau }\) as

$$\begin{aligned}&\varvec{f}=T_m\varvec{e_3}+\varvec{f_\varDelta }, \end{aligned}$$
(8)
$$\begin{aligned}&\varvec{\tau }=\varvec{\tau _c}+\varvec{\varDelta _\tau }=\varvec{\tau _A M} +\varvec{\tau _B}+\varvec{\varDelta _\tau }, \end{aligned}$$
(9)

where

$$\begin{aligned} \varvec{\tau _A}= & {} \left[ \begin{array}{ccc}h_t &{}\tau _m &{}T_mh_m+L_b \\ 0 &{}T_mh_m+M_a &{}-\tau _m \\ -l_t &{}0 &{}-T_ml_m\end{array}\right] ,\quad \\ \varvec{M}= & {} \left[ \begin{array}{c}T_t \\ a_s\\ b_s\end{array}\right] ,\quad \varvec{\tau _B}=\left[ \begin{array}{c} 0\\ T_ml_m\\ \tau _m\end{array}\right] ,\\ \varvec{f_\varDelta }= & {} \left[ \begin{array}{c}T_m\mathrm {s}a_s\\ -T_m\mathrm {s}b_s+T_t\\ T_m(\mathrm {c}a_s\mathrm {c}b_s-1)\end{array}\right] ,\\ \varvec{\varDelta _\tau }= & {} \left[ \begin{array}{c} \tau _m(\mathrm {s}a_s-a_s)+T_mh_m(\mathrm {s}b_s-b_s)\\ \tau _t-\tau _m(\mathrm {s}b_s-b_s)+T_mh_m(\mathrm {s}a_s-a_s)\\ \tau _m(\mathrm {c}a_s\mathrm {c}b_s-1)-T_ml_m(\mathrm {s}b_s-b_s)\end{array}\right] . \end{aligned}$$

Substituting (8) into (4) and (9) into (6) yields

$$\begin{aligned}&\varvec{\dot{v}}=-g\varvec{e_3}+\frac{T_m}{m}\varvec{R}\varvec{e_3}+\varvec{\varDelta _f}, \end{aligned}$$
(10)
$$\begin{aligned}&\varvec{J\dot{\omega }}=-\varvec{\omega }^\times \varvec{J}\varvec{\omega } +\varvec{\tau _c}+\varvec{\varDelta _\tau }, \end{aligned}$$
(11)

where \(\varvec{\varDelta _f}=\frac{1}{m}\varvec{R}^T\varvec{f_\varDelta }\).

Fig. 1
figure 1

Block diagram of the proposed control approach

Assumption 1

\(\varvec{\varDelta _\tau }\) and \(\varvec{\varDelta _f}\) are bounded and satisfy

$$\begin{aligned} |\varDelta _{fi}|\le \sigma _i,\text { }|\varDelta _{\tau i}|\le \varsigma _i, \quad i=1,2,3, \end{aligned}$$
(12)

where \(\varvec{\sigma }=[\sigma _1,\sigma _2,\sigma _3]^T\) and \(\varvec{\varsigma }=[\varsigma _1,\varsigma _2,\varsigma _3]^T\) are two unknown upper bound vectors.

Remark 1

Assumption 1 is reasonable, since the unmodeled dynamics \(\varvec{\varDelta _f}\) and \(\varvec{\varDelta _\tau }\), usually restricted by physical properties of a typical helicopter, are extremely small [1]. In [26, 27], they are disregarded directly. In this paper, we will estimate and compensate their upper bounds to improve the tracking performance.

3 Control approach design

Given a smooth reference trajectory \(\varvec{p_c}=[p_{cx}, p_{cy},p_{cz}]^T\) with its derivatives \(\varvec{\dot{p}_c}\) and \(\varvec{\ddot{p}_c}\), the control objective is to design control inputs \(T_m,\,T_t,\,a_s\) and \(b_s\) for the model-scaled helicopter, so that it can track \(\varvec{p_c}\). Since the decomposed helicopter model is in a cascade structure, a hierarchical strategy is adopted, so that the position and attitude loop controls are designed separately. The block diagram of the control scheme is displayed in Fig. 1. First, in the position loop, \(\frac{T_m}{m}\varvec{R}\varvec{e_3}\) is designed to achieve the position tracking to \(\varvec{p_c}\). Then, the main rotor thrust \(T_m\) and the command rotation matrix \(\varvec{R_c}\) are derived from \(\frac{T_m}{m}\varvec{R}\varvec{e_3}\); this step is the common denominator of hierarchical nonlinear controllers [7]. Finally, in the attitude loop, \(T_t,\,a_s\) and \(b_s\) are designed to realize the attitude tracking to \(\varvec{R_c}\).

3.1 Position loop control design

For ease of analysis, denote \({\varvec{U}=[U_x,U_y,U_z]^T=\frac{T_m}{m}\varvec{R}\varvec{e_3}}\). Define the position and velocity tracking errors as \(\varvec{p_e}=[p_{ex},p_{ey},p_{ez}]^T=\varvec{p}-\varvec{p_c}\) and \(\varvec{v_e}=[v_{ex},v_{ey},v_{ez}]^T=\varvec{v}-\varvec{\dot{p}_c}\). From (3) and (10), the position error dynamics are derived as

$$\begin{aligned}&\varvec{\dot{p}_e}=\varvec{v_e}, \end{aligned}$$
(13a)
$$\begin{aligned}&\varvec{\dot{v_e}}=-g\varvec{e_3}+\varvec{U}-\varvec{\ddot{p}_c}+\varvec{\varDelta _f}, \end{aligned}$$
(13b)

Further, define the estimation and estimation error of \(\varvec{\sigma }\) as \({\hat{\varvec{\sigma }}}\) and \({\tilde{\varvec{\sigma }}}={\hat{\varvec{\sigma }}}-\varvec{\sigma }\). Hyperbolic tangent functions are introduced here to establish the position loop control:

$$\begin{aligned} \begin{aligned} \varvec{U}=&\,g\,\varvec{e_3}+\varvec{\ddot{p}_c}-\alpha _p\varvec{\mathrm {tanh}} (k_p\varvec{p_e}+l_p\varvec{v_e})\\&-\beta _p\varvec{\mathrm {tanh}}(l_p\varvec{v_e})-\varvec{\mathrm {Tanh}} \left( \frac{\varvec{\vartheta _f}}{\epsilon _f}\right) {\hat{\varvec{\sigma }}}, \end{aligned} \end{aligned}$$
(14)

where \(\alpha _p,\,\beta _p,\,k_p,\,l_p,\,\epsilon _f>0,\,\varvec{\vartheta _f}=\alpha _pl_p\varvec{\mathrm {tanh}}(k_p\varvec{p_e} +l_p\varvec{v_e})+\beta _pl_p\varvec{\mathrm {tanh}}(l_p\varvec{v_e})+k_p\varvec{v_e}\) and \({\hat{\varvec{\sigma }}}=[\hat{\sigma }_x,\hat{\sigma }_y,\hat{\sigma }_z]^T\) is obtained with the adaptive law:

$$\begin{aligned} \dot{\hat{\sigma }}_i\!=\!{\left\{ \begin{array}{ll}\gamma _f\tan h\left( \frac{ \vartheta _{fi}}{\epsilon _f}\right) \vartheta _{fi},&{}\quad |\hat{\sigma }_i|\!<\!\kappa _{fi},\\ 0,&{}\quad |\hat{\sigma }_i|=\kappa _{fi}\end{array}\right. },\quad i\!=\!x,y,z, \end{aligned}$$
(15)

with \(\gamma _f>0\), and \(\varvec{\kappa _f}=[\kappa _{fx},\kappa _{fy},\kappa _{fz}]^T\) as an estimation upper bound.

Based on an integral-quadratic Lyapunov function, the stability of the position loop is acquired:

Theorem 1

Consider the position error dynamics (13) with \(\varvec{\varDelta _f}\) satisfying Assumption 1. The control (14) with the adaptive law (15) can guarantee that

  1. (i)

    \(\varvec{p_e}\) and \(\varvec{v_e}\) are bounded and ultimately converge to a neighborhood of the origin;

  2. (ii)

    \(|\hat{\sigma }_i|\le \kappa _{fi}\) (\(i=x,y,z\)) holds if \(|\hat{\sigma }_i(0)|\le \kappa _{fi}\).

Proof

(i) Denote \(\varvec{\mu _1}=k_p\varvec{p_e}+l_p\varvec{v_e},\,\varvec{\mu _2}=l_p\varvec{v_e}\) and \(\varvec{\mu }=[\varvec{\mu _1}^T,\varvec{\mu _2}^T]^T\). Designate a convergent set \({\mathcal {Z}}_{\mu 1}=\{\varvec{\mu }\in {\mathbb {R}}^6|\Vert \varvec{\mu } \Vert <\bar{\mu },\bar{\mu }>0\}\). From Property 1, there exists a constant \(\chi (\bar{\mu })\in (0,1)\) such that \(\chi \Vert \varvec{{\mu }}\Vert \le \Vert \varvec{\mathrm {tanh}}(\varvec{\mu })\Vert \).

Substituting the control (14) into (13) yields

$$\begin{aligned} \varvec{\dot{p}_e}= & {} \varvec{v_e}, \end{aligned}$$
(16a)
$$\begin{aligned} \varvec{\dot{v}_e}= & {} -\alpha _p\varvec{\mathrm {tanh}}(\varvec{\mu _1}) -\beta _p\varvec{\mathrm {tanh}}(\varvec{\mu _2})\nonumber \\&-\varvec{\mathrm {Tanh}}\left( \frac{\varvec{\vartheta _f}}{\epsilon _f}\right) {\hat{\varvec{\sigma }}}+\varvec{\varDelta _f}. \end{aligned}$$
(16b)

Assign the following integral-quadratic Lyapunov function candidate

$$\begin{aligned} L_p= & {} \alpha _p\int _{\varvec{0}}^{\varvec{\mu _1}}\varvec{\mathrm {tanh}} (\varvec{\xi })d\varvec{\xi }+\beta _p\int _{\varvec{0}}^{\varvec{\mu _2}}\varvec{\mathrm {tanh}} (\varvec{\xi })d\varvec{\xi }\nonumber \\&+\frac{k_p}{2}{\varvec{v}}_{\varvec{e}}^T{\varvec{v}}_{\varvec{e}}+\frac{1}{2\gamma _f}{\tilde{\varvec{\sigma }}}_{\varvec{f}}^T{\tilde{\varvec{\sigma }}}_{\varvec{f}}>0, \end{aligned}$$
(17)

and its derivative along (16) satisfies

$$\begin{aligned} \dot{L}_p= & {} \alpha _pk_p\varvec{\mathrm {tanh}}^T(\varvec{\mu _1})\varvec{\dot{p} _e}+{{\varvec{\vartheta }}_{\varvec{f}}^{T}}{\dot{\varvec{v}}}_{\varvec{e}}+\frac{1}{\gamma _f}{\tilde{\varvec{\sigma }}}_{\varvec{f}}^{T}{\dot{\hat{\varvec{\sigma }}}}_{\varvec{f}}\\= & {} \alpha _pk_p\varvec{\mathrm {tanh}}^T(\varvec{\mu _1})\varvec{v_e}+{\varvec{\vartheta }}_{\varvec{f}}^{T}\left[ -\alpha _p\varvec{\mathrm {tanh}}(\varvec{\mu _1})\right. \\&\left. -\beta _p\varvec{\mathrm {tanh}}(\varvec{\mu _2})-\varvec{\mathrm {Tanh}} \left( \frac{\varvec{\vartheta _f}}{\epsilon _f}\right) \varvec{\hat{\sigma }} +\varvec{\varDelta _f}\right] \\&+\frac{1}{\gamma _f}{\tilde{\varvec{\sigma }}}_{\varvec{f}}^{T} {\dot{\hat{\varvec{\sigma }}}}_{\varvec{f}}. \end{aligned}$$

According to Assumption 1 and Lemma 1,

$$\begin{aligned} {\varvec{\vartheta }}_{\varvec{f}}^{T}\varvec{\varDelta _f}\le & {} \sum _{i=x,y,z}{|\vartheta _{fi} |\sigma _i}\\\le & {} \sum _{i=x,y,z}\left[ \vartheta _{fi}\tanh \left( \frac{\vartheta _{fi}}{\epsilon _f}\right) +k_q\epsilon _f\right] \sigma _i\\= & {} {\varvec{\vartheta }}_{\varvec{f}}^{T}\varvec{\mathrm {Tanh}}\left( \frac{\varvec{\vartheta }_{\varvec{f}}}{\epsilon _f}\right) \varvec{\sigma }+k_q\epsilon _f\sum _{i=x,y,z}\sigma _i. \end{aligned}$$

Then, \(\dot{L}_p\) satisfies

$$\begin{aligned} \dot{L}_p\le & {} -l_p[\alpha _p\varvec{\mathrm {tanh}}(\varvec{\mu }_1) +\beta _p\varvec{\mathrm {tanh}}(\varvec{\mu }_2)]^T[\alpha _p\varvec{ \mathrm {tanh}}(\varvec{\mu }_1)\\&+\,\beta _p\varvec{\mathrm {tanh}}(\varvec{\mu }_2)]-k_p\beta _p \varvec{v}_{\varvec{e}}^{T}\varvec{\mathrm {tanh}}(\varvec{\mu }_2)\\&+\,{\tilde{\varvec{\sigma }}}^T\left[ \frac{1}{\gamma _f}{\dot{\hat{\varvec{\sigma }}}}-\varvec{\mathrm {Tanh}}\left( \frac{\varvec{\vartheta _f}}{\epsilon _f}\right) \varvec{\vartheta _f}\right] +d_f \end{aligned}$$

where \(d_f=k_q\epsilon _f\sum _{i=x,y,z}{\sigma _i}\). According to [21], (15) can guarantee \({\tilde{\varvec{\sigma }}}^T[\frac{1}{\gamma _f}{\dot{\hat{\varvec{\sigma }}}} -\varvec{{\mathrm {Tanh}}}(\frac{\varvec{\vartheta _f}}{\epsilon _f})\varvec{\vartheta _f}]\le 0\). Substituting (15) into the above inequality yields

$$\begin{aligned} \begin{aligned} \dot{L}_p\!\le&-\!l_p[\alpha _p\varvec{{\mathrm {tanh}}}(\varvec{\mu }_1)\!+\!\beta _p\varvec{\mathrm {tanh}} (\varvec{\mu }_2)]^T[\alpha _p\varvec{{\mathrm {tanh}}}(\varvec{\mu }_1)\\&+\beta _p\varvec{{\mathrm {tanh}}}(\varvec{\mu }_2)]\!-\!k_p\beta _p{\varvec{v}}_{\varvec{e}}^{T}\varvec{{\mathrm {tanh}}}(\varvec{\mu }_2)\!+\!d_f\\ =&-\varvec{\mathrm {tanh}}(\varvec{\mu })^T\varvec{\varTheta }\varvec{{\mathrm {tanh}}}(\varvec{\mu })+d_f, \end{aligned} \end{aligned}$$

where

$$\begin{aligned} \varvec{\varTheta }=\left[ \begin{array}{cc}\alpha _p^2l_p\varvec{I_{3}} &{}\alpha _p\beta _pl_p\varvec{I_{3}}\\ \alpha _p\beta _pl_p\varvec{I_{3}}&{}\left( \beta _p^2l_p+\frac{k_p\beta _p}{l_p}\right) \varvec{I_{3}}\end{array}\right] . \end{aligned}$$

Since there exists an invertible matrix

$$\begin{aligned} \varvec{T}=\left[ \begin{array}{cc}\varvec{I_{3}}&{}-\frac{\beta _p}{\alpha _p}\varvec{I_{3}}\\ \varvec{0}&{}\varvec{I_{3}}\end{array}\right] , \end{aligned}$$

such that

$$\begin{aligned} \varvec{T}^T\varvec{\varTheta }\varvec{T}=\left[ \begin{array}{cc}\alpha _p^2l_p\varvec{I_{3}}&{}\varvec{0}\\ \varvec{0}&{}\frac{k_p\beta _p}{l_p}\varvec{I_{3}}\end{array}\right] , \end{aligned}$$

\(\dot{L}_p\) satisfies

$$\begin{aligned} \dot{L}_p\le & {} -\chi _2\Vert \varvec{\mu }\Vert ^2+d_f \end{aligned}$$
(18)

where \(\chi _2=\min (\alpha _p^2l_p\chi ^2,\frac{k_p\beta _p}{l_p}\chi ^2)>0\). Thus, \(\varvec{\mu }\) is bounded and ultimately converges to the set:

$$\begin{aligned} {\mathcal {Z}}_{\mu 2}=\left\{ \varvec{\mu }\in {\mathbb {R}}^6|\Vert \varvec{\mu }\Vert <\sqrt{\frac{{d}_f}{\chi _2}}\right\} . \end{aligned}$$
(19)

Moreover, in order for \(\varvec{\mu }\in {\mathcal {Z}}_{\mu 1}\), it is required that \(\sup (d_f)\le \chi _2\bar{\mu }^2\). With a sufficiently small \(\epsilon _f,\,d_f\) can be made arbitrarily small, which implies that an appropriate \(\epsilon _f\) can guarantee \(\varvec{\mu }\) ultimately converging to \({\mathcal {Z}}_{\mu 2}\subseteq {\mathcal {Z}}_{\mu 1}\). Finally, it follows the definition of \(\varvec{\mu }\) that \(\varvec{p_e}\) and \(\varvec{v_e}\) are bounded and ultimately converge to the sets \({\mathcal {Z}}_p=\{\varvec{p_e}\in {\mathbb {R}}^3|\Vert \varvec{p_e}\Vert <\frac{1}{k_p}\sqrt{\frac{d_f}{\chi _2}}\}\) and \({\mathcal {Z}}_v=\{\varvec{v_e}\in {\mathbb {R}}^3|\Vert \varvec{v_e}\Vert <\frac{1}{l_p}\sqrt{\frac{d_f}{\chi _2}}\}\), respectively.

(ii) In terms of \(|\hat{\sigma }_i(0)|\le \kappa _{fi}\) (\(i=x,y,z\)), assign a Lyapunov function candidate \(L_\sigma =\frac{1}{2}\hat{\sigma }_i^2\).

  1. (a)

    If \(|\hat{\sigma }_i|<\kappa _{fi}\), the conclusion is obvious.

  2. (b)

    If \(|\hat{\sigma }_i|=\kappa _{fi}\), then \(\dot{L}_\sigma =0\), so that \(\hat{\sigma }_i\) is invariant.

Thus, \(|\hat{\sigma }_i|\le \kappa _{fi}\) (\(i=x,y,z\)) is warranted.

Due to \({\Vert \varvec{R}\varvec{e_3}\Vert =1}\), we derive the main rotor thrust:

$$\begin{aligned} T_m=m\Vert \varvec{U}\Vert . \end{aligned}$$
(20)

3.2 Attitude extraction

In terms of the hierarchical control strategy, extracting the command attitude from \(\frac{T_m}{m}\varvec{R}\varvec{e_3}\) is inevitable, whatever it is represented by the Euler angle [8] or unit quaternion [11, 12]. In this subsection, the minimum rotation principle is employed to extract the command rotation matrix. Define \(\varvec{V}=\frac{T_m}{m}\varvec{e_3}=[0,0,\frac{T_m}{m}]^T\), which satisfies \(\varvec{R}\varvec{V}=\varvec{U}\) and \(\Vert \varvec{U}\Vert =\Vert \varvec{V}\Vert \).

Lemma 3

Consider the position loop control (14). If \(\varvec{U}\notin {\mathcal {L}}=\{\varvec{U}\in {\mathbb {R}}^3\mid \varvec{U} =[0,0,U_z]^T,U_z\le 0\}\), the command rotation matrix \(\varvec{R_c}\) can be extracted as

$$\begin{aligned} \varvec{R_c}=\frac{m}{T_m}\left[ \begin{array}{ccc} U_z+\frac{mU_y^2}{T_m+mU_z}&{}-\frac{mU_xU_y}{T_m+mU_z}&{}U_{x}\\ -\frac{mU_xU_y}{T_m+mU_z}&{}U_z+\frac{mU_x^2}{T_m+mU_z}&{}U_y\\ -U_x&{}-U_y&{}U_z\end{array}\right] . \end{aligned}$$
(21)

Proof

In view of the minimum rotation principle, the principle rotation axis \({\hat{\varvec{k}}}_{\varvec{c}}\) is orthogonal to the plane composed by \(\varvec{U}\) and \(\varvec{V}\). Thus, we have

$$\begin{aligned} {\left\{ \begin{array}{ll} &{}\varvec{U}^T\varvec{V}=\Vert \varvec{U}\Vert \Vert \varvec{V}\Vert \cos \phi _c,\\ &{}\varvec{U}^{\times }\varvec{V}=\Vert \varvec{U}\Vert \Vert \varvec{V}\Vert \sin \phi _c{\hat{\varvec{k}}}_{\varvec{c}}, \end{array}\right. } \end{aligned}$$
(22)

where \(\phi _c\) is the rotation angle. If \(\varvec{U}\notin {\mathcal {L}}\), it follows \(\Vert \varvec{U}\Vert =\Vert \varvec{V}\Vert \) that

$$\begin{aligned} \left\{ \begin{array}{l} \cos \phi _c=\frac{\varvec{U}^T\varvec{V}}{\Vert \varvec{U}\Vert \Vert \varvec{V}\Vert }=\frac{mU_z}{T_m},\\ \sin \phi _c = \sqrt{1-\cos ^2\phi _c}=\frac{\sqrt{T_m^2-m^2U_z^2}}{T_m},\\ {\hat{\varvec{k}}}_{\varvec{c}}=\frac{\varvec{U}^{\times }\varvec{V}}{\Vert \varvec{U}\Vert \Vert \varvec{V}\Vert \sin \phi _c}=\frac{m}{\sqrt{T_m^2-m^2U_z^2}}\left[ \begin{array}{c} U_{y}\\ -U_{x}\\ 0\end{array}\right] .\\ \end{array}\right. \end{aligned}$$
(23)

Based on the Euler’s formula [28], we have

$$\begin{aligned} \varvec{R_c}=\cos \phi _c\varvec{I_{3}}+(1-\cos \phi _c){\hat{\varvec{k}}}_{\varvec{c}} {\hat{\varvec{k}}}_{\varvec{c}}^T-\sin \phi _c{\hat{\varvec{k}}}_{\varvec{c}}^\times . \nonumber \\ \end{aligned}$$
(24)

Substituting (23) into (24) and conducting some analytical computations, we can derive (21).

Remark 2

In order for \(\varvec{U}\notin {\mathcal {L}}\), the reference acceleration \(\varvec{\ddot{p}_c}=[\ddot{p}_{cx},\ddot{p}_{cy},\ddot{p}_{cz}]^T\), the control parameters \(\alpha _p\) and \(\beta _p\), and the upper bound \(\varvec{\kappa _f}\) are supposed to satisfy one of the following conditions:

  1. (a)

    \(\alpha _p+\beta _p+\kappa _{fx}<|\ddot{p}_{cx}(t)|,\quad \forall t\ge 0\);

  2. (b)

    \(\alpha _p+\beta _p+\kappa _{fy}<|\ddot{p}_{cy}(t)|,\quad \forall t\ge 0\);

  3. (c)

    \(\alpha _p+\beta _p+\kappa _{fz}<g-\delta \) and \(|\ddot{p}_{cz}(t)|<\delta ,\quad \forall t\ge 0\).

During the low-speed flight, \(\varvec{\ddot{p}_c}\) is small, and Conditions (a) and (b) constrain the parameter choice greatly. Condition (c) is the criterion for choosing the parameters.

3.3 Attitude loop control design

To proceed, the command angular velocity \(\varvec{\omega _c}\) and its derivative \(\varvec{\dot{\omega }_c}\) are required, which are derived in Appendix A. Determining \(\varvec{\omega _c}\) and \(\varvec{\dot{\omega }_c}\) needs the knowledge of \(\varvec{\dot{U}}\) and \(\varvec{\ddot{U}}\), which are intricate to be acquired with analytical calculations. Alternatively, a command filter [29] is applied to approximate them.

Define the attitude and angular velocity tracking errors as \(\varvec{{R}_e}=\varvec{{R}_c^T\varvec{{R}}}\in SO(3)\) and \({\varvec{\omega _e}=\varvec{\omega }-{\varvec{R}}_{\varvec{e}}^{T}\varvec{\omega _c}}\). \(\varvec{R_e}=\varvec{I_3}\) means \(\varvec{R}=\varvec{R_c}\), namely the exact attitude tracking. Due to dimensional inconsistency, it is hard to design an attitude loop control with \(\varvec{{R}_e}\) directly. Instead, a new attitude error representation [19] is introduced:

$$\begin{aligned} \varvec{e_R}=\frac{1}{2\sqrt{1+\mathrm {tr}(\varvec{R_e})}}(\varvec{R_e}-{\varvec{R}}_{\varvec{e}}^{T})^\vee . \end{aligned}$$
(25)

With \(\mathrm {tr}(\varvec{R_e})\ne -1,\,\varvec{e_R}=\varvec{0}\) is equivalent to \(\varvec{R_e}=\varvec{I_3}\). Then, the attitude error dynamics satisfy

$$\begin{aligned}&\varvec{\dot{e}_R}=\varvec{\varOmega }\varvec{\omega _e},\end{aligned}$$
(26a)
$$\begin{aligned}&\varvec{J}\varvec{\dot{\omega }_e}=-\varvec{\omega }^\times \varvec{J}\varvec{\omega }+\varvec{\tau _c}+\varvec{\varDelta _\tau }\nonumber \\&\quad +\varvec{J}\varvec{\omega _e}^\times {{\varvec{R}}_{\varvec{e}}^{T}}\varvec{\omega _c}-\varvec{J}{\varvec{R}}_{\varvec{e}}^{T}\varvec{\dot{\omega }_c}, \end{aligned}$$
(26b)

where \(\varvec{\varOmega }=\frac{1}{2\sqrt{1+\mathrm {tr}(\varvec{R_e})}}(\mathrm {tr}(\varvec{R_e})\varvec{I_3}-{\varvec{R}}_{\varvec{e}}^{T}+2\varvec{e_R}{\varvec{e}}_{\varvec{R}}^{T})\) is nonsingular when \(\mathrm {tr}(\varvec{R_e})\ne -1\) or \(\varvec{R_c}\ne -\varvec{R}\). According to [30], \(\varvec{\mathrm {tr}(\varvec{R_e})}\ne -1\) is equivalent to \(\Vert \varvec{e_R}\Vert <1\).

Let \(\varvec{\tilde{\omega }}=[\tilde{\omega }_x,\tilde{\omega }_y,\tilde{\omega }_z]^T=\varvec{\omega _e}-\varvec{\alpha _R}\), where \(\varvec{\alpha _R}\) is a virtual control, determined by

$$\begin{aligned} \varvec{\alpha _R}=-k_R\varvec{\varOmega }^{-1}\varvec{e_R},k_R>0. \end{aligned}$$
(27)

Further, define the estimation and estimation error of \(\varvec{\varsigma }\) as \(\varvec{\hat{\varsigma }}\) and \(\varvec{\tilde{\varsigma }}=\varvec{\hat{\varsigma }}-\varvec{\varsigma }\). Design the attitude loop control:

$$\begin{aligned} \varvec{\tau _c}= & {} -k_\omega \varvec{\tilde{\omega }}+\varvec{\omega }^\times \varvec{J} \varvec{\omega }-\varvec{J}\varvec{\omega _e}^\times {\varvec{R}}_{\varvec{e}}^{T}\varvec{\omega _c} +\varvec{J}{\varvec{R}}_{\varvec{e}}^{T}\varvec{\dot{\omega }_c}\nonumber \\&+\varvec{J}\varvec{\dot{\alpha }_R}-\frac{\varvec{\varOmega }^{T}\varvec{e_R}}{1-\Vert \varvec{e_R}\Vert ^2}-\varvec{{\mathrm {Tanh}}}\left( \frac{\varvec{\tilde{\omega }}}{\epsilon _\tau }\right) \varvec{\hat{\varsigma }} \end{aligned}$$
(28)

where \(k_\omega ,\epsilon _\tau >0\), and \(\varvec{\hat{\varsigma }}=[\hat{\varsigma }_x,\hat{\varsigma }_y,\hat{\varsigma }_z]^T\) is obtained with the adaptive law:

$$\begin{aligned} \dot{\hat{\varsigma }}_i=\gamma _{\tau 1}\left[ \tanh \left( \frac{\tilde{\omega }_i}{\epsilon _\tau }\right) \tilde{\omega }_i -\gamma _{\tau 2}{\hat{\varsigma }}_i\right] ,\quad i=x,y,z,\nonumber \\ \end{aligned}$$
(29)

with \(\gamma _{\tau 1},\gamma _{\tau 2}>0\).

Based on a barrier-quadratic Lyapunov function, the stability of the attitude loop is acquired:

Theorem 2

Consider the attitude error dynamics (26) with \(\varvec{\varDelta _\tau }\) satisfying Assumption 1. If the initial rotation matrix satisfies \(\varvec{R}(0)\ne -\varvec{R_c}(0)\), then the control (28) with the adaptive law (29) can guarantee that

  1. (i)

    \(\varvec{e_R}\) always remains in \({\mathcal {Z}}_{R1}=\{\varvec{e_R}\in {\mathbb {R}}^{3}|\Vert \varvec{e_R}\Vert <1\}\);

  2. (ii)

    \(\varvec{e_R}\) and \(\varvec{\tilde{\omega }}\) are bounded and ultimately converge to a neighborhood of the origin.

Proof

Assign the following barrier-quadratic Lyapunov function candidate

$$\begin{aligned} L_a=\frac{1}{2}\ln \frac{1}{1-\Vert \varvec{e_R}\Vert ^2}+\frac{1}{2} \varvec{\tilde{\omega }}^T\varvec{J}\varvec{\tilde{\omega }} +\frac{1}{2\gamma _{\tau 1}}\varvec{\tilde{\varsigma }}^T\varvec{\tilde{\varsigma }}, \end{aligned}$$
(30)

which, according to Lemma 2, satisfies

$$\begin{aligned} L_a\le \frac{1}{2}\frac{\Vert \varvec{e_R}\Vert ^2}{1-\Vert \varvec{e_R}\Vert ^2}+\frac{1}{2}\varvec{\tilde{\omega }}^T\varvec{J}\varvec{\tilde{\omega }}+\frac{1}{2\gamma _{\tau 1}}\varvec{\tilde{\varsigma }}^T\varvec{\tilde{\varsigma }}. \end{aligned}$$
(31)

Differentiating \(L_a\) along (26) yields

$$\begin{aligned} \dot{L}_a= & {} \frac{{\varvec{e}}_{\varvec{R}}^{T}\varvec{\varOmega }}{1-\Vert \varvec{e_R}\Vert ^2}\varvec{\dot{e}_R}+\varvec{\tilde{\omega }}^T\varvec{J}\varvec{\dot{\tilde{\omega }}}+\frac{1}{\gamma _{\tau 1}}\varvec{\tilde{\varsigma }}^T{\dot{\hat{\varvec{\varsigma }}}}\nonumber \\= & {} \frac{{\varvec{e}}_{\varvec{R}}^{T}\varvec{\varOmega }}{1-\Vert \varvec{e_R}\Vert ^2}(\varvec{\alpha _R}+\varvec{\tilde{\omega }})+\varvec{\tilde{\omega }}^T(-\varvec{\omega }^\times \varvec{J}\varvec{\omega }\nonumber \\&+\varvec{J}\varvec{\omega _e}^\times {\varvec{R}}_{\varvec{e}}^{T}\varvec{\omega _c}-\varvec{J}{\varvec{R}}_{\varvec{e}}^{T}\varvec{\dot{\omega }_c}\nonumber \\&+\varvec{\tau _c}+\varvec{\varDelta _\tau }-\varvec{J}\varvec{\dot{\alpha }_R})+\frac{1}{\gamma _{\tau 1}}\varvec{\tilde{\varsigma }}^T{\dot{\hat{\varvec{\varsigma }}}}. \end{aligned}$$
(32)

Substituting (27) into (32) yields

$$\begin{aligned} \dot{L}_a= & {} -k_R\frac{{\varvec{e}}_{\varvec{R}}^{T}\varvec{e_R}}{1-\Vert \varvec{e_R}\Vert ^2}+\varvec{\tilde{\omega }}^T\left( -\varvec{\omega }^\times \varvec{J}\varvec{\omega }\right. \nonumber \\&+\varvec{\tau _c}+\varvec{J}\varvec{\omega _e}^\times {\varvec{R}}_{\varvec{e}}^{T}\varvec{\omega _c}-\varvec{J}{\varvec{R}}_{\varvec{e}}^{T}\varvec{\dot{\omega }_c}\nonumber \\&\left. -\varvec{J}\varvec{\dot{\alpha }_R}+\varvec{\varDelta _\tau }+{\frac{\varvec{\varOmega }^T\varvec{e_R}}{1-\Vert \varvec{e_R}\Vert ^2}}\right) +\frac{1}{\gamma _{\tau 1}}\varvec{\tilde{\varsigma }}^T{\dot{\hat{\varvec{\varsigma }}}}. \end{aligned}$$

According to Assumption 1 and Lemma 1,

$$\begin{aligned} \varvec{\tilde{\omega }}^T\varvec{\varDelta _\tau }\le & {} \sum _{i=x,y,z}{|\tilde{\omega }_i|\varsigma _i}\\\le & {} \sum _{i=x,y,z}\left[ \tilde{\omega }_i\tanh \left( \frac{\tilde{\omega }_i}{\epsilon _\tau }\right) +k_q\epsilon _\tau \right] \varsigma _i\\= & {} \varvec{\tilde{\omega }}^T\varvec{{\mathrm {Tanh}}}\left( \frac{\varvec{\tilde{\omega }}}{\epsilon _\tau }\right) \varvec{\varsigma }+k_q\epsilon _\tau \sum _{i=x,y,z}\varsigma _i. \end{aligned}$$

Then, \(\dot{L}_a\) satisfies

$$\begin{aligned} \dot{L}_a\le & {} -k_R\frac{{\varvec{e}}_{\varvec{R}}^{T}\varvec{e_R}}{1-\Vert \varvec{e_R}\Vert ^2} +\varvec{\tilde{\varsigma }}^T\left[ \frac{1}{\gamma _{\tau 1}}{\dot{\hat{\varvec{\varsigma }}}}-\varvec{{\mathrm {Tanh}}}\left( \frac{\varvec{\tilde{\omega }}}{\epsilon _\tau }\right) \varvec{\tilde{\omega }}\right] \nonumber \\&+\,\varvec{\tilde{\omega }}^T\left[ -\varvec{\omega }^\times \varvec{J}\varvec{\omega } +\varvec{\tau _c}+\varvec{J}\varvec{\omega _e}^\times {\varvec{R}}_{\varvec{e}}^{T}\varvec{\omega _c} -\varvec{J}{\varvec{R}}_{\varvec{e}}^{T}\varvec{\dot{\omega }_c}\right. \nonumber \\&-\left. \varvec{J}\varvec{\dot{\alpha }_R}+\frac{\varvec{\varOmega }^T\varvec{e_R}}{1\!-\!\Vert \varvec{e_R}\Vert ^2}\!+\!\varvec{{\mathrm {Tanh}}}\left( \frac{\varvec{\tilde{\omega }}}{\epsilon _\tau }\right) {\hat{\varvec{\varsigma }}}\!\right] \!+\bar{d}_\tau ,\nonumber \\ \end{aligned}$$
(33)

where \(\bar{d}_\tau =k_q\epsilon _\tau \sum _{i=x,y,z}\varsigma _i\). Substituting (28) and (29) into (33) yields

$$\begin{aligned} \dot{L}_a\le & {} -k_R\frac{{\varvec{e}}_{\varvec{R}}^{T}\varvec{e_R}}{1-\Vert \varvec{e_R}\Vert ^2} -k_\omega \varvec{\tilde{\omega }}^T\varvec{\tilde{\omega }}-\gamma _{\tau 2} \varvec{\tilde{\varsigma }}^T\varvec{\hat{\varsigma }}+\bar{d}_\tau \nonumber \\\le & {} -k_R\frac{{\varvec{e}}_{\varvec{R}}^{T}\varvec{e_R}}{1-\Vert \varvec{e_R}\Vert ^2}-k_\omega {\tilde{\varvec{\omega }}}^T\varvec{\tilde{\omega }}-\frac{\gamma _{\tau 2}}{2} {\hat{\varvec{\varsigma }}}^T{\hat{\varvec{\varsigma }}}+d_\tau \nonumber \\\le & {} -k_\tau L_a+d_\tau , \end{aligned}$$
(34)

where \(k_\tau =\min (2k_R,2\frac{k_\omega }{\bar{\lambda }(\varvec{J})},\frac{\gamma _{\tau 1}}{\gamma _{\tau 2}})\) and \(d_\tau =\bar{d}_\tau +\frac{\gamma _{\tau 2}}{2}\varvec{\varsigma }^T\varvec{\varsigma }\).

(i) \(\varvec{R}(0)\ne -\varvec{R_c}(0)\) means \(\Vert \varvec{e_R(0)}\Vert <1\). Integrating both sides of (34) over [0, t] gives

$$\begin{aligned} 0\le L_a(t)\le \left( L_a(0)\!-\!\frac{d_\tau }{k_\tau }\right) e^{-k_\tau t}\!+\!\frac{d_\tau }{k_\tau }\!\le \!L_a(0)+\frac{d_\tau }{k_\tau }, \end{aligned}$$
(35)

which implies that \(L_a\) is bounded. From (30) and (35),

$$\begin{aligned} \frac{1}{2}\ln \frac{1}{1-\Vert \varvec{e_R}\Vert ^2}\le \left( L_a(0) -\frac{d_\tau }{k_\tau }\right) e^{-k_\tau t}+\frac{d_\tau }{k_\tau }. \end{aligned}$$
(36)

Take exponentials on both sides of (36) and conduct some computations, then

$$\begin{aligned} \Vert \varvec{e_R}(t)\Vert \le \sqrt{1-e^{-2\left[ \frac{d_\tau }{k_\tau } +\left( L_a(0)-\frac{d_\tau }{k_\tau }\right) \exp (-\frac{d_\tau }{k_\tau }t)\right] }}<1, \end{aligned}$$
(37)

which means that as long as \(\Vert \varvec{e_R(0)}\Vert <1\) or \(\varvec{R}(0)\ne -\varvec{R_c}(0),\,\varvec{e_R}(t)\) always remains in \({\mathcal {Z}}_{R1}\).

(ii) It follows (37) that \(\varvec{e_R}\) is bounded and ultimately converges to \({\mathcal {Z}}_{R2}=\left\{ \varvec{e_R}\in {\mathbb {R}}^3|\Vert \varvec{e_R}\Vert \le \sqrt{1-e^{-2\frac{d_\tau }{k_\tau }}}\right\} \). In addition, from (30) and (35), \(\varvec{\tilde{\omega }}\) is bounded and ultimately converges to \({\mathcal {Z}}_{{\omega }}=\{\varvec{\tilde{\omega }}\in {\mathbb {R}}^3|\Vert \varvec{\tilde{\omega }}\Vert \le \sqrt{\frac{2d_\tau }{\underline{\lambda }{(\varvec{J})k_\tau }}}\}\).

Remark 3

Given \(\varvec{\ddot{p}_c},\,\varvec{\dot{p}_c},\,\varvec{p_c},\,\varvec{p}(0),\,\varvec{v}(0)\) and \(\varvec{\hat{\sigma }}(0)\), initial \(\varvec{U}(0)\) can be determined by (14). Then initial \(\varvec{R_c}(0)\) can be determined by (21). Thus, the initial rotation matrix \(\varvec{R}(0)\ne -\varvec{R_c}(0)\) can be chosen easily.

In addition, from (9), we derive \(\varvec{M}=[T_t,a_s,b_s]^T\) as

$$\begin{aligned} \varvec{M}=\varvec{\tau _A}^{-1}(\varvec{\tau _c}-\varvec{\tau _B}). \end{aligned}$$
(38)

4 Simulations

In order to verify the effectiveness of the proposed adaptive control approach, some simulations are conducted for a model-scaled helicopter with MATLAB/Simulink. The parameters of the helicopter are introduced from [31]. The reference trajectory consists of two parts: First, the helicopter lifts vertically for the first 10 s; then, it conducts an “8-shaped” curve fight to the end. Specifically, the reference trajectory is described as

$$\begin{aligned} \varvec{p_c}(t)={\left\{ \begin{array}{ll}^Tm&{}\quad \text {if } t\le 10 {\text { s}} \\ \left[ \begin{array}{c}20(1-\cos \frac{2\pi }{23}(t-10)), \\ 10\sin \left( \frac{4\pi }{23}(t-10)\right) ,\\ 10(1-e^{-0.3t}) \end{array}\right] m&\quad \text {otherwise} \end{array}\right. } \end{aligned}$$

The helicopter is initially still at \(\varvec{p}(0)=[5,5,0]^T\) with the initial rotation matrix \(\varvec{R}(0)=\varvec{I_3}\). Besides, a \(40\%\) mass drop appears at \(30\sec \).

Fig. 2
figure 2

3D trajectory tracking

Fig. 3
figure 3

Position tracking error

Fig. 4
figure 4

Attitude tracking error

The attitude loop control parameters are required to be tuned sufficiently large, so that the helicopter can reach its command attitude rapidly. In terms of the position loop control parameters, they are tuned based on Condition (c) in Remark 2. In view of (15) and (29), they are both increasing functions with respect to \({\vartheta _{fi}^2}\) and \({\tilde{\omega }_i^2}\) (\(i=x,y,z\)), so that \(\gamma _f\) and \(\gamma _{\tau 1}\) are required not too high. Specifically, the control and adaptive parameters are as follows: \(l_p=0.5,\,k_p=\alpha _p=1,\,\beta _p=4,\,k_R=k_\omega =8,\,\gamma _f =\gamma _{\tau 1}=0.02,\,\gamma _{\tau 2}=2.5\) and \(\epsilon _f=\epsilon _\tau =0.02\). Further, we choose \(\kappa _{fi}=2\) (\(i=x,y,z\)) to constrain the increment of \(\hat{\sigma }_i\).

3D tracking figure in Fig. 2 illustrates that the trajectory tracking objective is accomplished with the proposed control approach. Figure 3 illustrates the bounded position tracking error in spite of the mass drop, which demonstrates the robustness of the proposed control approach to the parameter uncertainty. Figure 4 illustrates the bounded attitude tracking error in spite of a large tracking error that appears at \(10\sec \) due to a sudden turning. Then, Fig. 5 shows that \(\Vert \varvec{\varvec{e_R}}\Vert \) remains in the set \({\mathcal {Z}}_{R1}\) all the time, which implies that no singularity occurs during the tracking progress. From Figs. 6 and 7, \(\varvec{{\sigma }}\) satisfies \(\sigma _{i}\le {\kappa }_{fi}\) (\(i=x,y,z\)) and \(\varvec{\varsigma }\) is bounded.

Fig. 5
figure 5

\(\Vert \varvec{e_R}\Vert \)

Fig. 6
figure 6

\(\varvec{\hat{\sigma }}\)

Fig. 7
figure 7

\(\varvec{\hat{\varsigma }}\)

5 Conclusion

An adaptive trajectory tracking control approach is proposed for a model-scaled helicopter with the rotation matrix representing the attitude. Based on a decomposed model with the cascaded structure, the control approach is designed with the hierarchical architecture. The position and attitude loop control laws are designed based on integral-quadratic Lyapunov function and barrier-quadratic Lyapunov function, respectively. They respectively complete the position and attitude tracking missions without the singularity. The upper bounds of the unmodeled dynamics are estimated and compensated. Simulations verify the performance of the proposed control approach.