Adaptive Trajectory Tracking Control for Quadrotor Drones via Sliding Mode with Parameter Prediction and Disturbance Rejection

The pursuit of precision in aerial robotics has placed the quadrotor drone at the forefront of technological innovation. As a versatile unmanned aerial vehicle (UAV), the quadrotor drone finds extensive application in fields ranging from infrastructure inspection and precision agriculture to environmental monitoring and search-and-rescue operations. This widespread adoption is largely due to its mechanical simplicity, exceptional maneuverability, and vertical take-off and landing (VTOL) capabilities. However, the very nature of the quadrotor drone presents significant control challenges. It is an underactuated, highly nonlinear system with six degrees of freedom (position and orientation) controlled by only four independent motor inputs. Furthermore, its operational performance is critically degraded by a multitude of factors, including parametric uncertainties (e.g., mass, inertia), unmodeled aerodynamic effects, and external disturbances such as wind gusts and actuator faults. These factors can lead to trajectory deviations, severe chattering in control signals, and, in the worst case, a complete loss of stability.

To address these challenges, a substantial body of research has been dedicated to developing robust control strategies for the quadrotor drone. Classical methods like Proportional-Integral-Derivative (PID) control offer simplicity but often lack the robustness needed for aggressive maneuvers or in the presence of significant disturbances. More advanced techniques, such as backstepping control, have been employed to systematically handle nonlinearities, while Sliding Mode Control (SMC) has been favored for its inherent robustness against matched uncertainties and disturbances. Adaptive control methods have been integrated to handle parametric uncertainties by adjusting controller gains online. Recent approaches combine these methodologies; for instance, integrating backstepping with SMC, or employing state observers to estimate and compensate for disturbances. Despite these advances, key issues persist. Many controllers struggle with the high coupling between translational and rotational dynamics. The chattering phenomenon inherent in standard SMC can excite unmodeled high-frequency dynamics and cause actuator wear. Furthermore, simultaneous, rapid compensation for both parametric uncertainties and external disturbances remains a complex problem, often leading to compromised tracking performance or slow adaptation.

This article presents a novel, unified control framework designed to overcome these limitations. We propose an adaptive trajectory tracking controller based on a Sliding Mode Control foundation, enhanced with dual prediction and compensation mechanisms. The core innovation lies in its proactive approach: it concurrently predicts and compensates for both the system’s uncertain internal parameters and the external lumped disturbances (encompassing wind, drag, and actuator faults). This dual-compensation strategy, embedded within an adaptive SMC structure, aims to achieve superior tracking precision, significantly enhanced disturbance rejection, elimination of chattering, and guaranteed stability. The performance and superiority of the proposed controller are validated through comparative numerical simulations against established control methods.

Mathematical Model of the Quadrotor Drone

The dynamic model of the quadrotor drone is established using two coordinate frames: the inertial earth-fixed frame $O\{X, Y, Z\}$ and the body-fixed frame $B\{x, y, z\}$ attached to the drone’s center of mass. The position vector in the inertial frame is denoted by $\xi = [x, y, z]^T$, and the orientation is described by the Euler angles $\Theta = [\phi, \theta, \psi]^T$, representing roll, pitch, and yaw, respectively. The control inputs $u_1, u_2, u_3, u_4$ are generated by the four motor speeds and correspond to the total thrust, roll torque, pitch torque, and yaw torque. The standard nonlinear dynamic model, considering drag forces and the gyroscopic effect, is given by:

$$
\begin{aligned}
\ddot{\phi} &= \dot{\theta}\dot{\psi} \left( \frac{I_y – I_z}{I_x} \right) – \frac{J_r}{I_x} \dot{\theta} \Omega + \frac{l}{I_x} u_2 – \frac{k_{\phi}}{I_x} \dot{\phi} \\
\ddot{\theta} &= \dot{\phi}\dot{\psi} \left( \frac{I_z – I_x}{I_y} \right) + \frac{J_r}{I_y} \dot{\phi} \Omega + \frac{l}{I_y} u_3 – \frac{k_{\theta}}{I_y} \dot{\theta} \\
\ddot{\psi} &= \dot{\phi}\dot{\theta} \left( \frac{I_x – I_y}{I_z} \right) + \frac{1}{I_z} u_4 – \frac{k_{\psi}}{I_z} \dot{\psi} \\
\ddot{x} &= \frac{u_x}{m} – \frac{k_x}{m} \dot{x} \\
\ddot{y} &= \frac{u_y}{m} – \frac{k_y}{m} \dot{y} \\
\ddot{z} &= \frac{\cos\phi \cos\theta}{m} u_1 – g – \frac{k_z}{m} \dot{z}
\end{aligned}
$$

where $m$ is the mass; $I_x, I_y, I_z$ are moments of inertia; $l$ is the arm length; $J_r$ is the rotor inertia; $k_{(\cdot)}$ are aerodynamic drag coefficients; $g$ is gravity; and $\Omega = \Omega_1 – \Omega_2 + \Omega_3 – \Omega_4$ is the residual propeller speed. The virtual control inputs $u_x$ and $u_y$ are related to the total thrust $u_1$ and the orientation angles:
$$ u_x = (\cos\phi \sin\theta \cos\psi + \sin\phi \sin\psi) u_1, \quad u_y = (\cos\phi \sin\theta \sin\psi – \sin\phi \cos\psi) u_1 $$

To formulate the control problem comprehensively, we incorporate lumped disturbance and fault terms. The complete model with disturbances is restructured as:

$$
\begin{aligned}
\ddot{\phi} &= a_1 \dot{\theta}\dot{\psi} – a_2 \dot{\theta}\Omega – a_3 \dot{\phi} + b_1 (u_2 + \Delta_1) \\
\ddot{\theta} &= a_4 \dot{\phi}\dot{\psi} – a_5 \dot{\phi}\Omega – a_6 \dot{\theta} + b_2 (u_3 + \Delta_2) \\
\ddot{\psi} &= a_7 \dot{\phi}\dot{\theta} – a_8 \dot{\psi} + b_3 (u_4 + \Delta_3) \\
\ddot{x} &= -a_9 \dot{x} + (1/m)u_x + \Delta_4 \\
\ddot{y} &= -a_{10} \dot{y} + (1/m)u_y + \Delta_5 \\
\ddot{z} &= -a_{11} \dot{z} + (\cos\phi \cos\theta/m)u_1 – g + \Delta_6
\end{aligned}
$$

The parameters $a_i$ and $b_i$ are combinations of physical constants (e.g., $a_1 = (I_y-I_z)/I_x$, $b_1 = l/I_x$). The terms $\Delta_i$ ($i=1,\dots,6$) represent the aggregate of all unmodeled dynamics, external disturbances (wind, drag), and potential actuator faults affecting each channel. This formulation allows us to address a wide range of real-world imperfections in a unified manner. A summary of key symbols is provided in Table 1.

Table 1: Nomenclature and System Symbols
Symbol Description Symbol Description
$x, y, z$ Position in inertial frame $\phi, \theta, \psi$ Roll, Pitch, Yaw angles
$u_1$ Total thrust input $u_2, u_3, u_4$ Roll, Pitch, Yaw torque inputs
$u_x, u_y$ Virtual lateral control inputs $m$ Mass of the quadrotor drone
$I_x, I_y, I_z$ Moments of inertia $l$ Distance from center to motor
$g$ Gravitational acceleration $k_{(\cdot)}$ Aerodynamic drag coefficients
$a_i, b_i$ Model parameters (see text) $\Delta_i$ Lumped disturbance/fault term
$\hat{a}_i, \hat{b}_i$ Estimated/Predicted parameter $\hat{\Delta}_i$ Estimated/Predicted disturbance

Control Objectives

