Control Methods for Quadrotor’s Stability

Quadrotor unmanned aerial vehicle (UAV) has become more and more popular due to its high maneuverability, vertical take-off, landing and hovering capability, and ease of operation. However, it is subject to various disturbances during the flight, such as turbulence. This paper provides a comprehensive survey of control methods proposed for quadrotor stability. According to the relationship between the controller and the controlled model, this paper divides the quadrotor stability control methods into three categories, namely classical control, optimal control, and intelligent control, for detailed discussion.

. Configuration of the quadrotor in the earth frame  3 The coordinate systems including the body-frame B and the earth frame E.as well as the propeller numbering convention for the quadrotor are shown in Fig. 1. The transformation matrix from the body-fixed frame to the earth-fixed frame can be obtained based on Euler angles and the rotation matrix R EB .
A quadrotor has two types of motions, translational motion, and rotational motion. The translational motion involves (x,y,z), and the rotational motion involves (Φ,θ,ψ), and they describe the position and orientation of a quadrotor, respectively.
As for translational motion, the equations can be obtained easily: Where K i , i=1,2,3, represents the drag coefficient from the air in corresponding directions respectively. F x , F y , F z describe the resultant force generated by rotors in the earth-fixed frame. They can be obtained by transforming the forces defined in the body-fixed frame to the earth-fixed frame as: Where F B represents the forces provided by rotors defined in the body-fixed frame. And F i represents the trust force provided by rotor i, n=4, quantified by where b is the trust factor and is the speed of rotor i. Where the abbreviations S(.) and C(.) are used for sin (.) and cos(.), respectively. Substitute (2) into (1), then we get the translational model as formula (3). Where U 4 is the net body force. As for rotational motion, according to geostatics and Euler's equation, we can get the quadrotor's rotational model: Where K i , i=4,5,6, has the same meaning as mentioned above. I x , I y , I z are the mass moments of inertia in the x, y, and z axes, respectively; J is the rotor inertia; and U i , i=1,2,3,4, represents the inputs of a quadrotor's control system, where U 1 , U 2 , U 3 are the body moments which can be expressed according to the rotor speeds.
Combining the translational model and rotational model, we obtain the model of the quadrotor. From the mathematical model, the quadrotor is found to be difficult to control mainly because of its following attributes: (1) under-actuated. A quadrotor has six degrees of freedom (namely, x, y, z, , , ) while it only has four inputs (namely, U 1 , U 2 , U 3 , U 4 ). (2) nonlinear. The translational equations contain trigonometric functions with the rotational angles as independent variables. (3) multiple and close-coupling variables. A quadrotor's rotational angles serve as independent variables of the translational equations. The rotational angles also affect the output of each other. Combined with the quadrotor's complicated application environments, these attributes of the quadrotor result in the difficulty of the quadrotor's stability control. In the next three sections, this paper will discuss several stability control methods for a quadrotor.

Classical control (PID control)
PID control is the core theory in classical control theory. Even if compared with many new control methods, a conventional PID controller often has poor performance in some index, it is still the most widely used control method in engineering applications because of its simple structure [14]. PID controller forms a deviation according to the given value and the actual output value : . The proportional (P), integral (I), and derivative (D) of the deviation are linearly combined to form a controlled quantity to control the controlled object. The control law is: The transfer function is: Where is the proportional coefficient, T i is the integral time constant, and is the differential time constant; / is the integral coefficient; is the differential coefficient. In the practical application, it is often necessary to improve the classical PID algorithm to achieve better control for the multivariable system of quadrotor.PID algorithm is often improved and applied in the stable flight control of quadrotor.In [15], Jun Li et al. designed a PID controller to adjust the position and direction of the quadrotor. The control system has a small overshoot, almost zero steadystate error, and fast system response speed, which shows that the PID controller can stabilize the quadrotor's attitude. In [16], Atheer L. Salih et al. designed multiple PID controllers for a dynamic model of an under-actuated aircraft with a fixed four-blade pitch rotor. Using this method as a recursive algorithm for control law synthesis simplifies all calculation stages involving tracking errors and speeds up the response of the quadrotor.

Optimal Control
Optimal control makes performance indicators for optimization. Because the performance index of optimal control depends on the model, its application is limited to systems with known models. Although it has certain limitations, it solves the problem that PID control can only be applied to linear systems. Therefore, it is widely used in the stability control of quadrotors.

