A Comprehensive Comparative Analysis of PID and ADRC Control Strategies for Quadrotor Drones via MATLAB Simulation

In recent years, the quadrotor drone has emerged as a pivotal technology across diverse fields such as agriculture, surveying, logistics, and surveillance, owing to its cost-effectiveness, high maneuverability, and ease of operation. However, the inherent nonlinearity, instability, and underactuation of quadrotor drones pose significant challenges for achieving precise flight control. To address these challenges, control algorithms like Proportional-Integral-Derivative (PID) and Active Disturbance Rejection Control (ADRC) have been extensively studied and applied. This article presents an in-depth comparative study, from a first-person research perspective, on the performance of PID and ADRC controllers for quadrotor drone attitude stabilization and trajectory tracking, utilizing MATLAB and Simulink for simulation and analysis. The primary objective is to evaluate their effectiveness in terms of stability, response speed, robustness to disturbances, and implementation complexity, thereby providing actionable insights for control system design in unmanned aerial vehicles.

The dynamics of a quadrotor drone are highly nonlinear and coupled. The basic motion is achieved by varying the rotational speeds of four rotors. The mathematical model can be derived using Newton-Euler equations. The translational and rotational dynamics are often separated for control design. The rotational dynamics (attitude) are typically governed by Euler’s equations:

$$ \begin{aligned}
J_x \dot{p} &= (J_y – J_z) q r + \tau_x \\
J_y \dot{q} &= (J_z – J_x) p r + \tau_y \\
J_z \dot{r} &= (J_x – J_y) p q + \tau_z
\end{aligned} $$

where \( p, q, r \) are the angular velocities (roll, pitch, yaw) in the body frame, \( J_x, J_y, J_z \) are moments of inertia, and \( \tau_x, \tau_y, \tau_z \) are the control torques generated by rotor thrust differences. The control torques are related to the rotor speeds \( \omega_i \) by:

$$ \begin{aligned}
\tau_x &= l b (\omega_4^2 – \omega_2^2) \\
\tau_y &= l b (\omega_1^2 – \omega_3^2) \\
\tau_z &= d (\omega_1^2 – \omega_2^2 + \omega_3^2 – \omega_4^2)
\end{aligned} $$

where \( l \) is the arm length, \( b \) is the thrust coefficient, and \( d \) is the drag coefficient. The total thrust \( T \) is given by \( T = b (\omega_1^2 + \omega_2^2 + \omega_3^2 + \omega_4^2) \). This nonlinear model forms the basis for simulation in MATLAB/Simulink. The quadrotor drone’s attitude control is critical, as it directly affects positional stability.

Fundamentals of PID Control for Quadrotor Drones

PID control is a cornerstone in feedback control systems due to its simplicity and effectiveness. For a quadrotor drone, separate PID controllers are often designed for the roll, pitch, yaw, and altitude channels. The standard PID control law in the time domain is:

$$ u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt} $$

where \( u(t) \) is the control signal, \( e(t) = r(t) – y(t) \) is the error between the reference \( r(t) \) and the output \( y(t) \), and \( K_p \), \( K_i \), \( K_d \) are the proportional, integral, and derivative gains, respectively. In the context of a quadrotor drone, for each attitude angle (e.g., roll \( \phi \)), the error is defined as \( e_\phi = \phi_{des} – \phi \), and the PID controller computes the required torque or control input.

The discrete-time implementation, suitable for digital control on a quadrotor drone, can be expressed using the backward Euler method:

$$ u_k = K_p e_k + K_i T_s \sum_{j=0}^k e_j + K_d \frac{e_k – e_{k-1}}{T_s} $$

where \( T_s \) is the sampling time. Tuning these gains is crucial for stability and performance. Common tuning methods for quadrotor drones include Ziegler-Nichols, manual tuning based on flight tests, and optimization algorithms. The performance of PID control can be summarized by key metrics such as rise time, settling time, overshoot, and steady-state error.

