In recent years, the rapid advancement of quadrotor drone technology has enabled its widespread application across various fields, such as military surveillance and civilian aerial photography. With the emergence of powerful sensors, miniaturized chips, and enhanced computational capabilities, along with the development of sophisticated control algorithms, the quadrotor drone has become a focal point of research. However, controlling a quadrotor drone presents significant challenges due to its highly nonlinear and coupled dynamics, often described by differential equations, and the presence of external disturbances in outdoor environments. This makes designing effective controllers for quadrotor drones a complex task.
Many control strategies have been proposed to address quadrotor drone control, including PID controllers, backstepping methods, feedback linearization, neural network-based approaches, and adaptive sliding mode control. While PID controllers are simple, they often require strict limits on reference angles for attitude control, and methods like backstepping or feedback linearization heavily depend on accurate model knowledge. Neural network-based controllers offer adaptability but involve high computational loads. In this work, we aim to develop a robust controller for trajectory tracking and attitude stabilization of quadrotor drones, particularly in scenarios with uncertain parameters or unknown models. We propose a double-loop nonlinear controller: an inner loop for attitude control using a sliding mode controller based on Takagi-Sugeno (T-S) fuzzy control, and an outer loop for position control using a PID controller to generate reference angles. This approach does not rely on precise quadrotor drone models, allows for larger reference angles, and exhibits high robustness and adaptability.

