Optimization of Active Disturbance Rejection Controller for Quadrotor Drones Using Two-Space PSO Algorithm

In the field of unmanned aerial vehicles, the quadrotor drone has emerged as a pivotal platform due to its versatility in applications ranging from surveillance to delivery. However, controlling a quadrotor drone poses significant challenges owing to its nonlinear dynamics, underactuated nature, and strong coupling between degrees of freedom. Traditional control methods, such as PID, often fall short in handling these complexities, especially in the presence of disturbances and model uncertainties. Active Disturbance Rejection Control (ADRC) offers a robust alternative by actively estimating and compensating for disturbances, but its practical implementation is hindered by the difficulty in tuning multiple parameters. This article explores an optimization approach using a novel Two-Space Particle Swarm Optimization (PSO) algorithm to tune the ADRC parameters for quadrotor drones, enhancing control performance while reducing computational burden.

The quadrotor drone is a system with four inputs (thrust and torques) and six outputs (position and orientation), making it inherently underactuated. Its dynamics are derived from Newton-Euler equations, considering the quadrotor drone as a rigid body symmetric about its axes. The equations of motion for a quadrotor drone can be expressed as:

$$ \ddot{x} = (\cos\phi \sin\theta \cos\psi + \sin\phi \sin\psi) \frac{U_1}{m} – \frac{k_1}{m} \dot{x}, $$
$$ \ddot{y} = (\cos\phi \sin\theta \sin\psi – \sin\phi \cos\psi) \frac{U_1}{m} – \frac{k_2}{m} \dot{y}, $$
$$ \ddot{z} = (\cos\phi \cos\theta) \frac{U_1}{m} – g – \frac{k_3}{m} \dot{z}, $$
$$ \ddot{\phi} = \dot{\theta} \dot{\psi} \left( \frac{I_y – I_z}{I_x} \right) + \frac{l}{I_x} U_2 – \frac{l k_4}{I_x} \dot{\phi} + d_1, $$
$$ \ddot{\theta} = \dot{\phi} \dot{\psi} \left( \frac{I_z – I_x}{I_y} \right) + \frac{l}{I_y} U_3 – \frac{l k_5}{I_y} \dot{\theta} + d_2, $$
$$ \ddot{\psi} = \dot{\phi} \dot{\theta} \left( \frac{I_x – I_y}{I_z} \right) + \frac{l}{I_z} U_4 – \frac{l k_6}{I_z} \dot{\psi} + d_3, $$

where \(x, y, z\) represent the position in inertial frame, \(\phi, \theta, \psi\) are the Euler angles (roll, pitch, yaw), \(U_1, U_2, U_3, U_4\) are the control inputs (total thrust and torques), \(m\) is the mass, \(l\) is the arm length, \(g\) is gravitational acceleration, \(I_x, I_y, I_z\) are moments of inertia, \(k_1\) to \(k_6\) are drag coefficients, and \(d_1, d_2, d_3\) represent external disturbances. The quadrotor drone’s model highlights the need for advanced control strategies like ADRC to manage nonlinearities and couplings effectively.

ADRC is composed of three main components: a Tracking Differentiator (TD), an Extended State Observer (ESO), and a Nonlinear State Error Feedback (NLSEF) law. For a quadrotor drone, the ADRC algorithm can be discretized as follows. The TD generates a smooth reference signal and its derivative:

$$ f_h = fhan(v_1(k) – v_{in}, v_2(k), r, h), $$
$$ v_2(k+1) = v_2(k) + h \times f_h, $$
$$ v_1(k+1) = v_1(k) + h \times v_2(k+1), $$

where \(v_{in}\) is the desired input, \(r\) is the speed factor, \(h\) is the integration step, and \(fhan\) is a nonlinear function defined as:

$$ fhan(e, x_2, r, h) =
\begin{cases}
d = r h^2, \quad d_0 = h d, \\
y = e + h x_2, \\
a_0 = \sqrt{d^2 + 8 r |y|}, \\
a =
\begin{cases}
x_2 + \frac{a_0 – d}{2} \text{sign}(y), & |y| > d_0, \\
x_2 + \frac{y}{h}, & |y| \leq d_0,
\end{cases} \\
fhan =
\begin{cases}
-r \text{sign}(a), & |a| > d, \\
-r \frac{a}{d}, & |a| \leq d.
\end{cases}
\end{cases} $$

The ESO estimates the system states and total disturbance:

$$ e = z_1(k) – y, $$
$$ fe_1 = fal(e, 0.5, h), $$
$$ fe_2 = fal(e, 0.25, h), $$
$$ z_1(k+1) = z_1(k) + h \times (z_2(k) – b_1 \times e), $$
$$ z_2(k+1) = z_2(k) + h \times (z_3(k) – b_2 \times fe_1 + b \times u(k)), $$
$$ z_3(k+1) = z_3(k) + h \times (-b_3 \times fe_2), $$

where \(z_1, z_2, z_3\) are estimated states, \(b_1, b_2, b_3\) are observer gains, \(b\) is a control gain, and \(fal\) is a nonlinear function:

$$ fal(e, \alpha, \sigma) =
\begin{cases}
|e|^\alpha \text{sign}(e), & |e| > \sigma, \\
\frac{e}{\sigma^{1-\alpha}}, & |e| \leq \sigma.
\end{cases} $$

The NLSEF computes the control input:

$$ e_1 = fal(v_1(k+1) – z_1(k+1), \alpha_1, \sigma_1), $$
$$ e_2 = fal(v_2(k+1) – z_2(k+1), \alpha_2, \sigma_2), $$
$$ u(k+1) = k_1 e_1 + k_2 e_2 – \frac{z_3(k+1)}{b}, $$

where \(k_1, k_2\) are feedback gains. For a quadrotor drone, the parameters \(k_1, k_2, b_1, b_2, b_3\) require careful tuning to achieve optimal performance. Traditional methods rely on empirical tuning or analytical approaches like bandwidth methods, but these are often tedious and suboptimal. This motivates the use of optimization algorithms, particularly PSO, for parameter tuning.

Particle Swarm Optimization (PSO) is a population-based stochastic optimization technique inspired by bird flocking behavior. In standard PSO, a swarm of particles explores the search space to minimize an objective function. Each particle has a position \(g_{id}\) and velocity \(v_{id}\) in a \(D\)-dimensional space, updated as:

$$ v_{id}(k+1) = w v_{id}(k) + c_1 r_1 (p_{id} – g_{id}(k)) + c_2 r_2 (p_{gd} – g_{id}(k)), $$
$$ g_{id}(k+1) = g_{id}(k) + v_{id}(k+1), $$

where \(w\) is inertia weight, \(c_1\) and \(c_2\) are acceleration coefficients, \(r_1\) and \(r_2\) are random numbers in \([0,1]\), \(p_{id}\) is the particle’s best position, and \(p_{gd}\) is the global best position. For tuning ADRC parameters in a quadrotor drone, the dimension \(D\) is 5 (for \(k_1, k_2, b_1, b_2, b_3\)), leading to high computational cost due to large swarm sizes and iterations. To address this, a Two-Space PSO algorithm is proposed, leveraging the structural separation of ADRC parameters.

The key insight is that ADRC parameters naturally divide into two groups: the feedback gains \(k_1, k_2\) from NLSEF and the observer gains \(b_1, b_2, b_3\) from ESO. These groups operate in different dynamic ranges and have distinct roles in control performance. In Two-Space PSO, two separate swarms are initialized in different subspaces: Swarm 1 for \(k_1, k_2\) (2-dimensional) and Swarm 2 for \(b_1, b_2, b_3\) (3-dimensional). This reduces the search space dimensionality for each swarm, allowing for smaller population sizes and faster convergence. However, since each swarm lacks parameters from the other subspace, an initial convergent solution (obtained via manual tuning or preliminary methods) is used to compute fitness during crossover.

