In recent years, drone formation control has garnered significant attention in both research and engineering fields due to its applications in target search, disaster relief, and military missions. Among various formation control methods, the virtual structure approach, particularly the virtual leader method, offers a structured way to maintain formation shapes. However, uncertainties in drone dynamics and external disturbances pose challenges to formation stability. To address this, we propose a formation control scheme based on a sliding mode disturbance observer (SMDO) combined with dynamic surface control (DSC). This approach compensates for lumped uncertainties and overcomes the “differential explosion” issue inherent in back-stepping control. In this article, we present our design and analysis, focusing on a drone formation system with multiple fixed-wing drones.
We begin by describing the drone formation problem and modeling the system. Consider a formation consisting of a virtual leader and n homogeneous fixed-wing drones. The virtual leader, denoted as node 0, follows a predefined reference trajectory, while the drones, labeled 1 to n, communicate via a directed graph topology. The communication links are defined by an adjacency matrix, where each drone receives information from neighboring drones and possibly the virtual leader. This distributed strategy reduces communication overhead and enhances scalability for large drone formations.
The motion of the virtual leader is given by the following equations, representing its position, velocity, flight path angle, and heading angle:
$$
\begin{align*}
\dot{x}_0 &= v_0 \cos \gamma_0 \cos \chi_0, \\
\dot{y}_0 &= v_0 \cos \gamma_0 \sin \chi_0, \\
\dot{z}_0 &= v_0 \sin \gamma_0, \\
\dot{v}_0 &= f_v(t), \\
\dot{\gamma}_0 &= f_\gamma(t), \\
\dot{\chi}_0 &= f_\chi(t),
\end{align*}
$$
where (x_0, y_0, z_0) is the position, v_0 is the velocity, γ_0 is the flight path angle, χ_0 is the heading angle, and f_v(t), f_γ(t), f_χ(t) are known piecewise continuous functions defining the reference trajectory. For the drones, we adopt a dynamic model that includes lumped uncertain terms to account for model uncertainties and external disturbances, such as turbulent airflow or wake effects. The dynamics for the i-th drone (UAV_i) are:
$$
\begin{align*}
\dot{x}_i &= v_i \cos \gamma_i \cos \chi_i + \bar{\omega}_{xi}, \\
\dot{y}_i &= v_i \cos \gamma_i \sin \chi_i + \bar{\omega}_{yi}, \\
\dot{z}_i &= v_i \sin \gamma_i + \bar{\omega}_{zi}, \\
\dot{v}_i &= (v_{ic} – v_i)/\tau_v + \bar{\omega}_{vi}, \\
\dot{\gamma}_i &= (\gamma_{ic} – \gamma_i)/\tau_\gamma + \bar{\omega}_{\gamma i}, \\
\dot{\chi}_i &= (\chi_{ic} – \chi_i)/\tau_\chi + \bar{\omega}_{\chi i},
\end{align*}
$$
where (x_i, y_i, z_i) is the position, v_i is the velocity, γ_i is the flight path angle, χ_i is the heading angle, v_{ic}, γ_{ic}, χ_{ic} are control inputs, τ_v, τ_γ, τ_χ are time constants, and \bar{\omega}_{xi}, \bar{\omega}_{yi}, \bar{\omega}_{zi}, \bar{\omega}_{vi}, \bar{\omega}_{\gamma i}, \bar{\omega}_{\chi i} are lumped uncertain terms. These terms are unknown but bounded, representing aggregated uncertainties. To facilitate controller design using DSC, we reformulate the model into strict-feedback form by introducing pseudo-controls. Define S_{χi} = \sin χ_i and S_{γi} = \sin γ_i, leading to:
$$
\begin{align*}
\dot{S}_{\chi i} &= -\frac{\chi_i}{\tau_\chi} \cos \chi_i + \frac{\chi_{ic}}{\tau_\chi} \cos \chi_i + \bar{\omega}_{\chi i} \cos \chi_i, \\
\dot{S}_{\gamma i} &= -\frac{\gamma_i}{\tau_\gamma} \cos \gamma_i + \frac{\gamma_{ic}}{\tau_\gamma} \cos \gamma_i + \bar{\omega}_{\gamma i} \cos \gamma_i.
\end{align*}
$$
Thus, the drone dynamics can be separated into three channels: x-channel (position x, velocity v), y-channel (position y, pseudo-control S_χ), and z-channel (position z, pseudo-control S_γ). This decomposition simplifies the control design for the drone formation.
The formation tracking error for UAV_i is defined based on the desired formation shape, specified by relative distances in the body frame of the virtual leader. Let p_{ij} = [p_{ij,x0}, p_{ij,y0}, p_{ij,z0}]^T be the constant formation distance vector from UAV_i to UAV_j in the body frame. Using coordinate transformations, the errors in the inertial frame are:
$$
\begin{align*}
e_{xi} &= \sum_{j \in N_i} a_{ij} (x_i – x_j – p_{ij,x}), \\
e_{yi} &= \sum_{j \in N_i} a_{ij} (y_i – y_j – p_{ij,y}), \\
e_{zi} &= \sum_{j \in N_i} a_{ij} (z_i – z_j – p_{ij,z}),
\end{align*}
$$
where N_i is the set of neighbors communicating with UAV_i, and a_{ij} are adjacency weights. The goal is to drive these errors to zero, ensuring the drone formation maintains the desired geometry while tracking the reference trajectory.
To handle uncertainties, we design a sliding mode disturbance observer for each lumped uncertain term. The SMDO provides accurate estimates without requiring detailed knowledge of the uncertainties. For the x-channel uncertain term \bar{\omega}_{xi}, the observer is:
$$
\begin{align*}
\dot{\hat{x}}_i &= v_i \cos \gamma_i \cos \chi_i + \upsilon_i, \\
\upsilon_i &= -\lambda_1 |\hat{x}_i – x_i|^{1/2} \text{sgn}(\hat{x}_i – x_i) + \hat{\bar{\omega}}_{xi}, \\
\dot{\hat{\bar{\omega}}}_{xi} &= -\lambda_2 \text{sgn}(\hat{\bar{\omega}}_{xi} – \upsilon_i),
\end{align*}
$$
where \hat{x}_i is the estimated position, \upsilon_i is an auxiliary variable, \lambda_1 > 0 and \lambda_2 > 0 are gains, \text{sgn}(\cdot) is the sign function, and \hat{\bar{\omega}}_{xi} is the estimated uncertainty. Similar observers are designed for \bar{\omega}_{vi}, \bar{\omega}_{yi}, \bar{\omega}_{\chi i}, \bar{\omega}_{zi}, and \bar{\omega}_{\gamma i}, yielding estimates \hat{\bar{\omega}}_{vi}, \hat{\bar{\omega}}_{yi}, \hat{\bar{\omega}}_{\chi i}, \hat{\bar{\omega}}_{zi}, and \hat{\bar{\omega}}_{\gamma i}. These estimates are used in the controller to compensate for uncertainties, enhancing robustness in the drone formation control.
Next, we design the formation controller using dynamic surface control for each channel. The DSC algorithm avoids the “differential explosion” problem by introducing first-order low-pass filters. We start with the x-channel. Define the first surface error as e_{xi} and the second as e_{vi} = v_i – v_{id}, where v_{id} is the filter output. The virtual control law v_i^* is designed as:
$$
v_i^* = \left( \sum_{j \in N_i} a_{ij} v_j \cos \gamma_j \cos \chi_j + \sum_{j \in N_i} a_{ij} \dot{p}_{ij,x} – k_{xi} e_{xi} – d_{ii} \hat{\bar{\omega}}_{xi} \right) / (d_{ii} \cos \gamma_i \cos \chi_i),
$$
where k_{xi} > 0 is a control gain, and d_{ii} = \sum_{j \in N_i} a_{ij} is the in-degree. A low-pass filter is applied: τ_1 \dot{v}_{id} + v_{id} = v_i^*, with τ_1 > 0. Then, the actual control input v_{ic} is derived as:
$$
v_{ic} = v_i – \tau_v \left( k_{vi} e_{vi} + \frac{e_{v2}}{\tau_1} + \hat{\bar{\omega}}_{vi} \right),
$$
where e_{v2} = v_{id} – v_i^* is the filter error, and k_{vi} > 0. Using Lyapunov analysis, we select parameters to ensure semi-global uniform ultimate boundedness. Specifically, choose k_{xi} \geq k_1 + d_{ii} \cos \gamma_i \cos \chi_i, k_{vi} \geq k_1 + \frac{d_{ii}}{2} \cos \gamma_i \cos \chi_i, and \frac{1}{\tau_1} \geq k_1 + \frac{d_{ii}}{2} \cos \gamma_i \cos \chi_i + \frac{\lambda_1}{2}, where k_1 > 0 and λ_1 is related to the observer. This guarantees that the tracking error e_{xi} converges to a small neighborhood of zero.
For the y-channel, we design the controller for the heading angle command χ_{ic}. The virtual control for S_{χi} is:
$$
S_{\chi i}^* = \left( \sum_{j \in N_i} a_{ij} v_j \cos \gamma_j \sin \chi_j – d_{ii} \hat{\bar{\omega}}_{yi} + \sum_{j \in N_i} a_{ij} \dot{p}_{ij,y} – k_{yi} e_{yi} \right) / (d_{ii} v_i \cos \gamma_i),
$$
with k_{yi} > 0. A filter τ_2 \dot{S}_{\chi id} + S_{\chi id} = S_{\chi i}^*, τ_2 > 0, is used, and the control law is:
$$
\chi_{ic} = \chi_i – \frac{\tau_\chi}{\cos \chi_i} \left( k_{\chi i} e_{S_{\chi i}} + \frac{e_{S_{\chi 2}}}{\tau_2} \right) – \tau_\chi \hat{\bar{\omega}}_{\chi i},
$$
where e_{S_{\chi i}} = S_{\chi i} – S_{\chi id} and e_{S_{\chi 2}} = S_{\chi id} – S_{\chi i}^*. Similarly, for the z-channel, the virtual control for S_{γi} is:
$$
S_{\gamma i}^* = \left( \sum_{j \in N_i} a_{ij} v_j \sin \gamma_j + \sum_{j \in N_i} a_{ij} \dot{p}_{ij,z} – d_{ii} \hat{\bar{\omega}}_{zi} – k_{zi} e_{zi} \right) / (d_{ii} v_i),
$$
with k_{zi} > 0. After filtering with τ_3 \dot{S}_{\gamma id} + S_{\gamma id} = S_{\gamma i}^*, τ_3 > 0, the control law is:
$$
\gamma_{ic} = \gamma_i – \frac{\tau_\gamma}{\cos \gamma_i} \left( k_{\gamma i} e_{S_{\gamma i}} + \frac{e_{S_{\gamma 2}}}{\tau_3} \right) – \tau_\gamma \hat{\bar{\omega}}_{\gamma i}.
$$
By tuning gains k_{yi}, k_{\chi i}, k_{zi}, k_{\gamma i} sufficiently large and τ_2, τ_3 small, the errors e_{yi} and e_{zi} become arbitrarily small, ensuring precise formation control for the drone formation.
To summarize the controller design, we present key steps in a table format:
| Channel | Virtual Control Law | Filter Equation | Actual Control Law |
|---|---|---|---|
| x (Position and Velocity) | $$ v_i^* = \frac{\sum a_{ij} v_j \cos \gamma_j \cos \chi_j + \sum a_{ij} \dot{p}_{ij,x} – k_{xi} e_{xi} – d_{ii} \hat{\bar{\omega}}_{xi}}{d_{ii} \cos \gamma_i \cos \chi_i} $$ | $$ \tau_1 \dot{v}_{id} + v_{id} = v_i^* $$ | $$ v_{ic} = v_i – \tau_v \left( k_{vi} e_{vi} + \frac{e_{v2}}{\tau_1} + \hat{\bar{\omega}}_{vi} \right) $$ |
| y (Position and Heading) | $$ S_{\chi i}^* = \frac{\sum a_{ij} v_j \cos \gamma_j \sin \chi_j – d_{ii} \hat{\bar{\omega}}_{yi} + \sum a_{ij} \dot{p}_{ij,y} – k_{yi} e_{yi}}{d_{ii} v_i \cos \gamma_i} $$ | $$ \tau_2 \dot{S}_{\chi id} + S_{\chi id} = S_{\chi i}^* $$ | $$ \chi_{ic} = \chi_i – \frac{\tau_\chi}{\cos \chi_i} \left( k_{\chi i} e_{S_{\chi i}} + \frac{e_{S_{\chi 2}}}{\tau_2} \right) – \tau_\chi \hat{\bar{\omega}}_{\chi i} $$ |
| z (Position and Flight Path Angle) | $$ S_{\gamma i}^* = \frac{\sum a_{ij} v_j \sin \gamma_j + \sum a_{ij} \dot{p}_{ij,z} – d_{ii} \hat{\bar{\omega}}_{zi} – k_{zi} e_{zi}}{d_{ii} v_i} $$ | $$ \tau_3 \dot{S}_{\gamma id} + S_{\gamma id} = S_{\gamma i}^* $$ | $$ \gamma_{ic} = \gamma_i – \frac{\tau_\gamma}{\cos \gamma_i} \left( k_{\gamma i} e_{S_{\gamma i}} + \frac{e_{S_{\gamma 2}}}{\tau_3} \right) – \tau_\gamma \hat{\bar{\omega}}_{\gamma i} $$ |
We now proceed to simulation analysis to validate our approach. Consider a drone formation of five fixed-wing drones in a V-shape pattern, communicating via a directed graph where the virtual leader communicates with drones 2 and 3. The desired formation distances are set to 30 m between specific drones, forming an equilateral triangle in the body plane. The reference trajectory for the virtual leader has initial conditions: v_0 = 50 m/s, γ_0 = 0.6 rad, χ_0 = 0 rad, x_0 = 100 m, y_0 = 100 m, z_0 = 50 m, with f_v(t) = 0, f_γ(t) = -0.15 sin(0.3t), and f_χ(t) = 0.3 cos(0.3t). The drone parameters are: τ_v = 2 s, τ_γ = 0.5 s, τ_χ = 0.5 s. The lumped uncertainties are modeled as: \bar{\omega}_x = 1.5 sin t, \bar{\omega}_y = 1.5 sin t, \bar{\omega}_z = 1.5 sin t, \bar{\omega}_v = 2.5 cos t, \bar{\omega}_χ = 0.5 cos t, \bar{\omega}_γ = 0.5 cos t. Initial positions for the drones are: (60, 120, 35) m, (60, 150, 40) m, (40, 50, 30) m, (20, 200, 45) m, (20, 20, 35) m, with initial velocities of 20 m/s and zero angles.
The SMDO parameters are set to λ_1 = 3.5 and λ_2 = 0.5. The control gains are chosen as: k_{xi} = 50, k_{vi} = 100, τ_1 = 0.005, k_{yi} = 50, k_{χi} = 100, τ_2 = 0.005, k_{zi} = 50, k_{γi} = 100, τ_3 = 0.005. Simulation is run for 15 seconds with a step size of 0.001 s. The results demonstrate that the drone formation quickly tracks the reference trajectory while maintaining the V-shape. The formation tracking errors converge to near zero within a few seconds, as shown in the plots. For instance, the errors for drone 1 reduce below 0.1 m after 1.83 seconds, confirming the effectiveness of our control scheme in managing uncertainties.

