# Control of a Tilting Hexacopter under Wind Disturbance

Authors: Hao Xu; Zhong Yang; Kaiwen Lu; Changliang Xu; Qiuyan Zhang
Journal: Mathematical Problems in Engineering
 (2020)

---

## Abstract

Multicopters are well suited for executing fast maneuvers with high velocity, but they are still affected by the external atmospheric environment because attitude and position cannot be independently controlled. In this paper, we present a novel hexacopter which improves the wind resistance and strong coupling between attitude control and position control. The copter is designed such that the rotor sections can tilt around their respective arm axes. We present the aerodynamic methods to analyze the system dynamics model in windy environments. The entire system is decomposed into six loops based on the model, and the presented flight controller uses the ADRC method to consider both the attitude and the position. The controller introduces the extended state observer to estimate the white noise and wind disturbance. We use the nonlinear state error feedback law to control the output with disturbance compensation. Finally, we linearize the control allocation matrix that the controllers output directly mapped to the rotor velocities and tilting angles. The new theoretical results are thoroughly validated through comparative experiments.


---

## Body

## 1. Introduction

In recent years, multicopters had proven to execute aggressive maneuvers [1]. The copter is an underactuated system that can move independently in six directions [2]. Because the control inputs are less than the motion directions, the generated driving force is in the same direction as the body frame and the strong coupling between the torque and the force, so the six degree-of-freedom omnidirectional motion cannot be realized [3]. However, to the multicopter controller, only the height and attitude are usually independently controllable, and it is challenging to meet the applications that require independent control of the position and attitude [4] such as a fixed-point hover while doing attitude tracking or maintaining attitude while doing position tracking [5, 6].In [7, 8], a reconstruction scheme of a six-rotor aircraft was shown; changing the mounting angle of the rotor, the rotors were arranged in pairs in three different planes, constituting a Euclidean space. The rotor installation angle was changed in the two schemes that the rotor thrust had components in the Z-axis and the X-Y plane of body frames. Thus, the copter can generate control and control torque in any direction for the independent position and attitude control [9]. However, since the thrust direction is fixed in the body frame, there is still horizontal thrust cancellation in equilibrium gravity, which reduces flight efficiency [10, 11].The addition of a tiltable rotor to a multicopter also enabled independent control of the position and attitude, solving the fixed thrust in the body frame and improving the flight performance [12]. In [13], a design scheme for tilting quadrotors was proposed; simulation and actual experiments verify the design effectiveness of the copter [14]. A model-based tilting multirotor nonlinear inverse dynamics control scheme was reported in [15]. In [12], the proportional-integral-derivative (PID) control method implements a linearized control allocation method.The tilting multicopter is an aircraft with a rotor that can tilt around its arm axis, featuring strong coupling, uncertainty, and nonlinearity [16]. The tilting multicopter has internal disturbances and external disturbances that cannot be ignored, and its controller design is more difficult than conventional multicopters. Control algorithms commonly used in flight control research include model-independent methods and model-based methods. PID is a model-independent method, which is widely used and easy to implement. However, the range of parameters adapting to the object is small, and the set parameters cannot be adapted to the disturbance factors outside the system [17]. For example, when the aircraft is subjected to wind disturbance, the quality of control will deteriorate. Model-based methods include robust control [18], backstepping control [19], and sliding mode control [20]. Meanwhile, graph theory can be used to estimate the observations of multicopters [21–23]. All these kinds of model-based methods can solve some internal and external disturbance problems, but the control performance has a high dependence on the accuracy of the model and is limited by environmental factors. It is difficult to obtain accurate aerodynamic performance parameters of the aircraft. And the model-based control algorithm is difficult to implement and has a poor real-time performance.Active disturbance rejection control (ADRC) [24] is a method that does not depend on the precise plant model. It can estimate internal disturbances and external disturbances in real time and compensate them [21–23]. ADRC has the characteristics of small calculation, easy implementation, and wide range of controller parameters [25]. Researchers have studied ADRC on conventional quadrotors [17, 26, 27], verifying the immunity and robustness of the controller. In order to improve the adaptability of the copter to external environmental disturbances and uncertain internal factors, we design a flight controller based on the ADRC method. The contributions are summarized as follows.Firstly, a six degree-of-freedom dynamic model under wind disturbance is established based on the Newton–Eulerian method and rotor slip theory. A six-channel single-loop omnidirectional ADRC controller is designed for the position and attitude control decoupling of the tilting hexacopter. Then, a method for implementing variable substitution and the linearization control distribution matrix by constructing virtual control quantity is given. Finally, the simulation experiments verify the effectiveness of the designed omnidirectional ADRC controller and verify the immunity and robustness of the whole system.


## 2. Symbols

The symbols used in this article are collected in Table1. The table includes notation, reference frames, system-wide parameters, and symbols related to the modeling.Table 1
Symbols mentioned in the article.
SymbolsMeaningUnitsθ,ϕ,ψRoll, pitch, and yaw Euler anglesdeg or radηVector of Euler anglesdeg or radPPosition of the hexacoptermVVelocity of the hexacopterm·s−1ωRotation rate of the hexacopterdeg·s−1 or rad·s−1niRotation velocity of thei−th propellersdeg·s−1 or rad·s−1FForce acting on the hexacopterNMTorque acting on the hexacopterN·mFEInertial world-fixed frame—FBBody-fixed frame—Fr,ii−th rotor frame—R⋅⋅The rotation matrix between different frames—MTotal mass of the hexacopterkgJTotal inertia matrix of the hexacopterN·mgGravitational accelerationm·s−2


## 3. System Overview

### 3.1. Kinematic Modeling

