In recent years, the quadrotor drone has found extensive applications in both military and civilian fields, becoming a focal point of research. Its simple mechanical structure, high agility, and capabilities such as vertical take-off and landing (VTOL) and stationary hovering make it an attractive platform. However, controlling a quadrotor drone presents significant challenges. The system has six outputs—three positional coordinates and three Euler angles—but only four control inputs from its motors. This underactuated nature, coupled with inherent nonlinearities, strong inter-axis coupling, and susceptibility to various internal and external disturbances, makes the design of its control system a complex task requiring sophisticated solutions.
To address these control challenges, the Proportional-Integral-Derivative (PID) controller has been the most widely adopted method globally, prized for its simplicity and model-independent nature. However, its robustness is often limited, leading to suboptimal performance in the face of the quadrotor drone’s complexities. Advancements in modern control theory have introduced more advanced controllers like backstepping control and adaptive control. While powerful, these methods often rely on an accurate mathematical model of the system. For a quadrotor drone, which is a tightly coupled system with numerous unmodeled dynamics and high sensitivity to external winds and payload variations, obtaining such a precise model is difficult. Some approaches, like using neural networks to tune PID parameters online, have shown promise for tracking control but introduce algorithmic complexity and parameter redundancy, hindering practical engineering implementation.
Active Disturbance Rejection Control (ADRC), pioneered by researcher Han Jingqing, offers a compelling alternative. It inherits the model-free advantage of PID control while incorporating concepts from modern control theory. The core idea of ADRC is to treat the totality of internal uncertainties, unmodeled dynamics, and external disturbances as a generalized, or “total,” disturbance. This disturbance is then estimated in real-time by an Extended State Observer (ESO) and actively canceled from the control signal, rendering the plant into a simpler, cascaded integral form. This approach results in a controller with high precision, minimal overshoot, and exceptional disturbance rejection, making it highly suitable for engineering applications like quadrotor drone control.
This paper proposes a novel control strategy for a quadrotor drone that synthesizes fuzzy PID control and ADRC technology to tackle the intertwined problems of strong coupling and disturbance sensitivity. The outer-loop position controller employs a fuzzy PID scheme to ensure adaptability and tracking accuracy, while the inner-loop attitude controller utilizes nonlinear ADRC to achieve robust, decoupled control of the Euler angles. Simulation results demonstrate that the proposed control system significantly enhances the trajectory tracking performance and robustness of the quadrotor drone compared to conventional methods.

