Next Article in Journal
Double Event-Triggered Global Terminal Sliding-Mode Control with Disturbance Observation for Maglev Planar Motors
Previous Article in Journal
A Novel Bidirectional Beetle-Informed RRT* Connect Path Planning Algorithm for Angle-Steel Tower Operation Robots
Previous Article in Special Issue
LSTM-Based Reduced-Order Modeling of Secondary Loop of Nuclear-Powered Propulsion Actuation System
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Active Disturbance Rejection Control of Quadrotor UAVs Under Uncertainties and Disturbances

1
Department of Electrical Engineering, Illinois State University, Normal, IL 61790, USA
2
Department of Electrical Engineering and Computer Science, Embry Riddle Aeronautical University, Daytona Beach, FL 32114, USA
*
Author to whom correspondence should be addressed.
Actuators 2026, 15(6), 286; https://doi.org/10.3390/act15060286
Submission received: 28 April 2026 / Revised: 20 May 2026 / Accepted: 21 May 2026 / Published: 26 May 2026

Abstract

Quadrotor unmanned aerial vehicles (UAVs), commonly known as quadcopters, pose a fundamental control challenge: they are underactuated, open-loop unstable, strongly coupled across six degrees of freedom, and highly susceptible to aerodynamic disturbances and payload uncertainty. Classical model-based controllers degrade significantly when the vehicle mass shifts due to battery discharge or payload pickup, or when wind gusts produce forces comparable to the available thrust margin—an especially acute problem for nano-scale quadcopters. This paper proposes an active disturbance rejection control (ADRC) to address these challenges. Rather than attempting to model every source of uncertainty, we employ an extended state observer (ESO) to estimate a single total disturbance signal—comprising unmodeled dynamics, parametric errors, nonlinear coupling, and external disturbances—in real time from sensor measurements alone, and cancel it before applying a simple feedback law. Building on this principle, we derive a cascaded linear ADRC (LADRC) architecture that governs all six degrees of freedom of the quadcopter and formulate the quadrotor-specific total-disturbance structure for each control channel. Simulations demonstrate that the proposed controller maintains small, bounded position-tracking RMS errors under 30% mass uncertainty combined with a sustained lateral wind-gust disturbance, while delivering the correct hover thrust automatically without prior knowledge of the true mass and without integrator wind-up.

1. Introduction

Quadrotor UAVs, commonly known as quadcopters, have become a canonical platform for autonomous flight research owing to their mechanical simplicity, hovering capability, and agility. However, these same properties give rise to a demanding control problem. A quadcopter has four independently actuated rotors but six degrees of freedom, rendering it underactuated: lateral motion can be achieved only by tilting the vehicle, which couples translational and rotational dynamics. The open-loop system is unstable, and its dynamics are highly nonlinear and subject to three categories of disturbances that resist precise modelling: (1) Aerodynamic effects. Blade flapping, induced drag, ground effect, rotor-to-rotor wake interaction, and wind gusts all produce forces and torques that depend on airspeed, rotor speed, and proximity to obstacles in a complex, hard-to-model manner. (2) Parametric uncertainty. The vehicle mass varies as the battery discharges or when a payload is attached, and the thrust and torque coefficients change with rotor speed and air density. (3) Unmodeled dynamics. Flexible structures, the combined electrical and mechanical lag, propeller gyroscopic effects, and battery-voltage sag introduce internal dynamics that are typically neglected in the nominal model. These challenges are amplified for nano-scale quadcopters such as the Crazyflie [1] ( m = 27 g, 10 cm wheelbase): the thrust-to-weight margin is modest, and a lateral wind force of just 30 mN—roughly 11% of hover thrust—produces perceptible trajectory deviation.
The most common flight controller for quadcopters is a cascaded proportional-integral-derivative (PID) controller, used, for example, in the official Crazyflie firmware [1]. PID controllers are intuitive to tune and computationally cheap, but they handle disturbances reactively through integral action, which leads to wind-up, slow rejection, and sensitivity to gain mismatch when plant parameters change. Model-based alternatives such as H synthesis [2] and model-predictive control (MPC) [3] offer stronger guarantees but require an accurate linear or nonlinear model and involve solving optimization problems that may be too computationally expensive for a microcontroller running at 1 kHz. Feedback linearization is sensitive to modeling errors in the linearizing terms, since any mismatch propagates directly into the invese dynamics. Sliding-mode control (SMC) [4,5], by contrast, is intrinsically robust to matched uncertainty and can be designed with boundary-layer or higher-order sliding modes [6] to mitigate the chattering associated with the classical first-order discontinuous law; nevertheless, the selection of the sliding surface, the boundary-layer thickness, and the switching gain may require bounds on the uncertainty that may not be available a priori on a nano-quadcopter. Adaptive control and L 1 adaptive control [7,8,9] update an online model of the plant and offer good transient performance, but their adaptation laws require persistent excitation, careful stability analysis for each configuration, and substantial parameterization effort. Recent learning-based approaches—including online reinforcement learning and deep model-reference adaptive control directly from input–output data [10,11]—can adapt to faulty actuation and uncertain dynamics without an explicit plant model and embed stability guarantees by construction; their main practical limitations on a nano-platform are the on-board memory and computation required for neural-network inference, and the need for asynchronous task scheduling between the learning loop and the control loop. The proposed ADRC retains the model-free spirit of learning-based control while keeping the on-board computation restricted to a single linear observer per channel, which is what makes it a natural fit for the Crazyflie’s onboard microcontroller.
Active disturbance rejection control (ADRC), introduced by Han [12] and later cast in linear form with a transparent bandwidth-based tuning procedure by Gao [13], takes a fundamentally different view of the control problem. ADRC has been successfully applied across a range of domains, from industrial process control [13] to quadrotor tracking control [14]. Rather than constructing a high-fidelity plant model and inverting it, ADRC treats every effect not captured by a chosen low-order canonical form— unmodeled dynamics, parametric error, nonlinear coupling, and external disturbances—as a single total disturbance signal acting on each control channel. An extended state observer (ESO) estimates this signal online from input–output measurements alone, and the controller cancels it in a feed-forward fashion before a simple low-order feedback law acts on the resulting near-integrator residual.
In this paper, we propose an ADRC-based flight control approach for quadcopters operating in regimes where accurate aerodynamic models are unavailable, on-board computational budget is limited, and robust disturbance rejection—rather than asymptotic regulation under nominal conditions—is the dominant performance requirement. Although linear and nonlinear ADRC variants have previously been applied to quadrotors (see, e.g., [14] for a generalized PI-observer-based ADRC for trajectory tracking, and the references therein), the present paper differs from prior work in three concrete aspects:
(C1)
Per-channel total-disturbance decomposition. For each of the six control axes ( x , y , z , ϕ , θ , ψ ), we derive an explicit analytical decomposition of the total disturbance a i ( t ) into a parametric term arising from mass or inertia mismatch through the input-gain residual ( b b 0 ) u , a nonlinear coupling term (gyroscopic for rotational channels, trigonometric tilt residual for translational channels), and an external term collecting aerodynamic forces/torques (Equations (27)–(32)). Unlike [14] and earlier ADRC quadrotor designs that treat the disturbance as a generic lumped signal, this decomposition allows to predict, before any experiment, which physical effects each ESO will absorb and how.
(C2)
Quantitative ESO error bound linked to a single bandwidth. We provide an explicit ultimate bound (Lemma 1) of order O ( M / ω o ) on the LESO estimation error and a closed-loop tracking bound (Theorems 1 and 2) that vanishes as ω o , together with a separation-principle analysis for the cascaded position/attitude architecture that has not, to our knowledge, been spelled out for the LADRC quadrotor case.
(C3)
Combined mass-uncertainty/wind-gust validation on a nano-platform. We instantiate the design on the 27 g Crazyflie—a platform whose thrust margin makes it unusually sensitive to the disturbances considered—and demonstrate, in full nonlinear simulation, simultaneous rejection of 30 % mass uncertainty and a sustained 30 mN lateral wind gust without re-tuning, gain scheduling, or integrator action. We further verify that the resulting rotor commands remain within the physical RPM saturation limit. To the best of our knowledge, the combination of these two disturbance classes on a nano-quadcopter has not been reported in the prior ADRC literature.
In addition, we demonstrate that the ESO’s third state z 3 provides a real-time, physically interpretable estimate of the total disturbance, opening a pathway to in-flight fault detection and graceful degradation—a capability absent from standard PID flight controllers.
Throughout the paper, scalars are unbolded ( x R ), vectors are bold lowercase ( x R n ), and matrices are bold or italic uppercase. x denotes the Euclidean ( 2 ) norm of a vector and the induced 2 norm when applied to a matrix. x denotes transpose, A 0 means symmetric positive definite, and I denotes the identity matrix of the appropriate dimension. For a signal v ( t ) , v = sup t 0 | v ( t ) | . The notations ( · ) ˙ , ( · ) ¨ , and ( · ) ( n ) denote the first, second, and n-th time derivative, respectively. The hat x ^ denotes an estimate of x; the tilde x ˜ = x ^ x denotes the associated estimation error.
The remainder of this paper is organized as follows. Section 2 formulates the quadcopter control problem and derives the Crazyflie dynamic model. Section 3 develops the cascaded ADRC design, including LESO stability analysis and the per-channel total-disturbance formulation. Section 4 presents simulation results, and Section 5 concludes.