We consider a tilting six-rotor copter that is modeled as a rigid body in Figure1 and making use of a world frame FE with an orthonormal basis FE:OE,XE,YE,ZE represented in world frames. A body frame FB with an orthonormal basis ℱB:OB,XB,YB,ZB is also represented in world frames. Besides six frames ℱr,i:Or,i,Xr,i,Yr,i,Zr,i,i=1,…,6, fixed to the rotors defined, the origin of the frame OR,i is fixed to the motor, XR,i is the tilting axis of the rotor, and ZR,i is opposite to the thrust of the rotor.Figure 1
Frames of the tilting hexacopter.REB∈SO3 is a rotation matrix representing the body frame to the world frame, and it can be written as(1)REB=cosθcosψsinϕsinθcosψ−cosϕsinψcosϕsinθcosψ+sinϕsinψcosθsinψsinϕsinθsinψ+cosϕcosψcosϕsinθsinψ−sinϕcosψ−sinθsinϕcosθcosϕcosθ,and RBr,i is a rotation matrix representing the i−th rotor frame to the body frame and can be written as(2)RBr,i=Rzπ6−iπ3RX−αi,where αi is the tilt angle of the i−th rotor around Xr,i.(3)RZ⋅=cos⋅sin⋅0−sin⋅cos⋅0001,RX⋅=1000cos⋅sin⋅0−sin⋅cos⋅.Or,iB is the frame of Or,i in the body frame:(4)Or,iB=lcos−π6+iπ3lsin−π6+iπ30,i=1,…,6,where l is the distance from the rotor center to the center of mass (COM) of the copter.In this work, we adopt the rigid body kinematics model presented in the following:(5)P˙E=VE,η˙=Wω˙B,where PE=xyzT and VE=uvwT represent the position and the velocity of the aircraft in the world frame, η=ϕθψT is a vector of Euler angles, ωB=pqrT is the rotation rate under the body frame, and(6)W=1tanθsinϕtanθcosϕ0cosϕ−sinϕ0sinϕcosθcosϕcosθ.


### 3.2. Dynamical Modeling

This aircraft is a six degree-of-freedom (DOF) rigid body, and the dynamics model can be derived from the Newton–Eulerian equation [13]. The translation equation is described in the world frame, and the rotational equation is described in the body frame.(7)mI3×3O3×3O3×3JbV˙Eω˙B+0ωB×JbωB=FEMB,where m is the total mass, Jb=diagIxx,Iyy,Izz is the inertia matrix, O3×3 is the zero matrix, and I3×3 is the unit matrix.The forceFE analysis of the aircraft is composed of gravity FmE, the thrust FtE generated by the rotor, wind disturbance FwindE, and air resistance FaeroE that can be written as(8)FE=FmE+FtE+FwindE+FaeroE,where FmE=00mgT and(9)FtE=RBE∑i=16Rr,iBFr,i=REBFr,12sinα1+Fr,2sinα2+Fr,32sinα3−Fr,42sinα4−Fr,5sinα5−Fr,62sinα63Fr,12sinα1+3Fr,32sinα3+3Fr,42sinα4−3Fr,52sinα6Fr,1cosα1+Fr,2cosα2+Fr,3cosα3+Fr,4cosα4+Fr,5cosα5+Fr,6cosα6,where Fr,i is the lift generated by the i-th rotor, which is under the i-th rotor frame.The external torqueMB includes the moment MtB generated by the rotor thrust, the rotor rotation countertorque MantiB, the rotor tilting reverse torque MαB, air resistance MwindB, and the gyro effect MgyroB. So, we have(10)MB=MtB+MantiB+MαB+MwindB+MgyroB.The torque generated by the rotor thrust under the body frame is(11)MtB=∑i=16Or,iB×RBr,iFr,i=lFr,12cosα1+Fr,2cosα2+Fr,32cosα3−Fr,42cosα4−Fr,5cosα5−Fr,62cosα6−3Fr,12cosα1+3Fr,32cosα3+3Fr,42cosα4−3Fr,62cosα6−Fr,1sinα1−Fr,2sinα2−Fr,3sinα3−Fr,4sinα4−Fr,5sinα5−Fr,6sinα6,(12)MantiB=∑i=16RBr,iMr,i=Mr,12sinα1+Mr,2sinα2+Mr,32sinα3−Mr,42sinα4−Mr,5sinα5−Mr,62sinα6−3Mr,12sinα1+3Mr,32sinα3+3Mr,42sinα4−3Mr,62sinα6Mr,1cosα1+Mr,2cosα2+Mr,3cosα3+Mr,4cosα4+Mr,5cosα5+Mr,6cosα6,(13)MαB=Jα3α¨12−3α¨32−3α¨42+3α¨62,α¨12+α¨2+α¨32−α¨42−α¨5−α¨62,0T.Gyro effect terms include two parts caused by attitude changes and motor tilt.(14)MgyroB=Jp∑i=16RBr,iα˙i00+ΩB×−1i⋅RBr,i00ni=Jp−n1cosα1α˙12+q+n2cosα2α˙2+q−n3cosα3α˙32+q−n4cosα4α˙42−q+n5cosα5α˙5−q−n6cosα6α˙62−q−32n1rsinα1+32n3rsinα3−32n4rsinα4+32n6rsinα6−rn1sinα12+rn2sinα2−rn3sinα32−rn4sinα42+rn5sinα5−rn6sinα62+n1cosα132α˙1+p−pn2cosα2+n3cosα3−32α˙3+p−n4cosα4−32α˙4+p+pn5cosα5−n6cosα632α˙6+p12n1sinα1α˙12+q−n2sinα2α˙2+q+12n3sinα3α˙32+q−12n4sinα4α˙42−q+n5sinα5α˙5−q+12n6sinα6α˙62−q+32n1sinα132α˙1+p−32n3sinα3−32α˙3+p+32n4sinα4−32α˙4+p−32n6sinα632α˙6+p.In this paper, as shown in Figure1, the 2, 4, and 6 rotors rotate clockwise, and the 1, 3, and 5 rotors rotate counterclockwise. Therefore, the vector form of the thrust vector Fr,i^ and the antitorque vector Mr,i^ generated by the i-th motor in the corresponding rotor frame system is(15)Fr,i^=00Fr,iT,Mr,i^=00Mr,iT,Fr,i=−ktni2,Mr,i=−kqnj2,i=2,4,6,kqni2,i=1,3,5,kt,kq>0,where kt denotes the rotor thrust coefficient and kq is the antitorque coefficient.


