Advanced Trajectory Tracking for Quadrotor Drones Under Complex Disturbances

As a researcher deeply invested in autonomous systems, I am continually fascinated by the challenge of controlling unmanned aerial vehicles (UAVs) in dynamic and uncertain environments. Among various configurations, the quadrotor drone stands out due to its mechanical simplicity, agility, and ability for vertical take-off and landing. However, this very platform presents a significant control challenge: it is an underactuated, highly coupled, and nonlinear system. Achieving high-precision trajectory tracking for a six-degree-of-freedom (6-DoF) quadrotor drone becomes particularly daunting when it operates subject to complex, unknown external disturbances and inherent parameter uncertainties. Traditional linear controllers often fall short, while sophisticated nonlinear controllers can suffer from computational intensity or robustness issues.

This article details a novel, cascaded dual-loop control strategy I have developed to address these challenges. The core idea is to decouple the problem: an outer loop handles velocity tracking using a highly optimized predictive model, while an inner loop robustly manages position and attitude dynamics. Specifically, for the velocity loop, I employ a Model Predictive Control (MPC) framework. To overcome MPC’s critical bottleneck—the computational cost of its online optimization—I integrate the Sparrow Search Algorithm (SSA), a metaheuristic known for its rapid convergence and strong robustness, to efficiently solve the rolling-horizon optimization problem. For the inner dynamics loop, I leverage Sliding Mode Control (SMC). SMC is renowned for its insensitivity to matched disturbances and parameter variations, making it ideal for countering the unknown forces and torques acting on the quadrotor drone. Furthermore, I mitigate the classic chattering problem of SMC by using a saturation function instead of a sign function. This combination, termed the SSA-MPC-SMC strategy, creates a cohesive system where MPC provides intelligent, foresighted velocity commands, and SMC delivers robust, precise force and torque execution. I will validate the stability of the proposed controller using Lyapunov theory and demonstrate its superior performance through comprehensive numerical simulations against established methods.

Mathematical Modeling of the Quadrotor Drone

A precise mathematical model is the foundation for model-based control design. I define two coordinate frames: the Earth-fixed inertial frame $$O_Ex_Ey_Ez_E$$ and the body-fixed frame $$O_Bx_By_Bz_B$$ attached to the drone’s center of mass.

Kinematic Model

The drone’s pose is defined by its position $$\mathbf{X} = [x, y, z]^T$$ and its orientation expressed via Euler angles $$\boldsymbol{\delta} = [\phi, \theta, \psi]^T$$ (roll, pitch, yaw). Its velocity vector combines linear velocity $$\mathbf{v} = [v_x, v_y, v_z]^T$$ and angular velocity $$\boldsymbol{\omega} = [\omega_\phi, \omega_\theta, \omega_\psi]^T$$. The complete state vectors are $$\boldsymbol{\eta} = [\mathbf{X}^T, \boldsymbol{\delta}^T]^T$$ and $$\boldsymbol{\vartheta} = [\mathbf{v}^T, \boldsymbol{\omega}^T]^T$$. The kinematic equations relating these are:

$$\dot{\mathbf{X}} = \mathbf{T}(\psi, \theta, \phi) \mathbf{v}$$
$$\dot{\boldsymbol{\delta}} = \mathbf{R}(\phi, \theta) \boldsymbol{\omega}$$

where $$\mathbf{T}$$ is the rotation matrix from body to inertial frame and $$\mathbf{R}$$ is the transformation matrix for angular velocities. They are defined as:

$$ \mathbf{T} = \begin{pmatrix}
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{pmatrix} $$

$$ \mathbf{R} = \begin{pmatrix}
1 & s\phi t\theta & c\phi t\theta \\
0 & c\phi & -s\phi \\
0 & s\phi/c\theta & c\phi/c\theta
\end{pmatrix} $$

Here, $$s\cdot$$, $$c\cdot$$, and $$t\cdot$$ denote $$\sin(\cdot)$$, $$\cos(\cdot)$$, and $$\tan(\cdot)$$, respectively.

Dynamic Model