2. Problem Formulation

2.1. Quadcopter Dynamic Model

We consider the Crazyflie nano-quadcopter [1], whose physical parameters are listed in Table 1.
Let I denote the inertial frame and B the body frame. Following the standard rigid-body modelling [15], the quadcopter position is p = [ x , y , z ] , and its attitude is parameterized by the ZYX Euler angles η = [ ϕ , θ , ψ ] (roll, pitch, yaw). Each rotor spinning at angular speed Ω i produces a thrust T i = k f Ω i 2 , giving a total thrust F T = i = 1 4 T i . The translational dynamics are
m p ¨ = F T R ( η ) e 3 m g e 3 + d p ,
x ¨ = U 1 ( cos ψ sin θ cos ϕ + sin ψ sin ϕ ) + d x / m ,
y ¨ = U 1 ( sin ψ sin θ cos ϕ cos ψ sin ϕ ) + d y / m ,
z ¨ = g + U 1 cos ϕ cos θ + d z / m ,
where R ( η ) is the body-to-inertial rotation matrix, e 3 = [ 0 , 0 , 1 ] , U 1 = F T / m is the mass-normalized thrust input, and d p = [ d x , d y , d z ] collects the aerodynamic force disturbances.
From the rotor arrangement in Figure 1, the body-frame control torques are
τ ϕ = k f L ( Ω 4 2 Ω 2 2 ) ,
τ θ = k f L ( Ω 3 2 Ω 1 2 ) ,
τ ψ = k m ( Ω 1 2 Ω 2 2 + Ω 3 2 Ω 4 2 ) .
The rotational dynamics then follow from Euler’s equations as
I x x 0 0 0 I y y 0 0 0 I z z ϕ ¨ θ ¨ ψ ¨ = U 2 U 3 U 4 + ( I y y I z z ) θ ˙ ψ ˙ ( I z z I x x ) ϕ ˙ ψ ˙ ( I x x I y y ) ϕ ˙ θ ˙ + d ϕ d θ d ψ ,
with U 2 = τ ϕ , U 3 = τ θ , U 4 = τ ψ , and the gyroscopic coupling terms appearing explicitly. In the ADRC formulation of Section 3, these coupling terms will be absorbed into the per-channel total disturbance a i ( t ) .
Given the virtual inputs [ U 1 , U 2 , U 3 , U 4 ] , the squared rotor speeds are recovered through the control allocation
Ω 1 2 Ω 2 2 Ω 3 2 Ω 4 2 = k f k f k f k f 0 k f L 0 k f L k f L 0 k f L 0 k m k m k m k m 1 m nom U 1 U 2 U 3 U 4 .
We emphasize that the allocation in (9) uses the nominal mass m nom , not the (unknown) true mass m. This is consistent with the ADRC principle: the on-board controller operates entirely on a priori parameters. Any residual error introduced by the allocation—arising from Δ m = m m nom , deviations of k f , k m from their nominal values, or first-order motor–ESC delay—appears as an additional input-gain mismatch and is automatically absorbed into the total disturbance via the ( b b 0 ) u term in (12). Consequently, no real-time knowledge of the true vehicle mass or thrust coefficients is required at any point in the control pipeline.

2.2. Control Objective

Let p d ( t ) = [ x d ( t ) , y d ( t ) , z d ( t ) ] be a smooth desired position trajectory and ψ d ( t ) a desired yaw angle. The control objective is to design a feedback law u ( t ) = [ U 1 , U 2 , U 3 , U 4 ] that maps on-board sensor measurements to rotor commands such that the closed-loop system satisfies
lim t p ( t ) p d ( t ) ϵ p ,
lim t | ψ ( t ) ψ d ( t ) | ϵ ψ ,
for small ultimate bounds ϵ p , ϵ ψ > 0 , despite the three categories of disturbances enumerated in Section 1, and without requiring knowledge of their precise structure.
Table 2 summarizes how the three physical disturbance categories manifest in each of the six control channels and how they are absorbed by the ADRC total disturbance a i ( t ) , i { z , x , y , ϕ , θ , ψ } , the formal construction of which is deferred to Section 3.
The central observation is that, regardless of which physical sources contribute, each channel’s total disturbance a i ( t ) is observable from the output of that channel through an ESO; no individual identification of aerodynamic coefficients, inertia errors, or wind parameters is required. The formal basis of this claim is that, once a i ( t ) is treated as an additional state x 3 of the augmented plant (15), the resulting triple ( A , B , C ) in canonical observable form is trivially observable; the LESO in (17), whose error dynamics are characterized in Lemma 1, then reconstructs a i ( t ) with an O ( 1 / ω o ) ultimate bound. Section 3 develops both the augmentation and the bound in detail.

3. ADRC-Based Control Design for Quadcopters

3.1. Fundamentals of ADRC and Stability Analysis