To quantify performance, we summarize key simulation parameters and results in tables. The first table lists the control parameters used for each channel:
| Parameter | Value | Description |
|---|---|---|
| k_{xi}, k_{yi}, k_{zi} | 50 | Gains for position errors |
| k_{vi}, k_{χi}, k_{γi} | 100 | Gains for velocity/angle errors |
| τ_1, τ_2, τ_3 | 0.005 s | Filter time constants |
| λ_1 | 3.5 | SMDO gain for estimation |
| λ_2 | 0.5 | SMDO gain for uncertainty update |
The second table shows the convergence times for formation tracking errors across drones, highlighting the robustness of the drone formation control:
| Drone Index | Convergence Time (s) | Steady-State Error (m) |
|---|---|---|
| 1 | 1.83 | < 0.1 |
| 2 | 1.91 | < 0.1 |
| 3 | 1.88 | < 0.1 |
| 4 | 2.05 | < 0.1 |
| 5 | 2.10 | < 0.1 |
These results indicate that the DSC algorithm with SMDO ensures high precision and robustness, effectively compensating for uncertainties in the drone formation. The Lyapunov analysis supports the semi-global uniform ultimate boundedness of the closed-loop system, with errors ultimately small due to proper gain selection. This approach is scalable and can be extended to larger drone formations with varying topologies.
In conclusion, we have presented a comprehensive formation control scheme for drone formations using sliding mode disturbance observers and dynamic surface control. The SMDO accurately estimates lumped uncertainties, while DSC avoids computational complexities. Simulation results validate the controller’s ability to maintain formation shape and track trajectories despite uncertainties. Future work may focus on incorporating collision avoidance and obstacle detection for more autonomous drone formation operations. Overall, this method enhances the reliability and performance of drone formations in practical scenarios.
