Keywords

1 Introduction

Tracking tasks for aircrafts can be classified as two categories [1]: trajectory tracking and path following. In the first case, the aircraft is required to track a time-varying reference trajectory at every transient. While in the second case it is required to fly along a reference path at a desired speed. Unlike trajectory tracking, there is no temporal requirements on path following. Besides the path following has some control performances that can not be obtained from trajectory tracking in some specific cases [2].

Various linear and nonlinear controllers have been proposed for path following control of miniature helicopters. The linear control methods are simple and reliable, such as PID [3] and LQ control [4, 5], but have the limitation to realize full envelope flight. To this end, some nonlinear control methods such as backstepping approach [6], feedback linearization technique [7] or hybrid control methods [8, 9] have been applied. Due to the under-actuated property, the helicopter model is always simplified to position outer-loop and attitude inner-loop structure [10, 11]. However, the controller designed based on the hierarchical structure may suffer from singularity when deriving the desired attitude from position controller. So far, only a few literatures [6] take into account this problem, and most reference paths are parameterized curves.

The parameterized path following [6, 8, 9] is the most commonly used problem formulation. The path is described with a time-varying parameter, and the task is to design control law and parameter timing law such that helicopter can keep up with the moving point determined by the parameter. Another problem formulation is based on implicit expressions [1, 7]. The path is given by the intersection of two manifolds. Unlike parameterized path following which turns path following problem to point-tracking problem, the task for implicit path following is to follow the entire path and the helicopter will enter an invariant set around the reference path. However, controller design for implicit path following always relates to control matrix of the closed-loop system, and it suffers from singularity when the matrix is not invertible.

In this paper a singularity-free implicit path following controller for miniature helicopters is presented. The control design is based on the hierarchical structure. The outer-loop position controller is constructed with the hyperbolic tangent function to realize path following, and a temporary path is planned to guarantee the control matrix invertible. From the position controller, the desired command attitude can be derived without singularity by choosing appropriate controller parameters. The inner-loop attitude controller is designed with the unit-quaternion representation to realize tracking for the command attitude.

2 Preliminaries

In following sections, \(c(\cdot )\) and \(s(\cdot )\) are shorts of \(\cos (\cdot )\) and \(\sin (\cdot )\). \(|\cdot |\)denotes absolute value of a real number, \(\Vert \cdot \Vert \) denotes Euclidean norm for a vector or induced Euclidean norm for a matrix. \(\bar{\lambda }(\cdot )\) and \(\underline{\lambda }(\cdot )\) denote the maximum and minimum eigenvalues, respectively. For \(\varvec{x}=[x_1,\ldots ,x_n]^{T}\in \mathbb {R}^n\), define hyperbolic tangent function vector \(\mathrm {tanh}(\varvec{x})=[\mathrm {tanh} (x_1),\ldots ,\mathrm {tanh} (x_n)]^{T}\) and hyperbolic tangent function matrix \(\mathrm {Tanh}(\varvec{x})=\mathrm{diag}\{\mathrm {tanh} (x_1),\ldots ,\mathrm {tanh} (x_n)\}\). For a continuously differentiable scalar function \(f(\varvec{x})\), define \(\partial _{x_{i}}f=\frac{\partial f}{\partial x_i}(i=1,\ldots n)\) and \(\partial _{\varvec{x}}f=[\frac{\partial f}{\partial x_1},\ldots ,\frac{\partial f}{\partial x_n}]^T\). For continuously differentiable vector function \(\varvec{f}(\varvec{x})=[f_1(\varvec{x}),\ldots ,f_m(\varvec{x})]^T\), define \(\partial _{\varvec{x}}\varvec{f}=\begin{bmatrix}\frac{\partial f_1}{\partial x_1}&\cdots&\frac{\partial f_1}{\partial x_n}\\ \vdots&\ddots&\vdots \\ \frac{\partial f_m}{\partial x_1}&\cdots&\frac{\partial f_m}{\partial x_n}\end{bmatrix}\) and \(\partial _{\varvec{x}}^2f=\partial _{\varvec{x}}(\partial _{\varvec{x}}f)\).

Lemma 1

([12]) For \(x\in \mathbb {R}^n\), if \(\Vert \varvec{x}\Vert<\overline{x}<\infty \), then there exists a constant \(\chi (\overline{x})\in (0,1)\) satisfying \(\chi \Vert \varvec{x}\Vert \le \Vert \mathrm {tanh}(\varvec{x})\Vert \le \Vert \varvec{x}\Vert \).

Lemma 2

([13]) For \(x\in \mathbb {R}\) and \(\varepsilon >0\), \(0\le |x|-x\mathrm {tanh}(x/\varepsilon )\le k_q\varepsilon \), where \(k_q=0.2785\) satisfies \(k_q=e^{-(k_q+1)}\).

Lemma 3

([14]) Given a smooth function \(\beta (t):\mathbb {R}^{+}\rightarrow \mathbb {R}\), its derivatives can be estimated by the command filter \(\ddot{x}=-2\xi \omega _n\dot{x}-\omega _n^2(x-\beta )\) such that \(\dot{\beta }\approx \dot{x},\ddot{\beta }\approx \ddot{x}\), where \(\omega _n>0\) is chosen large enough to ensure estimation accuracy.

Fig. 1
figure 1

Helicopter model and frames

3 Problem Statement

Mathematical modeling Figure 1 shows the helicopter configuration, it is modeled in two frames: the earth frame \(\mathcal {I}=\{ Oxyz\mathcal \}\) and fuselage frame \(\mathcal {B}=\{ O_bx_by_bz_b\mathcal \}\). Frame \(\mathcal {I}\) is fixed to the earth and its origin locates on the ground. Frame \(\mathcal {B}\) is fixed to the helicopter body and its origin locates at the helicopter center of gravity (c.g.). The rotation matrix R [1], which defines the rotation from \(\mathcal {B}\) to \(\mathcal {I}\) around an unit vector \(\hat{\varvec{k}}\in \mathbb {R}^3\) by an angle \(\varphi \), is mostly used to describe attitude of the helicopter. The unit-quaternion \(Q=[\mu ,\varvec{q}^{T}]^{T}=\{Q\in \mathbb {R}\times \mathbb {R}^3|\mu ^2+\varvec{q}^{T}\varvec{q}=1\}\) [15] can also be used to describe attitude, where \(\mu =\cos \frac{\varphi }{2}\) and \(\varvec{q}=[q_1,q_2,q_3]^{T}=\sin \frac{\varphi }{2}\varvec{\hat{k}}\). R and Q satisfy following relation

$$\begin{aligned} R(Q)=(\mu ^2-\varvec{q}^{T}\varvec{q})I_3+2\varvec{q}\varvec{q}^{T}+2\mu S(\varvec{q}) \end{aligned}$$
(1)