### 3.3. Wind Disturbance Modeling

The wind field has two main effects on the aircraft. First, it affects the aerodynamic effect of the rotor and then affects the air resistance of each windward surface.The aerodynamic analysis of the rotor under windy conditions is shown in Figure2. In the figure, Vw represents the wind velocity, Vt,i represents the rotor induction velocity, and V^ is the vector sum of the wind velocity and the induced velocity. According to the theory of rotor slip flow [25], the velocity calculation formula is as follows:(16)Vt,i=kt⋅ni22ρπr2,where ρ is the air density and r is the radius of the rotor paddle. The total lift of the rotor [25] can be expressed as(17)Fr,i+Fw,i=2πρr2Vt,iVw+Vt,i.Figure 2
Aerodynamic analysis of the rotor under wind.The wind disturbanceFw,i and torque of i-th rotor Mw,i are as follows:(18)Fw,i=ktni2−2ρπr200kfni22ρπr2+RBr,iTREBTVwE,Mw,i=kmktFw,i,i=1,3,5,−kmktFw,i,i=2,4,6.So,(19)FwindE=REB∑i=16RBr,i00Fw,i,MwindB=∑i=16RBr,i00Mr,i.The formula for air resistance is(20)D=12cρSVair2,where c is the air resistance coefficient and Vair is the relative velocity of the aircraft and air. For the aircraft, there is Vair=VwE−VE. When calculating the air resistance of the copter, consider it as a cylinder and take the average windward area S¯ as(21)S¯=σ2πlh+1−σπl2,where σ∈0,1 is the crosswind coefficient and h is the height of the body, so that(22)FaeroE=12cρS¯VairVair.


## 3.1. Kinematic Modeling

We consider a tilting six-rotor copter that is modeled as a rigid body in Figure1 and making use of a world frame FE with an orthonormal basis FE:OE,XE,YE,ZE represented in world frames. A body frame FB with an orthonormal basis ℱB:OB,XB,YB,ZB is also represented in world frames. Besides six frames ℱr,i:Or,i,Xr,i,Yr,i,Zr,i,i=1,…,6, fixed to the rotors defined, the origin of the frame OR,i is fixed to the motor, XR,i is the tilting axis of the rotor, and ZR,i is opposite to the thrust of the rotor.Figure 1
Frames of the tilting hexacopter.REB∈SO3 is a rotation matrix representing the body frame to the world frame, and it can be written as(1)REB=cosθcosψsinϕsinθcosψ−cosϕsinψcosϕsinθcosψ+sinϕsinψcosθsinψsinϕsinθsinψ+cosϕcosψcosϕsinθsinψ−sinϕcosψ−sinθsinϕcosθcosϕcosθ,and RBr,i is a rotation matrix representing the i−th rotor frame to the body frame and can be written as(2)RBr,i=Rzπ6−iπ3RX−αi,where αi is the tilt angle of the i−th rotor around Xr,i.(3)RZ⋅=cos⋅sin⋅0−sin⋅cos⋅0001,RX⋅=1000cos⋅sin⋅0−sin⋅cos⋅.Or,iB is the frame of Or,i in the body frame:(4)Or,iB=lcos−π6+iπ3lsin−π6+iπ30,i=1,…,6,where l is the distance from the rotor center to the center of mass (COM) of the copter.In this work, we adopt the rigid body kinematics model presented in the following:(5)P˙E=VE,η˙=Wω˙B,where PE=xyzT and VE=uvwT represent the position and the velocity of the aircraft in the world frame, η=ϕθψT is a vector of Euler angles, ωB=pqrT is the rotation rate under the body frame, and(6)W=1tanθsinϕtanθcosϕ0cosϕ−sinϕ0sinϕcosθcosϕcosθ.


## 3.2. Dynamical Modeling

