Trajectory Tracking Control of Quadrotor Drones Under Wind Disturbances Using MPC-ESO Algorithm

In recent years, quadrotor drones have garnered significant attention due to their simple structure, high maneuverability, and ability to carry various payloads. These unmanned aerial vehicles are widely applied in military, commercial, agricultural, forestry, and pastoral fields. However, the quadrotor drone system exhibits underactuation, strong coupling, and nonlinear characteristics, making control design challenging. Additionally, in practical flight scenarios, quadrotor drones are highly susceptible to wind disturbances, which can lead to performance degradation, physical damage, and increased maintenance costs. To address these issues, numerous control algorithms have been proposed, including PID, model predictive control (MPC), sliding mode control, and active disturbance rejection control (ADRC). While these methods can stabilize quadrotor drone control systems, there remains a need for enhanced robustness against wind disturbances for precise trajectory tracking. This article proposes a trajectory tracking control method that combines MPC and extended state observer (ESO) algorithms. The designed controller employs a dual-loop control structure, with both outer-loop position and inner-loop attitude controllers utilizing the MPC-ESO approach. This aims to achieve accurate trajectory tracking for quadrotor drones under wind disturbances. Simulation results demonstrate that compared to ADRC, the proposed controller exhibits smaller steady-state errors and stronger anti-disturbance capabilities.

Introduction to Quadrotor Drone Dynamics and Wind Disturbances

Quadrotor drones operate in complex environments where wind disturbances, such as gusts, turbulence, and wind shear, are prevalent. These disturbances significantly impact the flight dynamics, necessitating robust control strategies. For trajectory tracking applications, the quadrotor drone must maintain stability and accuracy despite external perturbations. This article focuses on turbulence wind fields, modeled using the Dryden turbulence model, to analyze their effects on quadrotor drone motion. The dynamics of a quadrotor drone involve both translational and rotational movements, which are derived from Newton-Euler equations. To simplify analysis, several assumptions are made: the quadrotor drone is treated as a rigid body with constant mass, the center of mass coincides with the body frame origin, rotor deformations are neglected, small attitude angles are assumed, and rotor thrust is proportional to the square of rotor speed. These assumptions facilitate the development of a manageable yet accurate dynamic model for control design.

Dynamic Modeling of Quadrotor Drones Under Turbulence Wind Fields

The dynamic model of a quadrotor drone under wind disturbances incorporates aerodynamic forces and moments. Consider a single rotor in a turbulence wind field: let \(V_w\) be the wind velocity, \(V_d\) the induced velocity, and \(V\) the resultant velocity. Their relationship is given by:

$$ V = V_w + V_d $$

The induced velocity \(V_d\) is expressed as:

$$ V_d = \sqrt{\frac{F_i}{2\rho A}} $$

where \(\rho\) is air density, \(F_i\) is the thrust generated by the rotor, and \(A\) is the rotor disc area. The total lift force \(F_R\) on the rotor is the vector sum of rotor thrust \(F_i\) and wind-induced lift \(F_W\):

$$ F_R = F_i + F_W $$

From the above equations, \(F_W\) can be derived as:

$$ F_W = 2\rho A V_d V_W $$

The total aerodynamic moment \(M_R\) due to turbulence is calculated as:

$$ M_R = k_d \rho A V_d V_W $$

where \(k_d > 0\) depends on rotor shape and air density. For a quadrotor drone with four rotors, the overall dynamics are derived using Newton-Euler equations. Let \(m\) be the mass, \(\zeta = [x, y, z]^T\) the position coordinates in the inertial frame, and \(\eta = [\phi, \theta, \psi]^T\) the Euler angles (roll, pitch, yaw). The translational dynamics are:

$$ m\ddot{\zeta} = F $$

and rotational dynamics are:

$$ I \dot{\eta} = \tau $$

where \(I = \text{diag}(I_x, I_y, I_z)\) is the inertia matrix, and \(F\) and \(\tau\) are total external forces and moments. The control inputs include total thrust \(U_1\) and moments \(U_2, U_3, U_4\):

$$ U_1 = \sum_{i=1}^{4} F_i, \quad U_2 = l \lambda (-\omega_2^2 + \omega_4^2), \quad U_3 = l \lambda (\omega_1^2 – \omega_3^2), \quad U_4 = \mu (\omega_1^2 – \omega_2^2 + \omega_3^2 – \omega_4^2) $$

