Control System Design for a Quadrotor Drone with Suspended Load

In recent years, unmanned aerial vehicles (UAVs) have found extensive applications in both military and civilian domains, with cargo transportation emerging as a critical area of interest. Among various UAV configurations, the quadrotor drone stands out due to its maneuverability and hovering capability. However, when a quadrotor drone is tasked with transporting a suspended load via a cable or rope, challenges such as payload swing and residual oscillations arise, potentially compromising stability and precision. In this paper, I present a comprehensive control system design for a quadrotor drone with a suspended load, aiming to achieve accurate trajectory tracking while effectively suppressing swing dynamics. The proposed strategy combines an outer-loop controller based on the payload’s generalized motion concept and an inner-loop controller utilizing the backstepping method. Through detailed dynamic modeling, controller derivation, and numerical simulations, I demonstrate the efficacy of this approach in enhancing system robustness and transient performance.

The quadrotor drone, as a versatile platform, is increasingly deployed for logistics in inaccessible areas, such as disaster relief or remote deliveries. When equipped with a suspended load, the system becomes a coupled underactuated system, where the quadrotor drone’s motions directly influence the load’s swing angles. Traditional control methods often struggle with nonlinearities and coupling effects, leading to persistent oscillations or instability. My work addresses these issues by integrating novel energy-based techniques with nonlinear control theory. The core innovation lies in the outer-loop controller, which employs a generalized motion representation of the payload to simultaneously regulate position and swing angles, thereby strengthening the coupling between the quadrotor drone and the load. Meanwhile, the inner-loop controller ensures precise attitude tracking using backstepping, avoiding the parameter tuning complexities associated with conventional PID controllers. This dual-loop structure not only simplifies the control design but also improves overall system response, making it suitable for real-world applications where payload stability is paramount.

To lay the foundation for the control design, I first derive the dynamic model of the quadrotor drone with a suspended load. The system comprises a quadrotor drone of mass $M$ connected to a point-mass load of mass $m$ via a rigid cable of length $L$, assumed to be massless. The inertial world frame is defined as $I = \{X_I, Y_I, Z_I\}$, with $Z_I$ pointing upward, and the body-fixed frame attached to the quadrotor drone is $B = \{X_B, Y_B, Z_B\}$. The quadrotor drone’s position in the inertial frame is denoted by $\mathbf{P}_B = (x, y, z)$, and its attitude angles are the roll ($\phi$), pitch ($\theta$), and yaw ($\psi$) angles, following the Z-Y-X Euler angle convention. The load’s position is $\mathbf{P}_l = (x_l, y_l, z_l)$, and its swing is characterized by two angles: $\alpha$ (rotation about the $X_I$ axis) and $\beta$ (rotation about the $Y_I$ axis). The rotation matrix from the inertial frame to the body frame is given by:

$$ \mathbf{R}^B_I = \begin{bmatrix} c\theta c\psi & c\theta s\psi & -s\theta \\ s\phi s\theta c\psi – c\phi s\psi & s\phi s\theta s\psi + c\phi c\psi & c\theta s\phi \\ c\phi s\theta c\psi + s\phi s\psi & c\phi s\theta s\psi – s\phi c\psi & c\theta c\phi \end{bmatrix}, $$

where $c\cdot = \cos(\cdot)$ and $s\cdot = \sin(\cdot)$. The total thrust generated by the quadrotor drone’s rotors is $f$, and its components in the inertial frame are $\mathbf{F} = [F_x, F_y, F_z]^T = \mathbf{R}^I_B [0, 0, f]^T$, with $\mathbf{R}^I_B = (\mathbf{R}^B_I)^T$. The geometric relationship between the quadrotor drone and load positions is:

$$ \begin{aligned} x_l &= x + L s\beta, \\ y_l &= y – L c\beta s\alpha, \\ z_l &= z – L c\beta c\alpha. \end{aligned} $$

Using the Lagrangian formulation, I define the generalized coordinates as $\mathbf{q} = [x, y, z, \alpha, \beta, \theta, \phi, \psi]^T$. The kinetic energy $T$ and potential energy $V$ of the system are:

$$ \begin{aligned} T &= \frac{1}{2}(M + m)(\dot{x}^2 + \dot{y}^2 + \dot{z}^2) + m L \left( c\beta \dot{x} \dot{\beta} + s\beta s\alpha \dot{y} \dot{\beta} + s\beta c\alpha \dot{z} \dot{\beta} – c\beta c\alpha \dot{y} \dot{\alpha} + c\beta s\alpha \dot{z} \dot{\alpha} \right) \\ &\quad + \frac{1}{2} m L^2 (\dot{\beta}^2 + c^2\beta \dot{\alpha}^2) + \frac{1}{2} I_{xx} \dot{\phi}^2 + \frac{1}{2} I_{yy} \dot{\theta}^2 + \frac{1}{2} I_{zz} \dot{\psi}^2, \\ V &= (M + m) g z – m g (z – L c\beta c\alpha), \end{aligned} $$

where $I_{xx}$, $I_{yy}$, and $I_{zz}$ are the quadrotor drone’s moments of inertia, and $g$ is gravitational acceleration. Applying the Euler-Lagrange equation $\frac{d}{dt} \left( \frac{\partial \mathcal{L}}{\partial \dot{q}_i} \right) – \frac{\partial \mathcal{L}}{\partial q_i} = Q_i$, with $\mathcal{L} = T – V$, yields the dynamic equations of motion:

$$ \begin{aligned} &c\beta \ddot{x} + s\beta s\alpha \ddot{y} + s\beta c\alpha \ddot{z} + L \ddot{\beta} + L s\beta c\beta \dot{\alpha}^2 + g s\beta c\alpha = 0, \\ &c\beta c\alpha \ddot{y} – c\beta s\alpha \ddot{z} + 2 L s\beta c\beta \dot{\beta} \dot{\alpha} – L c^2\beta \ddot{\alpha} – g c\beta c\alpha = 0, \\ &(M + m) \ddot{x} + m L (c\beta \ddot{\beta} – s\beta \dot{\beta}^2) = F_x, \\ &(M + m) \ddot{y} + m L (s\beta s\alpha \ddot{\beta} + c\beta s\alpha \dot{\beta}^2 + 2 s\beta c\alpha \dot{\beta} \dot{\alpha} + c\beta s\alpha \dot{\alpha}^2 – c\beta c\alpha \ddot{\alpha}) = F_y, \\ &(M + m) \ddot{z} + m L (s\beta c\alpha \ddot{\beta} + c\beta c\alpha \dot{\beta}^2 – 2 s\beta s\alpha \dot{\beta} \dot{\alpha} + c\beta c\alpha \dot{\alpha}^2 + c\beta s\alpha \ddot{\alpha}) + (M + m)g = F_z, \\ &I_{yy} \ddot{\theta} = l u_\theta, \\ &I_{xx} \ddot{\phi} = l u_\phi, \\ &I_{zz} \ddot{\psi} = l u_\psi, \end{aligned} $$

where $l$ is the distance from each motor to the quadrotor drone’s center of mass, and $\mathbf{U} = [u_\theta, u_\phi, u_\psi]^T$ represents the control moments. This model captures the nonlinear coupling between the quadrotor drone’s translation, rotation, and the load’s swing, serving as the basis for controller design.

The control objective is to steer the quadrotor drone to a desired position $\mathbf{P}_d = [x_d, y_d, z_d]^T$ while maintaining a desired yaw angle $\psi_d$ and suppressing the load’s swing angles $\alpha$ and $\beta$. Due to the underactuated nature of the quadrotor drone, where only four inputs (thrust and three moments) are available to control six outputs (position and attitude), I adopt a dual-loop control structure. The outer loop manages position and swing dynamics by computing desired forces in the inertial frame, which are then converted into desired attitude angles for the quadrotor drone. The inner loop tracks these attitude angles using moment controls. This separation leverages the timescale separation between translational and rotational dynamics, common in quadrotor drone control.

For the outer-loop controller, I employ the payload generalized motion concept to enhance coupling between the quadrotor drone and the load. Traditional energy-based methods often result in complex controllers sensitive to parameter variations. Instead, I define generalized displacement signals for the load, which incorporate swing angle information into the position error. Let $\omega_1 = s\beta$, $\omega_2 = c\beta s\alpha$, and $\omega_3 = c\beta c\alpha$. The generalized positions are constructed as:

$$ \begin{aligned} x_{lp}(t) &= x + f_x(\omega_1) = x + k_1 \omega_1, \\ y_{lp}(t) &= y + f_y(\omega_2) = y + k_2 \omega_2, \\ z_{lp}(t) &= z + f_z(\omega_3) = z + k_3 (1 – \omega_3), \end{aligned} $$