Gain scheduling control
A gain scheduling controller is a controller whose gains are automatically adjusted as a function of time, operating condition, or plant parameters. The adjusting process is accomplished by a gain schedule module that makes decisions according to the system's output. A control system block diagram with a gain scheduling mechanism is shown in Figure 2 [17]. A PID controller complemented by a gain-scheduled mechanism is called a gain-scheduled PID controller (GS-PID). It divides a total working space into multiple operating points and tunes PID controllers for each of these operating points. Then, it can choose a suitable PID controller when working point changes. Flight control is one of the most typical GS-PID applications due to the satisfying performance of GS-PID when controlling nonlinear time-varying systems.
Moreover, GS-PID can also deal with the emergency where an aircraft encounters disturbances or faults. Therefore, GS-PID is often deployed to achieve the auto-disturbances rejection or fault-tolerant of a quadrotor. This paper takes fault-tolerant control as an example. To implement GS-PID on quadrotor, the following steps should be obeyed:  Step 1. Design a PID controller for the normal working state of the quadrotor.
Step 2. Conduct a series of experiments where different faults are exerted. For example, exerting a fault with 50% on all four motors or exerting a fault whose percentage is 70% on each pair of motors. For each of these fault situations, find the optimal modified gain of the controller [18].
Step 3. Based on the information from Step 2, we design a set of PID controllers with different parameters, each of which can deal with a certain fault situation.
Step 4. In order to detect and diagnose the fault situation during an actual flight, we need to build a Fault-Detection and Diagnosis(FDD) block. It is implemented based on the OptiTrack visual feedback, which can measure the error between the actual height of a quadrotor and the desired height [17].
Step 5. The detections and diagnoses from the FDD block are provided for subsequent switch units in the GS-PID block to choose a suitable PID controller from a set of PID controllers, which are pretuned in Step 3, to switch to.
Compared with a single PID, the GS-PID controller can achieve better performance in fault situations by increasing the quadrotor's performance in tracking the desired trajectory and increasing fault tolerance capability and reliability of the quadrotor. Moreover, when more severe faults occur, the advantages of GS-PID will be demonstrated even more according to relative experiments. In the future, faster fault detection, controller switching, and more comprehensive FDD schemes will be focused on research.

Sliding mode control (SMC)
SMC is a nonlinear control method that applies a discontinuous control signal to the system to compel its states to slide along an anticipative trajectory. It adjusts the control system's structure based on the deviation between the actual trajectory and the prescribed trajectory. Firstly, it designs a sliding surface, according to the control target, on which the system's state will slide until reaching the target point and staying there. Then, it designs the controller according to three requirements: the existent of the sliding mode, the accessibility of the sliding surface, the stability of the sliding motion. The control function is often a piecewise function to achieve variable-structure control. When applied to control the quadrotor, the block diagram is shown in Figure 3 [19]. Type1: Control only part of a quadrotor's motion degrees in different work situations. For instance, we only control the height describe by z, and roll angle described by Φ of a quadrotor in VTOL situation [20]. In this case, SMC is applied to control z and Φ, respectively.
Type2: Control the total flight motion of a quadrotor by subdividing the quadrotor system into the fully-actuated and under-actuated systems. The fully-actuated subsystem is often chosen as the control of a quadrotor's (z, Φ), which echoes type1. The under-actuated system, which has four outputs while only two inputs, can be transformed into a class of cascaded under-actuated subsystems with a coordinate transformation [21]. Actually, type2 can be regarded as an extension of type1 by providing a method to control an under-actuated subsystem.
No matter how SMC is applied, its peculiar characteristic is obvious, which includes insensitivity to parameter variations and complete rejection of disturbances [22].