Using the Euler-Lagrange formulation, the translational dynamics of the quadrotor drone are:

$$ m \ddot{\mathbf{X}} = \mathbf{F}_U + \mathbf{G} + \mathbf{F}_d $$

where $$m$$ is the mass, $$\mathbf{F}_U = \mathbf{T} \boldsymbol{\rho}$$ is the thrust vector with $$\boldsymbol{\rho} = [0, 0, \sum_{i=1}^4 F_i]^T$$, $$\mathbf{G} = [0, 0, -mg]^T$$ is gravity, and $$\mathbf{F}_d$$ represents external disturbance forces.

The rotational dynamics are more complex due to coupling:

$$ \mathbf{N}(\boldsymbol{\delta}) \ddot{\boldsymbol{\delta}} + \mathbf{C}(\boldsymbol{\delta}, \dot{\boldsymbol{\delta}}) \dot{\boldsymbol{\delta}} = \mathbf{M}_f + \mathbf{M}_d $$

where $$\mathbf{N}(\boldsymbol{\delta})$$ is the inertia matrix, $$\mathbf{C}(\boldsymbol{\delta}, \dot{\boldsymbol{\delta}})$$ contains Coriolis and centrifugal terms, $$\mathbf{M}_f$$ is the control torque vector generated by the motors, and $$\mathbf{M}_d$$ is the disturbance torque. The control torque is related to the individual rotor thrusts $$F_i = k H_i^2$$ (with $$k$$ as a thrust coefficient and $$H_i$$ as rotor speed) by:

$$ \mathbf{M}_f = \begin{pmatrix}
l (F_4 – F_2) \\
l (F_1 – F_3) \\
\kappa (F_4 + F_2 – F_3 – F_1)
\end{pmatrix} $$

where $$l$$ is the arm length and $$\kappa$$ is a drag-to-thrust ratio coefficient.

Control Problem Formulation

The objective is to design a control law so that the actual pose $$\boldsymbol{\eta}(t)$$ and velocity $$\boldsymbol{\vartheta}(t)$$ of the quadrotor drone track desired smooth trajectories $$\boldsymbol{\eta}_d(t)$$ and $$\boldsymbol{\vartheta}_d(t)$$ from any initial condition, even in the presence of $$\mathbf{F}_d$$, $$\mathbf{M}_d$$, and parameter inaccuracies. The tracking errors are defined as:

$$ \boldsymbol{\eta}_e = \boldsymbol{\eta} – \boldsymbol{\eta}_d, \quad \boldsymbol{\vartheta}_e = \boldsymbol{\vartheta} – \boldsymbol{\vartheta}_d $$

Velocity Loop Controller: SSA-Optimized MPC

The outer loop generates a desired velocity profile based on pose error. I use MPC for this task due to its inherent predictive capability and constraint-handling nature.

Linearized Error Model and Discretization

I linearize the kinematic model around the desired operating point $$(\boldsymbol{\eta}_d, \boldsymbol{\vartheta}_d)$$. The resulting continuous-time error model is discretized using a zero-order hold with sampling time $$T_s$$, yielding a discrete linear time-varying (LTV) state-space model:

$$ \boldsymbol{\eta}_e(k+1) = \mathbf{A}_{k,t} \boldsymbol{\eta}_e(k) + \mathbf{B}_{k,t} \boldsymbol{\vartheta}_e(k) $$

To formulate a standard MPC problem, I define an augmented state vector $$\boldsymbol{\xi}(k|t) = [\boldsymbol{\eta}_e(k|t)^T, \boldsymbol{\vartheta}_e(k-1|t)^T]^T$$ which includes the previous control input. This allows me to treat the control increment $$\Delta \boldsymbol{\vartheta}_e(k|t) = \boldsymbol{\vartheta}_e(k|t) – \boldsymbol{\vartheta}_e(k-1|t)$$ as the new decision variable, ensuring smooth velocity commands. The augmented state-space model is:

$$ \boldsymbol{\xi}(k+1|t) = \tilde{\mathbf{A}}_t \boldsymbol{\xi}(k|t) + \tilde{\mathbf{B}}_t \Delta \boldsymbol{\vartheta}_e(k|t) $$
$$ \mathbf{O}(k|t) = \tilde{\mathbf{C}}_t \boldsymbol{\xi}(k|t) $$

Prediction Model and Optimization Problem

Assuming the matrices are constant over the prediction horizon (i.e., $$\tilde{\mathbf{A}}_k \approx \tilde{\mathbf{A}}_t$$), I can predict future outputs over a horizon $$N_p$$ as a function of future control increments over a control horizon $$N_c$$:

$$ \mathbf{Y}(t) = \boldsymbol{\Psi}_t \boldsymbol{\xi}(t|t) + \boldsymbol{\Theta}_t \Delta \mathbf{U}(t) $$

where $$\mathbf{Y}(t)$$ stacks future outputs, $$\boldsymbol{\Psi}_t$$ and $$\boldsymbol{\Theta}_t$$ are matrices derived from the model, and $$\Delta \mathbf{U}(t) = [\Delta \boldsymbol{\vartheta}_e(t|t)^T, …, \Delta \boldsymbol{\vartheta}_e(t+N_c-1|t)^T]^T$$.

The core of MPC is solving the following constrained optimization problem at each time step:

$$ \min_{\Delta \mathbf{U}(t)} J = \sum_{i=1}^{N_p} \| \boldsymbol{\eta}_e(t+i|t) – \boldsymbol{\eta}_{e,ref}(t+i|t) \|^2_{\mathbf{Q}} + \sum_{i=0}^{N_c-1} \| \Delta \boldsymbol{\vartheta}_e(t+i|t) \|^2_{\mathbf{R}} $$

subject to:
$$ \boldsymbol{\vartheta}_{min} \leq \boldsymbol{\vartheta}_e(t+i|t) \leq \boldsymbol{\vartheta}_{max} $$
$$ \Delta \boldsymbol{\vartheta}_{min} \leq \Delta \boldsymbol{\vartheta}_e(t+i|t) \leq \Delta \boldsymbol{\vartheta}_{max} $$

where $$\mathbf{Q}$$ and $$\mathbf{R}$$ are positive definite weighting matrices. This can be recast as a Quadratic Programming (QP) problem:

$$ \min_{\Delta \mathbf{U}(t)} \frac{1}{2} \Delta \mathbf{U}(t)^T \mathbf{H}_t \Delta \mathbf{U}(t) + \mathbf{g}_t^T \Delta \mathbf{U}(t) $$
$$ \text{s.t. } \mathbf{L}_b \leq \mathbf{A}_{inq} \Delta \mathbf{U}(t) \leq \mathbf{U}_b $$

Sparrow Search Algorithm for Rolling Optimization

Solving the QP problem online can be computationally demanding. I employ the Sparrow Search Algorithm as a powerful and efficient solver. SSA mimics the foraging and anti-predation behaviors of sparrow flocks. The population consists of producers (finding food), scroungers (following producers), and scouts (alert for danger). The position update rules are as follows.

Producers (with better fitness):

$$ X_{p,q}^{g+1} = \begin{cases}
X_{p,q}^{g} \cdot \exp\left(-\frac{p}{\alpha \cdot g_{max}}\right), & \text{if } R_2 < ST \\
X_{p,q}^{g} + \mathcal{N}(0,1) \cdot \mathbf{D}, & \text{if } R_2 \geq ST
\end{cases} $$

where $$g$$ is iteration, $$R_2$$ and $$ST$$ are alarm and safety thresholds, and $$\alpha$$ is a random number.

Scroungers:

$$ X_{p,q}^{g+1} = \begin{cases}
\mathcal{N}(0,1) \cdot \exp\left(\frac{X_{worst}^g – X_{p,q}^g}{p^2}\right), & \text{if } p > n/2 \\
X_{P}^{g+1} + |X_{p,q}^g – X_{P}^{g+1}| \cdot \mathbf{A}^* \cdot \mathbf{L}, & \text{otherwise}
\end{cases} $$