where $k_1$, $k_2$, and $k_3$ are tuning parameters. To ensure the generalized positions reduce to the quadrotor drone’s position at equilibrium (i.e., when $\alpha = \beta = 0$), I set $k_1 = -k_2 = k_3 \triangleq -k$ with $k > 0$. This yields a new energy-like function $E_d = E + E_s$, where $E$ is the system’s total mechanical energy and $E_s$ is an additional term derived from the generalized motions. The time derivative of $E_d$ is:

$$ \dot{E}_d = \dot{x}_{lp} F_x + \dot{y}_{lp} F_y + \dot{z}_{lp} (F_z – (M+m)g). $$

This passivity property motivates the design of a Lyapunov-based controller. Define the generalized errors $\boldsymbol{\varepsilon} = [\varepsilon_x, \varepsilon_y, \varepsilon_z]^T$ as:

$$ \begin{aligned} \varepsilon_x &= e_x – k s\beta, \\ \varepsilon_y &= e_y + k c\beta s\alpha, \\ \varepsilon_z &= e_z – k (1 – c\beta c\alpha), \end{aligned} $$

where $e_x = x – x_d$, $e_y = y – y_d$, and $e_z = z – z_d$ are position errors. Consider the Lyapunov function candidate:

$$ V(t) = E_d + \frac{k_p}{2} \boldsymbol{\varepsilon}^T \boldsymbol{\varepsilon}, $$

with $k_p > 0$. Taking its time derivative and substituting the dynamic equations, I obtain:

$$ \dot{V}(t) = \dot{\varepsilon}_x (F_x + k_p \varepsilon_x) + \dot{\varepsilon}_y (F_y + k_p \varepsilon_y) + \dot{\varepsilon}_z (F_z – (M+m)g + k_p \varepsilon_z). $$

To ensure $\dot{V}(t) \leq 0$, I choose the control forces as:

$$ \begin{aligned} F_x &= -k_a \dot{\varepsilon}_x – k_p \varepsilon_x, \\ F_y &= -k_b \dot{\varepsilon}_y – k_p \varepsilon_y, \\ F_z &= -k_c \dot{\varepsilon}_z + (M+m)g – k_p \varepsilon_z, \end{aligned} $$

where $k_a, k_b, k_c > 0$ are damping gains. Expanding these expressions yields the outer-loop control laws:

$$ \begin{aligned} F_x &= -k_a (\dot{e}_x – k \dot{\beta} c\beta) – k_p (e_x – k s\beta), \\ F_y &= -k_b (\dot{e}_y – k \dot{\beta} s\beta s\alpha + k \dot{\alpha} c\beta c\alpha) – k_p (e_y + k c\beta s\alpha), \\ F_z &= -k_c (\dot{e}_z – k \dot{\beta} s\beta c\alpha – k \dot{\alpha} c\beta s\alpha) + (M+m)g – k_p [e_z – k (1 – c\beta c\alpha)]. \end{aligned} $$

These forces are then used to compute the desired attitude angles for the quadrotor drone. Assuming a small-angle approximation for attitude commands, the desired pitch $\theta_d$ and roll $\phi_d$ are:

$$ \theta_d = \arctan\left( \frac{F_x}{F_z} \right), \quad \phi_d = -\arcsin\left( \frac{F_y}{\sqrt{F_x^2 + F_y^2 + F_z^2}} \right), $$

while the desired yaw $\psi_d$ is set by the user. This transformation effectively decouples the position control from the attitude dynamics, allowing the inner loop to focus on tracking $\theta_d$, $\phi_d$, and $\psi_d$.

The inner-loop controller employs the backstepping technique to achieve robust attitude tracking for the quadrotor drone. Backstepping is a recursive method that systematically constructs Lyapunov functions for nonlinear systems, ensuring stability without linearization. For the pitch channel, define the tracking error $e_1 = \theta – \theta_d$. Its derivative is $\dot{e}_1 = \dot{\theta} – \dot{\theta}_d$. Introduce a virtual control $\theta_v = \dot{\theta}_d – \mu_1 e_1$, where $\mu_1 > 0$, and define the velocity error $e_2 = \dot{\theta} – \theta_v = \dot{\theta} – \dot{\theta}_d + \mu_1 e_1$. The Lyapunov function for this subsystem is:

$$ V_1(e_1, e_2) = \frac{1}{2} e_1^2 + \frac{1}{2} e_2^2. $$