H∞ control
H∞ control is a control theory in which the controller is obtained by optimizing the infinite norm of the transfer function in the H space. It is one of the most popular robust control techniques applied on the quadrotor's stability control, specifically the quadrotor's rotational motion control, due to its satisfying ability to deal with the interferences a quadrotor might overcome, such as wind gusts. An H ∞ controller on a quadrotor can be summed up as a feedback system, aiming to achieve the stability of a quadrotor's attitude closed-loop control system by making the H∞ norm of transfer function array minimum less than an appointed value [23]. Considering the initial H∞ controller is deployed on a linear system, there are two directions to apply H∞ control on a quadrotor's control. One is linearizing the quadrotor's model and then applying a linear H∞ controller on it. A frequently-adopted linearize method is feedback linearization. In [24], Mokhtari et al. combined H ∞ control and feedback linearization to achieve the stability of the quadrotor in the trajectory-following problem. The other is introducing nonlinear H∞ control. Nonlinear H∞ control, well elaborated in [13], replaces the Riccati equations in linear H∞ control with two Hamilton-Jacobi-Bellman-Isaacs PDEs. Combined with other control strategies for the quadrotor's translational motion such as backstepping theory [13] or model predictive control [25], nonlinear H∞ control is used to control the quadrotor's rotational movement and enables the quadrotor to be attitude-robust.

Linear quadratic regulator control(LQR)
LQR controller is an optimal controller with robustness and regulator characteristics. It produces a steady-state minimum error and can quickly resolve errors in the system [26]. Therefore, the system can remain stable in the face of environmental disturbances.
The main feature of the LQR controller is that it introduces a cost function, adds the control amount to the cost function, and uses mathematical algorithms to find the set value that minimizes the cost function, reducing the engineering effort to optimize the controller.In [26], Oktaf Agni Dhewa et al. used the LQR method to design a quadrotor control system to obtain the best feedback gain K value in the hovering state. The experimental results show that the system response of the quadrotor in the hovering state has good stability, which shows that the LQR controller has good robustness. And proposed LQR methods will be combined using the integrator concept to improve the stability of the quadrotor. In [14], Shahida Khatoon et al. compared the classic PID controller with the classic LQR controller. The simulation results show that both controllers provide satisfactory feedback for the stability of the quadrotor. The results show that the LQR controller has better performance and robustness than the PID controller, and it is a better comparative controller.

Adaptive control
The adaptive control system refers to a kind of control system which has self-organization capability. Under this definition, most of the modern and intelligent control methods mentioned above belong to adaptive control methods. Therefore, adaptive control is a broad concept that cannot be juxtaposed with other control methods but still listed here as a subsection out of habit. Adaptive control can be divided into two categories: model reference adaptive control and self-tuning control.
Model reference adaptive control (MRAC) is a control method that designs an adaptive mechanism to make the controlled object's dynamic characteristics and the known reference model as close as possible. Monopoli et al. proposed a model reference adaptive control method based on the Lyapunov direct method to solve the problem of unmeasurable system state. They introduced an augmented error signal, namely the difference between the controlled plant and the reference model, and verified it to be useful in designing a stable adaptive control system. This method inspired lots of MRAC methods for quadrotor stability control. The block diagram of the model reference adaptive system they proposed is shown in Figure 4 [26].  When utilized to control a quadrotor's stability, a combined model reference adaptive control approach, which used both prediction and error to make adjustments and was an improved version of classical MRAC, was proposed by Zachary et al., which can offer increased robustness to parametric uncertainties [28]. In work [29], the MIT rule is used to design the MRAC for quadrotor's height hold and trajectory tracking, and improve its fault-tolerance at the same time.
As for self-tuning adaptive control, most modern and intelligent control methods, such as gain scheduling control, NN control, can fall into this category. For instance, in the work by Palunko et al., an adaptive control scheme using feedback linearization (FBL) is implemented [30] for quadrotors with dynamic changes in the center of gravity. Another adaptive control technique based on rectilinear distance norm was used in [31] with a tradeoff between control performance and robustness. The modified model was able to compensate for constant wind disturbance.

