Fuzzy Linear Active Disturbance Rejection Control for Quadcopter via an Improved Linear Extended State Observer

In recent years, quadcopters have gained significant attention due to their simple structure, low cost, and excellent flight capabilities. These unmanned aerial vehicles are underactuated systems with six degrees of freedom but only four control inputs, leading to inherent challenges in control design. The quadcopter’s dynamics are highly nonlinear and coupled, making them susceptible to parameter uncertainties and external disturbances. Traditional control methods, such as PID, often suffer from slow response and poor disturbance rejection. To address these issues, we propose a fuzzy linear active disturbance rejection control strategy based on an improved linear extended state observer. This approach enhances the quadcopter’s tracking performance and robustness by adaptively tuning controller parameters and accurately estimating disturbances.

The quadcopter dynamics involve translational and rotational motions. Let the earth-fixed frame be denoted as e and the body-fixed frame as b. The rotation matrix R transforms vectors from the body frame to the earth frame. The total lift force in the body frame is given by:

$$G_b = [0, 0, G]^T$$

where G is the sum of individual rotor thrusts. The rotation matrix is:

$$R = \begin{bmatrix}
C_\theta C_\psi & S_\phi S_\theta C_\psi – C_\phi S_\psi & S_\phi S_\psi + C_\phi S_\theta C_\psi \\
C_\theta S_\psi & C_\phi C_\psi + S_\phi S_\theta S_\psi & -S_\phi C_\psi + C_\phi S_\theta S_\psi \\
-S_\theta & S_\phi C_\theta & C_\phi C_\theta
\end{bmatrix}$$

where S and C denote sine and cosine functions, and φ, θ, ψ are roll, pitch, and yaw angles, respectively. The control inputs U1 to U4 are related to the rotor thrusts as:

$$\begin{bmatrix}
U_1 \\
U_2 \\
U_3 \\
U_4
\end{bmatrix}
=
\begin{bmatrix}
1/m & 1/m & 1/m & 1/m \\
-1/I_y & 1/I_y & 1/I_y & -1/I_y \\
-1/I_x & -1/I_x & 1/I_x & 1/I_x \\
-1/I_z & 1/I_z & -1/I_z & 1/I_z
\end{bmatrix}
\begin{bmatrix}
G_1 \\
G_2 \\
G_3 \\
G_4
\end{bmatrix}$$

The equations of motion for the quadcopter are derived using Newton-Euler formalism:

$$\begin{aligned}
\ddot{x} &= (S_\theta C_\phi C_\psi + S_\phi S_\psi)U_1/m – f_k \dot{x}/m \\
\ddot{y} &= (S_\theta C_\phi S_\psi – S_\phi C_\psi)U_1/m – f_k \dot{y}/m \\
\ddot{z} &= C_\theta C_\phi U_1/m – f_k \dot{z}/m – g \\
\ddot{\theta} &= U_3/I_y + (I_z – I_x)\dot{\phi}\dot{\psi}/I_y – f_k \dot{\theta}/I_y \\
\ddot{\phi} &= U_2/I_x + (I_y – I_z)\dot{\theta}\dot{\psi}/I_x – f_k \dot{\phi}/I_x \\
\ddot{\psi} &= U_4/I_z + (I_x – I_y)\dot{\theta}\dot{\phi}/I_z – f_k \dot{\psi}/I_z
\end{aligned}$$

Here, x, y, z are positions; θ, φ, ψ are angles; Ix, Iy, Iz are moments of inertia; m is mass; g is gravity; and fk is air resistance coefficient.

Linear active disturbance rejection control (LADRC) is designed to handle uncertainties and disturbances. For a second-order system:

$$\ddot{y}(t) = f(t) + b_0 u(t)$$

where f(t) represents the total disturbance. A linear extended state observer (LESO) estimates the states and disturbance:

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

The observer gains are parameterized by the observer bandwidth ωo:

$$\beta_1 = 3\omega_o, \quad \beta_2 = 3\omega_o^2, \quad \beta_3 = \omega_o^3$$

The control law compensates for the disturbance:

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

and a PD controller is used:

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

with controller bandwidth ωc:

$$k_p = \omega_c^2, \quad k_d = 2\omega_c$$

To enhance performance, we integrate fuzzy logic with LADRC. The fuzzy controller adaptively adjusts b0, ωc, and ωo based on system error and its derivative. Additionally, a Levant tracking differentiator provides accurate derivative signals:

$$\begin{aligned}
v_0 &= -\lambda_1 |c_0 – a(t)|^{2/3} \text{sign}(c_0 – a(t)) + c_1 \\
v_1 &= -\lambda_2 |c_1 – v_0|^{1/2} \text{sign}(c_1 – v_0) + c_2 \\
v_2 &= -\lambda_3 \text{sign}(c_2 – v_1) \\
\dot{c}_0 &= v_0, \quad \dot{c}_1 = v_1, \quad \dot{c}_2 = v_2
\end{aligned}$$

