Quadcopter unmanned aerial vehicles (UAVs) have gained widespread applications due to their simple structure, high flexibility, and ease of maintenance. These systems are typically employed for precise trajectory tracking to accomplish specific tasks. However, quadcopters are inherently nonlinear, multi-input multi-output (MIMO) coupled systems. During flight, they inevitably face various disturbances, including internal parameter perturbations, unmodeled dynamics, and external wind fields, which pose significant challenges in designing effective trajectory tracking control systems. Therefore, investigating anti-disturbance trajectory tracking control for quadcopter UAVs under multi-source disturbance environments is of great importance.
To address these issues, researchers have proposed numerous methods. For instance, some studies combine PID algorithms with command filtering compensation to achieve attitude stabilization and error linearization for quadcopter trajectory tracking. However, linear methods often struggle to ensure global stability and exhibit poor performance in handling external disturbances. Other approaches employ adaptive control for trajectory tracking, enabling attitude stabilization and displacement tracking, yet steady-state errors persist. Robust compensation and PD controllers designed for inner and outer loops have also been implemented for trajectory tracking and point hovering, but these methods still suffer from limited tracking accuracy. Passive anti-disturbance control methods rely on feedback regulation of tracking errors to suppress disturbances, but their response speed is relatively slow in the presence of multi-source disturbances. Recently, active disturbance rejection control (ADRC) schemes have been proposed to estimate and compensate for unmodeled system parts and external disturbances, ensuring steady-state tracking of desired trajectories. Techniques such as third-order sliding mode observers improve tracking speed and accuracy, but high-order sliding mode control algorithms are complex, exhibit chattering in control outputs, and have limited control capability in attitude loops. Distributed observers and methods based on adaptive sliding mode control with disturbance observers have been developed to estimate and compensate for internal and external disturbances, showing good performance for slow-varying disturbances but poorer results for periodic signals. Harmonic observers have been introduced to achieve high-precision estimation of periodic harmonic disturbances. Nonlinear control methods generally provide good steady-state performance for quadcopter systems, but constraining transient performance remains challenging. If transient tracking performance violates boundaries, the control system may become unstable before reaching steady state. Given that the maneuverability of quadcopters depends on control system response speed, constraining transient performance is crucial. Prescribed performance control (PPC) methods have been proposed to confine system tracking performance within predefined bounds, coordinating both steady-state and dynamic requirements. Some studies combine PPC with fixed-time control to achieve error and disturbance convergence within fixed time and steady-state errors within predefined bounds, independent of initial errors. Others integrate generalized proportional-integral observers with dynamic PPC sliding mode control to maintain tracking errors within preset ranges and avoid algorithm failure. For quadcopter formation control, PPC methods constrain errors from internal collisions, and disturbance observers estimate lumped disturbances, ensuring system safety and stability. However, most existing methods assume slow-varying or constant disturbances, and solutions for periodic disturbances are limited.
This paper addresses the trajectory tracking problem for quadcopter systems under periodic disturbances, considering tracking error convergence characteristics. A full-loop active disturbance rejection control method based on prescribed performance is proposed. By analyzing the dynamics model of quadcopter UAVs, the full-loop trajectory tracking problem is transformed into a command tracking problem. Harmonic disturbance observers (HDO) and higher-order sliding mode disturbance observers (HOSM) are designed for the position and attitude loops, respectively, to estimate lumped disturbances and unmeasured states. Based on disturbance estimation information and the prescribed performance method, composite dynamic inverse controllers with prescribed performance are designed for the position loop, and composite dynamic inverse controllers are designed for the attitude loop. Simulation results demonstrate that the proposed control scheme effectively suppresses the influences of periodic disturbances and ensures that trajectory tracking errors converge according to the prescribed performance.