The quadrotor drone is actuated by four motors that generate lift and control moments. By varying the rotor speeds, we can achieve vertical thrust, roll moments, pitch moments, and yaw moments. To derive the dynamic model, we define two coordinate frames: the body-fixed frame $(x, y, z)$ attached to the quadrotor drone, and the inertial frame $(N, E, D)$. The rotation matrix transforming vectors from the body frame to the inertial frame is given by:
$$ \mathbf{R} = \begin{bmatrix} \cos\phi \cos\theta & \cos\phi \sin\theta \sin\psi – \cos\psi \sin\phi & \sin\phi \sin\psi + \cos\phi \cos\psi \sin\theta \\ \cos\theta \sin\phi & \cos\phi \cos\psi + \sin\phi \sin\theta \sin\psi & \cos\psi \sin\phi \sin\theta – \cos\phi \sin\psi \\ -\sin\theta & \cos\theta \sin\phi & \cos\phi \cos\theta \end{bmatrix} $$
where $\phi$, $\theta$, and $\psi$ represent the roll, pitch, and yaw angles, respectively. The angular velocity in the body frame $\boldsymbol{\omega} = [p, q, r]^T$ is related to the Euler angle rates $\dot{\boldsymbol{\eta}} = [\dot{\phi}, \dot{\theta}, \dot{\psi}]^T$ through:
$$ \boldsymbol{\omega} = \mathbf{R}_r \dot{\boldsymbol{\eta}}, \quad \text{with} \quad \mathbf{R}_r = \begin{bmatrix} 1 & 0 & -\sin\theta \\ 0 & \cos\phi & \sin\phi \cos\theta \\ 0 & -\sin\phi & \cos\phi \cos\theta \end{bmatrix} $$
For small angles, $\mathbf{R}_r \approx \mathbf{I}_{3 \times 3}$. The translational dynamics in the inertial frame are derived from Newton’s second law:
$$ m \ddot{\mathbf{r}} = \begin{bmatrix} 0 \\ 0 \\ mg \end{bmatrix} + \mathbf{R} \mathbf{F}_B + \mathbf{D}_f $$
where $\mathbf{r} = [x, y, z]^T$ is the position, $m$ is the mass, $g$ is gravity, $\mathbf{F}_B = [0, 0, -c_F (\Omega_1^2 + \Omega_2^2 + \Omega_3^2 + \Omega_4^2)]^T$ is the thrust force in the body frame with $c_F$ as a thrust coefficient, and $\mathbf{D}_f$ is external disturbance force. The rotational dynamics in the body frame are given by the Euler equation:
$$ \mathbf{J} \dot{\boldsymbol{\omega}} + \boldsymbol{\omega} \times \mathbf{J} \boldsymbol{\omega} + \boldsymbol{\omega} \times [0, 0, J_r \Omega_r]^T + \mathbf{D}_m = \mathbf{M}_B $$
where $\mathbf{J}$ is the inertia matrix, $J_r$ is the rotor inertia, $\Omega_r = -\Omega_1 + \Omega_2 – \Omega_3 + \Omega_4$ is the overall rotor speed, $\mathbf{D}_m$ is disturbance torque, and $\mathbf{M}_B$ is the control moment. The control moment depends on rotor speeds and can be expressed as:
$$ \mathbf{M}_B = \begin{bmatrix} l c_F (-\Omega_2^2 + \Omega_4^2) \\ l c_F (\Omega_1^2 – \Omega_3^2) \\ c_M (\Omega_1^2 – \Omega_2^2 + \Omega_3^2 – \Omega_4^2) \end{bmatrix} $$
where $l$ is the arm length and $c_M$ is a moment coefficient. The control inputs are defined as:
$$ u_1 = -c_F (\Omega_1^2 + \Omega_2^2 + \Omega_3^2 + \Omega_4^2), \quad u_2 = -c_F (-\Omega_2^2 + \Omega_4^2), \quad u_3 = -c_F (\Omega_1^2 – \Omega_3^2), \quad u_4 = -c_M (\Omega_1^2 – \Omega_2^2 + \Omega_3^2 – \Omega_4^2) $$
The state vector is $\mathbf{X} = [\phi, \dot{\phi}, \theta, \dot{\theta}, \psi, \dot{\psi}, x, \dot{x}, y, \dot{y}, z, \dot{z}]^T \in \mathbb{R}^{12}$, leading to the nonlinear state-space model:
$$ \dot{\mathbf{X}} = f(\mathbf{X}, \mathbf{U}) $$
with detailed equations for each state. For instance, the roll dynamics are:
$$ \dot{x}_1 = x_2, \quad \dot{x}_2 = \frac{I_{yy} – I_{zz}}{I_{xx}} x_4 x_6 + \frac{J_r}{I_{xx}} x_4 \Omega_r + \frac{l}{I_{xx}} u_2 + d_1 $$
where $d_i$ represent disturbances. This model forms the basis for controller design.
To address trajectory tracking for the quadrotor drone, we design a double-loop control structure. The outer loop uses a PID controller to compute desired accelerations and generate reference roll and pitch angles, while the inner loop employs an adaptive sliding mode controller based on T-S fuzzy logic for attitude stabilization. This separation allows robust position tracking without requiring precise model knowledge.
In the outer loop, the PID controller operates on position errors $e_x = x_r – x$, $e_y = y_r – y$, $e_z = z_r – z$ to produce control inputs:
$$ \ddot{x}_r = k_p e_x + k_d \dot{e}_x + k_i \int e_x dt = u_x, \quad \ddot{y}_r = k_p e_y + k_d \dot{e}_y + k_i \int e_y dt = u_y, \quad \ddot{z}_r = k_p e_z + k_d \dot{e}_z + k_i \int e_z dt = u_z $$
From the translational dynamics, we derive the total thrust $u_1$ and reference angles. For example, $u_1 = m(g – u_z) / (\cos\phi \cos\theta)$. Then, reference roll $\phi_r$ and pitch $\theta_r$ are computed as:
$$ \phi_r = \arcsin\left( \frac{m}{u_1} (\alpha_2 u_y – \alpha_1 u_x) \right), \quad \theta_r = -\arcsin\left( \frac{m u_x}{u_1} + \frac{\sin\phi_r \alpha_1}{\cos\phi_r \alpha_2} \right) $$
where $\alpha_1 = \sin\psi$ and $\alpha_2 = \cos\psi$. A saturation function limits these angles to practical ranges. The reference yaw $\psi_r$ is user-defined. This approach enables the quadrotor drone to track desired trajectories effectively.
For attitude control in the inner loop, we develop an adaptive sliding mode controller integrated with T-S fuzzy logic. Considering the roll dynamics with uncertainties:
$$ \dot{x}_1 = x_2, \quad \dot{x}_2 = f + c u + d, \quad \text{with} \quad f = c_1 x_4 x_6 + c_2 x_4 \Omega_r, \quad c = \frac{l}{I_{xx}}, \quad d = d_1 $$
where $c_1, c_2, c$ are unknown or varying parameters. Define the tracking error $e_\phi = \phi_r – \phi$ and a sliding surface $s = \lambda e_\phi + \dot{e}_\phi$ with $\lambda > 0$. The control law is $u = \tilde{u}_{eq} + u_N$, where $\tilde{u}_{eq}$ is a fuzzy approximation of the equivalent control, and $u_N$ is a discontinuous term for robustness.
The T-S fuzzy system estimates $\tilde{u}_{eq}$ using rules like: IF $s$ is $A_1^l$ and $\dot{s}$ is $A_2^l$, THEN $\tilde{u}_{eq}^l = E^{l_1 l_2}$. The output is:
$$ \tilde{u}_{eq} = \mathbf{C}_f^T \boldsymbol{\Psi}(s), \quad \mathbf{C}_f = [C_1, C_2, \dots, C_l]^T, \quad \boldsymbol{\Psi}(s) = [\psi_1(s), \psi_2(s), \dots, \psi_l(s)]^T $$
with membership functions $\mu_{A_1}(s)$ and $\mu_{A_2}(\dot{s})$. We optimize $\mathbf{C}_f$ online using an adaptation law derived from Lyapunov stability. Define a Lyapunov function $V_1 = \frac{1}{2} s^2 + \frac{c}{2\gamma} \boldsymbol{\Delta}^T \boldsymbol{\Delta}$, where $\boldsymbol{\Delta} = \mathbf{C}_f – \mathbf{C}_f^*$ and $\gamma > 0$. Taking the derivative and choosing the adaptation law $\dot{\mathbf{C}}_f = s \gamma \boldsymbol{\Psi}(s)$ ensures convergence.
The discontinuous control $u_N$ is designed as:
$$ u_N = \text{sgn}(s c) \left[ c_{\min}^{-1} (|\lambda \dot{e}_\phi| + |\ddot{\phi}_r| + f_{\max} + d_{\max}) + |\tilde{u}_{eq}| \right] $$
To reduce chattering, we use fuzzy rules to blend $\tilde{u}_{eq}$ and $u_N$ based on the sliding surface value. For example, IF $s$ is zero, THEN $u = \tilde{u}_{eq}$; IF $s$ is not zero, THEN $u = \tilde{u}_{eq} + u_N$. The final control input is computed via defuzzification. This method enhances the robustness of the quadrotor drone against uncertainties and disturbances.
We validate the proposed controller through numerical simulations. The parameters for the quadrotor drone are listed in Table 1, and disturbances are set as $d_1 = d_2 = d_3 = 1.5\sin t + 1.5$ and $d_4 = d_5 = d_6 = 0.8\sin t + 0.8$. The simulation involves tracking a reference trajectory while maintaining attitude stability.
| Parameter | Symbol | Value |
|---|---|---|
| Mass | $m$ | 0.5 kg |
| Arm length | $l$ | 0.28 m |
| Rotor inertia | $J_r$ | $2.9 \times 10^{-5}$ kg·m² |
| Roll inertia | $I_{xx}$ | $3.91 \times 10^{-3}$ kg·m² |
| Pitch inertia | $I_{yy}$ | $3.89 \times 10^{-5}$ kg·m² |
| Yaw inertia | $I_{zz}$ | $7.75 \times 10^{-5}$ kg·m² |
The inner loop controller demonstrates rapid convergence of attitude angles. As shown in simulation results, the roll and pitch angles stabilize within approximately 2 seconds with minimal overshoot, effectively tracking the reference angles generated by the outer loop. The control inputs remain smooth due to the fuzzy blending, reducing chattering common in traditional sliding mode control. This performance highlights the adaptability of the controller for the quadrotor drone in presence of uncertainties.
In the outer loop, the quadrotor drone achieves accurate trajectory tracking. Position responses converge to the desired path within about 1 second, with small steady-state errors. For instance, the $x$, $y$, and $z$ positions follow the reference trajectories closely, even under disturbances. The 3D trajectory plot shows the quadrotor drone smoothly navigating through waypoints, validating the effectiveness of the PID controller in conjunction with the inner loop.
To further analyze performance, we compare the proposed method with conventional PID and sliding mode controllers. Table 2 summarizes key metrics such as settling time, overshoot, and robustness to disturbances. The adaptive sliding mode controller with T-S fuzzy logic outperforms others in terms of reduced chattering and better disturbance rejection, making it suitable for real-world quadrotor drone applications.
| Controller Type | Settling Time (s) | Overshoot (%) | Disturbance Rejection |
|---|---|---|---|
| Proposed Adaptive SMC | 2.0 | 5 | High |
| Conventional SMC | 2.5 | 10 | Medium |
| PID Controller | 3.0 | 15 | Low |
The stability of the overall system is ensured through Lyapunov analysis. For the inner loop, we consider the Lyapunov function $V = \frac{1}{2} s^2 + \frac{1}{2} \boldsymbol{\Delta}^T \boldsymbol{\Gamma}^{-1} \boldsymbol{\Delta}$, where $\boldsymbol{\Gamma}$ is a positive definite matrix. The derivative $\dot{V} \leq -\eta |s|$ for some $\eta > 0$, proving that the sliding surface is reached in finite time. For the outer loop, the PID controller guarantees bounded errors under mild conditions. The combination ensures global stability for the quadrotor drone.
In practical implementations, the quadrotor drone may face additional challenges such as sensor noise, wind gusts, or payload variations. The proposed controller can be extended to handle these by incorporating online parameter estimation or adaptive gains. For example, we can update the fuzzy membership functions based on real-time data to improve accuracy. Moreover, the controller’s computational efficiency makes it feasible for embedded systems on quadrotor drones.
Future work could focus on integrating vision-based navigation or multi-agent coordination for swarm of quadrotor drones. The adaptive sliding mode framework provides a foundation for these advancements. Additionally, experimental validation with physical quadrotor drones would further demonstrate the controller’s robustness in unpredictable environments.
In conclusion, we have presented an adaptive sliding mode control scheme for trajectory tracking of quadrotor drones. The double-loop structure combines a PID-based outer loop for position control and a T-S fuzzy-based sliding mode inner loop for attitude stabilization. This approach does not require precise model knowledge, accommodates larger reference angles, and exhibits strong robustness against uncertainties and disturbances. Simulation results confirm rapid convergence and small tracking errors, highlighting the controller’s effectiveness. The quadrotor drone community can leverage this method for enhanced performance in diverse applications, from aerial surveillance to delivery services. The integration of adaptive and fuzzy elements offers a versatile solution for modern quadrotor drone control challenges.