where \(l\) is the arm length, \(\lambda\) and \(\mu\) are thrust and torque coefficients, and \(\omega_i\) is the rotor speed. Gyroscopic effects are also considered. The complete dynamic model under wind disturbances is:

$$ \begin{aligned}
\ddot{x} &= (\cos\phi \sin\theta \cos\psi + \sin\phi \sin\psi) \frac{U_1}{m} + f_x \\
\ddot{y} &= (\cos\phi \sin\theta \sin\psi – \sin\phi \cos\psi) \frac{U_1}{m} + f_y \\
\ddot{z} &= (\cos\phi \cos\theta) \frac{U_1}{m} – g + f_z \\
\ddot{\phi} &= \dot{\theta} \dot{\psi} \left( \frac{I_y – I_z}{I_x} \right) + \frac{U_2}{I_x} + f_\phi \\
\ddot{\theta} &= \dot{\phi} \dot{\psi} \left( \frac{I_z – I_x}{I_y} \right) + \frac{U_3}{I_y} + f_\theta \\
\ddot{\psi} &= \dot{\phi} \dot{\theta} \left( \frac{I_x – I_y}{I_z} \right) + \frac{U_4}{I_z} + f_\psi
\end{aligned} $$

where \(f = [f_x, f_y, f_z, f_\phi, f_\theta, f_\psi]^T\) represents wind disturbance terms derived from aerodynamic analysis. This model forms the basis for controller design.

Controller Design Using MPC-ESO Algorithm for Quadrotor Drones

To achieve precise trajectory tracking for quadrotor drones under wind disturbances, a dual-loop control structure is adopted. The outer loop controls position, while the inner loop controls attitude. Both loops integrate MPC and ESO algorithms. The MPC handles constraints and optimizes future behavior, while ESO estimates and compensates for disturbances. The overall control structure is illustrated below, with reference trajectories \(x_r, y_r, z_r, \psi_r\) and control inputs \(U_1, U_2, U_3, U_4\).

Table 1: Nomenclature for Quadrotor Drone Control
Symbol Description
\(m\) Mass of quadrotor drone
\(I_x, I_y, I_z\) Moments of inertia
\(U_1\) Total thrust control input
\(U_2, U_3, U_4\) Roll, pitch, yaw moment inputs
\(f\) Wind disturbance vector
\(\zeta\) Position vector \([x, y, z]^T\)
\(\eta\) Attitude vector \([\phi, \theta, \psi]^T\)

Position Controller Design for Quadrotor Drones

The position control is divided into altitude (\(z\)) and horizontal (\(x, y\)) subsystems. Define the state vector for translational motion as \(x_p = [x, \dot{x}, y, \dot{y}, z, \dot{z}]^T\). From the dynamic model, the altitude subsystem is:

$$ \ddot{z} = \frac{U_1}{m} \cos\phi \cos\theta – g + f_z $$

For control design, let \(u_z = \frac{U_1}{m} \cos\phi \cos\theta\). The altitude subsystem can be written as a state-space model:

$$ \begin{aligned}
\dot{x}_z &= A_z x_z + B_z u_z + E_z f_z \\
y_z &= C_z x_z
\end{aligned} $$

where \(x_z = [z, \dot{z}]^T\), \(A_z = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}\), \(B_z = \begin{bmatrix} 0 \\ 1 \end{bmatrix}\), \(E_z = \begin{bmatrix} 0 \\ 1 \end{bmatrix}\), and \(C_z = [1, 0]\). A reference model without disturbances is defined:

$$ \dot{x}_{zr} = A_z x_{zr} + B_z u_{zr} $$

The error dynamics are \(e_z = x_z – x_{zr}\), leading to:

$$ \dot{e}_z = A_z e_z + B_z (u_z – u_{zr}) + E_z f_z $$

Discretizing with sampling time \(\Delta t\) gives:

$$ e_z(k+1) = A_{zd} e_z(k) + B_{zd} \Delta u_z(k) + E_{zd} f_z(k) $$

where \(\Delta u_z(k) = u_z(k) – u_{zr}(k)\). The MPC cost function for altitude control is:

$$ J_z = \sum_{i=1}^{N_p} e_z^T(k+i) Q_z e_z(k+i) + \sum_{i=0}^{N_c-1} \Delta u_z^T(k+i) R_z \Delta u_z(k+i) $$

with prediction horizon \(N_p\), control horizon \(N_c\), and weighting matrices \(Q_z \geq 0\), \(R_z > 0\). The optimal control input is computed by minimizing \(J_z\), yielding:

$$ \Delta u_z^* = -(B_{zd}^T Q_z B_{zd} + R_z)^{-1} B_{zd}^T Q_z A_{zd} e_z(k) $$

To estimate and compensate for disturbance \(f_z\), an ESO is designed. Define extended state \(x_{ze} = [z, \dot{z}, f_z]^T\). The extended system is:

$$ \begin{aligned}
\dot{x}_{ze} &= A_{ze} x_{ze} + B_{ze} u_z + E_{ze} \dot{f}_z \\
y_z &= C_{ze} x_{ze}
\end{aligned} $$

where \(A_{ze} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \end{bmatrix}\), \(B_{ze} = \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}\), \(E_{ze} = \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}\), \(C_{ze} = [1, 0, 0]\). The ESO is implemented as:

$$ \dot{\hat{x}}_{ze} = A_{ze} \hat{x}_{ze} + B_{ze} u_z + L_z (y_z – C_{ze} \hat{x}_{ze}) $$

where \(L_z\) is the observer gain matrix. The estimated disturbance \(\hat{f}_z\) is used for feedforward compensation:

$$ u_z(k) = u_{zr}(k) + \Delta u_z^*(k) – \hat{f}_z(k) $$

Similarly, for horizontal control, define \(x_{xy} = [x, \dot{x}, y, \dot{y}]^T\). The dynamics are:

$$ \begin{aligned}
\ddot{x} &= u_x + f_x \\
\ddot{y} &= u_y + f_y
\end{aligned} $$

where \(u_x = \frac{U_1}{m} (\cos\phi \sin\theta \cos\psi + \sin\phi \sin\psi)\) and \(u_y = \frac{U_1}{m} (\cos\phi \sin\theta \sin\psi – \sin\phi \cos\psi)\). Following the same MPC-ESO approach, control inputs \(u_x\) and \(u_y\) are derived. The total thrust \(U_1\) and desired roll \(\phi_r\) and pitch \(\theta_r\) angles are then computed:

$$ U_1 = \frac{m \sqrt{u_x^2 + u_y^2 + (u_z + g)^2}}{\cos\phi_r \cos\theta_r}, \quad \phi_r = \arcsin\left( \frac{m (u_x \sin\psi – u_y \cos\psi)}{U_1} \right), \quad \theta_r = \arctan\left( \frac{u_x \cos\psi + u_y \sin\psi}{u_z + g} \right) $$

with yaw reference \(\psi_r = 0\) rad for simplicity.

Attitude Controller Design for Quadrotor Drones

The attitude controller stabilizes the quadrotor drone’s orientation. Using feedback linearization, define the attitude state vector \(x_\eta = [\phi, \dot{\phi}, \theta, \dot{\theta}, \psi, \dot{\psi}]^T\). The nonlinear dynamics are linearized as:

$$ \ddot{\eta} = f_\eta(x_\eta) + g_\eta(x_\eta) U_\eta + d_\eta $$

where \(U_\eta = [U_2, U_3, U_4]^T\), \(f_\eta\) and \(g_\eta\) are known nonlinear functions, and \(d_\eta\) represents disturbances. Let \(v_\eta = f_\eta + g_\eta U_\eta\) be a new control input, so the system becomes:

$$ \ddot{\eta} = v_\eta + d_\eta $$

In state-space form:

$$ \dot{x}_\eta = A_\eta x_\eta + B_\eta v_\eta + E_\eta d_\eta $$

where \(A_\eta = \text{block diag}(A_1, A_1, A_1)\) with \(A_1 = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix}\), \(B_\eta = \text{block diag}(B_1, B_1, B_1)\) with \(B_1 = \begin{bmatrix} 0 \\ 1 \end{bmatrix}\), and \(E_\eta = B_\eta\). Discretizing yields:

$$ x_\eta(k+1) = A_{\eta d} x_\eta(k) + B_{\eta d} v_\eta(k) + E_{\eta d} d_\eta(k) $$

The MPC cost function for attitude control is:

$$ J_\eta = \sum_{i=1}^{N_p} (x_\eta(k+i) – x_{\eta r}(k+i))^T Q_\eta (x_\eta(k+i) – x_{\eta r}(k+i)) + \sum_{i=0}^{N_c-1} v_\eta^T(k+i) R_\eta v_\eta(k+i) $$

where \(x_{\eta r}\) is the reference attitude from the position controller. The optimal input \(v_\eta^*\) is obtained similarly. An ESO is designed for disturbance estimation. Define extended state \(x_{\eta e} = [x_\eta, d_\eta]^T\). The ESO dynamics are:

$$ \dot{\hat{x}}_{\eta e} = A_{\eta e} \hat{x}_{\eta e} + B_{\eta e} v_\eta + L_\eta (y_\eta – C_{\eta e} \hat{x}_{\eta e}) $$

with appropriate matrices \(A_{\eta e}, B_{\eta e}, C_{\eta e}\) and gain \(L_\eta\). The estimated disturbance \(\hat{d}_\eta\) compensates the control input:

$$ v_\eta(k) = v_{\eta r}(k) + v_\eta^*(k) – \hat{d}_\eta(k) $$

Finally, the actual control moments \(U_2, U_3, U_4\) are computed by inverting the linearization:

$$ U_\eta = g_\eta^{-1}(x_\eta) (v_\eta – f_\eta(x_\eta)) $$

This completes the dual-loop MPC-ESO controller for quadrotor drones.

Table 2: MPC-ESO Controller Parameters for Quadrotor Drone
Parameter Description Value
\(\Delta t\) Sampling time 0.01 s
\(N_p\) Prediction horizon 10
\(N_c\) Control horizon 5
\(Q_z\) Altitude state weighting \(\text{diag}(25, 1, 2)\)
\(R_z\) Altitude input weighting 0.05
\(Q_{xy}\) Horizontal state weighting \(\text{diag}(70, 8, 5, 70, 5, 3)\)
\(R_{xy}\) Horizontal input weighting \(\text{diag}(20, 20)\)
\(Q_\eta\) Attitude state weighting \(\text{diag}(10, 0.5, 10, 0.5, 50, 0.5)\)
\(R_\eta\) Attitude input weighting \(\text{diag}(0.01, 0.01, 0.01)\)
ESO gains Observer parameters Tuned for stability

Simulation Results and Analysis for Quadrotor Drone Trajectory Tracking

To validate the proposed MPC-ESO controller, simulations were conducted in MATLAB under turbulence wind disturbances. The quadrotor drone parameters are: \(m = 1.2\) kg, \(I_x = I_y = 0.03\) kg·m², \(I_z = 0.04\) kg·m², \(l = 0.25\) m, \(g = 9.81\) m/s². The wind disturbance is modeled using Dryden turbulence with a mean speed of 3 m/s. The initial conditions are: position \(x_0 = 0.5\) m, \(y_0 = 0\) m, \(z_0 = 0.5\) m; attitude \(\phi_0 = \theta_0 = \psi_0 = 0\) rad. The reference trajectory is:

$$ x_r(t) = 2\sin(0.5t), \quad y_r(t) = 2\cos(0.5t), \quad z_r(t) = 1 + 0.5\sin(0.5t), \quad \psi_r(t) = 0 $$

The performance of the MPC-ESO controller is compared with an ADRC controller. Key metrics include trajectory tracking errors and attitude stabilization.

Table 3: Comparison of Tracking Errors for Quadrotor Drone Controllers
Controller RMS Position Error (m) Max Attitude Error (rad) Settling Time (s)
MPC-ESO 0.032 0.015 2.5
ADRC 0.078 0.028 3.8

The simulation results demonstrate that the MPC-ESO controller enables the quadrotor drone to accurately track the reference trajectory despite wind disturbances. The 3D trajectory plot shows close alignment with the desired path. Position tracking curves for \(x, y, z\) indicate rapid convergence and minimal steady-state error. Attitude tracking curves for \(\phi, \theta, \psi\) show stable responses with small oscillations. Error curves highlight that the MPC-ESO controller reduces errors by over 50% compared to ADRC, showcasing superior anti-disturbance capability. The quadrotor drone maintains stability even under aggressive wind gusts, affirming the robustness of the proposed method.

Conclusion on Quadrotor Drone Control Under Wind Disturbances

This article presented an integrated MPC-ESO control strategy for trajectory tracking of quadrotor drones under wind disturbances. The dual-loop structure effectively decouples position and attitude control, while MPC optimizes future performance and ESO estimates and compensates for disturbances. The dynamic model incorporates turbulence effects, providing a realistic framework for controller design. Simulation results confirm that the MPC-ESO controller offers smaller steady-state errors, faster response, and enhanced robustness compared to ADRC. This approach ensures reliable operation of quadrotor drones in windy environments, expanding their applicability in fields like surveillance, agriculture, and delivery. Future work may explore adaptive tuning of MPC parameters and experimental validation with physical quadrotor drones.

Scroll to Top