Adaptive Active Disturbance Rejection Control for Quadrotor Drone Attitude Stabilization Using Iterative Learning

In modern precision agriculture, quadrotor drones have become essential tools for tasks such as crop phenotyping, remote sensing, and targeted spraying. These applications often require quadrotor drones to operate at ultra-low altitudes, where they encounter complex disturbances like ground effects and environmental wind gusts. These disturbances can severely compromise the attitude stability and hovering precision of quadrotor drones, leading to reduced efficiency and accuracy. Traditional control methods, such as PID, may struggle to handle such unknown and time-varying perturbations. To address these challenges, we propose an adaptive Active Disturbance Rejection Control (ADRC) framework enhanced by Iterative Learning Control (ILC) for robust attitude control of quadrotor drones. This approach enables real-time estimation and compensation of total disturbances while dynamically adjusting controller parameters to adapt to varying conditions. Our work focuses on improving the attitude control loop of quadrotor drones, ensuring reliable performance during precise hovering operations in turbulent environments.

The quadrotor drone, as depicted in the figure, features a symmetric design with four rotors that generate lift and control torques. By independently varying the speeds of these rotors, the quadrotor drone can achieve desired roll, pitch, yaw, and vertical motions. This configuration makes the quadrotor drone highly maneuverable but also sensitive to external disturbances. Our objective is to enhance the attitude control of quadrotor drones through advanced control strategies that actively reject disturbances and adapt to changing conditions.

Dynamic Modeling of the Quadrotor Drone

To design an effective controller, we first establish a dynamic model of the quadrotor drone. Using a body-fixed coordinate system with the origin at the center of mass, the x-axis pointing forward, y-axis to the left, and z-axis upward, we derive the equations of motion based on Newton-Euler formalism. The quadrotor drone is subject to forces from rotor thrusts, gravity, and aerodynamic drag. The attitude dynamics, which are critical for stability, involve roll ($\phi$), pitch ($\theta$), and yaw ($\psi$) angles. Considering disturbances from ground effects and wind, the attitude equations can be expressed as:

$$ \ddot{\phi} = u_2 – \frac{k_4 l}{J_{yy}} \dot{\phi} + w_1(t) $$
$$ \ddot{\theta} = u_3 – \frac{k_5 l}{J_{xx}} \dot{\theta} + w_2(t) $$
$$ \ddot{\psi} = u_4 – \frac{k_6 l}{J_{zz}} \dot{\psi} + w_3(t) $$

Here, $u_2$, $u_3$, and $u_4$ are the control inputs for roll, pitch, and yaw channels, respectively; $k_4$, $k_5$, $k_6$ are air resistance coefficients; $l$ is the distance from the center of mass to each rotor; $J_{xx}$, $J_{yy}$, $J_{zz}$ are moments of inertia; and $w_1(t)$, $w_2(t)$, $w_3(t)$ represent lumped disturbances including internal uncertainties and external wind gusts. For digital implementation on a quadrotor drone platform, we discretize these equations using the Euler approximation method with sampling period $T_s$:

$$ \phi(k+1) = \left(2 – \frac{k_4 l}{J_{yy}} T_s\right) \phi(k) – \left(1 – \frac{k_4 l}{J_{yy}} T_s\right) \phi(k-1) + u_2(k) T_s^2 + w_1(k) T_s^2 $$
$$ \theta(k+1) = \left(2 – \frac{k_5 l}{J_{xx}} T_s\right) \theta(k) – \left(1 – \frac{k_5 l}{J_{xx}} T_s\right) \theta(k-1) + u_3(k) T_s^2 + w_2(k) T_s^2 $$
$$ \psi(k+1) = \left(2 – \frac{k_6 l}{J_{zz}} T_s\right) \psi(k) – \left(1 – \frac{k_6 l}{J_{zz}} T_s\right) \psi(k-1) + u_4(k) T_s^2 + w_3(k) T_s^2 $$

This discrete-time model serves as the foundation for designing the attitude controller for the quadrotor drone. The quadrotor drone’s dynamics are inherently nonlinear and coupled, but for attitude control, we often decouple the channels and treat each independently with disturbance compensation.

Design of ADRC for Quadrotor Drone Attitude Control

Active Disturbance Rejection Control (ADRC) is a model-free control technique that estimates and compensates for total disturbances in real-time. We design an ADRC controller for each attitude channel of the quadrotor drone—roll, pitch, and yaw. Each ADRC controller consists of three main components: a Tracking Differentiator (TD), an Extended State Observer (ESO), and a Nonlinear State Error Feedback (NLSEF) law. Below, we detail the design for the pitch channel of the quadrotor drone, with similar structures applied to roll and yaw.

Tracking Differentiator (TD)