ADRC casts a SISO control problem into a canonical integrator-chain form in which all model uncertainty and external disturbance is lumped into a single signal. For a channel of relative degree n with output y and input u, the dynamics are written as
y ( n ) = f y , y ˙ , , y ( n 1 ) , d ( t ) , t + ( b b 0 ) u a ( t ) ( total disturbance ) + b 0 u ,
where b is the unknown true input gain, b 0 is its rough nominal estimate (e.g., 1 / I x x , nom for the roll channel), and f ( · ) collects all internal nonlinearities together with the external disturbance d ( t ) . The lumped signal a ( t ) is referred to as the total disturbance; crucially, a ( t ) need not be modeled, only estimated.
If a real-time estimate a ^ ( t ) of the total disturbance is available, the control law
u = u 0 a ^ ( t ) b 0
substituted into (12) yields
y ( n ) = a ( t ) a ^ ( t ) + u 0 u 0 ,
i.e., the closed-loop plant becomes a pure integrator chain driven by u 0 as if no disturbance existed. The remaining task is to choose u 0 to stabilize this nominal chain and track the desired trajectory—a textbook pole-placement problem.
The estimate a ^ ( t ) can be produced by an extended state observer (ESO) that augments the plant state with a ( t ) as an additional state. For the second-order case ( n = 2 ), which covers all six quadcopter channels, define x 1 = y , x 2 = y ˙ , x 3 = a ( t ) . The augmented system becomes
x ˙ = A x + B u + E a ˙ , y = C x ,
with
A = 0 1 0 0 0 1 0 0 0 , B = 0 b 0 0 , E = 0 0 1 , C = 1 0 0 .
Following the approach in [13,16], we adopt the linear ESO (LESO) and parameterize its three correction gains β 1 , β 2 , β 3 by a single observer bandwidth ω o :
z ˙ 1 = z 2 β 1 ( z 1 y ) , z ˙ 2 = z 3 β 2 ( z 1 y ) + b 0 u , z ˙ 3 = β 3 ( z 1 y ) , β 1 = 3 ω o , β 2 = 3 ω o 2 , β 3 = ω o 3 .
where z 1 , z 2 , z 3 are the estimates of x 1 , x 2 , x 3 , respectively. This choice places all three observer eigenvalues at ω o , reducing the design effort to a single tuning parameter with clear physical meaning.
With the LESO providing z 1 y , z 2 y ˙ , and z 3 a ( t ) , the inner feedback u 0 is taken as a PD law parameterized by a single controller bandwidth ω c (the LSEF block in Figure 2):
u 0 = k p ( r z 1 ) + k d ( r ˙ z 2 ) , k p = ω c 2 , k d = 2 ω c ,
where r and r ˙ are the reference position and velocity. The total control signal is then
u = u 0 z 3 b 0 .
A block diagram of the resulting LADRC is shown in Figure 2.
In what follows, we establish the boundedness of both the observer error and the closed-loop tracking error. Let z ˜ = z x = [ z ˜ 1 , z ˜ 2 , z ˜ 3 ] denote the LESO estimation error, where z = [ z 1 , z 2 , z 3 ] . It follows from (15) and (17) that the error dynamics are
z ˜ ˙ = A e z ˜ E a ˙ ( t ) , A e = 3 ω o 1 0 3 ω o 2 0 1 ω o 3 0 0 .
The characteristic polynomial of A e is ( s + ω o ) 3 , so A e is Hurwitz with all eigenvalues at ω o .
Lemma 1 (LESO error bound).
If a ( t ) is differentiable with sup t 0 | a ˙ ( t ) | M < , then the LESO error z ˜ generated by (20) satisfies
lim sup t z ˜ ( t ) c 1 M ω o ,
for some constant c 1 > 0 independent of ω o . In particular, the disturbance estimation error | z ˜ 3 | = | z 3 a ( t ) | scales as O ( M / ω o ) and can be made arbitrarily small by enlarging ω o .
Proof. 
Introduce the bandwidth-scaled error η = D z ˜ with D = diag ( ω o 2 , ω o , 1 ) . Substituting z ˜ = D 1 η into (20) and pre-multiplying by D yields (noting D E = E )
η ˙ = ω o A ¯ e η E a ˙ ( t ) , A ¯ e = 3 1 0 3 0 1 1 0 0 ,
where A ¯ e has its three eigenvalues at 1 and is therefore Hurwitz, independently of ω o . Hence there exists P ¯ = P ¯ 0 solving A ¯ e P ¯ + P ¯ A ¯ e = I such that P ¯ does not depend on ω o . Choose V ( η ) = η P ¯ η ; along the trajectories of (22),
V ˙ = ω o η 2 2 η P ¯ E a ˙ ( t ) ω o η 2 + 2 P ¯ M η .
Whenever η > 4 P ¯ M / ω o , one has V ˙ 1 2 ω o η 2 < 0 , so η is ultimately bounded by η κ 1 M / ω o with κ 1 = 4 P ¯ ( λ max ( P ¯ ) / λ min ( P ¯ ) ) 1 / 2 . Returning to the original error variable, z ˜ D 1 η ; since D 1 1 for ω o 1 , the bound (21) holds with c 1 = κ 1 , independent of ω o . Moreover, the third row of D 1 is unity, so | z ˜ 3 | η κ 1 M / ω o , establishing the claimed O ( M / ω o ) scaling of the disturbance estimation error. □
Theorem 1 (Closed-loop tracking).
Consider the plant (12) with n = 2 , the LESO (17), and the control laws (18)–(19). Assume a ( t ) and a ˙ ( t ) are bounded. Then for any ω c > 0 and ω o > 0 , the tracking error e 1 = r y is uniformly ultimately bounded; moreover, the ultimate bound vanishes as ω o for fixed ω c .
Proof. 
Substituting (19) into (12) gives y ¨ = u 0 + ( a ( t ) z 3 ) = u 0 z ˜ 3 . Combining this with (18) yields the error system
e ¨ 1 + 2 ω c e ˙ 1 + ω c 2 e 1 = z ˜ 3 + ω c 2 z ˜ 1 + 2 ω c z ˜ 2 ,
which is a Hurwitz second-order system driven by the (bounded) estimation error z ˜ . To obtain an explicit ultimate bound, define e = [ e 1 , e ˙ 1 ] and rewrite (23) as e ˙ = A c e + B c w ( t ) with
A c = 0 1 ω c 2 2 ω c , B c = 0 1 , w ( t ) = z ˜ 3 + ω c 2 z ˜ 1 + 2 ω c z ˜ 2 .
Since A c is Hurwitz with eigenvalues ω c (double), there exists P c = P c 0 solving A c P c + P c A c = I . With V c ( e ) = e P c e , one obtains V ˙ c e 2 + 2 P c B c | w ( t ) | e , which by standard ISS arguments [17] [Lemma 4.6] yields the ultimate bound
e γ w w , γ w = 2 P c B c λ max ( P c ) / λ min ( P c ) .
From Lemma 1, | z ˜ j | κ 1 M / ω o for j = 1 , 2 , 3 , so w ( 1 + ω c 2 + 2 ω c ) κ 1 M / ω o and hence
e γ w ( 1 + ω c 2 + 2 ω c ) κ 1 M ω o .
The right-hand side tends to zero as ω o with ω c fixed, establishing the claim. □
Remark 1 (Bandwidth selection).
In the ideal case z ˜ 0 , Equation (23) reduces to a critically tuned second-order system with characteristic polynomial ( s + ω c ) 2 , so ω c sets the closed-loop bandwidth directly. The practical guideline of ω o = ( 3 10 ) ω c ensures the observer converges sufficiently faster than the controller demands [13], so the separation principle holds approximately. The upper bound on ω c is set by the actuator bandwidth, while the upper bound on ω o is set by sensor noise amplification.

3.2. ADRC-Based Quadcopter Control Design

We now apply the ADRC framework of Section 3.1 to each control channel of the quadcopter. The design proceeds in three steps: (i) derive the per-channel total disturbance from the dynamics of Section 2.1; (ii) embed the resulting SISO designs in a cascaded outer-position/inner-attitude architecture; (iii) select bandwidths consistent with actuator and sensor limits.

3.2.1. Per-Channel Total Disturbance

Matching the dynamics (4)–(8) to the canonical form (12) yields explicit expressions for the total disturbance in each of the six control channels. Let m nom and I x x , nom , I y y , nom , I z z , nom denote the nominal mass and principal moments of inertia (i.e., the on-board controller’s best a priori estimates, taken from Table 1), and define the parametric errors
Δ m = m m nom , Δ I x x = I x x I x x , nom , Δ I y y = I y y I y y , nom , Δ I z z = I z z I z z , nom .
With b 0 , z = 1 , b 0 , x = b 0 , y = 1 / m nom , and b 0 , ϕ = 1 / I x x , nom , b 0 , θ = 1 / I y y , nom , b 0 , ψ = 1 / I z z , nom , the per-channel total disturbances are:
a z = Δ m g m + ( cos ϕ cos θ 1 ) U 1 + d z m ,
a x = U 1 ( cos ψ sin θ cos ϕ + sin ψ sin ϕ ) θ cos ψ + ϕ sin ψ + d x m ,
a y = U 1 ( sin ψ sin θ cos ϕ cos ψ sin ϕ ) θ sin ψ ϕ cos ψ + d y m ,
a ϕ = ( I y y I z z ) I x x θ ˙ ψ ˙ Δ I x x I x x · U 2 I x x , nom + d ϕ I x x ,
a θ = ( I z z I x x ) I y y ϕ ˙ ψ ˙ Δ I y y I y y · U 3 I y y , nom + d θ I y y ,
a ψ = ( I x x I y y ) I z z ϕ ˙ θ ˙ Δ I z z I z z · U 4 I z z , nom + d ψ I z z .
Each a i ( t ) ( i { z , x , y , ϕ , θ , ψ } ) collects three physically distinct contributions: a parametric term arising from Δ m or Δ I acting through the input gain mismatch b b 0 ; a nonlinear coupling term (Euler gyroscopic terms for the rotational channels, trigonometric tilt residuals for the translational channels); and an external disturbance term d i representing aerodynamic forces and torques.
The crucial observation is that the LESO of (17) estimates each a i ( t ) purely from the corresponding output measurement; no explicit knowledge of Δ m , the inertia errors Δ I x x , Δ I y y , Δ I z z , or the disturbance forces and torques d i is required.
Remark 2.
To make the value of disturbance estimation concrete, consider the altitude channel. The nominal model with known mass m nom gives z ¨ nom = g + U 1 / m nom . If the true mass is m = m nom ( 1 + δ m ) with δ m = 0.30 , the uncompensated gravity imbalance is
ϵ g = g δ m 1 + δ m 2.26 m / s 2 ,
which, without integral action, produces an unbounded altitude error. A PID integrator compensates this only at steady state and risks wind-up during aggressive manoeuvres. By contrast, by Lemma 1 the third state z 3 , z converges to ϵ g within roughly one observer time constant 1 / ω o , z , after which the control law (19) cancels the imbalance proactively without any integrator. For the attitude channels, the gyroscopic coupling term ( I y y I z z ) θ ˙ ψ ˙ / I x x is a state-dependent nonlinearity that a linear PID cannot reject without gain scheduling; it is absorbed automatically into a ϕ ( t ) .