where \(I_3\) is \(3\times 3\) identity matrix, \(S(\varvec{q})=\begin{bmatrix} 0&-q_3&q_2\\ q_3&0&-q_1\\ -q_2&q_1&0 \end{bmatrix}\). Given \(Q_1=\begin{bmatrix} \mu _1\\ \varvec{q_1} \end{bmatrix}\) and \(Q_2=\begin{bmatrix} \mu _2\\ \varvec{q_2} \end{bmatrix}\), the quaternion multiplication \(Q_1\otimes Q_2=\begin{bmatrix} \mu _1\mu _2-\varvec{q_1}^{T}\varvec{q_2} \\ \mu _1\varvec{q_2}+\mu _2\varvec{q_1}+S(\varvec{q_1})\varvec{q_2} \end{bmatrix}\). The inverse of Q is defined as \(Q^{-1}=[\mu ,-\varvec{q}^{T}]^{T}\) and satisfies \(Q^{-1}\otimes Q=[1,0,0,0]^{T}\).

Based on the Newton–Euler equations, the dynamic model of the helicopter can be derived as follows [1]

$$\begin{aligned} \dot{\varvec{p}}=\varvec{v}, \ \ \&m\dot{\varvec{v}}=-m\varvec{g_3}+R(Q)\varvec{f} \end{aligned}$$
(2)
$$\begin{aligned} \dot{Q}=\frac{1}{2}\Theta (Q)&\varvec{\omega }, \ \ \ J\dot{\varvec{\omega }}=-\varvec{\omega }\times J\varvec{\omega }+\varvec{\tau } \end{aligned}$$
(3)

where \(\varvec{p}=[x,y,z]^{T}\) and \(\varvec{v}=[u,v,w]^{T}\) are position and velocity of helicopter denoted in \(\mathcal {I}\), m is the helicopter mass, \(\varvec{g_3}=[0,0,g]^{T}\) and g is gravitational acceleration, \(\varvec{\omega }=[\omega _x,\omega _y,\omega _z]^{T}\) is angular velocity denoted in \(\mathcal {B}\), \(\Theta (Q)=\begin{bmatrix}{\begin{matrix} -\varvec{q}^{T}\\ \mu I_3+S(\varvec{q}) \end{matrix}}\end{bmatrix}\) is attitude transition matrix, \(J=\begin{bmatrix}{\begin{matrix} J_x &{} 0 &{} -J_{xz}\\ 0 &{} J_y &{} 0\\ -J_{xz} &{} 0 &{} J_z \end{matrix}}\end{bmatrix}\) is the inertial matrix denoted in \(\mathcal {B}\). The applied force \(\varvec{f}\) and torque \(\varvec{\tau }\) denoted in \(\mathcal {B}\) are given by [1]

$$\begin{aligned} \varvec{f}=\begin{bmatrix} T_m sa_s cb_s\\ -T_m sb_s ca_s+T_t\\ T_m ca_s cb_s \end{bmatrix}, \varvec{\tau }=\begin{bmatrix} T_m h_m sb_s+L_b b_s+T_t h_t+\tau _m sa_s\\ T_m l_m+T_m h_m sa_s+M_a a_s+\tau _t -\tau _m sb_s\\ -T_m l_m sb_s-T_t l_t+\tau _m ca_s cb_s \end{bmatrix} \end{aligned}$$
(4)

where \(T_m,\tau _m, T_t, \tau _t\) are thrust and anti-torque generated by the main and tail rotors, respectively; \(M_a, L_b\) are stiffness coefficients of main rotor; \(h_m, h_t, l_m, l_t\) denote vertical and horizontal distances between the rotor centers and helicopter \(\mathrm {c.g.}\); \(a_s,b_s\) denote longitudinal and lateral flapping angles of the main rotor. The relationship between thrusts \(T_i\) and anti-torque \(\tau _i\) \((i=m\ \mathrm{or} \ t)\) is given by [12]

$$\begin{aligned} \tau _i=A_i|T_i|^{1.5}+B_i \end{aligned}$$
(5)

where \(A_i\) and \(B_i\) are aerodynamic constants.

Due to the limitation of helicopter physical structure, \(a_s,b_s,T_t\) and \(\tau _t\) are fairly small, thus it is reasonable to express (4) as [11]:

$$\begin{aligned} \varvec{f}=[0,0,T_m]^T+\varvec{f}_{\varDelta }, \ \varvec{\tau }=Q_A\varvec{\rho }+\varvec{\tau }_B+\varvec{\varDelta }_\tau =\varvec{\tau }_1+\varvec{\varDelta }_\tau \end{aligned}$$
(6)

where \(\varvec{\rho }=\begin{bmatrix}{\begin{matrix} T_t\\ a_s\\ b_s \end{matrix}}\end{bmatrix}\), \(\varvec{\tau }_B=\begin{bmatrix}{\begin{matrix} 0\\ T_ml_m\\ \tau _m \end{matrix}}\end{bmatrix}\), \(Q_A=\begin{bmatrix}{\begin{matrix} h_t &{} \tau _m &{} T_mh_m+L_b \\ 0 &{} T_mh_m+M_a &{} -\tau _m \\ -l_t &{} 0 &{} -T_ml_m \end{matrix}}\end{bmatrix}\) and \(\mathrm{det}(Q_A)\ne 0\) [1]; \(\varvec{f}_\varDelta \) and \(\varvec{\varDelta }_\tau \) are bounded and small [12]. The real input \(\varvec{\rho }=Q_A^{-1}(\varvec{\tau }_1-\varvec{\tau }_B)\). Equation (2) can be rewritten as

$$\begin{aligned} \varvec{\dot{v}}=-\varvec{g_3}+(T_m/m)\varvec{r}_3+\bar{\varvec{f}}_\varDelta \end{aligned}$$
(7)

where \(\varvec{r_3}=R\varvec{e_3}\), \(\varvec{e}_3=[0,0,1]^T\), \(\bar{\varvec{f}}_\varDelta =\frac{1}{m}R\varvec{f}_\varDelta \).

Control objective The reference path \(\mathcal{P}_r\) is a regular curve described by implicit expressions, i.e. \(\mathcal{P}_r=\{[x,y,z]^{T}|f_1(x,y,z)=0,f_2(x,y,z)=0\}\), and \(\partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2|_{\varvec{p}\in \mathcal{P}_r}\ne 0\), where \(f_1,f_2 \in C^{\infty }\); \(\Vert \partial _{\varvec{p}}f_1\Vert ,\Vert \partial _{\varvec{p}}f_2\Vert \) are bounded on \(\mathcal{P}_r\). In this paper the manifold \(f_1=0\) is specified as a plane \(f_1=ax+by+cz+d=0\).

Remark 1

From \(f_1,f_2\in C^{\infty }\) it follows that \(\partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2\in C^{\infty }\) and \(\partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2\ne 0\) in neighbourhood of \(\mathcal{P}_r\).

The control object is: (i) designing control inputs \(T_m,T_t,a_s,b_s\) such that the helicopter trajectory converges to the reference path ultimately and the magnitude of its velocity projection on reference path tends to desired speed \(v_r>0\), i.e. there exit small positive constants \(o_1,o_2,o_3\) such that

$$\begin{aligned} \begin{aligned} \mathrm {lim}_{t \rightarrow \infty }&|f_1(x,y,z)|<o_1, \ \ \mathrm {lim}_{t\rightarrow \infty } |f_2(x,y,z)|< o_2 \\ \mathrm {lim}_{t \rightarrow \infty }&\left| \left( \frac{\partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2}{\Vert \partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2\Vert }\right) ^{T}\varvec{v}-v_r\right| <o_3 \end{aligned} \end{aligned}$$
(8)