where $$X_P^{g+1}$$ is the best producer’s position.

Scouts:

$$ X_{p,q}^{g+1} = \begin{cases}
X_{best}^g + \beta \cdot |X_{p,q}^g – X_{best}^g|, & \text{if } f_p > f_g \\
X_{p,q}^g + K \cdot \frac{|X_{p,q}^g – X_{worst}^g|}{(f_p – f_w) + \epsilon}, & \text{if } f_p = f_g
\end{cases} $$

where $$X_{best}^g$$ is the global best position, and $$f_p, f_g, f_w$$ are current, global best, and global worst fitness values.

I use the control increment sequence $$\Delta \mathbf{U}(t)$$ as the “position” to be optimized, and the cost function $$J$$ as the fitness function. The SSA efficiently searches for the optimal $$\Delta \mathbf{U}^*(t)$$. Only the first element $$\Delta \boldsymbol{\vartheta}_e^*(t|t)$$ is applied to the system:

$$ \boldsymbol{\vartheta}_d(t) = \boldsymbol{\vartheta}_d(t-1) + \Delta \boldsymbol{\vartheta}_e^*(t|t) $$

This $$\boldsymbol{\vartheta}_d(t)$$ becomes the desired velocity command for the inner loop. The following table summarizes the SSA-MPC rolling optimization process.

Stage Action SSA Role
1. Initialization At time $$t$$, measure current state $$\boldsymbol{\eta}(t)$$, $$\boldsymbol{\vartheta}(t-1)$$. Construct augmented state $$\boldsymbol{\xi}(t|t)$$. Initialize sparrow population with random candidate $$\Delta \mathbf{U}$$ sequences.
2. Prediction For each candidate $$\Delta \mathbf{U}$$, use model $$\tilde{\mathbf{A}}_t, \tilde{\mathbf{B}}_t$$ to predict future states/outputs $$\mathbf{Y}(t)$$ over $$N_p$$ steps. N/A
3. Evaluation Calculate cost $$J$$ for each candidate based on predicted errors and control effort. $$J$$ serves as the fitness function for each sparrow’s position.
4. Optimization Find the $$\Delta \mathbf{U}$$ sequence that minimizes $$J$$ while satisfying constraints. SSA iteratively updates producer, scrounger, and scout positions to find the global minimum of $$J$$.
5. Application Extract the first control increment $$\Delta \boldsymbol{\vartheta}_e^*(t|t)$$ from the optimal sequence. Compute and output $$\boldsymbol{\vartheta}_d(t)$$. N/A
6. Receding Horizon At $$t+1$$, repeat from step 1 with new measurements. SSA is re-initialized for the new optimization problem.

Stability Analysis for the SSA-MPC Loop

I analyze stability using a Lyapunov candidate based on the optimal cost function. Let $$F(k) = \min J(k)$$ be the optimal value of the cost function at time step $$k$$.

1. Positive Definiteness: Since $$J(k)$$ is a sum of squared weighted norms, it is always non-negative. The minimum of a non-negative function is also non-negative, so $$F(k) \geq 0$$, and $$F(k)=0$$ only at the desired equilibrium (zero error).

2. Negative Definiteness of the Difference: I need to show $$F(k+1) – F(k) \leq 0$$. Assuming the model is perfect and no disturbances act on the kinematics (a standard assumption for nominal MPC stability), the optimal sequence at time $$k$$, shifted by one step and appended with a zero, is a feasible (though not necessarily optimal) candidate solution at time $$k+1$$. The cost of this feasible solution is $$F(k) – \|\Delta \boldsymbol{\vartheta}_e^*(k+1|k)\|^2_{\mathbf{R}}$$. Therefore, the optimal cost at $$k+1$$ satisfies:

$$ F(k+1) \leq F(k) – \|\Delta \boldsymbol{\vartheta}_e^*(k+1|k)\|^2_{\mathbf{R}} \leq F(k) $$

