Open Access
This article is

- freely available
- re-usable

*Electronics*
**2019**,
*8*(4),
461;
https://doi.org/10.3390/electronics8040461

Article

Active-Model-Based Control for the Quadrotor Carrying a Changed Slung Load

^{1}

State Key Laboratory of Robotics, Shenyang Institute of Automation, Chinese Academy of Sciences, Shenyang 110016, China

^{2}

Institutes for Robotics and Intelligent Manufacturing, Chinese Academy of Sciences, Shenyang 110016, China

^{3}

University of Chinese Academy of Sciences, Beijing 100049, China

^{4}

Institute of Robotics and Automatic Information System, College of Artificial Intelligence, Nankai University, Tianjin 300350, China

^{5}

Tianjin Key Laboratory of Intelligent Robotics, Nankai University, Tianjin 300350, China

^{*}

Author to whom correspondence should be addressed.

Received: 19 March 2019 / Accepted: 18 April 2019 / Published: 25 April 2019

## Abstract

**:**

In this paper, a simple active-model-based control scheme is developed for the quadrotor slung load (QSL) system. The scheme works to improve the rejection of the influences caused by the abruptly changed load as a complementary enhancement while maintaining the structure and parameters of the original controller. A linearized model is first constructed with respect to the hovering state of a quadrotor. Modeling error is then introduced to describe the uncertainties caused by the load change and the simplified model. The modeling error is actively estimated by a Kalman filter (KF), while the estimation is further integrated into a normal controller, to enhance its performance of disturbance rejection. Experiments are conducted on a quadrotor controlled by the Pixhawk, which is one of the most popular controllers commercially available on the market. The improvements of the proposed scheme are shown by the comparisons between the controls with and without the active-model-based enhancement. The experiments also indicate that, with its simple structure and less computational algorithm, this active-model-based enhancement would be a feasible approach to enhance the commercial UAV controller to handle more uncertainties.

Keywords:

quadrotor slung load system; modeling error; active estimation; rapidly-changed load; compensation control; cable-suspended## 1. Introduction

A quadrotor carrying a cable-suspended load is usually called a quadrotor slung load (QSL) system. There are distinct advantages for using a QSL system to transport cargos [1,2,3]. A QSL system can freely pass complex terrains and access the locations which are hard for the ground vehicle transportation. Also, the QSL system has better tolerance with respect to the shape and size of the cargo, while the suspended cargo can be easily loaded and unloaded even without landing the quadrotor. However, in spite of the benefits the QSL system could provide, the swing load will seriously influence the dynamics of the QSL system [4] and increase its degrees of freedom [5]. The dynamics of a QSL system are strongly nonlinear, coupled, and underactuated, remaining many challenging problems in the controller design [1,2,3,4,5]. Generally, there are two ways to improve the performance of a QSL system, namely: (1) trying to construct a more accurate model that meets the QSL dynamics so that the controller can use it to compensate the complex dynamics; and (2) designing a controller that could reject the unmodeled uncertainties effectively, while achieving good control performance at the same time.

Recently, extensive studies have been carried out for modeling the QSL system [4,5,6,7,8,9,10,11,12,13]. Researchers used Euler–Lagrange method [6,7], Udwadia-Kalaba Equations [8,9], Newton-Euler method [10] and Kane’s method [11], to model the QSL system. For examples, in [4], the QSL dynamics were described as a second-order Euler–Lagrange model while ignoring the aerodynamic effects. In [12], a planar scenario was considered by using Euler–Lagrange method. Theoretically, we probably could obtain a high-fidelity model if the load of the QSL system and its motion states were exactly known. However, in most of the real applications, either the motion of the load or its influence to the aerodynamics is time-varying and unknown.

Besides the modeling techniques, control strategies were also proposed to improve the performance of the QSL system [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]. Xu et al. used both PD and sliding mode controller for the QSL system, and showed that the sliding mode control exhibited a strong robustness against the effects of the cable-suspended load [13]. A nested saturation controller was proposed in [12] by decomposing the nonlinear system into several independent plants. In [2,14,15], input shaping techniques were utilized, and Ivler et al. in [16] used the measurements of the slung load motions as well as the conventional fuselage feedback to improve the control performance for hovering and low speed flights. Other input shaping controllers [17,18,19,20], adaptive controllers [21,22], as well as vision based controllers [20,22,23] were also proposed for the QSL or helicopter slung load system. Specifically, in [21], a state estimator was used to estimate the oscillation frequency of the suspended load, and the estimated results were further utilized to adaptively update an input shaping controller to reject the disturbances.

In this paper, we develop a simple active-model-based control scheme for the QSL system. The scheme works to improve the rejection of the influences caused by the abruptly changed load as a complementary enhancement while maintaining the structure and parameters of the original controller. Experiments are conducted on a quadrotor to demonstrate that the proposed scheme can be easily implemented on the cascade PID controller of Pixhawk, which is one of the most popular controllers commercially available on the market. The improvements of the proposed scheme are shown by the comparisons between the controls with and without the active-model-based enhancement, while indicating that, with its simple structure and less computational algorithm, this active-model-based enhancement would be a feasible way to upgrade a commercial UAV controller to handle more uncertainties.

The rest of this paper is organized as follows. In Section 2, the linearized model of a quadrotor is formulated as pre-knowledge. In Section 3, the modeling error is introduced and the KF-based active estimation method is described. The active-model-based complementary control is designed in Section 4. Experiments and the relative results are demonstrated and analyzed in Section 5, followed by the concluding remarks in Section 6.