This aircraft is a six degree-of-freedom (DOF) rigid body, and the dynamics model can be derived from the Newton–Eulerian equation [13]. The translation equation is described in the world frame, and the rotational equation is described in the body frame.(7)mI3×3O3×3O3×3JbV˙Eω˙B+0ωB×JbωB=FEMB,where m is the total mass, Jb=diagIxx,Iyy,Izz is the inertia matrix, O3×3 is the zero matrix, and I3×3 is the unit matrix.The forceFE analysis of the aircraft is composed of gravity FmE, the thrust FtE generated by the rotor, wind disturbance FwindE, and air resistance FaeroE that can be written as(8)FE=FmE+FtE+FwindE+FaeroE,where FmE=00mgT and(9)FtE=RBE∑i=16Rr,iBFr,i=REBFr,12sinα1+Fr,2sinα2+Fr,32sinα3−Fr,42sinα4−Fr,5sinα5−Fr,62sinα63Fr,12sinα1+3Fr,32sinα3+3Fr,42sinα4−3Fr,52sinα6Fr,1cosα1+Fr,2cosα2+Fr,3cosα3+Fr,4cosα4+Fr,5cosα5+Fr,6cosα6,where Fr,i is the lift generated by the i-th rotor, which is under the i-th rotor frame.The external torqueMB includes the moment MtB generated by the rotor thrust, the rotor rotation countertorque MantiB, the rotor tilting reverse torque MαB, air resistance MwindB, and the gyro effect MgyroB. So, we have(10)MB=MtB+MantiB+MαB+MwindB+MgyroB.The torque generated by the rotor thrust under the body frame is(11)MtB=∑i=16Or,iB×RBr,iFr,i=lFr,12cosα1+Fr,2cosα2+Fr,32cosα3−Fr,42cosα4−Fr,5cosα5−Fr,62cosα6−3Fr,12cosα1+3Fr,32cosα3+3Fr,42cosα4−3Fr,62cosα6−Fr,1sinα1−Fr,2sinα2−Fr,3sinα3−Fr,4sinα4−Fr,5sinα5−Fr,6sinα6,(12)MantiB=∑i=16RBr,iMr,i=Mr,12sinα1+Mr,2sinα2+Mr,32sinα3−Mr,42sinα4−Mr,5sinα5−Mr,62sinα6−3Mr,12sinα1+3Mr,32sinα3+3Mr,42sinα4−3Mr,62sinα6Mr,1cosα1+Mr,2cosα2+Mr,3cosα3+Mr,4cosα4+Mr,5cosα5+Mr,6cosα6,(13)MαB=Jα3α¨12−3α¨32−3α¨42+3α¨62,α¨12+α¨2+α¨32−α¨42−α¨5−α¨62,0T.Gyro effect terms include two parts caused by attitude changes and motor tilt.(14)MgyroB=Jp∑i=16RBr,iα˙i00+ΩB×−1i⋅RBr,i00ni=Jp−n1cosα1α˙12+q+n2cosα2α˙2+q−n3cosα3α˙32+q−n4cosα4α˙42−q+n5cosα5α˙5−q−n6cosα6α˙62−q−32n1rsinα1+32n3rsinα3−32n4rsinα4+32n6rsinα6−rn1sinα12+rn2sinα2−rn3sinα32−rn4sinα42+rn5sinα5−rn6sinα62+n1cosα132α˙1+p−pn2cosα2+n3cosα3−32α˙3+p−n4cosα4−32α˙4+p+pn5cosα5−n6cosα632α˙6+p12n1sinα1α˙12+q−n2sinα2α˙2+q+12n3sinα3α˙32+q−12n4sinα4α˙42−q+n5sinα5α˙5−q+12n6sinα6α˙62−q+32n1sinα132α˙1+p−32n3sinα3−32α˙3+p+32n4sinα4−32α˙4+p−32n6sinα632α˙6+p.In this paper, as shown in Figure1, the 2, 4, and 6 rotors rotate clockwise, and the 1, 3, and 5 rotors rotate counterclockwise. Therefore, the vector form of the thrust vector Fr,i^ and the antitorque vector Mr,i^ generated by the i-th motor in the corresponding rotor frame system is(15)Fr,i^=00Fr,iT,Mr,i^=00Mr,iT,Fr,i=−ktni2,Mr,i=−kqnj2,i=2,4,6,kqni2,i=1,3,5,kt,kq>0,where kt denotes the rotor thrust coefficient and kq is the antitorque coefficient.


## 3.3. Wind Disturbance Modeling

The wind field has two main effects on the aircraft. First, it affects the aerodynamic effect of the rotor and then affects the air resistance of each windward surface.The aerodynamic analysis of the rotor under windy conditions is shown in Figure2. In the figure, Vw represents the wind velocity, Vt,i represents the rotor induction velocity, and V^ is the vector sum of the wind velocity and the induced velocity. According to the theory of rotor slip flow [25], the velocity calculation formula is as follows:(16)Vt,i=kt⋅ni22ρπr2,where ρ is the air density and r is the radius of the rotor paddle. The total lift of the rotor [25] can be expressed as(17)Fr,i+Fw,i=2πρr2Vt,iVw+Vt,i.Figure 2
Aerodynamic analysis of the rotor under wind.The wind disturbanceFw,i and torque of i-th rotor Mw,i are as follows:(18)Fw,i=ktni2−2ρπr200kfni22ρπr2+RBr,iTREBTVwE,Mw,i=kmktFw,i,i=1,3,5,−kmktFw,i,i=2,4,6.So,(19)FwindE=REB∑i=16RBr,i00Fw,i,MwindB=∑i=16RBr,i00Mr,i.The formula for air resistance is(20)D=12cρSVair2,where c is the air resistance coefficient and Vair is the relative velocity of the aircraft and air. For the aircraft, there is Vair=VwE−VE. When calculating the air resistance of the copter, consider it as a cylinder and take the average windward area S¯ as(21)S¯=σ2πlh+1−σπl2,where σ∈0,1 is the crosswind coefficient and h is the height of the body, so that(22)FaeroE=12cρS¯VairVair.


## 4. Control

The ADRC [24] does not depend on the accurate model of the controlled object, has strong resistance to internal and external disturbances, and has good robustness. The complete algorithm includes the tracking differentiator (TD) [28], extended state observer (ESO) [27], and nonlinear state error feedback (NLSEF) [29]. The standard ADRC structure is shown in Figure 3.Figure 3
Standard ADRC structure.


### 4.1. Controller Structure

The copter is divided into two subsystems, one of which is a full-drive subsystem including a height positionz and a yaw angle ψ, and the other is an underactuation subsystem consisting of a horizontal position x,y, a roll angle ϕ, and a pitch angle θ. Conventional multicopters can only achieve six degree-of-freedom motion in a nonholonomic sense, and they need to change the roll and pitch angles while performing horizontal motion. When designing a controller based on a model-free control technology (such as PID), it is usually only possible to design a controller for the height channel and the yaw channel separately and then design a cascade controller for the underdrive subsystem to output the horizontal channel controller. The attitude angle is expected to be the input of the roll and pitch channel controllers to achieve horizontal position control. The tilting hexacopter in this paper is an overdrive system that can achieve six-degree-of-freedom independent motion, and its ADRC controller can achieve position and attitude control through a six-channel single-loop structure.From equation (1), coupling and tilting angles exist in the three attitude channels of roll, pitch, and yaw, respectively. The ADRC can treat the interaction between different channels and the tilt angle effect as the internal disturbance of the system. The ESO of each channel independently estimates the real-time internal disturbance of the system and the external environmental disturbance such as wind disturbance and air resistance as the control compensation items. Therefore, decoupling independent control of each channel can be realized. And through the control allocation, the desired force and the desired torque in any direction can be directly mapped to the rotor velocities ni and αi so that the controller can be designed as a decoupled six-channel single-loop structure.Rewriting the dynamic model in equation (7) to the form corresponding to the ADRC theory,(23)x¨=f1x,x˙,μ1t+b1U1,y¨=f2y,y˙,μ2t+b2U2,z¨=f3z,z˙,μ3t+b3U3−g,ϕ¨=f4ϕ,ϕ˙,θ,θ˙,ψ,ψ˙,α,α˙+μ4t+b4U4,θ¨=f5ϕ,ϕ˙,θ,θ˙,ψ,ψ˙,α,α˙+μ5t+b5U5,ψ¨=f6ϕ,ϕ˙,θ,θ˙,ψ,ψ˙,α,α˙+μ6t+b6U6.fi⋅ and μit are uncertain parts, and(24)b1=b2=b3=1m,b4=1Ixx,b5=1Iyy,b6=1Izz,UFE=U1U2U3T,UMB=U4U5U6T.


