LADRC Control for Quadrotor Drones Under Wind Disturbance

In the field of unmanned aerial vehicles, quadrotor drones have garnered significant attention due to their simple structure, vertical take-off and landing capabilities, and high maneuverability. However, these systems are inherently nonlinear, strongly coupled, and susceptible to external disturbances such as crosswinds, which can severely degrade control performance. As a quadrotor drone operator and researcher, I have observed that traditional control methods often struggle to maintain stability under such conditions. Therefore, in this work, we explore a linear active disturbance rejection control (LADRC) approach to enhance the robustness of quadrotor drones against wind disturbances. This method leverages an extended state observer to estimate and compensate for total disturbances, including internal uncertainties and external wind effects. Through detailed modeling, controller design, and simulation, we demonstrate that LADRC can effectively mitigate wind-induced disruptions, ensuring stable flight operations. The following sections outline the quadrotor drone attitude model, wind disturbance modeling, LADRC design, and simulation results, all presented from a first-person perspective to share insights and findings.

The quadrotor drone’s attitude dynamics are derived from a standard cross-configuration platform, where four rotors generate lift and torque. The platform is modeled as a rigid body with three degrees of freedom: roll ($\phi$), pitch ($\theta$), and yaw ($\psi$). The rotational motion is governed by the moments produced by rotor thrusts and gyroscopic effects. Let $\Theta = [\phi, \theta, \psi]^T$ represent the attitude angles, $E_i$ (for $i = f, b, l, r$) denote the voltages applied to the front, back, left, and right motors, $J = [J_x, J_y, J_z]^T$ be the moments of inertia about the body axes, $K_f$ the motor thrust coefficient, $K_t$ the motor torque coefficient, and $L$ the distance from the center of mass to each rotor. The moment vector $M$ generated by the rotors is given by:

$$ M = \begin{bmatrix} M_x \\ M_y \\ M_z \end{bmatrix} = \begin{bmatrix} LK_f (E_b – E_f) \\ LK_f (E_r – E_l) \\ K_t (E_f + E_r – E_l – E_b) \end{bmatrix} $$

The gyroscopic moment $M_g$ due to rotor rotation is expressed as:

$$ M_g = \sum_{i=1}^4 \Theta \times J W $$

where $W = [0, 0, q_l + q_r – q_b – q_f]^T$, with $q_i$ representing the rotational speed of each rotor. Applying the conservation of angular momentum, the quadrotor drone’s equation of motion is:

$$ M – M_g = J \dot{\Theta} + \dot{\Theta} \times J \dot{\Theta} $$

Substituting the expressions leads to the attitude model:

$$ \dot{\phi} = \frac{LK_f (E_r – E_l) + \dot{\theta} \dot{\psi} (J_y – J_z)}{J_x} – \frac{\dot{\theta} J_{rz} (q_l + q_r – q_b – q_f)}{J_x} $$
$$ \dot{\theta} = \frac{LK_f (E_f – E_b) + \dot{\phi} \dot{\psi} (J_z – J_x)}{J_y} – \frac{\dot{\phi} J_{rz} (q_l + q_r – q_b – q_f)}{J_y} $$
$$ \dot{\psi} = \frac{K_t (E_f – E_r + E_b – E_l)}{J_z} – \frac{\dot{\phi} \dot{\theta} (J_x – J_y)}{J_z} $$

Here, $J_{rz}$ is a constant related to rotor inertia. This model captures the coupled dynamics of the quadrotor drone, which are further complicated by wind disturbances. To visualize a typical quadrotor drone configuration, consider the following image:

Wind disturbances, particularly crosswinds, can exert forces on the rotors, altering lift and inducing unwanted moments. For instance, a wind blowing from the left side increases lift on the left rotor, causing roll oscillations. To accurately simulate such effects, we develop a composite wind model comprising four components: steady wind, gust wind, gradual wind, and random wind. The total wind speed $V$ is:

$$ V = V_b + V_g + V_r + V_n $$

where $V_b$ is the steady wind, modeled as a constant $V_b = k$. The gust wind $V_g$ represents sudden changes and is defined as:

$$ V_g = \begin{cases} 0 & t < T_1 \\ \frac{V_{gmax}}{2} \left[1 – \cos\left(2\pi \frac{t – T_1}{T_g}\right)\right] & T_1 \leq t \leq T_1 + T_g \\ 0 & t > T_1 + T_g \end{cases} $$

Here, $V_{gmax}$ is the maximum gust speed, $T_1$ the start time, and $T_g$ the duration. The gradual wind $V_n$ models slow variations:

$$ V_n = \begin{cases} 0 & t < T’_1 \text{ or } t > T’_2 + T \\ \frac{V_{nmax}}{2} \frac{t – T’_1}{T’_2 – T’_1} & T’_1 \leq t \leq T’_2 \\ V_{nmax} & T’_2 < t \leq T’_2 + T \end{cases} $$

with $V_{nmax}$ as the maximum speed, $T’_1$ and $T’_2$ as transition times, and $T$ as the steady duration. The random wind $V_r$ captures stochastic elements:

$$ V_r = V_{rmax} \cdot \text{Ram}(-1, 1) \cdot \cos(\omega + \phi_v) $$

where $V_{rmax}$ is the peak random speed, $\text{Ram}(-1, 1)$ a random value between -1 and 1, and $\phi_v$ a random phase. The force $F_w$ exerted by wind on a rotor, modeled as a disk, is given by Betz theory:

$$ F_w = 2 \rho A_d V^2 a (1 – a) $$

with $\rho$ as air density, $A_d$ the disk area, $V$ the wind speed, and $a$ the axial induction factor in [0, 0.5]. This force introduces a disturbance moment $M_w(t) = L F_w(t) / J_x$ into the attitude dynamics.