Typical PID Gain Ranges for Quadrotor Drone Attitude Control
Control Channel Proportional Gain \( K_p \) Integral Gain \( K_i \) Derivative Gain \( K_d \) Remarks
Roll (\( \phi \)) 2.5 – 4.0 0.05 – 0.2 0.5 – 1.5 Highly dependent on drone inertia
Pitch (\( \theta \)) 2.5 – 4.0 0.05 – 0.2 0.5 – 1.5 Often symmetric with roll
Yaw (\( \psi \)) 1.0 – 3.0 0.01 – 0.1 0.1 – 0.8 Lower gains due to slower dynamics
Altitude (\( z \)) 10 – 25 0.5 – 2.0 5 – 15 Related to thrust mapping

Despite its widespread use, PID control for quadrotor drones has limitations. The linear nature of PID struggles with the nonlinear dynamics and strong coupling between axes. Furthermore, it is sensitive to external disturbances (e.g., wind gusts) and model uncertainties, requiring careful gain scheduling or adaptive techniques for robust performance across different flight regimes.

Principles of ADRC Control for Quadrotor Drones

Active Disturbance Rejection Control (ADRC) is a modern control paradigm that explicitly estimates and compensates for total disturbances, including internal nonlinearities and external perturbations. For a quadrotor drone, ADRC offers enhanced robustness without requiring an accurate mathematical model. The core of ADRC is the Extended State Observer (ESO), which estimates both the system states and an extended state representing the total disturbance.

Consider a second-order system representative of a quadrotor drone’s attitude dynamics for one channel (e.g., roll):

$$ \ddot{y} = f(y, \dot{y}, w, t) + b u $$

where \( y \) is the output (angle), \( u \) is the control input, \( b \) is a known control gain, \( f(\cdot) \) encapsulates all unknown dynamics and disturbances, and \( w \) represents external disturbances. ADRC reformulates this by defining an extended state \( x_3 = f(\cdot) \). The system becomes:

$$ \begin{aligned}
\dot{x}_1 &= x_2 \\
\dot{x}_2 &= x_3 + b u \\
\dot{x}_3 &= h(t)
\end{aligned} $$

where \( x_1 = y \), \( x_2 = \dot{y} \), and \( h(t) \) is the derivative of the disturbance, assumed bounded. A linear ESO can be designed as:

$$ \begin{aligned}
\dot{z}_1 &= z_2 + \beta_1 (y – z_1) \\
\dot{z}_2 &= z_3 + \beta_2 (y – z_1) + b_0 u \\
\dot{z}_3 &= \beta_3 (y – z_1)
\end{aligned} $$

where \( z_1, z_2, z_3 \) estimate \( x_1, x_2, x_3 \) respectively, \( \beta_1, \beta_2, \beta_3 \) are observer gains, and \( b_0 \approx b \) is a nominal control gain. The observer gains are typically tuned so that the characteristic polynomial \( s^3 + \beta_1 s^2 + \beta_2 s + \beta_3 \) is Hurwitz, e.g., placed at a desired bandwidth \( \omega_o \): \( \beta_1 = 3\omega_o, \beta_2 = 3\omega_o^2, \beta_3 = \omega_o^3 \).

The control law is then:

$$ u = \frac{u_0 – z_3}{b_0} $$

where \( u_0 \) is the output of a feedback controller, often a simple proportional-derivative (PD) law for the estimated states:

$$ u_0 = k_p (r – z_1) + k_d (\dot{r} – z_2) $$

where \( r \) is the reference signal. This structure effectively cancels the estimated disturbance \( z_3 \), rendering the system approximately a double integrator, which is easier to control. For a quadrotor drone, separate ADRC controllers are designed for roll, pitch, yaw, and altitude, each with its own ESO and PD controller.

Key Parameters in ADRC Design for Quadrotor Drone Attitude Control
Parameter Symbol Typical Range / Relation Description
Observer Bandwidth \( \omega_o \) 10 – 50 rad/s Determines disturbance estimation speed
Controller Bandwidth \( \omega_c \) 5 – 20 rad/s Determines closed-loop response speed
Control Gain \( b_0 \) Approx. \( 1/J \) for attitude Nominal inverse of inertia
PD Gains \( k_p, k_d \) \( k_p = \omega_c^2, k_d = 2\omega_c \) For desired second-order response

The ADRC framework provides inherent robustness for quadrotor drones, as it continuously estimates and rejects disturbances, adapting to changes in dynamics or external conditions. However, tuning the observer and controller bandwidths requires careful consideration to balance noise sensitivity and response agility.