### 4.2. Controller Design

As shown in Figure4, the controller designed in this paper has six single-loop structures and is decoupled from each other.Figure 4
Controller diagram via ADRC.We choose the yaw channel as an example. The details of TD, ESO, and NLSEF in the ADRC controller are given, respectively.(1)
In the TD, we use the given signalψdes as a desired input to arrange the transition process. Figure 4 shows the ADRC structure.(25)e=v1−ψdes,fh=fhane,v2,r,h,v1=v1+hv2,v2=v2+hfh.Fast factorr and filter factor h are adjustable parameters.(2)
In the ESO, the system’s outputψ and input U6 are tracked in real time to estimate the internal state of the system and internal and external disturbances.(26)e=z1−ψ,fe=fale,0.5,δ,fe1=fale,0.25,δ,z1=z1+hz2−β01ez2=z2+hz3−β02fe+b6U6,z3=z3+h−β03fe1,whereβ01,β02,andβ03 are parameters.(3)
And in the NLSEF,(27)e1=v1−z1,e2=v2−z2u0=k1fale1,α1,δ0+k2fale2,α2,δ0,u=u0−z3b6.There are 6 tunable parameters in the NLSEF, namely, compensation coefficientb6, controller gains k1andk2, and nonlinear parameters α1,α2,andδ0.The fastest tracking control synthesis functionfhanx1,x2,r,h and nonlinear function fale,α,δ are expressed as(28)fhanx1,x2,r,h=−rsigna,a>d,rad,a≤d,d0=rh2,y=x1+hx2,a0=d2+8ry,a=x2+a0−d2signy,y>d0,x2+yh,y≤d0.In the actual system, the state of the feedback back-end will contain high-frequency noise, so low-pass filtering is generally done to remove noise. In general, the multirotor dual-loop control strategy requires two low-pass filters to increase the system phase angle lag and reduce the system bandwidth. In our work, the tracking differentiator maintains a phase angle of 90° ahead of the cutoff frequency, reducing the phase angle lag of the controller, and the system bandwidth is strongly correlated with parameterr. By adjusting the parameters, the closed-loop bandwidth is greater than the double-loop.


### 4.3. Control Allocation

The forces and torques that control the movement of the aircraft are mainly the thrust and antitorsion moment generated by the rotor. Combined with equations (2)–(15), the six degree-of-freedom rigid body dynamics model in equation (7) is rewritten as(29)mI3×3O3×3O3×3JbV˙Eω˙B+0ωB×JbωB=FmE+FtE+FwindE+FaeroEMtB+MantiB+MαB+MwindB+MgyroB.DefineUFE=FtE and UMB=MtB+MantiB. Therefore, the relationship between UFE, UMB, the rotor velocity n, and the rotor tilt angle α is defined as UFE=FtE, UMB=MtB+MantiB.(30)REBTUFEUMB=An12n22n32n42n52n62,where(31)A=−kf20−kf0−lkf20−kf20kf0−kf20−32kf000−32kf0−32kf00032kf00−kf0−kf0−kf0−kf0−kf0−kfkm2−lkf2−km−lkfkm2−lkf2km2−lkf2−kmlkfkm2−lkf2−3km32lkf0032km−32lkf−32km−32lkf0032km32lkflkfkmlkf−kmlkfkmlkf−kmlkfkmlkf−km,and A is the control allocation matrix and is constant, independent of the tilt angle αi. Define N as the control quantity, so we have(32)N=A+RBETUFEUMB.By calculating the generalized inverse of equation (32) to calculate the control value, the Moore–Penrose method [30, 31] is selected in this paper to solve. Furthermore, the real control variable rotor speed ni and tilt angle αi can be directly obtained, namely,(33)ni2=Nv,i2+Nl,i2,αi=atan2Nl,i,Nv,i.


## 4.1. Controller Structure

The copter is divided into two subsystems, one of which is a full-drive subsystem including a height positionz and a yaw angle ψ, and the other is an underactuation subsystem consisting of a horizontal position x,y, a roll angle ϕ, and a pitch angle θ. Conventional multicopters can only achieve six degree-of-freedom motion in a nonholonomic sense, and they need to change the roll and pitch angles while performing horizontal motion. When designing a controller based on a model-free control technology (such as PID), it is usually only possible to design a controller for the height channel and the yaw channel separately and then design a cascade controller for the underdrive subsystem to output the horizontal channel controller. The attitude angle is expected to be the input of the roll and pitch channel controllers to achieve horizontal position control. The tilting hexacopter in this paper is an overdrive system that can achieve six-degree-of-freedom independent motion, and its ADRC controller can achieve position and attitude control through a six-channel single-loop structure.From equation (1), coupling and tilting angles exist in the three attitude channels of roll, pitch, and yaw, respectively. The ADRC can treat the interaction between different channels and the tilt angle effect as the internal disturbance of the system. The ESO of each channel independently estimates the real-time internal disturbance of the system and the external environmental disturbance such as wind disturbance and air resistance as the control compensation items. Therefore, decoupling independent control of each channel can be realized. And through the control allocation, the desired force and the desired torque in any direction can be directly mapped to the rotor velocities ni and αi so that the controller can be designed as a decoupled six-channel single-loop structure.Rewriting the dynamic model in equation (7) to the form corresponding to the ADRC theory,(23)x¨=f1x,x˙,μ1t+b1U1,y¨=f2y,y˙,μ2t+b2U2,z¨=f3z,z˙,μ3t+b3U3−g,ϕ¨=f4ϕ,ϕ˙,θ,θ˙,ψ,ψ˙,α,α˙+μ4t+b4U4,θ¨=f5ϕ,ϕ˙,θ,θ˙,ψ,ψ˙,α,α˙+μ5t+b5U5,ψ¨=f6ϕ,ϕ˙,θ,θ˙,ψ,ψ˙,α,α˙+μ6t+b6U6.fi⋅ and μit are uncertain parts, and(24)b1=b2=b3=1m,b4=1Ixx,b5=1Iyy,b6=1Izz,UFE=U1U2U3T,UMB=U4U5U6T.