(ii) No singularity occurs in control process.

4 Controller Design

Define the path-following and velocity errors

$$\begin{aligned} \varsigma _1=f_1(x,y,z),\ \ \varsigma _2=f_2(x,y,z),\ \ \varsigma _3=\varvec{\eta }^T\varvec{v}-v_r \end{aligned}$$
(9)

where \(\varvec{\eta }=\frac{\partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2}{\Vert \partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2\Vert }\), we can derive

$$\begin{aligned} \, [\dot{\varsigma }_1,\dot{\varsigma }_2,\varsigma _3]^{T}= G\varvec{v}-[0,0,v_r]^{T},\ \ \, [\ddot{\varsigma }_1,\ddot{\varsigma }_2,\dot{\varsigma }_3]^{T}= \varvec{h}+G\dot{\varvec{v}} \end{aligned}$$
(10)

where \(\varvec{h}=[0,\varvec{v}^T(\partial _{\varvec{p}}^2f_2)\varvec{v},\varvec{v}^T(\partial _{\varvec{p}}\varvec{\eta })\varvec{v}-\dot{v}_r]^T\), \(G=[\partial _{\varvec{p}}f_1,\partial _{\varvec{p}}f_2,\varvec{\eta }]^{T}\) is the control matrix. From (10) and (7) we know

$$\begin{aligned} \, [\ddot{\varsigma }_1,\ddot{\varsigma }_2,\dot{\varsigma }_3]^T=\varvec{h}+G[-\varvec{g_3}+(T_m/m)\varvec{r_3}]+\varvec{\varDelta }_f \end{aligned}$$
(11)

where \(\varvec{\varDelta }_f=G\bar{\varvec{f}}_\varDelta \). Define the position loop controller \(\varvec{u_c}=T_m\varvec{r_3}\) and design

$$\begin{aligned} \varvec{u_c}=[u_{cx},u_{cy},u_{cz}]^T=m(\varvec{g_3}+G^{-1}(-\varvec{h}+\varvec{\nu }_c)) \end{aligned}$$
(12)

where \(\varvec{\nu }_c\) is a new control input to be determined. The singularity occurs when \(\mathrm{{det}}(G)=(\partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2)^{T}\varvec{\eta }=\Vert \partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2\Vert =0\). From Remark 1, G is invertible in neighborhood of \(\mathcal{P}_r\). When helicopter initial position is far from \(\mathcal{P}_r\), G cannot be guaranteed to be invertible. Besides, when helicopter is far from the path, the control energy will be large. A solution for the two problems is to plan a temporary path \(\mathcal{\bar{P}}_r\) from initial position to \(\mathcal{P}_r\) such that corresponding control matrix \(\bar{G}\) is invertible on \(\bar{\mathcal{P}}_r\). In this paper define \(P_0\) to be the initial position, when \(\sqrt{|f_1(P_0)|^2+|f_2(P_0)|^2}>10\), it is need to plan a temporary-path.

Assumption 1

\(\varvec{\varDelta }_f=[\varDelta _{fx},\varDelta _{fy},\varDelta _{fz}]^{T}\) and \(\varvec{\varDelta }_\tau =[\varDelta _{\tau x},\varDelta _{\tau y},\varDelta _{\tau z}]^{T}\) are bounded and satisfy \(|\varDelta _{fi}| \le \delta _i, |\varDelta _{\tau i}| \le \gamma _i \ (i=x,y,z)\), where \(\varvec{\delta }=[\delta _x,\delta _y,\delta _z]^{T}\) and \(\varvec{\gamma }=[\gamma _x,\gamma _y,\gamma _z]^{T}\) are known upper bounds; The coefficient c in \(f_1=0\) satisfies \(|c|>\delta _x/g\) for avoiding singularity in deriving desired unit-quaternion. The physical meaning is that \(f_1=0\) is not perpendicular to \(x-y\) plane of \(\mathcal{I}\).

Fig. 2
figure 2

Temporary path generator

Path planning As illustrated in Fig. 2, the initial position \(P_0=[x_0,y_0,z_0]^T\). Choose a point \(P_{d}=[x_r,y_r,z_r]^T\) on \(\mathcal{P}_r\) and compute tangent vector \(\varvec{p}_d=[\bar{x},\bar{y},\bar{z}]^T=\partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2|_{P_d}\). Define \(\varvec{p}_0=\overrightarrow{P_0P_d}\) and compute \(\varvec{p}_0\times \varvec{p}_d=[\bar{x}_1,\bar{y}_1,\bar{z}_1]^T\). If \(P_d\) are chosen such that \(\bar{z}_1\ne 0\) and \(\varvec{p}_0\) is not collinear with \(\varvec{p}_d\), a temporary path can be planned with following steps:

Firstly, passing through \(\varvec{p}_0\) and \(\varvec{p}_d\) we can define a plane \(\bar{f}_1=a_1x+b_1y+c_1z+d_1=0\). Since \(P_d\) lies on \(\bar{f}_1=0\) and its normal vector is \(\varvec{p}_0\times \varvec{p}_d\), we know \(d_1 = -a_1x_r-b_1y_r-c_1z_r\) and \([a_1,b_1,c_1]=k[\bar{x}_1,\bar{y}_1,\bar{z}_1]\), where k is a constant. Considering \(\bar{z}_1\ne 0\), choosing \(|k|>\frac{\delta _x}{|\bar{z}_1| g}\) can guarantee that \(c_1>\delta _x/g\).

Then, define \(\bar{f}_2 = 0\) to be a sphere, its center \(\bar{O} = [a_2,b_2,c_2]^T\), \(\varvec{p}_1 = \overrightarrow{\bar{O}P_0}\) and \(\varvec{p}_2 = \overrightarrow{\bar{O}P_d}\). Since \(\varvec{p}_2\perp \varvec{p}_d\), \(\bar{f}_1(\bar{O}) = 0\) and \(\Vert \varvec{p}_1\Vert = \Vert \varvec{p}_2\Vert \), \(\bar{O}\) can be determined by

$$\begin{aligned} \begin{bmatrix} a_2\\ b_2\\ c_2 \end{bmatrix} =\begin{bmatrix} \bar{x}&\bar{y}&\bar{z}\\ a_1&b_1&c_1\\ x_r-x_0&y_r-y_0&z_r-z_0 \end{bmatrix}^{-1} \begin{bmatrix} \bar{x}x_r+\bar{y}y_r+\bar{z}z_r\\ -d_1\\ \frac{x_r^2-x_0^2+y_r^2-y_0^2+z_r^2-z_0^2}{2} \end{bmatrix} \end{aligned}$$

Since \(\varvec{p}_0\) is not collinear to \(\varvec{p}_d\), above inverse matrix is well defined and \([a_2,b_2,c_2]^T\) can be determined uniquely. Define \(\Vert \varvec{p}_1\Vert =r\), we have \(\bar{f}_2=\frac{1}{k_1}((x-a_2)^2+(y-b_2)^2+(z-c_2)^2-r^2)=0\), where \(k_1\ne 0\) is a constant.

Finally, temporary path \(\mathcal{\bar{P}}_r\) is the intersection of \(\bar{f}_1=0\) and \(\bar{f}_2=0\). Since two paths are generated (bold line and normal one in Fig. 2), the one with smaller angle from its tangent line at \(P_0\) to helicopter head direction should be selected.