The fitness function is based on the Integral of Time-weighted Absolute Error (ITAE) criterion, which penalizes steady-state error and settling time:

$$ \text{fitness} = \int_0^\infty t |e(t)| dt, $$

where \(e(t)\) is the control error for the quadrotor drone. Lower fitness values indicate better control performance. In Two-Space PSO, the fitness for each particle is computed by combining its position with the best-known position from the other swarm. Specifically, for particle \(i\) in Swarm 1 with position \(g_1(i)\), the fitness is evaluated as \(\text{fitness}(g_1(i), p_{g2})\), where \(p_{g2}\) is the global best position in Swarm 2. Similarly, for particle \(j\) in Swarm 2, fitness is \(\text{fitness}(p_{g1}, g_2(j))\), with \(p_{g1}\) from Swarm 1. This crossover mechanism enables cooperative optimization across subspaces.

The algorithm proceeds as follows: initialize both swarms with random positions within bounds, using the initial convergent solution to fill missing dimensions. Then, iteratively update velocities and positions using PSO equations, compute fitness via crossover, and update personal and global bests. The process continues until a stopping criterion (e.g., maximum iterations or fitness threshold) is met. This approach significantly reduces the required swarm size; for instance, instead of a 5-dimensional swarm with 50 particles, two swarms with 20 particles each (total 40) can achieve similar or better results, speeding up optimization for the quadrotor drone controller.

To validate the Two-Space PSO algorithm, comprehensive simulations were conducted on a quadrotor drone model. The drone parameters used are summarized in Table 1, representing a typical small-scale quadrotor drone.

Table 1: Parameters of the Quadrotor Drone Model
Physical Meaning Parameter Value
Mass \(m\) 1.2 kg
Arm Length \(l\) 0.5 m
Gravity Acceleration \(g\) 9.8 m/s²
Drag Coefficients (Position) \(k_1, k_2, k_3\) 0.02
Drag Coefficients (Attitude) \(k_4, k_5, k_6\) 0.01
Moment of Inertia (\(x\)-axis) \(I_x\) 0.05 kg·m²
Moment of Inertia (\(y\)-axis) \(I_y\) 0.05 kg·m²
Moment of Inertia (\(z\)-axis) \(I_z\) 0.05 kg·m²

The ADRC controller was applied to the attitude subsystem (roll, pitch, yaw) of the quadrotor drone, as attitude control is critical for stability. Disturbances \(d_1, d_2, d_3\) included random noise and sinusoidal components to simulate real-world conditions. The Two-Space PSO was compared with traditional PSO, linear inertia weight PSO, and PSO-GA (genetic algorithm hybrid) in terms of convergence speed and final fitness. The optimization settings are listed in Table 2.

Table 2: Optimization Algorithm Parameters for Quadrotor Drone ADRC Tuning
Algorithm Swarm Size Dimensions Iterations Inertia Weight \(w\) Acceleration Coefficients \(c_1, c_2\)
Traditional PSO 50 5 100 0.6 2.0, 2.0
Linear Inertia PSO 50 5 100 0.9 to 0.4 2.0, 2.0
PSO-GA 50 5 100 0.6 2.0, 2.0
Two-Space PSO 20 (each swarm) 2 and 3 50 0.6 2.0, 2.0

The fitness convergence over iterations is depicted in Figure 1 (simulated data). Two-Space PSO achieved a lower fitness value faster than other algorithms, reaching near-optimal within 30 iterations, whereas others required more iterations. This demonstrates the efficiency of Two-Space PSO for quadrotor drone controller optimization. The optimized ADRC parameters are shown in Table 3, compared with manually tuned baseline values.