Modeling and Problem Formulation
The quadcopter UAV is an unmanned aircraft that adjusts the rotational speeds of four rotors to achieve position and attitude motion. The rotor structure is illustrated in the figure above. Two coordinate systems are introduced: the body-fixed frame (O_b, X_b, Y_b, Z_b) and the inertial frame (O_g, X_g, Y_g, Z_g). The quadcopter’s position is described by coordinates (x, y, z), and its attitude is defined by the Euler angles (roll angle φ, pitch angle θ, and yaw angle ψ).
Define the rotor speeds as ω₁, ω₂, ω₃, ω₄. The total lift force along the O_bZ_b axis is Y_L, and the rotational moments about the body axes O_bX_b, O_bY_b, O_bZ_b are τ_φ, τ_θ, and τ_ψ, respectively. The relationships are given by:
$$
\begin{aligned}
Y_L &= C_L (\omega_1^2 + \omega_2^2 + \omega_3^2 + \omega_4^2) \\
\tau_\phi &= r C_L (\omega_2^2 – \omega_4^2) \\
\tau_\theta &= r C_L (-\omega_1^2 + \omega_3^2) \\
\tau_\psi &= b (\omega_1^2 – \omega_2^2 + \omega_3^2 – \omega_4^2)
\end{aligned}
$$
where C_L is the lift coefficient, r is the distance from each rotor’s center of mass to the quadcopter’s center of mass O_b, and b is the anti-torque coefficient.
Define abbreviations: s_φ = sin φ, c_φ = cos φ, t_θ = tan θ, c_θ = cos θ, s_θ = sin θ, c_ψ = cos ψ. Assuming the quadcopter is a rigid body, the six-degree-of-freedom dynamics model is:
Attitude kinematics:
$$
\begin{aligned}
\dot{\phi} &= \omega_x + \omega_y s_\phi t_\theta + \omega_z c_\phi t_\theta \\
\dot{\theta} &= \omega_y c_\phi – \omega_z s_\phi \\
\dot{\psi} &= \frac{1}{c_\theta} (\omega_y s_\phi + \omega_z c_\phi)
\end{aligned}
$$
Attitude dynamics:
$$
\begin{aligned}
\dot{\omega}_x &= \frac{1}{I_x} [(I_y – I_z) \omega_y \omega_z + \tau_\phi] + \tau_{d\phi} \\
\dot{\omega}_y &= \frac{1}{I_y} [(I_z – I_x) \omega_x \omega_z + \tau_\theta] + \tau_{d\theta} \\
\dot{\omega}_z &= \frac{1}{I_z} [(I_x – I_y) \omega_y \omega_x + \tau_\psi] + \tau_{d\psi}
\end{aligned}
$$
Position dynamics:
$$
\begin{aligned}
\ddot{x} &= -\frac{Y_L}{m} (c_\phi s_\theta c_\psi + s_\phi s_\psi) – \frac{\eta \dot{x}}{m} + \frac{F_d^x}{m} \\
\ddot{y} &= -\frac{Y_L}{m} (c_\phi s_\theta s_\psi – s_\phi c_\psi) – \frac{\eta \dot{y}}{m} + \frac{F_d^y}{m} \\
\ddot{z} &= -\frac{Y_L}{m} c_\phi c_\theta + g – \frac{\eta \dot{z}}{m} + \frac{F_d^z}{m}
\end{aligned}
$$
where ω_x, ω_y, ω_z are the angular velocities about the body axes; I_x, I_y, I_z are the moments of inertia; τ_dφ, τ_dθ, τ_dψ are external disturbance torques; m is the quadcopter mass; g is gravitational acceleration; η is the drag coefficient; and F_d^x, F_d^y, F_d^z are external disturbance forces.
Introduce virtual control inputs:
$$
\begin{aligned}
a_{xu} &= -\frac{Y_L}{m} (c_\phi s_\theta c_\psi + s_\phi s_\psi) \\
a_{yu} &= -\frac{Y_L}{m} (c_\phi s_\theta s_\psi – s_\phi c_\psi) \\
a_{zu} &= -\frac{Y_L}{m} c_\phi c_\theta + g
\end{aligned}
$$
The desired roll angle φ_E, pitch angle θ_E, and lift force Y_L^E required to generate these virtual controls are:
$$
\begin{aligned}
\phi_E &= \arcsin\left( m \frac{a_{yu} c_\psi – a_{xu} s_\psi}{Y_L} \right) \\
\theta_E &= \arctan\left( m \frac{a_{xu} c_\psi + a_{yu} s_\psi}{Y_L} \right) \\
Y_L^E &= m \sqrt{ a_{xu}^2 + a_{yu}^2 + (a_{zu} + g)^2 }
\end{aligned}
$$
Define the position tracking errors as e_x = x – x_E, e_y = y – y_E, e_z = z – z_E, where x_E, y_E, z_E are desired positions. The position tracking error dynamics are:
$$
\begin{aligned}
\dot{e}_x &= a_{xu} – \frac{\eta \dot{x}}{m} + \frac{F_d^x}{m} – \ddot{x}_E \\
\dot{e}_y &= a_{yu} – \frac{\eta \dot{y}}{m} + \frac{F_d^y}{m} – \ddot{y}_E \\
\dot{e}_z &= a_{zu} – \frac{\eta \dot{z}}{m} + \frac{F_d^z}{m} – \ddot{z}_E
\end{aligned}
$$
Define the attitude tracking errors as e_φ = φ – φ_E, e_θ = θ – θ_E, e_ψ = ψ – ψ_E. Introduce the vectors:
$$
\Theta_E = \begin{bmatrix} \phi_E \\ \theta_E \\ \psi_E \end{bmatrix}, \quad \Omega = \begin{bmatrix} \omega_\phi \\ \omega_\theta \\ \omega_\psi \end{bmatrix}, \quad \tau = \begin{bmatrix} \tau_\phi \\ \tau_\theta \\ \tau_\psi \end{bmatrix}, \quad \tau_d = \begin{bmatrix} \tau_{d\phi} \\ \tau_{d\theta} \\ \tau_{d\psi} \end{bmatrix}, \quad e_\Theta = \begin{bmatrix} e_\phi \\ e_\theta \\ e_\psi \end{bmatrix}
$$
and matrices:
$$
I = \begin{bmatrix} I_x & 0 & 0 \\ 0 & I_y & 0 \\ 0 & 0 & I_z \end{bmatrix}, \quad W = \begin{bmatrix} 1 & s_\phi t_\theta & c_\phi t_\theta \\ 0 & c_\phi & -s_\phi \\ 0 & s_\phi / c_\theta & c_\phi / c_\theta \end{bmatrix}
$$
The attitude tracking error dynamics are:
$$
\begin{aligned}
\dot{e}_\Theta &= W \Omega – \dot{\Theta}_E \\
\ddot{e}_\Theta &= W I^{-1} [\tau_d – \Omega \times (I \Omega)] + \dot{W} \Omega + D_A
\end{aligned}
$$
where D_A = W \tau_d – \ddot{\Theta}_E is the lumped disturbance in the attitude loop. Define:
$$
\begin{bmatrix} f_{A1} \\ f_{A2} \\ f_{A3} \end{bmatrix} = W I^{-1} [\Omega \times (I \Omega)] + \dot{W} \Omega, \quad D_A = \begin{bmatrix} D_{A1} \\ D_{A2} \\ D_{A3} \end{bmatrix}, \quad \begin{bmatrix} \tau_1 \\ \tau_2 \\ \tau_3 \end{bmatrix} = W I^{-1} \begin{bmatrix} \tau_\phi \\ \tau_\theta \\ \tau_\psi \end{bmatrix}
$$
Then the error dynamics become:
$$
\begin{aligned}
\ddot{e}_\phi &= \tau_1 + f_{A1} + D_{A1} \\
\ddot{e}_\theta &= \tau_2 + f_{A2} + D_{A2} \\
\ddot{e}_\psi &= \tau_3 + f_{A3} + D_{A3}
\end{aligned}
$$
Thus, the full-loop trajectory tracking problem is transformed into stabilizing the position tracking errors e_x, e_y, e_z and attitude tracking errors e_φ, e_θ, e_ψ.
Observer Design
Position Loop Observer Design
Assumption 1: The external disturbance forces F_d^x, F_d^y, F_d^z in the position loop tracking error dynamics satisfy:
$$
\begin{aligned}
\dot{\kappa}_{1i} &= \varpi_i \kappa_{2i} \\
\dot{\kappa}_{2i} &= -\varpi_i \kappa_{1i} \\
F_d^i &= \kappa_{1i}
\end{aligned}
$$
where i = x, y, z, ϖ_i represents the known frequency of the disturbance, and κ_{1i}, κ_{2i} are intermediate dynamics of the disturbance.
Note: Assumption 1 describes periodic disturbances with known frequencies, such as sinusoidal winds during quadcopter flight.
To estimate the external periodic disturbances F_d^x, F_d^y, F_d^z, harmonic disturbance observers (HDO) are designed for the position loop dynamics.
X-channel:
$$
\begin{aligned}
\dot{z}_{x1} &= -\frac{\eta}{m} \dot{x} – \ddot{x}_E + a_{xu} + z_{x2} – l_{px1} (z_{x1} – \dot{e}_x) \\
\dot{z}_{x2} &= \varpi_x z_{x3} – l_{px2} (z_{x1} – \dot{e}_x) \\
\dot{z}_{x3} &= -\varpi_x z_{x2} – l_{px3} (z_{x1} – \dot{e}_x) \\
\hat{F}_d^x &= m z_{x2}
\end{aligned}
$$
Y-channel:
$$
\begin{aligned}
\dot{z}_{y1} &= -\frac{\eta}{m} \dot{y} – \ddot{y}_E + a_{yu} + z_{y2} – l_{py1} (z_{y1} – \dot{e}_y) \\
\dot{z}_{y2} &= \varpi_y z_{y3} – l_{py2} (z_{y1} – \dot{e}_y) \\
\dot{z}_{y3} &= -\varpi_y z_{y2} – l_{py3} (z_{y1} – \dot{e}_y) \\
\hat{F}_d^y &= m z_{y2}
\end{aligned}
$$
Z-channel:
$$
\begin{aligned}
\dot{z}_{z1} &= -\frac{\eta}{m} \dot{z} – \ddot{z}_E + a_{zu} + z_{z2} – l_{pz1} (z_{z1} – \dot{e}_z) \\
\dot{z}_{z2} &= \varpi_z z_{z3} – l_{pz2} (z_{z1} – \dot{e}_z) \\
\dot{z}_{z3} &= -\varpi_z z_{z2} – l_{pz3} (z_{z1} – \dot{e}_z) \\
\hat{F}_d^z &= m z_{z2}
\end{aligned}
$$
where l_{pi1}, l_{pi2}, l_{pi3} (i = x, y, z) are positive constants chosen such that the polynomial s^3 + l_{pi1} s^2 + (l_{pi2} + \varpi_i^2) s + l_{pi1} \varpi_i^2 + l_{pi3} \varpi_i is Hurwitz; and \hat{F}_d^x, \hat{F}_d^y, \hat{F}_d^z are the estimates of F_d^x, F_d^y, F_d^z, respectively.
Since the position loop observers are symmetric across channels, the X-channel is analyzed for convergence. Define the observer errors for the X-channel:
$$
\begin{aligned}
e_{xo1} &= z_{x1} – \dot{e}_x \\
e_{xo2} &= \frac{\hat{F}_d^x}{m} – \frac{F_d^x}{m} \\
e_{xo3} &= z_{x3} – \frac{\hat{F}_d^x}{m}
\end{aligned}
$$
Combining with the error dynamics and observer equations gives:
$$
\begin{bmatrix} \dot{e}_{xo1} \\ \dot{e}_{xo2} \\ \dot{e}_{xo3} \end{bmatrix} = \begin{bmatrix} -l_{px1} & 1 & 0 \\ -l_{px2} & 0 & \varpi_x \\ -l_{px3} & -\varpi_x & 0 \end{bmatrix} \begin{bmatrix} e_{xo1} \\ e_{xo2} \\ e_{xo3} \end{bmatrix}
$$
Let H = \begin{bmatrix} -l_{px1} & 1 & 0 \\ -l_{px2} & 0 & \varpi_x \\ -l_{px3} & -\varpi_x & 0 \end{bmatrix}. The characteristic polynomial of H is s^3 + l_{px1} s^2 + (l_{px2} + \varpi_x^2) s + l_{px1} \varpi_x^2 + l_{px3} \varpi_x, which is Hurwitz by design. Thus, the observer errors asymptotically converge.
Attitude Loop Observer Design
Assumption 2: The external disturbance torques τ_dφ, τ_dθ, τ_dψ in the attitude error dynamics are differentiable, and their derivatives are bounded, i.e., |\dot{\tau}_{d\phi}| ≤ l_{d1}, |\dot{\tau}_{d\theta}| ≤ l_{d2}, |\dot{\tau}_{d\psi}| ≤ l_{d3}, where l_{d1}, l_{d2}, l_{d3} are positive constants.
From Assumption 2 and the attitude error dynamics, there exist positive constants l_{Ao1}, l_{Ao2}, l_{Ao3} such that |\dot{D}_{A1}| ≤ l_{Ao1}, |\dot{D}_{A2}| ≤ l_{Ao2}, |\dot{D}_{A3}| ≤ l_{Ao3}.
To estimate \dot{e}_φ, \dot{e}_θ, \dot{e}_ψ and the lumped disturbances D_{A1}, D_{A2}, D_{A3}, higher-order sliding mode observers (HOSM) are designed for the attitude channels.
Roll channel:
$$
\begin{aligned}
v_{11} &= -3 l_{Ao1}^{1/3} |z_{11} – e_\phi|^{2/3} \text{sign}(z_{11} – e_\phi) + z_{12} \\
v_{12} &= -1.5 l_{Ao1}^{1/2} |z_{12} – v_{11}|^{1/2} \text{sign}(z_{12} – v_{11}) + z_{13} \\
\dot{z}_{11} &= v_{11} \\
\dot{z}_{12} &= \tau_1 + f_{A1} + v_{12} \\
\dot{z}_{13} &= -1.1 l_{Ao1} \text{sign}(z_{13} – v_{12}) \\
\dot{\hat{e}}_\phi &= z_{12} \\
\hat{D}_{A1} &= z_{13}
\end{aligned}
$$
Pitch channel:
$$
\begin{aligned}
v_{21} &= -3 l_{Ao2}^{1/3} |z_{21} – e_\theta|^{2/3} \text{sign}(z_{21} – e_\theta) + z_{22} \\
v_{22} &= -1.5 l_{Ao2}^{1/2} |z_{22} – v_{21}|^{1/2} \text{sign}(z_{22} – v_{21}) + z_{23} \\
\dot{z}_{21} &= v_{21} \\
\dot{z}_{22} &= \tau_2 + f_{A2} + v_{22} \\
\dot{z}_{23} &= -1.1 l_{Ao2} \text{sign}(z_{23} – v_{22}) \\
\dot{\hat{e}}_\theta &= z_{22} \\
\hat{D}_{A2} &= z_{23}
\end{aligned}
$$
Yaw channel:
$$
\begin{aligned}
v_{31} &= -3 l_{Ao3}^{1/3} |z_{31} – e_\psi|^{2/3} \text{sign}(z_{31} – e_\psi) + z_{32} \\
v_{32} &= -1.5 l_{Ao3}^{1/2} |z_{32} – v_{31}|^{1/2} \text{sign}(z_{32} – v_{31}) + z_{33} \\
\dot{z}_{31} &= v_{31} \\
\dot{z}_{32} &= \tau_3 + f_{A3} + v_{32} \\
\dot{z}_{33} &= -1.1 l_{Ao3} \text{sign}(z_{33} – v_{32}) \\
\dot{\hat{e}}_\psi &= z_{32} \\
\hat{D}_{A3} &= z_{33}
\end{aligned}
$$
where \dot{\hat{e}}_φ, \dot{\hat{e}}_θ, \dot{\hat{e}}_ψ are estimates of the tracking error derivatives, and \hat{D}_{A1}, \hat{D}_{A2}, \hat{D}_{A3} are estimates of the lumped disturbances; l_{Ao1}, l_{Ao2}, l_{Ao3} are observer gains satisfying the bounds in Equation (16). According to existing theorems, the HOSM observers ensure finite-time convergence of estimation errors.
Controller Design
This section designs composite dynamic inverse controllers based on the observer estimates and prescribed performance control, analyzing closed-loop stability and performance satisfaction.
Prescribed Performance and Transformed Error Dynamics
To ensure the position tracking errors converge with prescribed performance during trajectory tracking, the following constraints are imposed:
$$ -\rho_i(t) < e_i(t) < \rho_i(t) $$
where i = x, y, z represents the position channels, and e_i(t) is the tracking error. An exponential prescribed performance function is chosen:
$$ \rho_i(t) = (\rho_{0i} – \rho_{\infty i}) e^{-h_i t} + \rho_{\infty i} $$
where ρ_{0i}, ρ_{∞i}, and h_i are positive constants with ρ_{0i} > ρ_{∞i}.
To facilitate controller design, the inequality constraints are transformed into equality constraints. Define the variable λ_i(t):
$$ \lambda_i(t) = \frac{e_i(t)}{\rho_i(t)} $$
If λ_i(t) ∈ (-1, 1) can be enforced, then inequality (20) holds, ensuring prescribed performance for position tracking errors. Generally, λ_i(t) is designed as a hyperbolic tangent function of ε_i(t):
$$ \lambda_i(t) = \frac{e^{\varepsilon_i(t)} – e^{-\varepsilon_i(t)}}{e^{\varepsilon_i(t)} + e^{-\varepsilon_i(t)}} $$
Then ε_i(t) can be solved inversely:
$$ \varepsilon_i(t) = \frac{1}{2} \ln \frac{1 + \lambda_i(t)}{1 – \lambda_i(t)} $$
From Equations (21)-(24), ε_i(t) = 0 if and only if e_i(t) = 0. Thus, ε_i(t) and e_i(t) converge to zero simultaneously. Define ε_i(t) as the transformed error. Differentiating Equation (24):
$$ \dot{\varepsilon}_i = \frac{1}{(1 + \lambda_i)(1 – \lambda_i)} \cdot \frac{1}{\rho_i} (\dot{e}_i – e_i \frac{\dot{\rho}_i}{\rho_i}) $$
Define:
$$ r_i = \frac{1}{[1 – (e_i / \rho_i)^2] \rho_i}, \quad v_i = \frac{\dot{\rho}_i(t)}{\rho_i(t)} $$
Then:
$$ \dot{\varepsilon}_i = r_i [\dot{e}_i(t) – e_i(t) v_i] $$
and
$$ \ddot{\varepsilon}_i = \dot{r}_i (\dot{e}_i – e_i v_i) + r_i (\ddot{e}_i – \dot{e}_i v_i – e_i \dot{v}_i) $$
The dynamics of the transformed error ε_i(t) are determined by the control input a_{iu}. From Equations (22) and (23), if ε_i(t) is bounded, then the position tracking error e_i(t) satisfies the prescribed performance指标 (20).
Full-Loop Controller Design
Theorem 1: If the position loop tracking error subsystem (7) satisfies Assumption 1, the following composite prescribed performance dynamic inverse controller ensures that the position loop tracking errors e_x, e_y, e_z asymptotically converge, with convergence satisfying the prescribed performance in Equations (20) and (21):
$$
\begin{aligned}
a_{xu} &= \frac{\eta \dot{x}}{m} – \frac{\hat{F}_d^x}{m} + \ddot{x}_E + \dot{e}_x v_x + e_x \dot{v}_x – \frac{k_{dx} \dot{\varepsilon}_x + k_{px} \varepsilon_x + \dot{r}_x (\dot{e}_x – e_x v_x)}{r_x} \\
a_{yu} &= \frac{\eta \dot{y}}{m} – \frac{\hat{F}_d^y}{m} + \ddot{y}_E + \dot{e}_y v_y + e_y \dot{v}_y – \frac{k_{dy} \dot{\varepsilon}_y + k_{py} \varepsilon_y + \dot{r}_y (\dot{e}_y – e_y v_y)}{r_y} \\
a_{zu} &= \frac{\eta \dot{z}}{m} – \frac{\hat{F}_d^z}{m} + \ddot{z}_E + \dot{e}_z v_z + e_z \dot{v}_z – \frac{k_{dz} \dot{\varepsilon}_z + k_{pz} \varepsilon_z + \dot{r}_z (\dot{e}_z – e_z v_z)}{r_z}
\end{aligned}
$$
where k_{dx}, k_{px}, k_{dy}, k_{py}, k_{dz}, k_{pz} are positive constants; \hat{F}_d^x, \hat{F}_d^y, \hat{F}_d^z are obtained from the harmonic observers (11)-(13); and v_i, \dot{v}_i, \dot{r}_i are as defined in Equation (25).
Theorem 2: If the attitude loop tracking error subsystem (9) satisfies Assumption 2, the following composite dynamic inverse controller ensures that the attitude tracking errors e_φ, e_θ, e_ψ asymptotically converge:
$$
\begin{aligned}
\tau_1 &= -f_{A1} – \hat{D}_{A1} – k_{A11} \dot{\hat{e}}_\phi – k_{A12} e_\phi \\
\tau_2 &= -f_{A2} – \hat{D}_{A2} – k_{A21} \dot{\hat{e}}_\theta – k_{A22} e_\theta \\
\tau_3 &= -f_{A3} – \hat{D}_{A3} – k_{A31} \dot{\hat{e}}_\psi – k_{A32} e_\psi
\end{aligned}
$$
where k_{A11}, k_{A12}, k_{A21}, k_{A22}, k_{A31}, k_{A32} are positive constants; and \hat{D}_{A1}, \hat{D}_{A2}, \hat{D}_{A3}, \dot{\hat{e}}_φ, \dot{\hat{e}}_θ, \dot{\hat{e}}_ψ are obtained from the HOSM observers (17)-(19).
The actual control inputs for the quadcopter, the rotor speeds ω_1, ω_2, ω_3, ω_4, can be computed from Y_L, τ_φ, τ_θ, τ_ψ using Equation (1):
$$
\begin{bmatrix} \omega_1^2 \\ \omega_2^2 \\ \omega_3^2 \\ \omega_4^2 \end{bmatrix} = \begin{bmatrix} \frac{1}{4} & 0 & -\frac{1}{2} & -\frac{1}{4} \\ \frac{1}{4} & \frac{1}{2} & 0 & \frac{1}{4} \\ \frac{1}{4} & 0 & \frac{1}{2} & -\frac{1}{4} \\ \frac{1}{4} & -\frac{1}{2} & 0 & \frac{1}{4} \end{bmatrix} \begin{bmatrix} \frac{Y_L}{C_L} \\ \frac{\tau_\phi}{r C_L} \\ \frac{\tau_\theta}{r C_L} \\ \frac{\tau_\psi}{b} \end{bmatrix}
$$
where Y_L is obtained from Equations (27) and (6), and τ_φ, τ_θ, τ_ψ are obtained from Equations (28) and (9). The control structure of the quadcopter system is summarized in the table below.
| Parameter | Description | Value |
|---|---|---|
| k_{px}, k_{py}, k_{pz} | Position loop proportional gains | 4 |
| k_{dx}, k_{dy}, k_{dz} | Position loop derivative gains | 4 |
| k_{A11}, k_{A21}, k_{A31} | Attitude loop derivative gains | 12 |
| k_{A12}, k_{A22}, k_{A32} | Attitude loop proportional gains | 36 |
| l_{px1}, l_{py1}, l_{pz1} | Position observer gains | 30 |
| l_{Ao1}, l_{Ao2}, l_{Ao3} | Attitude observer gains | 600, 650, 100 |
| ρ_{0x}, ρ_{0y}, ρ_{0z} | Initial performance bounds | 3.5, 3, 2.5 |
| ρ_{∞x}, ρ_{∞y}, ρ_{∞z} | Steady-state performance bounds | 0.01 |
| h_x, h_y, h_z | Performance decay rates | 0.6, 0.6, 1 |
Stability Analysis
The stability analysis focuses on the position loop X-channel controller a_{xu} ensuring asymptotic convergence of e_x with prescribed performance. The analysis covers both asymptotic convergence and performance satisfaction.
Asymptotic Convergence: Combining the disturbance estimation error definitions (14) with controller (27) into error system (7) yields:
$$ \dot{e}_x = \dot{e}_x v_x + e_x \dot{v}_x – \frac{k_{dx} \dot{\varepsilon}_x + k_{px} \varepsilon_x + \dot{r}_x (\dot{e}_x – e_x v_x)}{r_x} – e_{xo2} $$
Combining with Equation (26) gives:
$$ \ddot{\varepsilon}_x = -k_{dx} \dot{\varepsilon}_x – k_{px} \varepsilon_x – r_x e_{xo2} $$
Combining with Equation (15) gives the augmented matrix:
$$ \begin{bmatrix} \dot{e}_{xo1} \\ \dot{e}_{xo2} \\ \dot{e}_{xo3} \\ \dot{\varepsilon}_x \\ \ddot{\varepsilon}_x \end{bmatrix} = \begin{bmatrix} -l_{px1} & 1 & 0 & 0 & 0 \\ -l_{px2} & 0 & \varpi_x & 0 & 0 \\ -l_{px3} & -\varpi_x & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & r_x & 0 & -k_{dx} & -k_{px} \end{bmatrix} \begin{bmatrix} e_{xo1} \\ e_{xo2} \\ e_{xo3} \\ \varepsilon_x \\ \dot{\varepsilon}_x \end{bmatrix} $$
Define E_{xo} = [e_{xo1} e_{xo2} e_{xo3} ε_x \dot{ε}_x]^T, K = \begin{bmatrix} 0 & 1 \\ -k_{dx} & -k_{px} \end{bmatrix}, R = \begin{bmatrix} 0 & 0 & 0 \\ 0 & r_x & 0 \end{bmatrix}, and H_e = \begin{bmatrix} H & 0 \\ R & K \end{bmatrix}. H is Hurwitz by observer design, and K has eigenvalues with negative real parts since k_{dx}, k_{px} > 0. Thus, H_e is Hurwitz, ensuring E_{xo} asymptotically converges. Since ε_x and e_x are homeomorphic, e_x also asymptotically converges.
Prescribed Performance Satisfaction: Since ε_x asymptotically converges during quadcopter trajectory tracking, it is bounded. From Equation (23), λ_x satisfies -1 < λ_x < 1. From Equation (22), the position tracking error e_x satisfies -ρ_x(t) < e_x(t) < ρ_x(t), meaning e_x remains within the performance function envelope without exceeding boundaries.
Note: The quadcopter system’s external disturbances, unmodeled dynamics, and model uncertainties are treated as lumped disturbances. Disturbance observers estimate these disturbances, and the composite prescribed performance dynamic inverse controller incorporates these estimates to effectively suppress multi-source disturbances.
Simulation Analysis
Simulation Setup
To validate the algorithm’s effectiveness, the proposed prescribed performance composite dynamic inverse control with harmonic disturbance observer (PPC+NDIC+HDO) is compared with three methods: basic nonlinear dynamic inverse control (BNDIC), composite nonlinear dynamic inverse control with extended state observer (NDIC+ESO), and composite nonlinear dynamic inverse control with harmonic disturbance observer (NDIC+HDO).
The quadcopter’s initial conditions are set as:
| State Variable | Initial Value |
|---|---|
| x(0) | -3 m |
| y(0) | -1 m |
| z(0) | -2.5 m |
| ẋ(0), ẏ(0), ż(0) | 0 m/s |
| φ(0), θ(0), ψ(0) | 0 rad |
| p(0), q(0), r(0) | 0 rad/s |
The simulation uses model parameters from a typical quadcopter, with nominal values and perturbations to account for uncertainties:
| Parameter | Nominal Value | Perturbed Value |
|---|---|---|
| m | 0.8 kg | 0.8 kg |
| η | 0.09 | 0.0972 (8% increase) |
| C_L | 2.98 × 10^{-5} | 2.831 × 10^{-5} (5% decrease) |
| b | 2 × 10^{-6} | 2.1 × 10^{-6} (5% increase) |
| I_x | 0.005445 kg·m² | 0.0059895 kg·m² (10% increase) |
| I_y | 0.005445 kg·m² | 0.0049005 kg·m² (10% decrease) |
| I_z | 0.01089 kg·m² | 0.0117612 kg·m² (8% increase) |
The reference trajectory is a cylindrical helix:
$$
\begin{aligned}
x_E &= \sin(0.5t) \\
y_E &= \cos(0.5t) \\
z_E &= -0.5 – 0.1t
\end{aligned}
$$
The reference yaw angle is ψ_E = 15° cos(0.5t). The disturbances are set as periodic signals:
$$
\begin{aligned}
F_d^x &= -1.6 \sin(0.3\pi t) \\
F_d^y &= 1.6 \sin(0.3\pi t) \\
F_d^z &= -0.8 \sin(0.3\pi t) \\
\tau_{d\phi} &= -I_x \sin(0.2\pi t) \\
\tau_{d\theta} &= -I_y \sin(0.2\pi t) \\
\tau_{d\psi} &= -2 I_z \sin(0.2\pi t)
\end{aligned}
$$
The proposed PPC+NDIC+HDO controllers and observers are implemented as in Equations (27)-(28) and (11)-(13), (17)-(19). Controller and observer parameters are designed using pole placement. For i = x, y, z and j = 1, 2, 3, the controller parameters satisfy k_{di} = 2 q_{Ci}, k_{pi} = q_{Ci}^2, k_{Aj1} = 2 q_{Cj}, k_{Aj2} = q_{Cj}^2, yielding k_{px} = k_{py} = k_{pz} = 4, k_{dx} = kdy = k_{dz} = 4, k_{A11} = k_{A21} = k_{A31} = 12, k_{A12} = k_{A22} = k_{A32} = 36. Position loop observer poles are set to p_{Ox} = p_{Oy} = p_{Oz} = p_{PO} = 10, giving l_{pi1} = 3 p_{Oi}, l_{pi2} = 3 p_{Oi} – \varpi_i^2, l_{pi3} = (p_{Oi}^3 – l_{pi1} \varpi_i^2) / \varpi_i. Thus, l_{px1} = l_{py1} = l_{pz1} = 30, l_{px2} = l_{py2} = l_{pz2} = 300 – (0.3π)^2, l_{px3} = l_{py3} = l_{pz3} = (1000 – 30 (0.3π)^2) / (0.3π). Prescribed performance function parameters and sliding mode observer gains are tuned as h_x = h_y = 0.6, h_z = 1, ρ_{0x} = 3.5, ρ_{0y} = 3, ρ_{0z} = 2.5, ρ_{∞x} = ρ_{∞y} = ρ_{∞z} = 0.01, l_{Ao1} = 600, l_{Ao2} = 650, l_{Ao3} = 100.
For comparison, BNDIC uses:
$$
\begin{aligned}
a_{xu} &= \frac{\eta \dot{x}}{m} + \ddot{x}_E + k_{dx} \dot{e}_x + k_{px} e_x \\
a_{yu} &= \frac{\eta \dot{y}}{m} + \ddot{y}_E + k_{dy} \dot{e}_y + k_{py} e_y \\
a_{zu} &= \frac{\eta \dot{z}}{m} + \ddot{z}_E + k_{dz} \dot{e}_z + k_{pz} e_z \\
\tau_1 &= -f_{A1} – k_{A11} \dot{e}_\phi – k_{A12} e_\phi \\
\tau_2 &= -f_{A2} – k_{A21} \dot{e}_\theta – k_{A22} e_\theta \\
\tau_3 &= -f_{A3} – k_{A31} \dot{e}_\psi – k_{A32} e_\psi
\end{aligned}
$$
where \dot{e}_φ, \dot{e}_θ, \dot{e}_ψ are obtained via differentiators in Simulink, with parameters identical to the proposed method.
The ESO for NDIC+ESO is designed as:
X-channel:
$$
\begin{aligned}
\dot{z}_{x1} &= -\frac{k_t}{m} \dot{x} – \ddot{x}_d + a_{xu} + z_{x2} – l_{p11} (z_{x1} – \dot{e}_x) \\
\dot{z}_{x2} &= -l_{p12} (z_{x1} – \dot{e}_x) \\
\hat{F}_d^x &= m z_{x2}
\end{aligned}
$$
with l_{p11} = l_{p21} = l_{p31} = 20, l_{p12} = l_{p22} = l_{p32} = 100.
Simulation Results Analysis
The three-dimensional trajectory tracking responses under different methods show that the proposed PPC+NDIC+HDO achieves high-precision tracking of the complex reference trajectory, while BNDIC exhibits significant deviations. The position loop tracking responses in the x, y, z channels demonstrate that PPC+NDIC+HDO ensures the highest tracking accuracy for the quadcopter. Zoomed-in plots reveal that PPC+NDIC+HDO has the smallest errors, followed by NDIC+HDO, with NDIC+ESO performing worse.
The position loop tracking error curves for all four methods indicate that during the initial response, the proposed scheme confines errors within the performance function envelopes, quantitatively describing the convergence. Between 18-22 seconds, only PPC+NDIC+HDO maintains steady-state tracking errors within the prescribed bounds of -0.01 to 0.01 m, while other methods exceed these bounds, confirming high-precision tracking.
The control input responses for the quadcopter show that all methods require similar control input magnitudes and energy levels, ensuring fair comparison. The disturbance estimation performance of HDO and ESO under periodic disturbances highlights HDO’s superiority: it achieves higher steady-state estimation accuracy and smoother estimates, reducing observer-induced dynamics in the closed-loop system.
Conclusion
This paper investigates the complex trajectory tracking control problem for quadcopter systems under periodic disturbances, considering tracking error convergence characteristics. A dynamic inverse trajectory tracking control scheme based on prescribed performance is proposed. The full-loop trajectory tracking control problem for the quadcopter is transformed into a command tracking problem. Harmonic disturbance observers and higher-order sliding mode observers are designed for the position and attitude loops to estimate lumped disturbances. Based on disturbance estimates and the prescribed performance method, composite dynamic inverse controllers are constructed. Simulation results show that the proposed method confines tracking errors within the boundary of -0.01 to 0.01 m, validating the scheme’s effectiveness in handling periodic disturbances for quadcopter applications.