Remark 2

\(\mathcal{\bar{P}}_r\) satisfies that 1) \(\partial _{\varvec{p}}\bar{f_1}\times \partial _{\varvec{p}}\bar{f_2}\) is collinear with \(\partial _{\varvec{p}}f_1\times \partial _{\varvec{p}}f_2\) at \(P_d\). 2) \(\partial _{\varvec{p}}\bar{f_1}\perp \partial _{\varvec{p}}\bar{f_2}\) on \(\mathcal{\bar{P}}_r\), i.e. \(\partial _{\varvec{p}}\bar{f_1}\times \partial _{\varvec{p}}\bar{f_2}\ne 0\) on \(\mathcal{\bar{P}}_r\). Since \(\bar{f_1},\bar{f_2}\in C^{\infty }\), it holds near \(\mathcal{\bar{P}}_r\), i.e. control matrix \(\bar{G}\) invertible near \(\mathcal{\bar{P}}_r\).

\({\bar{\mathcal {P}}}_\mathbf{r }\) following The position loop controller design is divided to two steps: \(\bar{\mathcal{P}}_r\) following and then \(\mathcal{P}_r\) following. Firstly define errors for the temporary path \(\bar{\mathcal{P}}_r\)

$$\begin{aligned} \begin{aligned}&\bar{\varsigma }_1 = a_1x + b_1y + c_1z + d_1, \ \ \bar{\varsigma }_2 = \frac{1}{k_1}((x-a_2)^2 + (y - b_2)^2 + (z - c_2)^2 - r^2)\\&\bar{\varsigma }_3=\varvec{\bar{\eta }}^{T}\varvec{v}-\bar{v}_r \end{aligned} \end{aligned}$$
(13)

where \(\bar{\varvec{\eta }}=\frac{\bar{\varvec{\eta }}_1\times \bar{\varvec{\eta }}_2}{\Vert \bar{\varvec{\eta }}_1\times \bar{\varvec{\eta }}_2\Vert }\), \(\bar{\varvec{\eta }}_1=[a_1,b_1,c_1]^{T}\), \(\bar{\varvec{\eta }}_2=\frac{2}{k_1}[x-a_2,y-b_2,z-c_2]^{T}\). It yields

$$\begin{aligned} \begin{aligned} {[}\dot{\bar{\varsigma }}_1,\dot{\bar{\varsigma }}_2,\bar{\varsigma }_3{]}^T= \bar{G}\varvec{v}-[0,0,\bar{v}_r]^T \end{aligned} \end{aligned}$$
(14)
$$\begin{aligned} \begin{aligned} {[}\ddot{\bar{\varsigma }}_1,\ddot{\bar{\varsigma }}_2,\dot{\bar{\varsigma }}_3{]}^T= \bar{\varvec{h}}+\bar{G}[-\varvec{g_3}+(T_m/m)\varvec{r_3}]+\varvec{\varDelta }_f \end{aligned} \end{aligned}$$
(15)

where \(\bar{G}=[\bar{\varvec{\eta }}_1,\bar{\varvec{\eta }}_2,\bar{\varvec{\eta }}]^{T}\) is control matrix, \(\bar{\varvec{h}}=[\bar{h}_1,\bar{h}_2,\bar{h}_3]^T=[0,\frac{2}{k_1}\varvec{v}^T\varvec{v},\varvec{v}^T(\partial _{\varvec{p}}\bar{\varvec{\eta }})\varvec{v}-\dot{\bar{v}}_r]^{T}\). Define \(\bar{\varvec{u}}_c=T_m\varvec{r}_3\) and design it as

$$\begin{aligned} \begin{aligned} \bar{\varvec{u}}_c= [\bar{u}_{cx},\bar{u}_{cy},\bar{u}_{cz}]^T=m(\varvec{g}_3+\bar{G}^{-1}(-\bar{\varvec{h}}+\bar{\varvec{\nu }}_c)) \end{aligned} \end{aligned}$$
(16)
$$\begin{aligned} \begin{aligned} \bar{\varvec{\nu }}_c= \begin{bmatrix} \bar{\nu }_{1}\\ \bar{\nu }_{2}\\ \bar{\nu }_{3} \end{bmatrix}=\begin{bmatrix} -\bar{k}_{11}(\mathrm{tanh}(\bar{\varsigma }_{k1})+\mathrm{tanh}(\dot{\bar{\varsigma }}_1))-\mathrm{tanh}(\frac{\bar{\vartheta }_1}{\bar{\varepsilon }_1})\delta _x\\ -\bar{k}_{21}(\mathrm{tanh}(\bar{\varsigma }_{k2})+\mathrm{tanh}(\dot{\bar{\varsigma }}_2))-\mathrm{tanh}(\frac{\bar{\vartheta }_2}{\bar{\varepsilon }_2})\delta _y\\ -\bar{k}_{31}\mathrm{tanh}(\bar{\varsigma }_3)-\mathrm{tanh}(\frac{\bar{\varsigma }_3}{\bar{\varepsilon }_3})\delta _z \end{bmatrix} \end{aligned} \end{aligned}$$
(17)

where \(\bar{\varsigma }_{k1}=\bar{k}_{12}\bar{\varsigma }_1+\dot{\bar{\varsigma }}_1\), \(\bar{\varsigma }_{k2}=\bar{k}_{22}\bar{\varsigma }_2+\dot{\bar{\varsigma }}_2\), \(\bar{\vartheta }_1=\mathrm{tanh}(\bar{\varsigma }_{k1})+\mathrm{tanh}(\dot{\bar{\varsigma }}_1)+\frac{\bar{k}_{12}}{\bar{k}_{11}}\dot{\bar{\varsigma }}_1\), \(\bar{\vartheta }_2=\mathrm{tanh}(\bar{\varsigma }_{k2})+\mathrm{tanh}(\dot{\bar{\varsigma }}_2)+\frac{\bar{k}_{22}}{\bar{k}_{21}}\dot{\bar{\varsigma }}_2\); \(\bar{k}_{11},\bar{k}_{12},\bar{k}_{21},\bar{k}_{22},\bar{k}_{31},\bar{\varepsilon }_1,\bar{\varepsilon }_2,\bar{\varepsilon }_3\) are positive constants. Since \(\Vert \varvec{r}_3\Vert =1\), \(T_m=\Vert \bar{\varvec{u}}_c\Vert \). If \(\bar{\varvec{u}}_c\not \in \mathcal{L}=\{[0,0,u]^T,u \le 0\}\), then the desired unit-quaternion \(Q_c=[\mu _c,\varvec{q}_c^T]^T\) can be derived from \(\bar{\varvec{u}}_c\) [12]

$$\begin{aligned} \begin{aligned} \varvec{q}_c=\frac{1}{2\Vert \bar{\varvec{u}}_c\Vert \mu _c}\begin{bmatrix} \bar{u}_{cy}\\ -\bar{u}_{cx}\\ 0 \end{bmatrix}, \mu _c=\sqrt{\frac{\Vert \bar{\varvec{u}}_c\Vert +\bar{u}_{cz}}{2\Vert \bar{\varvec{u}}_c\Vert }} \end{aligned} \end{aligned}$$
(18)

