In recent years, quadcopter unmanned aerial vehicles (UAVs) have gained significant attention due to their versatility in applications such as surveillance, delivery, and environmental monitoring. However, the control of quadcopters is challenging due to their underactuated nature, strong nonlinearities, and susceptibility to external disturbances and input saturation. This paper addresses the problem of trajectory tracking for quadcopters under input saturation, external disturbances, and system uncertainties. A finite-time robust control scheme is proposed, integrating neural networks for uncertainty approximation, nonlinear disturbance observers for external disturbance estimation, and auxiliary systems to handle input saturation. The controller design is based on the backstepping technique, and finite-time stability is proven using Lyapunov theory. Simulation results demonstrate the effectiveness of the proposed method in achieving precise trajectory tracking with enhanced robustness and saturation tolerance.
The quadcopter is a six-degree-of-freedom system with four control inputs, making it inherently underactuated. The dynamics of a quadcopter can be represented using Newton-Euler equations, which account for translational and rotational motion. The model includes terms for gravitational forces, aerodynamic effects, and control inputs generated by the rotors. However, in practical scenarios, quadcopters are subject to external disturbances such as wind gusts, model uncertainties due to parameter variations, and input saturation because of physical limitations of actuators. These factors can degrade performance and even lead to instability if not properly addressed.