1. Mathematical Modeling of the Quadrotor Drone
The quadrotor drone consists of a rigid cross-frame with four rotors placed at the ends. Two common configurations exist: the “+” configuration and the “X” configuration. For this study, the “X” configuration is adopted, as it offers certain advantages in control allocation and agility. To derive a tractable dynamic model, standard assumptions are made: the quadrotor drone is a rigid and symmetrical body, and the origins of the body-fixed frame and the inertial frame coincide at the start of analysis.
The translational dynamics of the quadrotor drone in the inertial frame are governed by:
$$
\begin{aligned}
m\ddot{x} &= (\cos\phi \sin\theta \cos\psi + \sin\phi \sin\psi) U_1 \\
m\ddot{y} &= (\cos\phi \sin\theta \sin\psi – \sin\phi \cos\psi) U_1 \\
m\ddot{z} &= (\cos\phi \cos\theta) U_1 – mg
\end{aligned}
$$
Here, \(m\) is the mass of the vehicle, \(g\) is gravitational acceleration, \((x, y, z)\) are the inertial position coordinates, and \((\phi, \theta, \psi)\) are the roll, pitch, and yaw angles, respectively. \(U_1\) is the total thrust control input along the body’s z-axis.
The rotational dynamics, derived using the Newton-Euler formulation, are:
$$
\begin{aligned}
I_{xx}\ddot{\phi} &= \dot{\theta}\dot{\psi}(I_{yy} – I_{zz}) + J_r \dot{\theta} \Omega_r + l U_2 \\
I_{yy}\ddot{\theta} &= \dot{\phi}\dot{\psi}(I_{zz} – I_{xx}) – J_r \dot{\phi} \Omega_r + l U_3 \\
I_{zz}\ddot{\psi} &= \dot{\phi}\dot{\theta}(I_{xx} – I_{yy}) + U_4
\end{aligned}
$$
where \(I_{xx}, I_{yy}, I_{zz}\) are the moments of inertia, \(l\) is the arm length from the center to a motor, \(J_r\) is the rotor inertia, and \(\Omega_r = -\Omega_1 + \Omega_2 – \Omega_3 + \Omega_4\) is the residual propeller angular speed. The control inputs \(U_1, U_2, U_3, U_4\) are related to the squared rotational speeds of the four motors \(\Omega_i^2\) by:
$$
\begin{bmatrix}
U_1 \\ U_2 \\ U_3 \\ U_4
\end{bmatrix}
=
\begin{bmatrix}
b & b & b & b \\
0 & -lb & 0 & lb \\
-lb & 0 & lb & 0 \\
d & -d & d & -d
\end{bmatrix}
\begin{bmatrix}
\Omega_1^2 \\ \Omega_2^2 \\ \Omega_3^2 \\ \Omega_4^2
\end{bmatrix}
$$
where \(b\) is the thrust coefficient and \(d\) is the drag coefficient. This matrix defines the mixing logic that transforms the high-level control commands into individual motor signals for the quadrotor drone.
2. Theoretical Foundations of the Control Techniques
2.1 Active Disturbance Rejection Control (ADRC)
The ADRC framework is a significant evolution from classical PID, designed to overcome its key limitations. A standard second-order ADRC consists of three main components: a Tracking Differentiator (TD), an Extended State Observer (ESO), and a Nonlinear State Error Feedback (NLSEF) law.
Tracking Differentiator (TD): The TD provides a smooth transient profile for a potentially discontinuous setpoint signal \(v_0(t)\) and extracts its generalized derivative. It mitigates the inherent conflict between fast response and overshoot in PID control. A discrete-time implementation using the fastest control synthesis function is:
$$
\begin{aligned}
\text{fh} &= fhan(v_1(k)-v_0(k), v_2(k), r_0, h_0) \\
v_1(k+1) &= v_1(k) + h \cdot v_2(k) \\
v_2(k+1) &= v_2(k) + h \cdot \text{fh}
\end{aligned}
$$
where \(v_1\) tracks \(v_0\), \(v_2\) is its approximate derivative, \(r_0\) is the speed factor determining the convergence rate, \(h_0\) is the filtering factor, and \(h\) is the sampling time. The nonlinear function \(fhan(x_1, x_2, r, h)\) is defined as:
$$
\begin{aligned}
d &= rh^2, \; a_0 = hx_2, \; y = x_1 + a_0 \\
a_1 &= \sqrt{d(d+8|y|)}, \; a_2 = a_0 + \text{sign}(y)(a_1-d)/2 \\
s_y &= (\text{sign}(y+d) – \text{sign}(y-d))/2 \\
a &= (a_0+y-a_2)s_y + a_2 \\
s_a &= (\text{sign}(a+d) – \text{sign}(a-d))/2 \\
fhan &= -r\left(\frac{a}{d} – \text{sign}(a)\right)s_a – r\ \text{sign}(a)
\end{aligned}
$$
Extended State Observer (ESO): The ESO is the core of ADRC’s disturbance rejection capability. For a second-order system approximated as \(\ddot{y} = f(y, \dot{y}, w, t) + b_0 u\), where \(f(\cdot)\) encapsulates all unknown dynamics and disturbances and \(b_0\) is a rough estimate of the control gain, the ESO expands the state vector to include this total disturbance as an additional state \(x_3 = f(\cdot)\). A discrete nonlinear ESO can be formulated as:
$$
\begin{aligned}
e &= z_1(k) – y(k) \\
z_1(k+1) &= z_1(k) + h(z_2(k) – \beta_{01} e) \\
z_2(k+1) &= z_2(k) + h(z_3(k) – \beta_{02} fal(e, \alpha_1, \delta) + b_0 u(k)) \\
z_3(k+1) &= z_3(k) – h \beta_{03} fal(e, \alpha_2, \delta)
\end{aligned}
$$
Here, \(z_1\) and \(z_2\) estimate the system output \(y\) and its derivative \(\dot{y}\), respectively, while \(z_3\) estimates the total disturbance \(x_3\). \(\beta_{01}, \beta_{02}, \beta_{03}\) are observer gains. The nonlinear function \(fal(e, \alpha, \delta)\) provides efficient error feedback for small errors and is defined as:
$$
fal(e, \alpha, \delta) =
\begin{cases}
|e|^\alpha \text{sign}(e), & |e| > \delta \\
e / \delta^{1-\alpha}, & |e| \le \delta
\end{cases}
$$
Nonlinear State Error Feedback (NLSEF): The NLSEF combines the tracking errors from the TD and the state estimates from the ESO to produce a preliminary control law. Unlike the linear combination in PID, it uses a nonlinear gain structure (“small error, large gain; large error, small gain”). For a second-order system:
$$
\begin{aligned}
e_1 &= v_1(k) – z_1(k) \\
e_2 &= v_2(k) – z_2(k) \\
u_0 &= \beta_1 fal(e_1, \alpha_1, \delta) + \beta_2 fal(e_2, \alpha_2, \delta)
\end{aligned}
$$
Finally, the estimated total disturbance is actively compensated for, yielding the final control signal applied to the plant:
$$
u(k) = \frac{u_0 – z_3(k)}{b_0}
$$
This compensation effectively linearizes the plant, simplifying the control problem for the quadrotor drone.
2.2 Fuzzy PID Control
Fuzzy logic control provides a systematic method for incorporating expert knowledge and handling system nonlinearities without a precise model. A fuzzy PID controller dynamically adjusts the proportional (\(K_p\)), integral (\(K_i\)), and derivative (\(K_d\)) gains based on the error \(e\) and its rate of change \(\Delta e\).
The structure involves three stages:
- Fuzzification: The crisp inputs \(e\) and \(\Delta e\) are mapped to linguistic fuzzy sets (e.g., Negative Big (NB), Zero (ZO), Positive Big (PB)) using predefined membership functions (MFs). Gaussian MFs are often chosen for inputs for smoothness.
- Fuzzy Inference: A set of IF-THEN rules, formulated as “If \(e\) is A and \(\Delta e\) is B, then \(\Delta K_p\) is C, \(\Delta K_i\) is D, and \(\Delta K_d\) is E,” defines the control strategy. The Mamdani inference method is commonly used.
- Defuzzification: The fuzzy outputs for the gain adjustments (\(\Delta K_p, \Delta K_i, \Delta K_d\)) are converted back into crisp values. The Center of Gravity (COG) method is a standard choice for this process.
The real-time PID gains are then calculated as \(K_p = K_{p0} + \Delta K_p\), \(K_i = K_{i0} + \Delta K_i\), \(K_d = K_{d0} + \Delta K_d\), where the subscript ‘0’ denotes initial baseline values. This adaptive mechanism allows the controller to respond effectively to varying operating conditions of the quadrotor drone.
3. Controller Design for the Quadrotor Drone
The overall control architecture for the quadrotor drone employs a cascaded structure. The outer loop controls position (\(x, y, z\)), and the inner loop controls attitude (\(\phi, \theta, \psi\)). This is a natural choice because the attitude dynamics are significantly faster than the translational dynamics. The position controller generates desired roll and pitch angles (\(\phi_d, \theta_d\)) and a collective thrust command, which become the setpoints for the inner-loop attitude controller. The attitude controller then generates the moments (\(U_2, U_3, U_4\)) to achieve these angles.
Given the underactuated nature of the quadrotor drone, specific pairings are established:
- The altitude \(z\) is controlled directly by the total thrust \(U_1\) via a fuzzy PID controller.
- The yaw angle \(\psi\) is controlled by \(U_4\) via an ADRC.
- The \(x\)-position and the pitch angle \(\theta\) form one cascaded channel: a fuzzy PID outer loop for \(x\) outputs \(\theta_d\) to an ADRC inner loop for \(\theta\), which commands \(U_3\).
- The \(y\)-position and the roll angle \(\phi\) form an identical cascaded channel: fuzzy PID for \(y\) outputs \(\phi_d\) to ADRC for \(\phi\), which commands \(U_2\).
This design leverages the robustness of ADRC for the fast, coupled, and disturbance-prone attitude dynamics, while utilizing the adaptability of fuzzy PID for the slower position tracking loop.
3.1 Attitude Loop ADRC Design (Pitch Channel Example)
Considering the pitch dynamics from the earlier model:
$$ I_{yy}\ddot{\theta} = \dot{\phi}\dot{\psi}(I_{zz} – I_{xx}) – J_r \dot{\phi} \Omega_r + l U_3 $$
We can rewrite this as:
$$ \ddot{\theta} = f_\theta(\phi, \dot{\phi}, \psi, \dot{\psi}, \Omega_r) + b_\theta U_3 $$
where \( f_\theta = [\dot{\phi}\dot{\psi}(I_{zz} – I_{xx}) – J_r \dot{\phi} \Omega_r] / I_{yy} \) represents the coupling and disturbance terms, and \( b_\theta = l / I_{yy} \) is the approximate control gain. The term \(f_\theta\) is treated as the total disturbance. Therefore, the system is formulated for the ADRC as:
$$ \ddot{\theta} = f_\theta + b_\theta U_3 $$
A second-order ADRC is designed for this channel. The ESO expands the state to estimate \(\theta\), \(\dot{\theta}\), and \(f_\theta\). The NLSEF acts on the error between the desired pitch angle \(\theta_d\) (from the position loop) and the estimated state \(\hat{\theta}\), and its derivative. Finally, the control law \(U_3\) compensates for the estimated disturbance \( \hat{f}_\theta \):
$$ U_3 = \frac{u_0 – \hat{f}_\theta}{b_\theta} $$
This design effectively decouples the pitch dynamics from roll and yaw, making the inner loop highly robust for the quadrotor drone.
3.2 Position Loop Fuzzy PID Design (X-Position Example)
The desired x-position \(x_d\) is compared to the current position \(x\) to generate the error \(e_x = x_d – x\) and its derivative \(\Delta e_x\). These two signals are fed into the fuzzy inference system. The fuzzy sets and rules are designed to adjust the PID gains to achieve a fast, non-oscillatory response. A sample rule is: “If \(e_x\) is Positive Small (PS) and \(\Delta e_x\) is Negative Small (NS), then \(\Delta K_p\) is Positive Medium (PM), \(\Delta K_i\) is Zero (ZO), and \(\Delta K_d\) is Negative Small (NS).” This rule aims to increase the proportional action to reduce a small positive error while slightly reducing derivative action to prevent excessive damping as the error decreases.
The output of the fuzzy PID controller is the desired pitch angle \(\theta_d\):
$$ \theta_d(t) = K_p e_x(t) + K_i \int_0^t e_x(\tau)d\tau + K_d \frac{de_x(t)}{dt} $$
where \(K_p, K_i, K_d\) are the adaptively tuned gains. This \(\theta_d\) is then fed as the setpoint to the pitch ADRC loop described above.
4. Simulation Experiments and Analysis
To validate the effectiveness of the proposed Fuzzy PID-ADRC (FPADRC) controller, comprehensive simulations were conducted in the Matlab/Simulink environment and compared against a conventional cascaded PID controller. The simulation step size was set to \(h = 0.001\) s. The initial parameters for the position fuzzy PID were \(K_{p0}=0.50\), \(K_{i0}=0.001\), \(K_{d0}=0.001\). The parameters for the ADRC controllers in the attitude loops are summarized in the table below.
| Component | Parameter | Value |
|---|---|---|
| TD | Speed factor \(r_0\) | 12 |
| Filter factor \(h_0\) | 0.005 | |
| ESO | Gain \(\beta_{01}\) | 2000 |
| Gain \(\beta_{02}\) | 300 | |
| Gain \(\beta_{03}\) | 300 | |
| NLSEF | Gain \(\beta_1\) | 12 |
| Gain \(\beta_2\) | 0.1 | |
| Nonlinearity \(\alpha_1, \alpha_2, \delta\) | 0.5, 0.25, 0.1 | |
| Plant | Control gain \(b_0\) | 1 |
The fuzzy rule base for gain adjustment is represented in the following table.
| \(\Delta e\) | \(e\) | ||||||
|---|---|---|---|---|---|---|---|
| NB | NM | NS | ZO | PS | PM | PB | |
| NB | PB | PB | PM | PM | PS | ZO | ZO |
| NM | PB | PB | PM | PS | PS | ZO | NS |
| NS | PM | PM | PM | PS | ZO | NS | NS |
| ZO | PM | PM | PS | ZO | NS | NM | NM |
| PS | PS | PS | ZO | NS | NS | NM | NM |
| PM | PS | ZO | NS | NM | NM | NM | NB |
| PB | ZO | ZO | NM | NM | NM | NB | NB |
Experiment 1: Trajectory Tracking without Disturbance. The quadrotor drone started from the origin \((0,0,0)\) with zero initial attitude. The reference command for the x-coordinate was a unit step signal of amplitude 2 meters. The tracking performance is a critical metric for any quadrotor drone control system. The FPADRC controller demonstrated superior performance: it reached the setpoint in approximately 1 second with a negligible overshoot of less than 0.05 meters and exhibited no oscillation. In stark contrast, the cascaded PID controller took nearly 6 seconds to settle, with a significant overshoot of about 12.5% (peak at 2.25 m). This clearly shows the FPADRC’s ability to provide fast, precise, and stable tracking for the quadrotor drone.
Experiment 2: Trajectory Tracking under External Disturbances. To evaluate robustness, two types of disturbances were injected into the x-position channel as external force perturbations. At \(t = 5\) s, a square-wave disturbance with an amplitude of 0.5 m and a duration of 3 s was applied. At \(t = 11\) s, a sinusoidal disturbance \(d(t) = 0.5 \sin(1.6\pi t)\) m was introduced. The response under these conditions is the ultimate test for a quadrotor drone operating in real-world environments. The cascaded PID controller showed significant susceptibility: its response oscillated markedly upon the application of each disturbance, with deviations exceeding 0.4 meters from the setpoint, and it struggled to recover quickly. The FPADRC controller, however, showcased remarkable disturbance rejection. The deviations were minimal (typically within ±0.1 m), and the controller rapidly compensated for the disturbances, maintaining stable and accurate tracking. This demonstrates the powerful anti-disturbance capability conferred by the ESO in the inner loop of the quadrotor drone’s control system.
5. Conclusion
This paper has presented a novel and robust control strategy for quadrotor drones, addressing the core challenges of underactuation, nonlinear coupling, and sensitivity to disturbances. The proposed hybrid controller synergistically combines Fuzzy PID control for the outer position loop and Active Disturbance Rejection Control for the inner attitude loop. The fuzzy PID enhances the adaptability and precision of trajectory tracking, while the ADRC provides robust decoupling and superior rejection of both internal uncertainties and external disturbances. Extensive simulation studies, benchmarked against a conventional cascaded PID controller, confirm the substantial advantages of the proposed method. The FPADRC controller achieves faster response, negligible overshoot, and exceptional robustness against various force disturbances, leading to significantly improved trajectory tracking performance for the quadrotor drone. Importantly, this performance is achieved without reliance on a highly accurate dynamic model, aligning well with practical engineering requirements. Future work will focus on experimental validation with a physical quadrotor drone platform and extension to more aggressive maneuvering and three-dimensional trajectory tracking scenarios.