## 4.2. Controller Design

As shown in Figure4, the controller designed in this paper has six single-loop structures and is decoupled from each other.Figure 4
Controller diagram via ADRC.We choose the yaw channel as an example. The details of TD, ESO, and NLSEF in the ADRC controller are given, respectively.(1)
In the TD, we use the given signalψdes as a desired input to arrange the transition process. Figure 4 shows the ADRC structure.(25)e=v1−ψdes,fh=fhane,v2,r,h,v1=v1+hv2,v2=v2+hfh.Fast factorr and filter factor h are adjustable parameters.(2)
In the ESO, the system’s outputψ and input U6 are tracked in real time to estimate the internal state of the system and internal and external disturbances.(26)e=z1−ψ,fe=fale,0.5,δ,fe1=fale,0.25,δ,z1=z1+hz2−β01ez2=z2+hz3−β02fe+b6U6,z3=z3+h−β03fe1,whereβ01,β02,andβ03 are parameters.(3)
And in the NLSEF,(27)e1=v1−z1,e2=v2−z2u0=k1fale1,α1,δ0+k2fale2,α2,δ0,u=u0−z3b6.There are 6 tunable parameters in the NLSEF, namely, compensation coefficientb6, controller gains k1andk2, and nonlinear parameters α1,α2,andδ0.The fastest tracking control synthesis functionfhanx1,x2,r,h and nonlinear function fale,α,δ are expressed as(28)fhanx1,x2,r,h=−rsigna,a>d,rad,a≤d,d0=rh2,y=x1+hx2,a0=d2+8ry,a=x2+a0−d2signy,y>d0,x2+yh,y≤d0.In the actual system, the state of the feedback back-end will contain high-frequency noise, so low-pass filtering is generally done to remove noise. In general, the multirotor dual-loop control strategy requires two low-pass filters to increase the system phase angle lag and reduce the system bandwidth. In our work, the tracking differentiator maintains a phase angle of 90° ahead of the cutoff frequency, reducing the phase angle lag of the controller, and the system bandwidth is strongly correlated with parameterr. By adjusting the parameters, the closed-loop bandwidth is greater than the double-loop.


## 4.3. Control Allocation

The forces and torques that control the movement of the aircraft are mainly the thrust and antitorsion moment generated by the rotor. Combined with equations (2)–(15), the six degree-of-freedom rigid body dynamics model in equation (7) is rewritten as(29)mI3×3O3×3O3×3JbV˙Eω˙B+0ωB×JbωB=FmE+FtE+FwindE+FaeroEMtB+MantiB+MαB+MwindB+MgyroB.DefineUFE=FtE and UMB=MtB+MantiB. Therefore, the relationship between UFE, UMB, the rotor velocity n, and the rotor tilt angle α is defined as UFE=FtE, UMB=MtB+MantiB.(30)REBTUFEUMB=An12n22n32n42n52n62,where(31)A=−kf20−kf0−lkf20−kf20kf0−kf20−32kf000−32kf0−32kf00032kf00−kf0−kf0−kf0−kf0−kf0−kfkm2−lkf2−km−lkfkm2−lkf2km2−lkf2−kmlkfkm2−lkf2−3km32lkf0032km−32lkf−32km−32lkf0032km32lkflkfkmlkf−kmlkfkmlkf−kmlkfkmlkf−km,and A is the control allocation matrix and is constant, independent of the tilt angle αi. Define N as the control quantity, so we have(32)N=A+RBETUFEUMB.By calculating the generalized inverse of equation (32) to calculate the control value, the Moore–Penrose method [30, 31] is selected in this paper to solve. Furthermore, the real control variable rotor speed ni and tilt angle αi can be directly obtained, namely,(33)ni2=Nv,i2+Nl,i2,αi=atan2Nl,i,Nv,i.


## 5. Experiments

