Quadrotor UAV drones have gained widespread adoption across various domains such as rescue operations, geographic mapping, and military surveillance due to their high maneuverability, stability, and low cost. The flight control system typically integrates inertial measurement units and global positioning system information to achieve precise hovering, takeoff, landing, and multi‑mode flight. However, conventional PID controllers often suffer from performance degradation under actuator saturation, inherent nonlinearities, and external environmental disturbances, especially in complex operating conditions. To address these challenges, advanced control strategies are needed to provide both fast dynamic response and strong robustness.
In this work, we propose a novel disturbance observer‑based adaptive fuzzy model predictive control (DO‑AFMPC) method for quadrotor UAV drone attitude regulation. The approach integrates a T‑S fuzzy model to approximate the strong nonlinear dynamics, a nonlinear disturbance observer to estimate and compensate for unknown external disturbances and model uncertainties, and an adaptive prediction horizon mechanism to balance computational efficiency and tracking accuracy. We further provide a rigorous Lyapunov‑based stability analysis proving the asymptotic stability of the closed‑loop system under the proposed adaptive strategy. Extensive simulations demonstrate that our method exhibits superior stability and robustness compared with existing MPC, AFMPC, and PID controllers.
1. Dynamic Model of Quadrotor UAV Drone
We consider a quadrotor UAV drone as a rigid body with constant mass and moment of inertia, and its center of mass coincides with the geometric center. Two coordinate systems are defined: the earth‑fixed inertial frame E and the body‑fixed frame B. The rotation matrix from B to E is given by:
$$
\mathbf{R}_b^e = \mathbf{R}_b^{x_e} \cdot \mathbf{R}_b^{y_e} \cdot \mathbf{R}_b^{z_e},
$$
$$
\mathbf{R}_b^{x_e} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\phi & \sin\phi \\ 0 & -\sin\phi & \cos\phi \end{bmatrix},\quad
\mathbf{R}_b^{y_e} = \begin{bmatrix} \cos\theta & 0 & -\sin\theta \\ 0 & 1 & 0 \\ \sin\theta & 0 & \cos\theta \end{bmatrix},\quad
\mathbf{R}_b^{z_e} = \begin{bmatrix} \cos\psi & \sin\psi & 0 \\ -\sin\psi & \cos\psi & 0 \\ 0 & 0 & 1 \end{bmatrix}.
$$
The nonlinear dynamics of the quadrotor UAV drone can be expressed in the state‑space form:
$$
\begin{aligned}
\dot{\phi} &= p + (q\sin\phi + r\cos\phi)\tan\theta, \\
\dot{p} &= \frac{J_{yy} – J_{zz}}{J_{xx}} qr + \frac{u_1}{J_{xx}}, \\
\dot{\theta} &= q\cos\phi – r\sin\phi, \\
\dot{q} &= \frac{u_2}{J_{yy}} + \frac{J_{zz} – J_{xx}}{J_{yy}} pr, \\
\dot{\psi} &= \frac{q\sin\phi + r\cos\phi}{\cos\theta}, \\
\dot{r} &= \frac{u_3}{J_{zz}} + \frac{J_{xx} – J_{yy}}{J_{zz}} pq.
\end{aligned}
$$
The control inputs \(u_1, u_2, u_3\) are related to the rotor speeds \(\omega_i\) by:
$$
\begin{bmatrix} u_1 \\ u_2 \\ u_3 \end{bmatrix} = \begin{bmatrix} 0 & k_T l & 0 & -k_T l \\ -k_T l & 0 & k_T l & 0 \\ k_D & -k_D & k_D & -k_D \end{bmatrix} \begin{bmatrix} \omega_1^2 \\ \omega_2^2 \\ \omega_3^2 \\ \omega_4^2 \end{bmatrix},
$$
where \(l\) is the arm length, \(k_T\) the thrust coefficient, and \(k_D\) the drag coefficient. The state vector is defined as \(\mathbf{x} = [\phi, p, \theta, q, \psi, r]^\mathrm{T}\). The output is \(\mathbf{y} = [\phi, \theta, \psi]^\mathrm{T}\). Input constraints arise from the limited rotor speed:
$$
\begin{aligned}
k_T l (\omega_{\min}^2 – \omega_{\max}^2) &\le u_1 \le k_T l (\omega_{\max}^2 – \omega_{\min}^2), \\
k_T l (\omega_{\min}^2 – \omega_{\max}^2) &\le u_2 \le k_T l (\omega_{\max}^2 – \omega_{\min}^2), \\
k_D (2\omega_{\min}^2 – 2\omega_{\max}^2) &\le u_3 \le k_D (2\omega_{\max}^2 – 2\omega_{\min}^2).
\end{aligned}
$$

