In recent years, quadrotor drones have gained widespread attention due to their versatility in applications such as surveillance, mapping, and communication. However, controlling these drones poses significant challenges because of their nonlinear dynamics, strong coupling, underactuation, and sensitivity to external disturbances. Traditional control methods like PID often fall short in achieving high precision and robustness. Therefore, advanced control strategies are essential. In this article, we propose a novel control scheme combining backstepping sliding mode control with active disturbance rejection control (BSMC-ADRC) for attitude stabilization and trajectory tracking of quadrotor drones. This approach aims to enhance response speed, tracking accuracy, and disturbance rejection capabilities. We begin by establishing the dynamic model of the quadrotor drone, followed by controller design, stability analysis, and simulation experiments to validate the effectiveness of our method.

The quadrotor drone is a multi-rotor unmanned aerial vehicle capable of vertical take-off and landing. Its dynamic model is derived under assumptions of rigidity and symmetry, with the center of gravity coinciding with the body frame origin. We define the body frame as \( [x_b, y_b, z_b] \) and the earth frame as \( [x_e, y_e, z_e] \). The quadrotor drone has six degrees of freedom: three positional variables \((x, y, z)\) and three Euler angles \((\phi, \theta, \psi)\), representing roll, pitch, and yaw, respectively. The dynamics are governed by the following equations:
$$
\begin{cases}
\dot{x} = \frac{U_1}{m}(\cos \phi \sin \theta \cos \psi + \sin \phi \sin \psi) \\
\dot{y} = \frac{U_1}{m}(\cos \phi \sin \theta \sin \psi – \sin \phi \cos \psi) \\
\dot{z} = \frac{U_1}{m}\cos \phi \cos \theta – g \\
\dot{\phi} = \frac{I_y – I_z}{I_x} \dot{\theta} \dot{\psi} + \frac{l U_2}{I_x} \\
\dot{\theta} = \frac{I_z – I_x}{I_y} \dot{\phi} \dot{\psi} + \frac{l U_3}{I_y} \\
\dot{\psi} = \frac{I_x – I_y}{I_z} \dot{\phi} \dot{\theta} + \frac{l U_4}{I_z}
\end{cases}
$$
Here, \(U_1, U_2, U_3, U_4\) are virtual control inputs, \(m\) is the mass, \(g\) is gravitational acceleration, \(l\) is the arm length, and \(I_x, I_y, I_z\) are moments of inertia. The quadrotor drone is underactuated with four inputs and six outputs. To simplify controller design, we introduce virtual control variables \(U_x, U_y, U_z\) to decouple the system into a fully actuated model:
$$
\begin{cases}
U_x = \frac{U_1}{m}(\cos \phi \sin \theta \cos \psi + \sin \phi \sin \psi) \\
U_y = \frac{U_1}{m}(\cos \phi \sin \theta \sin \psi – \sin \phi \cos \psi) \\
U_z = \frac{U_1}{m}\cos \phi \cos \theta
\end{cases}
$$
This transformation allows for independent control of position and attitude loops. The parameters for the quadrotor drone are summarized in Table 1.
| Parameter | Value |
|---|---|
| Mass \(m\) | 0.9 kg |
| Gravity \(g\) | 9.8 m/s² |
| Arm length \(l\) | 0.175 m |
| Moment of inertia \(I_x\) | 8.276 × 10⁻³ kg·m² |
| Moment of inertia \(I_y\) | 8.276 × 10⁻³ kg·m² |
| Moment of inertia \(I_z\) | 1.612 × 10⁻² kg·m² |
For attitude control of the quadrotor drone, we design a BSMC-ADRC controller, which integrates a tracking differentiator (TD), an extended state observer (ESO), and a backstepping sliding mode control (BSMC) law. The TD smooths the reference signal and provides its derivative, essential for robust tracking. For the roll channel, let \(x_1 = \phi\) and \(x_2 = \dot{\phi}\). The dynamics can be expressed as:
$$
\begin{cases}
\dot{x}_1 = x_2 \\
\dot{x}_2 = f(\cdot) + b U_2
\end{cases}
$$
where \(f(\cdot)\) represents the total disturbance including model uncertainties, couplings, and external disturbances, and \(b\) is a compensation coefficient. The TD is designed as:
$$
\begin{cases}
\dot{v}_1 = v_2 \\
\dot{v}_2 = \text{fhan}(v_1 – \phi_d, v_2, r, h)
\end{cases}
$$
Here, \(\phi_d\) is the desired roll angle, \(v_1\) and \(v_2\) are the tracking signal and its derivative, and \(\text{fhan}\) is a optimal control synthesis function. The ESO estimates the total disturbance in real-time. By extending the state variable \(x_3 = f(\cdot)\), the system becomes:
$$
\begin{cases}
\dot{x}_1 = x_2 \\
\dot{x}_2 = x_3 + b U_2 \\
\dot{x}_3 = \dot{f}(\cdot) \\
y = x_1
\end{cases}
$$
The ESO is constructed as:
$$
\begin{cases}
e_\phi = z_1 – y \\
\dot{z}_1 = z_2 – \beta_{01} \text{fal}(e_\phi, 0.5, \delta) \\
\dot{z}_2 = z_3 – \beta_{02} \text{fal}(e_\phi, 0.25, \delta) + b U_2 \\
\dot{z}_3 = -\beta_{03} \text{fal}(e_\phi, 0.125, \delta)
\end{cases}
$$
where \(z_1, z_2, z_3\) are estimates of \(x_1, x_2, x_3\), \(\beta_{01}, \beta_{02}, \beta_{03}\) are gains, and \(\text{fal}\) is a nonlinear function defined as:
$$
\text{fal}(x, \alpha, \delta) =
\begin{cases}
\frac{x}{\delta^{1-\alpha}}, & |x| \leq \delta \\
|x|^\alpha \text{sign}(x), & |x| > \delta
\end{cases}
$$
The control law for the quadrotor drone is designed using backstepping sliding mode control. Define the tracking error \(e_1 = v_1 – x_1\) and its derivative \(\dot{e}_1 = v_2 – x_2\). Choose a Lyapunov function \(V_1 = \frac{1}{2} e_1^2\). To stabilize the first subsystem, we introduce a virtual control \(\alpha_1 = c_1 e_1 + v_2\), where \(c_1 > 0\). Then, define the sliding surface \(s = e_2 = \alpha_1 – x_2\). Using a fast power-reaching law:
$$
\dot{s} = -k_1 s – k_2 |s|^{\zeta_1} \text{sign}(s) – k_3 |s|^{\zeta_2} \text{sign}(s)
$$
with \(0 < \zeta_1 < 1\), \(1 < \zeta_2 < 2\), and \(k_1, k_2, k_3 > 0\). The control input \(U_2\) is derived as:
$$
U_2 = \frac{1}{b} \left[ c_1 \dot{e}_1 + \dot{v}_2 + k_1 s + k_2 |s|^{\zeta_1} \text{sign}(s) + k_3 |s|^{\zeta_2} \text{sign}(s) – z_3 \right]
$$
where \(z_3\) is the estimated disturbance from ESO. Similar designs apply to pitch and yaw channels for the quadrotor drone. For position control, we use BSMC without ADRC to simplify tuning. The altitude channel uses BSMC-ADRC, while horizontal channels (\(x\) and \(y\)) use BSMC. Define errors for position tracking, and follow a similar backstepping sliding mode procedure to derive control laws \(U_x\) and \(U_y\). The virtual controls \(U_x\) and \(U_y\) are then used to compute desired attitudes via inverse kinematics:
$$
\phi_d = \arctan\left( \frac{U_x \cos \psi_d + U_y \sin \psi_d}{U_z} \right), \quad \theta_d = \arctan\left( \frac{U_x \sin \psi_d – U_y \cos \psi_d}{U_z} \right)
$$
Stability of the quadrotor drone control system is proven using Lyapunov-like lemma. For the attitude controller, consider the Lyapunov function \(V = \frac{1}{2} e_1^2 + \frac{1}{2} s^2\). Its derivative yields:
$$
\dot{V} = -c_1 e_1^2 – k_1 s^2 – k_2 |s|^{\zeta_1+1} – k_3 |s|^{\zeta_2+1} \leq 0
$$
ensuring asymptotic stability. For position control, a similar analysis holds. The matrix conditions for positive definiteness are satisfied with appropriate parameter choices, guaranteeing that the quadrotor drone system converges to the desired trajectory.
We conduct simulation experiments in MATLAB/Simulink to evaluate the performance of BSMC-ADRC for the quadrotor drone. The simulations include attitude stability tests, disturbance rejection, and trajectory tracking. Comparative studies with ADRC, Backstepping, and IBS-ADRC controllers are performed. For attitude stability, the quadrotor drone starts from initial angles \((0,0,0)\) with step commands of magnitude 1. The response times are summarized in Table 2.
| Control Scheme | Roll (s) | Pitch (s) | Yaw (s) |
|---|---|---|---|
| ADRC | 0.55 | 0.60 | 0.50 |
| Backstepping | 0.30 | 0.30 | 0.35 |
| IBS-ADRC | 0.20 | 0.25 | 0.16 |
| BSMC-ADRC | 0.06 | 0.08 | 0.04 |
BSMC-ADRC shows the fastest response with no overshoot. For disturbance rejection, we introduce sinusoidal and pulse disturbances during flight. Under continuous sinusoidal disturbance (amplitude 4, period 0.4s) from 2s to 6s, the quadrotor drone with BSMC-ADRC exhibits minimal deviation within \(\pm 0.002\), while Backstepping oscillates within \(\pm 0.03\), ADRC within \(\pm 0.015\), and IBS-ADRC within \(\pm 0.008\). Under a pulse disturbance at 10s (amplitude 4, duration 0.5s), BSMC-ADRC remains nearly unaffected, whereas other controllers show slight fluctuations. Additionally, with white noise added to feedback channels, BSMC-ADRC demonstrates superior noise suppression, crucial for real-world applications of quadrotor drones.
Trajectory tracking tests for the quadrotor drone involve a predefined path: starting from \((0,0,0)\), ascending to 1m, moving through coordinates \((1,1,1)\), \((0.5,1,1)\), \((0.5,0.5,1)\), \((0.5,1,1)\), and returning to \((1,1,0)\), with yaw fixed at 0. The BSMC-ADRC and BSMC controllers enable rapid ascent and precise tracking. When white noise (amplitude 0.0001, sample time 0.05s) is added to simulate wind disturbances, the quadrotor drone maintains tracking with low error. The mean squared errors (MSE) for position tracking are given in Table 3.
| Controller | X-channel MSE | Y-channel MSE |
|---|---|---|
| Backstepping | 0.000535 | 0.000367 |
| BSMC | 0.0000749 | 0.0000749 |
The BSMC controller, combined with BSMC-ADRC for attitude, shows significantly lower errors, highlighting the robustness of our approach for quadrotor drones in noisy environments.
In conclusion, we have developed a BSMC-ADRC control scheme for quadrotor drones to address challenges in attitude stabilization and trajectory tracking. By integrating active disturbance rejection with backstepping sliding mode control, the quadrotor drone achieves fast response, high precision, and strong disturbance rejection. Simulation results confirm that BSMC-ADRC outperforms traditional methods like ADRC, Backstepping, and IBS-ADRC in terms of response speed, tracking accuracy, and robustness against various disturbances. This makes BSMC-ADRC a promising solution for real-world applications of quadrotor drones, where reliability and performance are critical. Future work may involve hardware implementation and optimization for specific quadrotor drone platforms.
