Keywords

1 Introduction

The quadrotor seems to be the most popular type of rotorcraft UAV configuration, being recently investigated by a vast amount of companies, research institutes and universities [13]. There are several reasons for this fact. There is a great interest in small, unmanned flying vehicles for both civil and military applications, and this type of vehicle provides unique capabilities of hover, vertical and horizontal flight in all directions; its controlling is simpler comparing to other rotorcraft configurations; the cross-couplings between the various degrees of freedom are not so severe as in single rotor helicopters. It is relatively easy to design control system using simple classical control algorithms. A quadrotor may also be an efficient, versatile testbed for control and navigation algorithms and operation of various types of payload [46].

Many papers were focused on development and analysis of quadrotor stability and control systems. Various methods such as H infinity [7], LQR [8, 9], sliding mode [10, 11], backstepping [10, 12], reference model [1315] or PID [2, 9] were investigated at quadrotors for their robustness [16, 17], fault tolerance [18] and affordability [7] to stabilise and control of the vehicle. The control system design and validation usually was done using simple dynamic model of quadrotor where rotor thrust and torque were modeled as linear terms expressed as function of the square of rotor angular velocity [9, 13, 14, 18, 19]. This simplification allows to validate model only for hovering conditions and controllers, which were developed based on it, provide poor performance in a real application [2, 8, 9] especially for high forward velocity and for rapid maneuvers. The nonlinear complex rotor model is needed to develop and validate the quadrotor control system, which will guarantee the good stability and controllability performance for all flight regimes and fully exploit the advantages of this rotorcraft configuration. Two quadrotor simulation models were develop: a comprehensive nonlinear and simplified linear, needed for real time operation in simulator.

This research was part of the project aimed to investigate application of a quadrotor indoor and in urban environment. Operation in such conditions is hazardous due to proximity of obstacles and turbulences produced by the quadrotor rotors, so it requires robust flight control system which will provide precise handling. The enhanced classical PID control method is presented in this paper. The control law enhancement methods applied additional couplings including the rotor model techniques, to improve the control quality for high speed and rapid maneuvers.

The quadrotor model with flight control system was tested on UAV simulator. The simulator platform is a multiuse hardware and software testbed, developed by WUT research team. The simulator has a functionality of software reconfiguration and may be connected to real hardware, which makes it very useful platform for any new algorithm and mobile platform tests. The simulator is composed of advanced hardware components: visual system, generic stand (panel) of vehicle operator, instructor stand operated by computing hardware. The simulator has no motion system for the platform, which is not necessary for simulators of unmanned vehicles.

For quadrotor implementation, some software modifications were made, so the dynamic and control models may be uploaded fast and easily. Simulator accepts now Matlab/Simulink™ models, so they can be easily debugged and upgraded outside simulator.

2 Quadrotor Simulation Model

The quadrotor simulation model was developed under two main constraints: a requirement for a real-time operation in simulator for training of rotorcraft operators and modeling of complex aerodynamic interactions of the propellers and obstacles. These requirements led to modeling of the vehicle in two steps. First one was development of comprehensive models of propellers loads which were validated using data from full scale experimental test. Then, validated propeller loads were used to generate multivariable maps of loads which were applied in the 6 DOF quadrotor dynamic model.

The main assumptions for dynamic model development were:

  • quadrotor is axially symmetric,

  • quadrotor is controlled in “x” configuration,

  • rotation axes of rotors are parallel to the body vertical axis of symmetry,

  • all parts of the quadrotor are rigid,

  • mass of the vehicle is constant,

  • induced velocity is modeled with the Glauert formula for forward flight,

  • equations of motion describe the motion of the body center of mass.

The main coordinate systems used in the model development are shown in Fig. 1.

Fig. 1
figure 1

The main coordinate systems used in the quadrotor dynamic model

Using assumptions above, nonlinear equations of quadrotor motion in \(0_{b} x_{b} y_{b} z_{b}\) coordinate system were formulated in a general form [20, 21]:

$${\mathbf{I}}_{{\mathbf{p}}} {\dot{\mathbf{x}}} = {\mathbf{f}}_{I} \left( x \right) + {\mathbf{f}}_{{{\mathbf{GK}}}} \left( {\mathbf{y}} \right) + {\mathbf{f}}_{{{\mathbf{AK}}}} \left( {{\mathbf{x,y}}} \right) + {\mathbf{f}}_{{{\mathbf{AW}}}} ({\mathbf{x}},\delta_{i} ),$$
(1)
$${\dot{\mathbf{y}}} = {\mathbf{Tx}}$$
(2)

