With the rapid development of the low-altitude economy, quadcopters have demonstrated extensive applications in various fields such as surveillance, delivery, and environmental monitoring. However, the reliability of quadcopter operations is often compromised by actuator faults, including motor failures and propeller damage, as well as multi-source external disturbances like wind gusts and sensor noise. These issues can lead to performance degradation or even catastrophic failures, emphasizing the need for robust control strategies that ensure safe and precise flight under adverse conditions. In this paper, we address these challenges by designing a fault-tolerant control scheme that integrates a nonlinear disturbance observer with sliding mode control, specifically tailored for quadcopter systems.
Existing control methods for quadcopters, such as proportional-integral-derivative (PID) control, are widely used due to their simplicity and ease of implementation. However, PID controllers often struggle with the nonlinear and strongly coupled dynamics of quadcopters, especially when subjected to uncertainties and faults. Sliding mode control (SMC) offers inherent robustness against disturbances and model uncertainties, but it suffers from chattering effects that can exacerbate actuator wear. Adaptive control techniques can compensate for uncertainties through online parameter adjustment, but they may exhibit slow convergence or require complex tuning. Recent approaches have explored disturbance observers (DOBs) to estimate and cancel lumped disturbances, yet many designs rely on linear models or prior knowledge of disturbance characteristics, limiting their applicability in real-world scenarios. To overcome these limitations, we propose a novel active fault-tolerant control strategy that leverages a hyperbolic tangent-based nonlinear disturbance observer (NDO) combined with a sliding mode controller, enabling real-time estimation and compensation of disturbances and actuator faults in quadcopter systems.