Differentiating and substituting the pitch dynamics $\ddot{\theta} = (l / I_{yy}) u_\theta$ gives:

$$ \dot{V}_1 = -\mu_1 e_1^2 + e_2 \left( \frac{l}{I_{yy}} u_\theta – \ddot{\theta}_d + (1 – \mu_1^2) e_1 + \mu_1 e_2 \right). $$

To enforce $\dot{V}_1 \leq 0$, I select the control moment as:

$$ u_\theta = \frac{I_{yy}}{l} \left[ \ddot{\theta}_d – (1 – \mu_1^2) e_1 – (\mu_1 + \mu_2) e_2 \right], $$

with $\mu_2 > 0$. Similarly, for the roll channel, define errors $e_3 = \phi – \phi_d$ and $e_4 = \dot{\phi} – \dot{\phi}_d + \mu_3 e_3$, leading to:

$$ u_\phi = \frac{I_{xx}}{l} \left[ \ddot{\phi}_d – (1 – \mu_3^2) e_3 – (\mu_3 + \mu_4) e_4 \right], $$

where $\mu_3, \mu_4 > 0$. For the yaw channel, since $\psi_d$ is constant or slowly varying, a simpler PD controller can be used, but for consistency, I apply backstepping as well. Let $e_5 = \psi – \psi_d$ and $e_6 = \dot{\psi} – \dot{\psi}_d + \mu_5 e_5$, yielding:

$$ u_\psi = \frac{I_{zz}}{l} \left[ \ddot{\psi}_d – (1 – \mu_5^2) e_5 – (\mu_5 + \mu_6) e_6 \right], $$

with $\mu_5, \mu_6 > 0$. This inner-loop controller ensures exponential convergence of attitude errors, providing a stable platform for the outer-loop position control. The combined strategy leverages the strengths of both generalized motion and backstepping, resulting in a cohesive control system for the quadrotor drone with suspended load.

To validate the proposed control system, I conduct numerical simulations in a MATLAB/Simulink environment. The parameters of the quadrotor drone and load are summarized in Table 1, chosen to reflect a typical medium-sized UAV. These parameters are essential for replicating the dynamic behavior and assessing controller performance.

Table 1: System Parameters for the Quadrotor Drone with Suspended Load
Parameter Symbol Value Unit
Quadrotor drone mass $M$ 1.468 kg
Load mass $m$ 0.70 kg
Cable length $L$ 0.90 m
Motor arm length $l$ 0.225 m
Moment of inertia (roll) $I_{xx}$ 0.02518 kg·m²
Moment of inertia (pitch) $I_{yy}$ 0.03686 kg·m²
Moment of inertia (yaw) $I_{zz}$ 0.05047 kg·m²
Gravitational acceleration $g$ 9.81 m/s²

The controller gains are tuned through iterative simulation to achieve a balance between responsiveness and damping. Their values are listed in Table 2. These gains influence the convergence rate and swing suppression; for instance, higher $k$ values strengthen the coupling but may induce overshoot.

Table 2: Controller Gains Used in Simulations
Gain Symbol Value
Generalized motion gain $k$ 1.1
Position error gain $k_p$ 1.1
Damping gain (x-axis) $k_a$ 2.9
Damping gain (y-axis) $k_b$ 2.9
Damping gain (z-axis) $k_c$ 2.9
Backstepping gain (pitch) $\mu_1, \mu_2$ 15
Backstepping gain (roll) $\mu_3, \mu_4$ 15
Backstepping gain (yaw) $\mu_5, \mu_6$ 15

The simulation scenario involves transporting the load from an initial position $(0, 0, 0)$ to a target $(3, 4, 5)$ meters in the inertial frame, with the desired yaw set to $0$ radians. The quadrotor drone starts at rest, and the load is initially hanging vertically (i.e., $\alpha(0) = \beta(0) = 0$). The simulation runs for 20 seconds with a fixed-step solver using the ODE4 (Runge-Kutta) method. The results demonstrate the system’s trajectory, swing angles, attitude responses, and control efforts.

Figure 1 illustrates the 3D path of the quadrotor drone and load during the mission. The quadrotor drone ascends and moves smoothly toward the target, while the load’s swing remains bounded. The trajectory shows no significant oscillations, indicating effective swing damping. The position errors in all axes converge to zero within approximately 10 seconds, as shown in Figure 2, which plots $e_x$, $e_y$, and $e_z$ over time. The transient response exhibits minor overshoot but quickly stabilizes, thanks to the damping terms in the outer-loop controller.