where \({\mathbf{x}} = \left[ {\begin{array}{*{20}c} U & V & W & P & Q & R \\ \end{array} } \right]^{\text{T}}\)—state vector composed of linear velocities and angular rates, \({\mathbf{y}} = \left[ {\begin{array}{*{20}c} {x_{g} } & {y_{g} } & {z_{g} } &\Phi &\Theta &\Psi \\ \end{array} } \right]^{{\,{\text{T}}}}\)—vector describing position coordinates and angles of attitude, δ i ith engine control signal, I p —inertia matrix, \({\mathbf{f}}_{I} \left( x \right)\)—inertia loads, \({\mathbf{f}}_{{{\mathbf{GK}}}} \left( {\mathbf{y}} \right)\)—gravity loads, \({\mathbf{f}}_{{{\mathbf{AK}}}} \left( {{\mathbf{x,y}}} \right)\)—fuselage aerodynamic loads, \({\mathbf{f}}_{{{\mathbf{AW}}}} \left( {{\mathbf{x,}}{\varvec{\updelta}}} \right)\)—rotors aerodynamic loads, T—transformation matrix in kinematic equations [20, 21].

The gravity loads are calculated in a standard way for the 6 DOF mobile rigid object. It was assumed that the fuselage generates only drag force and the drag force coefficients were calculated using simple geometrical model of the fuselage for given inflow velocity, angle of attack and bank angle. The main effort in quadrotor modeling was dedicated to obtaining verified loads generated by propellers. The total vector of propeller loads f AW is a sum of loads generated by each rotor, transferred to the body coordinate system.

$${\mathbf{f}}_{{{\mathbf{AW}}}} \left( {{\mathbf{x,}}\delta_{i} } \right) = \sum\limits_{i = 1}^{4} {{\mathbf{f}}_{{{\mathbf{AWi}}}} \left( {{\mathbf{x,}}\,\delta_{i} } \right)}$$
(3)

In a general case, vector (3) consists of three components of a force and three components of a moment. The quadrotor propellers are sources of lift force, propulsion force and control forces and moments. This is why proper modeling of these loads is crucial for the quadrotor model fidelity. Several various models of propeller loads may be found in literature. The simplest models describe only thrust and torque, more complex ones contain also drag. The models differ also due to methods of calculating forces and moments. The simplest models [9] describe rotor thrust and torque as quadratic functions of rotor angular velocity. More complex models take into account variation of inflow and induced velocities in different flow states [6]. Quite often the constant coefficients of the loads functions, independent of the flight conditions, are calculated using the static thrust and torque measurements. Such an approach leads to simple and effective models, however, these models are valid only for hover. Comparison of rotor thrust and torque calculated using such model with the results of measurements performed in WUT wind tunnel is presented in Figs. 2 and 3 for various inflow velocities.

Fig. 2
figure 2

Rotor thrust versus rotor angular speed for various inflow velocities

Fig. 3
figure 3

Rotor torque versus rotor angular speed for various inflow velocities

Axial inflow positive velocities W appear for instance when a quadrotor is climbing vertically. In results presented, rotor thrust is very sensitive to variation of inflow velocity, so keeping thrust constant for all inflow velocities results in a significant overestimation, even for axial flight. It can be also noticed that the rotor torque is not so much sensitive and axial inflow velocity variations do not change it very much.

Not only quadrotor linear velocities contribute to change of inflow velocities. Propellers are placed not in the quadrotor center of gravity (Fig. 4) so also body angular rates may contribute to inflow velocities:

$${\mathbf{v}}_{{{\mathbf{ti}}}} = {\mathbf{v}}_{{\mathbf{b}}} + {\varvec{\upomega}}_{{\mathbf{b}}} \times {\mathbf{r}}_{{{\mathbf{ti}}}}$$
(4)

where \({\mathbf{v}}_{{\mathbf{b}}} ,\,{\varvec{\upomega}}_{{\mathbf{b}}}\)—vectors of quadrotor velocities and rates in the body reference frame, \({\mathbf{r}}_{{{\mathbf{ti}}}}\)—position vector of a propeller in the body reference frame (Fig. 4).