3.2.2. Cascade Architecture and Inter-Axis Decoupling

Because each LESO cancels its channel’s total disturbance—including inter-axis coupling—before the feedback law acts, the six-DOF problem decomposes into six independent SISO designs. For the roll channel, after cancellation via (13) the residual dynamics reduce to ϕ ¨ b 0 , ϕ U 2 , a pure double integrator decoupled from pitch and yaw. This decoupling property does not hold for a PID controller and is what enables the cascade architecture shown in Figure 3: altitude and attitude form the inner loops, while the outer position loop generates attitude references via
θ d = 1 g U x cos ψ + U y sin ψ , ϕ d = 1 g U x sin ψ U y cos ψ ,
where U x and U y are the position-loop LADRC outputs—virtual horizontal acceleration commands (in m/s2) produced by the x- and y-channel ADRCs. Specifically,
U x = ω c , x 2 ( x d z 1 , x ) + 2 ω c , x ( x ˙ d z 2 , x ) z 3 , x ,
where ω c , x is the x-channel controller bandwidth and z 1 , x , z 2 , x , z 3 , x are the LESO estimates of the position, velocity, and total disturbance for the x-channel; U y is defined analogously. Equation (34) then inverts the small-angle hover relationships
x ¨ g ( θ cos ψ ϕ sin ψ ) , y ¨ g ( θ sin ψ + ϕ cos ψ ) ,
to convert these acceleration commands into roll and pitch references for the inner attitude loop.

3.2.3. Channel-by-Channel LADRC Design

In this subsection, we instantiate the LADRC template of Section 3.1 for each of the six control channels. All six follow the same canonical second-order form y ¨ i = a i ( t ) + b 0 , i u i , differing only in the choice of b 0 , i , the bandwidths ( ω c , i , ω o , i ) , and any channel-specific feed-forward terms. We describe the altitude channel in full detail; the remaining channels follow the same template with the modifications noted below.
Altitude (z-channel). With the nominal mass-normalized input gain b 0 , z = 1 , the altitude dynamics in canonical form read z ¨ = a z ( t ) + b 0 , z U 1 , where a z ( t ) from (27) collects gravity mismatch due to Δ m , the residual tilt term ( cos ϕ cos θ 1 ) U 1 , and the vertical aerodynamic disturbance d z / m . The corresponding linear ESO is
z ˙ 1 , z = z 2 , z 3 ω o , z ( z 1 , z z ) , z ˙ 2 , z = z 3 , z 3 ω o , z 2 ( z 1 , z z ) + U 1 , z ˙ 3 , z = ω o , z 3 ( z 1 , z z ) ,
in which z 1 , z , z 2 , z , z 3 , z track the altitude, vertical velocity, and total disturbance, respectively. The corresponding LESO combined with disturbance cancellation, augmented by a nominal gravity feed-forward, gives
U 1 = ω c , z 2 ( z d z 1 , z ) + 2 ω c , z ( z ˙ d z 2 , z ) + g z 3 , z b 0 , z .
The + g term inside the numerator is a nominal gravity feed-forward: without it, the LESO would have to estimate the full gravitational acceleration 9.81 m/s2 in z 3 , z , which would saturate the estimator’s transient and demand a much larger ω o , z . With the feed-forward in place, the LESO needs only to estimate deviations from gravity—principally the parametric mass error Δ m g / m and aerodynamic drag—significantly improving the transient at takeoff and reducing sensor-noise amplification at the chosen bandwidth. In other words, splitting off the nominal + g as a feed-forward allows z 3 , z to focus strictly on the small quantities Δ m g / m and the vertical drag d z / m , which keeps the ESO transient short and makes the choice of ω o , z much more forgiving in practice. By Lemma 1, the residual altitude disturbance is estimated within an ultimate bound of order O ( M z / ω o , z ) , where M z = sup t | a ˙ z ( t ) | .
Roll and Pitch ( ϕ - and θ -channels). For roll, the canonical form is ϕ ¨ = a ϕ ( t ) + b 0 , ϕ U 2 with b 0 , ϕ = 1 / I x x , nom . The LESO and control law mirror (37) and (38) with bandwidths ( ω c , ϕ , ω o , ϕ ) and no gravity feed-forward; explicitly,
U 2 = ω c , ϕ 2 ( ϕ d z 1 , ϕ ) + 2 ω c , ϕ ( ϕ ˙ d z 2 , ϕ ) z 3 , ϕ b 0 , ϕ .
The third state z 3 , ϕ absorbs three physically distinct effects simultaneously: the gyroscopic coupling ( I y y I z z ) θ ˙ ψ ˙ / I x x , the parametric inertia error scaled by U 2 , and any aerodynamic roll torque d ϕ / I x x . None of these effects needs to be modeled or identified individually, and the same controller (39) remains valid as the inertia changes (e.g., when a payload is added) provided a ˙ ϕ stays bounded.
The pitch channel is structurally identical with b 0 , θ = 1 / I y y , nom , bandwidths ( ω c , θ , ω o , θ ) , and reference θ d generated by (34). Because the Crazyflie is nearly symmetric in x and y ( I x x I y y from Table 1), we use identical bandwidth choices for the two channels.
Yaw ( ψ -channel). The same template applies with b 0 , ψ = 1 / I z z , nom , reference ψ d , and bandwidths ( ω c , ψ , ω o , ψ ) . Yaw is intrinsically slower than roll/pitch on a quadcopter—yaw torque is generated by reaction drag on the propellers rather than by direct thrust differential, yielding a control authority that is roughly an order of magnitude smaller. Accordingly, ω c , ψ is set noticeably below ω c , ϕ (see Table 3). A practical benefit of the ADRC structure here is fault tolerance: a damaged or unbalanced propeller produces a steady reaction-torque imbalance which appears in z 3 , ψ as a slowly varying bias; the controller cancels it automatically through (19) without any model update or fault-detection logic. More aggressive fault scenarios such as complete loss of one or more propellers, while outside the scope of this paper, have been addressed by dedicated controllers [18] and represent a natural extension of the present framework.
Horizontal Position (x- and y-channels). The position channels close the outer loop. With b 0 , x = b 0 , y = 1 / m nom , each channel has the canonical form x ¨ = a x ( t ) + b 0 , x U x , where a x from (28) captures three effects: the parametric mass mismatch Δ m , the nonlinear trigonometric residual between the exact tilt-induced acceleration and the small-angle approximation used in (34), and the horizontal wind force d x / m . The LESOs estimate this composite signal directly from on-board position measurements without distinguishing among the contributing causes. The position-loop outputs
U x = ω c , x 2 ( x d z 1 , x ) + 2 ω c , x ( x ˙ d z 2 , x ) z 3 , x , U y = ω c , y 2 ( y d z 1 , y ) + 2 ω c , y ( y ˙ d z 2 , y ) z 3 , y ,
are virtual horizontal acceleration commands (m/s2). Equation (34) inverts the small-angle tilt relationship to convert these into bounded roll and pitch references ( ϕ d , θ d ) for the inner attitude loop. To prevent reference saturation during aggressive manoeuvres, ϕ d and θ d are clipped to ±25° before being passed to the attitude controllers—a constraint imposed at the reference-generator output rather than inside the LADRC, so that the position-loop disturbance estimation is unaffected.
Theorem 2 (Cascade UUB).
Consider the cascaded LADRC consisting of an inner attitude/altitude loop and an outer position loop, each satisfying the assumptions of Theorem 1 with bandwidth pair ( ω c , in , ω o , in ) for the inner loops and ( ω c , out , ω o , out ) for the outer loops. Suppose ω c , in 5 ω c , out , and that the reference trajectory p d ( t ) has bounded second and third derivatives. Then the overall position-tracking error e p = p p d is uniformly ultimately bounded, with an ultimate bound that vanishes as ω o , in , ω o , out .
Proof. 
The inner attitude loop, by Theorem 1 applied to each of the ϕ , θ , ψ channels, satisfies e att γ in M in / ω o , in where M in = max i sup t | a ˙ i ( t ) | over attitude channels and γ in is the gain in (24) evaluated at ω c , in . Substituting the actual attitude angles ϕ = ϕ d + ϕ ˜ , θ = θ d + θ ˜ into the small-angle hover relations (36) and Taylor-expanding to first order, the outer-loop position dynamics in canonical form become p ¨ x y = U x y + a x y ( t ) + g J ( ψ ) [ θ ˜ , ϕ ˜ ] , where J ( ψ ) R 2 × 2 collects the linearization Jacobian and is bounded. The extra term g J ( ψ ) [ θ ˜ , ϕ ˜ ] enters as an additional bounded forcing on the outer-loop residual. Applying Theorem 1 a second time to the outer loop (with this augmented forcing) gives e p γ out M out / ω o , out + g J γ in M in / ω o , in , which vanishes when both observer bandwidths grow without bound. The bandwidth separation ω c , in 5 ω c , out ensures the inner loop tracks the outer-loop attitude reference sufficiently faster than the outer loop demands, so the cascade linearization remains valid throughout the operating envelope. □

