**2. Model of UH and AHCs**

#### **2.1. UH model**

cannot guarantee their safety and reliability in the face of malfunctions such as sensor faults, actuator faults, and component faults. Furthermore, taking physical limits such as actuator constraints and state constraints into account, the situation would be more serious. In order to ensure the reliability and safety of UHs, fault detection and diagnosis (FDD) and fault‐ tolerant control (FTC) approaches become focus of research and many related research results have been presented [1]. However, physical limits are not well considered in conventional FTC approaches which may affect their efficiency. On the other hand, besides UH's dynam‐ ic limits, external environment constraints, such as obstacles, also affect UH's safety. However, traditional planning methods cannot consider environment constraints and vehicles' limits at the same time which makes these methods helpless in the face of faults. In this chapter, a self‐healing control (SHC) framework is proposed against actuator faults and constraints of single‐rotor UHs under external environment constraints. The SHC frame‐ work is shown in **Figure 1** which involves FDD module, reconfigurable controller, trajecto‐

**1.** FDD module: Estimate the actuator healthy coefficient (AHC) [2] in real time. AHCs can indicate healthy conditions of actuators and actuator fault information is the basis of

**2.** Reconfigurable controller: This module realizes the same functions as conventional FTC approaches and considers actuator constraints at the same time. After fault occurrence, the fault‐free controller will be configured as a postfault controller according to AHCs

**3.** Trajectory (re‐)planning module: Compute realizable trajectory based on desired path and UH dynamic model under environment constraints. This module calculates a feasible trajectory under both fault‐free and postfault conditions. Furthermore, controller references are computed directly in this module which can be used by reconfigurable

provided by FDD module to guarantee the stability of the postfault UH system.

ry (re‐)planning module, and evaluator module.

114 Recent Progress in Some Aircraft Technologies

The tasks of the above modules are as follows:

controller reconfiguration.

**Figure 1.** SHC framework.

controller.

The 6‐DOF dynamics of UH is given by the following Newton–Euler equations:

$$\begin{aligned} \dot{V}\_b &= -a o\_b \times V\_b + \frac{F\_b}{m} + \frac{F\_g}{m} \\ \dot{a}\_b &= -[M\_b - a o\_b \times (I\_b a\_b)] / I\_b \end{aligned}$$

where *Vb* = *u v w* is the velocity vector, *ω<sup>b</sup>* = *p q r* is the angular velocity vector, *Fb* is the aerodynamic force vector, *Fg* is the gravity force vector, *Ib* is the moment of inertia matrix, *Mb* is the aerodynamic moment vector, and *m* is the UH mass.

Aerodynamic forces and moments can be calculated by

$$\begin{aligned} F\_b &= f\_f(\delta\_{\text{lon}}, \delta\_{\text{lat}}, \delta\_{\text{col}}, \delta\_{\text{pcd}}, \alpha\_r) \\ M\_b &= f\_w(\delta\_{\text{lon}}, \delta\_{\text{lat}}, \delta\_{\text{col}}, \delta\_{\text{pcd}}, \alpha\_r) \end{aligned}$$

where *δ*lon, *δ*lat, *δ*col, and *δ*ped are the longitude, latitude, main rotor collective pitch, and tail rotor collective pitch control inputs, respectively. *ωr* is control input of main rotor rotating speed. Typically, *f <sup>f</sup>* and *f <sup>m</sup>* are nonlinear functions and their details can be found in [3, 4].

Note that *δ*lon, *δ*lat, *δ*col are the nominal control inputs and they do not represent the actual actuator outputs. The relationship between the nominal and actual inputs is determined by the structure of swashplate [5] and their values can be converted to each other.

In order to guarantee the accuracy of AHC estimation, nonlinear model is used to design FDD approach. However, the above nonlinear model is too complex to design EKF filter so that a simplified nonlinear discrete‐time model is used [6]:

$$\begin{cases} \mathbf{x}(k) = f(\mathbf{x}(k-1), \boldsymbol{\mu}(k-1)) + o(k-1) \\ \boldsymbol{\nu}(k) = h(\mathbf{x}(k)) + \boldsymbol{\nu}(k) \end{cases} \tag{1}$$

