In recent years, quadcopters have gained significant attention due to their versatility in applications such as agricultural spraying, cable inspection, and logistics. However, the control of quadcopters faces challenges such as underactuation, strong coupling, and sensitivity to external disturbances and model uncertainties. This paper addresses these issues by proposing a robust control strategy that integrates an improved high-order disturbance observer (HODO) with non-singular fast terminal sliding mode control (NFTSMC). The quadcopter system is decoupled into attitude and position subsystems, each handled with tailored controllers to ensure rapid convergence and disturbance rejection. The effectiveness of the proposed method is validated through simulations and real-world flight experiments, demonstrating superior performance compared to conventional approaches.
The quadcopter dynamics are inherently nonlinear and underactuated, making them prone to instabilities under external influences like wind gusts or parameter variations. Traditional control methods, such as PID, often struggle to compensate for time-varying disturbances, leading to performance degradation. Advanced techniques like sliding mode control (SMC) offer robustness but may suffer from chattering or singularity issues. To overcome these limitations, this work introduces a composite control framework that leverages HODO for accurate disturbance estimation and NFTSMC for finite-time convergence. The key contributions include the development of a backstepping-based NFTSMC for the attitude loop and a super-twisting NFTSMC for the position loop, both enhanced with HODO to handle composite uncertainties.