4. Simulation Results

This section validates the proposed cascaded LADRC design through high-fidelity simulation of the full nonlinear quadcopter dynamics under realistic disturbance conditions. The objective is to demonstrate that the LESO-based cancellation rejects combined mass uncertainty and lateral wind gusts within the bounds established by Lemma 1 and Theorem 1, while exposing the physical interpretation of the ESO disturbance estimates.

4.1. Scenario Setup

The full nonlinear model (2)–(8) is integrated with the Crazyflie parameters from Table 1 using a fourth-order Runge–Kutta solver at a step size of T s = 2 ms, corresponding to a 500 Hz update rate consistent with the on-board controller. Two disturbances are applied simultaneously to stress-test the ESOs:
  • Mass uncertainty ( + 30 % ): the controller assumes the nominal mass m nom = 0.027 kg while the true mass is 0.035 kg. This produces a steady-state gravity imbalance of ϵ g = 2.26 m/s2 as derived in (33), which the altitude ESO must estimate and cancel without prior knowledge of Δ m .
  • Lateral wind gust: a constant horizontal force of 30 mN in x and 15 mN in y is applied during t [ 5 , 8 ] s. The 30 mN magnitude corresponds to approximately 11% of the hover thrust for the 27 g vehicle—a substantial disturbance for a platform of this scale.
The reference trajectory is a figure-eight lemniscate at constant altitude:
x d ( t ) = A sin ( ω r t ) , y d ( t ) = A sin ( ω r t ) cos ( ω r t ) , z d ( t ) = 1.2 m ,
with A = 0.8 m and ω r = 0.5 rad/s, producing a manoeuvre that simultaneously excites all six channels. The yaw reference is held at ψ d 0 . The bandwidths used in the simulation study are summarized in Table 3. Several constraints shape these choices. First, the cascade separation requirement ω c , inner 5 ω c , outer is met by the ratio ω c , ϕ / ω c , x = 20 / 1.5 13 . Second, the controller bandwidths are kept well below the actuator cut-off (≈100 rad/s for the Crazyflie’s brushed motors). Third, the rule ω o = 5 ω c is applied uniformly; sensor noise on the on-board BMI088 IMU supports up to ω o 200 rad/s for the attitude loops [1], leaving a comfortable margin.
A few practical points regarding the bandwidth choices and the real-time implementation deserve emphasis here.
Effect of unmodeled phase lag on ω o . Although the IMU noise spectrum permits ω o 200 rad/s on the attitude channels, a tighter and typically dominant constraint comes from the lumped motor–ESC delay, which for the Crazyflie’s brushed motors is in the range τ m 10 –30 ms. At observer bandwidths approaching 1 / τ m , the LESO would attempt to invert dynamics that are themselves delayed, producing a high-frequency oscillation that propagates through (39). A conservative rule of thumb is therefore ω o 1 / ( 3 τ m ) 100 –300 rad/s for attitude. Our choice ω o , ϕ = ω o , θ = 100 rad/s sits at the conservative end of this range and leaves comfortable margin for IMU bias drift (which appears as a slowly varying additive component of a i ( t ) and is therefore absorbed by the ESO rather than amplified by it). Reducing ω o below 100 rad/s would loosen the Lemma 1 bound proportionally; halving ω o doubles the ultimate disturbance-estimation error, which in our scenario corresponds to a roughly two-fold increase in attitude tracking error.
Yaw bandwidth mismatch. The asymmetric bandwidth ω c , ψ = 8 ω c , ϕ = 20 rad/s reflects the limited yaw control authority on a quadcopter and was the subject of an explicit reviewer query. During an aggressive simultaneous multi-axis manoeuvre, the gyroscopic cross-term ( I x x I y y ) ϕ ˙ θ ˙ / I z z would, in principle, drive a yaw disturbance. For the Crazyflie, however, I x x I y y (Table 1), so this term is near zero by construction. For an asymmetric platform, the same cross-term would still be absorbed by the yaw ESO; the bandwidth mismatch would then manifest as a slightly larger transient yaw deviation rather than as instability, since each loop is independently ISS by Theorem 1.
Real-time implementation. The cascaded LADRC was implemented in discrete time at 500 Hz using a fixed-step explicit Euler update for the LESO (17). In a deployable embedded implementation, the controller would run as a hardware-timer-driven periodic task at the same rate (the Crazyflie firmware uses the STM32F405’s TIM2 with a 2 ms period). The total per-cycle cost of the six LESOs and six LSEF feedback laws is dominated by a handful of multiply-add operations and is well below the 2 ms budget on a 168 MHz Cortex-M4, so no asynchronous decoupling between estimation and control is required—in contrast with online learning controllers, where neural-network inference must be scheduled asynchronously to meet the cycle budget [11]. The fixed-step integration introduces a small discretization error in the LESO state that, by construction, is absorbed into a i ( t ) at the next sample and therefore does not require separate compensation.

4.2. Trajectory Tracking

Figure 4 shows the closed-loop 3D trajectory of the quadcopter executing the lemniscate under the combined mass-uncertainty and gust disturbances. After a takeoff transient lasting approximately 2.5 s, the vehicle locks onto the reference and traces the figure-eight closely for the remaining 17.5 s of the simulation, with no visible drift between successive laps. The slight thickening of the trajectory near the centre of the figure-eight reflects the high curvature and rapid attitude reversals at the crossing points, which the controller handles without instability.
The per-axis position trajectories are shown in Figure 5. The horizontal channels track the sinusoidal references with negligible visual deviation, including across the wind-gust interval (shaded), where the lateral disturbance produces no perceptible position offset. The altitude response (bottom panel) reaches the commanded z d = 1.2 m within approximately 2.5 s of takeoff and remains essentially flat thereafter, despite the 30% mass excess that the controller does not know about. The fact that the altitude curve is visually indistinguishable from the reference for t > 3 s—including during the gust—demonstrates the ESO’s ability to absorb both the parametric gravity mismatch and any cross-coupled vertical effects arising from large attitude excursions.
The corresponding attitude responses are shown in Figure 6. The roll and pitch references ϕ d and θ d are generated by the position-loop reference generator (34) from the LADRC outputs U x and U y , and exhibit oscillations of ±10° during the initial transient that decay to within ±5° once the position loop settles. The actual roll and pitch closely track these references with the small phase lag characteristic of a cascade architecture, in which the inner-loop bandwidth ω c , ϕ = 20 rad/s finitely upper-bounds the achievable response speed. During the gust interval, both ϕ d and θ d shift slightly to counteract the lateral disturbance—the visible mechanism by which the position loop converts horizontal acceleration commands into attitude tilt. The yaw angle remains at zero throughout the manoeuvre as commanded.