where *x* ∈*R <sup>n</sup>* is the system state vector, *y* ∈*R <sup>p</sup>* is the system output vector, *u* ∈*R <sup>m</sup>* is the system control input vector, *ω* and *ν* are the process noise and measurement noise that are assumed to be Gaussian white noise with zero mean and uncorrelated from each other. Considering swashplate configuration [5], the system control input vector is *u* = *θ<sup>l</sup>* , *θr*, *θb*, *θt*, *ω<sup>r</sup>* where *θl* , *θr*, *θb* are left, right, back swashplate actuator outputs, and *θ<sup>t</sup>* =*δped* is the tail actuator output.

On the other hand, the linear dynamic model is used to design controller and trajectory planning which is shown as follows:

$$\begin{cases} \mathbf{x}\_h(k+l) = A\_h \mathbf{x}\_h(k) + B\_h \boldsymbol{\mu}\_h(k) \\ \boldsymbol{\nu}\_h(k) = C\_h \mathbf{x}\_h(k) \end{cases} \tag{2}$$

where *xh* <sup>∈</sup>*<sup>R</sup> <sup>n</sup>* <sup>=</sup> *<sup>x</sup>* <sup>−</sup> *<sup>x</sup>*trim, *yh* <sup>∈</sup>*<sup>R</sup> <sup>p</sup>* <sup>=</sup> *<sup>y</sup>* <sup>−</sup> *<sup>y</sup>*trim, *uh* <sup>∈</sup>*<sup>R</sup> <sup>m</sup>* <sup>=</sup>*<sup>u</sup>* <sup>−</sup>*u*trim, and *x*trim, *y*trim, *u*trim are the trim values. *Ah* , *Bh* , and *Ch* are all constant matrices.

#### **2.2. AHC model**

Suppose *v* is the control signal given by controller called control variable and *u* is the actual actuator output called manipulated variable, their relationship is represented by

$$\mu(k) = \Lambda \nu(k) + (I - \Lambda)\overline{\mu}$$

where *Λ* is a diagonal matrix with *<sup>Λ</sup>* =diag(*λ*1, ..., *<sup>λ</sup>m*), *λ<sup>i</sup>* <sup>∈</sup> 0, <sup>1</sup> , and *u*¯ <sup>∈</sup>*<sup>R</sup> <sup>m</sup>* is a constant vector. In addition, *λ<sup>i</sup>* and *u*¯*<sup>i</sup>* are the proportional effectiveness and fault bias of the *i*th actuator's AHC. *<sup>λ</sup><sup>i</sup>* =1 and *u*¯*<sup>i</sup>* =0 represent that the *i*th actuator is fault‐free; otherwise, the *i*th actuator has fault. Thus, the fault condition of actuators can be represented by AHCs.

#### **3. EKF‐ and LNN‐based FDD approach**

Because of the serious nonlinear coupling between all control channels, we assume that an actuator has fault whereas others are still well, and the actuator for rotate speed control, *ωr*, is always well. Here, the multiplicative fault of an actuator as a parameter that is indicated by the AHC for this kind of fault is more likely to happen. The following will introduce the realization of fault diagnosis in the order of fault identification module, fault isolation module, and fault detection module. In this section, *x*(*k*) is written as *xk* for simplicity and *x* ^ *k* |*k* −1 represents the pre‐estimation value of *xk* based on the information of *k* −1 step.

#### **3.1. Fault identification module**

In order to guarantee the accuracy of AHC estimation, nonlinear model is used to design FDD approach. However, the above nonlinear model is too complex to design EKF filter so that a

( ) ( ( 1), ( 1)) ( 1)

control input vector, *ω* and *ν* are the process noise and measurement noise that are assumed to be Gaussian white noise with zero mean and uncorrelated from each other. Considering

, *θr*, *θb* are left, right, back swashplate actuator outputs, and *θ<sup>t</sup>* =*δped* is the tail actuator output.

On the other hand, the linear dynamic model is used to design controller and trajectory

( 1) ( ) ( )

*x B*

where *xh* <sup>∈</sup>*<sup>R</sup> <sup>n</sup>* <sup>=</sup> *<sup>x</sup>* <sup>−</sup> *<sup>x</sup>*trim, *yh* <sup>∈</sup>*<sup>R</sup> <sup>p</sup>* <sup>=</sup> *<sup>y</sup>* <sup>−</sup> *<sup>y</sup>*trim, *uh* <sup>∈</sup>*<sup>R</sup> <sup>m</sup>* <sup>=</sup>*<sup>u</sup>* <sup>−</sup>*u*trim, and *x*trim, *y*trim, *u*trim are the trim