## 2. Pre-Knowledge: Quadrotor Dynamics

The dynamics of a quadrotor can be described by the following nonlinear differential equations [24]:
where x, y, z are the quadrotor positions in inertial frame; M is the mass of quadrotor; ${I}_{xx}$, ${I}_{yy}$ and ${I}_{zz}$ are the inertia with respect to x, y, z-axis, respectively; $\phi $, $\theta $ and $\psi $ represent the roll, pitch, yaw angles, respectively; g is the gravitational acceleration; ${u}_{1}$, ${u}_{2}$, ${u}_{3}$ and ${u}_{4}$ are control inputs, which are defined as:
where ${k}_{f}$ and ${k}_{\tau}$ are, respectively, the coefficient of thrust and torque; l is the length between the motor and the center of gravity; ${f}_{1}$ is the total thrust provided by the four motors; ${\tau}_{1},{\tau}_{2},{\tau}_{3}$ represent the torques of the roll, pitch, yaw directions, respectively; ${v}_{i}$ is the propeller rotation speed and $i=1,\phantom{\rule{1.0pt}{0ex}}2,\phantom{\rule{1.0pt}{0ex}}3,\phantom{\rule{1.0pt}{0ex}}4$; $c\theta =cos\theta ;\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}s\theta =sin\theta ;\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}c\phi =cos\phi ;\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}s\phi =sin\phi ;\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}c\psi =cos\psi ;s\psi =sin\psi $.