Fig. 4
figure 4

Propeller velocity vector in body reference frame

Neglecting this effect for the quadrotor, which is a very agile vehicle, limits simulation model to hover and low speed flights. As another effect resulting from (4) in a maneuver flight, each rotor is subjected to different inflow and thus generates different loads.

These observations were taken into account in the WUT developed model. The quadrotor propellers loads consist of a full set of six components—three forces and three moments of forces, calculated using Blade Element Method. First, the velocities at the blade cross-section are expressed as functions of body linear velocities and angular rates, including also velocities resulting from rotors angular velocities and induced velocity. The induced velocity is modeled using Glauert formulae with corrections for forward flight [21]. Then the total flow velocities are used to calculate lift and drag forces acting in a blade cross-section, taking into account blade chord, twist, and lift and drag coefficients of the airfoil. In the next step the six components of the rotors loads are calculated by integrating forces and moments along the blade span. Sample results for 15 × 4″ propeller, for the case of inflow with velocities U = 5 m/s and W = 5 m/s are presented in Fig. 5.

Fig. 5
figure 5

Loads of a 15 × 4″ propeller, for inflow velocities U = 5 m/s, W = 5 m/s

The model of the propellers loads was validated against experimental data from WUT wind tunnel. In this case, the test stand allowed to measure thrust and torque only. The validation was done through correction of the aerodynamic coefficients of the blades airfoils. The selected 15 × 4″ propeller’s geometry has been scanned using 3D scanning. The blade was divided into four sections along the span and in each section blade airfoils were assumed to be constant. Using published data for these airfoils, aerodynamic coefficients for these four airfoils were obtained. Then, the lift and drag coefficient were adjusted to match measured thrust and torque. In Figs. 6, 7, 8 and 9 thrust and torque characteristics are shown before and after validation process. The most important case of validation was the test point close to rotor angular velocity 600 rad/s, which was the design hover point for the quadrotor in this research.

Fig. 6
figure 6

Thrust characteristic before validation

Fig. 7
figure 7

Torque characteristics before validation

Fig. 8
figure 8

Thrust characteristics after validation

Fig. 9
figure 9

Torque characteristics after validation

This approach to loads correction was also checked in other inflow cases and was proven to give adequate good results.

The adjusted airfoils coefficients were used to calculate all six components of the rotor aerodynamic loads. But implementing the developed models of aerodynamic loads into Blade Element Method did not allow for a real-time computations needed in simulator. The reason was, that integration along blades and iterations of the induced velocities done separately for each rotor, took a long time.

It was decided to develop the simulation model in two steps using so called loads maps. In the first step, the comprehensive model of rotor loads was used to calculate components of aerodynamic loads for an assumed range of inflow velocities (horizontal and perpendicular to the plane of rotation) as a function of rotor angular speed. All components of aerodynamic loads were stored in 3D arrays. These arrays were used in a real-time simulation model. Actual aerodynamic loads of each rotor were interpolated for a given state (rotor angular velocity, inflow velocity, angle of attack, and bank angle). Such a solution allows real time operation of the quadrotor model.

However, it turned out that in some situations the interpolations also took too much time for real time calculations. To improve the efficiency of the simulation it was decided to use only four components of propellers loads: thrust, drag, and torque and rolling moment, as values of the rest two components were at least one order of magnitude lower. These simplification assured a real-time operation of a quadrotor model with flight control system at all tested flight cases.

3 Quadrotor Flight Control System

The flight control system for unmanned quadrotor consists of ground Control Station and onboard Autopilot, Fig. 10. The Control Station calculates and sends demanded values of controls to on-board autopilot via wireless communication. The Autopilot generates control signals to quadrotor rotors depending on the demanded and measured values of flight parameters. The control signal is organized as a vector Ω, which components are the required values of rotors angular velocities.

Fig. 10
figure 10

Quadrotor flight control system structure

The control system operates in semiautonomous mode. An operator of a quadrotor sets demanded values of quadrotor linear velocities and azimuth via Control Station. The signals are send to the autopilot, which controls the quadrotor attitude and lift to ensure demanded flight conditions. The longitudinal and lateral velocity are controlled by the pitch and roll angles. The control of flight level is obtained by the vertical speed variation. If the demanded value of vertical speed is equal to zero the altitude controller holds actual flight level.