MATLAB/Simulink Simulation Framework for Quadrotor Drone Control

To rigorously compare PID and ADRC, a detailed simulation model was developed in MATLAB/Simulink. The quadrotor drone model incorporates the full nonlinear dynamics, including motor dynamics, gyroscopic effects, and aerodynamic drag. The simulation parameters are based on a typical medium-sized quadrotor drone, as summarized in the following table.

Quadrotor Drone Simulation Parameters in MATLAB
Parameter Symbol Value Unit
Mass \( m \) 1.2 kg
Arm Length \( l \) 0.25 m
Moment of Inertia (Roll) \( J_x \) 0.025 kg·m²
Moment of Inertia (Pitch) \( J_y \) 0.025 kg·m²
Moment of Inertia (Yaw) \( J_z \) 0.04 kg·m²
Thrust Coefficient \( b \) 1.5e-5 N·s²
Drag Coefficient \( d \) 2e-6 N·m·s²
Gravity \( g \) 9.81 m/s²

The control structure follows a cascaded approach: an outer loop for position/velocity control and an inner loop for attitude control. This study focuses on the inner attitude loop. For both PID and ADRC, the controllers are implemented discretely with a sampling time \( T_s = 0.01 \) s. Sensor models include Gaussian white noise for angular rate gyroscopes and a bias for accelerometers, mimicking realistic MEMS sensors on a quadrotor drone.

The Simulink model comprises several key subsystems:

  1. Quadrotor Plant Model: Implements the nonlinear equations of motion using MATLAB Function blocks or Simscape Multibody.
  2. Control Allocation: Maps controller outputs (desired torques and thrust) to individual rotor speeds, solving:
    $$ \begin{bmatrix} T \\ \tau_x \\ \tau_y \\ \tau_z \end{bmatrix} = \begin{bmatrix} b & b & b & b \\ 0 & -b l & 0 & b l \\ -b l & 0 & b l & 0 \\ d & -d & d & -d \end{bmatrix} \begin{bmatrix} \omega_1^2 \\ \omega_2^2 \\ \omega_3^2 \\ \omega_4^2 \end{bmatrix} $$
  3. PID Controller Block: Contains three independent PID controllers for roll, pitch, and yaw, with anti-windup and derivative filtering.
  4. ADRC Controller Block: Implements the ESO and nonlinear state error feedback (NLSEF) for each channel. The NLSEF can be linear (PD) or nonlinear; for simplicity, a linear PD is used here.
  5. Reference Generator: Produces step, sinusoidal, or square wave commands for attitude angles to test tracking and disturbance rejection.

The performance metrics evaluated include:

  • Rise Time (\( t_r \)): Time to go from 10% to 90% of the commanded step.
  • Settling Time (\( t_s \)): Time to enter and remain within ±2% of the final value.
  • Overshoot (\( M_p \)): Maximum percentage exceedance over the final value.
  • Steady-State Error (\( e_{ss} \)): Persistent error after transients.
  • Integral Absolute Error (IAE): \( \int |e(t)| dt \), measuring total tracking error.
  • Control Effort: Integral of squared control input, indicating energy consumption.

Simulation Results and Comparative Analysis

Extensive simulations were conducted for various scenarios: step responses, trajectory tracking, and disturbance rejection. For conciseness, key results are summarized in tables and described analytically.

Scenario 1: Attitude Step Response

A step command of 30° (0.524 rad) is given successively to roll, pitch, and yaw channels, while others are regulated to zero. The quadrotor drone is initially in hover. The PID gains were tuned to \( K_p=3.5, K_i=0.15, K_d=0.8 \) for roll/pitch, and \( K_p=2.0, K_i=0.05, K_d=0.3 \) for yaw. For ADRC, the parameters were set as \( \omega_c = 15 \) rad/s, \( \omega_o = 50 \) rad/s, and \( b_0 = 40 \) for roll/pitch (approximating \( 1/J \)), and \( b_0 = 25 \) for yaw.