$$\left\{\begin{array}{c}\ddot{x}=\left(s\phi s\psi +s\theta c\psi c\phi \right){u}_{1}/M\hfill \\ \ddot{y}=\left(-s\phi c\psi +s\theta s\psi c\phi \right){u}_{1}/M\hfill \\ \ddot{z}=\left(c\theta c\phi \right){u}_{1}/M-g\hfill \\ \ddot{\phi}=\left({u}_{2}+{I}_{yy}\dot{\theta}\dot{\psi}-{I}_{zz}\dot{\theta}\dot{\psi}\right)/{I}_{xx}\hfill \\ \ddot{\theta}=\left({u}_{3}+{I}_{zz}\dot{\phi}\dot{\psi}-{I}_{xx}\dot{\phi}\dot{\psi}\right)/{I}_{yy}\hfill \\ \ddot{\psi}=\left({u}_{4}+{I}_{xx}\dot{\phi}\dot{\theta}-{I}_{yy}\dot{\phi}\dot{\theta}\right)/{I}_{zz}\hfill \end{array}\right.,$$

$$\mathit{u}={\left[\begin{array}{cccc}{u}_{1}& {u}_{2}& {u}_{3}& {u}_{4}\end{array}\right]}^{T}={\left[\begin{array}{cccc}{f}_{1}& {\tau}_{1}& {\tau}_{2}& {\tau}_{3}\end{array}\right]}^{T},$$

$$\left\{\begin{array}{c}{f}_{1}={k}_{f}\left({{v}_{1}}^{2}+{{v}_{2}}^{2}+{{v}_{3}}^{2}+{{v}_{4}}^{2}\right)\hfill \\ {\tau}_{1}={k}_{f}\left({{v}_{1}}^{2}-{{v}_{2}}^{2}-{{v}_{3}}^{2}+{{v}_{4}}^{2}\right)lsin\left(\pi /2\right)\hfill \\ {\tau}_{2}={k}_{f}\left(-{{v}_{1}}^{2}-{{v}_{2}}^{2}+{{v}_{3}}^{2}+{{v}_{4}}^{2}\right)lsin\left(\pi /2\right)\hfill \\ {\tau}_{3}={k}_{\tau}\left[\left({{v}_{1}}^{2}+{{v}_{3}}^{2}\right)-\left({{v}_{2}}^{2}+{{v}_{4}}^{2}\right)\right]\hfill \end{array}\right.,$$

In this paper, the state vector is defined as:

$$\left\{\begin{array}{c}\mathit{x}={\left[\begin{array}{cccccccccccc}x& \dot{x}& y& \dot{y}& z& \dot{z}& \phi & \dot{\phi}& \theta & \dot{\theta}& \psi & \dot{\psi}\end{array}\right]}^{T}\hfill \\ \mathit{y}=\mathit{x}\hfill \end{array}\right..$$

For the purpose of simplicity, we make the following definitions:

$$\left\{\begin{array}{c}{s}_{1}=1/M\hfill \\ {s}_{2}=s\phi s\psi +s\theta c\psi c\phi \hfill \\ {s}_{3}=-s\phi c\psi +s\theta s\psi c\phi \hfill \\ {s}_{4}=c\theta c\phi \hfill \\ {s}_{5}=\left({I}_{yy}-{I}_{zz}\right)/{I}_{xx}\hfill \\ {s}_{6}=\left({I}_{zz}-{I}_{xx}\right)/{I}_{yy}\hfill \\ {s}_{7}=\left({I}_{xx}-{I}_{yy}\right)/{I}_{zz}\hfill \\ {s}_{8}=1/{I}_{xx}\hfill \\ {s}_{9}=1/{I}_{yy}\hfill \\ {s}_{10}=1/{I}_{zz}\hfill \end{array}\right..$$

When the quadrotor is hovering, $\phi $ and $\theta $ tend to 0, and $\psi $ is close to $\pi /2$. So, by assuming $sin\phi =\phi $, $cos\phi =1$, $sin\theta =\theta $, $cos\theta =1$, $sin\psi =1$, $cos\psi =\frac{\pi}{2}-\psi $, $\dot{\phi}=0$, $\dot{\theta}=0$, $\dot{\psi}=0$, the following equations can be yielded from Equation (4):

$$\left\{\begin{array}{c}{s}_{2}=s\phi s\psi +s\theta c\psi c\phi =\phi +\frac{\pi}{2}\theta -\psi \theta \hfill \\ {s}_{3}=-s\phi c\psi +s\theta s\psi c\phi =\phi \psi -\frac{\pi}{2}\phi +\theta \hfill \\ {s}_{4}=c\theta c\phi =1\hfill \end{array}\right..$$

Therefore, substituting Equations (4) and (5) into (1), we get the nominal model of the quadrotor in state space form:
where the matrices ${F}_{0}$, ${G}_{0}$, S, and ${H}_{0}$ are given as:
and ${I}_{m\times n}$ is a $m\times n$ unit matrix.

$$\left\{\begin{array}{c}\dot{\mathit{x}}\left(t\right)={F}_{0}\mathit{x}\left(t\right)+{G}_{0}{\mathit{u}}_{n}\left(t\right)+S\hfill \\ \mathit{y}\left(t\right)={H}_{0}\mathit{x}\left(t\right)\hfill \end{array}\right.,$$

$$\begin{array}{c}{F}_{0}=\left[\begin{array}{cccccccccccc}0& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ 0& 0& 0& 1& 0& 0& 0& 0& 0& 0& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ 0& 0& 0& 0& 0& 1& 0& 0& 0& 0& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 1& 0& 0& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 0& 0& 1& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 1\\ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\end{array}\right],\hfill \end{array}$$

$$\begin{array}{c}{G}_{0}=\left[\begin{array}{cccc}0& 0& 0& 0\\ {s}_{1}{s}_{2}& 0& 0& 0\\ 0& 0& 0& 0\\ {s}_{1}{s}_{3}& 0& 0& 0\\ 0& 0& 0& 0\\ {s}_{1}{s}_{4}& 0& 0& 0\\ 0& 0& 0& 0\\ 0& {s}_{8}& 0& 0\\ 0& 0& 0& 0\\ 0& 0& {s}_{9}& 0\\ 0& 0& 0& 0\\ 0& 0& 0& {s}_{10}\end{array}\right],\phantom{\rule{14.22636pt}{0ex}}S=\left[\begin{array}{c}0\\ 0\\ 0\\ 0\\ 0\\ -g\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\end{array}\right],\phantom{\rule{14.22636pt}{0ex}}{H}_{0}={I}_{12\times 12},\hfill \end{array}$$

## 3. Modeling Error and Its Estimation

In order to describe the disturbances caused by the slung load, we define the modeling error as [25,26]:
where $\mathit{f}\left(t\right)$ is the modeling error; $\tilde{\mathit{x}}\left(t\right)$ represents the real states of the QSL system; $\mathit{x}\left(t\right)$ is the model states of Equation (6). And we further assume that $\mathit{f}\left(t\right)$ is driven by a white noise, i.e.,
where $\mathit{r}\left(t\right)$ is a noise vector, and

$$\mathit{f}\left(t\right)=\dot{\tilde{\mathit{x}}}\left(t\right)-\dot{\mathit{x}}\left(t\right)$$

$$\dot{\mathit{f}}\left(t\right)=\mathit{r}\left(t\right)$$

$$\left\{\begin{array}{c}E\left\{{\mathit{r}}_{k}\right\}=0\hfill \\ Cov({\mathit{r}}_{k},{\mathit{r}}_{j})={D}_{k}{\delta}_{k,j}\hfill \end{array}\right.,$$

Combining Equations (6) and (7), we get the dynamics of “the real QSL system”:
where $\mathit{w}\left(t\right)$ is the process noise vector; and $\mathit{v}\left(t\right)$ is the measurement noise vector.

$$\left\{\begin{array}{c}\begin{array}{c}\hfill \dot{\tilde{\mathit{x}}}\left(t\right)={F}_{0}\mathit{x}\left(t\right)+{G}_{0}\mathit{u}\left(t\right)+S+\mathit{f}\left(t\right)+\mathit{w}\left(t\right)\end{array}\hfill \\ \tilde{\mathit{y}}\left(t\right)={H}_{0}\tilde{\mathit{x}}\left(t\right)+\mathit{v}\left(t\right)\hfill \end{array}\right.,$$

In this paper, we use Kalman filter to estimate the modeling error of $\mathit{f}\left(t\right)$ actively. To do this, we put the modeling error into the state vector, and define the extended state as:

$${\mathit{x}}_{k}^{a}=\left(\begin{array}{cc}{\mathit{x}}_{k}& {{\mathit{f}}_{k}}^{T}\end{array}\right).$$

Then we have the discrete state-space equation of Equation (10),
where ${F}_{d}^{a}=\left[\begin{array}{cc}{F}_{d}& {E}_{fd}\\ {0}_{12\times 12}& {I}_{12\times 12}\end{array}\right]$; ${G}_{d}^{a}=\left[\begin{array}{c}{G}_{d}\\ {0}_{12\times 4}\end{array}\right]$; ${S}_{k}^{a}=\left[\begin{array}{c}{S}_{d}\\ {0}_{12\times 1}\end{array}\right]$; ${\mathit{w}}_{k}^{a}=\left[\begin{array}{c}{\mathit{w}}_{k}\\ {\mathit{r}}_{k}\end{array}\right]$; ${H}_{d}^{a}=\left[\begin{array}{cc}{H}_{d}& {0}_{12\times 12}\end{array}\right]$; ${E}_{fd}={T}_{s}{E}_{f}$; ${E}_{f}$ is the matrix related to modeling error; ${0}_{m\times n}$ is a $m\times n$ zero matrix; ${I}_{m\times n}$ is a $m\times n$ unit matrix; $\left\{{F}_{d},{G}_{d},{S}_{d},{H}_{d}\right\}$ is the discrete expression of $\left\{{F}_{0},{G}_{0},S,{H}_{0}\right\}$; k is the sampling point; and ${T}_{s}$ is the sampling time.

$$\left\{\begin{array}{c}{\mathit{x}}_{k}^{a}={F}_{{}_{d}}^{a}{\mathit{x}}_{k-1}^{a}+{G}_{{}_{d}}^{a}{\mathit{u}}_{k-1}+{S}_{k-1}^{a}+{\mathit{w}}_{k-1}^{a}\hfill \\ {\mathit{y}}_{k}={H}_{d}^{a}{\mathit{x}}_{k}^{a}+{\mathit{v}}_{k}\hfill \end{array}\right.,$$

We further assume that ${\mathit{w}}_{k}$ and ${\mathit{v}}_{k}$ are white Gaussian noises, i.e.,
and
where $E\left\{.\right\}$, $Cov(.)$ and $Var(.)$ represent related mean, covariance and variance values, respectively.

$$\left\{\begin{array}{c}E\left\{{\mathit{w}}_{k}\right\}=E\left\{{\mathit{v}}_{k}\right\}=0\hfill \\ Cov({\mathit{w}}_{k},{\mathit{w}}_{j})={Q}_{k}{\delta}_{k,j}\hfill \\ Cov({\mathit{v}}_{k},{\mathit{v}}_{j})={R}_{k}{\delta}_{k,j}\hfill \\ Cov({\mathit{w}}_{k},{\mathit{v}}_{j})=0\hfill \end{array}\right.,$$

$$\left\{\begin{array}{c}E\left\{{\mathit{x}}_{0}\right\}={u}_{0}\hfill \\ Var\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}{\mathit{x}}_{0}=E\left\{({\mathit{x}}_{0}-{u}_{0}){({\mathit{x}}_{0}-{u}_{0})}^{T}\right\}={P}_{0}\hfill \\ Cov({\mathit{x}}_{0},{\mathit{w}}_{k})=Cov({\mathit{x}}_{0},{\mathit{v}}_{k})=0\hfill \end{array}\right.,$$

Then, the KF estimator can be described as [26]:
where ${Q}_{k}$ is the covariance matrix of process noise ${\mathit{w}}_{k}^{a}$; ${R}_{k}$ is the covariance matrix of measurement noise ${\mathit{v}}_{k}$; ${\widehat{\mathit{x}}}_{k\left|k-1\right.}$ is the estimation of extended state ${\widehat{\mathit{x}}}_{k}$; ${P}_{k\left|k-1\right.}$ is the estimation of covariance matrix ${P}_{k}$; and I is an identity matrix. Thus, we can use Equation (15) to estimate the modeling error of ${\mathit{f}}_{k}$ in Equation (11) iteratively.

$$\left\{\begin{array}{c}{\widehat{\mathit{x}}}_{k\left|k-1\right.}={F}_{{}_{d}}^{a}{\widehat{\mathit{x}}}_{k-1}\hfill \\ {\widehat{\mathit{y}}}_{k\left|k-1\right.}={H}_{{}_{d}}^{a}{F}_{{}_{d}}^{a}{\widehat{\mathit{x}}}_{k-1}\hfill \\ {\tilde{\mathit{y}}}_{k\left|k-1\right.}={y}_{k}-{H}_{{}_{d}}^{a}{F}_{{}_{d}}^{a}{\widehat{\mathit{x}}}_{k-1}\hfill \\ {\widehat{\mathit{x}}}_{k}={F}_{{}_{d}}^{a}{\widehat{\mathit{x}}}_{k-1}+{K}_{k}({y}_{k}-{H}_{{}_{d}}^{a}{F}_{{}_{d}}^{a}{\widehat{\mathit{x}}}_{k-1})\hfill \\ {K}_{k}={P}_{k\left|k-1\right.}{H{}_{d}^{a}}^{T}{\left({H}_{d}^{a}{P}_{{}_{k\left|k-1\right.}}{H{}_{d}^{a}}^{T}+{R}_{k}\right)}^{-1}\hfill \\ {P}_{k}=(I-{K}_{k}H{}_{d}^{a}){P}_{{}_{k\left|k-1\right.}}{(I-{K}_{k}H{}_{d}^{a})}^{T}+{K}_{k}{R}_{k}{{K}_{k}}^{T}\hfill \\ {P}_{k\left|k-1\right.}={F}_{d}^{a}{P}_{k-1}{F{}_{d}^{a}}^{T}+{Q}_{k-1}\hfill \end{array}\right.,$$

## 4. Design of Active Model Based Control

Shown as Figure 1, the active model based control is designed as a complementary enhancement of the normal controller, i.e.,
where $\mathit{u}$ is the control input of Equation (12); ${\mathit{u}}_{n}$ is the nominal control; and ${\mathit{u}}_{e}$ is the compensation control.

$$\mathit{u}={\mathit{u}}_{n}+{\mathit{u}}_{e}$$

The nominal control is designed according to the reference model of Equation (6), or any other controller which the quadrotor uses already. The compensation control, on the other hand, is designed based on the estimated model error ${\mathit{f}}_{k}$. The purpose of the compensation control is to achieve

$$\parallel \mathit{f}\left(t\right)\parallel =\parallel \dot{\tilde{\mathit{x}}}-\dot{\mathit{x}}\parallel =0.$$

Substituting Equations (6) and (10) into Equation (17), we have

$$\parallel {G}_{0}\mathit{u}+\mathit{f}-{G}_{0}{\mathit{u}}_{n}\parallel =0.$$

Substituting Equation (16) into Equation (18) yields

$$\parallel {G}_{0}{\mathit{u}}_{e}+\mathit{f}\parallel =0.$$

To solve Equation (19), the following optimization method [26], i.e., the following cost function with a quadratic form is considered:
where ${\mathsf{\Gamma}}_{k}$ is the defined cost function; ${L}_{1}$, ${L}_{2}$ are positive definite weight matrices, which are set previously; and $\widehat{\mathit{f}}$ is the estimated value of $\mathit{f}$. In particular, ${L}_{1}$ is an identity matrix. To minimize ${\mathsf{\Gamma}}_{k}{\mathit{u}}_{e}$, we can derive

$$\left\{\begin{array}{c}{\mathit{u}}_{e}*=\underset{{\mathit{u}}_{e}}{arg\phantom{\rule{1.0pt}{0ex}}min}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}{\mathsf{\Gamma}}_{k}{\mathit{u}}_{e}\hfill \\ \begin{array}{cc}\hfill {\mathsf{\Gamma}}_{k}{\mathit{u}}_{e}=& {({G}_{0}{\mathit{u}}_{e}+\widehat{\mathit{f}})}^{T}{L}_{1}({G}_{0}{\mathit{u}}_{e}+\widehat{\mathit{f}})+{{\mathit{u}}_{e}}^{T}{L}_{2}{\mathit{u}}_{e}\hfill \end{array}\hfill \end{array}\right.,$$

$$\frac{\partial {\mathsf{\Gamma}}_{k}{\mathit{u}}_{e}}{\partial {\mathit{u}}_{e}}=0.$$

Combing Equations (20) and (21), we can yield

$$\frac{\partial {\mathsf{\Gamma}}_{k}{\mathit{u}}_{e}}{\partial {\mathit{u}}_{e}}=2({{G}_{0}}^{T}{L}_{1}{G}_{0}+{L}_{2}){\mathit{u}}_{e}+2{{G}_{0}}^{T}{L}_{1}\widehat{\mathit{f}}.$$

Therefore, the compensation control input is chosen as:

$${\mathit{u}}_{e}=-{({{G}_{0}}^{T}{L}_{1}{G}_{0}+{L}_{2})}^{-1}{{G}_{0}}^{T}{L}_{1}\widehat{\mathit{f}}.$$

## 5. Experiments

The quadrotor we use to test the proposed scheme is shown in Figure 2. It has the cross X configuration, and a Pixhawk flight controller where the original PID algorithm of Equation (24) is embedded as the normal control [27,28]. The proposed active estimation and enhancement control are implemented on the added controller, i.e., Odroid XU4. The motion states of the quadrotor, shown in Figure 3, are measured by the Qualisys motion capture system [29], and the sampling rate is 200 Hz.

$${\mathit{u}}_{n}={K}_{p}e\left(kT\right)+{K}_{i}\sum _{j=0}^{k}e\left(jT\right)+{K}_{d}[e\left(kT\right)-e\left((k-1)T\right)]$$

Shown in Figure 3, we use a counterweight as the slung load. Initially, the counterweight is attached to the quadrotor by two symmetrical cables, so the load is aligned along the center of gravity (CoG) of the quadrotor (Figure 3a). The length of each cable is 0.39 m and the mass of the load is 0.5 kg. During the hovering flight, one of the cables is cut abruptly so that the load become asymmetrically attached and will influence the weight balance of the quadrotor (Figure 3b). The active modeling error estimation, the nominal PID control, the active estimation of modeling error, as well as the active-model-based compensation control, are respectively tested with respect to this load change scenario. And the experimental video is available as supplementary material.

Before the experiments, the nominal model of the quadrotor with respect to hovering mode is identified offline by least square method [30,31], and we get the parameters of Equations (3)–(6), i.e.,

$$\left\{\begin{array}{c}\widehat{M}=1.473\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}kg\hfill \\ \widehat{g}=9.8\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}m/{s}^{2}\hfill \\ \widehat{l}=0.225\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}m\hfill \\ {\widehat{I}}_{xx}=17.195\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}g\xb7{m}^{2}\hfill \\ {\widehat{I}}_{yy}=18.648\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}g\xb7{m}^{2}\hfill \\ {\widehat{I}}_{zz}=22.853\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}g\xb7{m}^{2}\hfill \\ {\widehat{k}}_{\tau}=1.39\times {10}^{-2}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}gf/{(rad/ms)}^{2}\hfill \\ {\widehat{k}}_{f}=9.02\times {10}^{-3}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}Nm/{(rad/ms)}^{2}\hfill \end{array}\right..$$

#### 5.1. Experimental Results on Modeling Error Estimation

The experiment is conducted to verify the modeling error estimation technique. The QSL system is in the hovering state controlled by the nominal controller only, while one of the cables is cut abruptly to generate the load change (Figure 3). The experimental results are shown in Figure 4, where the cable is cut at the sampling point of 200.

There are 3 plots in each of the figures of Figure 4a which are, respectively, the desired value, the measurements of the quadrotor motion state, and the nominal model outputs. We can see that the nominal model outputs meet the measurements well before the cut occurring, which indicates that the offline-identified model matched the quadrotor well in the hovering state. After the cutting, the nominal model outputs deviate significantly from the corresponding measurements, which means the model can not describe the load change. Therefore, the real measurements of the quadrotor bias the desire values significantly, which means the quadrotor vibrates clearly after the abrupt change of the load.

Figure 4b demonstrates the performance of the active estimation of modeling error. There are also 3 plots in each figure of Figure 4b, which are the measurements of the motion state, modeling error estimation, and the nominal output + modeling error. We can see that the deviation of the model outputs from the corresponding measurements has been effectively rejected by the proposed active modeling technique.

In order to demonstrate the effectiveness of the active estimation in quantify, we propose the following index [32] to calculate the average errors between two states:
where j represents sampling point and $j=1,\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}2,\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}3,\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\cdots ,\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}\phantom{\rule{1.0pt}{0ex}}N$; $\overline{E}$ is the average error between ${q}_{{}_{j}}^{a}$ and ${q}_{{}_{j}}^{b}$. While ${q}_{{}_{j}}^{a}$ are the “normal model output” and the “normal model output + the modeling error” respectively, and ${q}_{{}_{j}}^{b}$ is the corresponding measurement, the average errors calculated by Equation (26) are listed in Table 1. We can see that the average position errors have been rejected more than 80% by the active modeling method, and the attitude errors have been rejected more than 58%.

$$\overline{E}={\textstyle \frac{1}{N}}\sum _{j=1}^{N}\left|{q}_{{}_{j}}^{a}-{q}_{{}_{j}}^{b}\right|,$$

#### 5.2. Experimental Results on the Active-Model-Enhanced Control

Figure 5 demonstrates the control performance with and without the active-model-based enhancement. The compensation control is designed according to Equation (24). There are 2 plots in each figure of Figure 5, which are, respectively, the measurements by “the normal cascade PID control” only, and the measurements by “the normal cascade PID + active-model-based enhancement”. From Figure 5 we can see that after the cable-cutting, the deviations of the measurements by enhanced PID control are much smaller than those by the normal PID control.

While ${q}_{{}_{j}}^{a}$ are the motion states under the “normal PID control” and the “enhanced PID control” respectively, and ${q}_{{}_{j}}^{b}$ is the corresponding measurement, the average errors of Equation (26) are listed in Table 2. We can see that after the active-modeling-error-based enhancement, the position tracking errors caused by the abrupt load change have been rejected more than 40%, and the attitude errors more than 27%, while being compared with the normal PID control.

## 6. Conclusions

Active modeling error estimation and the corresponding compensation control scheme have been proposed in this paper. The performance of both the active estimation and enhancement control are verified by experimental flight tests. One of the advantages of this scheme is that the compensation enhances the rejection of the modeling errors in a “decoupled way” with the normal control, namely, the compensation based on the active estimation is completely decoupled with the nominal control, so it may be combined with any normal controls as an enhancement. With its simple structure and less computational algorithm, the proposed scheme may be feasible for a commercial quadrotor to handle payload uncertainties during some real applications.

## Supplementary Materials

Supplementary File 1## Author Contributions

Conceptualization, K.Y. and X.L.; methodology, K.Y.; software, K.Y.; validation, X.L., Y.H., L.Y. and J.H.; formal analysis, K.Y. and J.H.; investigation, K.Y. and X.L.; resources, X.L., Y.H., L.Y. and J.H.; data curation, K.Y.; writing—original draft preparation, K.Y.; writing—review and editing, K.Y., X.L., Y.H., L.Y. and J.H.; visualization, X.L.; supervision, J.H.; project administration, X.L. and Y.H.; funding acquisition, Y.H., L.Y. and J.H.

## Funding

This work was supported in part by the National Key Research and Development Program of China under Grant 2017YFD0701002, and in part by the National Natural Science Foundation of China under Grant 91848203, U1508208 and 61503369.

## Acknowledgments

The authors would like to thank Ning Sun at Nankai University, Zhihong Man at Swinburne University of Technology, the Editor-in-Chief, the Associate Editor, and the anonymous reviewers for their valuable comments for improving this work.

## Conflicts of Interest

The authors declare no conflict of interest.

## References

- Yi, K.; Liang, X.; He, Y.; Yang, L.; Han, J. KF-Based Active Modeling for a Quadrotor Slung Load System. In Proceedings of the 2018 IEEE International Conference on Robotics and Biomimetics (ROBIO), Kuala Lumpur, Malaysia, 12–15 December 2018; pp. 2279–2284. [Google Scholar]
- Adams, C.; Potter, J.; Singhose, W. Input-Shaping and Model-Following Control of a Helicopter Carrying a Suspended Load. J. Guid. Control Dyn.
**2015**, 38, 94–105. [Google Scholar] [CrossRef] - Yi, K.; Gu, F.; Yang, L.; He, Y.; Han, J. Sliding Mode Control for a Quadrotor Slung Load System. In Proceedings of the 2017 36th Chinese Control Conference (CCC), Dalian, China, 26–28 July 2017; pp. 3697–3703. [Google Scholar]
- Pizetta, I.H.B.; Brandao, A.S.; Sarcinelli-Filho, M. Control and Obstacle Avoidance for an UAV Carrying a Load in Forestal Environments. In Proceedings of the International Conference on Unmanned Aircraft Systems, Dallas, TX, USA, 12–15 June 2018; pp. 62–67. [Google Scholar]
- Liang, X.; Fang, Y.; Sun, N.; Lin, H. Nonlinear Hierarchical Control for Unmanned Quadrotor Transportation Systems. IEEE Trans. Ind. Electron.
**2018**, 65, 3395–3405. [Google Scholar] [CrossRef] - Goodarzi, F.A.; Lee, D.; Lee, T. Geometric Stabilization of a Quadrotor UAV with a Payload Connected by Flexible Cable. In Proceedings of the American Control Conference, Portland, OR, USA, 4–6 June 2014; pp. 4925–4930. [Google Scholar]
- Almeida, M.M.D.; Raffo, G.V. Nonlinear Control of a TiltRotor UAV for Load Transportation. IFAC Papersonline
**2015**, 48, 232–237. [Google Scholar] - Lee, B.Y.; Hong, S.M.; Yoo, D.W.; Lee, H.I.; Moon, G.H.; Tahk, M.J. Design of a Neural Network Controller for a Slung-Load System Lifted by 1 Quad-Rotor. J. Autom. Control. Eng.
**2015**, 3, 9–14. [Google Scholar] [CrossRef] - Lee, B.Y.; Lee, H.I.; Yoo, D.W.; Moon, G.H.; Lee, D.Y.; Kim, Y.Y.; Tahk, M.J. Study on Payload Stabilization Method with the Slung-load Transportation System Using a Quad-rotor. In Proceedings of the European Control Conference (ECC), Linz, Austria, 15–17 July 2015; pp. 2097–2102. [Google Scholar]
- Jain, R.P.K. Transportation of Cable Suspended Load Using Unmanned Aerial Vehicles: A Real-Time Model Predictive Control Approach. Master’s Thesis, Delft University of Technology, Delft, The Netherlands, 2015. [Google Scholar]
- Klausen, K.; Fossen, T.I.; Johansen, T.A. Nonlinear Control of a Multirotor UAV with Suspended Load. In Proceedings of the International Conference on Unmanned Aircraft Systems, Denver, CO, USA, 9–12 June 2015; pp. 176–184. [Google Scholar]
- Nicotra, M.M.; Garone, E.; Naldi, R.; Marconi, L. Nested Saturation Control of an UAV Carrying a Suspended Load. In Proceedings of the American Control Conference, Portland, OR, USA, 4–6 June 2014; pp. 3585–3590. [Google Scholar]
- Zhou, X.; Liu, R.; Zhang, J.; Zhang, X. Stabilization of a Quadrotor with Uncertain Suspended Load Using Sliding Mode Control. In Proceedings of the ASME International Design Engineering Technical Conferences & Computers and Information in Engineering Conference, Charlotte, NC, USA, 21–24 August 2016. [Google Scholar]
- Potter, J.; Singhose, W.; Costelloy, M. Reducing Swing of Model Helicopter Sling Load using Input Shaping. In Proceedings of the IEEE International Conference on Control and Automation, Santiago, Chile, 19–21 December 2011; pp. 348–353. [Google Scholar]
- Adams, C.; Potter, J.; Singhose, W. Modeling and Input Shaping Control of a Micro Coaxial Radio-Controlled Helicopter Carrying a Suspended Load. In Proceedings of the International Conference on Control, Automation and Systems, JeJu Island, Korea, 17–21 October 2012; pp. 645–650. [Google Scholar]
- Ivler, C.M.; Tischler, M.; Powell, J.D. Cable Angle Feedback Control Systems to Improve Handling Qualities for Helicopters with Slung Loads. In Proceedings of the AIAA Guidance, Navigation, and Control Conference, Portland, OR, USA, 8–11 August 2011. [Google Scholar]
- Bisgaard, M.; Courharbo, A.L.; Bendtsen, J. Input Shaping for Helicopter Slung Load Swing Reduction. In Proceedings of the AIAA Guidance, Navigation and Control Conference and Exhibit, Keystone, CO, USA, 21–24 August 2006. [Google Scholar]
- Bisgaard, M.; Courharbo, A.L.; Bendtsen, J. Full State Estimation for Helicopter Slung Load System. In Proceedings of the AIAA Guidance, Navigation and Control Conference and Exhibit, Hilton Head Island, SC, USA, 20–23 August 2007. [Google Scholar]
- Bisgaard, M.; Bendtsen, J.; Courharbo, A.L. Modelling of Generic Slung Load System. J. Guidance Control Dyn.
**2009**, 32, 573–585. [Google Scholar] [CrossRef] - Bisgaard, M. Modeling, Estimation, and Control of Helicopter Slung Load System. Ph.D. Thesis, Aalborg University, Aalborg, Denmark, 2008. [Google Scholar]
- Bisgaard, M.; Cour-Harbo, A.L.; Bendtsen, J.D. Adaptive Control System for Autonomous Helicopter Slung Load Operations. Control Eng. Pract.
**2010**, 18, 800–811. [Google Scholar] [CrossRef] - Bisgaard, M.; Cour-Harbo, A.L.; Bendtsen, J.D. Swing Damping for Helicopter Slung Load Systems using Delayed Feedback. In Proceedings of the AIAA Guidance, Navigation, and Control Conference and Exhibit, Chicago, IL, USA, 10–13 August 2009. [Google Scholar]
- Bisgaard, M.; Cour-Harbo, A.L.; Johnson, E.N.; Bendtsen, J.D. Vision Aided State Estimator for Helicopter Slung Load System. In Proceedings of the 17th IFAC Symposium On Automatic Control In Aerospace, Toulouse, France, 25–29 June 2007; pp. 425–430. [Google Scholar]
- Shi, D.; Wu, Z.; Chou, W. Harmonic Extended State Observer Based Anti-Swing Attitude Control for Quadrotor with Slung Load. Electronics
**2018**, 7, 83. [Google Scholar] [CrossRef] - Abbeel, P.; Coates, A.; Ng, A.Y. Autonomous Helicopter Aerobatics Through Apprenticeship Learning. Int. J. Rob. Res.
**2010**, 29, 1608–1639. [Google Scholar] [CrossRef] - Zhang, D.; Zhao, X.; Han, J. Active Model-Based Control for Pneumatic Artificial Muscle. IEEE Trans. Ind. Electron.
**2017**, 64, 1686–1695. [Google Scholar] [CrossRef][Green Version] - Dai, B.; He, Y.; Gu, F.; Yang, L.; Han, J.; Xu, W. A Vision-Based Autonomous Aerial Spray System for Precision Agriculture. In Proceedings of the IEEE International Conference on Robotics and Biomimetics, Macau, China, 5–8 December 2017; pp. 507–513. [Google Scholar]
- Mellinger, D.; Kumar, V. Minimum Snap Trajectory Generation and Control for Quadrotors. In Proceedings of the IEEE International Conference on Robotics and Automation, Shanghai, China, 9–13 May 2011; pp. 2520–2525. [Google Scholar]
- Qualisys Motion Capture System. Available online: https://www.qualisys.com/ (accessed on 12 August 2018).
- Reséndiz, V.M.A.; Rivas-Araiza, E.A. System Identification of a Quadrotor in X Configuration from Experimental Data. Res. Comput. Sci.
**2016**, 118, 77–86. [Google Scholar] - Liu, J.; Shen, X.; Zhao, L. System Identification Theory and MATLAB Simulation; Publishing House of Electronics Industry: Beijing, China, 2013. [Google Scholar]
- Sheng, Z.; Xie, S.; Pan, C. Probability and Mathematical Statistics, 4th ed.; Higher Education Press: Beijing, China, 2008. [Google Scholar]

**Figure 3.**The experimental scenario. (

**a**) The quadrotor slung load (QSL) system with symmetrical load; (

**b**) The QSL system with asymmetrical load.

**Figure 4.**The performance of the active model error estimation (The measurements (black dashed), the nominal model outputs (red dashdot), the desired values (blue solid), or estimated model errors (red dashdot), and the nominal model + modeling errors (green solid) before and after the load change). (

**a**) Nominal model output; (

**b**) Nominal model output + Modeling error.

State | $\overline{\mathit{E}}$ of Nominal Model | $\overline{\mathit{E}}$ of Nominal Model + Active Estimation | Improvement |
---|---|---|---|

x | $0.3276\phantom{\rule{1.0pt}{0ex}}$ m | $0.0620\phantom{\rule{1.0pt}{0ex}}$ m | 81.07% |

y | $0.2724\phantom{\rule{1.0pt}{0ex}}$ m | $0.0507\phantom{\rule{1.0pt}{0ex}}$ m | 81.39% |

z | $0.0504\phantom{\rule{1.0pt}{0ex}}$ m | $0.0045\phantom{\rule{1.0pt}{0ex}}$ m | 91.07% |

$\phi $ | $0.0345\phantom{\rule{1.0pt}{0ex}}$ rad | $0.0092\phantom{\rule{1.0pt}{0ex}}$ rad | 73.33% |

$\theta $ | $0.0151\phantom{\rule{1.0pt}{0ex}}$ rad | $0.0063\phantom{\rule{1.0pt}{0ex}}$ rad | 58.28% |

$\psi $ | $0.0136\phantom{\rule{1.0pt}{0ex}}$ rad | $0.0033\phantom{\rule{1.0pt}{0ex}}$ rad | 75.7% |

State | $\overline{\mathit{E}}$ of Nominal Control | $\overline{\mathit{E}}$ of Nominal Control + Compensation Control | Improvement |
---|---|---|---|

x | $0.3304\phantom{\rule{1.0pt}{0ex}}$ m | $0.1693\phantom{\rule{1.0pt}{0ex}}$ m | 48.76% |

y | $0.3656\phantom{\rule{1.0pt}{0ex}}$ m | $0.2062\phantom{\rule{1.0pt}{0ex}}$ m | 43.6% |

z | $0.2308\phantom{\rule{1.0pt}{0ex}}$ m | $0.0426\phantom{\rule{1.0pt}{0ex}}$ m | 81.54% |

$\phi $ | $0.0509\phantom{\rule{1.0pt}{0ex}}$ rad | $0.0336\phantom{\rule{1.0pt}{0ex}}$ rad | 34% |

$\theta $ | $0.0530\phantom{\rule{1.0pt}{0ex}}$ rad | $0.0387\phantom{\rule{1.0pt}{0ex}}$ rad | 27% |

$\psi $ | $0.0297\phantom{\rule{1.0pt}{0ex}}$ rad | $0.0122\phantom{\rule{1.0pt}{0ex}}$ rad | 58.9% |

© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).