The dynamic model of a quadcopter is derived considering an inertial frame and a body-fixed frame. The position and orientation of the quadcopter are described by the vectors $\xi = [x, y, z]^T$ and $\eta = [\phi, \theta, \psi]^T$, respectively, where $\phi$, $\theta$, and $\psi$ are the roll, pitch, and yaw angles. The linear and angular velocities are denoted by $\beta = [u, v, w]^T$ and $\Omega = [p, q, r]^T$. The equations of motion are given by:
$$
\begin{aligned}
\dot{\xi} &= \beta \\
\dot{\beta} &= \frac{R_b^e \epsilon u_t}{m} – g \epsilon + \Delta(\xi) + D_t \\
\dot{\eta} &= \Omega \\
\dot{\Omega} &= J^{-1} L \Sigma – J^{-1} \Omega \times J \Omega + \Delta(\eta) + D_\tau
\end{aligned}
$$
where $R_b^e$ is the rotation matrix from the body frame to the inertial frame, $\epsilon = [0, 0, 1]^T$, $g$ is the gravitational acceleration, $u_t$ is the total thrust, $m$ is the mass, $J$ is the inertia matrix, $L = \text{diag}(l, l, 1)$ with $l$ being the arm length, $\Sigma = [u_2, u_3, u_4]^T$ is the moment input vector, $\Delta(\xi)$ and $\Delta(\eta)$ represent unmodeled dynamics and uncertainties, and $D_t$ and $D_\tau$ are external disturbances.
The control objective is to design a finite-time controller that ensures the quadcopter tracks a desired trajectory $\xi_d(t)$ and $\eta_d(t)$ despite input saturation, disturbances, and uncertainties. The following assumptions are made:
Assumption 1: The external disturbances $D_t$ and $D_\tau$ are bounded, i.e., $\|D_t\| \leq \sigma_t$ and $\|D_\tau\| \leq \sigma_\tau$ for positive constants $\sigma_t$ and $\sigma_\tau$.
Assumption 2: The reference trajectory $\xi_d$, $\dot{\xi}_d$, $\ddot{\xi}_d$, $\eta_d$, $\dot{\eta}_d$, and $\ddot{\eta}_d$ are continuous and bounded.
Assumption 3: The uncertainties $\Delta(\xi)$ and $\Delta(\eta)$ are unknown smooth bounded functions with bounded first and second derivatives.
Assumption 4: The roll and pitch angles are within $(-90^\circ, 90^\circ)$ during flight.
To handle input saturation, auxiliary systems are introduced. Let $sat(u)$ denote the saturated control input, defined as:
$$
sat(u) = \begin{cases}
u_{\text{max}} \text{sign}(u) & \text{if } |u| \geq u_{\text{max}} \\
u & \text{if } |u| < u_{\text{max}}
\end{cases}
$$
where $u_{\text{max}}$ is the maximum allowable input. The saturation error is $\Delta u = sat(u) – u$. For the position loop, the auxiliary system is designed as:
$$
\begin{aligned}
\dot{\lambda}_1 &= -c_1 \lambda_1 + \lambda_2 \\
\dot{\lambda}_2 &= -c_2 \lambda_2 + R \Delta u_1
\end{aligned}
$$
where $c_1$ and $c_2$ are positive definite diagonal matrices, and $\lambda_1$ and $\lambda_2$ are auxiliary states. Similarly, for the attitude loop:
$$
\begin{aligned}
\dot{\lambda}_3 &= -p_1 \lambda_3 + \lambda_4 \\
\dot{\lambda}_4 &= -p_2 \lambda_4 + J^{-1} L \Delta u_2
\end{aligned}
$$
with $p_1$ and $p_2$ being positive definite diagonal matrices.
The tracking errors for the position and attitude loops are defined as:
$$
\begin{aligned}
e_1 &= \xi – \xi_d – \lambda_1 \\
e_2 &= \beta – \alpha_1 – \lambda_2 \\
e_3 &= \eta – \eta_d – \lambda_3 \\
e_4 &= \Omega – \alpha_2 – \lambda_4
\end{aligned}
$$
where $\alpha_1$ and $\alpha_2$ are virtual control laws. The virtual control for the position loop is designed as:
$$
\alpha_1 = -c_1 \lambda_1 + \dot{\xi}_d – k_1 e_1 – f_{a1} e_1^{2V_a – 1}
$$
where $k_1$ and $f_{a1}$ are positive definite diagonal matrices, and $V_a$ is a constant satisfying $0.5 < V_a < 1$. The actual control input for the position loop is:
$$
U_a = -e_1 – k_2 e_2 – L_1^{-1} \hat{W}_1^T h_1 – \hat{D}_t – c_2 \lambda_2 + \dot{\alpha}_1 + g \epsilon – f_{b1} e_2^{2V_a – 1}
$$
where $k_2$ and $f_{b1}$ are positive definite matrices, $\hat{W}_1$ is the estimated neural network weight for uncertainty approximation, $\hat{D}_t$ is the estimated disturbance, and $L_1$ is a positive definite matrix for the disturbance observer.
The neural network is used to approximate the uncertainties $\Delta(\xi)$ and $\Delta(\eta)$. The radial basis function neural network (RBFNN) is employed, with the output given by $\hat{H}(Z) = \hat{W}^T S(Z)$, where $S(Z)$ is the basis function vector. The weight update law for the position loop is:
$$
\dot{\hat{W}}_1 = \Lambda (h_1 e_2^T L_1^{-1} – \rho_1 \hat{W}_1)
$$
where $\Lambda$ is a positive definite matrix and $\rho_1 > 0$ is a constant.
The nonlinear disturbance observer for the position loop is designed as:
$$
\begin{aligned}
\hat{D}_t &= L_1 (\beta – H_1) \\
\dot{H}_1 &= R u_1 – g \epsilon + L_1^{-1} \hat{W}_1^T h_1 + \hat{D}_t
\end{aligned}
$$
Similarly, for the attitude loop, the virtual control law is:
$$
\alpha_2 = -p_1 \lambda_3 + \dot{\eta}_d – m_1 e_3 – f_{a2} e_3^{2V_a – 1}
$$
and the actual control input is:
$$
U_b = J L^{-1} (J^{-1} \Omega \times J \Omega – L_2^{-1} \hat{W}_2^T h_2 – \hat{D}_\tau – p_2 \lambda_4 + \dot{\alpha}_2 – e_3 – m_2 e_4 – f_{b2} e_4^{2V_a – 1})
$$
with the weight update law:
$$
\dot{\hat{W}}_2 = \Upsilon (h_2 e_4^T L_2^{-1} – \rho_2 \hat{W}_2)
$$
and the disturbance observer:
$$
\begin{aligned}
\hat{D}_\tau &= L_2 (\Omega – H_2) \\
\dot{H}_2 &= J^{-1} L \Sigma – J^{-1} \Omega \times J \Omega + L_2^{-1} \hat{W}_2^T h_2 + \hat{D}_\tau
\end{aligned}
$$
The stability of the closed-loop system is analyzed using Lyapunov theory. Consider the Lyapunov function candidate for the position loop:
$$
V_1 = \frac{1}{2} e_1^T e_1 + \frac{1}{2} e_2^T e_2 + \frac{1}{2} \lambda_1^T \lambda_1 + \frac{1}{2} \lambda_2^T \lambda_2 + \frac{1}{2} \tilde{D}_t^T \tilde{D}_t + \frac{1}{2} \text{tr}(\tilde{W}_1^T \Lambda^{-1} \tilde{W}_1)
$$
where $\tilde{D}_t = \hat{D}_t – D_t$ and $\tilde{W}_1 = \hat{W}_1 – W_1^*$. The time derivative of $V_1$ is computed and shown to satisfy:
$$
\dot{V}_1 \leq -\kappa_1 V_1 + \kappa_2 – f_{a1m} \sum_{i=1}^3 e_{1i}^{2V_a} – f_{b1m} \sum_{i=1}^3 e_{2i}^{2V_a}
$$
where $\kappa_1$ and $\kappa_2$ are positive constants, and $f_{a1m}$, $f_{b1m}$ are minimum eigenvalues of $f_{a1}$ and $f_{b1}$. Similarly, for the attitude loop, the Lyapunov function $V_2$ is defined, and its derivative is bounded. The overall Lyapunov function $V = V_1 + V_2$ satisfies:
$$
\dot{V} \leq -\kappa_3 V^{V_a} + \kappa_4
$$
which implies finite-time stability according to Lemma 2. The settling time $T_{st}$ is given by:
$$
T_{st} \leq \frac{1}{(1 – V_a) d_a \kappa_3} \left[ V^{1 – V_a}(0) – \left( \frac{\kappa_4}{(1 – d_a) \kappa_3} \right)^{\frac{1 – V_a}{V_a}} \right]
$$
where $0 < d_a < 1$ is a constant.
Simulation studies are conducted to validate the proposed control scheme. The quadcopter parameters are set as: mass $m = 0.8$ kg, inertia matrix $J = \text{diag}(0.01567, 0.01567, 0.01567)$ kg·m², arm length $l = 0.2$ m. The reference trajectory is $\xi_d = [\sin t, \cos t, -0.3t]^T$ and $\psi_d = 60^\circ$. The initial conditions are $\xi_0 = [2, 1, 0]^T$ and $\eta_0 = [0, 0, 0]^T$. The controller parameters are chosen as:
| Parameter | Value |
|---|---|
| $c_1$, $c_2$ | diag(5, 5, 5) |
| $k_1$ | diag(2, 3, 1.3) |
| $k_2$ | diag(4, 3, 4) |
| $p_1$, $p_2$ | diag(5, 5, 5) |
| $m_1$ | diag(20, 20, 20) |
| $m_2$ | diag(30, 30, 30) |
| $\Lambda$, $\Upsilon$ | $I_{3 \times 3}$ |
| $L_1$ | diag(5, 5, 5) |
| $L_2$ | diag(30, 30, 30) |
| $\rho_1$, $\rho_2$ | 0.5 |
| $f_{a1}$, $f_{a2}$, $f_{b1}$, $f_{b2}$ | $I_{3 \times 3}$ |
| $V_a$ | 0.9 |
The external disturbances are set as $D_t = [\sin t, \sin t, \sin t]^T$ and $D_\tau = [4 \sin t, 4 \sin t, 4 \sin t]^T$. The uncertainties are modeled as $\Delta(\xi) = [k_{dx} x/m, k_{dy} y/m, k_{dz} z/m]^T$ and $\Delta(\eta) = [k_\phi \phi/J_x, k_\theta \theta/J_y, k_\psi \psi/J_z]^T$ with $k_{dx} = k_{dy} = k_{dz} = 0.01$ and $k_\phi = k_\theta = k_\psi = 0.012$.
The performance of the proposed controller is compared with PID and sliding mode control (SMC) methods. The PID controller gains are tuned empirically, and the SMC uses a switching gain to handle disturbances. The tracking errors for position and attitude are shown in the following figures. The proposed finite-time controller achieves faster convergence and smaller steady-state errors compared to PID and SMC. The control inputs remain within saturation limits, and the disturbance observers accurately estimate the external disturbances.
The control inputs $u_1$, $u_2$, $u_3$, and $u_4$ are plotted against time. The total thrust $u_1$ saturates at 9 N, and the moments $u_2$, $u_3$, $u_4$ saturate at 8 N·m. The disturbance estimation errors converge to zero rapidly, confirming the effectiveness of the nonlinear disturbance observers.
In conclusion, a finite-time robust trajectory tracking controller for quadcopter UAVs with input saturation has been developed. The integration of neural networks, disturbance observers, and auxiliary systems ensures robust performance under uncertainties and disturbances. The finite-time stability guarantees fast convergence, and the control inputs respect saturation constraints. Future work will extend this approach to address output constraints and state limitations in more complex environments.
The proposed control scheme demonstrates superior performance in simulations, making it suitable for real-world quadcopter applications. The use of neural networks for uncertainty approximation and disturbance observers for external disturbance rejection enhances the robustness of the quadcopter control system. The finite-time property ensures that the tracking errors converge to a small neighborhood of zero in a finite time, which is crucial for time-sensitive missions. The quadcopter model used in this study is comprehensive, accounting for all major nonlinearities and coupling effects. The controller design is methodical, and the stability analysis is rigorous, providing a solid foundation for practical implementations.
Further improvements could include adaptive control techniques to handle time-varying parameters and machine learning methods to improve the neural network approximations online. The quadcopter platform offers a rich testbed for advanced control strategies, and this work contributes to the ongoing efforts to enhance the autonomy and reliability of UAV systems. The simulations confirm that the quadcopter can accurately track desired trajectories even in the presence of significant challenges, underscoring the viability of the proposed approach for various applications.
