Contribution to the Control and Command of a Quadrirotor with Six Degrees of Freedom in an Urban Environment

1. Introduction

Unmanned Aerial Vehicle (UAV) is commonly known as drones, constituting the flagship of the aerospace industry. Its applications are as visible, useful and remarkable in military projects, as regards surveillance, intelligence or combat missions, remote sensing, destruction of targets and any other task that would put a crew in danger. Drones have also proven to have a very high potential for civilian applications, such as surveillance and observation of risk areas, infrastructure management, customs, the environment, field mapping, scientific experiments, intervention in hostile sites etc. [1].

A quadrotor is a miniature rotary-wing drone with four rotors. It has been the subject of several research projects focusing on its ease of implementation, vertical take-off and landing, and its efficiency in hovering. One of its major characteristics is stabilization in attitude and altitude. This stabilization allows the quadcopter to be steered to the desired position (x, y, z) or the desired angle (ϕ, θ, ψ) [2]. The literature is full of several mathematical models describing the translational and rotational dynamics of a quadrotor, with six degrees of freedom, as well as the control algorithms. Among defined, the linear controls PID [1] [2] [3], LQR, H∞ [4] applied to a linearized model (around an operating point using the Jacobian method). The nonlinear controls take into account the important nonlinearities of the vehicle dynamics. We can cite the hierarchical control [5], the sliding mode control [6], the Backstepping algorithm [7] - [12]. Other commands exploit visual data extracted from acquired images; we will speak of visual serving or command by vision [13]. Some have also been interested in author’s flight commands based on neural networks and fuzzy logic [13]. In this article, we will focus on two approaches to controlling a quadcopter. This is the Backstepping controller first, and the PID controller second. Each of the commands will be simulated in the Matlab/Simulink environment. The results will be compared by analyzing their performances in terms of system response time, stabilization, convergence towards the desired setpoints and their behavior in the face of disturbances. The article is divided into three parts: the first describes the dynamic model of the quadrotor according to the Newton-Euler formalism. The proposed control strategies will find their applications in the second part. In the third part, the discussion of the results and the analysis of the performance of each control algorithm will be given.

2. Dynamic Model

­ The flight dynamics of a quadrotor are complex and strongly coupled. To develop a dynamic model close to the real physical model, taking into account the effects of the environment, we make these assumptions:

­ The structure of the quadrotor is assumed to be rigid and symmetrical, which implies that the inertia matrix will be assumed to be diagonal.

­ The propellers are supposed to be rigid in order to be able to neglect the effect of their deformation during rotation.

­ The center of mass and the origin of the coordinate system linked to the structure of the quadrotor coincide.

­ The lift and drag forces are proportional to the squares of the rotational speed of the rotors, which is a very close approximation of aerodynamic behavior.

1) Definition of benchmarks (Figure 1)

­ The movement of a quadrotor is described by two reference marks:

­ The Earth Inertial frame noted E:

$E=\left(O,{x}_{e};{y}_{e};{z}_{e}\right)$

­ The mobile mark (in English Body frame) noted B:

$B=\left(G,{x}_{b};{y}_{b};{z}_{b}\right)$

2) Euler angles

Euler angles are angles introduced by Leonhard Euler to describe the orientation of a solid. We have three: the roll angle ( $\frac{-\pi }{2}<\varphi <\frac{\pi }{2}$ ), pitch angle ( $\frac{-\pi }{2}<\theta <\frac{\pi }{2}$ ) and the yaw angle ( $-\pi <\psi <\pi$ ). A rotation is obtained by varying one of Euler’s three angles and a sequence of three rotations is sufficient to describe any transformation based on Euler’s theorem (Figure 2).

3) Kinematic parameters

They include four vectors of three elements describing the state of the system. The first two define the position and speed of the center of gravity of the quadrotor and the other two relate to its orientation and angular speed.

$r\left(t\right)={\left[xyz\right]}^{\text{T}}$ is the position of the center of gravity of the quadrirotor with respect to the reference {E} and defined in the reference {E}.

Figure 1. Repères.

Figure 2. Angles d’Euler.

$\eta \left(t\right)={\left[\varphi \theta \psi \right]}^{\text{T}}$ is the vector of Euler angles representing the angular position of the frame {B} linked to the quadrirotor with respect to the frame {E} and defined in the frame {E}.

$\upsilon \left(t\right)={\left[\stackrel{˙}{x}\stackrel{˙}{y}\stackrel{˙}{z}\right]}_{E}^{\text{T}}={\left[uvw\right]}_{B}^{\text{T}}$ is the speed of the center of gravity compared to the reference vector E and described in the reference {B}. Also called linear speed. $\Omega \left(t\right)={\left[pqr\right]}_{E}^{\text{T}}={\left[\stackrel{˙}{\varphi }\stackrel{˙}{\theta }\stackrel{˙}{\psi }\right]}_{B}^{\text{T}}$ is the instantaneous speed vector of rotation between the reference marks {E} and {B} and described in the reference {B}. Also called angular speed of rotation.