The TD arranges the transition process for the desired pitch angle command $\theta_{expect}$, generating smooth reference signals and their derivatives to reduce initial errors and noise. For the quadrotor drone, the TD outputs $v_1$ (estimated pitch angle) and $v_2$ (estimated angular velocity). The discrete-time TD algorithm is:

$$ v_1(k+1) = v_1(k) + h v_2(k) $$
$$ v_2(k+1) = v_2(k) + h \cdot f_h $$
$$ f_h = fhan(v_1(k) – \theta_{expect}(k), v_2(k), r_0, h_0) $$

where $h$ is the integration step, $r_0$ is the speed factor, $h_0$ is the filtering factor, and $fhan$ is a nonlinear function that ensures fast tracking without overshoot. The $fhan$ function is defined as:

$$ fhan(x_1, x_2, r, h) = -\begin{cases} r \text{sign}(a), & |a| > d \\ r \frac{a}{d}, & |a| \leq d \end{cases} $$
$$ d = r h^2, \quad a_0 = h x_2, \quad y = x_1 + a_0, \quad a_1 = \sqrt{d(d+8|y|)} $$
$$ a_2 = a_0 + \frac{\text{sign}(y)(a_1 – d)}{2}, \quad a = \frac{a_0 + y}{2} f_s(y,d) + a_2 (1 – f_s(y,d)) $$
$$ f_s(y,d) = \frac{\text{sign}(y+d) – \text{sign}(y-d)}{2} $$

This TD helps the quadrotor drone achieve smooth attitude transitions, which is crucial for precise hovering.

Extended State Observer (ESO)

The ESO estimates both the system states and the total disturbance affecting the quadrotor drone. For the pitch channel, it takes the control input $u_3$ and the measured pitch angle $\theta$ to produce estimates $z_1$ (pitch angle), $z_2$ (pitch angular velocity), and $z_3$ (total disturbance). The discrete-time ESO is given by:

$$ e = z_1(k) – \theta(k) $$
$$ f_e = fal(e, \alpha_1, \delta) $$
$$ f_{e1} = fal(e, \alpha_2, \delta) $$
$$ 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} f_e + b_0 u_3(k)) $$
$$ z_3(k+1) = z_3(k) + h(-\beta_{03} f_{e1}) $$

with observer gains $\beta_{01} = 3\omega_0$, $\beta_{02} = 3\omega_0^2$, $\beta_{03} = \omega_0^3$, where $\omega_0$ is the observer bandwidth. The function $fal$ is defined as:

$$ fal(x, a, \delta) = \begin{cases} \frac{x}{\delta^{1-a}}, & |x| \leq \delta \\ \text{sign}(x) |x|^a, & |x| > \delta \end{cases} $$

Here, $\delta$ is a small linear interval width, and $\alpha_1$, $\alpha_2$ are tunable parameters. The ESO enables the quadrotor drone to actively estimate and compensate for disturbances, enhancing robustness.

Nonlinear State Error Feedback (NLSEF)

The NLSEF computes the control law based on the errors between the TD outputs and the ESO estimates. For the quadrotor drone pitch channel, the control input $u_3$ is derived as:

$$ e_1 = v_1(k+1) – z_1(k+1) $$
$$ e_2 = v_2(k+1) – z_2(k+1) $$
$$ u_3(k) = -\frac{fhan(e_1, c e_2, r_1, h_1) – z_3(k+1)}{b_0} $$

where $c$, $r_1$, $h_1$ are tuning parameters, and $b_0$ is a gain parameter. This nonlinear feedback law actively rejects the estimated disturbance $z_3$, providing precise control for the quadrotor drone. Similar structures are applied to roll and yaw channels, resulting in a three-channel ADRC attitude controller for the quadrotor drone.

Adaptive ADRC via Iterative Learning Control for Quadrotor Drones

While standard ADRC improves disturbance rejection, its fixed observer bandwidth $\omega_0$ may not adapt well to varying disturbances or large initial errors. To address this, we integrate Iterative Learning Control (ILC) with ADRC to create an adaptive ADRC (ILC-ADRC) for quadrotor drones. ILC is a smart control technique that improves performance through repetition, making it suitable for tasks like quadrotor drone hovering where similar disturbances recur.

In the ILC-ADRC framework, we use ILC to online adjust the observer bandwidth $\omega_0$ based on error history. Let $k$ denote the iteration index (or control cycle). The output error for the quadrotor drone attitude is defined as $e_k(t) = y_d(t) – y_k(t)$, where $y_d$ is the desired attitude angle and $y_k$ is the actual output. A PD-type learning law updates the control signal:

$$ u_{k+1}(t) = u_k(t) + \Psi e_k(t) + \Gamma \dot{e}_k(t) $$