The mathematical modeling of a quadcopter involves describing its dynamics in both translational and rotational motions. We consider a standard quadcopter model with six degrees of freedom, where the equations of motion are derived using Newton-Euler formalism. The quadcopter dynamics can be expressed as a set of nonlinear differential equations, accounting for forces and moments generated by the rotors, aerodynamic drag, and gravitational effects. The model is decoupled into position and attitude subsystems to simplify controller design. The position subsystem governs the translational motion along the x, y, and z axes, while the attitude subsystem deals with the orientation angles: roll, pitch, and yaw. The general form of the quadcopter dynamics is given by:
$$ \begin{align*}
\ddot{x} &= -\frac{K_1}{m} \dot{x} + \frac{1}{m} u_1 (\cos \phi \sin \theta \cos \psi + \sin \phi \sin \psi) + d_1 \\
\ddot{y} &= -\frac{K_2}{m} \dot{y} + \frac{1}{m} u_1 (\cos \phi \sin \theta \sin \psi – \sin \phi \cos \psi) + d_2 \\
\ddot{z} &= -\frac{K_3}{m} \dot{z} + \frac{1}{m} u_1 \cos \phi \cos \theta – g + d_3 \\
\ddot{\phi} &= \frac{I_y – I_z}{I_x} \dot{\theta} \dot{\psi} – \frac{K_4}{I_x} \dot{\phi} + \frac{1}{I_x} u_2 + d_4 \\
\ddot{\theta} &= \frac{I_z – I_x}{I_y} \dot{\phi} \dot{\psi} – \frac{K_5}{I_y} \dot{\theta} + \frac{1}{I_y} u_3 + d_5 \\
\ddot{\psi} &= \frac{I_x – I_y}{I_z} \dot{\phi} \dot{\theta} – \frac{K_6}{I_z} \dot{\psi} + \frac{1}{I_z} u_4 + d_6
\end{align*} $$
In these equations, \( x, y, z \) represent the position coordinates in the inertial frame; \( \phi, \theta, \psi \) denote the roll, pitch, and yaw angles; \( I_x, I_y, I_z \) are the moments of inertia about the body axes; \( K_1 \) to \( K_6 \) are drag coefficients; \( d_1 \) to \( d_6 \) represent external disturbances; \( u_1 \) is the total thrust force; \( u_2, u_3, u_4 \) are the control moments for roll, pitch, and yaw; \( m \) is the mass of the quadcopter; and \( g \) is the acceleration due to gravity. This model serves as the foundation for designing the fault-tolerant control scheme, focusing on handling actuator faults and disturbances.
Actuator faults in a quadcopter can arise from various sources, such as mechanical wear, electronic failures, or environmental factors. We model these faults as a combination of efficiency loss and bias faults. The actuator fault model is described by:
$$ u_i = \rho_i U_i + \alpha_i f_i, \quad i = 1, 2, 3, 4 $$
where \( u_i \) is the actual control input, \( U_i \) is the desired control input computed by the controller, \( \rho_i \in [0,1] \) is the efficiency factor indicating the level of actuator effectiveness (with \( \rho_i = 1 \) meaning no fault and \( \rho_i < 1 \) indicating partial loss of effectiveness), \( f_i \) is a bias fault representing constant offsets, and \( \alpha_i \) is a binary parameter (0 or 1) that activates the bias fault. Substituting this fault model into the quadcopter dynamics results in a modified system that explicitly accounts for fault effects, allowing the design of a controller that can tolerate such anomalies. The resulting equations incorporate lumped disturbances \( D_i \), which combine external disturbances and fault-induced terms, facilitating the use of a disturbance observer for estimation and compensation.
To enhance the robustness of the quadcopter control system, we design a nonlinear disturbance observer (NDO) based on a hyperbolic tangent tracking differentiator. This observer estimates the lumped disturbances in real-time without requiring prior knowledge of disturbance characteristics. For a general second-order nonlinear system of the form:
$$ \begin{align*}
\dot{x}_1 &= x_2 \\
\dot{x}_2 &= f(x) + b(x) u + d
\end{align*} $$
where \( d \) represents the lumped disturbance, the NDO is constructed as follows:
$$ \begin{align*}
\dot{\hat{x}}_2 &= f(x) + b(x) u + \hat{d} \\
\dot{\hat{d}} &= R^2 \left[ a_1 \tanh\left( \frac{w_1}{R} (x_2 – \hat{x}_2) \right) + a_2 \tanh\left( \frac{w_2}{R} \hat{d} \right) \right]
\end{align*} $$
Here, \( \hat{x}_2 \) and \( \hat{d} \) are the estimates of \( x_2 \) and \( d \), respectively; \( R \), \( a_1 \), \( a_2 \), \( w_1 \), and \( w_2 \) are positive design parameters. The hyperbolic tangent function provides smooth estimation and avoids chattering, making it suitable for practical implementations. For the quadcopter application, we apply this NDO to both the position and attitude subsystems. Specifically, for the position subsystem (e.g., x-axis), the NDO is given by:
$$ \begin{align*}
\dot{\hat{x}}_P &= f_P + b_P U_P + \hat{D}_P \\
\dot{\hat{D}}_P &= R_P^2 \left[ a_{1P} \tanh\left( \frac{w_{1P}}{R_P} (x_P – \hat{x}_P) \right) + a_{2P} \tanh\left( \frac{w_{2P}}{R_P} \hat{D}_P \right) \right]
\end{align*} $$
where \( P \) denotes x, y, or z; \( f_P \) and \( b_P \) are system terms; \( U_P \) is the control input; and \( \hat{D}_P \) is the estimated disturbance. Similarly, for the attitude subsystem (e.g., roll angle \( \phi \)), the NDO is:
$$ \begin{align*}
\dot{\hat{\phi}}_\Theta &= f_\Theta + b_\Theta U_\Theta + \hat{D}_\Theta \\
\dot{\hat{D}}_\Theta &= R_\Theta^2 \left[ a_{1\Theta} \tanh\left( \frac{w_{1\Theta}}{R_\Theta} (\phi_\Theta – \hat{\phi}_\Theta) \right) + a_{2\Theta} \tanh\left( \frac{w_{2\Theta}}{R_\Theta} \hat{D}_\Theta \right) \right]
\end{align*} $$
where \( \Theta \) represents \( \phi \), \( \theta \), or \( \psi \). The parameters \( R_P \), \( a_{1P} \), \( a_{2P} \), \( w_{1P} \), \( w_{2P} \), \( R_\Theta \), \( a_{1\Theta} \), \( a_{2\Theta} \), \( w_{1\Theta} \), and \( w_{2\Theta} \) are tuned to achieve accurate disturbance estimation. This NDO enables the quadcopter to compensate for disturbances and faults actively, improving control performance.
For the position control loop of the quadcopter, we design a sliding mode controller (SMC) that works in conjunction with the NDO. The goal is to track desired trajectories while rejecting disturbances. We define the tracking errors for the position variables as:
$$ e_x = x_d – x, \quad e_y = y_d – y, \quad e_z = z_d – z $$
where \( x_d, y_d, z_d \) are the desired positions. The sliding surfaces are chosen as:
$$ s_x = \dot{e}_x + c_x e_x, \quad s_y = \dot{e}_y + c_y e_y, \quad s_z = \dot{e}_z + c_z e_z $$
with \( c_x, c_y, c_z > 0 \) being design constants. Differentiating the sliding surfaces and substituting the dynamics yields:
$$ \begin{align*}
\dot{s}_x &= \ddot{x}_d – \ddot{x} + c_x \dot{e}_x \\
\dot{s}_y &= \ddot{y}_d – \ddot{y} + c_y \dot{e}_y \\
\dot{s}_z &= \ddot{z}_d – \ddot{z} + c_z \dot{e}_z
\end{align*} $$
Using an exponential reaching law to reduce chattering:
$$ \dot{s}_P = -\epsilon_P \text{sgn}(s_P) – \eta_P s_P, \quad P = x, y, z $$
where \( \epsilon_P > 0 \) and \( \eta_P > 0 \) are controller gains, and \( \text{sgn}(\cdot) \) is the signum function. The control laws for the position loop are derived as:
$$ \begin{align*}
U_x &= \frac{1}{b_x} \left( \ddot{x}_d – f_x – \hat{D}_x + c_x \dot{e}_x + \epsilon_x \text{sgn}(s_x) + \eta_x s_x \right) \\
U_y &= \frac{1}{b_y} \left( \ddot{y}_d – f_y – \hat{D}_y + c_y \dot{e}_y + \epsilon_y \text{sgn}(s_y) + \eta_y s_y \right) \\
U_z &= \frac{1}{b_z} \left( \ddot{z}_d – f_z – \hat{D}_z + c_z \dot{e}_z + \epsilon_z \text{sgn}(s_z) + \eta_z s_z \right)
\end{align*} $$
Here, \( \hat{D}_x, \hat{D}_y, \hat{D}_z \) are the disturbance estimates from the NDO. The stability of the position control system is analyzed using Lyapunov theory. Consider the Lyapunov function candidate for the x-axis:
$$ V_x = \frac{1}{2} s_x^2 $$
Differentiating \( V_x \) and substituting the control law and reaching law shows that \( \dot{V}_x \leq 0 \), ensuring convergence of the sliding surface and thus trajectory tracking.
For the attitude control loop, we employ a sliding mode controller with a double power reaching law to enhance convergence speed and reduce chattering. The tracking errors for the attitude angles are defined as:
$$ e_\phi = \phi_d – \phi, \quad e_\theta = \theta_d – \theta, \quad e_\psi = \psi_d – \psi $$
where \( \phi_d, \theta_d, \psi_d \) are the desired angles. The sliding surfaces are:
$$ s_\phi = \dot{e}_phi + c_\phi e_\phi, \quad s_\theta = \dot{e}_theta + c_\theta e_\theta, \quad s_\psi = \dot{e}_psi + c_\psi e_\psi $$
with \( c_\phi, c_\theta, c_\psi > 0 \). The double power reaching law is given by:
$$ \dot{s}_\Theta = -k_{1\Theta} |s_\Theta|^{\alpha_\Theta} \text{sgn}(s_\Theta) – k_{2\Theta} |s_\Theta|^{\beta_\Theta} \text{sgn}(s_\Theta) $$
where \( \Theta = \phi, \theta, \psi \); \( k_{1\Theta} > 0 \), \( k_{2\Theta} > 0 \); and \( \alpha_\Theta > 1 \), \( 0 < \beta_\Theta < 1 \) are parameters that ensure fast convergence. The control laws for the attitude loop are:
$$ \begin{align*}
U_\phi &= \frac{1}{b_\phi} \left( \ddot{\phi}_d – f_\phi – \hat{D}_\phi + c_\phi \dot{e}_\phi + k_{1\phi} |s_\phi|^{\alpha_\phi} \text{sgn}(s_\phi) + k_{2\phi} |s_\phi|^{\beta_\phi} \text{sgn}(s_\phi) \right) \\
U_\theta &= \frac{1}{b_\theta} \left( \ddot{\theta}_d – f_\theta – \hat{D}_\theta + c_\theta \dot{e}_\theta + k_{1\theta} |s_\theta|^{\alpha_\theta} \text{sgn}(s_\theta) + k_{2\theta} |s_\theta|^{\beta_\theta} \text{sgn}(s_\theta) \right) \\
U_\psi &= \frac{1}{b_\psi} \left( \ddot{\psi}_d – f_\psi – \hat{D}_\psi + c_\psi \dot{e}_\psi + k_{1\psi} |s_\psi|^{\alpha_\psi} \text{sgn}(s_\psi) + k_{2\psi} |s_\psi|^{\beta_\psi} \text{sgn}(s_\psi) \right)
\end{align*} $$
where \( \hat{D}_\phi, \hat{D}_\theta, \hat{D}_\psi \) are the disturbance estimates from the attitude NDO. The stability of the attitude control system is verified using Lyapunov functions. For instance, for the roll angle, consider:
$$ V_\phi = \frac{1}{2} s_\phi^2 $$
Differentiating \( V_\phi \) and substituting the control law and reaching law demonstrates that \( \dot{V}_\phi \leq -M_\phi V_\phi \) for some \( M_\phi > 0 \), guaranteeing exponential convergence.
To validate the proposed NDO-SMC strategy, we conduct simulation experiments using MATLAB/Simulink, comparing it with a conventional PID controller and a baseline SMC without disturbance observer. The quadcopter parameters used in the simulations are summarized in the following table:
| Parameter | Symbol | Value | Unit |
|---|---|---|---|
| Mass | \( m \) | 1.2 | kg |
| Gravity acceleration | \( g \) | 9.8 | m/s² |
| Moment of inertia (x-axis) | \( I_x \) | 0.0091 | kg·m² |
| Moment of inertia (y-axis) | \( I_y \) | 0.0096 | kg·m² |
| Moment of inertia (z-axis) | \( I_z \) | 0.0189 | kg·m² |
| Drag coefficient (x) | \( K_1 \) | 0.01 | N·s/m |
| Drag coefficient (y) | \( K_2 \) | 0.012 | N·s/m |
| Drag coefficient (z) | \( K_3 \) | 0.019 | N·s/m |
| Drag moment coefficient (roll) | \( K_4 \) | 0.0022 | N·m·s/rad |
| Drag moment coefficient (pitch) | \( K_5 \) | 0.0024 | N·m·s/rad |
| Drag moment coefficient (yaw) | \( K_6 \) | 0.0031 | N·m·s/rad |
The initial conditions for the quadcopter are set as follows: position \( (x, y, z) = (0, 0, 0) \) meters, attitude angles \( (\phi, \theta, \psi) = (0, 0, 0) \) radians, and velocities zero. The desired trajectory is a circular path in the x-y plane with ascending altitude. The controller parameters are tuned empirically to achieve optimal performance. For the position loop, we set \( c_x = c_y = c_z = 1.5 \), \( \epsilon_x = \epsilon_y = \epsilon_z = 0.5 \), and \( \eta_x = \eta_y = \eta_z = 1.2 \). For the attitude loop, \( c_\phi = c_\theta = c_\psi = 2.0 \), \( k_{1\phi} = k_{1\theta} = k_{1\psi} = 1.0 \), \( k_{2\phi} = k_{2\theta} = k_{2\psi} = 0.8 \), \( \alpha_\phi = \alpha_\theta = \alpha_\psi = 1.5 \), and \( \beta_\phi = \beta_\theta = \beta_\psi = 0.5 \). The NDO parameters are chosen as \( R_P = 10 \), \( a_{1P} = a_{2P} = 1.0 \), \( w_{1P} = w_{2P} = 2.0 \) for position, and \( R_\Theta = 15 \), \( a_{1\Theta} = a_{2\Theta} = 1.2 \), \( w_{1\Theta} = w_{2\Theta} = 2.5 \) for attitude.
In ideal conditions without faults or disturbances, all three controllers (PID, SMC, and NDO-SMC) achieve trajectory tracking, but the PID controller exhibits slower response and larger overshoot compared to the SMC-based methods. The quadcopter under PID control takes longer to stabilize, whereas the SMC and NDO-SMC provide faster convergence with similar performance. However, when actuator faults and external disturbances are introduced, the advantages of the proposed NDO-SMC become evident. We simulate a scenario where the quadcopter experiences simultaneous actuator faults and multi-source disturbances. The actuator faults are set as efficiency loss and bias faults: for the thrust actuator, \( \rho_1 = 0.8 \) and \( f_1 = 0.5 \); for the roll moment actuator, \( \rho_2 = 0.7 \) and \( f_2 = 0.3 \); for the pitch moment actuator, \( \rho_3 = 0.75 \) and \( f_3 = 0.4 \); and for the yaw moment actuator, \( \rho_4 = 0.65 \) and \( f_4 = 0.2 \). The external disturbances are modeled as sinusoidal and random signals: \( d_1 = 0.1 \sin(0.5t) \), \( d_2 = 0.15 \cos(0.3t) \), \( d_3 = 0.2 \sin(0.4t) \), \( d_4 = 0.1 \sin(0.6t) \), \( d_5 = 0.12 \cos(0.5t) \), and \( d_6 = 0.18 \sin(0.7t) \), all in appropriate units.
The simulation results demonstrate that the PID controller fails to maintain accurate tracking under these adverse conditions, with significant deviations from the desired trajectory. The baseline SMC without observer shows improved robustness but still suffers from steady-state errors due to uncompensated disturbances. In contrast, the proposed NDO-SMC strategy effectively compensates for both faults and disturbances, maintaining precise tracking and stability. The following table summarizes the performance metrics, including root mean square error (RMSE) and maximum error, for the position tracking under faulty conditions:
| Controller | RMSE (x) [m] | RMSE (y) [m] | RMSE (z) [m] | Max Error (x) [m] | Max Error (y) [m] | Max Error (z) [m] |
|---|---|---|---|---|---|---|
| PID | 0.45 | 0.52 | 0.38 | 0.89 | 0.95 | 0.72 |
| SMC | 0.22 | 0.25 | 0.19 | 0.51 | 0.58 | 0.44 |
| NDO-SMC | 0.08 | 0.09 | 0.07 | 0.18 | 0.21 | 0.16 |
Additionally, the attitude control performance is evaluated through the RMSE of the Euler angles. The NDO-SMC achieves lower errors compared to the other methods, as shown below:
| Controller | RMSE (roll) [rad] | RMSE (pitch) [rad] | RMSE (yaw) [rad] |
|---|---|---|---|
| PID | 0.035 | 0.041 | 0.028 |
| SMC | 0.018 | 0.022 | 0.015 |
| NDO-SMC | 0.006 | 0.007 | 0.005 |
The control inputs generated by the controllers are analyzed to assess chattering and energy consumption. The NDO-SMC produces smooth control signals with minimal chattering, thanks to the double power reaching law and disturbance compensation. In contrast, the baseline SMC exhibits higher-frequency oscillations, which could lead to actuator wear. The total control effort, measured as the integral of squared control inputs, is comparable among all methods, indicating that the NDO-SMC does not require excessive energy while providing superior performance. These results highlight the effectiveness of the proposed approach in enhancing the fault tolerance and robustness of quadcopter systems.
In conclusion, we have developed a comprehensive fault-tolerant control strategy for quadcopters that combines a nonlinear disturbance observer with sliding mode control. The NDO accurately estimates lumped disturbances arising from actuator faults and external influences, enabling real-time compensation. The sliding mode controller, designed with a double power reaching law, ensures fast convergence and reduced chattering. Simulation studies under various fault and disturbance scenarios confirm that the proposed NDO-SMC method outperforms conventional PID and standard SMC in terms of tracking accuracy, disturbance rejection, and stability. This work provides a practical solution for improving the reliability and safety of quadcopter operations in complex environments, contributing to the advancement of autonomous aerial systems. Future research will focus on experimental validation and extension to multi-quadcopter coordination.