The simulation parameters of the tilting hexacopter are shown in Table2.Table 2
System parameters.
ParametersValueUnitHexacopter’s mass,m2.274kgGravitational acceleration,g9.81m⋅s−2Inertia tensor in thex-axis, Ixx0.516kg⋅m2Inertia tensor in they-axis, Iyy0.516kg⋅m2Inertia tensor in thez-axis, Izz0.982kg⋅m2Lift coefficient,kf3.10e−5—Resistance coefficient,km5.61e−7—Moment of inertia in tilting axis,Jα1.50e−5kg⋅m2Gyro moment coefficient,Jp6.00e−5Air density,ρ1.293kg⋅m−3Average windward area,S¯0.107m2Coefficient of air resistance,c0.08—The tunable parameters of the TD arer and h. The larger the fast factor r is, the shorter the transition process is. The larger h is, the better the filtering effect is, but the phase loss is also increased. The parameters of the ESO affect the effect of disturbance estimation and compensation. They can be adjusted according to the empirical formula. When the sampling frequency is the same, the ESO of the six channels of the omnidirectional controller can adopt the same set of parameters. In the NLSEF, the nonlinear parameters α1,α2,andδ0 have a common satisfaction value, and the compensation coefficient b0 is related to the object model and can also be used as a parameter setting when the model is unknown. k1 and k2 affect the system response velocity; the larger k1, the faster the system response velocity. However, if k1 is too large, it will easily cause overshoot and oscillation. Increasing k2 can suppress oscillation and overshoot, but if k2 is too large, it is easy to brake in advance. This causes the adjustment time to become longer. In the simulation, the control period T=0.001s. After multiple-parameter tuning, each channel parameter of the ADRC controller is shown in Table 3. The parameters for ADRC are adjusted by a learning algorithm [32].Table 3
ADRC controller parameters.
ParametersXyzϕθψTDr2220.5330.5330.533h0.0010.0010.0010.0010.0010.001ESOδ0.020.020.020.020.020.02β01200200200200200200β02500500500500500500β03250025002500250025002500NLSEFb00.440.440.442.0082.0081.0299k115515590140140100k21151151509090100α10.750.750.750.750.750.75α21.251.251.251.251.251.25δ00.20.20.20.20.20.2


### 5.1. Attitude and Position Experiment

Setting the initial positionPinitE=000Tm of the hexacopter, the desired position PdesE=8711Tm and the desired attitude ηdes=101530Tdeg. After reaching the desired position, keep hovering in the desired attitude. Figure 5 shows the flight trajectory, and Figure 6 shows the synchronized attitude curve.Figure 5
Path curve of position-independent control.Figure 6
Orientation curve of attitude-independent control.Compared with the traditional multirotor, Figures5 and 6 show that the tilting hexacopter with ADRC can fly to the target quickly and smoothly and hover at the target point, and its flight path is shorter. At the same time, the aircraft can maintain the attitude change within a very small range. The figures also show that the attitude of the aircraft can reach the expected value quickly. There are no overshoot and oscillation during the adjustment process. The stability control effect is good, and it can maintain the fixed-point hover.


### 5.2. Trajectory Tracking Experiment

In this simulation, the desired position reference involves a circular trajectory. The desired trajectory can be expressed by the following equation:(34)trajectory_des=rsinπ10t−5rcosπ10t−5−5−3,where r is the radius of the circle formed by the trajectory. The aircraft follows a circular trajectory and maintains a height of 3 m on the z-axis.From the results (see Figure7), the controller can track a circular trajectory. At the same time, the steady-state error is very small during the whole tracking process.Figure 7
Trajectory tracking output.


### 5.3. Anti-Interference Experiment

In the actual flight process, the aircraft is often subjected to various disturbances in the external environment, such as wind field disturbances. The wind field disturbance models are mainly Dryden model [33]. In this paper, the Dryden turbulence model is used to simulate the atmospheric turbulence by shaping the standard Gaussian white noise to obtain colored noise. According to Jafar et al. [34], the transfer function of the shaping filter is(35)Gus=KuTus+1,Ku=σuLuπv,Tu=Luv,Gvs=KvTvs+1,Kv=σvLvπv,Tv=2Lv3v,Gws=KwTws+1,Kw=σwLwπv,Tw=2Lw3v,where Lu,Lv,Lw and σu,σv,σw represent turbulence intensities and turbulence scales. Multicopters are mainly low-altitude flights, and the turbulence intensity and scale calculation formula under the flight conditions are shown as(36)Lu=2Lv=h0.177+0.000823h12,Lw=h2,σu=σw0.177+0.000833h0.4,σv=σu0.177+0.000823h0.4,σw=0.1Vh,where Vh is the wind velocity at height h. The turbulent wind simulation module is built in the MATLAB/Simulink environment. The turbulent flow parameters are shown in Table 4. When the continuous wind is added, the turbulent wind field formed is shown in Figure 8.Table 4
Turbulent flow parameters.
ParametersValuex-axis scale factor, Lu110.5y-axis scale factor, Lv55.3z-axis scale factor, Lw7.5x-axis intensity factor, σu0.5y-axis intensity factor, σv0.81z-axis intensity factor, σw1.31Figure 8
Turbulent wind field.The immunity of the ADRC controller under the fixed-point hover is tested under three different wind disturbance conditions and then compared with the PID controller. The PID controller parameters used for comparison are tuned based on particle swarm optimization.(i)
No turbulent wind and no continuous wind(ii)
Turbulent wind and no continuous wind(iii)
Turbulent wind and continuous wind,VwE=2−20Tm⋅s−1Set the initial positionPinitE=000Tm, the initial attitude ηinit=000Tdeg, the desired position PdesE=345Tm, and the desired attitude ηdes=101530Tdeg. The simulation results under the three conditions are as follows.From Figure9, the dynamic performance and steady-state performance of the PID controller are similar to those of the ADRC controller when there is no wind disturbance. In the presence of turbulent wind and no continuous wind (see Figure 10), the PID controller is unable to stably control the aircraft, and the altitude fluctuates continuously above and below the target value. When there is turbulent wind and continuous wind (see Figure 11), the PID controller cannot control the aircraft. Under the same wind disturbance, the ADRC controller can stably control the copter at the target height, and the control effect is almost the same as that without wind disturbance. From Figure 11 that when there is crosswind action, the lift of the rotor will increase more than when there is no wind. The PID controller cannot effectively suppress external disturbances such as wind disturbance. In contrast, the ESO of the ADRC controller can estimate the total disturbance, including wind disturbance in real time and control compensation.Figure 9
Attitude and position without wind.
(a)(b)Figure 10
Attitude and position under turbulent wind and no continuous wind.
(a)(b)Figure 11
Attitude and position under turbulent wind and continuous wind.
(a)(b)All the above simulation experiments verify the effectiveness of the ADRC controller-based tilting six-rotor aircraft flight control system. The results show that the aircraft has omnidirectional motion capability and can independently control the position and attitude. At the same time, under the regulation of ADRC, the aircraft can achieve stable control of the position and attitude. It has the characteristics of small overshoot, short adjustment time, strong robustness, and good external disturbance effect such as estimation and compensation of turbulent wind.