Backstepping control
Backstepping is a recursive control method that is suitable for both linear and nonlinear systems. For nonlinear system design, a stable system controller can be designed. Its main idea is to obtain the feedback controller by recursively constructing the Lyapunov function of the closed-loop system, and the control law is selected so that the derivative of the Lyapunov function along the trajectory of the closed-loop system has a certain performance, ensure that the trajectory of the closed-loop system is bounded and converges to the equilibrium point. This method has a small amount of calculation, fast adjustment time, and great flexibility in dealing with under-driving problems with strict negative feedback. In the quadrotor's flight control, it can handle the interference well and ensure the stability.
In [32], Samir Bouabdallah and Roland Siegwart designed an anti-stepping controller for the underdrive system of a quadrotor based on the Lyapunov stability theory, so that the quadrotor reached the predetermined right-angle position and yaw angle. The simulation shows that the control method has good control performance. In [33], the backstepping controller designed by Samir Bouabdallah and Roland Siegwart, in the under-actuated system, can control the system's attitude stability in the presence of high perturbation. In [34], to avoid the singularity problem, Xing Huo et al. expressed the quadrotor's attitude with a unit quaternion instead of Euler angles. Based on the compensation of Coriolis torque and gyroscope torque, the control design is completed by using backstepping control technology. And applying Lyapunov stability analysis proves that the closed-loop attitude system is asymptotically stable. The simulation results show that this control method is effective.

Feedback linearization
Feedback linearization is the use of feedback to linearize a non-linear system, so that the relationship between input and output is transformed from non-linear to linear. Feedback linearization is suitable for most nonlinear systems, but the system must satisfy the same number of input terms and output terms [35]. Feedback linearization can reduce the transient error of the system and enhance the antidisturbance and steady-state performance of the system. It is often used in the flight control of quadrotor UAVs to improve the stability of the flight attitude.
Holger Voos studied a nonlinear UAV control system based on nested structure decomposition and feedback linearization in [36], which can be implemented on an embedded microcontroller. The simulation results show that the algorithm can ensure the accurate and stable flight of the quad-rotor UAV. In [37] Zhao Shulong et al. proposed a control strategy that combines feedback linearization and LQR (linear quadratic regulator). This method can stabilize the quad-rotor UAV under disturbance conditions. The researchers added bounded disturbances in the flight test, and the results proved the stability and robustness of the control system.

Intelligent Control
Intelligent control is the advanced stage of the development of control theory. It has the ability of selfadaptation, self-organization, self-learning, and self-coordination, no longer rely on deterministic models and can deal with highly nonlinear and complex control systems.

Fuzzy control
Fuzzy control is a control technology based on fuzzy set theory, fuzzy linguistic variables, and fuzzy logic reasoning. It is proposed to control the systems which are complicated or difficult to describe. Due to its distinctive advantages when the accurate model of a controlled system is absent, it is often introduced to address the uncertainty to increase the stability of a quadrotor during the flight. Fuzzy control borrows human beings' expertise and knowledge. It achieves this process by transferring our expertise and knowledge into if-else statements with the help of linguistic variables, fuzzy conditional sentences, and fuzzy algorithms. A block diagram of a typical fuzzy controller is shown in Figure  5 [38]. In Figure 5, the fuzzify block contains three basic steps:1. pretreat the input to meet the need of fuzzy control; 2. scale the input quantity; 3. determine the linguistic variable's value of each input and corresponding membership function. The fuzzy control rules block, which contains the expertise and knowledge from humans, is the fuzzy control system's core block.  [39] to control the height and orientation of a quadrotor. They first designed an aggregation block which is an intermediate block between four controllers: height controller, roll controller, pitch controller, and yaw controller, as shown in Figure 6. Then they built each controller respectively by the same series of operations and similar rules, including taking the error, derivative, and integral of the corresponding parameter as inputs, defining the fuzzy sets of the input and output, and defining the inference rules of the controller. Their proposal was supported by a good response in simulation. However, a major limitation of their work was the trial and error approach for tuning the inputs. Judging from the inputs, we can regard their proposal as a combination of fuzzy control and PID control intrinsically. Other methods combined with fuzzy logic to build a fuzzy controller for quadrotor stability can also be found in the literature. For example, the Takagi-Sugeno approach is deployed to design a fuzzy controller in A. Rabhi et al.'s work [40]. They also introduced high order sliding mode algorithm to build an observer for the quadrotor control.  Figure 6. Control Diagram of the Quadrotor