Theorem 1

If initial velocity \(\varvec{v}(0)=\varvec{0}\) and the parameters in (17) satisfy

$$\begin{aligned} \begin{aligned} \bar{k}_{12}\le \bar{k}_{11}<\frac{|c_1|g-\delta _x}{2},\bar{k}_{22}\le \bar{k}_{21},\bar{\varepsilon }_1<\frac{0.382\bar{k}_{12}}{k_q\delta _x},\bar{\varepsilon }_2<\frac{0.382\bar{k}_{22}}{k_q\delta _y} \end{aligned} \end{aligned}$$
(19)

Then control law (16) guarantees: (i) \(\bar{\varsigma }_1,\dot{\bar{\varsigma }}_1,\bar{\varsigma }_2,\dot{\bar{\varsigma }}_2,\bar{\varsigma }_3\) are bounded and converge to a small neighbourhood of origin. (ii) \(\bar{G}\) is invertible during control and no singularity occurs in deriving desired unit-quaternion with (18).

Proof

(i) Define \(\varvec{\bar{\varsigma }} = [\bar{\varsigma }_{k1},\dot{\bar{\varsigma }}_1]\), choose Lyapunov function

$$\begin{aligned} V=\int ^{\bar{\varsigma }_{k1}}_{0}\mathrm{tanh}(s)ds+\int ^{\dot{\bar{\varsigma }}_1}_{0}\mathrm{tanh}(s)ds+\frac{\bar{k}_{12}}{2\bar{k}_{11}}\dot{\bar{\varsigma }}_1^2 \end{aligned}$$
(20)
$$\begin{aligned} \begin{aligned} \dot{V}&= -\bar{k}_{11}[\mathrm{tanh}(\bar{\varsigma }_{k1})+\mathrm{tanh}(\dot{\bar{\varsigma }}_1)]^2-\bar{k}_{12}\dot{\bar{\varsigma }}_1\mathrm{tanh}(\dot{\bar{\varsigma }}_1)-\bar{\vartheta }_1[\mathrm{tanh}(\frac{\bar{\vartheta }_1}{\bar{\varepsilon }_1})\delta _x-\varDelta _{fx}]\\&\le -\mathrm{tanh}^{T}(\varvec{\bar{\varsigma }})\begin{bmatrix} \bar{k}_{11}&\bar{k}_{11}\\ \bar{k}_{11}&\bar{k}_{11}+\bar{k}_{12} \end{bmatrix}\mathrm{tanh}(\varvec{\bar{\varsigma }})-\bar{\vartheta }_1\mathrm{tanh}(\frac{\bar{\vartheta }_1}{\bar{\varepsilon }_1})\delta _x+\bar{\vartheta }_1\varDelta _{fx} \end{aligned} \end{aligned}$$
(21)

Based on Lemma 2, we know \(\bar{\vartheta }_1\varDelta _{fx} \le |\bar{\vartheta }_1|\delta _x \le [\bar{\vartheta }_1\mathrm{tanh}(\frac{\bar{\vartheta }_1}{\bar{\varepsilon }_1}) + k_q\bar{\varepsilon }_1]\delta _x\). Considering \(\begin{bmatrix}\bar{k}_{11}&\bar{k}_{11}\\ \bar{k}_{11}&\bar{k}_{11}+\bar{k}_{12}\end{bmatrix} = \varLambda ^T\begin{bmatrix}\bar{k}_{11}&0\\ 0&\bar{k}_{12} \end{bmatrix}\varLambda \), where \(\varLambda = \begin{bmatrix} 1&1\\ 0&1 \end{bmatrix}\), (21) yields \(\dot{V} \le k_q\bar{\varepsilon }_1\delta _x-\underline{\lambda }(\varLambda ^T\varLambda )\mathrm{min}\{\bar{k}_{11},\bar{k}_{12}\}\Vert \mathrm{tanh}(\bar{\varvec{\varsigma }})\Vert ^2 = k_q\bar{\varepsilon }_1\delta _x-0.382\bar{k}_{12}\Vert \mathrm{tanh}(\bar{\varvec{\varsigma }})\Vert ^2\). From (19) we know \(\frac{k_q\bar{\varepsilon }_1\delta _x}{0.382\bar{k}_{12}}< 1\). When \(\Vert \mathrm{tanh}(\bar{\varvec{\varsigma }})\Vert > \sqrt{\frac{k_q\bar{\varepsilon }_1\delta _x}{0.382\bar{k}_{12}}}\), \(\dot{V}<0\), which means \(\bar{\varvec{\varsigma }}\) is bounded. Then from Lemma 1 we have \(\chi \Vert \bar{\varvec{\varsigma }}\Vert \le \Vert \mathrm{tanh}(\bar{\varvec{\varsigma }})\Vert \), where \(0< \chi < 1\), it follows

$$\begin{aligned} \begin{aligned} \dot{V} \le -0.382\bar{k}_{12}\chi ^2\Vert \bar{\varvec{\varsigma }}\Vert ^2+k_q\bar{\varepsilon }_1\delta _x \end{aligned} \end{aligned}$$
(22)

Besides, from (20) we have \(\frac{\chi }{2}\Vert \bar{\varvec{\varsigma }}\Vert ^2 \le V \le \chi _2\Vert \bar{\varvec{\varsigma }}\Vert ^2\), where \(\chi _2=\frac{1}{2}(1+\frac{\bar{k}_{12}}{\bar{k}_{11}})\). Then \(\dot{V} \le -\frac{0.382\bar{k}_{12}\chi ^2}{\chi _2}V+k_q\bar{\varepsilon }_1\delta _x\). Integrating it yields

$$\begin{aligned} \frac{\chi }{2}\Vert \bar{\varvec{\varsigma }}\Vert ^2\le V\le [V(0)-\frac{k_q\bar{\varepsilon }_1\delta _x\chi _2}{0.382\bar{k}_{12}\chi ^2}]e^{\frac{-0.382\bar{k}_{12}\chi ^2}{\chi _2}t}+\frac{k_q\bar{\varepsilon }_1\delta _x\chi _2}{0.382\bar{k}_{12}\chi ^2} \end{aligned}$$
(23)

So \(\bar{\varvec{\varsigma }}\) exponentially converges to the set \(\mathbb {Z}_{v1} = \{\bar{\varvec{\varsigma }}| \Vert \bar{\varvec{\varsigma }}\Vert \le \sqrt{\frac{0.73\bar{\varepsilon }_1\delta _x}{\chi ^3}(\frac{1}{\bar{k}_{12}}+\frac{1}{\bar{k}_{11}})} \}\). Due that \(|\dot{\bar{\varsigma }}_1|\le \Vert \bar{\varvec{\varsigma }}\Vert \), \(\dot{\bar{\varsigma }}_1\) also converges to \(\mathbb {Z}_{v1}\). Considering \(\dot{\bar{\varsigma }}_1=-\bar{k}_{12}\bar{\varsigma }_1+\bar{\varsigma }_{k1}\) and \(|\bar{\varsigma }_{k1}|\le \Vert \bar{\varvec{\varsigma }}\Vert \), integrating \(\dot{\bar{\varsigma }}_1\) yields