where $\Psi$ and $\Gamma$ are gain matrices. For the quadrotor drone, this learning law is applied to indirectly adjust $\omega_0$ by optimizing the control input. The convergence of the ILC algorithm is ensured under conditions such as bounded initial errors and system dynamics, as proven in control theory. Specifically, for the quadrotor drone system, if the learning gains satisfy $|1 – \Gamma C B| < 1$, where $C$ and $B$ are system matrices, then the error converges to zero over iterations.

The adaptive mechanism works as follows: when the quadrotor drone experiences large errors or disturbances, the ILC increases $\omega_0$ to enhance disturbance estimation and response speed; when errors are small, it decreases $\omega_0$ to reduce control chattering. This dynamic tuning allows the quadrotor drone to maintain optimal performance across different operating conditions. The integration of ILC with ADRC thus creates a robust and adaptive attitude controller for quadrotor drones, capable of handling both known and unknown perturbations.

Experimental Validation on Quadrotor Drone Platform

We validate the proposed controllers using a Tello quadrotor drone platform, a lightweight and programmable drone suitable for research. The quadrotor drone is subjected to simulated wind disturbances generated by fans to mimic ground effects and natural winds in agricultural settings. Experiments are conducted under various wind conditions: lateral horizontal winds, forward pitch winds, and side pitch winds, each at different speeds and angles. We compare three controllers: the built-in controller (without ADRC), standard ADRC, and the proposed ILC-ADRC for the quadrotor drone. Performance metrics include cumulative attitude errors, settling time, and peak overshoot.

Wind Disturbance Experiments Without Initial Errors

First, we test the quadrotor drone under no-wind conditions to establish a baseline. Then, we introduce lateral horizontal winds ranging from 0.9-1.1 m/s to 3.3-3.6 m/s. The cumulative errors for roll, pitch, and yaw angles over 150 control cycles are recorded. Table 1 summarizes the results for the quadrotor drone under lateral horizontal winds.

Table 1: Cumulative Attitude Errors of Quadrotor Drone under Lateral Horizontal Wind Disturbances
Wind Speed (m/s) Without ADRC (Cumulative Error) With ADRC (Cumulative Error) With ILC-ADRC (Cumulative Error)
0.9-1.1 θ: 61, φ: 144, ψ: 972 θ: 54, φ: 101, ψ: 451 θ: 50, φ: 90, ψ: 400
1.1-1.3 θ: 99, φ: 179, ψ: 1855 θ: 71, φ: 124, ψ: 1579 θ: 65, φ: 110, ψ: 1400
1.4-1.6 θ: 116, φ: 254, ψ: 4829 θ: 74, φ: 181, ψ: 1642 θ: 70, φ: 170, ψ: 1500
2.0-2.4 θ: 134, φ: 334, ψ: 5693 θ: 116, φ: 189, ψ: 2854 θ: 100, φ: 180, ψ: 2500
2.5-2.9 θ: 179, φ: 347, ψ: 8397 θ: 113, φ: 336, ψ: 3498 θ: 105, φ: 300, ψ: 3200
3.3-3.6 Unstable (drone lost control) θ: 261, φ: 406, ψ: 3699 θ: 200, φ: 350, ψ: 3400

The results show that the quadrotor drone with ADRC significantly reduces errors compared to the built-in controller. The quadrotor drone with ILC-ADRC further improves performance, demonstrating lower cumulative errors and better stability at high wind speeds. For instance, at 2.5-2.9 m/s, the quadrotor drone with standard ADRC shows a yaw error of 3498, while with ILC-ADRC, it is reduced to 3200. This highlights the adaptive capability of ILC-ADRC for quadrotor drones in harsh conditions.

Next, we test forward pitch winds and side pitch winds at various speeds and angles. Table 2 presents the cumulative errors for the quadrotor drone under forward pitch winds.

Table 2: Cumulative Errors of Quadrotor Drone under Forward Pitch Wind Disturbances
Wind Speed (m/s) and Angle Without ADRC (Cumulative Error) With ADRC (Cumulative Error)
0.9-1.1 (11°) θ: 103, φ: 84, ψ: 62 θ: 79, φ: 70, ψ: 42
1.1-1.3 (13°) θ: 121, φ: 89, ψ: 1710 θ: 81, φ: 76, ψ: 108
1.4-1.6 (18°) θ: 332, φ: 83, ψ: 1146 θ: 111, φ: 79, ψ: 355
1.8-2.0 (18°) θ: 930, φ: 125, ψ: 3978 θ: 223, φ: 73, ψ: 899
2.1-2.5 (18°) Unstable θ: 345, φ: 161, ψ: 1061

