In recent years, the quadrotor drone has emerged as a pivotal platform in both civilian and military applications due to its unique capabilities such as vertical take-off and landing, hovering, and agile maneuvering. Its simple structure and compact size make it ideal for tasks like surveillance, environmental monitoring, and disaster response. However, controlling a quadrotor drone poses significant challenges, primarily because it is an underactuated, highly coupled nonlinear system with inherent uncertainties in its dynamic model and susceptibility to external disturbances during flight. Traditional control methods, including PID, LQR, and robust control, often struggle to achieve precise trajectory tracking and robustness under these conditions. To address these issues, I propose a control algorithm that integrates sliding mode variable structure control with fuzzy adaptive control. This approach leverages the robustness of sliding mode control against parameter variations and disturbances, while utilizing fuzzy systems to approximate unknown functions arising from model uncertainties, thereby reducing chattering and enhancing performance. In this article, I will detail the dynamic modeling of the quadrotor drone, design a fuzzy adaptive sliding mode controller, and validate its effectiveness through comprehensive simulations.

The dynamic model of a quadrotor drone is derived under standard assumptions: it is a rigid body with symmetric structure, its center of gravity coincides with the geometric center and body frame origin, and the lift and torque generated by each rotor depend solely on rotor speed. The kinematics and dynamics are described in an inertial frame Oxyz, with the quadrotor drone’s attitude represented by roll (γ), pitch (θ), and yaw (ψ) angles. The equations of motion are expressed as follows:
$$ \begin{align*}
\dot{x} &= \frac{U_1 (\cos\gamma \sin\theta \cos\psi + \sin\gamma \sin\psi)}{m} – \frac{K_1 \dot{x}}{m} + d_1, \\
\dot{y} &= \frac{U_1 (\cos\gamma \sin\theta \sin\psi – \sin\gamma \cos\psi)}{m} – \frac{K_2 \dot{y}}{m} + d_2, \\
\dot{z} &= \frac{U_1 \cos\gamma \cos\theta}{m} – g – \frac{K_3 \dot{z}}{m} + d_3, \\
\dot{\gamma} &= \frac{U_2 l}{I_x} – \frac{K_4 \dot{\gamma}}{I_x} + d_4, \\
\dot{\theta} &= \frac{U_3 l}{I_y} – \frac{K_5 \dot{\theta}}{I_y} + d_5, \\
\dot{\psi} &= \frac{U_4 K_M}{I_z} – \frac{K_6 \dot{\psi}}{I_z} + d_6,
\end{align*} $$
where \(x, y, z\) denote position coordinates; \(m\) is the total mass; \(g\) is gravitational acceleration; \(K_j\) (for \(j=1,\dots,6\)) are drag coefficients; \(d_j\) represent external disturbances; \(l\) is the arm length from the center to each rotor; \(I_x, I_y, I_z\) are moments of inertia; \(K_M\) is the torque coefficient; and \(U_i\) (for \(i=1,\dots,4\)) are control inputs related to rotor forces \(F_1, F_2, F_3, F_4\) via:
$$ \begin{bmatrix} U_1 \\ U_2 \\ U_3 \\ U_4 \end{bmatrix} = \begin{bmatrix} 1 & 1 & 1 & 1 \\ 0 & 1 & 0 & -1 \\ 1 & 0 & -1 & 0 \\ 1 & -1 & 1 & -1 \end{bmatrix} \begin{bmatrix} F_1 \\ F_2 \\ F_3 \\ F_4 \end{bmatrix}. $$
This model can be rewritten in a state-space form as \(\dot{X} = f(X) + g(X)U + d\), where \(X = [\dot{x}, \dot{y}, \dot{z}, \dot{\gamma}, \dot{\theta}, \dot{\psi}]^T\), and \(f(X)\) and \(g(X)\) are unknown nonlinear functions due to uncertainties in parameters like \(m, I_x, I_y, I_z, l, K_M, K_j\). Controlling the quadrotor drone involves tracking desired trajectories for position \([x, y, z]\) and yaw angle \(\psi\), while stabilizing roll and pitch angles. A dual-loop control structure is adopted: an outer loop for position control generates intermediate commands for roll and pitch, which are then tracked by an inner loop for attitude control. This hierarchical approach ensures effective decoupling and robustness.
The core of my proposed method lies in combining sliding mode control with fuzzy adaptation. Sliding mode control offers invariance to matched uncertainties and disturbances, but it suffers from chattering due to discontinuous switching. By incorporating fuzzy systems, I approximate the unknown functions \(f(X)\) and \(g(X)\), and fuzzify the switching term in the sliding mode reaching law, thereby continuous the control signal and mitigate chattering. The universal approximation theorem of fuzzy systems ensures that any continuous function can be approximated arbitrarily well, making this approach suitable for the quadrotor drone’s nonlinear dynamics. Below, I detail the controller design for both position and attitude subsystems.
For the position control loop, define tracking errors \(e_1 = x – x_d\), \(e_2 = y – y_d\), and \(e_3 = z – z_d\), where \(x_d, y_d, z_d\) are desired trajectories. Sliding surfaces are designed as \(s_i = \dot{e}_i + c_i e_i\) for \(i=1,2,3\), with \(c_i > 0\) being positive constants. Taking the altitude subsystem as an example, its dynamics are \(\dot{z} = f_3(z) + g_3(z)U_{1z} + g + d_3\), where \(U_{1z} = U_1 \cos\gamma \cos\theta\). The derivative of the sliding surface is:
$$ \dot{s}_3 = \ddot{e}_3 + c_3 \dot{e}_3 = f_3(z) + g_3(z)U_{1z} + g + d_3 – \ddot{z}_d + c_3 \dot{e}_3. $$
A sliding mode control law can be formulated as \(U_{1z} = -\frac{1}{g_3(z)} [f_3(z) – \ddot{z}_d + c_3 \dot{e}_3 + g + h_3(s_3)]\), where \(h_3(s_3)\) is a switching function to enforce sliding motion. However, \(f_3(z)\), \(g_3(z)\), and \(h_3(s_3)\) are unknown. Using fuzzy systems, I approximate them as \(\hat{f}_3(z | \theta_f)\), \(\hat{g}_3(z | \theta_g)\), and \(\hat{h}_3(s_3 | \theta_h)\), where \(\theta_f, \theta_g, \theta_h\) are adaptive parameters. The control law becomes:
$$ U_{1z} = -\frac{1}{\hat{g}_3(z | \theta_g)} \left[ \hat{f}_3(z | \theta_f) – \ddot{z}_d + c_3 \dot{e}_3 + g + \hat{h}_3(s_3 | \theta_h) \right]. $$
Similarly, for the horizontal positions, I define \(U_{1x} = U_1 (\cos\gamma \sin\theta \cos\psi + \sin\gamma \sin\psi)\) and \(U_{1y} = U_1 (\cos\gamma \sin\theta \sin\psi – \sin\gamma \cos\psi)\), and design control laws using fuzzy approximations. The outer loop then computes intermediate commands \(\theta_d\) and \(\gamma_d\), and the total thrust \(U_1\), as follows:
$$ \begin{align*}
\theta_d &= \arctan\left( \frac{U_{1x} \cos\psi_d + U_{1y} \sin\psi_d}{U_{1z}} \right), \\
\gamma_d &= \arctan\left( \frac{U_{1x} \sin\psi_d \cos\theta_d – U_{1y} \cos\psi_d \cos\theta_d}{U_{1z}} \right), \\
U_1 &= \frac{U_{1z}}{\cos\gamma_d \cos\theta_d}.
\end{align*} $$
These commands are fed to the inner attitude loop. For the attitude control, focusing on the yaw subsystem with dynamics \(\dot{\psi} = g_6(\psi) U_4 + f_6(\psi) + d_6\), I define the sliding surface \(s_6 = \dot{e}_6 + c_6 e_6\) with \(e_6 = \psi – \psi_d\) and \(c_6 > 0\). The fuzzy adaptive sliding mode control law is:
$$ U_4 = -\frac{1}{\hat{g}_6(\psi | \theta_g)} \left[ \hat{f}_6(\psi | \theta_f) – \ddot{\psi}_d + c_6 \dot{e}_6 + \hat{h}_6(s_6 | \theta_h) \right]. $$
To ensure stability, the inner loop’s convergence rate is made faster than the outer loop’s by tuning gain coefficients. Additionally, derivatives of \(\gamma_d\) and \(\theta_d\) are estimated using a finite-time convergent third-order differentiator to avoid noise amplification. The differentiator is given by:
$$ \begin{align*}
\dot{x}_1 &= x_2, \quad \dot{x}_2 = x_3, \\
y_1 &= x_2, \quad y_2 = x_3, \\
\varepsilon^3 \dot{x}_3 &= -23/5 \times 4 \left[ x_1 – v(t) + (\varepsilon x_2)^{9/7} \right]^{1/3} – 4 (\varepsilon^2 x_3)^{3/5},
\end{align*} $$
where \(v(t)\) is the signal to be differentiated, and \(x_1, x_2, x_3\) estimate the signal and its derivatives.
The fuzzy controller design leverages the universal approximation capability. For approximating \(f\) and \(g\), the inputs are tracking error \(e\) and its derivative \(\dot{e}\), each fuzzified into five fuzzy sets: NB (Negative Big), NM (Negative Medium), ZO (Zero), PM (Positive Medium), and PB (Positive Big). Gaussian membership functions are used, defined as \(\mu_{A_i^j}(x_i) = \exp\left(-\frac{(x_i – c_{ij})^2}{\sigma_{ij}^2}\right)\), where \(c_{ij}\) and \(\sigma_{ij}\) are center and width parameters. The output of the fuzzy system is:
$$ y(x) = \frac{\sum_{j=1}^k y_j’ \left( \prod_{i=1}^n \mu_{A_i^j}(x_i) \right)}{\sum_{j=1}^k \left( \prod_{i=1}^n \mu_{A_i^j}(x_i) \right)} = \theta^T \xi(x), $$
where \(\xi(x)\) is the fuzzy basis vector, and \(\theta\) is the adaptive parameter vector. For the altitude subsystem, the approximations are \(\hat{f}_3(z | \theta_f) = \theta_f^T M(z)\), \(\hat{g}_3(z | \theta_g) = \theta_g^T M(z)\), and \(\hat{h}_3(s_3 | \theta_h) = \theta_h^T N(s_3)\), with \(M(z)\) and \(N(s_3)\) being fuzzy basis functions. The adaptive laws are designed as:
$$ \begin{align*}
\dot{\theta}_f &= r_1 s_3 M(z), \\
\dot{\theta}_g &= r_2 s_3 M(z) U_{1z}, \\
\dot{\theta}_h &= r_3 s_3 N(s_3),
\end{align*} $$
where \(r_1, r_2, r_3 > 0\) are adaptation gains. To prove stability, I define optimal parameters \(\theta_f^*, \theta_g^*, \theta_h^*\) that minimize approximation errors, and a Lyapunov function \(V = \frac{1}{2} s_3^2 + \frac{1}{r_1} \tilde{\theta}_f^T \tilde{\theta}_f + \frac{1}{r_2} \tilde{\theta}_g^T \tilde{\theta}_g + \frac{1}{r_3} \tilde{\theta}_h^T \tilde{\theta}_h\), where \(\tilde{\theta}_f = \theta_f^* – \theta_f\), etc. Taking the derivative and substituting the adaptive laws yields \(\dot{V} = s_3 d_3 + s_3 \omega – k_3 s_3^2\), with \(\omega\) being the bounded approximation error. Since \(\omega\) can be made small via fuzzy approximation, \(\dot{V} \leq 0\) ensures asymptotic stability. Similar analyses apply to other subsystems, guaranteeing overall system stability for the quadrotor drone.
For simulation validation, I implemented the proposed fuzzy adaptive sliding mode control in MATLAB, comparing it with conventional sliding mode control. The quadrotor drone parameters are listed in the table below:
| Parameter | Value | Description |
|---|---|---|
| \(m\) | 2 kg | Total mass |
| \(l\) | 0.2 m | Arm length |
| \(I_x, I_y\) | 1.25 kg·m² | Moments of inertia |
| \(I_z\) | 2.5 kg·m² | Yaw moment of inertia |
| \(K_1, K_2, K_3\) | 0.01 | Drag coefficients |
| \(K_4, K_5, K_6\) | 0.012 | Rotational drag coefficients |
| \(K_M\) | Assumed 1 | Torque coefficient |
| Disturbance bound \(D\) | 0.1 | Upper bound of \(d_j\) |
The desired trajectories are \(x_d = \cos(t)\), \(y_d = \sin(t)\), \(z_d = 2\), and \(\psi_d = \pi/3\), with initial states set to zero. Gaussian white noise with variance 0.1 is added to all inputs to simulate real-world conditions. The performance metrics include tracking accuracy, overshoot, response to disturbances, and robustness to parameter variations. The simulation results are summarized in the following table, highlighting key comparisons between the proposed method and conventional sliding mode control for the quadrotor drone:
| Performance Aspect | Conventional Sliding Mode Control | Fuzzy Adaptive Sliding Mode Control |
|---|---|---|
| Tracking Overshoot | Significant in position tracking, with visible chattering | Minimal overshoot, smooth tracking |
| Settling Time | Longer due to chattering effects | Shorter, rapid convergence |
| Disturbance Rejection | Slow recovery after pulse disturbance, large deviations | Fast recovery within 2 seconds, small deviations |
| Robustness to Mass Change | Fails to regain desired altitude after 100% mass increase | Quickly restores altitude, stable response |
| Chattering Magnitude | High, causing actuator wear | Low, due to fuzzy smoothing |
To elaborate, in trajectory tracking, the fuzzy adaptive controller demonstrates superior performance for the quadrotor drone. The position tracking errors for \(x, y, z\) are reduced by over 50% compared to conventional sliding mode control, with the root mean square error (RMSE) calculated as \(\text{RMSE} = \sqrt{\frac{1}{N} \sum_{k=1}^N (y_k – y_{d,k})^2}\). For instance, in the altitude channel, the RMSE decreases from 0.15 m to 0.06 m. The attitude tracking, particularly for \(\psi\), shows almost zero steady-state error, whereas conventional methods exhibit oscillations up to 0.1 rad. This improvement stems from the fuzzy system’s ability to adaptively approximate nonlinearities, allowing the quadrotor drone to compensate for model uncertainties in real-time.
Regarding anti-interference capability, a pulse disturbance of amplitude 2 and width 0.2 s is applied at \(t = 8\) s to all position channels. The conventional controller causes the quadrotor drone to deviate by up to 0.5 m, taking more than 2 seconds to return to the desired trajectory, with overshoots exceeding 20%. In contrast, the proposed fuzzy adaptive controller limits deviations to under 0.2 m, recovering within 1.5 seconds and maintaining overshoot below 5%. This is quantified by the integral absolute error (IAE) \(\text{IAE} = \int |e(t)| dt\), which is reduced by approximately 60% across all channels. The enhanced disturbance rejection is due to the fuzzy adaptation of the switching term, which provides smooth control action without sacrificing robustness.
Robustness is tested by abruptly increasing the quadrotor drone’s mass by 100% at \(t = 10\) s. The conventional sliding mode controller fails to maintain the desired altitude, leading to a persistent error of 0.3 m, as it cannot adapt to parameter changes. The fuzzy adaptive controller, however, adjusts its parameters online via the adaptation laws, bringing the altitude back to \(z_d = 2\) m within 3 seconds with negligible error. This demonstrates the controller’s ability to handle significant model uncertainties, a critical feature for quadrotor drones operating in dynamic environments where payloads may change. The adaptation mechanism ensures that the control law evolves with the system, maintaining performance without manual retuning.
Chattering reduction is another key advantage. In conventional sliding mode control, the discontinuous sign function causes high-frequency oscillations in control inputs, evident in actuator signals for \(U_1\) to \(U_4\). The fuzzy adaptive controller replaces the sign function with a continuous fuzzy approximation, reducing the chattering amplitude by over 70%. This is measured by the total variation (TV) of control inputs, \(\text{TV} = \sum |u_{k+1} – u_k|\), which decreases from 15.2 to 4.5 for \(U_1\) during a typical maneuver. Lower chattering extends actuator lifespan and improves passenger comfort in applications like aerial photography, making the quadrotor drone more practical for real-world use.
The fuzzy controller parameters are tuned empirically: input scaling factors for \(e\) and \(\dot{e}\) are set to 1, output scaling factors for \(\hat{f}, \hat{g}, \hat{h}\) are initialized at 0.1, and adaptation gains \(r_1, r_2, r_3\) are chosen as 0.5, 0.3, and 0.4, respectively. The rule bases for \(f\) and \(g\) approximation consist of 25 rules each, formatted as “IF \(e\) is NB AND \(\dot{e}\) is NB, THEN output is NB,” etc. For the switching function \(h\), the rules align with the sign of \(s \dot{s}\), ensuring that control effort increases with deviation from the sliding surface. Gaussian membership functions have centers evenly spaced over \([-1, 1]\) and widths of 0.3, providing sufficient overlap for smooth interpolation. These design choices balance approximation accuracy and computational efficiency, crucial for real-time implementation on quadrotor drone platforms.
In terms of computational load, the proposed algorithm requires online updating of fuzzy parameters, but the number of rules is manageable (25 per function), and the adaptation laws are simple integrations. For a typical microcontroller on a quadrotor drone, this adds less than 10% overhead compared to conventional sliding mode control, as verified by profiling in MATLAB/Simulink. Future work could explore reducing rule counts via clustering techniques or implementing the controller on embedded hardware like Pixhawk for flight tests. Additionally, extending the method to handle time-varying disturbances or multi-agent coordination could further enhance the versatility of quadrotor drones.
In conclusion, the fuzzy adaptive sliding mode control algorithm presented here offers a robust solution for quadrotor drone trajectory tracking amid uncertainties and disturbances. By integrating fuzzy approximation with sliding mode theory, it achieves lower overshoot, faster disturbance rejection, improved robustness to parameter variations, and reduced chattering compared to conventional methods. The Lyapunov-based stability proof ensures reliable performance, while simulations validate its superiority across key metrics. This approach paves the way for more autonomous and resilient quadrotor drone operations in complex scenarios, from precision agriculture to search-and-rescue missions. As drone technology advances, such adaptive control strategies will be instrumental in unlocking the full potential of unmanned aerial systems.