$$\begin{aligned} |\bar{\varsigma }_1|\le e^{-\bar{k}_{12}t}(|\bar{\varsigma }_1(0)|-\sqrt{\frac{2k_q\bar{\varepsilon }_1\delta _x\chi _2}{0.382\bar{k}_{12}^3\chi ^3}})+\sqrt{\frac{2k_q\bar{\varepsilon }_1\delta _x\chi _2}{0.382\bar{k}_{12}^3\chi ^3}} \end{aligned}$$
(24)

Thus \(\bar{\varsigma }_1\) converges to set \(\mathbb {Z}_{p1}=\{|\bar{\varsigma }_1|\le \frac{1}{\bar{k}_{12}}\sqrt{\frac{0.73\bar{\varepsilon }_1\delta _x}{\chi ^3}(\frac{1}{\bar{k}_{12}}+\frac{1}{\bar{k}_{11}})} \}\). Similarly, \(\bar{\varsigma }_2\) and \(\dot{\bar{\varsigma }}_2\) exponentially converge to sets \(\mathbb {Z}_{p2}=\{\bar{\varsigma }_2| |\bar{\varsigma }_2|\le \frac{1}{\bar{k}_{22}}\sqrt{\frac{0.73\bar{\varepsilon }_2\delta _y}{\chi ^3}(\frac{1}{\bar{k}_{22}}+\frac{1}{\bar{k}_{21}})} \}\) and \(\mathbb {Z}_{v2}=\{\dot{\bar{\varsigma }}_2| |\dot{\bar{\varsigma }}_2|\le \sqrt{\frac{0.73\bar{\varepsilon }_2\delta _y}{\chi ^3}(\frac{1}{\bar{k}_{22}}+\frac{1}{\bar{k}_{21}})} \}\), respectively.

For \(\bar{\varsigma }_3\), choose Lyapunov function \(V_1=\frac{1}{2}\bar{\varsigma }_3^2\), its derivative is

$$\begin{aligned} \begin{aligned} \dot{V_1}=-\bar{k}_{31}\bar{\varsigma }_3\mathrm{tanh}(\bar{\varsigma }_3)-\bar{\varsigma }_3\mathrm{tanh}\left( \frac{\bar{\varsigma }_3}{\bar{\varepsilon }_3}\right) \delta _z+ \bar{\varsigma }_3\varDelta _{fz} \end{aligned} \end{aligned}$$
(25)

From Lemma 2, \(\bar{\varsigma }_3\varDelta _{fz} \le |\bar{\varsigma }_3|\delta _z \le (\bar{\varsigma }_3\mathrm{tanh}(\frac{\bar{\varsigma }_3}{\bar{\varepsilon }_3}) + k_q\bar{\varepsilon }_3)\delta _z\), thus \(\dot{V}_1 \le - \bar{k}_{31}\bar{\varsigma }_3\mathrm{tanh}(\bar{\varsigma }_3) + k_q\bar{\varepsilon }_3\delta _z\). Based on Lemma 1 we have \(\dot{V_1} \le -\bar{k}_{31}\chi \bar{\varsigma }_3^2 + k_q\bar{\varepsilon }_3\delta _z = -2\bar{k}_{31}\chi V_1 + k_q\bar{\varepsilon }_3\delta _z\). Integrating it yields

$$\begin{aligned} \frac{1}{2}\bar{\varsigma }_3^2=V_1(t) \le [V_1(0)-\frac{k_q\bar{\varepsilon }_3\delta _z}{2\bar{k}_{31}\chi }]e^{-2\bar{k}_{31}\chi t}+\frac{k_q\bar{\varepsilon }_3\delta _z}{2\bar{k}_{31}\chi } \end{aligned}$$
(26)

Thus \(\bar{\varsigma }_3\) exponentially converges to the set \(\mathbb {Z}_3=\{\bar{\varsigma }_3| |\bar{\varsigma }_3|\le \sqrt{\frac{0.2785\bar{\varepsilon }_3\delta _z}{\bar{k}_{31}\chi }} \}\).

Above sets can be made small by increasing \(\bar{k}_{21},\bar{k}_{22},\bar{k}_{31}\) and decreasing \(\bar{\varepsilon }_1,\bar{\varepsilon }_2,\bar{\varepsilon }_3\). Since \(\varvec{p}(0)\in \mathcal{\bar{P}}_r\) and \(\varvec{v}(0)=\varvec{0}\), we have \(\bar{\varsigma }_1(0)=\dot{\bar{\varsigma }}_1(0) =\bar{\varsigma }_2(0) =\dot{\bar{\varsigma }}_2(0) =0\). So under the control law helicopter keeps in the neighbourhood of \(\mathcal{\bar{P}}_r\).

(ii) From Remark 2 and proof of (i) it yields that \(\bar{G}\) keeps invertible. When \(\bar{u}_{cx}\ne 0\) or \(\bar{u}_{cy}\ne 0\), \(\bar{\varvec{u}}_c\not \in \mathcal{L}\), which means no singularity occurs in deriving the desired unit-quaternion. So we only need to consider the singularity when \(\bar{\varvec{u}}_c=[0,0,\bar{u}_{cz}]^T\). Left-multiplying (16) by \([a_1,b_1,c_1]\) yields \(\bar{u}_{cz}=m(g+\frac{\bar{\nu }_1}{c_1})\). From (17) \(|\frac{\bar{\nu }_1}{c_1}|\le \frac{2\bar{k}_{11}+\delta _x}{|c_1|}\), it follows \(\bar{u}_{cz}\ge m(g-\frac{2\bar{k}_{11}+\delta _x}{|c_1|})\). Since \(\bar{k}_{11}<\frac{|c_1|g-\delta _x}{2}\), we get \(\bar{u}_{cz}>0\) and \(\bar{\varvec{u}}_c\not \in \mathcal{L}\), which means no singularity occurs in deriving the desired unit-quaternion with (18).

\({\mathcal {P}}_\mathbf{r }\) following Define P to be helicopter position and \(\bar{\varepsilon }\) to be a small positive constant, when \(\Vert P - P_{d}\Vert \le \bar{\varepsilon }\), control \(\varvec{u}_c\) is given by (12) and \(\varvec{\nu }_c\) is designed as

$$\begin{aligned} \begin{aligned} \varvec{\nu }_c= \begin{bmatrix} -k_{11}(\mathrm{tanh}(\varsigma _{k1})+\mathrm{tanh}(\dot{\varsigma }_1))-\mathrm{tanh}(\frac{\vartheta _1}{\varepsilon _1})\delta _x\\ -k_{21}(\mathrm{tanh}(\varsigma _{k2})+\mathrm{tanh}(\dot{\varsigma }_2))-\mathrm{tanh}(\frac{\vartheta _2}{\varepsilon _2})\delta _y\\ -k_{31}\mathrm{tanh}(\varsigma _3)-\mathrm{tanh}(\frac{\varsigma _3}{\varepsilon _3})\delta _z \end{bmatrix} \end{aligned} \end{aligned}$$
(27)