The primary goal for the quadrotor drone is to track a desired time-varying trajectory defined by its position $\xi_d(t) = [x_d(t), y_d(t), z_d(t)]^T$ and yaw angle $\psi_d(t)$, while maintaining stability. This objective naturally decomposes into two interconnected sub-problems:

  1. Attitude Tracking: The actual orientation $\Theta(t) = [\phi(t), \theta(t), \psi(t)]^T$ must converge to a desired orientation $\Theta_d(t) = [\phi_d(t), \theta_d(t), \psi_d(t)]^T$. The desired roll ($\phi_d$) and pitch ($\theta_d$) are not independent but are generated from the position controller. Formally,
    $$ \lim_{t \to \infty} e_{\phi}(t) = 0, \quad \lim_{t \to \infty} e_{\theta}(t) = 0, \quad \lim_{t \to \infty} e_{\psi}(t) = 0 $$
    where $e_{\phi} = \phi – \phi_d$, $e_{\theta} = \theta – \theta_d$, $e_{\psi} = \psi – \psi_d$.
  2. Position Tracking: The actual position $\xi(t)$ must converge to the desired position $\xi_d(t)$. Formally,
    $$ \lim_{t \to \infty} e_{x}(t) = 0, \quad \lim_{t \to \infty} e_{y}(t) = 0, \quad \lim_{t \to \infty} e_{z}(t) = 0 $$
    where $e_{x} = x – x_d$, $e_{y} = y – y_d$, $e_{z} = z – z_d$.

The high coupling between translational and rotational dynamics means these objectives cannot be solved in isolation. The position controller computes the required total thrust $u_1$ and the desired roll/pitch angles ($\phi_d, \theta_d$), which then become the reference commands for the inner-loop attitude controller.

Controller Design: A Dual-Prediction Adaptive Sliding Mode Approach

The proposed controller is designed in a hierarchical manner, with separate but coupled controllers for the attitude and position subsystems. The unifying theme is the use of adaptive sliding mode control augmented with real-time prediction of both unknown parameters $\hat{a}_i, \hat{b}_i$ and lumped disturbances $\hat{\Delta}_i$.

Attitude Subsystem Controller

For each Euler angle channel (roll, pitch, yaw), we define a sliding surface $s$ that combines tracking error and its derivative. For the roll angle:
$$ s_{\phi} = \dot{e}_{\phi} + \lambda_{\phi} e_{\phi} = (\dot{\phi} – \dot{\phi}_d) + \lambda_{\phi} (\phi – \phi_d) $$
where $\lambda_{\phi} > 0$ is a design constant. Similar surfaces $s_{\theta}$ and $s_{\psi}$ are defined for pitch and yaw. The derivative of the sliding surface for roll is:
$$ \dot{s}_{\phi} = \ddot{\phi} – \ddot{\phi}_d + \lambda_{\phi} \dot{e}_{\phi} $$
Substituting the dynamic model $\ddot{\phi} = a_1 \dot{\theta}\dot{\psi} – a_2 \dot{\theta}\Omega – a_3 \dot{\phi} + b_1 (u_2 + \Delta_1)$ yields:
$$ \dot{s}_{\phi} = a_1 \dot{\theta}\dot{\psi} – a_2 \dot{\theta}\Omega – a_3 \dot{\phi} + b_1 u_2 + b_1 \Delta_1 – \ddot{\phi}_d + \lambda_{\phi} \dot{e}_{\phi} $$
The control law $u_2$ is designed to achieve $\dot{s}_{\phi} = -c_{\phi} s_{\phi}$, which ensures exponential convergence of $s_{\phi}$ to zero. However, the parameters $a_1, a_2, a_3, b_1$ and the disturbance $\Delta_1$ are unknown. Therefore, we employ their predicted/estimated values $\hat{d}_1, \hat{d}_2, \hat{d}_3, \hat{d}_4 (\approx 1/b_1)$ and $\hat{\Delta}_1$. The proposed adaptive control law for the roll channel is:

$$
u_2 = -\hat{d}_1 \dot{\theta}\dot{\psi} + \hat{d}_2 \dot{\theta}\Omega + \hat{d}_3 \dot{\phi} – \hat{d}_4 \left( -\ddot{\phi}_d + \lambda_{\phi} \dot{e}_{\phi} + c_{\phi} s_{\phi} \right) – \hat{\Delta}_1
$$

The adaptation laws for the predictions are derived from a Lyapunov stability analysis. Consider the Lyapunov function candidate for the roll subsystem:
$$ V_{\phi} = \frac{1}{2} s_{\phi}^2 + \frac{b_1}{2\gamma_1} (a_1/b_1 – \hat{d}_1)^2 + \frac{b_1}{2\gamma_2} (a_2/b_1 – \hat{d}_2)^2 + \frac{b_1}{2\gamma_3} (a_3/b_1 – \hat{d}_3)^2 + \frac{b_1}{2\gamma_4} (1/b_1 – \hat{d}_4)^2 + \frac{1}{2\beta_1} (\Delta_1 – \hat{\Delta}_1)^2 $$
Taking its time derivative and substituting the control law $u_2$ and the model leads to:
$$ \dot{V}_{\phi} = s_{\phi} \dot{s}_{\phi} – \frac{b_1}{\gamma_1} (a_1/b_1 – \hat{d}_1) \dot{\hat{d}}_1 – \frac{b_1}{\gamma_2} (a_2/b_1 – \hat{d}_2) \dot{\hat{d}}_2 – \frac{b_1}{\gamma_3} (a_3/b_1 – \hat{d}_3) \dot{\hat{d}}_3 – \frac{b_1}{\gamma_4} (1/b_1 – \hat{d}_4) \dot{\hat{d}}_4 – \frac{1}{\beta_1} (\Delta_1 – \hat{\Delta}_1) \dot{\hat{\Delta}}_1 $$
By choosing the adaptation laws as:
$$
\begin{aligned}
\dot{\hat{d}}_1 &= \gamma_1 s_{\phi} \dot{\theta}\dot{\psi}, \quad \dot{\hat{d}}_2 = -\gamma_2 s_{\phi} \dot{\theta}\Omega, \quad \dot{\hat{d}}_3 = -\gamma_3 s_{\phi} \dot{\phi} \\
\dot{\hat{d}}_4 &= \gamma_4 s_{\phi} \left( -\ddot{\phi}_d + \lambda_{\phi} \dot{e}_{\phi} + c_{\phi} s_{\phi} \right), \quad \dot{\hat{\Delta}}_1 = \beta_1 s_{\phi}
\end{aligned}
$$
we obtain $\dot{V}_{\phi} = -c_{\phi} s_{\phi}^2 \le 0$. By Barbalat’s lemma, this guarantees that $s_{\phi} \to 0$, implying $e_{\phi} \to 0$ and $\dot{e}_{\phi} \to 0$. The control laws and adaptation rules for pitch ($u_3$) and yaw ($u_4$) follow an identical structure, ensuring stability for the entire attitude subsystem of the quadrotor drone.

Position Subsystem Controller

The position control for the quadrotor drone is tackled using a similar philosophy but with a backstepping-like procedure due to the second-order dynamics. We illustrate the design for the altitude $z$-channel. Define tracking errors:
$$ e_z = z – z_d, \quad e_{vz} = \dot{z} – \dot{z}_d $$
A virtual control law for the desired velocity is chosen as:
$$ \dot{z}_d^{vir} = -\hat{\mu}_z e_z + \dot{z}_d $$
where $\hat{\mu}_z$ is an adaptive gain. The sliding surface for the velocity error is defined as $s_z = e_{vz} + \lambda_z e_z$. Its derivative is:
$$ \dot{s}_z = \ddot{z} – \ddot{z}_d + \lambda_z \dot{e}_z = (-a_{11} \dot{z} + \frac{\cos\phi\cos\theta}{m}u_1 – g + \Delta_6) – \ddot{z}_d + \lambda_z \dot{e}_z $$
The control input $u_1$ is designed to drive $\dot{s}_z = -c_z s_z$. Using predictions $\hat{a}_{11}$ and $\hat{\Delta}_6$:
$$
u_1 = \frac{m}{\cos\phi\cos\theta} \left( \hat{a}_{11} \dot{z} + g – \hat{\Delta}_6 + \ddot{z}_d – \lambda_z \dot{e}_z – c_z s_z \right)
$$
The Lyapunov function for the $z$-channel includes terms for $s_z$, the parameter error $(\mu_z – \hat{\mu}_z)$, and the disturbance error $(\Delta_6 – \hat{\Delta}_6)$. The adaptation laws are derived as:
$$ \dot{\hat{\mu}}_z = \eta_1 e_z^2, \quad \dot{\hat{a}}_{11} = -\eta_2 \dot{z} s_z, \quad \dot{\hat{\Delta}}_6 = \eta_3 s_z $$
This ensures $\dot{V}_z \le 0$ and stability of the altitude loop.