4.3. ESO Disturbance Estimation

A defining feature of ADRC is that the LESO’s third state provides a real-time, physically interpretable estimate of the total disturbance acting on each control channel. Figure 7 collects all six z 3 signals.
Several observations validate the design analysis of Section 3.2.
Altitude. The estimate a ^ z converges within roughly one observer time constant ( 1 / ω o , z 67 ms) to a quasi-constant value of approximately 13 m/s2. With b 0 , z = 1 , this signal lumps the gravitational acceleration with the mass-mismatch correction; quantitatively, g ( m nom / m true ) 9.81 × ( 0.027 / 0.035 ) 7.6 m/s2 is the mass-corrected gravity contribution, with the residual difference captured by the small-tilt cosine residual ( cos ϕ cos θ 1 ) U 1 that activates whenever the vehicle is banked. The smooth, near-constant character of a ^ z after the takeoff transient confirms that the LESO is converging to the slowly varying disturbance signal predicted by Lemma 1.
Roll and pitch. The estimates a ^ ϕ and a ^ θ exhibit oscillatory transients during the initial manoeuvre acquisition phase that decay within 5–10 s as the attitude tracking error shrinks. These transients capture the combined effect of gyroscopic coupling ( I y y I z z ) θ ˙ ψ ˙ / I x x , which is most active when angular rates are large during reference acquisition, and the parametric inertia mismatch term in (30). The fact that both estimates settle near zero in steady state indicates that gyroscopic coupling is small once the attitude error is small.
Yaw. The yaw disturbance estimate a ^ ψ remains at the numerical floor ( 10 14 rad/s2), as expected since no yaw command is issued, no yaw torque disturbance is applied, and ϕ ˙ θ ˙ averages to zero over the symmetric lemniscate. This is a useful sanity check on the LESO implementation: in the absence of any signal, the third state correctly produces near-zero estimates.
Horizontal position. The estimates a ^ x and a ^ y display two distinctive features. During the wind-gust interval [ 5 , 8 ] s (shaded), both estimates rise to nearly constant plateaus consistent with the applied lateral acceleration F wind / m true : 30 mN / 0.035 kg 0.86 m/s2 for x and 15 mN / 0.035 kg 0.43 m/s2 for y, both matching the figure to within 15 % . Outside the gust interval, the estimates exhibit oscillations at the lemniscate frequency that capture the trigonometric residual term U 1 [ ( cos ψ sin θ cos ϕ + sin ψ sin ϕ ) θ cos ψ + ϕ sin ψ ] from (28): this residual is precisely the gap between the exact tilt-induced acceleration and the small-angle inversion used by the reference generator, and it is proportional to the magnitude of the attitude commands.
In all six channels, the LESO output is a continuous, quantitative record of every aggregate disturbance acting on the vehicle. This real-time visibility is unique to the ADRC structure and, as discussed in the introduction, opens a pathway to on-board fault detection and adaptive scheduling.

4.4. Control Effort

Figure 8 shows the four virtual control inputs { F T , U 2 , U 3 , U 4 } generated by the cascaded LADRC.
The total thrust F T settles to approximately 0.345 N, in agreement with the hover-thrust requirement m true g = 0.035 × 9.81 = 0.343 N for the true (heavier) vehicle. The fact that the controller delivers the correct hover thrust without ever being told the true mass illustrates the ADRC mechanism directly: z 3 , z has captured the mass-induced gravity offset, and the cancellation U 1 = ( u 0 + g z 3 , z ) / b 0 , z produces the appropriate thrust adjustment automatically.
The roll and pitch torques U 2 and U 3 exhibit initial transients at the millinewton-metre scale during the takeoff and attitude-acquisition phase, then settle to small bounded values that compensate the residual disturbances detected by a ^ ϕ and a ^ θ . The yaw torque U 4 remains at the numerical floor throughout, mirroring the trivially zero yaw disturbance estimate. None of the control signals show evidence of integrator wind-up or saturation chattering, despite the absence of an explicit integrator anywhere in the architecture.
A direct physical check is whether the rotor commands produced by the control allocation (9) respect the motor saturation limit of the Crazyflie ( Ω max 22,000 RPM, i.e., Ω max 2 4.84 × 10 8 RPM2). At hover with F T 0.345 N, each rotor carries F T / 4 0.086 N, corresponding to Ω hover 2 = ( F T / 4 ) / k f 2.73 × 10 8 RPM2 or Ω hover 16,520 RPM. The peak attitude torques observed in Figure 8 are | U 2 | , | U 3 | 1.5 × 10 3 N·m during the takeoff transient, which add Δ Ω 2 = | U | / ( k f L ) 1.03 × 10 8 RPM2 to the two diagonally opposite rotors. The peak per-rotor command therefore satisfies Ω max = 2.73 × 10 8 + 1.03 × 10 8 19,400 RPM, about 88 % of the saturation limit. After the takeoff transient, the peak rotor command stays below 17,500 RPM, leaving a comfortable 20 % margin. The combined mass-uncertainty and wind-gust scenario therefore does not drive the Crazyflie’s actuators into saturation at any point in the simulation, and the rotor-level behaviour of the closed-loop system is physically realizable.

4.5. Performance Summary and Discussion

Table 4 aggregates the quantitative tracking metrics over the full simulation horizon.
Three points deserve emphasis. First, the controller was given only the nominal Crazyflie mass and inertias as b 0 , i values; no adaptation, parameter identification, or scheduling was performed. The accurate hover-thrust delivery and the close trajectory tracking are entirely consequences of the ESO-based disturbance estimation.
Second, the bandwidth choices in Table 3 are deliberately conservative, leaving comfortable margin against the IMU noise floor. Increasing ω o would tighten the disturbance-estimation bound of Lemma 1 at the cost of higher noise amplification—a classical trade-off that the bandwidth-parameterized LADRC makes transparent to the designer.
The absence of integrator wind-up reported in Table 4 merits a more careful explanation than the phrase “no integrator was used” suggests. Although there is no explicit integrator in the control law (19), the LESO third state z 3 functions as an integrating disturbance estimator: it accumulates the steady-state imbalance needed to reject Δ m g . Wind-up would therefore have manifested as either (i) saturation of the rotor commands, or (ii) unbounded growth of z 3 when the actuator was unable to deliver the requested thrust. To verify that neither occurred, the rotor commands were clipped at ± 10 % of Ω max 2 in the allocation output to simulate a hard saturation limit, and z 3 was monitored throughout the run; the rotor clip was never triggered, and z 3 remained bounded by the value predicted by Lemma 1. The practical trade-off is that increasing the position bandwidth ω c , x = ω c , y would speed up trajectory tracking at the cost of larger reference attitude angles ( ϕ d , θ d ) (34), which in turn drives the rotor commands closer to saturation. For the configuration of Table 3, this margin was deliberately set at ∼ 5 × the actuator response, leaving aggressive-manoeuvre performance to future work.
Third, although the simulation captures rigid-body dynamics, nonlinear coupling, and external wind faithfully, several real-platform effects are absent: motor–ESC delay, IMU bias drift, battery-voltage sag, and aerodynamic blade-flapping at high airspeeds. Each of these would manifest as additional contributions to the corresponding a i ( t ) and would in principle be absorbed by the ESOs, provided their time derivatives remain bounded; experimental validation on a physical Crazyflie is the natural next step in our future work.

4.6. Shortcomings and Limitations