where \(\varsigma _{k1} = k_{12}\varsigma _1 + \dot{\varsigma }_1\), \(\varsigma _{k2} = k_{22}\varsigma _2 + \dot{\varsigma }_2\), \(\vartheta _1 = \mathrm{tanh}(\varsigma _{k1}) + \mathrm{tanh}(\dot{\varsigma }_1) + \frac{k_{12}}{k_{11}}\dot{\varsigma }_1\), \(\vartheta _2 = \mathrm{tanh}(\varsigma _{k2}) + \mathrm{tanh}(\dot{\varsigma }_2) + \frac{k_{22}}{k_{21}}\dot{\varsigma }_2\). \(k_{11},k_{12},k_{21},k_{22},k_{31},\varepsilon _1,\varepsilon _2\) and \(\varepsilon _3\) are positive constants satisfying

$$\begin{aligned} \begin{aligned} k_{12}\le k_{11}<\frac{|c|g-\delta _x}{2},k_{22}\le k_{21},\varepsilon _1<\frac{0.382k_{12}}{k_q\delta _x},\varepsilon _2<\frac{0.382k_{22}}{k_q\delta _y} \end{aligned} \end{aligned}$$
(28)

From Remark 2, \(\varvec{v}\) is approximately tangent to \(\mathcal{P}_r\) at switching instant. So under the control law helicopter keeps in the neighbourhood of \(\mathcal{P}_r\). Based on Remark 1 it yields that G keeps invertible. The constraint for \(k_{11}\) in (28) guarantees that no singularity occurs in deriving desired unit-quaternion.

Attitude controller design Define attitude tracking error \(Q_e=[\mu _e,\varvec{q}_e^T]^T=Q_c^{-1}\otimes Q\) [15], its derivative is

$$\begin{aligned} \begin{aligned} \dot{\mu }_e= -\frac{1}{2}\varvec{q}_e^T\varvec{\omega }_e, \ \dot{\varvec{q}}_e= \frac{1}{2} (\mu _e I_3+S(\varvec{q}_e))\varvec{\omega }_e \end{aligned} \end{aligned}$$
(29)

where \(\varvec{\omega }_e=\varvec{\omega }-R^T(Q_e)\varvec{\omega _c}\) is the angular velocity error and \(\varvec{\omega }_c\) is the desired angular velocity. From (3) \(\varvec{\omega }_c\) and its derivative \(\varvec{\dot{\omega }}_c\) can be derived as

$$\begin{aligned} \begin{aligned} \varvec{\omega }_c=2\Theta ^T(Q_c)\dot{Q}_c \end{aligned} \end{aligned}$$
(30)
$$\begin{aligned} \begin{aligned} \varvec{\dot{\omega }}_c= 2\Theta ^T(Q_c)\ddot{Q_c}+2\dot{\Theta }^T(Q_c)\dot{Q}_c = 2\Theta ^T(Q_c)[\ddot{Q}_c-\dot{\Theta }_c\varvec{\omega }_c] \end{aligned} \end{aligned}$$
(31)

where \(\dot{\Theta }_c=\Theta (\dot{Q}_c)\). From Lemma 3, \(\dot{Q}_c\) and \(\ddot{Q}_c\) can be obtained by a command filter instead of calculating them accurately. Assign Lyapunov function

$$\begin{aligned} \begin{aligned} L= k_Q[(1-k_\mu \mu _e)^2+\varvec{q}_e^T\varvec{q}_e]=2k_Q(1-k_\mu \mu _e) \end{aligned} \end{aligned}$$
(32)

where \(k_Q>0\), \(k_\mu =1\) when \(\mu _e\ge 0\) and \(k_\mu =-1\) when \(\mu _e<0\). From (29), \(\dot{L}=k_Qk_\mu \varvec{q}_e^T\varvec{\omega }_e\). Define \(\bar{\varvec{\omega }}_e=[\bar{\omega }_{ex},\bar{\omega }_{ey},\bar{\omega }_{ez}]^T=\varvec{\omega }_e+k_\omega k_\mu \varvec{q}_e\), where \(k_\omega > 0\). Choose a Lyapunov function

$$\begin{aligned} L_1=L+\frac{1}{2}\bar{\varvec{\omega }}_e^TJ\bar{\varvec{\omega }}_e \end{aligned}$$
(33)
$$\begin{aligned} \begin{aligned} \dot{L}_1&= \bar{\varvec{\omega }}_e^T[-\varvec{\omega }\times J\varvec{\omega }+\varvec{\tau }_1+J(S(\varvec{\omega }_e)R^T(Q_e)\varvec{\omega }_c-R^T(Q_e)\dot{\varvec{\omega }}_c\\&+k_\omega k_\mu \dot{\varvec{q}}_e)+\varvec{\varDelta }_\tau ]-k_Q k_\omega \varvec{q}_e^T\varvec{q}_e+k_Qk_\mu \varvec{q}_e^T\bar{\varvec{\omega }}_e \end{aligned} \end{aligned}$$
(34)

Design the control torque

$$\begin{aligned} \begin{aligned} \varvec{\tau }_1&= - k_\tau \bar{\varvec{\omega }}_e + \varvec{\omega }\times J\varvec{\omega } - JS(\varvec{\omega }_e)R^T(Q_e)\varvec{\omega }_c + JR^T(Q_e)\dot{\varvec{\omega }}_c\\&- k_\omega k_\mu J\dot{\varvec{q}}_e - \mathrm{{Tanh}}(\frac{\bar{\varvec{\omega }}_e^T}{\varepsilon _4})\varvec{\gamma } - k_Qk_\mu \varvec{q}_e \end{aligned} \end{aligned}$$
(35)

where \(k_\tau >0\) and \(\varepsilon _4\) is a small positive constant. Substituting \(\varvec{\tau }_1\) into (34) yields

$$\begin{aligned} \begin{aligned} \dot{L}_1=-k_Qk_\omega \varvec{q}_e^T\varvec{q}_e-k_\tau \bar{\varvec{\omega }}_e^T\bar{\varvec{\omega }}_e-\bar{\varvec{\omega }}_e^T\mathrm{{Tanh}}(\frac{\bar{\varvec{\omega }}_e^T}{\varepsilon _4})\varvec{\gamma }+\bar{\varvec{\omega }}_e^T\varvec{\varDelta }_\tau \end{aligned} \end{aligned}$$
(36)

Theorem 2

Take \(k_\omega \le \frac{4k_\tau }{\bar{\lambda }(J)}\), the attitude controller (35) guarantees that the attitude tracking error \(\varvec{q}_e\) and angular velocity error \(\varvec{\omega }_e\) are bounded and ultimately converge to neighbourhoods of the origin.

Proof

From Lemma 2, \(\bar{\varvec{\omega }}_e^T\varvec{\varDelta }_\tau \le \sum _{i = x,y,z}|\bar{\omega }_{ei}|\gamma _i \le \sum _{i = x,y,z}[\bar{\omega }_{ei} \mathrm{tanh}(\frac{\bar{\omega }_{ei}}{\varepsilon _4}) + k_q\varepsilon _4]\gamma _i = \bar{\varvec{\omega }}_e^T\mathrm{Tanh}(\frac{\bar{\varvec{\omega }}_e}{\varepsilon _4})\varvec{\gamma } + d_\tau \), where \(d_\tau = \sum _{i = x,y,z}k_q\varepsilon _4\gamma _i\). Substituting it into (36) yields