The mathematical model of the quadcopter is derived using Newton-Euler formulations, considering both inertial and body-fixed frames. Let $E_a(O_a, e_{a1}, e_{a2}, e_{a3})$ denote the earth-fixed frame and $E_b(O_b, e_{b1}, e_{b2}, e_{b3})$ the body-fixed frame. The position vector is $\boldsymbol{\delta} = [x, y, z]^T$, and the Euler angles are $\boldsymbol{\eta} = [\phi, \theta, \psi]^T$, representing roll, pitch, and yaw, respectively. The rotation matrix $\mathbf{R}(\boldsymbol{\eta})$ and transformation matrix $\mathbf{Q}(\boldsymbol{\eta})$ relate the body-fixed angular velocity $\boldsymbol{\Omega} = [\Omega_1, \Omega_2, \Omega_3]^T$ to the derivative of Euler angles as follows:
$$\dot{\boldsymbol{\delta}} = \mathbf{R}(\boldsymbol{\eta}) \mathbf{V}, \quad \dot{\boldsymbol{\eta}} = \mathbf{Q}(\boldsymbol{\eta}) \boldsymbol{\Omega}$$
where $\mathbf{V} = [V_1, V_2, V_3]^T$ is the linear velocity in the body frame. The matrices are defined as:
$$\mathbf{R}(\boldsymbol{\eta}) = \begin{bmatrix}
c\psi c\theta & c\psi s\theta s\phi – s\psi c\phi & c\psi s\theta c\phi + s\psi s\phi \\
s\psi c\theta & s\psi s\theta s\phi + c\psi c\phi & s\psi s\theta c\phi – c\psi s\phi \\
-s\theta & c\theta s\phi & c\theta c\phi
\end{bmatrix}$$
$$\mathbf{Q}(\boldsymbol{\eta}) = \begin{bmatrix}
1 & 0 & -s\theta \\
0 & c\phi & c\theta s\phi \\
0 & -s\phi & c\theta c\phi
\end{bmatrix}$$
Here, $c(\cdot)$ and $s(\cdot)$ denote $\cos(\cdot)$ and $\sin(\cdot)$, respectively. The dynamics of the quadcopter are governed by Newton’s second law, leading to the following equations of motion:
$$\dot{\mathbf{V}} = \frac{1}{m} \sum \mathbf{F}_{\text{ext}} – \boldsymbol{\Omega} \times \mathbf{V}, \quad \dot{\boldsymbol{\Omega}} = \mathbf{J}^{-1} \left( \sum \mathbf{T}_{\text{ext}} – \boldsymbol{\Omega} \times \mathbf{J} \boldsymbol{\Omega} \right)$$
where $m$ is the mass, $\mathbf{J} = \text{diag}(I_x, I_y, I_z)$ is the inertia matrix, and $\sum \mathbf{F}_{\text{ext}}$ and $\sum \mathbf{T}_{\text{ext}}$ are the external forces and torques. These include contributions from thrust, gravity, and gyroscopic effects. The control inputs are related to the rotor speeds $\omega_i$ as:
$$u_1 = b(\omega_1^2 + \omega_2^2 + \omega_3^2 + \omega_4^2), \quad u_2 = b(\omega_3^2 – \omega_1^2), \quad u_3 = b(\omega_4^2 – \omega_2^2), \quad u_4 = d(\omega_1^2 – \omega_2^2 + \omega_3^2 – \omega_4^2)$$
The full dynamics model, accounting for disturbances, is expressed in state-space form with state variables $\mathbf{x} = [x_1, x_2, \dots, x_{12}]^T = [z, \dot{z}, y, \dot{y}, x, \dot{x}, \phi, \dot{\phi}, \theta, \dot{\theta}, \psi, \dot{\psi}]^T$. The system is divided into attitude and position subsystems for controller design.
For the attitude subsystem, the dynamics for roll, pitch, and yaw are given by:
$$\dot{x}_2 = a_1 x_4 x_6 + a_2 x_4 \omega + b_1 u_2 + d_\phi, \quad \dot{x}_4 = a_3 x_2 x_6 + a_4 x_2 \omega + b_2 u_3 + d_\theta, \quad \dot{x}_6 = a_5 x_2 x_4 + b_3 u_4 + d_\psi$$
where $d_\phi$, $d_\theta$, and $d_\psi$ represent lumped disturbances. Similarly, the position subsystem dynamics are:
$$\ddot{z} = \frac{1}{m} (c\phi c\theta u_1) – g + d_z, \quad \ddot{x} = \frac{1}{m} (c\phi s\theta c\psi + s\phi s\psi) u_1 + d_x, \quad \ddot{y} = \frac{1}{m} (c\phi s\theta s\psi – s\phi c\psi) u_1 + d_y$$
To handle these disturbances, an improved HODO is designed for each subsystem. For the roll channel, the observer is constructed as:
$$\dot{\tau}_{01} = b_1 u_2 + a_1 x_4 x_6 + a_2 x_4 \omega + \Delta_{01}, \quad \dot{\tau}_{02} = \tau_{03} + \Delta_{02}, \quad \dot{\tau}_{03} = \Delta_{03}$$
with correction terms $\Delta_{01} = L_{01} |e_{01}|^{2/3} \text{sign}(e_{01}) + L_{02} e_{01}$, $\Delta_{02} = L_{03} |e_{01}|^{1/2} \text{sign}(e_{01}) + L_{04} e_{01}$, and $\Delta_{03} = L_{05} \text{sign}(e_{01}) + L_{06} e_{01}$, where $e_{01} = x_2 – \tau_{01}$ is the estimation error. This structure ensures finite-time convergence of disturbance estimates.
The attitude controller combines backstepping with NFTSMC. For the roll angle, define tracking error $e_\phi = x_7 – \phi_d$ and its derivative $\dot{e}_\phi = x_8 – \dot{\phi}_d$. A virtual control input $u_\Delta = \dot{\phi}_d – \gamma_1 e_\phi$ is designed to stabilize the error dynamics. The sliding surface is chosen as:
$$s_1 = e_\phi + c_1 e_\phi^{p/q} + c_2 \dot{e}_phi^{v/k}$$
where $c_1, c_2 > 0$, and $p, q, v, k$ are positive odd integers satisfying $p/q > 1$ and $v/k < 1$. The control law for $u_2$ is derived as:
$$u_2 = \frac{1}{b_1} \left( \ddot{\phi}_d – a_1 x_4 x_6 – a_2 x_4 \omega – \tau_{02} – \zeta_1 s_1 – \frac{c_1 p}{q} e_\phi^{p/q-1} \dot{e}_\phi – \frac{c_2 v}{k} \dot{e}_\phi^{v/k-1} \ddot{e}_\phi \right)$$
Similar controllers are designed for pitch and yaw channels. The position subsystem employs a super-twisting NFTSMC to suppress chattering. For altitude control, define $e_z = z – z_d$ and the sliding surface:
$$s_4 = e_z + c_7 e_z^{p/q} + c_8 \dot{e}_z^{v/k}$$
The control input $u_1$ is computed as:
$$u_1 = \frac{m}{c\phi c\theta} \left( g + \ddot{z}_d – \frac{c_7 p}{q} e_z^{p/q-1} \dot{e}_z – \frac{c_8 v}{k} \dot{e}_z^{v/k-1} \left( \alpha_1 |s_4|^{1/2} \text{sign}(s_4) + \alpha_2 \int \text{sign}(s_4) \, d\tau \right) + \tau_{12} \right)$$
where $\tau_{12}$ is the disturbance estimate from HODO. The virtual control inputs for $x$ and $y$ directions are derived to generate desired roll and pitch angles:
$$\phi_d = \arcsin\left( \frac{m}{u_1} (u_x s\psi – u_y c\psi) \right), \quad \theta_d = \arctan\left( \frac{u_x c\psi + u_y s\psi}{u_z + g} \right)$$
with $u_x = \ddot{x}_d – d_x$, $u_y = \ddot{y}_d – d_y$, and $u_z = \ddot{z}_d – d_z$.
Stability analysis is conducted using Lyapunov theory. For the position subsystem, consider the Lyapunov function $V_4 = \mathbf{\kappa}^T \mathbf{P} \mathbf{\kappa}$, where $\mathbf{\kappa} = [|s_4|^{1/2} \text{sign}(s_4), \sigma]^T$ and $\sigma = -\alpha_2 \int \text{sign}(s_4) \, d\tau$. The derivative $\dot{V}_4$ is shown to be negative definite under gain conditions $\alpha_1 > 0$ and $\alpha_2 > \frac{5}{4} \alpha_1^2$, ensuring finite-time convergence to the sliding surface. Once on the surface, the error dynamics become $e_z + c_7 e_z^{p/q} + c_8 \dot{e}_z^{v/k} = 0$, which guarantees global asymptotic stability.
Simulation results validate the proposed method. The quadcopter parameters are listed in Table 1.
| Parameter | Value |
|---|---|
| Mass $m$ (kg) | 1.0 |
| Arm length $l$ (m) | 0.18 |
| Moment of inertia $I_x$ (kg·m²) | 7.20e-3 |
| Moment of inertia $I_y$ (kg·m²) | 7.20e-3 |
| Moment of inertia $I_z$ (kg·m²) | 1.02e-2 |
| Rotor inertia $J_r$ (kg·m²) | 8.50e-4 |
| Gravity $g$ (m/s²) | 9.8 |
The controller and observer parameters are summarized in Table 2.
| Parameter | Value |
|---|---|
| $L_{01}, L_{02}$ | [4, 1.2] |
| $L_{03}, L_{04}$ | [4, 0.8] |
| $L_{05}, L_{06}$ | [2.5, 0.5] |
| $c_1, c_3, c_5, c_7$ | [1, 1, 1, 1] |
| $c_2, c_4, c_6, c_8$ | [0.8, 0.8, 0.8, 0.5] |
| $p, q, v, k$ | [5, 3, 7, 5] |
| $\zeta_1, \zeta_3, \zeta_5$ | [1, 1, 1] |
| $\alpha_1, \alpha_2$ | [4.8, 0.6] |
The quadcopter is tasked to track a trajectory: $x_d = 2\cos(0.314t)$, $y_d = 2\sin(0.314t)$, $z_d = 0.2t + 4$, and $\psi_d = 0.13\cos(0.314t)$. Time-varying disturbances are applied to all channels. Comparative studies with PID, fixed-time non-singular terminal SMC (FxNTSMC), and low-power observer-based NFTSMC (LPO-NFTSMC) show that the proposed method achieves faster convergence and lower overshoot. The position tracking errors converge within 2.5 seconds, and the attitude angles stabilize in under 1 second. The HODO accurately estimates disturbances, as shown in Figure 6, and control inputs remain smooth, mitigating chattering.
Flight experiments under wind disturbances further demonstrate robustness. Using a fan to simulate wind gusts up to 6.5 m/s, the quadcopter with the proposed controller maintains position errors below 0.1 m, whereas PID control exhibits larger deviations. In trajectory tracking, the rise time is reduced to 1.65 seconds compared to 3.35 seconds for PID. These results highlight the enhanced disturbance rejection and tracking precision of the proposed approach.
In conclusion, this paper presents a robust control framework for quadcopters that effectively handles external disturbances and model uncertainties. The integration of HODO with NFTSMC ensures finite-time convergence and chattering suppression, making it suitable for real-world applications. Future work will explore adaptive gains and multi-agent coordination for swarm operations.
