The flight control of a quadrotor drone presents significant challenges due to its inherent characteristics as an underactuated, strongly coupled, and highly nonlinear system. Its sensitivity to both internal model uncertainties and external environmental disturbances further complicates the design of a robust and high-performance controller. Traditional control methods, such as Proportional-Integral-Derivative (PID) control, often struggle with these complexities, leading to compromised performance in terms of response speed, disturbance rejection, and decoupling capability. This work addresses these challenges by designing a cascade control structure. In this system, the outer loop, responsible for position control, employs a standard Linear Active Disturbance Rejection Controller (LADRC). The inner loop, which manages the critical attitude dynamics, utilizes an improved version of LADRC enhanced with a Levant differentiator. The performance of the designed controller is rigorously evaluated through numerical simulations and compared against both standard LADRC and classical PID controllers. The results demonstrate that the proposed control strategy effectively decouples the system channels, accurately estimates and compensates for total disturbances, and consequently, exhibits superior anti-interference capability and robustness, making it highly suitable for the dynamic and often unpredictable flight environments encountered by a quadrotor drone.

The dynamic behavior of a quadrotor drone is governed by a set of nonlinear equations derived from Newton-Euler mechanics. We define two coordinate frames: the Earth-fixed inertial frame \(E(O_{E}X_{E}Y_{E}Z_{E})\) and the body-fixed frame \(B(o_{b}x_{b}y_{b}z_{b})\) attached to the center of mass of the drone. The attitude of the quadrotor drone is described by the Euler angles: roll (\(\phi\)), pitch (\(\theta\)), and yaw (\(\psi\)). The rotation matrix \(\mathbf{R}\) from the body frame to the inertial frame is given by:
$$ \mathbf{R} = \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} $$
where \(s_{(\cdot)}\) and \(c_{(\cdot)}\) denote \(\sin(\cdot)\) and \(\cos(\cdot)\), respectively. Assuming low-speed flight and neglecting aerodynamic drag effects for controller design purposes, the simplified translational and rotational dynamics of the quadrotor drone are:
$$
\begin{aligned}
\ddot{x} &= (c_\phi s_\theta c_\psi + s_\phi s_\psi)\frac{U_1}{m} + \Delta_x \\
\ddot{y} &= (c_\phi s_\theta s_\psi – s_\phi c_\psi)\frac{U_1}{m} + \Delta_y \\
\ddot{z} &= (c_\phi c_\theta)\frac{U_1}{m} – g + \Delta_z \\
\ddot{\phi} &= \dot{\theta}\dot{\psi}\left(\frac{I_y – I_z}{I_x}\right) + \frac{l}{I_x \sqrt{2}} U_2 + \Delta_\phi \\
\ddot{\theta} &= \dot{\phi}\dot{\psi}\left(\frac{I_z – I_x}{I_y}\right) + \frac{l}{I_y \sqrt{2}} U_3 + \Delta_\theta \\
\ddot{\psi} &= \dot{\phi}\dot{\theta}\left(\frac{I_x – I_y}{I_z}\right) + \frac{l}{I_z} U_4 + \Delta_\psi
\end{aligned}
$$
Here, \( (x, y, z) \) represent the position coordinates, \( m \) is the mass, \( g \) is gravitational acceleration, \( l \) is the arm length from the center to a motor, and \( I_x, I_y, I_z \) are the moments of inertia. The terms \( \Delta_i \) represent unmodeled dynamics and external disturbances for each channel. The control inputs \( U_1 \) to \( U_4 \) are derived from the squared rotational speeds of the four motors (\( \Omega_i^2 \)):
$$
\begin{aligned}
U_1 &= k_f (\Omega_1^2 + \Omega_2^2 + \Omega_3^2 + \Omega_4^2) \\
U_2 &= k_f (-\Omega_1^2 + \Omega_2^2 + \Omega_3^2 – \Omega_4^2) \\
U_3 &= k_f (-\Omega_1^2 + \Omega_2^2 – \Omega_3^2 + \Omega_4^2) \\
U_4 &= k_\tau (\Omega_1^2 + \Omega_2^2 – \Omega_3^2 – \Omega_4^2)
\end{aligned}
$$
where \( k_f \) and \( k_\tau \) are the thrust and torque coefficients, respectively. A key challenge in controlling a quadrotor drone is the underactuation: there are only four control inputs (\(U_1, U_2, U_3, U_4\)) to control six outputs (\(x, y, z, \phi, \theta, \psi\)). Furthermore, the rotational dynamics are cross-coupled through terms like \( \dot{\theta}\dot{\psi} \).
| Symbol | Description |
|---|---|
| \(x, y, z\) | Position coordinates in the inertial frame |
| \(\phi, \theta, \psi\) | Roll, Pitch, and Yaw angles (Euler angles) |
| \(U_1\) | Total thrust control input |
| \(U_2, U_3, U_4\) | Roll, Pitch, and Yaw moment control inputs |
| \(m, g, l\) | Mass, gravity, and arm length |
| \(I_x, I_y, I_z\) | Moments of inertia |
| \(\Delta_i\) | Lumped disturbance for each channel |
The core philosophy of Active Disturbance Rejection Control (ADRC) is to treat all unknown dynamics, model uncertainties, and external disturbances as a “total disturbance,” estimate it in real-time using an Extended State Observer (ESO), and actively cancel it within the control law. This approach is exceptionally well-suited for a system like the quadrotor drone. Linear ADRC (LADRC) simplifies the parameter tuning by using linear gains. For a second-order system like each channel of the quadrotor drone, the standard LADRC form is considered. The general form of a perturbed second-order system is:
$$ \ddot{y} = f(y, \dot{y}, w(t)) + b u $$
where \(f(\cdot)\) encapsulates internal nonlinearities/coupling and external disturbances \(w(t)\), and \(b\) is a known control gain. By defining an extended state \(x_3 = f(\cdot)\), the system is transformed into a canonical form:
$$
\begin{aligned}
\dot{x}_1 &= x_2 \\
\dot{x}_2 &= x_3 + b u \\
\dot{x}_3 &= h(t) \\
y &= x_1
\end{aligned}
$$
A Linear Extended State Observer (LESO) is designed to estimate \(x_1\), \(x_2\), and the extended state \(x_3\) (the total disturbance):
$$
\begin{aligned}
e &= z_1 – y \\
\dot{z}_1 &= z_2 – \beta_{01} e \\
\dot{z}_2 &= z_3 – \beta_{02} e + b_0 u \\
\dot{z}_3 &= -\beta_{03} e
\end{aligned}
$$
Here, \(z_1\), \(z_2\), and \(z_3\) are the estimates of \(x_1\), \(x_2\), and \(x_3\) respectively. The observer gains are parameterized as \([\beta_{01}, \beta_{02}, \beta_{03}]^T = [3\omega_o, 3\omega_o^2, \omega_o^3]^T\), where \(\omega_o\) is the observer bandwidth. The control law is then designed to simplify the plant to a pure double-integrator:
$$ u = \frac{u_0 – z_3}{b_0} $$
where \(b_0 \approx b\) is the estimated control gain, and \(u_0\) is a simple feedback controller, typically a Proportional-Derivative (PD) controller: \(u_0 = k_p(r – z_1) – k_d z_2\). The gains can be set as \(k_p = \omega_c^2\) and \(k_d = 2\omega_c\), where \(\omega_c\) is the controller bandwidth.
For the position control loop (outer loop) of the quadrotor drone, the standard LADRC described above is applied. Each translational channel (\(x\), \(y\), \(z\)) is treated as a second-order system with total disturbance. For instance, the \(x\)-channel model from the dynamics can be rewritten as:
$$ \ddot{x} = f_x(\cdot) + b_x u_x + \Delta_x, \quad \text{where } b_x = \frac{1}{m} $$
Here, \(u_x\) is a virtual control input related to the actual total thrust \(U_1\) and desired angles. An LESO is constructed for this channel to estimate the position, velocity, and the lumped term \(f_x(\cdot) + \Delta_x\). The control law \(u_x\) is computed as:
$$ u_x = \frac{\omega_c^2 (x_d – z_{1,x}) – 2\omega_c z_{2,x} – z_{3,x}}{b_{0,x}} $$
The virtual controls \(u_x\), \(u_y\), and the altitude control \(u_z\) are then transformed into the actual thrust command \(U_1\) and the desired roll (\(\phi_d\)) and pitch (\(\theta_d\)) angles for the inner loop, given a desired yaw angle \(\psi_d\):
$$
\begin{aligned}
U_1 &= \frac{u_z}{c_{\phi_d} c_{\theta_d}} \\
\theta_d &= \arctan\left(\frac{u_x c_{\psi_d} + u_y s_{\psi_d}}{u_z}\right) \\
\phi_d &= \arctan\left(\frac{c_{\theta_d}(u_x s_{\psi_d} – u_y c_{\psi_d})}{u_z}\right)
\end{aligned}
$$
For the attitude control loop (inner loop), which requires faster and more accurate tracking, an Improved LADRC (ILADRC) is proposed. The enhancement involves adding a Levant differentiator (also known as a robust exact differentiator) to pre-process the reference command. This provides a smooth, noise-tolerant reference signal and its derivative, improving transient performance and reducing overshoot. The Levant differentiator for a command \(r(t)\) is:
$$
\begin{aligned}
\dot{\xi}_1 &= \xi_2 \\
\dot{\xi}_2 &= -\alpha \cdot \text{sign}(\xi_1 – r + \frac{\xi_2 |\xi_2|}{2\lambda})
\end{aligned}
$$
where \(\xi_1\) tracks \(r(t)\) and \(\xi_2\) tracks \(\dot{r}(t)\). The parameters \(\alpha\) and \(\lambda\) are positive gains. The structure of the ILADRC for the attitude loop (e.g., roll channel) is as follows. The plant model is \(\ddot{\phi} = f_\phi(\cdot) + b_\phi U_2\). The reference command \(\phi_d\) is first processed by the Levant differentiator to produce a smoothed reference \(\xi_1\) and its derivative \(\xi_2\). The LESO estimates the actual state and disturbance \((z_1, z_2, z_3)\). The control law for the roll channel then becomes:
$$ U_2 = \frac{\omega_c^2 (\xi_1 – z_1) + 2\omega_c (\xi_2 – z_2) – z_3}{b_{0,\phi}} $$
This structure allows the inner loop to more aggressively track smoothed reference commands from the outer loop while maintaining robust disturbance rejection.
| Control Loop | Controller Type | Key Components | Purpose |
|---|---|---|---|
| Position (x, y, z) | Standard LADRC | LESO, Linear PD Feedback | Track desired trajectory, reject external forces (e.g., wind). |
| Attitude (\(\phi, \theta, \psi\)) | Improved LADRC (ILADRC) | Levant Differentiator, LESO, Linear PD Feedback | Fast and accurate tracking of desired angles, reject moments and model coupling. |
To validate the proposed control scheme for the quadrotor drone, comprehensive numerical simulations were conducted in MATLAB/Simulink. The physical parameters of the simulated quadrotor drone are listed below. Three controllers were compared: the proposed cascade controller (Position LADRC + Attitude ILADRC), a cascade controller using standard LADRC for both loops, and a classical cascade PID controller.
Simulation Parameters:
Mass \(m = 1.5\,\text{kg}\), Arm length \(l = 0.25\,\text{m}\),
Inertias \(I_x = 0.01367\), \(I_y = 0.01337\), \(I_z = 0.02409\,\text{kg·m}^2\),
Thrust coefficient \(k_f = 3.13 \times 10^{-7}\,\text{N·s}^2\), Torque coefficient \(k_\tau = 1.12 \times 10^{-7}\,\text{N·m·s}^2\).
Attitude Control Test: The attitude loop was commanded to track a square wave in roll, a sine wave in pitch, and a step in yaw. A slow-time-varying disturbance moment \(M_d = [2\sin(t), 2\cos(t), 2\sin(t)]^T\) Nm was applied, with an additional impulse disturbance of 4 Nm at t=8s. The tracking performance and error are critical metrics for a quadrotor drone’s stability.
The results clearly demonstrate the superiority of ADRC-based methods. Both LADRC and ILADRC showed significantly faster response and smaller overshoot at reference transitions compared to PID. More importantly, in the presence of continuous and impulse disturbances, the PID controller exhibited large and sustained tracking errors (up to ±2° in roll/pitch, ±6° in yaw). In contrast, both LADRC and ILADRC maintained errors within ±1°, effectively rejecting the disturbances. The ILADRC showed the smallest error and least deviation during the impulse, benefiting from the smoothed reference provided by the Levant differentiator.
Position Control Test: The quadrotor drone was commanded to follow a climbing helical trajectory: \(X_d = 2\sin(0.5t)\) m, \(Y_d = 2\cos(0.5t)\) m, \(Z_d = 2t\) m. Disturbances were applied to both loops: a sinusoidal moment \(M_d = [0.1\sin(t), 0.1\cos(t), 0.1\sin(t)]^T\) Nm on the attitude, and forces \(F_d = [3\sin(t), 3\cos(t), (5-0.3t)]^T\) N on the position channels (simulating wind and weight change).
The position tracking results further validated the robustness of the LADRC-based control. While the PID controller struggled with significant steady-state errors (up to ±0.2 m in XY-plane) and poor response to the linearly changing weight in the Z-direction, both LADRC and ILADRC achieved precise tracking. The XY-position errors for LADRC and ILADRC were bounded within ±0.04 m, and the altitude error converged to near zero after a brief transient. The performance of LADRC and ILADRC in the position loop was nearly identical, suggesting that for smoothly varying position commands, the standard LADRC is sufficient and more parameter-efficient.
| Performance Aspect | PID Control | Standard LADRC | Proposed ILADRC (Attitude) |
|---|---|---|---|
| Response Speed | Slow | Fast | Fastest |
| Overshoot | Large | Small | Smallest |
| Steady-state Error under Disturbance | Large | Very Small | Very Small |
| Disturbance Rejection (Impulse) | Poor (Large deviation) | Good (Small deviation) | Excellent (Smallest deviation) |
| Parameter Tuning Complexity | Moderate | Low (Bandwidth-based) | Moderate (Extra differentiator params) |
In this work, a robust flight control system for a quadrotor drone was designed using Linear Active Disturbance Rejection Control technology. A cascade structure was implemented, featuring a standard LADRC for the position loop and an Improved LADRC (incorporating a Levant differentiator) for the critical attitude loop. The simulation studies conclusively demonstrate that the proposed controller effectively addresses the core challenges of quadrotor drone control: nonlinearity, coupling, and sensitivity to disturbances. The LESO successfully estimates and compensates for the total disturbance in each channel, achieving effective decoupling. Compared to a classical PID controller, the LADRC-based methods show dramatically improved dynamic response, accuracy, and disturbance rejection. The ILADRC for the attitude loop provides the best transient performance, making it ideal for the inner loop which requires the highest bandwidth. For the position loop, which typically follows smoother trajectories, the standard LADRC offers an excellent balance of performance and tuning simplicity. This control strategy presents a practical and powerful solution for enhancing the autonomy and reliability of quadrotor drones in real-world applications.
The fundamental control law for each channel using LADRC can be summarized by the following equation, which encapsulates the disturbance estimation and cancellation:
$$ u = \frac{\omega_c^2 (r – \hat{y}) – 2\omega_c \hat{\dot{y}} – \hat{f}_{total}}{b_0} $$
Where \(r\) is the reference signal, \(\hat{y}\) and \(\hat{\dot{y}}\) are the estimated output and its derivative, and \(\hat{f}_{total}\) is the estimated total disturbance. This elegant formulation is key to the robust performance of the quadrotor drone control system, transforming a complex, uncertain plant into a simple, manageable double-integrator for the controller to regulate.