$$\begin{aligned} \begin{aligned} \dot{L}_1 \le -k_Qk_\omega \varvec{q}_e^T\varvec{q}_e - k_\tau \bar{\varvec{\omega }}_e^T\bar{\varvec{\omega }}_e+d_\tau \le -k_Qk_\omega (1-k_\mu \mu _e)-\frac{k_\tau }{\bar{\lambda }(J)}\bar{\varvec{\omega }}_e^TJ\bar{\varvec{\omega }}_e+d_\tau \end{aligned} \end{aligned}$$
(37)

From (33), \(\dot{L}_1 \le - \mathrm{min}\{\frac{k_\omega }{2},\frac{2k_\tau }{\bar{\lambda }(J)}\}L_1 + d_\tau = - \frac{k_\omega }{2}L_1 + d_\tau \). Integrating it gives

$$\begin{aligned} \begin{aligned} L_1 \le (L_1(0)-\frac{2d_\tau }{k_\omega })e^{-\frac{k_\omega }{2}t}+\frac{2d_\tau }{k_\omega } \le L_1(0)e^{-\frac{k_\omega }{2}t}+\frac{2d_\tau }{k_\omega } \end{aligned} \end{aligned}$$
(38)

Also from (33) we know that \(K_Q \varvec{q}_e^T \varvec{q}_e \le L_1\) and \(\frac{\underline{\lambda }(J)}{2}\bar{\varvec{\omega }}_e^T\bar{\varvec{\omega }}_e \le L_1\). Thus \(\varvec{q}_e\) and \(\bar{\varvec{\omega }}_e\) are bounded and ultimately converge to the compact sets \(\mathbb {C}_q = \{ \varvec{q}_e| \Vert \varvec{q}_e\Vert \le \sqrt{\frac{2d_\tau }{k_Qk_\omega }} \}\) and \(\mathbb {\bar{C}}_\omega = \{ \bar{\varvec{\omega }}_e| \Vert \bar{\varvec{\omega }}_e\Vert \le \sqrt{\frac{4d_\tau }{\underline{\lambda }(J)k_\omega }} \}\). Since \(\varvec{\omega }_e = \bar{\varvec{\omega }}_e - k_\omega k_\mu \varvec{q}_e\), we have \(\Vert \varvec{\omega }_e\Vert \le \Vert \bar{\varvec{\omega }}_e\Vert + k_\omega \Vert \varvec{q}_e\Vert \), so \(\varvec{\omega }_e\) converges to the set \(\mathbb {C}_\omega = \{ \varvec{\omega }_e| \Vert \varvec{\omega }_e\Vert \le \sqrt{\frac{2k_\omega d_\tau }{k_Q}} + \sqrt{\frac{4d_\tau }{\underline{\lambda }(J)k_\omega }} \}\).

Remark 3

By taking \(k_Q\) \(>>\) \(k_\omega \), increasing \(k_Q,k_w\) and decreasing \(\varepsilon _4\), the sets \(\mathbb {C}_q\) and \(\mathbb {C}_\omega \) can be made small.

5 Simulation

A simulation is performed to verify the proposed controller. The helicopter parameters are as follows [12]: \(m=7.4\,\mathrm {kg}\), \(I_x=0.16\,\mathrm{kgm^2}\), \(I_y = 0.30\,\mathrm{kgm^2}, I_z = 0.32\,\mathrm{kgm^2}, I_{xz} = 0.05\,\mathrm{kgm^2}, l_m = 0.01\,\mathrm{m} ,h_m = 0.14\,\mathrm{m}, l_t = 0.95\,\mathrm{m}, h_t = 0.05\,\mathrm{m}, M_a = L_b = 110, A_m = 0.00452, B_m = 0.63, A_t = 0.005066, B_t = 0.008488\) and \(g=9.81\,\mathrm {m/s^2}\). The desired reference path \(\mathcal{{P}}_r\) is a circular curve determined by

$$\begin{aligned} f_1(x,y,z)=z-8=0, \ \ f_2(x,y,z)=\frac{1}{5}(x^2+y^2)-5=0 \end{aligned}$$

Define \(P_0=[11,10,0]^{T}\) and choose \(P_{d}=[5,0,8]^{T}\), we can obtain the sphere center \(\bar{O}=[11,0,0]^{T}\) and the temporary path \(\mathcal{\bar{P}}_r\) is planned by

$$\begin{aligned} \begin{aligned} \bar{f_1}(x,y,z) = 4x+3z-44 = 0, \ \ \bar{f_2}(x,y,z) = \frac{1}{20}((x-11)^2+y^2+z^2)-5 = 0 \end{aligned} \end{aligned}$$

where \(\varvec{\delta }=[1,1,1]^{T}, \varvec{\gamma }=[0.5,0.5,0.5]^{T}\). The controller parameters are chosen as follows: \(\bar{k}_{11}=\bar{k}_{12}=1,\bar{k}_{21}=\bar{k}_{22}=3.5,\bar{k}_{31}=1, \bar{\varepsilon }_1=0.3,\bar{\varepsilon }_2=0.5,\bar{\varepsilon }_3=0.1; k_{11}=k_{12}=2,k_{21}=k_{22}=3.5,k_{31}=3,\varepsilon _1=0.3,\varepsilon _2=0.8,\varepsilon _3=0.08; k_Q=500, k_\omega =k_\tau =16, \varepsilon _4=0.05;\xi =0.707,\omega _n=10,\bar{\varepsilon }=0.01\), and they satisfy the conditions in theorems. Choose \(\bar{v}_r=v_r=2.5\,\mathrm {m/s}\).

Fig. 3
figure 3

3-D path following

Fig. 4
figure 4

Values of \(\bar{\varsigma }_1,\bar{\varsigma }_2,\bar{\varsigma }_3,\varsigma _1,\varsigma _2,\varsigma _3\)

Fig. 5
figure 5

Attitude tracking errors

Fig. 6
figure 6

Angular velocity tracking errors

Fig. 7
figure 7

Actual speed \(\Vert \varvec{v}\Vert \)

Fig. 8
figure 8

Control \(\bar{u}_{cz}\) and \(u_{cz}\)

Fig. 9
figure 9

Comparison of \(d_s\) and \(d_{s1}\)

Fig. 10
figure 10

Comparison of \(T_m\) and \(T_{m1}\)

Figure 3 shows the 3-D path following result. Figures 4, 5 and 6 illustrate the path following, attitude and angular velocity errors respectively, which are bounded and converge to neighborhoods of origin. Figure 7 shows that the speed converges to \(v_r\). Figure 8 illustrate \(u_{cz}\)(or \(\bar{u}_{cz}\) before switch) is greater than zero, implying that no singularity occurs in deriving command attitude.

Figures 9 and 10 show comparisons of spatial distance \(d_s\), which defines the shortest distance from actual position to the path, and thrust \(T_m\) using the proposed control law and \(d_{s1}\), \(T_{m1}\) using the control law [1] without temporary-path generation. Obviously, \(T_{m1}\) is large in convergence process, and it would result in control saturation if further increasing parameters to reduce the error.

6 Conclusion

This paper presents a singularity-free path following controller for miniature unmanned helicopters. The reference path is defined by implicit expression. Numerical simulation demonstrates the effectiveness of proposed controller. In future research we will extend the controller to more general manifolds and consider the disturbances and parametric uncertainties.