4) Kinetic parameters

They establish the link between the forces and the variation of the kinematic parameters. They are constant in our study. We can cite: the mass m of the quadrotor, the center of gravity G, the matrix of inertia J of the point G of the moving frame

$J=\left[\begin{array}{ccc}{J}_{xx}& 0& 0\\ 0& {J}_{yy}& 0\\ 0& 0& {J}_{zz}\end{array}\right]$ (1)

5) Rotation matrix

The rotation matrix is an orthogonal matrix and in fact it belongs to the subspace of orthogonal matrices, called special orthogonal group, denoted by SO (3), defined by:

$\left\{\Re \in {ℝ}^{3×3}/{\Re }^{\text{T}}\Re ={I}_{3×3}\text{\hspace{0.17em}}\text{et}\text{\hspace{0.17em}}\mathrm{det}\left(\Re \right)=1\right\}$

In the case where the mobile frame {B} linked to the quadrirotor rotates in inertial relation {E} with an angular speed Ω, the rotation matrix varies; this results in the kinematic height matrix: $Ṙ=Rsk\left( \Omega \right)$

sk(Ω) is the antisymmetric tensor associated with the angular speed Ω Î R3. The rotation matrix defines three angles of Euler rotation around the axes respectively described as:

${\Re }_{x}\left(\varphi \right)$ ; ${\Re }_{y}\left(\theta \right)$ ; ${\Re }_{z}\left(\psi \right)$. The product of these three elementary matrices of rotation forms the matrix of rotation R.

${\Re }_{x}\left(\varphi \right)=\left[\begin{array}{ccc}1& 0& 0\\ 0& \mathrm{cos}\varphi & -\mathrm{sin}\varphi \\ 0& \mathrm{sin}\varphi & \mathrm{cos}\varphi \end{array}\right]$

${\Re }_{y}\left(\theta \right)=\left[\begin{array}{ccc}\mathrm{cos}\theta & 0& \mathrm{sin}\theta \\ 0& 1& 0\\ -\mathrm{sin}\theta & 0& \mathrm{cos}\theta \end{array}\right]$

${\Re }_{z}\left(\psi \right)=\left[\begin{array}{ccc}\mathrm{cos}\psi & -\mathrm{sin}\psi & 0\\ \mathrm{sin}\psi & \mathrm{cos}\psi & 0\\ 0& 0& 1\end{array}\right]$

$\Re ={\Re }_{x}\left(\varphi \right)×{\Re }_{y}\left(\theta \right)×{\Re }_{z}\left(\psi \right)$ (2)

$\Re =\left[\begin{array}{ccc}{c}^{1}\theta c\psi & c\psi {s}^{2}\varphi s\theta -c\varphi s\psi & c\varphi s\theta c\psi +s\varphi s\psi \\ c\theta s\psi & s\varphi s\theta s\psi +c\varphi c\psi & c\varphi s\theta s\psi -s\varphi c\psi \\ -s\theta & s\varphi c\theta & c\varphi c\theta \end{array}\right]$

6) Aerodynamic forces

A moving quadrirotor is under the action of four (4) main forces: the weight P, the total thrust U1, the drag in the propellers Tr (propeller) and the drag along the axes Tr(ax).

Note: $P=m{g}_{{z}_{e}}=\left[\begin{array}{c}0\\ 0\\ mg\end{array}\right]$

${U}_{1}=\underset{i=1}{\overset{4}{\sum }}b{\omega }_{i}^{2}$

${T}_{r}\left(\text{helice}\right)=d{\omega }_{i}^{2}$

${T}_{r}\left(\text{axe}\right)={K}_{ft}V=\left[\begin{array}{c}{K}_{ftx}\\ {K}_{fty}\\ {K}_{ftz}\end{array}\right]\left[\begin{array}{c}\stackrel{˙}{x}\\ \stackrel{˙}{y}\\ \stackrel{˙}{z}\end{array}\right]=\left[\begin{array}{c}{K}_{ftx}\stackrel{˙}{x}\\ {K}_{fty}\stackrel{˙}{y}\\ {K}_{ftz}\stackrel{˙}{z}\end{array}\right]$

Avec:

m is the mass of the quadrirotor in kg; g is the gravitational acceleration in m/s2; ${z}_{e}={\left[\begin{array}{ccc}0& 0& 1\end{array}\right]}^{\text{T}}$ is a unit vector in the terrestrial inertial frame {E}.

b is the coefficient of lift; ωi the speed of rotation of a motor number i (i ranging from 1 to 4).

d is the coefficient of proportionality of drag.

${K}_{ftx}$ Translation drag coefficient along the x axis.