For the $x$ and $y$ channels, the process is analogous but yields the virtual controls $u_x$ and $u_y$:
$$
\begin{aligned}
u_x &= m \left( \hat{a}_9 \dot{x} – \hat{\Delta}_4 + \ddot{x}_d – \lambda_x \dot{e}_x – c_x s_x \right) \\
u_y &= m \left( \hat{a}_{10} \dot{y} – \hat{\Delta}_5 + \ddot{y}_d – \lambda_y \dot{e}_y – c_y s_y \right)
\end{aligned}
$$
Finally, the desired roll ($\phi_d$) and pitch ($\theta_d$) angles for the inner loop, along with the total thrust $u_1$, are computed from $u_x, u_y, u_z$ and the desired yaw $\psi_d$:
$$
\begin{aligned}
\phi_d &= \arcsin\left( \frac{\sin\psi_d \cdot u_x – \cos\psi_d \cdot u_y}{u_1} \right) \\
\theta_d &= \arctan\left( \frac{\cos\psi_d \cdot u_x + \sin\psi_d \cdot u_y}{u_1 \cos\phi_d} \right)
\end{aligned}
$$
This decouples the position and attitude control, completing the hierarchical structure for the quadrotor drone.

Table 2: Proposed Controller Structure Summary
Subsystem Control Input Key Adaptive/Prediction Terms Stability Mechanism
Attitude
($\phi, \theta, \psi$)
$u_2, u_3, u_4$
(Eqn. for $u_2$ shown)
$\hat{d}_{1-11}$ (Parameter predictions)
$\hat{\Delta}_{1-3}$ (Disturbance predictions)
Lyapunov-based adaptation laws force sliding surface $s \to 0$, ensuring angle tracking.
Position
($x, y, z$)
$u_1, u_x, u_y$
(Eqns. shown above)
$\hat{a}_{9-11}$ (Parameter predictions)
$\hat{\mu}_{x,y,z}$ (Control gains)
$\hat{\Delta}_{4-6}$ (Disturbance predictions)
Lyapunov-based adaptation ensures velocity/position sliding surfaces converge, guaranteeing trajectory tracking.

Simulation Results and Comparative Analysis

To validate the efficacy of the proposed controller (PC) for the quadrotor drone, numerical simulations were conducted in MATLAB/Simulink. The performance was compared against three benchmark controllers: a Standard Backstepping Controller (SBC), a Backstepping Sliding Mode Controller (BSMC), and an Adaptive Sliding Mode Controller (ASMC). The physical parameters and initial conditions for the quadrotor drone are listed in Table 3. The desired trajectory was a helical path combined with a linearly increasing altitude:
$$ x_d(t) = 5\sin(0.5t+4), \quad y_d(t) = 5\cos(0.5t+4), \quad z_d(t) = 0.2t + 1, \quad \psi_d(t) = 0.01\sin(t) $$
Significant sinusoidal disturbances were injected into all channels: $\Delta_{1,2,3} = \cos(0.5t+0.1)$ for attitude and $\Delta_{4,5,6} = \sin(t+0.1)$ for position.