Neural networks(NN) control
Inspired by the biological nervous system, an artificial neural network is a computing model composed of many interconnected artificial neurons. An ANN optimizes its network's structure by adjusting the neurons' weights and thresholds according to every pair of inputs and outputs. When tuned completely, it can give accurate outputs when given new inputs. ANN is an adaptive and selflearning model, which enables it to be applied to achieve intelligent control on many unmanned crafts such as the quadrotor. Moreover, an ANN has a universal approximation property, an ability to infinitely approximate any bounded continuous function, which can be utilized to maintain the control capability when full knowledge of a quadrotor's dynamics is not available [41].
In Dierks et al.'s work [41], they first developed a NN virtual control input for the roll and pitch to deal with the quadrotor's under-actuated property. Then they enabled a quadrotor to learn its dynamics online by exploiting the approximation ability of NN. Finally, they built a NN observer to estimate the translational and rotational velocities of the quadrotor and a control loop consisting of a kinematic controller, an NN virtual controller, and an NN dynamical controller. This proposal's adaptive and online characteristics rendered a satisfactory performance of controlling the quadrotor's stability. Besides, A robust NN control was applied to improve a quadrotor's tolerance capability by Nicol et al. in [42] to deal with large uncertainty in both parameter estimates and external disturbances. Their proposal showed improvements for achieving the desired attitude and reducing weight drift.
Besides, researchers also combined ANN with other controllers such as PID controller [43], sliding mode controller [44]. All these proposed methods are also focused on the quadrotor's stability control.

Genetic algorithms control
Genetic Algorithm (GA) is an optimization and search technology based on the principles of genetics and natural selection. The advantages of this algorithm include: processing continuous and discrete variables, without derivative information, processing a large number of variables, and searching from a wide range of costs.Therefore, genetic algorithms are usually applied to UAVs' path planning, which is of great significance to the stability of the flight trajectory of quadrotors. Basic flow chart of GA consists of the following steps [46]： Step 1. The Population is randomly initialized Step 2. The Fitness of population is determined.
Step 3. The Above two steps are repeated again and again. Step 4. Select parents from the population.
Step 5. Perform crossover & mutation on parents creating next population Step 6. step 2 to step 5 are repeated until best individual is satisfying termination criteria. In the quadrotor flight control, usually using binary encoding. According to the constraint condition and precision level defined by the coefficient, the bit number of each chromosome is set, and P, I, and D are introduced as the genes of the s chromosome of the population [45].Hengameh Noshahri et al. used the genetic algorithm to optimize PID controller in [45], solved the suboptimal coefficient of PID controller, and optimized the performance of closed-loop control system. Mukul Gaur et al. improved the genetic algorithm in [46], firstly, crossover fraction and mutation rate is made adaptive by using a Fuzzy logic controller. Secondly, GA's advanced randomness is provided by changing half of its initial population with random candidates after a fixed generation. The simulation results show that the designed controller has a good transient response and robustness under adverse conditions or disturbances. The improved genetic algorithm greatly improves the flight stability of the quadrotor.

Model predictive control(MPC)
MPC incorporates the dynamic model of the controlled system to foresee future system states while error is minimized, by solving optimal control problems. A typical MPC system consists of the following parts: a prediction model which can foresee the future output according to the current input and state history, a feedback correction which can adjust the prediction according to the difference between the measurement and prediction. This rolling optimization can ascertain the future control strategy by optimizing some performance index. Mainly due to its low requirement to an accurate knowledge of a model, MPC is applied in controlling the quadrotor stability by many researchers.
A switching model predictive controller was proposed by Alexis et al. to achieve stable and precise trajectory control, under the presence of wind gusts [47]. Abdolhosseini et al. presented an efficient MPC system that was computationally efficient. However, the suggested MPC's overall steady-state tracking performance is the same as the standard MPC [48].

Human-simulated intelligent control (HSIC)
HSIC is one of the most modern intelligent control theories whose main idea is to adjust the control parameters in real-time according to the input error and its change trend, and select the corresponding control strategy to achieve the stability of the control system. It is a process of establishing a characteristic model and a multi-modal decision-making model, which is especially suitable for the control of objects with first-order or second-order inertia and pure lag [49] [50].
HSIC prototype algorithm is as follows: In the formula: and respectively represent the error of the complex process and its rate of change, , is the i-th peak value of the process error, u is the output of the controller; and k respectively represent the proportional coefficient and the suppression coefficient. The prototype algorithm innovatively proposed modifying the human control behavior through decision judgment and bi-modal control and replacing the integrator with extreme value sampling and keeping, which comprehensively considered the stability, rapidity, and accuracy [49].
In [50], Wang Jie et al proposed a new human-like intelligent PID control method based on classic PID control and HSIC for quadrotors' attitude control. This method is applied to the longitudinal control channel of the UAV, and the PID control parameters are adjusted online in real-time according to the dynamic characteristics of the UAV in the vertical direction. This method can satisfy good dynamic characteristics and improve the system's stability and robustness. In [51], Lei Jianhe et al, based on HSIC theory, divided the controller into three layers, direct control layer, parameter 11 correction layer, and task adaptation layer, and simplified related parameters. Greatly make up for the shortcomings of traditional HSIC parameter tuning. The controller has better control performance, a simple structure and faster response speed, stronger anti-interference, and robustness.