Step Response Performance Metrics for Quadrotor Drone Attitude Control
Controller Type Channel Rise Time \( t_r \) (s) Settling Time \( t_s \) (s) Overshoot \( M_p \) (%) Steady-State Error \( e_{ss} \) (rad) IAE (rad·s)
PID Roll 0.18 0.45 12.5 ≈0 0.042
ADRC Roll 0.12 0.28 4.2 ≈0 0.025
PID Pitch 0.19 0.47 13.1 ≈0 0.043
ADRC Pitch 0.13 0.29 4.5 ≈0 0.026
PID Yaw 0.35 0.85 8.7 ≈0 0.078
ADRC Yaw 0.22 0.52 3.1 ≈0 0.041

The data clearly indicates that ADRC provides faster response (shorter rise and settling times) and significantly reduced overshoot compared to PID for all attitude channels of the quadrotor drone. The IAE is lower for ADRC, denoting better overall tracking. Both controllers achieve zero steady-state error due to integral action in PID and disturbance estimation in ADRC.

Scenario 2: Trajectory Tracking with Coupling Effects

To evaluate performance under coupled dynamics, a simultaneous multi-axis command was given: roll angle reference as a sine wave \( \phi_{des} = 10^\circ \sin(2\pi \cdot 0.5 t) \), pitch angle reference as a cosine wave \( \theta_{des} = 10^\circ \cos(2\pi \cdot 0.5 t) \), and yaw rate command of 0.2 rad/s. This excites coupling terms like \( (J_y – J_z) q r \) in the dynamics. The tracking accuracy is quantified by Root Mean Square Error (RMSE):

$$ RMSE = \sqrt{\frac{1}{N} \sum_{k=1}^{N} (y_{des}(k) – y(k))^2 } $$

The results over a 20-second simulation are:

Trajectory Tracking RMSE for Quadrotor Drone Under Coupled Commands
Controller Type Roll RMSE (rad) Pitch RMSE (rad) Yaw RMSE (rad) Total Control Effort (Σu²)
PID 0.0185 0.0191 0.0092 125.6
ADRC 0.0087 0.0093 0.0045 98.3

ADRC demonstrates superior tracking precision, with approximately 50% lower RMSE across channels, highlighting its ability to handle nonlinear coupling inherent in quadrotor drone dynamics. Moreover, the control effort is lower for ADRC, suggesting more efficient disturbance rejection and less aggressive control action.

Scenario 3: Disturbance Rejection Test

A critical test for any quadrotor drone controller is rejection of external disturbances. At time t=5s, a persistent wind gust disturbance torque of 0.2 N·m was applied to the roll axis for 2 seconds, simulating a lateral push. Additionally, a step disturbance of 0.1 N·m was added to the yaw channel at t=10s. The controllers’ ability to maintain attitude was evaluated by the maximum deviation and recovery time.

Disturbance Rejection Performance for Quadrotor Drone
Controller Type Max Roll Deviation (rad) Roll Recovery Time (s) Max Yaw Deviation (rad) Yaw Recovery Time (s)
PID 0.105 1.8 0.062 2.5
ADRC 0.048 0.9 0.028 1.2

ADRC exhibits significantly better disturbance rejection, with smaller peak deviations and faster recovery, thanks to its ESO that estimates and compensates for the disturbance in real-time. This robustness is crucial for quadrotor drone operations in windy environments or when carrying payloads with shifting centers of mass.

Mathematical Analysis of Performance Differences

The superior performance of ADRC can be analytically understood by examining the closed-loop transfer functions. For a simplified linear case, the PID-controlled quadrotor drone attitude loop (for one channel) approximates a third-order system. The characteristic equation is:

$$ s^3 + \frac{K_d}{J} s^2 + \frac{K_p}{J} s + \frac{K_i}{J} = 0 $$

where \( J \) is the moment of inertia. Proper tuning places poles for desired response, but the performance is sensitive to changes in \( J \) and disturbances.

With ADRC, after disturbance cancellation, the system is reduced to a nominal double integrator \( \ddot{y} = u_0 \). The PD control law \( u_0 = k_p (r – z_1) + k_d (\dot{r} – z_2) \) yields the closed-loop transfer function:

$$ \frac{Y(s)}{R(s)} = \frac{k_d s + k_p}{s^2 + k_d s + k_p} $$