Table 3: Simulation Parameters for the Quadrotor Drone
Parameter Value Parameter Value
Mass ($m$) 2.0 kg Initial Position $[x,y,z]$ $[0.5, 0.5, 0]$ m
Arm Length ($l$) 0.2 m Initial Angles $[\phi,\theta,\psi]$ $[0.05, 0.05, 0.05]$ rad
$I_x, I_y$ 1.25 kg·m² Initial Velocities $[v_x,v_y,v_z]$ $[0, 0, 0.01]$ m/s
$I_z$ 2.5 kg·m² Sliding Gains $[c_\phi, c_\theta, c_\psi]$ $[15, 18, 10]$
Drag Coeffs $k_{(\cdot)}$ 0.012 Sliding Gains $[c_x, c_y, c_z]$ $[20, 40, 10]$
Adaptation Gains $\gamma_i, \eta_i$ 2, 3 Adaptation Gains $\beta_i$ 10, 10, 12

The 3D trajectory tracking results are depicted conceptually in the provided figure. Quantitatively, the tracking performance is best analyzed through error metrics. The proposed controller (PC) demonstrates superior performance across all metrics. The position tracking errors ($e_x, e_y, e_z$) for the quadrotor drone under PC converge to a small neighborhood of zero within approximately 1 second, with negligible overshoot. In contrast, BSMC and ASMC require 4-6 seconds for convergence, and SBC shows significant and persistent oscillation. The velocity tracking errors show a similar trend, with PC achieving smooth and rapid stabilization.

The attitude tracking performance is particularly noteworthy. While all controllers eventually stabilize the angles, PC drastically reduces the initial transient chattering and overshoot observed in BSMC and SBC. The roll and pitch angle errors under PC settle smoothly, and the yaw error exhibits minimal oscillation. The control inputs ($u_1, u_2, u_3, u_4$) generated by PC are smooth and chattering-free, a critical advantage for practical implementation on a physical quadrotor drone, as it prevents actuator wear and avoids exciting unmodeled high-frequency dynamics.

Table 4: Comparative Performance Summary
Performance Metric SBC BSMC ASMC Proposed (PC)
Position Error Settling Time
(to within 5%)
>10 s (oscillatory) ~4-6 s ~4-6 s ~1 s
Attitude Error Overshoot Very High High Moderate Very Low
Control Input Chattering Low (but poor tracking) Severe Moderate Negligible
Disturbance Rejection
(Error magnitude under $\Delta_i$)
Poor Good Good Excellent
Parameter Adaptation No No Yes (Gains only) Yes (Parameters & Disturbances)

The time evolution of the adaptive predictions ($\hat{a}_i, \hat{\Delta}_i$) under PC confirms the controller’s operation. The parameter estimates converge to constant or slowly varying values, while the disturbance estimates $\hat{\Delta}_i$ actively track the injected sinusoidal disturbances, providing the necessary feedforward compensation that is key to the controller’s robustness for the quadrotor drone.

Conclusion

This article has presented a comprehensive adaptive trajectory tracking control solution for a quadrotor drone operating under parametric uncertainties and external disturbances. The proposed controller integrates the robustness of Sliding Mode Control with a novel dual-prediction mechanism. By continuously estimating and compensating for both unknown system parameters and aggregate lumped disturbances (encompassing wind, drag, and faults), the controller achieves a proactive rejection of uncertainties. The Lyapunov-based design guarantees uniform ultimate boundedness of all tracking errors. Simulation results demonstrate that this approach offers significant advantages over conventional and advanced benchmarks: it ensures faster convergence of trajectory tracking errors, eliminates the chattering phenomenon typically associated with SMC, provides smoother control signals, and exhibits stronger disturbance rejection capabilities. The framework is highly suitable for enhancing the autonomy and reliability of quadrotor drones in demanding real-world applications where precision and robustness are paramount. Future work will focus on experimental validation with a physical quadrotor drone platform and extension to scenarios involving full actuator fault diagnosis and isolation.

Scroll to Top