To address these challenges, we design an LADRC-based decoupling control strategy. The quadrotor drone attitude model is first decoupled into three channels: roll, pitch, and yaw. Rewriting the dynamics in a decoupled form:

$$ \begin{bmatrix} \ddot{\phi} \\ \ddot{\theta} \\ \ddot{\psi} \end{bmatrix} = \begin{bmatrix} f_1(\phi, \dot{\phi}, \theta, \dot{\theta}, \psi, \dot{\psi}) \\ f_2(\phi, \dot{\phi}, \theta, \dot{\theta}, \psi, \dot{\psi}) \\ f_3(\phi, \dot{\phi}, \theta, \dot{\theta}, \psi, \dot{\psi}) \end{bmatrix} + B \begin{bmatrix} U_1 \\ U_2 \\ U_3 \end{bmatrix} $$

where $f_1, f_2, f_3$ represent the nonlinear coupling terms, $B = \text{diag}(L/J_x, L/J_y, 1/J_z)$ is the input matrix, and $U = [U_1, U_2, U_3]^T$ is the control input vector derived from motor voltages. Under wind disturbance, the roll channel, for example, incorporates an additional moment $M_w(t)$, leading to:

$$ \ddot{\phi} = f_1(\cdot) + \frac{L}{J_x} U_1 + M_w(t) $$

We define the total disturbance $\varepsilon_1(t) = f_1(\cdot) + M_w(t)$ and treat it as an extended state $x_3 = \varepsilon_1$. The roll channel is then reformulated as a state-space model:

$$ \dot{x}_1 = x_2, \quad \dot{x}_2 = x_3 + b U_1, \quad \dot{x}_3 = h, \quad \phi = x_1 $$

with $b = L/J_x$. A linear extended state observer (LESO) is designed to estimate $x_1, x_2, x_3$:

$$ \begin{aligned} \dot{z}_1 &= z_2 – \beta_1 (z_1 – x_1) \\ \dot{z}_2 &= z_3 – \beta_2 (z_1 – x_1) + b_0 U_1 \\ \dot{z}_3 &= -\beta_3 (z_1 – x_1) \end{aligned} $$

where $z_i$ are estimates of $x_i$, $\beta_1 = 3\omega_o$, $\beta_2 = 3\omega_o^2$, $\beta_3 = \omega_o^3$ with $\omega_o$ as the observer bandwidth, and $b_0$ is an approximation of $b$. The control law compensates for the disturbance by setting $U_1 = (u_1 – z_3)/b_0$, where $u_1$ is a PD feedback controller:

$$ u_1 = k_p (\phi_d – z_1) – k_d z_2 $$

with $k_p = \omega_c^2$, $k_d = 2\omega_c$, and $\omega_c$ as the controller bandwidth. This structure allows the quadrotor drone to reject disturbances actively. The stability of the closed-loop system is analyzed in the frequency domain. Taking Laplace transforms, the transfer function from desired roll $\phi_d(s)$ to actual roll $\phi(s)$ is derived as:

$$ G(s) = \frac{\omega_c^2}{s^2 + 2\omega_c s + \omega_c^2} $$

According to the Routh-Hurwitz criterion, since $\omega_c > 0$, all poles lie in the left half-plane, ensuring bounded-input bounded-output stability. Similar designs apply to pitch and yaw channels, enabling full decoupling control for the quadrotor drone.

To validate the LADRC approach, we conduct simulations using parameters from a Quanser 3-DOF quadrotor drone platform. The key parameters are summarized in the table below:

Parameter Value Parameter Value
$L$ (m) 0.197 $J_x$ (kg·m²) 0.0552
$K_f$ (N/V) 0.1188 $J_y$ (kg·m²) 0.0552
$K_t$ (N·m/V) 0.0036 $J_z$ (kg·m²) 0.1100

The wind model parameters are set as follows:

Parameter Value Parameter Value
$k$ (m/s) 2 $V_{nmax}$ (m/s) 0
$V_{gmax}$ (m/s) 1 $T_2$ (s) 5
$T_1$ (s) 0 $T$ (s) 4
$T_g$ (s) 10 $V_{rmax}$ (m/s) 1

The simulated wind profile combines these components, resulting in a time-varying disturbance. The quadrotor drone’s initial attitude is $[\phi, \theta, \psi] = [0, 0, 0]$, and the desired attitude is set to $[1, 1, 1]$ degrees. For the roll channel, we tune the LADRC parameters to $b_0 = 1$, $\omega_o = 30$ rad/s, and $\omega_c = 10$ rad/s. A comparative PID controller is designed with gains $k_p = 0.01$, $k_i = 0.05$, $k_d = 0.15$. The simulation results demonstrate that the LADRC controller achieves faster settling (within 1 second) and negligible overshoot, whereas the PID controller exhibits longer transients and oscillations. The LESO accurately estimates the total disturbance $z_3$, closely tracking the actual $x_3$, as shown in response plots. This highlights the effectiveness of LADRC in enhancing the quadrotor drone’s robustness against wind disturbances.

In conclusion, the linear active disturbance rejection control method proves highly effective for quadrotor drones operating under wind disturbances. By decoupling the attitude dynamics and employing an extended state observer, LADRC estimates and compensates for total disturbances in real-time, ensuring stable performance. Simulation studies confirm its superiority over traditional PID control in terms of response speed and overshoot suppression. However, LADRC is a linear approach and may have limitations in highly nonlinear regimes. Future work could explore nonlinear ADRC variants or adaptive techniques to further improve tracking precision and robustness for quadrotor drones in complex environments. The insights gained from this study contribute to advancing control strategies for resilient unmanned aerial systems, paving the way for more reliable operations in windy conditions.

Scroll to Top