Suppose *v* is the control signal given by controller called control variable and *u* is the actual

*uk vk I u* () () ( ) =L + -L

where *Λ* is a diagonal matrix with *<sup>Λ</sup>* =diag(*λ*1, ..., *<sup>λ</sup>m*), *λ<sup>i</sup>* <sup>∈</sup> 0, <sup>1</sup> , and *u*¯ <sup>∈</sup>*<sup>R</sup> <sup>m</sup>* is a constant vector.

*<sup>λ</sup><sup>i</sup>* =1 and *u*¯*<sup>i</sup>* =0 represent that the *i*th actuator is fault‐free; otherwise, the *i*th actuator has fault.

Because of the serious nonlinear coupling between all control channels, we assume that an actuator has fault whereas others are still well, and the actuator for rotate speed control, *ωr*, is

are the proportional effectiveness and fault bias of the *i*th actuator's AHC.

*u*

<sup>î</sup> <sup>=</sup> (2)

*x Ak k k*

() () *h hh hh*

*C x* <sup>ì</sup> + + <sup>=</sup> <sup>í</sup>

actuator output called manipulated variable, their relationship is represented by

*h hh*

*y k*

*k*

Thus, the fault condition of actuators can be represented by AHCs.

w

<sup>î</sup> = + (1)

is the system output vector, *u* ∈*R <sup>m</sup>* is the system

, *θr*, *θb*, *θt*, *ω<sup>r</sup>* where

*xk f xk uk k*

<sup>ì</sup> = - -+ - <sup>í</sup>

n

( ) ( ( )) ( )

*yk hxk k*

swashplate configuration [5], the system control input vector is *u* = *θ<sup>l</sup>*

simplified nonlinear discrete‐time model is used [6]:

116 Recent Progress in Some Aircraft Technologies

where *x* ∈*R <sup>n</sup>* is the system state vector, *y* ∈*R <sup>p</sup>*

values. *Ah* , *Bh* , and *Ch* are all constant matrices.

**3. EKF‐ and LNN‐based FDD approach**

planning which is shown as follows:

*θl*

**2.2. AHC model**

In addition, *λ<sup>i</sup>*

and *u*¯*<sup>i</sup>*

The task of fault identification is to determine the size of the fault and the fault time after fault isolation. The size of a fault is indicated by the proportional effectiveness of AHC, so we should estimate the actual manipulated variable vector *u* according to state estimations from EKF and actual control signal *v* to calculate and obtain the proportional effectiveness.

As shown in Eq. (1), in a typical nonlinear discrete‐time system, the input vector is obtained from actuators, and the current state vector *xk* is calculated based on the state vector of the last step. The estimations of *x* ^ *<sup>k</sup>* <sup>|</sup>*k* and *x* ^ *<sup>k</sup>* <sup>−</sup>1|*<sup>k</sup>* <sup>−</sup>1 can be obtained by EKF [7]. Therefore, the state equation can be transformed into the equation as follows:

$$
\hat{\mathbf{x}}\_{k|k} = M\left(\hat{\mathbf{x}}\_{k-1|k-1}\right)\mathbf{u} + N\left(\hat{\mathbf{x}}\_{k-1|k-1}\right) \tag{3}
$$

For the calculation, processes of forces and torques of the simplified nonlinear model have been linearized, Eq. (3) is a linear equation set, and the values of *M* and *N* are connected with state estimations of the last step only.

Typically, Eq. (3) is an overdetermined linear equation set and could not be solved directly [8]. After knowing which actuator is faulty, many output estimations of this actuator can be obtained by the faultless manipulated variables of other actuators according to Eq. (3). Multiply the sample column vectors formed by these estimations by a weight matrix and correct this result with an offset. Then, the manipulated variable estimation of this faulty actuator can be obtained.

To obtain the above weight matrices and offsets, consider a linear neuron as a simple LNN, and its input–output relation is expressed as follows:

$$a = f(Wp + b) = Wp + b$$

where *a* is the output vector, *p* is the input sample vector, *W* is the weight matrix, and *b* is the offset. The weight matrices and offsets can be obtained by training. Assume that an actuator has a fault, and let the output estimations of this actuator be a set of input of the linear neuron. After simulation, multiple sets of input samples can be obtained, and let the actual manipulated variable be the target value to train the weight matrix and offset of this actuator. Determine the weight matrix and offset of every faulty actuator, and make use of them in the online experience to calculate the estimation of every manipulated variable. The above process is closely related to the estimation process of EKF; more certainly, EKF and LNN complete the joint estimation of system states and AHCs together.