The overall autopilot structure is shown in Fig. 11. It consists of three main blocks: Velocity Control, Attitude Control and Control Signal Formation. The control signal is a vector of demanded rotors angular rates:

$${\varvec{\Omega}} =\Omega _{\text{H}} \left[ {\begin{array}{*{20}c} 1& 1& 1& 1 \\ \end{array} } \right]^{T} + {\varvec{\Omega}}_{{\mathbf{D}}} .$$
(5)

The control signal Ω is calculated as a increment of rotors angular rates Ω D relative to hovering condition ΩH. The inherent feature of quadrotor is that lift and control loads are produced only by changing angular velocities of rotors. The rotor thrust, expressed as function of the rotor angular rate, is divided into lift and attitude parts. The lift part provides the altitude control whereas the attitude part guarantees maneuverability.

Fig. 11
figure 11

Autopilot structure

The demanded values of rotors angular velocities are calculated in CSF block as:

$${\varvec{\Omega}}_{{\mathbf{D}}} = w_{\Omega } \cdot {\varvec{\Omega}}_{{\mathbf{O}}} + \left( {1 - w_{\Omega } } \right) \cdot {\varvec{\Omega}}_{{\mathbf{C}}} ,$$
(6)

where \({\varvec{\Omega}}_{{\mathbf{O}}}\) is a collective control signal used for altitude control, \({\varvec{\Omega}}_{{\mathbf{C}}}\) is a cycling control signal comes from attitude controllers, and a weighting coefficient \(w_{\Omega }\) expresses the portion of rotor thrust that is allocated for lift control.

The Attitude Control block contain three independent controllers for pitch, roll and yaw angles. The yaw angle controller is based on PID control law. The pitch and roll controllers have identical PD control laws but the output signals are distributed to the rotors in a different way. The output signals vector of AC block, named cycling control signal, is a sum of output signals of all controllers distributed according to the selected quadrotor configuration:

$${\varvec{\Omega}}_{{\mathbf{C}}} = u_{\Phi } \left[ {\begin{array}{*{20}c} { - 0.33} \\ { - 0.33} \\ {0.33} \\ {0.33} \\ \end{array} } \right] + u_{\Theta } \left[ {\begin{array}{*{20}c} {0.33} \\ { - 0.33} \\ { - 0.33} \\ {0.33} \\ \end{array} } \right] + u_{\Psi } \left[ {\begin{array}{*{20}c} { - 0.34} \\ {0.34} \\ { - 0.34} \\ {0.34} \\ \end{array} } \right],$$
(7)

where \(u_{\Phi } ,\,u_{\Theta } ,\,u_{\Psi }\) are output signals from roll, pitch and yaw controllers.

The Velocity Control block contains controllers for horizontal (longitudinal and lateral) velocities and flight level. The longitudinal and lateral controllers are based on PID control laws with adaptive integral coefficients, and provide demanded values for pitch and roll control signals, which are sent to the Attitude Control block as an \({\varvec{\Gamma}}_{{\mathbf{D}}}\) vector. The flight level controller contains altitude and vertical speed control laws. The classical P altitude control law produces demanded value for PID vertical speed control law. The demanded value of vertical speed can also comes from an operator, when it is not zero. The vertical speed controller provides the collective control vector \({\varvec{\Omega}}_{{\mathbf{O}}}\):

$${\varvec{\Omega}}_{{\mathbf{O}}} = u_{W} \left[ {\begin{array}{*{20}c} 1 & 1 & 1 & 1 \\ \end{array} } \right]^{T} .$$
(8)

The tests of quadrotor flight control system were performed using UAV simulator. The tests were focused on capability of indoor flight especially in confined areas such as rooms, corridors and stairways. The tests results revealed significant disturbances of altitude and azimuth during horizontal acceleration and deceleration. The detailed analysis indicated that the disturbances resulted from non uniform and asymmetric variations of thrust of rotors. In the next tests the flight level and azimuth controllers were improved. An additional attitude feedback loop was applied to compensate fluctuations in altitude, which were mainly caused by the rotors inclination angle, Fig. 12. The rotors angular velocity increment Δω was then calculated using actual rotor attitude gained by factor \(k_{\gamma }\) to fit with actual controller settings. The constant altitude in a forward flight is possible if a rotor thrust T F at specific inclination angle γ (Fig. 13) fulfills the condition:

$$T_{F} \,\cos \left( \gamma \right) = T_{H} ,$$
(9)

where T H is the rotor thrust at hovering conditions. The inclination angle can be estimated as:

$$\cos \gamma = \cos\Phi \cos\Theta \text{.}$$
(10)

If a rotor thrust is expressed as a square of function of rotor angular rate:

$$T_{i} = C_{T}\Omega _{i}^{2} ,$$
(11)

where C T is thrust constant, and the relationship between rotor angular rates at hover and forward flight conditions are:

$$\Omega _{F} =\Omega _{\text{H}} + {\Delta \Omega ,}$$
(12)

then the Eq. (9) can be rewritten as:

$$\left( {\Omega _{\text{H}} + {\Delta \Omega }} \right)\cos \left( \gamma \right) =\Omega _{\text{H}} .$$
(13)

The increment of rotor angular rates ΔΩ for forward flight calculated as:

$${\Delta \Omega } = \left( {\frac{{\sqrt {\cos \gamma } }}{\cos \gamma } - 1} \right)\Omega _{\text{H}} .$$
(14)

The azimuth controller was enhanced by additional attitude feedback loop (Fig. 14). The product of pitch and roll angles with washout filter WoF are used to compensate an azimuth disturbances caused by attitude change. The \(k_{wf}\) coefficient is used to gain the signal of enhancement part.

Fig. 12
figure 12

Enhanced flight level controller structure

Fig. 13
figure 13

Rotors thrusts in forward flight

Fig. 14
figure 14

Enhanced azimuth controller structure

The simulation tests of quadrotor flight control system were performed to investigate enhanced controller performance using the quadrotor dynamics model from Chapter “The Method of Guaranteeing the Separation Between the Recognised Object and Background”. The maneuver was to accelerate and to decelerate quadrotor at constant altitude and azimuth. The autopilot was set to hold constant values of flight level and azimuth, while both pitch and roll angles were increased to 45°, and after 10 s decrease to 0 (Figs. 15 and 16). The quadrotor have accelerated to 19 m/s of horizontal velocity at inclination angle of 60° and then without using thrust decelerate to the 0 m/s (Figs. 17 and 18). The quadrotor flight was smoother while the enhancement controllers were applied. The variation of altitude and azimuth were significantly reduced (Figs. 19 and 20). Integral Square Errors (ISE) are much lower for enhancement controllers (Table 1). The overshoots and disturbances in pitch and roll angles, and velocities were also compensated. The test results indicate that the proposed enhancements of quadrotor control system considerably improved its flying qualities. Altitude and azimuth disturbances were larger in deceleration than in acceleration flight phase. It resulted from different flight velocity in both cases, which significantly influenced quadrotor performances. That is why an additional flight velocity coupling should be considered to avoid such inconveniences.

Fig. 15
figure 15

Roll angle for basic and enhanced autopilot

Fig. 16
figure 16

Pitch angle for basic and enhanced autopilot

Fig. 17
figure 17

Horizontal velocity for basic and enhanced autopilot

Fig. 18
figure 18

Inclination angle for basic and enhanced autopilot

Fig. 19
figure 19

Altitude for basic and enhanced autopilot

Fig. 20
figure 20

Azimuth angle for basic and enhanced autopilot

Table 1 Integral square errors

4 Conclusions

A quadrotor model with a flight control system was developed and tested in a UAV simulator. The quadrotor simulation model contains 6 DOF and a comprehensive model of rotor aerodynamic loads, based on experimental data gathered during wind tunnel tests. The deficiencies of a wind tunnel measuring equipment (only thrust and torque might be measured) were overcame by a special correction procedure. A real time simulation capability was obtained by adequate assumptions based on airloads orders of magnitude.

The quadrotor autopilot control system was developed to cooperate with a nonlinear dynamic model and nonlinear rotor aerodynamic loads. The method of PID control laws enhancement was applied based on a simple model of rotor thrust and additional state variables couplings, for compensation of variation of a quadrotor dynamics. The improved control system provides better quadrotor performance for high speed flights and rapid maneuvers.

The nonlinear quadrotor model with autopilot was implemented to the UAV simulator and allows to simulate and investigate the control system quality.