Table 3: ADRC Parameters Before and After Optimization for Quadrotor Drone
Parameter Before Optimization After Two-Space PSO Optimization
\(k_1\) 500 355
\(k_2\) 200 675
\(b_1\) 500 588
\(b_2\) 3000 3491
\(b_3\) 1000 373

Control performance was evaluated through simulations of attitude tracking for the quadrotor drone. First, a simple step response from 0° to 20° for roll, pitch, and yaw angles was tested. With optimized parameters, the quadrotor drone exhibited faster convergence and eliminated oscillations observed with baseline parameters. Settling times improved significantly, as summarized in Table 4.

Table 4: Settling Times for Quadrotor Drone Attitude Control (Step Response)
Angle Settling Time (Before Optimization) Settling Time (After Optimization)
Roll (\(\phi\)) 0.297 s 0.065 s
Pitch (\(\theta\)) 0.297 s 0.065 s
Yaw (\(\psi\)) 0.320 s 0.064 s

Next, complex trajectories were used to assess robustness. For the quadrotor drone, roll angle followed a mixed trajectory of step changes and sinusoidal swings, pitch angle a sinusoidal trajectory, and yaw angle step changes. The optimized ADRC reduced tracking errors substantially. The total absolute errors over simulation time are computed as:

$$ E_{\text{total}} = \sum |e(t)| \Delta t, $$

where \(e(t)\) is the error for each angle. Results are shown in Table 5, highlighting the superiority of Two-Space PSO-tuned ADRC for quadrotor drone control.

Table 5: Total Tracking Errors for Quadrotor Drone in Complex Trajectories
Angle Total Error (Before Optimization) Total Error (After Optimization)
Roll 46.5223 31.3297
Pitch 6.0359 5.1252
Yaw 57.1983 37.3137

The improved performance stems from better parameter coordination: the optimized \(k_1, k_2\) enhance nonlinear feedback, while \(b_1, b_2, b_3\) improve disturbance estimation in the quadrotor drone. The Two-Space PSO algorithm effectively explores the parameter spaces without getting trapped in local minima, thanks to crossover between swarms. Furthermore, computational cost is reduced; for a quadrotor drone system, optimization time decreased by approximately 40% compared to traditional PSO, enabling faster controller deployment.

In addition to attitude control, the Two-Space PSO-optimized ADRC can be extended to position control of the quadrotor drone. By decoupling the dynamics, separate ADRC controllers can be tuned for translational motions, but this increases parameter count. The Two-Space approach scales well by grouping parameters per subsystem, e.g., one space for position controller gains and another for attitude observer gains. This modularity is beneficial for complex systems like quadrotor drones.

For further analysis, consider the sensitivity of ADRC parameters to quadrotor drone model variations. Robustness tests were conducted by perturbing mass \(m\) and inertia \(I_x, I_y, I_z\) by ±20%. The optimized parameters maintained stable performance with minimal degradation, whereas baseline parameters led to increased overshoot or instability. This underscores the importance of optimization for real-world quadrotor drone applications where model uncertainties are prevalent.

The Two-Space PSO algorithm also opens avenues for adaptive control. By periodically re-optimizing parameters online using a sliding window of performance data, the quadrotor drone can adapt to changing conditions, such as payload variations or environmental disturbances. However, this requires efficient optimization; Two-Space PSO’s speed makes it suitable for such real-time tuning in quadrotor drones.

In summary, the Two-Space PSO algorithm offers a novel and efficient method for tuning ADRC parameters in quadrotor drones. By partitioning parameters into two subspaces and using crossover fitness evaluation, it reduces computational burden while achieving superior control performance. Simulations on a quadrotor drone model demonstrate faster convergence, lower errors, and improved robustness compared to traditional optimization methods. Future work could integrate this approach with machine learning for predictive tuning or extend it to multi-agent quadrotor drone systems. The quadrotor drone, as a platform, benefits greatly from such advanced control optimizations, enabling more reliable and autonomous operations in diverse scenarios.

Scroll to Top