Fault tolerance of a quadrotor via feedback linearization approach

A control algorithm is proposed to efficiently control the state, position, and height of a nonlinear dynamic model of a quadcopter. Based on feedback linearization, a state space model is presented for the system with the controller with a two-loop control structure designed and implemented in it. The inner and faster controller is responsible for adjusting the quadcopter height and angles, and the outer and slower controller is responsible for changing the desired figures of roll and pitch angles to control the system position. Whenever a rotor of the quadcopter rotor fails, the status and position of the system are converged and the system is stabilized. Simulation results based on different scenarios indicate the proper performance of the control system whenever there are external disturbances. Note that the gyroscopic effects because of the propeller rotation were not considered


INTRODUCTION
Present day, extensive work has been done in the field of unmanned aerial vehicles, leading to a significant increase in both academic research and industrial projects. Various control methods including sliding model [1], [2], backtracking [3], adaptive [4], adaptive backtracking [5], resistant proportional integral derivative (PID) [6], and linear quadratic Gaussian (LQG) [7] have been utilized in quadcopter systems to control the status and position of the quadcopter. On the other side, the issues of fault detection and fault-tolerant control of the faults within sensors, rotors, or other parts of the quadcopter have been discussed. There are two types of faulttolerant control systems: passive and active [8]. The control structure of a passive control system does not change, i.e., the control system is resistant to faults whenever there is a fault while the control system of an active control system is reset whenever there is a fault [9]. Several methods have been presented to design the controllers in case of rotor failure in the fault-tolerant control system. Sliding mode control has been used to control the operating conditions in the case of disturbance and rotor failure [10], [11]. Model predictive control has been used to control the system [12]- [14]. Robust adaptive control has been used to track the height and status of the quadcopter; moreover, the tracking fault is converged in the case of rotor failure [15]. A nonlinear adaptive discrete algorithm and a PID algorithm have been used in inner and outer loops, respectively, to control route tracking [16]. Optimization methods have been used to minimize the force being applied by the rotors in the case of their failure [17]. Intelligent control methods such as reinforcement learning [18] have also been used for fault-tolerant. An intelligent logic algorithm has been used to control a hexadrone; moreover, it has been shown that the control algorithm has a proper performance in the case of two rotors' failure [19].

229
In this research, a nonlinear model for the quadcopter is first introduced, and then, in order to design the controller, a state space model for the system is presented using the feedback linearization method, in which the gyroscopic effects because of the rotation of the propeller have been ignored. The fault-tolerant controller has a two-loop control structure in which the inner and faster controller is responsible for adjusting the quadcopter height and angles while the outer and slower controller is responsible for changing the desired figures of roll and pitch angles to control the system position. The controllers have been applied to the nonlinear system to investigate performance within different scenarios. In this article, after the mathematical modeling of a quadrotor, the state space model of the system is presented, then the details of the design of the internal and external controller are presented, and the simulation results and comparison of different states are presented.

MATHEMATICAL MODEL
A quadrotor is an unmanned aerial vehicle (UAV) with six degrees of freedom. It accounts for two pairs of rotors that rotate in opposite directions. The dynamical model of the given quadcopter is presented in Figure 1, where the state vector [ , , ] indicates the position of the center of the gravity of the quadcopter and its linear velocity in the body-frame is indicated by the vector [,,]; the Euler angles [ , , ] indicates the roll, the pitch, and the yaw, respectively, and [ , , ] represents its angle velocity in the body-frame. The dynamic equations are expressed in function of the ground frame and the body frame as (1) to (6) [20]. In (1) to (6), represents the quadcopter mass, is the accelerant of gravity, and is the distance from each rotor to the center of gravity. The vector = [ , , , ∅ , , ] represents the wind disturbance and = ( 1 + 2 + 3 + 4 ) represents the overall residual rotor angular velocity, where 1 , 2 , 3 , and 4 stand for the angular speed of the propellers. Also, the control inputs u1, u2, u3, and u4 can be obtained from the matrix equation in (7).
It is supposed that the dynamic model of the quadrotor structure provided in (1) to (6) is rigid and symmetric, the body frame's origin is the same as the gravity's center, and the body frame's axes coincide with the quadrotor inertia axes.