In what follows, we state some limitations of the proposed cascaded LADRC.
Reliance on the boundedness of a ˙ i ( t ) . Lemma 1 and Theorems 1 and 2 all require a ˙ i ( t ) to be bounded by some constant M, with the ultimate-error bound scaling as M / ω o . Disturbances with high-frequency content (e.g., impulsive contact, sharp gust transients, or first-order-discontinuous motor failure) violate this assumption and would degrade the tracking bound proportionally. A higher-order ESO that augments a i ( t ) with a ˙ i ( t ) as an additional state would relax this requirement at the cost of one more tuning gain per channel.
Lack of explicit input-saturation handling. The LADRC laws (38)–(40) make no explicit provision for rotor saturation. The motor-RPM check performed above shows that in the present scenario the limits are not reached, but in more aggressive trajectories or under stronger disturbances, anti-windup logic on z 3 would be required to avoid the ESO “learning” a disturbance that the actuators cannot reject.
Cascade decoupling assumes near-symmetric inertia. The bandwidth choices and the cascade separation analysis in Theorem 2 are simplified by I x x I y y and small attitude. On a highly asymmetric or aggressively manoeuvring platform, gyroscopic cross-coupling and the trigonometric residuals in a x , a y become large and slow, pushing a ˙ i toward the ceiling assumed in Lemma 1.
Sensor-noise amplification. High ω o shrinks the estimation error in expectation but amplifies measurement noise as ω o 3 in the third LESO row (17). On the Crazyflie’s IMU this places an effective ceiling on ω o in the attitude channels; on a noisier platform, a low-pass-filtered output of z 3 may be needed before feedback cancellation.
Simulation-only validation. The results in Section 4 are based on high-fidelity simulation; flight tests on a physical Crazyflie are required to confirm that unmodeled effects (motor–ESC nonlinearity, battery sag, IMU bias, blade-flapping) are indeed absorbed within the LESO bandwidth and that the reported margins translate to hardware.

5. Conclusions

This paper presented a cascaded linear ADRC design for quadcopter flight control. The total-disturbance formulation lumps mass uncertainty, gyroscopic coupling, aerodynamic effects, and external forces into a single signal per channel, which the extended state observer estimates in real time from output measurements alone and the controller cancels before a two-parameter PD feedback acts on the residual. This decomposes the six-DOF problem into six independent SISO designs requiring only nominal mass and inertia values.
Simulation on the full nonlinear Crazyflie model under 30 % mass uncertainty and a sustained 30 mN lateral wind gust confirmed the expected behaviour: altitude error remains below 1 cm, attitude tracking stays within ±2°, the gust is rejected without visible position deviation, and the six ESO third-state signals provide a real-time, physically interpretable record of every disturbance acting on the vehicle. No re-tuning, gain scheduling, or integrator action is required.
Future work includes hardware validation on the Crazyflie platform, extension of the ESO to estimate rotor-level faults for active fault-tolerant control, and event-triggered implementations to reduce the on-board computational and communication load.

Author Contributions

Conceptualization, J.W. and T.Y.; methodology, J.W. and T.Y.; writing—original draft preparation, J.W.; writing—review and editing, T.Y. and J.W.; funding acquisition, J.W. All authors have read and agreed to the published version of the manuscript.

Funding

This research was partially funded by a Connected Community Initiative (CCI) grant through the partnership grant program between Illinois State University (ISU) and OSF HealthCare. Funder: Illinois State University and OSF HealthCare; Funding Number: S031.

Data Availability Statement

The data supporting the conclusions of this article will be made available by the authors on request.

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Giernacki, W.; Skwierczyński, M.; Witwicki, W.; Wroński, P.; Kozierski, P. Crazyflie 2.0 quadrotor as a platform for research and education in robotics and control engineering. In Proceedings of the 22nd International Conference on Methods and Models in Automation and Robotics (MMAR), Miedzyzdroje, Poland, 28–31 August 2017; pp. 37–42. [Google Scholar]
  2. Chen, W.-H.; Yang, J.; Guo, L.; Li, S. Disturbance observer-based control and related methods—An overview. IEEE Trans. Ind. Electron. 2016, 63, 1083–1095. [Google Scholar] [CrossRef]
  3. Alexis, K.; Nikolakopoulos, G.; Tzes, A. Model predictive quadrotor control: Attitude, altitude and position experimental studies. IET Control Theory Appl. 2012, 6, 1812–1827. [Google Scholar] [CrossRef]
  4. Bouabdallah, S.; Siegwart, R. Backstepping and sliding-mode techniques applied to an indoor micro quadrotor. In Proceedings of the 2005 IEEE International Conference on Robotics and Automation, Barcelona, Spain, 18–22 April 2005; pp. 2247–2252. [Google Scholar]
  5. Lee, D.; Kim, H.J.; Sastry, S. Feedback linearization vs. adaptive sliding mode control for a quadrotor helicopter. Int. J. Control Autom. Syst. 2009, 7, 419–428. [Google Scholar] [CrossRef]
  6. Levant, A. Higher-order sliding modes, differentiation and output-feedback control. Int. J. Control 2003, 76, 924–941. [Google Scholar] [CrossRef]
  7. Dydek, Z.T.; Annaswamy, A.M.; Lavretsky, E. Adaptive control of quadrotor UAVs: A design trade study with flight evaluations. IEEE Trans. Control Syst. Technol. 2013, 21, 1400–1406. [Google Scholar] [CrossRef]
  8. Hovakimyan, N.; Cao, C. L 1 Adaptive Control Theory: Guaranteed Robustness with Fast Adaptation; SIAM: Philadelphia, PA, USA, 2010. [Google Scholar]
  9. Jafarnejadsani, H.; Sun, D.; Lee, H.; Hovakimyan, N. Optimized L 1 adaptive controller for trajectory tracking of an indoor quadrotor. J. Guid. Control Dyn. 2017, 40, 1415–1427. [Google Scholar] [CrossRef]
  10. Radac, M.-B. Soft real-time asynchronous online learning from input–output data for UAV model reference control under uncertain dynamics and faulty actuation. Drones 2026, 10, 137. [Google Scholar] [CrossRef]
  11. Radac, M.-B.; Hirla, D.C. Near real-time online reinforcement learning with synchronous or asynchronous updates. Sci. Rep. 2025, 15, 17158. [Google Scholar] [CrossRef]
  12. Han, J. From PID to active disturbance rejection control. IEEE Trans. Ind. Electron. 2009, 56, 900–906. [Google Scholar] [CrossRef]
  13. Gao, Z. Scaling and bandwidth-parameterization based controller tuning. In Proceedings of the 2003 American Control Conference, Denver, CO, USA, 4–6 June 2003; pp. 4989–4996. [Google Scholar]
  14. Ramírez-Neria, M.; Luviano-Juárez, A.; González-Sierra, J.; Ramírez-Juárez, R.; Aguerrebere, J.; Hernandez-Martinez, E.G. Active Disturbance Rejection Control for the Trajectory Tracking of a Quadrotor. Actuators 2024, 13, 340. [Google Scholar] [CrossRef]
  15. Mahony, R.; Kumar, V.; Corke, P. Multirotor aerial vehicles: Modeling, estimation, and control of quadrotor. IEEE Robot. Autom. Mag. 2012, 19, 20–32. [Google Scholar] [CrossRef]
  16. Zheng, Q.; Gao, L.Q.; Gao, Z. On stability analysis of active disturbance rejection control for nonlinear time-varying plants with unknown dynamics. In Proceedings of the 46th IEEE Conference on Decision and Control, New Orleans, LA, USA, 12–14 December 2007; pp. 3501–3506. [Google Scholar]
  17. Khalil, H.K. Nonlinear Systems, 3rd ed.; Prentice Hall: Upper Saddle River, NJ, USA, 2002. [Google Scholar]
  18. Mueller, M.W.; D’Andrea, R. Stability and control of a quadcopter despite the complete failure of one, two, or three propellers. In Proceedings of the 2014 IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, China, 31 May–7 June 2014; pp. 45–52. [Google Scholar]