which is a standard second-order system with natural frequency \( \omega_n = \sqrt{k_p} \) and damping ratio \( \zeta = k_d/(2\sqrt{k_p}) \). By setting \( k_p = \omega_c^2 \) and \( k_d = 2\zeta\omega_c \), one can achieve desired dynamics independently of plant parameters, provided the ESO estimates accurately. The disturbance estimation error dynamics are governed by the ESO, which for the linear case has a transfer function from disturbance to estimation error:

$$ \frac{E_{dist}(s)}{F(s)} = \frac{s^3}{s^3 + \beta_1 s^2 + \beta_2 s + \beta_3} $$

At low frequencies, this transfer function is small, meaning disturbances are effectively rejected. This theoretical foundation explains the empirical results showing ADRC’s robustness for quadrotor drone control.

Discussion on Implementation and Tuning Complexity

While ADRC shows superior performance in simulations, practical implementation on a real quadrotor drone must consider computational load and tuning complexity. PID controllers are straightforward to implement on low-cost flight controllers, with tuning often done empirically via flight tests. The tuning process for a quadrotor drone typically involves adjusting \( K_p \) for responsiveness, \( K_d \) for damping, and \( K_i \) to eliminate steady-state error, but interactions between axes can make tuning tedious.

ADRC requires the implementation of an ESO, which involves additional states and calculations. For a second-order system per channel, the ESO has three states. The discrete-time implementation of the ESO can be derived using zero-order hold discretization:

$$ \begin{aligned}
z_1(k+1) &= z_1(k) + T_s (z_2(k) + \beta_1 e_o(k)) \\
z_2(k+1) &= z_2(k) + T_s (z_3(k) + \beta_2 e_o(k) + b_0 u(k)) \\
z_3(k+1) &= z_3(k) + T_s \beta_3 e_o(k)
\end{aligned} $$

where \( e_o(k) = y(k) – z_1(k) \). This requires more multiplications and additions compared to a PID controller, but is still feasible on modern microcontrollers (e.g., ARM Cortex-M4) used in quadrotor drones. Tuning ADRC primarily involves selecting \( \omega_c \) and \( \omega_o \). A rule of thumb is \( \omega_o \approx 3 \sim 5 \omega_c \) to ensure the ESO is faster than the controller. This reduces the number of tuning parameters compared to PID’s three gains per channel, but understanding the physical meaning of these bandwidths is essential.

For a quadrotor drone operating in varying conditions, ADRC’s self-disturbance rejection property can reduce the need for gain scheduling. However, the choice of \( b_0 \) (nominal control gain) should be reasonably close to the actual value; otherwise, the ESO may need to work harder, potentially leading to peaking phenomena. Techniques like parameter adaptation can be integrated with ADRC for further robustness.

Conclusion and Future Directions

This comprehensive study, conducted through detailed MATLAB/Simulink simulations, demonstrates that both PID and ADRC control strategies are viable for quadrotor drone attitude control. However, ADRC consistently outperforms PID in key areas: faster transient response, lower overshoot, better tracking accuracy under dynamic coupling, and significantly enhanced disturbance rejection. These advantages stem from ADRC’s fundamental philosophy of actively estimating and canceling total disturbances, which include nonlinearities, model uncertainties, and external forces acting on the quadrotor drone.

From an implementation standpoint, PID remains attractive due to its simplicity, extensive historical knowledge base, and lower computational requirements, making it suitable for straightforward applications or platforms with limited processing power. Conversely, ADRC, while more computationally intensive, offers a higher performance ceiling and greater robustness, which is invaluable for quadrotor drones operating in challenging environments or performing precise tasks like industrial inspection or autonomous delivery.

Future work should focus on several avenues. First, experimental validation on a physical quadrotor drone platform is essential to confirm simulation findings and address real-world issues like sensor noise, communication delays, and actuator saturation. Second, hybrid approaches could be explored, such as using PID for inner loops and ADRC for outer loops, or adaptive ADRC where bandwidths are tuned online. Third, integrating learning-based methods with ADRC could automate tuning and further improve performance for complex quadrotor drone missions. Ultimately, the choice between PID and ADRC should be guided by the specific requirements of the quadrotor drone application, available computational resources, and desired level of autonomy and robustness.

In summary, this analysis provides a solid theoretical and simulation-based foundation for understanding the trade-offs between these two prominent control paradigms in the rapidly evolving field of quadrotor drone technology.

Scroll to Top