Particle swarm optimization (PSO) control
The particle swarm optimization algorithm is a group intelligence optimization algorithm inspired by nature. The particles in the particle swarm use their current speed, their own experience, and the experience of neighboring particles to adjust their position in the search space. Use a predefined fitness function to measure each particle's performance to quantify the performance of the optimization problem [53]. Particle swarm optimization is a global optimization algorithm used to solve complex problems such as nonlinear, non-differentiable optimization, and multi-modality. It has been applied in many scientific and engineering fields [52].
In the flight control of a quadrotor, the algorithm is usually combined with a PID controller to achieve stable flight. H. Boubertakh et al. used 4 decentralized PD controllers in [53] to stabilize the quadrotor's angle and height. The PSO is used to adjust the parameters of the four controllers at the same time, and the performance of the whole system is quantified by the square error cost function. Experimental results prove that this method improves the stability of the quadrotor and optimizes the performance of the system. In [52], Xingwang Liu et al. simplified the PSO algorithm. The simple PSO algorithm avoids the problem that standard PSO is easy to fall into local extremes, and the convergence rate is low and slow in the later stage of the evolution process. Use a simple PSO algorithm to adjust PID parameters. Results show that applying SPSO to PID parameter optimization can solve the problem of difficult parameter determination. The SPSO algorithm can quickly and accurately find the optimal parameter solution.

Conclusion and Discussion
With each control method having its characteristics, these methods focus on different aspects of stability. And as they are classified, they require different accuracy and complement degrees of a normal work model. Correspondingly, when designing a control system for a quadrotor, we can choose an appropriate control method based on the working conditions and missions. Moreover, some other evaluation criteria are needing to be considered in our actual design, mainly including satisfying dynamic performance and controller implementation complexity. A comprehensive assessment of these control methods applied in the quadrotor's stability control is shown in Table 1.
Currently, all the above methods develop at promising but different speeds. PID controller and linear optimal controllers such as H∞ controller have always been a prior choice for quadrotor experiments because of their convenient design and have shown rather good experimental results. Other optimal controllers that are nonlinear such as sliding mode controller offer advantages of robustness, disturbance rejection. Still, most of the published work is based on simulation and experimental results have not shown a distinctive improvement with the PID controller or linear optimal controllers [55]. However, among these optimal controllers, adaptive controllers (where the adaptive is in the broad sense) has shown a more satisfying performance in controlling the quadrotor' stability due to its self-adaptation [28] [29], which can be regarded as a rudimentary intelligence, thus adaptive controllers can be thought of as the transition between optimal controllers and intelligent controllers. With self-learning and self-organization abilities, intelligent controllers improve intelligence further than adaptive controllers. They are perfectly suited for quadrotor control if the dynamical model is not exactly known [56]. However, most of the available literature is limited to simulation work. The barrier lies in high computational costs during the tuning process and low computational resources the embedded device can provide. Moreover, abundant training data's unavailability also contributes to the obstacle to a field experiment of this kind of controller.
Moreover, the practice has proved that any single control method cannot achieve an excellent control effect during the actual mission of a quadrotor. The combination of multiple control methods is a future trend. Besides, there is also some other work for quadrotor stability control to be focused on in the future:1. more universality for different applications. The proposed control methods for the quadrotor's stability generally focus on a single application scenario. 2. more satisfying overall performance among four aspects of stability. The control methods proposed for a quadrotor's stability nowadays only aim at a single aspect of the stability, such as fault tolerance or disturbance rejection. 3. better trade-off between control performance and controller complexity. Normally, more complicated methods are accompanied by more satisfying performance and more expense. It is always worth studying how to make a better trade-off between the control performance and controller complexity.