State space model
Let = [ , , , , , , , , ,,,] be the state vector and = [ 1 , 2 , 3 , 4 ] the input vector. Considering that in the case where all the rotors are working, is zero, and in the case of an engine failure, the values of ̇ and ∅̇ are very small, we ignore the gyroscopic effects because of the propeller rotation [21,22], and the dynamic equations in (1) to (6) can be adjusted in a state space model as (8) to (19).

Inner control loop
Let ̅ represents the dynamics of the state variables ( 1 , 2 , 3 , 4 , 5 , 6 9 , 12 ). The state space model can be formulated as (20), which is independent of the input of the system. This property will become useful while the second derivative of [ 1 , 2 , 3 , 9 ] is being calculated as (22), where ( ̅ ) denotes the Jacobian matrix which yields the exponential stability of second-order dynamics.

Outer control loop
Since the roll and pitch angles determine the direction, an outer control loop will be computed whose job it is to calculate the desired values for the roll and pitch angles to track a desired position in the horizontal plane. The subsystems whose dynamics are represented by the state variables 1 , 2 , 3 , 4 , 5 , 6 9 , 12 are represented by the constants and . To avoid losing the system's stability, it is required to choose ≪ that causes the inner control loop to act much faster than the outer control loop. By presuming that 1 and 2 are small angles, 1 and 2 are selected close to zero as (22), Practically, when occurring fault for rotors, the roll, pitch, yaw, and altitude are stabilized by the inner control law, while the near hover condition is exploited by the pouter control law to slowly change the pitch and roll angles in order to reach the system to the desired position.

RESULTS AND DISCUSSION
This section evaluates the performance of the proposed controller in the presence of disturbances by simulation with initial states x0=[0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0] in MATLAB software. Three cases were considered to evaluate the controllers. In the first case, the quadrotor does the task without motor failure and disturbance. In the second case, one rotor of the quadrotor is turned off from the beginning. In the third case, in addition to one rotor of the quadrotor being turned off from the beginning, there are external disturbances. The physical parameters of the quadrotor are set as (27).

Test 1 (test without rotor failure and disturbance)
In this test, it has been assumed that none of the system rotors failed and there is no disturbance in the system. As shown in Figures 2 and 3, the system has reached the desired values, that is to say, has been stabilized. The angular velocity of the rotors is indicated in Figure 4, as clear rotors work without failure.

Test 2 (second rotor failure without disturbance)
In this test, the second rotor was assumed to be faulty while there is no disturbance in the system, as depicted in Figure 5. As shown in Figures 6 and 7, the system has reached the desired values and has been stabilized; moreover. It has a proper performance in comparison with the case in which the system is working without failure.

Test 3 (second rotor failure with disturbance)
In this test, the second rotor was assumed to be faulty but unlike the above section, disturbance in the system was considered in the form of (28) and (29).
As shown in Figures 8 and 9, the system has reached the desired values despite the disturbance. Moreover, it has been stabilized and has a proper performance in comparison with the previous case. The rotor's angular velocity is shown in Figure 10, based on the assumption, the second rotor has failed from the beginning.
As shown in all simulations, the z value reaches its desired value in less than 5 seconds while the x and y values reach theirs in 15 seconds. The rationale for this difference is because of the faster inner control is in z. Moreover, the linear and angular system velocities converged and stabilized toward zero.

CONCLUSION
Efficient flight control of unmanned aerial vehicles is critical to maintain their stability. Since rotor failure is one of the major problems in such systems, this paper addressed this issue by considering first a nonlinear model for the quadcopter and then a state space model for the system. This was achieved through the feedback linearization method, in which the gyroscopic effects because of the rotation of the propeller were not taken into account. Next, using the state space model and the feedback linearization method, a fault-tolerant controller was designed based on the dual control loop structure.
To check the control system's performance, simulations with three different scenarios were implemented, and the results demonstrated the reliability of the proposed approach since, despite a rotor failure and disturbance of the fault-tolerant controller, the state variables converge to their reference values and the quadcopter is capable of completing its mission with only three rotors and without affecting its position.