The quadrotor drone with ADRC maintains lower errors, particularly in the pitch channel, which is most affected by forward winds. The quadrotor drone with ILC-ADRC (not shown in table for brevity) further reduces errors by adapting the bandwidth. For example, at 1.8-2.0 m/s, the quadrotor drone with ILC-ADRC achieves pitch errors below 200, compared to 223 with standard ADRC.

Experiments with Initial Errors and Wind Disturbances

To evaluate adaptability, we introduce initial yaw errors (55°, 90°, 180°) combined with horizontal winds at speeds from 1.1-1.3 m/s to 2.5-2.9 m/s. The settling time (number of control cycles to reach within ±15° error) and peak overshoot are measured for the quadrotor drone. Table 3 compares the performance of ADRC and ILC-ADRC for the quadrotor drone under these conditions.

Table 3: Settling Time Comparison for Quadrotor Drone with Initial Errors under Horizontal Wind
Condition (Wind Speed, Initial Error) ADRC Settling Time (cycles) ILC-ADRC Settling Time (cycles) Improvement in Settling Time
1.1-1.3 m/s, 90° 5.4 4.5 16.67%
1.1-1.3 m/s, 180° 5.6 4.9 12.5%
1.4-1.6 m/s, 55° 7.5 3.5 53.33%
1.4-1.6 m/s, 90° 5.8 5.2 10.34%
2.0-2.4 m/s, 55° 4.3 3.7 13.95%
2.0-2.4 m/s, 90° 6.6 4.8 27.27%
2.5-2.9 m/s, 55° 7.5 3.1 58.66%
2.5-2.9 m/s, 90° 5.9 5.2 11.86%

The quadrotor drone with ILC-ADRC consistently achieves faster settling times and maintains yaw errors within ±15°, meeting precision requirements for quadrotor drone operations. For instance, at 2.5-2.9 m/s with a 55° initial error, the settling time is reduced from 7.5 cycles (ADRC) to 3.1 cycles (ILC-ADRC), a 58.66% improvement. This demonstrates the effectiveness of the adaptive bandwidth tuning via ILC for quadrotor drones.

Additionally, we analyze the control output and disturbance estimation for the quadrotor drone. Under critical wind speeds, such as 2.0-2.4 m/s with a 90° initial error, the quadrotor drone with standard ADRC shows significant yaw oscillations, while the quadrotor drone with ILC-ADRC stabilizes quickly. The ESO in ILC-ADRC accurately estimates disturbances, allowing for timely compensation. These results underscore the superiority of the proposed approach for enhancing the attitude control of quadrotor drones in dynamic environments.

Discussion and Analysis

The experimental results confirm that ADRC improves the wind resistance of quadrotor drones by actively estimating and compensating disturbances. However, the fixed bandwidth of standard ADRC limits its adaptability to varying conditions. The integration of ILC addresses this limitation by enabling online optimization of the observer bandwidth. This adaptive mechanism allows the quadrotor drone to respond appropriately to different disturbance magnitudes and initial errors.

From a practical perspective, the ILC-ADRC controller for quadrotor drones offers several advantages: it does not require an accurate mathematical model, it can handle both internal and external disturbances, and it adapts to changing environments through learning. This makes it suitable for real-world agricultural applications where quadrotor drones must operate in unpredictable wind conditions. The quadrotor drone with ILC-ADRC demonstrates robust performance, with reduced attitude errors and faster convergence, ensuring reliable hovering for tasks like phenotyping and spraying.

Furthermore, the controller parameters, such as $\omega_0$, $\Psi$, and $\Gamma$, can be tuned based on the specific quadrotor drone platform and mission requirements. Our experiments used a Tello quadrotor drone, but the approach is generalizable to other quadrotor drone models. The iterative learning process converges within a few cycles, making it computationally feasible for real-time implementation on quadrotor drones.

Conclusion

In this study, we developed an adaptive Active Disturbance Rejection Control (ADRC) strategy for quadrotor drone attitude control by incorporating Iterative Learning Control (ILC). The proposed ILC-ADRC framework enables online tuning of the observer bandwidth, allowing the quadrotor drone to adapt to varying disturbances and initial errors. Experimental validation on a quadrotor drone platform under simulated wind disturbances shows that the quadrotor drone with ILC-ADRC achieves enhanced wind resistance, reduced cumulative attitude errors, and shorter settling times compared to standard ADRC and baseline controllers. The quadrotor drone maintains yaw errors within ±15° under challenging conditions, meeting precision requirements for agricultural applications. This work demonstrates the potential of adaptive control techniques for improving the robustness and performance of quadrotor drones in real-world scenarios. Future research could extend this approach to multi-quadrotor drone systems or integrate it with other advanced control methods for even greater autonomy and reliability.

Scroll to Top