In recent years, quadrotor unmanned aerial vehicles (UAVs) have gained significant attention due to their agility, low cost, and versatility in applications such as search and rescue, remote sensing, and logistics. However, quadrotors are underactuated systems with six degrees of freedom controlled by only four rotors, making precise and stable control challenging. While traditional PID control is widely used for its simplicity, it suffers from limited robustness and disturbance rejection. To address these issues, I propose an improved active disturbance rejection control (ADRC) scheme for quadrotor attitude control, combined with a PID-based position controller for trajectory tracking. This approach enhances performance in complex disturbance environments by integrating a novel tracking differentiator (TTD), a modified extended state observer (ESO) using a sigmoid-based function, and a phase compensator to mitigate phase lag.
The quadrotor dynamics are derived from Newton-Euler equations, considering the inertial and body-fixed frames. The system model is given by:
$$ \begin{aligned}
\dot{x} &= (\cos\phi \sin\theta \cos\psi + \sin\phi \sin\psi) \frac{U_1}{m} + d_1 \\
\dot{y} &= (\cos\phi \sin\theta \sin\psi – \sin\phi \cos\psi) \frac{U_1}{m} + d_2 \\
\dot{z} &= (\cos\phi \cos\theta) \frac{U_1}{m} – g + d_3 \\
\ddot{\phi} &= \frac{I_y – I_z}{I_x} \dot{\theta} \dot{\psi} + \frac{l U_2}{I_x} + d_4 \\
\ddot{\theta} &= \frac{I_z – I_x}{I_y} \dot{\phi} \dot{\psi} + \frac{l U_3}{I_y} + d_5 \\
\ddot{\psi} &= \frac{I_x – I_y}{I_z} \dot{\phi} \dot{\theta} + \frac{U_4}{I_z} + d_6
\end{aligned} $$
Here, \( (x, y, z) \) and \( (\phi, \theta, \psi) \) represent the position and orientation (roll, pitch, yaw) in the inertial frame, \( U_1 \) to \( U_4 \) are virtual control inputs, \( I_x, I_y, I_z \) are moments of inertia, \( l \) is the arm length, \( m \) is the mass, \( g \) is gravity, and \( d_1 \) to \( d_6 \) account for disturbances. The virtual controls \( U_x, U_y, U_z \) for position are derived as:
$$ \begin{aligned}
U_x &= \frac{U_1}{m} (\cos\phi \sin\theta \cos\psi + \sin\phi \sin\psi) \\
U_y &= \frac{U_1}{m} (\cos\phi \sin\theta \sin\psi – \sin\phi \cos\psi) \\
U_z &= \frac{U_1}{m} (\cos\phi \cos\theta)
\end{aligned} $$
For attitude control, I design an improved ADRC comprising a tracking differentiator (TTD), an extended state observer (ESO), and a nonlinear state error feedback (NLSEF). The TTD uses hyperbolic tangent and arctangent functions to arrange transient processes and filter noise. Its acceleration function is defined as:
$$ \begin{aligned}
f_1(x) &= a \tanh(bx) \\
f_2(x) &= a \arctan(bx)
\end{aligned} $$
where \( a \) and \( b \) are tuning parameters. The TTD system is:
$$ \begin{aligned}
\dot{x}_1 &= x_2 \\
\dot{x}_2 &= -R \left[ a \tanh(b(x_1 – v)) + a \arctan\left(\frac{b x_2}{R}\right) \right]
\end{aligned} $$
This ensures fast, non-overshooting tracking and effective noise suppression. For the ESO, I replace the traditional fal function with a sigmoid-based sfal function to reduce jitter:
$$ \text{sfal}(x, m, n) = \begin{cases}
m \left( \frac{1 – e^{-nx}}{1 + e^{-nx}} \right), & x \neq 0 \\
0, & x = 0
\end{cases} $$
where \( m \) and \( n \) adjust amplitude and linearity. The ESO estimates states and disturbances:
$$ \begin{aligned}
e &= z_1 – y \\
\dot{z}_1 &= z_2 – \beta_{01} e \\
\dot{z}_2 &= z_3 – \beta_{02} \text{sfal}(e, \alpha, \delta) + b_0 u \\
\dot{z}_3 &= -\beta_{03} \text{sfal}(e, \alpha, \delta)
\end{aligned} $$
The NLSEF generates the control signal \( u_0 \) using a nonlinear combination of errors, and the final control input is \( u = (u_0 – z_3)/b_0 \). To address phase lag from filtering, I introduce a phase compensator that predicts the signal by \( \eta \) steps using TTD and sfal filtering. The discrete-time implementation for the phase compensator is:
$$ \begin{aligned}
v_{1x}(k+1) &= v_{1x}(k) + h v_{2x}(k) \\
v_{2x}(k+1) &= v_{2x}(k) + h R \left[ f(v_{1x}(k) – v(k)) + f\left(\frac{v_{2x}(k)}{R}\right) \right] \\
s_1(k+1) &= \text{sfal}(v_{2x}(k) – s_1(k), m, n) \\
\tilde{v}_{1x}(k+1) &= v_{1x}(k) + \frac{\eta}{\mu} s_1(k)
\end{aligned} $$
For position control, I use a cascade structure with the phase compensator and PID. The position error \( e_p = p_d – p \) is processed by the phase compensator to generate a desired velocity \( v_d \), and the velocity error \( e_v = v_d – v \) is fed into the PID controller:
$$ U_p = k_p e_v + k_i \int e_v \, dt + k_d \frac{de_v}{dt} $$
Simulations and hardware-in-the-loop experiments validate the approach. The quadrotor parameters are listed in Table 1.
| Parameter | Value |
|---|---|
| Mass \( m \) (kg) | 0.65 |
| Gravity \( g \) (m/s²) | 9.8 |
| Arm length \( l \) (m) | 0.23 |
| Moment of inertia \( I_x \) (kg·m²) | 6×10⁻³ |
| Moment of inertia \( I_y \) (kg·m²) | 6×10⁻³ |
| Moment of inertia \( I_z \) (kg·m²) | 8×10⁻³ |
The improved ADRC parameters are summarized in Table 2.
| Module | Parameter | Value |
|---|---|---|
| TTD | \( R \) | 1000 |
| \( a \) | 5 | |
| \( b \) | 1 | |
| \( k \) | 0.001 | |
| ESO | \( m \) | 5 |
| \( n \) | 0.04 | |
| \( \beta_{01} \) | 700 | |
| \( \beta_{02} \) | 800 | |
| \( \beta_{03} \) | 1000 | |
| \( b_0 \) | 1.5 | |
| NLSEF | \( c \) | 0.01 |
| \( r \) | 5000 | |
| \( h \) | 0.2 | |
| Phase Compensator | \( \eta \) | 1 |
| \( \mu \) | 0.01 |
In attitude control tests, the improved ADRC demonstrates superior performance. For a step input of 30 degrees in pitch, the sfal-based ESO achieves non-overshooting tracking with a mean square error (MSE) of \( 1.21 \times 10^{-4} \), compared to \( 3.65 \times 10^{-3} \) for traditional ADRC. Under disturbances—a 200 N·m rectangular pulse at 2 s and a 50 N·m sinusoidal wave at 6–10 s—the sfal ESO reduces MSE to 0.6654 for pulse and 0.8344 for sinusoidal, while the phase-compensated version further lowers it to 0.0130 and 0.0118, respectively. With added Gaussian noise (variance 0.1 rad²), the phase-compensated control maintains an MSE of 4.5038, showcasing robust disturbance rejection.

Hardware-in-the-loop experiments on a quadrotor platform with ROS and Gazebo validate trajectory tracking. The quadrotor starts at (1, 1, 0) m and follows an “8”-shaped path over 60 s. The improved control scheme reduces phase error and enhances tracking precision compared to cascade PID, with position errors in x, y, and z directions confined to ±0.1 m during steady state. The response time is improved by 30%, and the quadrotor maintains stability under simulated wind gusts.
In conclusion, the improved ADRC with TTD, sfal-ESO, and phase compensator significantly enhances quadrotor attitude control and trajectory tracking. It offers faster response, higher accuracy, and better disturbance rejection, making it suitable for real-world applications. Future work will focus on adaptive tuning and multi-quadrotor coordination.