The swing angles $\alpha$ and $\beta$ are critical metrics for payload stability. As depicted in Figure 3, both angles peak at around 0.2 radians (approximately 11.5 degrees) during acceleration phases but rapidly decay to near zero as the quadrotor drone approaches the target. Upon arrival, the load settles without residual oscillations, highlighting the controller’s ability to suppress swing. This is a marked improvement over traditional methods that often leave persistent vibrations. The generalized motion approach effectively embeds swing compensation into the position control, ensuring coupled stability.

The quadrotor drone’s attitude tracking performance is analyzed in Figures 4 and 5. Figure 4 compares the desired and actual pitch angles, while Figure 5 does the same for roll. The backstepping controller achieves accurate tracking with negligible error, even during aggressive maneuvers. The yaw angle, not shown here, remains at zero as commanded. The control moments $u_\theta$, $u_\phi$, and $u_\psi$, plotted in Figure 6, stay within reasonable limits, indicating feasible actuator demands. The total thrust $f$ computed from $F_z$ also varies smoothly, as shown in Figure 7, ensuring stable lift throughout the flight.

To further assess robustness, I conduct additional simulations with parameter uncertainties. For example, increasing the load mass by 20% or varying cable length yields similar performance, albeit with slightly larger swing angles. The controller adapts well due to its nonlinear structure, which does not rely on linearization around equilibrium points. Moreover, introducing external disturbances such as wind gusts modeled as random forces on the quadrotor drone shows that the system recovers quickly, maintaining position and swing control. These tests underscore the robustness of the proposed strategy for real-world quadrotor drone operations.

The effectiveness of the control system can be quantified through performance indices. Table 3 summarizes key metrics from the simulation, including settling time, maximum swing angle, and control effort. These metrics provide a benchmark for comparing with alternative approaches, such as linear quadratic regulator (LQR) or sliding mode control.

Table 3: Performance Metrics for the Quadrotor Drone Control System
Metric Value Unit
Settling time (position) 10.2 s
Maximum swing angle 0.22 rad
RMS attitude error 0.008 rad
Total control energy 1.5e3 J
Peak thrust 28.7 N

In discussing the results, it is evident that the integration of generalized motion and backstepping offers distinct advantages. The outer-loop controller’s energy-based formulation naturally incorporates swing dynamics, reducing the need for separate swing damping mechanisms. This is particularly beneficial for a quadrotor drone, as it minimizes computational overhead while enhancing coupling. The inner-loop backstepping controller provides a systematic way to handle nonlinear attitude dynamics, avoiding the heuristic tuning of PID gains. Compared to prior work, such as differential flatness or model predictive control, my approach is simpler to implement and less computationally demanding, making it suitable for onboard execution on a quadrotor drone’s flight controller.

However, limitations exist. The assumption of a rigid cable may not hold for very long cables, where elasticity could introduce additional modes. Future work could extend the model to include cable flexibility or adaptive mechanisms for unknown load masses. Additionally, real-world factors like aerodynamic effects or motor dynamics could be incorporated to improve fidelity. Despite these, the current design provides a solid foundation for practical quadrotor drone applications, balancing performance and complexity.

In conclusion, I have developed a control system for a quadrotor drone with a suspended load that achieves precise position tracking and effective swing suppression. The outer-loop controller, based on payload generalized motion, creates a coupled error signal that simultaneously regulates position and swing angles. The inner-loop controller uses backstepping to ensure accurate attitude tracking for the quadrotor drone. Numerical simulations validate the approach, showing fast convergence, minimal residual oscillations, and robustness to uncertainties. This work contributes to the advancement of quadrotor drone technology for cargo transportation, offering a reliable and efficient solution for scenarios where payload stability is critical. The modular design also allows for extensions, such as incorporating vision-based feedback or multi-drone coordination, paving the way for more autonomous quadrotor drone systems in the future.

The quadrotor drone, as a platform, continues to evolve, and control strategies like the one presented here are essential for unlocking its full potential. By addressing the challenges of suspended load transportation, I aim to enable safer and more efficient operations, whether in delivery services, search and rescue, or industrial inspections. The integration of nonlinear control techniques with physical insights demonstrates how theoretical advancements can translate into practical benefits for quadrotor drone applications.

Scroll to Top