This demonstrates that $$F(k)$$ is a non-increasing sequence bounded below by zero, implying convergence. The term $$\|\Delta \boldsymbol{\vartheta}_e^*\|^2_{\mathbf{R}}$$ ensures that the sequence $$\{F(k)\}$$ is strictly decreasing unless the control increment is zero, which corresponds to the steady state. This provides nominal asymptotic stability for the kinematic velocity tracking loop.

Inner Loop Controller: Enhanced Sliding Mode Control

The inner loop’s objective is to generate the actual forces and torques $$\mathbf{F}_U, \mathbf{M}_f$$ so that the quadrotor drone‘s actual velocity $$\boldsymbol{\vartheta}$$ tracks the desired velocity $$\boldsymbol{\vartheta}_d$$ from the outer MPC loop, despite dynamic disturbances and parameter uncertainties.

Controller Design

I define the velocity tracking error as $$\boldsymbol{\vartheta}_e = \boldsymbol{\vartheta}_d – \boldsymbol{\vartheta} = [\mathbf{v}_e^T, \boldsymbol{\omega}_e^T]^T$$. For both translational and rotational dynamics, I design separate SMC laws. I choose an integral sliding surface to improve steady-state accuracy and reduce overshoot. For the translational part:

$$ \mathbf{s}_v = \dot{\mathbf{v}}_e + 2\boldsymbol{\Lambda}_v \mathbf{v}_e + \boldsymbol{\Lambda}_v^2 \int_0^t \mathbf{v}_e(\tau) d\tau $$

where $$\boldsymbol{\Lambda}_v$$ is a positive definite diagonal matrix. Taking the derivative and substituting the translational dynamics $$m \dot{\mathbf{v}} = \mathbf{T}^{-1}(\mathbf{F}_U + \mathbf{G} + \mathbf{F}_d)$$ yields:

$$ \dot{\mathbf{s}}_v = \ddot{\mathbf{v}}_e + 2\boldsymbol{\Lambda}_v \dot{\mathbf{v}}_e + \boldsymbol{\Lambda}_v^2 \mathbf{v}_e = \ddot{\mathbf{v}}_d – \frac{1}{m}\mathbf{T}^{-1}(\mathbf{F}_U + \mathbf{G} + \mathbf{F}_d) + 2\boldsymbol{\Lambda}_v \dot{\mathbf{v}}_e + \boldsymbol{\Lambda}_v^2 \mathbf{v}_e $$

The standard SMC law has two parts: $$\mathbf{F}_U = \mathbf{F}_{U,eq} + \mathbf{F}_{U,sw}$$. The equivalent control $$\mathbf{F}_{U,eq}$$ is derived by setting $$\dot{\mathbf{s}}_v = 0$$ in the absence of disturbances ($$\mathbf{F}_d=0$$):

$$ \mathbf{F}_{U,eq} = \mathbf{T} \left( m (\ddot{\mathbf{v}}_d + 2\boldsymbol{\Lambda}_v \dot{\mathbf{v}}_e + \boldsymbol{\Lambda}_v^2 \mathbf{v}_e) – \mathbf{G} \right) $$

The switching control $$\mathbf{F}_{U,sw}$$ is designed to reject disturbances and model errors. To eliminate the notorious chattering effect, I replace the sign function with a saturation function:

$$ \mathbf{F}_{U,sw} = \mathbf{T} \left( m \mathbf{K}_{v} sat(\mathbf{s}_v / \Phi_v) \right) $$

where $$sat(\cdot)$$ is the saturation function with boundary layer thickness $$\Phi_v$$, and $$\mathbf{K}_{v}$$ is a positive definite gain matrix. The complete translational control law is:

$$ \mathbf{F}_U = \mathbf{T} \left( m (\ddot{\mathbf{v}}_d + 2\boldsymbol{\Lambda}_v \dot{\mathbf{v}}_e + \boldsymbol{\Lambda}_v^2 \mathbf{v}_e) – \mathbf{G} + m \mathbf{K}_{v} sat(\mathbf{s}_v / \Phi_v) \right) $$

An identical procedure is followed for the rotational dynamics. The sliding surface is:

$$ \mathbf{s}_\omega = \dot{\boldsymbol{\omega}}_e + 2\boldsymbol{\Lambda}_\omega \boldsymbol{\omega}_e + \boldsymbol{\Lambda}_\omega^2 \int_0^t \boldsymbol{\omega}_e(\tau) d\tau $$

Using the rotational dynamics $$\mathbf{N}\dot{\boldsymbol{\omega}} + \mathbf{C}\boldsymbol{\omega} = \mathbf{M}_f + \mathbf{M}_d$$ and following the same steps, the final torque control law is:

$$ \mathbf{M}_f = \mathbf{N} (\ddot{\boldsymbol{\omega}}_d + 2\boldsymbol{\Lambda}_\omega \dot{\boldsymbol{\omega}}_e + \boldsymbol{\Lambda}_\omega^2 \boldsymbol{\omega}_e) + \mathbf{C}\boldsymbol{\omega} + \mathbf{N} \mathbf{K}_{\omega} sat(\mathbf{s}_\omega / \Phi_\omega) $$

The saturation function is defined as:

$$ sat(z) = \begin{cases}
z, & \text{if } |z| \leq 1 \\
sign(z), & \text{if } |z| > 1
\end{cases} $$

This modification ensures the control signal is continuous within the boundary layer, effectively attenuating high-frequency chattering while maintaining strong robustness outside it. The key advantage of using SMC here is that if the disturbance $$\mathbf{F}_d$$ or $$\mathbf{M}_d$$ is bounded, the gain matrices $$\mathbf{K}_{v}, \mathbf{K}_{\omega}$$ can be chosen large enough to guarantee that the sliding condition $$\mathbf{s}^T\dot{\mathbf{s}} < 0$$ is satisfied, driving the system to the sliding manifold $$\mathbf{s}=0$$ in finite time and keeping it there, irrespective of the specific disturbance form.

Comparison of Switching Functions in SMC
Function Mathematical Form Advantage Disadvantage
Sign Function $$sign(s) = \begin{cases} 1, & s>0 \\ 0, & s=0 \\ -1, & s<0 \end{cases}$$ Guarantees ideal sliding motion, strongest rejection. Causes high-frequency chattering (discontinuous control), harmful to actuators.
Saturation Function $$sat(s/\Phi) = \begin{cases} s/\Phi, & |s| \leq \Phi \\ sign(s), & |s| > \Phi \end{cases}$$ Continuous control inside boundary layer ($$|s| \leq \Phi$$), eliminates chattering. Introduces a boundary layer; tracking is only ultimately bounded, not asymptotically perfect.

Simulation Results and Performance Analysis

I conducted extensive simulations in MATLAB/Simulink to validate the proposed SSA-MPC-SMC controller for the 6-DoF quadrotor drone. The model parameters used are: $$m = 1.44\ kg$$, $$\mathbf{I} = diag(0.03, 0.03, 0.04)\ kg\cdot m^2$$, $$l = 0.2\ m$$, $$g = 9.81\ m/s^2$$. The controller parameters were tuned for performance: MPC horizons $$N_p = N_c = 5$$, sampling time $$T_s = 0.01\ s$$, weights $$\mathbf{Q}=diag(10,10,10,1,1,1)$$, $$\mathbf{R}=0.1\mathbf{I}$$. SMC parameters: $$\boldsymbol{\Lambda}_v = \boldsymbol{\Lambda}_\omega = diag(2,2,2,2,2,2)$$, $$\mathbf{K}_v = \mathbf{K}_\omega = diag(5,5,5,5,5,5)$$, $$\Phi = 0.1$$.

1. Benchmarking the SSA Optimizer

To demonstrate the efficiency of SSA, I compared it against two other common optimizers embedded in the MPC rolling horizon: Genetic Algorithm (GA) and Particle Swarm Optimization (PSO). All algorithms used a population size of 20 and a maximum of 50 iterations per MPC step. The desired trajectory was a 3D helix: $$x_d=20\sin(0.2t)$$, $$y_d=20-20\cos(0.2t)$$, $$z_d=t$$, $$\psi_d=0.2t$$.