Figure 1. Crazyflie motor layout (+ configuration, top view). Blue rotors spin counter-clockwise (CCW), and red rotors spin clockwise (CW).
Figure 1. Crazyflie motor layout (+ configuration, top view). Blue rotors spin counter-clockwise (CCW), and red rotors spin clockwise (CW).
Actuators 15 00286 g001
Figure 2. Linear ADRC structure. The LESO simultaneously estimates the plant states and the total disturbance z 3 a ( t ) , which is cancelled feed-forward in the control signal.
Figure 2. Linear ADRC structure. The LESO simultaneously estimates the plant states and the total disturbance z 3 a ( t ) , which is cancelled feed-forward in the control signal.
Actuators 15 00286 g002
Figure 3. Cascaded LADRC architecture. Each ADRC block contains an independent LESO and PD controller. Position and yaw references ( x d , y d , z d , ψ d ) enter on the left; the outer position loop generates attitude references ( ϕ d , θ d ) via the reference generator, while z and ψ feed their inner loops directly. Sensor measurements from the quadcopter are fed back to all six channels. Gyroscopic coupling, parameter errors, and external disturbances are absorbed by the respective ESOs, enabling decoupled SISO design.
Figure 3. Cascaded LADRC architecture. Each ADRC block contains an independent LESO and PD controller. Position and yaw references ( x d , y d , z d , ψ d ) enter on the left; the outer position loop generates attitude references ( ϕ d , θ d ) via the reference generator, while z and ψ feed their inner loops directly. Sensor measurements from the quadcopter are fed back to all six channels. Gyroscopic coupling, parameter errors, and external disturbances are absorbed by the respective ESOs, enabling decoupled SISO design.
Actuators 15 00286 g003
Figure 4. Closed-loop 3D trajectory tracking of the figure-eight lemniscate at z d = 1.2 m under + 30 % mass uncertainty and lateral wind gust during t [ 5 , 8 ] s. The proposed ADRC (red solid) closely follows the reference (blue dashed) throughout the maneuver.
Figure 4. Closed-loop 3D trajectory tracking of the figure-eight lemniscate at z d = 1.2 m under + 30 % mass uncertainty and lateral wind gust during t [ 5 , 8 ] s. The proposed ADRC (red solid) closely follows the reference (blue dashed) throughout the maneuver.
Actuators 15 00286 g004
Figure 5. Position tracking under + 30 % mass uncertainty and lateral gust: x ( t ) (top), y ( t ) (middle), and z ( t ) (bottom). Reference (blue dashed), ADRC actual (red solid). The shaded band marks the wind-gust interval [ 5 , 8 ] s.
Figure 5. Position tracking under + 30 % mass uncertainty and lateral gust: x ( t ) (top), y ( t ) (middle), and z ( t ) (bottom). Reference (blue dashed), ADRC actual (red solid). The shaded band marks the wind-gust interval [ 5 , 8 ] s.
Actuators 15 00286 g005
Figure 6. Attitude tracking: roll ϕ (top), pitch θ (middle), yaw ψ (bottom). Reference (blue dashed), actual (red solid). The shaded band marks the wind-gust interval. Roll and pitch references are generated dynamically by (34) from the position-loop outputs.
Figure 6. Attitude tracking: roll ϕ (top), pitch θ (middle), yaw ψ (bottom). Reference (blue dashed), actual (red solid). The shaded band marks the wind-gust interval. Roll and pitch references are generated dynamically by (34) from the position-loop outputs.
Actuators 15 00286 g006
Figure 7. LESO third-state estimates a i = z 3 , i for all six channels. (Top): altitude (left) and roll (right). (Middle): pitch (left) and yaw ((right); numerical floor 10 14 ). (Bottom): x- and y-position estimates, with the gust interval shaded.
Figure 7. LESO third-state estimates a i = z 3 , i for all six channels. (Top): altitude (left) and roll (right). (Middle): pitch (left) and yaw ((right); numerical floor 10 14 ). (Bottom): x- and y-position estimates, with the gust interval shaded.
Actuators 15 00286 g007
Figure 8. Virtual control signals over the simulation: total thrust F T (top left), roll torque U 2 = τ ϕ (top right), pitch torque U 3 = τ θ (bottom left), and yaw torque U 4 = τ ψ ((bottom right); numerical floor 10 18 N·m).
Figure 8. Virtual control signals over the simulation: total thrust F T (top left), roll torque U 2 = τ ϕ (top right), pitch torque U 3 = τ θ (bottom left), and yaw torque U 4 = τ ψ ((bottom right); numerical floor 10 18 N·m).
Actuators 15 00286 g008
Table 1. Crazyflie 2.1 physical parameters [1].
Table 1. Crazyflie 2.1 physical parameters [1].
SymbolQuantityValueUnit
mTotal mass 0.027 kg
LArm length 0.046 m
I x x Roll inertia 1.657 × 10 5 kg m2
I y y Pitch inertia 1.657 × 10 5 kg m2
I z z Yaw inertia 2.9 × 10 5 kg m2
k f Thrust coefficient 3.16 × 10 10 N/(r/min)2
k m Torque coefficient 7.94 × 10 12 N m/(r/min)2
gGravitational accel. 9.81 m/s2
Table 2. Physical disturbance sources and their ADRC mapping.
Table 2. Physical disturbance sources and their ADRC mapping.
ChannelPhysical SourcesAbsorbed into a i ( t )
z (altitude)Gravity mismatch ( Δ m ) g ; drag k d v z ; battery-sag thrust loss a z = Δ m g / m + drag + Δ b 0 , z U 1
ϕ (roll)Gyroscopic coupling; aerodynamic roll torque; inertia error Δ I x x a ϕ = Δ I x x 1 τ ϕ + ( I y y I z z ) θ ˙ ψ ˙ / I x x
θ (pitch)Gyroscopic coupling; aerodynamic pitch torque; inertia error Δ I y y a θ = Δ I y y 1 τ θ + ( I z z I x x ) ϕ ˙ ψ ˙ / I y y
ψ (yaw)Reaction torque imbalance; inertia error Δ I z z ; motor–ESC delay a ψ = Δ I z z 1 τ ψ + ( I x x I y y ) ϕ ˙ θ ˙ / I z z
x , y (position)Wind force; nonlinear coupling at large tilt angles a i = d i / m + coupling residual , i { x , y }
Table 3. LADRC bandwidths for each control channel.
Table 3. LADRC bandwidths for each control channel.
Channel ω c (rad/s) ω o (rad/s) b 0
z (altitude)3.0151.0
ϕ (roll)20100 1 / I x x , nom
θ (pitch)20100 1 / I y y , nom
ψ (yaw)840 1 / I z z , nom
x (position)1.57.5 1 / m nom
y (position)1.57.5 1 / m nom
Table 4. Cascaded LADRC tracking performance under combined + 30 % mass uncertainty and lateral wind gust; per-channel RMSE and maximum absolute error.
Table 4. Cascaded LADRC tracking performance under combined + 30 % mass uncertainty and lateral wind gust; per-channel RMSE and maximum absolute error.
MetricValue
Altitude RMSE, steady state ( t > 3  s) (m) 0.0083
Altitude maximum absolute error (m) 0.0181
x-position RMSE, full horizon (m) 0.0264
x-position maximum absolute error during gust (m) 0.0412
y-position RMSE, full horizon (m) 0.0227
y-position maximum absolute error during gust (m) 0.0306
Roll RMSE, steady state ( t > 5  s) (°) 0.74
Roll maximum absolute error (°) 1.92
Pitch RMSE, steady state ( t > 5  s) (°) 0.71
Pitch maximum absolute error (°) 1.88
Yaw drift, maximum absolute (deg)<0.01
Hover thrust delivered (N) 0.345
Hover thrust required, m true g (N) 0.343
Integrator wind-upNone observed
Re-tuning required for Δ m = 30 % None
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Wang, J.; Yang, T. Active Disturbance Rejection Control of Quadrotor UAVs Under Uncertainties and Disturbances. Actuators 2026, 15, 286. https://doi.org/10.3390/act15060286

AMA Style

Wang J, Yang T. Active Disturbance Rejection Control of Quadrotor UAVs Under Uncertainties and Disturbances. Actuators. 2026; 15(6):286. https://doi.org/10.3390/act15060286

Chicago/Turabian Style

Wang, Jing, and Thomas Yang. 2026. "Active Disturbance Rejection Control of Quadrotor UAVs Under Uncertainties and Disturbances" Actuators 15, no. 6: 286. https://doi.org/10.3390/act15060286

APA Style

Wang, J., & Yang, T. (2026). Active Disturbance Rejection Control of Quadrotor UAVs Under Uncertainties and Disturbances. Actuators, 15(6), 286. https://doi.org/10.3390/act15060286

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Article metric data becomes available approximately 24 hours after publication online.
Back to TopTop