This differentiator tracks the second derivative of the quadcopter output, improving disturbance estimation. The total disturbance is computed as:

$$f_L = c_1 – b_0 u$$

The fuzzy controller uses the disturbance estimation error and its derivative to adjust ωo, ensuring accurate disturbance rejection for the quadcopter.

Stability analysis for the pitch channel demonstrates bounded estimation error and closed-loop stability. Consider the state equation:

$$\begin{aligned}
\dot{x}_1 &= x_2 \\
\dot{x}_2 &= U_3/I_x – f_k x_2/I_x + x_3 \\
\dot{x}_3 &= l(t) \\
y &= x_1
\end{aligned}$$

The LESO is:

$$\begin{aligned}
\dot{z}_1 &= z_2 – 3\omega_o (z_1 – x_1) \\
\dot{z}_2 &= z_3 – 3\omega_o^2 (z_1 – x_1) – f_k z_2/I_x + U_3/I_x \\
\dot{z}_3 &= -\omega_o^3 (z_1 – x_1)
\end{aligned}$$

With estimation error α = x – z, the error dynamics are:

$$\dot{\alpha} = A_\alpha \alpha + d$$

where

$$A_\alpha = \begin{bmatrix}
-3\omega_o & 1 & 0 \\
-3\omega_o^2 & 0 & 1 \\
-\omega_o^3 & 0 & 0
\end{bmatrix}, \quad d = E l$$

Assuming bounded disturbance and its derivative, the estimation error remains bounded. The control law ensures tracking error convergence to zero, proving BIBO stability for the quadcopter system.

Simulations validate the proposed fuzzy-LADRC for quadcopter control. The quadcopter parameters are:

Parameter Value
fk 0.012 Ns²/rad²
m 1.5 kg
Ix 0.01745 kg·m²
Iy 0.01745 kg·m²
Iz 0.03175 kg·m²
g 9.8 m/s²

Step response tests show improved tracking with fuzzy-LADRC. Rise times for position and yaw are summarized:

Control Strategy tr (x) tr (y) tr (z) tr (ψ)
LADRC 2.314 s 2.103 s 1.672 s 0.564 s
FLADRC 2.103 s 1.883 s 1.476 s 0.463 s
Fuzzy-LADRC 2.002 s 1.815 s 1.456 s 0.426 s

Under wind disturbances, the quadcopter’s robustness is evaluated. Disturbance signals are applied as:

Disturbance Amplitude Time
Dx 1.0, 1.2 16-20 s, 32-36 s
Dy 1.0, 1.2 9-13 s, 28-32 s
Dz 1.0, 1.2 13-17 s, 24-28 s

Performance metrics include control energy Eu = ∫u² dt and ITAE = ∫|e|t dt. Results for fuzzy-LADRC show lower energy consumption and error:

Control Strategy Eu (U1) Eu (U2) Eu (U3) Eu (U4)
LADRC 12740.9 0.3558 0.4982 0.3782
FLADRC 12721.1 0.3164 0.4640 0.3329
Fuzzy-LADRC 12715.2 0.2952 0.4494 0.3182
Control Strategy ITAE (x) ITAE (y) ITAE (z) ITAE (ψ)
LADRC 38.9353 40.0090 27.2100 10.6036
FLADRC 34.5192 35.0078 25.1000 9.0736
Fuzzy-LADRC 32.8830 33.0508 24.3952 7.9303

The fuzzy controller uses triangular membership functions with seven linguistic variables: NB, NM, NS, ZO, PS, PM, PB. Rules for adjusting parameters are based on error and error derivative. For example, the rules for Δb0 are:

e \ ec NB NM NS ZO PS PM PB
NB NB NB NM NM NS ZO ZO
NM NB NB NM NS NS ZO PS
NS NM NM NS NS ZO PS PM
ZO NM NM NS ZO PS PM PM
PS NS NS ZO PS PM PM PB
PM ZO ZO ZO PS PM PB PB
PB ZO ZO PS PM PB PB PB

Similar tables exist for Δωc and Δωo. The final parameters are:

$$b_0 = b_{0in} + \Delta b_0, \quad \omega_c = \omega_{cin} + \Delta \omega_c, \quad \omega_o = \omega_{oin} + \Delta \omega_o$$

In conclusion, the proposed fuzzy-LADRC with improved LESO effectively handles quadcopter uncertainties and disturbances. The method simplifies parameter tuning and enhances disturbance estimation, leading to superior tracking and robustness. Future work will focus on adaptive observer bandwidth laws for further improvement in quadcopter control performance.

Scroll to Top