The tracking performance and computational load are summarized below:

Performance Comparison of Different MPC Optimizers
Optimizer Max Position Error (m) Settling Time (s) Avg. Runtime per MPC step (s) Remarks
GA-MPC ~1.8 >15 0.152 Slow convergence, oscillations present, highest runtime.
PSO-MPC ~0.9 ~8 0.081 Faster than GA but prone to local minima, slight steady-state oscillation.
SSA-MPC ~0.4 ~5 0.075 Fastest convergence, lowest steady-state error, most stable tracking.

The results clearly show that SSA provides the best balance between tracking accuracy and computational efficiency, making it highly suitable for real-time implementation of MPC on a quadrotor drone.

2. Trajectory Tracking Under Complex Disturbances

I compared the full cascaded SSA-MPC-SMC strategy against two benchmark controllers: a standalone Nonlinear MPC (NMPC) that directly maps pose error to forces/torques, and a standalone SMC that uses only velocity error feedback. A significant, time-varying external disturbance was applied from t=10s to t=60s:

$$ \mathbf{F}_d = [0.5\text{(step)}, 0.2\cos(5t)-0.2\sin(5t), 0.2\sin(5t)]^T\ N $$
$$ \mathbf{M}_d = [0.5\cos(2t), 0.5\sin(3t)-0.1\cos(2t), 0.5\sin(2t)]^T\ Nm $$

Trajectory Tracking Error Comparison Under Disturbance
Control Method RMSE (x, y, z) in meters Max Attitude Error (rad) Observation
Standalone NMPC (0.85, 1.12, 0.62) 0.35 Slow response to disturbance, large tracking deviation.
Standalone SMC (0.52, 0.68, 0.41) 0.18 Robust but oscillatory; lacks predictive foresight for smooth recovery.
Proposed SSA-MPC-SMC (0.18, 0.22, 0.15) 0.08 Excellent disturbance rejection. Smooth, accurate tracking with minimal deviation.

3. Robustness to Parameter Uncertainties

To test robustness, I introduced a ±20% error in the mass and inertia parameters used in the SMC inner loop controller while maintaining the same complex external disturbances. The quadrotor drone‘s true model was unchanged. The tracking performance was remarkably consistent.

Robustness Test with Incorrect Parameters in SMC
Parameter Error RMSE (x, y, z) in meters Degradation vs Nominal
Nominal (0% error) (0.18, 0.22, 0.15) Baseline
+20% (m, I increased) (0.19, 0.24, 0.16) < 10%
-20% (m, I decreased) (0.20, 0.25, 0.17) < 12%

The results confirm that the SMC-based inner loop is highly insensitive to parameter inaccuracies, a critical feature for practical deployment of a quadrotor drone where mass and inertia may change (e.g., with payload). The cascaded structure successfully isolates the kinematic MPC from these dynamic uncertainties.

Conclusion

In this work, I have presented a novel, robust cascaded control architecture for high-precision trajectory tracking of a 6-DoF quadrotor drone. The strategy cleverly decomposes the problem into a kinematic velocity loop and a dynamic force/torque loop. The outer loop employs a Model Predictive Controller whose online optimization is efficiently solved by the Sparrow Search Algorithm, granting the system predictive foresight and constraint satisfaction with low computational overhead. The inner loop utilizes an enhanced Sliding Mode Controller with a saturation function, providing formidable robustness against complex, unknown external disturbances and significant parameter uncertainties without inducing harmful chattering.

Theoretical analysis using Lyapunov theory confirms the stability of the SSA-MPC framework. Extensive simulation studies validate the superior performance of the proposed SSA-MPC-SMC method. It demonstrates significantly lower tracking error, faster convergence, and better disturbance rejection compared to standalone NMPC or SMC approaches. Furthermore, it maintains consistent performance in the face of substantial errors in the dynamic model parameters. This combination of predictive intelligence from MPC and robust execution from SMC makes the proposed controller a highly effective solution for enabling quadrotor drones to perform reliable and precise autonomous missions in challenging, real-world environments.

Scroll to Top