${K}_{fty}$ Translation drag coefficient along the y axis.

${K}_{ftz}$ Translation drag coefficient along the z axis.

7) Moments due to thrust forces of rotors along the axes

­ We have two moments due to the pushing force:

­ Moment due to thrust forces on the axis x:

${U}_{2}=\mathcal{l}b\left({\omega }_{4}^{2}-{\omega }_{2}^{2}\right)$ (3)

${U}_{2}$ is called roll control.

Moment due to thrust forces on the axis:

${U}_{3}=\mathcal{l}b\left({\omega }_{3}^{2}-{\omega }_{1}^{2}\right)$ (4)

${U}_{3}$ is called pitch control.

8) Moments due to drag forces

­ They left as follows:

­ The moment due to the drag forces in the propellers along the axis z:

${U}_{4}=d\left({\omega }_{1}^{2}-{\omega }_{2}^{2}+{\omega }_{3}^{2}-{\omega }_{4}^{2}\right)$ (5)

${U}_{4}$ is called lace command.

By grouping together with the expression of the total thrust ${U}_{1}$ and Equations (3), (4) and (5),

$\left\{\begin{array}{l}{U}_{1}=b\left({\omega }_{1}^{2}+{\omega }_{2}^{2}+{\omega }_{3}^{2}+{\omega }_{4}^{2}\right)\\ {U}_{2}=\mathcal{l}b\left({\omega }_{4}^{2}-{\omega }_{2}^{2}\right)\\ {U}_{3}=\mathcal{l}b\left({\omega }_{3}^{2}-{\omega }_{1}^{2}\right)\\ {U}_{4}=d\left({\omega }_{1}^{2}-{\omega }_{2}^{2}+{\omega }_{3}^{2}-{\omega }_{4}^{2}\right)\end{array}$ (6)

­ The moment resulting from aerodynamic friction:

${M}_{a}={K}_{{f}_{a}}{\Omega }^{2}=\left[\begin{array}{c}{K}_{{f}_{ax}}{\stackrel{˙}{\varphi }}^{2}\\ {K}_{{f}_{ay}}{\stackrel{˙}{\theta }}^{2}\\ {K}_{{f}_{az}}{\stackrel{˙}{\psi }}^{2}\end{array}\right]$ (7)

${K}_{{f}_{ax}}$ coefficient of aerodynamic friction along the axis x.

${K}_{{f}_{ay}}$ coefficient of aerodynamic friction along the axis y.

${K}_{{f}_{az}}$ coefficient of aerodynamic friction along the axis z.

9) Gyroscopic effects

The gyroscopic effect is defined as the difficulty of modifying the position or the orientation of the plane of rotation of a rotating mass. Each rotor can thus rotate around its own vertical axis with a speed of rotation ωi. Even the vertical axis moves as the vehicle rotates. This action produces two additional moments among which, on one: the gyroscopic moment of the helices Mgh and the gyroscopic moment due to the movements of the quadrirotor Mgm. Note:

${M}_{gh}=\underset{i=1}{\overset{4}{\sum }}{\Omega }_{r}\wedge {J}_{r}{\left[\begin{array}{ccc}0& 0& {\left(-1\right)}^{i+1}{\omega }_{i}\end{array}\right]}^{\text{T}}$

${M}_{gh}=\left[\begin{array}{c}\stackrel{˙}{\varphi }\\ \stackrel{˙}{\theta }\\ \stackrel{˙}{\psi }\end{array}\right]\wedge {J}_{r}\left[\begin{array}{c}0\\ 0\\ {\Omega }_{r}\end{array}\right]=\left[\begin{array}{c}{J}_{r}{\Omega }_{r}\stackrel{˙}{\theta }\\ -{J}_{r}{\Omega }_{r}\stackrel{˙}{\varphi }\\ 0\end{array}\right]$ (8)

or $\wedge$ : vector product operator; ${J}_{r}$ is the inertia of the rotors and ${\Omega }_{r}={\omega }_{2}+{\omega }_{4}-{\omega }_{1}-{\omega }_{3}$

${M}_{gm}=\Omega \wedge J\Omega$

${M}_{gm}=\left[\begin{array}{c}\left({J}_{zz}-{J}_{yy}\right)\stackrel{˙}{\theta }\stackrel{˙}{\psi }\\ \left({J}_{xx}-{J}_{zz}\right)\stackrel{˙}{\varphi }\stackrel{˙}{\psi }\\ \left({J}_{yy}-{J}_{xx}\right)\stackrel{˙}{\varphi }\stackrel{˙}{\theta }\end{array}\right]$ (9)

10) Translational dynamics

The equations governing the translational motion of a quadrotor are:

$\left\{\begin{array}{l}\stackrel{˙}{r}=\upsilon \\ m\stackrel{¨}{r}=\Re ×\left[\begin{array}{ccc}0& 0& 1\end{array}\right]×{U}_{1}-{T}_{r}\left(\text{axe}\right)-P\end{array}$ (10)

11) Rotational dynamics

The equations governing the rotational motion of a quadrotor are:

$\left\{\begin{array}{l}\stackrel{˙}{\Re }=\Re sk\left(\Omega \right)\\ J\stackrel{˙}{\Omega }=-{M}_{gm}-{M}_{a}-{M}_{gh}+{M}_{f}\end{array}$ (11)

12) Complete dynamic model (12)

From Equations (10) and (11) we obtain the complete dynamic model:

$\left\{\begin{array}{l}\stackrel{¨}{x}=-\frac{{K}_{ftx}}{m}\stackrel{˙}{x}+\frac{1}{m}{U}_{x}{U}_{1}\\ \stackrel{¨}{y}=-\frac{{K}_{fty}}{m}\stackrel{˙}{y}+\frac{1}{m}{U}_{y}{U}_{1}\\ \stackrel{¨}{z}=-\frac{{K}_{ftz}}{m}\stackrel{˙}{z}+\frac{\mathrm{cos}\varphi \mathrm{cos}\theta }{m}{U}_{1}-g\\ \stackrel{¨}{\varphi }=\frac{{J}_{yy}-{J}_{zz}}{{J}_{xx}}\stackrel{˙}{\theta }\stackrel{˙}{\psi }-\frac{{J}_{r}}{{J}_{xx}}{\Omega }_{r}\stackrel{˙}{\theta }-\frac{{K}_{{f}_{ax}}}{{J}_{xx}}{\stackrel{˙}{\varphi }}^{2}+\frac{1}{{J}_{xx}}{U}_{2}\\ \stackrel{¨}{\theta }=\frac{{J}_{zz}-{J}_{xx}}{{J}_{yy}}\stackrel{˙}{\varphi }\stackrel{˙}{\psi }+\frac{{J}_{r}}{{J}_{yy}}{\Omega }_{r}\stackrel{˙}{\varphi }-\frac{{K}_{{f}_{ax}}}{{J}_{yy}}{\stackrel{˙}{\theta }}^{2}+\frac{1}{{J}_{yy}}{U}_{3}\\ \stackrel{¨}{\psi }=\frac{{J}_{xx}-{J}_{yy}}{{J}_{zz}}\stackrel{˙}{\varphi }\stackrel{˙}{\theta }-\frac{{K}_{{f}_{ax}}}{{J}_{zz}}{\stackrel{˙}{\psi }}^{2}+\frac{1}{{J}_{zz}}{U}_{4}\end{array}$

and:

$\left\{\begin{array}{l}{U}_{x}=\mathrm{cos}\varphi \mathrm{sin}\theta \mathrm{cos}\psi +\mathrm{sin}\varphi \mathrm{sin}\psi \\ {U}_{y}=\mathrm{cos}\varphi \mathrm{sin}\theta \mathrm{sin}\psi -\mathrm{sin}\varphi \mathrm{cos}\psi \end{array}$ (13)

13) System state representation

For a physical system there are a multitude of state representations, in our case we choose the state vector as follows:

$X=\left[\begin{array}{ccc}{r}^{\text{T}}& {\upsilon }^{\text{T}}& \begin{array}{cc}{\eta }^{\text{T}}& {\Omega }^{\text{T}}\end{array}\end{array}\right]$ (14)

Each of the 4 vectors of relation (14) has 3 components. In total, our state vector contains (4 × 3) = 12 elements and the control vector U has 4 elements such that:

$\left\{\begin{array}{l}X={\left[\begin{array}{ccc}\varphi & \stackrel{˙}{\varphi }& \begin{array}{cc}\theta & \begin{array}{ccc}\stackrel{˙}{\theta }& \psi & \begin{array}{ccc}\stackrel{˙}{\psi }& x& \begin{array}{ccc}\stackrel{˙}{x}& y& \begin{array}{cc}\stackrel{˙}{y}& \begin{array}{cc}z& \stackrel{˙}{z}\end{array}\end{array}\end{array}\end{array}\end{array}\end{array}\end{array}\right]}^{\text{T}}\\ U={\left[\begin{array}{ccc}{U}_{1}& {U}_{2}& \begin{array}{cc}{U}_{3}& {U}_{4}\end{array}\end{array}\right]}^{\text{T}}\end{array}$

We get the state representation in the form:

$\stackrel{˙}{X}=f\left(X,U\right)$

$\left\{\begin{array}{l}{x}_{1}=\varphi \\ {x}_{2}={\stackrel{˙}{x}}_{1}=\stackrel{˙}{\varphi }\\ {x}_{3}=\theta \\ {x}_{4}={\stackrel{˙}{x}}_{3}=\stackrel{˙}{\theta }\\ {x}_{5}=\psi \\ {x}_{6}={\stackrel{˙}{x}}_{5}=\stackrel{˙}{\psi }\\ {x}_{7}=x\\ {x}_{8}={\stackrel{˙}{x}}_{7}=\stackrel{˙}{x}\\ {x}_{9}=y\\ {x}_{10}={\stackrel{˙}{x}}_{9}=\stackrel{˙}{y}\\ {x}_{11}=z\\ {x}_{12}={\stackrel{˙}{x}}_{11}=\stackrel{˙}{z}\end{array}$ (15)

$\left\{\begin{array}{l}{a}_{1}=\frac{{J}_{yy}-{J}_{zz}}{{J}_{xx}},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{a}_{2}=-\frac{{K}_{{f}_{ax}}}{{J}_{xx}},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{a}_{3}=-\frac{{J}_{r}}{{J}_{xx}}\\ {b}_{1}=\frac{1}{{J}_{xx}},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{a}_{4}=\frac{{J}_{zz}-{J}_{xx}}{{J}_{yy}},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{a}_{5}=-\frac{{K}_{{f}_{ax}}}{{J}_{yy}}\\ {a}_{6}=\frac{{J}_{r}}{{J}_{yy}},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{b}_{2}=\frac{1}{{J}_{yy}},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{a}_{7}=\frac{{J}_{xx}-{J}_{yy}}{{J}_{zz}}\\ {a}_{8}=-\frac{{K}_{{f}_{ax}}}{{J}_{zz}},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{b}_{3}=\frac{1}{{J}_{zz}},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{a}_{9}=-\frac{{K}_{ftx}}{m}\\ {a}_{10}=-\frac{{K}_{fty}}{m},\text{\hspace{0.17em}}\text{\hspace{0.17em}}{a}_{11}=-\frac{{K}_{ftz}}{m}\end{array}$ (16)

Taking into account relations (15) and (16), on Equation (17):

$\left\{\begin{array}{l}{\stackrel{˙}{x}}_{1}={x}_{2}\\ {\stackrel{˙}{x}}_{2}={a}_{1}{x}_{4}{x}_{6}+{a}_{2}{x}_{2}^{2}+{a}_{3}{\Omega }_{r}{x}_{4}+{b}_{1}{U}_{2}\\ {\stackrel{˙}{x}}_{3}={x}_{4}\\ {\stackrel{˙}{x}}_{4}={a}_{4}{x}_{2}{x}_{6}+{a}_{5}{x}_{4}^{2}+{a}_{6}{\Omega }_{r}{x}_{2}+{b}_{2}{U}_{3}\\ {\stackrel{˙}{x}}_{5}={x}_{6}\\ {\stackrel{˙}{x}}_{6}={a}_{7}{x}_{2}{x}_{4}+{a}_{8}{x}_{6}^{2}+{b}_{3}{U}_{4}\\ {\stackrel{˙}{x}}_{7}={x}_{8}\\ {\stackrel{˙}{x}}_{8}={a}_{9}{x}_{8}+\frac{1}{m}{U}_{x}{U}_{1}\\ {\stackrel{˙}{x}}_{9}={x}_{10}\\ {\stackrel{˙}{x}}_{10}={a}_{10}{x}_{10}+\frac{1}{m}{U}_{y}{U}_{1}\\ {\stackrel{˙}{x}}_{11}={x}_{12}\\ {\stackrel{˙}{x}}_{12}={a}_{11}{x}_{12}+\frac{\mathrm{cos}\varphi \mathrm{cos}\theta }{m}{U}_{1}-g\end{array}$

We can derive a simplified state representation of our state system as follows:

$\stackrel{˙}{X}=f\left(X,U\right)=\left\{\begin{array}{c}\stackrel{˙}{\varphi }\\ \stackrel{˙}{\theta }\stackrel{˙}{\psi }{a}_{1}+{\stackrel{˙}{\varphi }}^{2}{a}_{2}+\stackrel{˙}{\theta }{a}_{3}{\Omega }_{r}+{b}_{1}{U}_{2}\\ \stackrel{˙}{\theta }\\ \stackrel{˙}{\varphi }\stackrel{˙}{\psi }{a}_{4}+{\stackrel{˙}{\theta }}^{2}{a}_{5}+\stackrel{˙}{\varphi }{a}_{6}{\Omega }_{r}+{b}_{2}{U}_{3}\\ \stackrel{˙}{\psi }\\ \stackrel{˙}{\varphi }\stackrel{˙}{\theta }{a}_{7}+{\stackrel{˙}{\psi }}^{2}{a}_{8}+{b}_{3}{U}_{4}\\ \stackrel{˙}{x}\\ \stackrel{˙}{x}{a}_{9}+\frac{1}{m}{U}_{x}{U}_{1}\\ \stackrel{˙}{y}\\ \stackrel{˙}{y}{a}_{10}+\frac{1}{m}{U}_{y}{U}_{1}\\ \stackrel{˙}{z}\\ \stackrel{˙}{z}{a}_{11}+\frac{\mathrm{cos}\varphi \mathrm{cos}\theta }{m}{U}_{1}-g\end{array}\right\}$

3. Return Control

The Backstepping control algorithm is synthesized to force the system to follow a desired trajectory.

The Backstepping command controls orientations (ϕ, θ, ψ) and positions (x, y, z). This design is based on the derived state vector (17) and relying on Lyapunov’s theory (particularly Lyapunov’s second method).

We first consider the command input for the angular rotations subsystem, then the position command input will be derived. On will deal for the subsystem of angular rotations: the roll controls U2, pitch U3 and yaw U4; with regard to the translations subsystem, we will highlight the commands for position in x Ux, position in y Uy and position z U1.

$\left\{\begin{array}{l}{\stackrel{˙}{x}}_{1}={x}_{2}\\ {\stackrel{˙}{x}}_{2}={a}_{1}{x}_{4}{x}_{6}+{a}_{2}{x}_{2}^{2}+{a}_{3}{\Omega }_{r}{x}_{4}+{b}_{1}{U}_{2}\end{array}$

The synthesis of the roll command U2 is done in two stages:

Step 1:

We take the first equation: ${\stackrel{˙}{x}}_{1}={x}_{2}$

We define the error e1 between $\varphi$ et ${\varphi }_{d}$ by:

${e}_{1}=\varphi -{\varphi }_{d}={x}_{1}-{x}_{1d}$

whose dynamics can be derived as follows:

${\stackrel{˙}{e}}_{1}={\stackrel{˙}{x}}_{1}-{\stackrel{˙}{x}}_{1d}={x}_{2}-{\stackrel{˙}{x}}_{1d}$

This definition explicitly indicates our command objective: the error e1 must asymptotically converge towards zero.

We choose the first candidate Lyapunov function of the following form:

$V\left({e}_{1}\right)=\frac{1}{2}{e}_{1}^{2}$

The calculation of the derivative of the Lyapunov function along the trajectory is solved as follows:

$\stackrel{˙}{V}\left({e}_{1}\right)={e}_{1}{\stackrel{˙}{e}}_{1}={e}_{1}\left({x}_{2}-{\stackrel{˙}{x}}_{1d}\right)$

To ensure stability, it is necessary that $\stackrel{˙}{V}\left({e}_{1}\right)\le 0$ ; for that we take as a virtual command ${\stackrel{˜}{x}}_{2}$ avec ${\stackrel{˜}{x}}_{2}={\stackrel{˙}{x}}_{1d}-{k}_{1}{e}_{1}$ avec ${k}_{1}>0$

This choice makes it possible to obtain:

$\stackrel{˙}{V}\left({e}_{1}\right)={e}_{1}\left(-{k}_{1}{e}_{1}\right)=-{k}_{1}{e}_{1}^{2}$

Step 2: As the virtual control cannot instantly take its desired value, we seek in what follows to stabilize the error between the virtual control and the stabilizing function. The second equation is defined by:

${\stackrel{˙}{x}}_{2}={a}_{1}{x}_{4}{x}_{6}+{a}_{2}{x}_{2}^{2}+{a}_{3}{\Omega }_{r}{x}_{4}+{b}_{1}{U}_{2}$

The new error variable between the virtual control and the stabilizing function is given by:

${e}_{2}={x}_{2}-{\stackrel{˜}{x}}_{2}$

${e}_{2}={x}_{2}-{\stackrel{˙}{x}}_{1d}+{k}_{1}{e}_{1}$

By linear combination, on a:

${\stackrel{˙}{e}}_{1}={e}_{2}-{k}_{1}{e}_{1}$

And by derivation:

${\stackrel{˙}{e}}_{2}={\stackrel{˙}{x}}_{2}-{\stackrel{¨}{x}}_{1d}+{k}_{1}\left({e}_{2}-{k}_{1}{e}_{1}\right)$

The new Lyapunov function of the augmented system is ready as follows:

$V\left({e}_{1},{e}_{2}\right)=\frac{1}{2}{e}_{1}^{2}+\frac{1}{2}{e}_{2}^{2}$

Its derivative is given by:

$\stackrel{˙}{V}\left({e}_{1},{e}_{2}\right)={e}_{1}\left({e}_{2}-{k}_{1}{e}_{1}\right)+{e}_{2}\left({\stackrel{˙}{x}}_{2}-{\stackrel{¨}{x}}_{1d}+{k}_{1}\left({e}_{2}-{k}_{1}{e}_{1}\right)\right)$

The choice of the control law must lead to a negative derivative of the Lyapunov function $\stackrel{˙}{V}\left({e}_{1},{e}_{2}\right)\le 0$ as following:

$\stackrel{˙}{V}\left({e}_{1},{e}_{2}\right)=-{k}_{1}{e}_{1}^{2}-{k}_{2}{e}_{2}^{2}$ avec $\left({k}_{1},{k}_{2}\right)>0$

The desirable dynamic for error at this stage is defined as:

${\stackrel{˙}{e}}_{2}=-{k}_{2}{e}_{2}-{e}_{1}$

We find:

$-{k}_{2}{e}_{2}-{e}_{1}={\stackrel{˙}{x}}_{2}-{\stackrel{¨}{x}}_{1d}+{k}_{1}\left({e}_{2}-{k}_{1}{e}_{1}\right)$ (18)

By replacing with the expressions of (17) in (18):

${U}_{2}=\frac{1}{{b}_{1}}\left[{\stackrel{¨}{x}}_{1d}-{e}_{1}-{k}_{2}{e}_{2}-{k}_{1}\left({e}_{2}-{k}_{1}{e}_{1}\right)-{a}_{1}{x}_{4}{x}_{6}-{a}_{2}{x}_{2}^{2}-{a}_{3}{\Omega }_{r}{x}_{4}\right]$

${U}_{3},{U}_{4},{U}_{1},{U}_{x},{U}_{y}$ are calculated in the same way.

${U}_{3}=\frac{1}{{b}_{2}}\left[{\stackrel{¨}{x}}_{3d}-{e}_{3}-{k}_{4}{e}_{4}-{k}_{3}\left({e}_{4}-{k}_{3}{e}_{3}\right)-{a}_{4}{x}_{4}{x}_{2}-{a}_{5}{x}_{2}^{2}-{a}_{6}{\Omega }_{r}{x}_{2}\right]$

${U}_{4}=\frac{1}{{b}_{3}}\left[{\stackrel{¨}{x}}_{5d}-{e}_{5}-{k}_{6}{e}_{6}-{k}_{5}\left({e}_{6}-{k}_{5}{e}_{5}\right)-{a}_{7}{x}_{2}{x}_{4}-{a}_{8}{x}_{6}^{2}\right]$

${U}_{1}=\frac{m}{\mathrm{cos}{x}_{1}\mathrm{cos}{x}_{3}}\left[{\stackrel{¨}{x}}_{11d}+g-{e}_{11}-{k}_{12}{e}_{12}-{k}_{11}\left({e}_{12}-{k}_{11}{e}_{11}\right)-{a}_{11}{x}_{12}\right]$

${U}_{x}=\frac{m}{{U}_{1}}\left[{\stackrel{¨}{x}}_{7d}-{e}_{7}-{k}_{8}{e}_{8}-{k}_{7}\left({e}_{8}-{k}_{7}{e}_{7}\right)-{a}_{9}{x}_{8}\right]$

${U}_{y}=\frac{m}{{U}_{1}}\left[{\stackrel{¨}{x}}_{9d}-{e}_{9}-{k}_{10}{e}_{10}-{k}_{9}\left({e}_{10}-{k}_{9}{e}_{9}\right)-{a}_{10}{x}_{10}\right]$

4. Simulation Results

The six (6) control laws acquired in section II will be implemented in the Matlab/Simulink environment with the parameters of Table 1. Through these commands, it is a question of orienting and stabilizing the quadcopter to the desired values: $\left[\begin{array}{ccc}{\varphi }_{d}& {\theta }_{d}& {\psi }_{d}\end{array}\right]=\left[\begin{array}{ccc}0.2& 0.2& 0.2\end{array}\right]$ (en radian) $\left[\begin{array}{ccc}{x}_{d}& {y}_{d}& {z}_{d}\end{array}\right]=\left[\begin{array}{ccc}20& 20& 20\end{array}\right]$ (en mètre).

Table 1. Physical parameters.

The results of the simulations are shown in Figures 3-5. They are distributed as follows:

Figure 4 presents the simulations of the Backstepping command applied to roll, pitch, yaw and the three positions (x, y, z), without disturbances. It can be seen that the Backstepping control correctly orientates and stabilizes the quadrirotor at the desired values. Ease of regaining gains favoring the stabilization of the quadrirotor.

Figure 5 shows the influence of disturbances on the Backstepping command. Using the Beaufort scale, we applied wind frequencies (frequency = 0.049 Hz) corresponding to winds of at least 22 m/s to our dynamics. There is a slight phase shift between the measurement and the desired destination for roll, pitch and yaw: the quadrirotor tends asymptotically towards the reference. On the other hand, despite this significant disturbance, the air vehicle awaits its altitude z and the x and y positions with stabilization at the desired value.

To validate the robustness of the backstepping control to a quadrirotor with six (6) degrees of freedom and to consolidate our work, we compared this control to the PID control. The PID controller was designed in the Matlab/Simulink environment and the results can be seen in Figure 5. From Figure 6, the response time of the system to the PID control is quite long compared to the Backstepping control, the difficulty of finding adequate gains allowing the quadrotor to reach the desired value and the stabilizer. This command is satisfactory at altitude.

Figure 4. Backstepping control of roll, pitch, yaw, x, y, z positions without disturbances.

Figure 5. Backstepping control of roll, pitch, yaw, x, y, z positions with disturbances.

Figure 6. PID control of roll, pitch, yaw, x, y, z positions.

5. Conclusion

In this article, the stabilization in attitude and altitude of a quadrirotor by the Backstepping command has been successfully demonstrated. First, we presented the dynamic model of the quadcopter with six degrees of freedom, taking into account all the aerodynamic and gyroscopic effects. In the second part, we developed the Backstepping control strategy based on the Lyapunov function in order to guarantee the stability of the system. Then, this control algorithm was applied to the quadrirotor. Finally, the simulation results come from a high level of reliability, a very short and precise response time, stabilization with or without turbulence. All these advantages prove the robustness of the Backstepping command.

NOTES

1c: cosines.

2s: sinus.

Cite this paper: Calvin, N. , Aurelien, Y. , Jeannot, M. , Vivien, A. , Cyrille, N. (2020) Contribution to the Control and Command of a Quadrirotor with Six Degrees of Freedom in an Urban Environment. World Journal of Engineering and Technology, 8, 800-813. doi: 10.4236/wjet.2020.84059.
References

[1]   Salih, A.-L., Moghavvemi, M., Mohamed, H.A.F. and Gaeid, K.S. (2010) Flight PID Controller Design for a UAV Quadrotor. Scientific Research and Essays, 5, 3360-3367.

[2]   Szafranski, G. and Czyba, R. (2011) Different Approaches of PID Control UAV Type Quadrotor. International Micro Air Vehicles Conference, 70-75.

[3]   García, R.A., et al. (2012) Robust PID Control of the Quadrotor Helicopter. IFAC Proceedings Volumes, 45, 229-334.
https://doi.org/10.3182/20120328-3-IT-3014.00039

[4]   Yassine, J. (2016) Commande Non Linéaire Hiérarchique d’un drone de type quadrirotor sans mesure de la vitesse linéaire. Ecole de Technologie Supérieure, Université du Québec.

[5]   Belobo Mevo, B. (2019) Contribution à la commande adaptative et robuste d’un robot mobile de type unicycle avec modèle non linéaire. Université du Québec en Abitibi Témiscamingue.

[6]   Brossard, J., Bensoussan, D., Landry, R. and Hammami, M. (2019) A New Fast Compensator Design Applied to a Quadcopter. Proceedings of the 8th International Conference on Systems and Control, Marrakech, 23-25 October 2019, 238-247.
https://doi.org/10.1109/ICSC47195.2019.8950601

[7]   Basri, M.A.M., Abidin, M.S.Z. and Subha, N.A.M. (2018) Simulation of Backstepping-Based Nonlinear Control for Quadrotor Helicopter. Applications of Modelling and Simulation, 2, 34-40.

[8]   Djamel, K., Abdellah, M. and Benallegue, A. (2016) Attitude Optimal Backstepping Controller Based Quaternion for a UAV. Mathematical Problems in Engineering, 2016, Article ID: 8573235.
https://doi.org/10.1155/2016/8573235

[9]   Bellahcene, Z., Bouhamida, M., Benghanem, M. and Laidani, A. (2012) La Commande Intégrale Backstepping Appliquée à un Hélicoptère à quatre hélices. 2ème CIMGLE’ 2012-19/21 Novembre 2012, Oran-ALGERIE.

[10]   Babaei, R. and Ehyaei, A.F. (2015) Robust Backstepping Control of a Quadrotor UAV Using Extended Kalman Bucy Filter. International Journal of Mechatronics, Electrical and Computer Technology, 5, 2276-2291.

[11]   Rodriguez, H.R., Vega, V.P., Orta, A.S. and Salazar, O.G. (2014) Robust Backstepping Control Based on Integral Sliding Modes for Tracking of Quadrotors. Journal of Intelligent & Robotic Systems, 73, 51-66.
https://doi.org/10.1007/s10846-013-9909-4

[12]   Chen, F.Y., Jiang, R.Q., Zhang, K.K. and Jiang, B. (2016) Robust Backstepping Sliding Mode Control and Observer-Based Fault Estimation for a Quadrotor UAV. IEEE Transactions on Industrial Electronics, 63, 5044-5056.

[13]   Nguyen, X.-M. and Hong, S.K. (2019) Robust Backstepping Trajectory Tracking Control of a Quadrotor with Input Saturation via Extended State Observer. Applied Sciences, 9, 5184.
https://doi.org/10.3390/app9235184

Top