2. Disturbance Observer Design
To reject external disturbances and model mismatch, we design a nonlinear disturbance observer. Let \(\mathbf{d}_k\) denote the lumped disturbance vector. The observer is constructed as:
$$
\begin{aligned}
\hat{\mathbf{d}}_k &= \mathbf{K} \mathbf{x}_k – \mathbf{z}_k, \\
\mathbf{z}_{k+1} &= \mathbf{z}_k + \mathbf{K} \left\{ (\mathbf{A}_z – \mathbf{I}) \mathbf{x}_k + \mathbf{B}_z \mathbf{u}_k + \mathbf{R}_z + \mathbf{G}_z \hat{\mathbf{d}}_k \right\},
\end{aligned}
$$
where the observer gain is chosen as \(\mathbf{K} = (\mathbf{I} – \boldsymbol{\Lambda}) \mathbf{G}_z^+\) with \(\boldsymbol{\Lambda} = \operatorname{diag}(\lambda_1,\dots,\lambda_m)\), \(|\lambda_i| < 1\). The disturbance compensation gain \(\mathbf{K}_d\) is determined such that:
$$
\mathbf{C} (\mathbf{A}_z + \mathbf{B}_z)^{-1} \mathbf{B}_z \mathbf{K}_d = -\mathbf{C} (\mathbf{A}_z + \mathbf{B}_z)^{-1} \mathbf{G}_z.
$$
The actual control input is the sum of the MPC output \(\mathbf{u}_c\) and the disturbance compensation term:
$$
\mathbf{u} = \mathbf{u}_c + \mathbf{u}_d = \mathbf{u}_c + \mathbf{K}_d \hat{\mathbf{d}}.
$$
3. Fuzzy Model Predictive Control with Adaptive Horizon
We employ a Takagi‑Sugeno (T‑S) fuzzy model to approximate the nonlinear dynamics. The local models are obtained by linearizing the system at nine operating points covering the typical attitude range. The fuzzy rules are:
Rule i: IF \(z_k\) is \(\Gamma_i\), THEN
$$
\mathbf{x}_{k+1} = \mathbf{A}_i \mathbf{x}_k + \mathbf{B}_i \mathbf{u}_k + \mathbf{R}_i, \quad i = 1,\dots, N,
$$
with \(\mathbf{A}_i = \mathbf{I}_{n\times n} + \bar{\mathbf{A}}_i \cdot t_s\), \(\mathbf{B}_i = \bar{\mathbf{B}}_i \cdot t_s\), \(\mathbf{R}_i = \bar{\mathbf{R}}_i \cdot t_s\), where \(t_s\) is the sampling time. The global model is given by:
$$
\mathbf{x}_{k+1} = \sum_{i=1}^{N} \mu_i(z_k) \bigl( \mathbf{A}_i \mathbf{x}_k + \mathbf{B}_i \mathbf{u}_k + \mathbf{R}_i \bigr) + \mathbf{G}_z \mathbf{d}_k, \quad \mathbf{y}_k = \mathbf{C} \mathbf{x}_k,
$$
where the membership functions are defined as Gaussian functions \(\mu_i(z) = \frac{\omega_i(z)}{\sum_{j=1}^{N}\omega_j(z)}\), \(\omega_i(z) = \exp\bigl( -\frac{(z – \mu)^2}{2\sigma^2} \bigr)\). The premise variables are chosen as the roll and pitch angles.
3.1 Model Predictive Control Formulation
Using the fuzzy model, we predict the output over a prediction horizon \(N_p\). Define the prediction vector:
$$
\mathbf{Y} = \mathbf{P} \mathbf{x}_k + \mathbf{H} \mathbf{U},
$$
where \(\mathbf{U}\) contains the control inputs over the control horizon \(N_c\). The cost function is:
$$
J = \mathbf{Y}^\mathrm{T} \mathbf{Q} \mathbf{Y} + \mathbf{U}^\mathrm{T} \mathbf{W} \mathbf{U}.
$$
After substituting the prediction expression, we obtain the quadratic programming problem:
$$
\min_{\mathbf{U}} \frac{1}{2} \mathbf{U}^\mathrm{T} \mathbf{E} \mathbf{U} + \mathbf{U}^\mathrm{T} \mathbf{F}, \quad \text{subject to } \mathbf{C}_u \mathbf{U} \le \mathbf{d}_u,\; \mathbf{C}_{\Delta U} \mathbf{U} \le \mathbf{d}_{\Delta U},
$$
where \(\mathbf{E} = 2(\mathbf{H}^\mathrm{T}\mathbf{Q}\mathbf{H} + \mathbf{W})\), \(\mathbf{F} = 2 \mathbf{H}^\mathrm{T}\mathbf{Q}\mathbf{P} \mathbf{x}_k\). The input constraints are enforced through rate‑of‑change limits.
3.2 Adaptive Prediction Horizon Strategy
To dynamically balance tracking performance and computational load, we adjust the prediction horizon \(N_p\) based on the instantaneous tracking error \(e(k) = \sqrt{(y_1 – r_1)^2 + (y_2 – r_2)^2 + (y_3 – r_3)^2}\). Let \(\alpha\) be a small positive integer (e.g., 1). The adaptation rule is:
- If \(e(k) > 0.01\), then \(N_p \leftarrow \max(N_p – \alpha, 1)\); (reduce horizon to increase responsiveness)
- If \(e(k) \le 0.01\), then \(N_p \leftarrow N_p + \alpha\). (increase horizon for better precision)
This mechanism ensures that during large transients the controller reacts more quickly, while in steady state the prediction quality improves.
4. Stability Analysis
We prove the asymptotic stability of the closed‑loop system under the proposed DO‑AFMPC using a Lyapunov approach. Consider the discrete‑time system with disturbance observer:
$$
\mathbf{x}_{k+1} = \mathbf{A} \mathbf{x}_k + \mathbf{B} \mathbf{u}_k + \mathbf{d}_k – \hat{\mathbf{d}}_k.
$$
Define the disturbance estimation error \(\mathbf{e}_{d,k} = \mathbf{d}_k – \hat{\mathbf{d}}_k\). With a properly chosen observer gain, the error dynamics can be written as:
$$
\mathbf{e}_{d,k+1} = (1 – \alpha \mathbf{C}\mathbf{B}) \mathbf{e}_{d,k} + \Delta \mathbf{d}_k, \quad \|\Delta \mathbf{d}_k\| \le \bar{d}.
$$
Choosing the Lyapunov function candidate:
$$
V_k = \mathbf{x}_k^\mathrm{T} \mathbf{P} \mathbf{x}_k + \gamma \mathbf{e}_{d,k}^\mathrm{T} \mathbf{e}_{d,k},
$$
with \(\mathbf{P} > 0\) satisfying \((\mathbf{A} + \mathbf{B}\mathbf{K})^\mathrm{T} \mathbf{P} (\mathbf{A} + \mathbf{B}\mathbf{K}) – \mathbf{P} = -\mathbf{Q}\), \(\mathbf{Q} > 0\), and \(\gamma > 0\) a weighting coefficient. After algebraic manipulations and using Young’s inequality, we obtain:
$$
\Delta V_k \le -\left( \lambda_{\min}(\mathbf{Q}) – \frac{1}{\eta} \right) \|\mathbf{x}_k\|^2 + \bigl[ \eta \|(\mathbf{A}+\mathbf{B}\mathbf{K})^\mathrm{T}\mathbf{P}\mathbf{B}\mathbf{K}\|^2 + \|\mathbf{K}^\mathrm{T}\mathbf{B}^\mathrm{T}\mathbf{P}\mathbf{B}\mathbf{K}\| + \gamma(\rho^2 – 1) \bigr] \|\mathbf{e}_{d,k}\|^2 + 2\gamma\rho\bar{d} \|\mathbf{e}_{d,k}\|,
$$
where \(\rho = |1 – \alpha\mathbf{C}\mathbf{B}| < 1\) and \(\eta > 0\) is a tuning parameter. By selecting \(\eta\) such that \(\lambda_{\min}(\mathbf{Q}) > 1/\eta\) and \(\gamma\) sufficiently large:
$$
\gamma \ge \frac{\eta \|(\mathbf{A}+\mathbf{B}\mathbf{K})^\mathrm{T}\mathbf{P}\mathbf{B}\mathbf{K}\|^2 + \|\mathbf{K}^\mathrm{T}\mathbf{B}^\mathrm{T}\mathbf{P}\mathbf{B}\mathbf{K}\|}{1 – \rho^2},
$$
the term in brackets becomes non‑positive. Consequently, when \(\|\mathbf{x}_k\|\) and \(\|\mathbf{e}_{d,k}\|\) are large enough, \(\Delta V_k < 0\), implying that the system states and estimation errors converge to a bounded region. This establishes the practical asymptotic stability of the quadrotor UAV drone under the proposed controller.
5. Simulation Results
We validate the proposed DO‑AFMPC on a quadrotor UAV drone with parameters listed in the following table.
| Parameter | Value |
|---|---|
| Mass \(m\) | 1.545 kg |
| Arm length \(l\) | 0.255 m |
| Thrust coefficient \(k_T\) | 5.84 × 10⁻⁶ N/(rad·s⁻¹) |
| Drag coefficient \(k_D\) | 1.168 × 10⁻⁷ N/(rad·s⁻¹) |
| Inertia \(J_{xx}\) | 0.029 kg·m² |
| Inertia \(J_{yy}\) | 0.029 kg·m² |
| Inertia \(J_{zz}\) | 0.055 kg·m² |
| Min rotor speed \(\omega_{\min}\) | 805 rad/s |
| Max rotor speed \(\omega_{\max}\) | 1100 rad/s |
| Control horizon \(N_c\) | 3 |
| Sampling time \(t_s\) | 0.2 s |
5.1 Effect of Prediction Horizon
We first compare the tracking performance with fixed prediction horizons \(N_p = 6, 10, 20\). The settling time is measured as the time required for the roll angle error to remain within ±0.05 rad. The results are summarized in the table below.
| Prediction Horizon \(N_p\) | Settling Time (s) |
|---|---|
| 6 | ≈ 5.0 |
| 10 | ≈ 3.0 |
| 20 | ≈ 2.0 |
A shorter horizon yields smaller steady‑state error but longer settling time due to limited predictive capability. The adaptive strategy dynamically adjusts \(N_p\), achieving both fast convergence and high accuracy.
5.2 Comparison of Controllers under Ideal Conditions
We compare DO‑AFMPC with standard MPC, AFMPC (without disturbance observer), and PID controllers. The reference trajectories are sinusoidal functions. The root‑mean‑square error (RMSE) for each attitude angle is listed below.
| Controller | \(\phi\) RMSE | \(\theta\) RMSE | \(\psi\) RMSE |
|---|---|---|---|
| PID | 0.0599 | 0.0657 | 0.0775 |
| MPC | 0.0465 | 0.0413 | 0.0463 |
| AFMPC | 0.0322 | 0.0375 | 0.0391 |
| DO‑AFMPC | 0.0251 | 0.0242 | 0.0332 |
The results confirm that the proposed DO‑AFMPC achieves the lowest RMSE in all channels, demonstrating superior tracking precision.
5.3 Rejection of External Disturbances
To test robustness, we inject a sinusoidal disturbance of amplitude 0.1 and frequency 0.0318 Hz into each attitude channel during hover. The RMSE values under disturbances are presented in the following table.
| Controller | \(\phi\) RMSE | \(\theta\) RMSE | \(\psi\) RMSE |
|---|---|---|---|
| PID | 0.0821 | 0.0889 | 0.0952 |
| MPC | 0.0613 | 0.0582 | 0.0641 |
| AFMPC | 0.0445 | 0.0476 | 0.0503 |
| DO‑AFMPC | 0.0286 | 0.0267 | 0.0314 |
Our method reduces the roll RMSE by 36% compared to AFMPC and by 54% compared to MPC, highlighting the effectiveness of the disturbance observer in compensating for unknown disturbances.
5.4 Robustness to Model Uncertainty
We simulate a scenario where the real inertia values deviate by ±10% from the nominal ones. The tracking RMSE for this case is shown below.
| Controller | \(\phi\) RMSE | \(\theta\) RMSE | \(\psi\) RMSE |
|---|---|---|---|
| PID | 0.0723 | 0.0795 | 0.0881 |
| MPC | 0.0521 | 0.0494 | 0.0550 |
| AFMPC | 0.0388 | 0.0412 | 0.0437 |
| DO‑AFMPC | 0.0263 | 0.0259 | 0.0287 |
Even under significant model mismatch, the proposed DO‑AFMPC maintains the lowest errors, proving its robustness against parameter variations.
6. Conclusion
In this paper, we presented a disturbance observer‑based adaptive fuzzy model predictive control scheme for quadrotor UAV drone attitude regulation. By combining T‑S fuzzy modeling, nonlinear disturbance estimation, and an adaptive prediction horizon, the proposed method effectively handles input constraints, external disturbances, and model uncertainties. Lyapunov analysis confirmed the asymptotic stability of the closed‑loop system. Extensive simulation comparisons demonstrated that DO‑AFMPC outperforms conventional MPC, AFMPC, and PID controllers in both transient and steady‑state performance, achieving lower tracking errors and higher disturbance rejection. The control framework offers a promising solution for reliable and high‑precision attitude control of quadrotor UAV drones in complex environments.