#### **3.2. Fault isolation module**

The task of fault isolation is to determine the location and type of the fault after fault detection. The structure of this module is shown in **Figure 2** to record the completion time and pass the serial number of the faulty actuator to fault identification module.

Four fault identification modules are in parallel in this module, and we assume that there are different actuator faults in different identification modules. Therefore, every fault identifica‐ tion module can obtain the proportional effectiveness of AHC called isolation AHC. Make use of the isolation AHC of the *i*th actuator and let these values of other actuators be both 1 to calculate the manipulated variables called isolation‐manipulated variables according to control variable vector *v*. Based on these variables, we can obtain the system state vector and define it as *x*iso. In this way, we define the isolation residual of the *i*th actuator as follows:

$$\text{res}\_{i} = (\mathbf{x}\_{\text{iso}} - \mathbf{x}\_{\text{est}})^{\mathsf{T}} (\mathbf{x}\_{\text{iso}} - \mathbf{x}\_{\text{est}})^{\mathsf{T}}$$

where *x*est is state estimation. If the isolation residual of an actuator is less than the isolation residuals of others, there will be fault in this actuator. For example, if res*<sup>i</sup>* is less than other isolation residuals, the *i*th actuator can be considered to be faulty.

**Figure 2.** The structure of fault isolation.

#### **3.3. Fault detection module**

closely related to the estimation process of EKF; more certainly, EKF and LNN complete the

The task of fault isolation is to determine the location and type of the fault after fault detection. The structure of this module is shown in **Figure 2** to record the completion time and pass the

Four fault identification modules are in parallel in this module, and we assume that there are different actuator faults in different identification modules. Therefore, every fault identifica‐ tion module can obtain the proportional effectiveness of AHC called isolation AHC. Make use of the isolation AHC of the *i*th actuator and let these values of other actuators be both 1 to calculate the manipulated variables called isolation‐manipulated variables according to control variable vector *v*. Based on these variables, we can obtain the system state vector and define it as *x*iso. In this way, we define the isolation residual of the *i*th actuator as follows:

> iso est iso est res ( ) ( ) *<sup>T</sup> <sup>i</sup>* =- - *xx xx*

where *x*est is state estimation. If the isolation residual of an actuator is less than the isolation

is less than other

residuals of others, there will be fault in this actuator. For example, if res*<sup>i</sup>*

isolation residuals, the *i*th actuator can be considered to be faulty.

joint estimation of system states and AHCs together.

serial number of the faulty actuator to fault identification module.

**3.2. Fault isolation module**

118 Recent Progress in Some Aircraft Technologies

**Figure 2.** The structure of fault isolation.

The basis of the above two modules is that the fault is detected quickly and accurately. Known from the EKF process, the filter obtains the state vector pre‐estimation *x* ^ *<sup>k</sup>* <sup>|</sup>*<sup>k</sup>* <sup>−</sup>1 by the estimations of the last step and updates *x* ^ *<sup>k</sup>* <sup>|</sup>*<sup>k</sup>* <sup>−</sup>1 by the measurement information to obtain the current estimation of the state vector *x* ^ *<sup>k</sup>* <sup>|</sup>*<sup>k</sup>* . If there is a fault in the actuator, there will be difference between the pre‐estimations of states and the actual states with fault. However, the estimations of states would track the actual states after the update. Define a filter residual as follows:

$$r\_k = \hat{\mathfrak{x}}\_{k|k} - \hat{\mathfrak{x}}\_{k|k-1}$$

Perform the weighted sum of squared residuals (WSSR) operation [9]:

$$\text{WSSR}\_k = r\_k^r \Sigma r\_k$$

where the weight matrix *Σ* =diag(*σ*<sup>1</sup> 2 , ..., *σ<sup>n</sup>* 2 ) and *σ<sup>i</sup>* is the standard deviation of the filter residual of the *i*th state variable to make the residual that can indicate faults work.

According to the threshold value *γ* set in advance, the criteria for fault detection are as follows: if WSSR*<sup>k</sup>* >*γ*, fault; if WSSR*<sup>k</sup>* ≤*γ*, no fault.