## 5.1. Attitude and Position Experiment

Setting the initial positionPinitE=000Tm of the hexacopter, the desired position PdesE=8711Tm and the desired attitude ηdes=101530Tdeg. After reaching the desired position, keep hovering in the desired attitude. Figure 5 shows the flight trajectory, and Figure 6 shows the synchronized attitude curve.Figure 5
Path curve of position-independent control.Figure 6
Orientation curve of attitude-independent control.Compared with the traditional multirotor, Figures5 and 6 show that the tilting hexacopter with ADRC can fly to the target quickly and smoothly and hover at the target point, and its flight path is shorter. At the same time, the aircraft can maintain the attitude change within a very small range. The figures also show that the attitude of the aircraft can reach the expected value quickly. There are no overshoot and oscillation during the adjustment process. The stability control effect is good, and it can maintain the fixed-point hover.


## 5.2. Trajectory Tracking Experiment

In this simulation, the desired position reference involves a circular trajectory. The desired trajectory can be expressed by the following equation:(34)trajectory_des=rsinπ10t−5rcosπ10t−5−5−3,where r is the radius of the circle formed by the trajectory. The aircraft follows a circular trajectory and maintains a height of 3 m on the z-axis.From the results (see Figure7), the controller can track a circular trajectory. At the same time, the steady-state error is very small during the whole tracking process.Figure 7
Trajectory tracking output.


## 5.3. Anti-Interference Experiment

In the actual flight process, the aircraft is often subjected to various disturbances in the external environment, such as wind field disturbances. The wind field disturbance models are mainly Dryden model [33]. In this paper, the Dryden turbulence model is used to simulate the atmospheric turbulence by shaping the standard Gaussian white noise to obtain colored noise. According to Jafar et al. [34], the transfer function of the shaping filter is(35)Gus=KuTus+1,Ku=σuLuπv,Tu=Luv,Gvs=KvTvs+1,Kv=σvLvπv,Tv=2Lv3v,Gws=KwTws+1,Kw=σwLwπv,Tw=2Lw3v,where Lu,Lv,Lw and σu,σv,σw represent turbulence intensities and turbulence scales. Multicopters are mainly low-altitude flights, and the turbulence intensity and scale calculation formula under the flight conditions are shown as(36)Lu=2Lv=h0.177+0.000823h12,Lw=h2,σu=σw0.177+0.000833h0.4,σv=σu0.177+0.000823h0.4,σw=0.1Vh,where Vh is the wind velocity at height h. The turbulent wind simulation module is built in the MATLAB/Simulink environment. The turbulent flow parameters are shown in Table 4. When the continuous wind is added, the turbulent wind field formed is shown in Figure 8.Table 4
Turbulent flow parameters.
ParametersValuex-axis scale factor, Lu110.5y-axis scale factor, Lv55.3z-axis scale factor, Lw7.5x-axis intensity factor, σu0.5y-axis intensity factor, σv0.81z-axis intensity factor, σw1.31Figure 8
Turbulent wind field.The immunity of the ADRC controller under the fixed-point hover is tested under three different wind disturbance conditions and then compared with the PID controller. The PID controller parameters used for comparison are tuned based on particle swarm optimization.(i)
No turbulent wind and no continuous wind(ii)
Turbulent wind and no continuous wind(iii)
Turbulent wind and continuous wind,VwE=2−20Tm⋅s−1Set the initial positionPinitE=000Tm, the initial attitude ηinit=000Tdeg, the desired position PdesE=345Tm, and the desired attitude ηdes=101530Tdeg. The simulation results under the three conditions are as follows.From Figure9, the dynamic performance and steady-state performance of the PID controller are similar to those of the ADRC controller when there is no wind disturbance. In the presence of turbulent wind and no continuous wind (see Figure 10), the PID controller is unable to stably control the aircraft, and the altitude fluctuates continuously above and below the target value. When there is turbulent wind and continuous wind (see Figure 11), the PID controller cannot control the aircraft. Under the same wind disturbance, the ADRC controller can stably control the copter at the target height, and the control effect is almost the same as that without wind disturbance. From Figure 11 that when there is crosswind action, the lift of the rotor will increase more than when there is no wind. The PID controller cannot effectively suppress external disturbances such as wind disturbance. In contrast, the ESO of the ADRC controller can estimate the total disturbance, including wind disturbance in real time and control compensation.Figure 9
Attitude and position without wind.
(a)(b)Figure 10
Attitude and position under turbulent wind and no continuous wind.
(a)(b)Figure 11
Attitude and position under turbulent wind and continuous wind.
(a)(b)All the above simulation experiments verify the effectiveness of the ADRC controller-based tilting six-rotor aircraft flight control system. The results show that the aircraft has omnidirectional motion capability and can independently control the position and attitude. At the same time, under the regulation of ADRC, the aircraft can achieve stable control of the position and attitude. It has the characteristics of small overshoot, short adjustment time, strong robustness, and good external disturbance effect such as estimation and compensation of turbulent wind.


## 6. Conclusion

The focus of this paper is on a tilting hexacopter with an omnidirectional motion. The effects of large-scale uncertainty, parameter perturbation, strong coupling, and external environmental disturbances on the system are analyzed. Based on the aerodynamic influence and linearization control distribution matrix, a flight controller based on ADRC is designed and implemented. Independently controlled by the position and attitude with wind disturbance experiments compared with PID, the auto-disturbance suppression controller designed in this paper improves the antidisturbance capability of the hexacopter aircraft. In future work, we will design and manufacture tilting hexacopter based on open-source hardware, such as Pixhawk. At the same time, we will add more experiments, including control under failure conditions (rotor breakage, motor stalling, etc.).



---

*Source: 9465153-2020-10-13.xml*