1 Introduction

The multirotor is a vertical take-off and landing unmanned aerial vehicle (UAV). As an unmanned system, it has been widely used in practical engineering due to its ease of use, reliability and maintainability [1]. From the perspective of flight reliability and safety, an anomaly or fault in any part of a multirotor, such as airframe damage and sensor or actuator faults, may lead to catastrophic disasters [2, 3]. Therefore, it has theoretical significance and engineering value for a multirotor to detect anomalies and evaluate the in-situ health performance status in a timely manner. System health is a combined good condition of all the components and their interactions [4]. It reflects the extent of system performance degradation or deviation from an expected normal condition [5]. Prognostics and Health Management (PHM) technologies use observation signals, system models, and related algorithms to detect fault occurrences, evaluate system health degradation, predict health status evolution, and subsequently develop necessary maintenance and operational measures to ensure operational safety and reliability [6]. Thus, it is feasible to use PHM technologies to ensure the reliable and safe flight of multirotors.

The existing PHM approaches are basically divided into four categories [7]: reliability-based, model-based, data-driven, and hybrid approaches. The reliability-based approach has the simplest form of prognostics based on the distribution of event records of a population of identical items. In practice, the reliability-based approach can be performed when historical run-to-failure data are available [8]. The model-based approach is the most classic approach in PHM due to its accuracy, intuitiveness and interpretability [9]. In this approach, a physics-of-failure or mathematical model is developed on a component-level or system-level of the plant. This model is a real-time, mathematical representation of the system behavior that is able to estimate and predict the variations of the health performance degradation and detect failure occurrences [10]. The data-driven approach uses information extracted from condition monitoring data to evaluate and predict the health performance status. It mainly relies on techniques in the field of artificial intelligence, which has many statistical or machine learning tools that can be applied directly [11]. Since the above approaches have their own advantages and limitations, the hybrid approach aims to integrate the benefits of different approaches while minimizing the limitations to achieve better characteristics of the health performance status estimation and prediction. Further details can be found in comprehensive literature reviews [12,13,14,15].

There has been considerable research on PHM technologies for UAVs [16]. From the perspective of airborne equipment, these studies can be basically divided into five categories: PHM for aircraft structures [17], actuators [18], sensors [19], power plants [20], and signal transmission [21]. A detailed literature review was presented previously [22]. The current research on ensuring the flight safety of UAVs is focused on fault diagnosis and fault-tolerant control [23, 24]. The fault diagnosis approaches can deal with different fault types during a flight, such as abrupt faults, gradual faults, and intermittent faults, and achieve their detection, isolation, and diagnosis by related model-based, data-driven, and hybrid methods [25]. The fault-tolerant control strategies enable the UAV to continue its intended task possibly at a reduced level, rather than completely failing. This can ensure flight safety through effective control algorithms or redundant designs [26, 27]. However, these approaches are basically performed based on the concept of faults to study the PHM issue of multirotors. In practice, it is also significant to use the concept of health to measure the overall health performance status of multirotors on a system level. Some efforts have been made to use the concept of health to achieve the reliable and safe flight of multirotors and quantitatively evaluate the overall performances of multirotors during flights [22, 28, 29]. The results proved the feasibility of these methods, but all these methods have contain certain limitations. The primary deficiency is the modeling of wind disturbances. Existing studies simply modeled the wind disturbances as a Gaussian-distributed random variable and added it to the dynamic model of the multirotor. This form of modeling may lead to inaccurate estimates of the state variables of the multirotor and its health performance status, since wind disturbances, such as wind turbulence, should be viewed as colored noise [30]. In fact, the wind speed is an autocorrelated variable, and it is preferable to simulate it by passing white noise through a forming filter [31]. In addition, previous studies assumed that the state variables of the multirotor conformed to a Gaussian distribution, which is a conservative constraint due to the nonlinearity of the multirotor dynamics. Thus, in this paper, a health performance evaluation method of multirotors under wind turbulence is proposed. First, a stochastic hybrid system (SHS)-based model is established to describe the dynamic behavior of the multirotor, where the flight dynamics, external disturbances due to wind turbulence, and dynamics of the discrete modes are included. The real-time probability distribution of the hybrid state of the SHS-based multirotor model is obtained by a modified interacting multiple model particle filter algorithm (M-IMMPF). Based on this, the real-time overall health performance status of the multirotor during flight is quantitatively evaluated by the classical health degree and the fuzzy health degree as indicators. Finally, a multirotor suffering from different types of sensor anomalies is simulated to demonstrate the availability and effectiveness of the proposed method.

There are three main contributions of this paper. First, the wind turbulence model is introduced in the uncertainty modeling of the multirotor dynamics. In this case, the wind disturbance on the multirotor is colored noise, which is more realistic than using Gaussian white noise to describe wind disturbances, as was done in previous studies. Second, an M-IMMPF algorithm is used to estimate the probability distribution of the state variables of the multirotor, which can overcome the inaccuracies caused by using a Gaussian distribution to describe the estimates. Third, classical and fuzzy health degrees are established as health indicators. In contrast to previous studies, a new calculation method using classic and fuzzy health degrees is proposed to match the probability distribution function described by the particles, which is more reasonable and efficient than existing calculation methods.

The remainder of this paper is organized as follows. Section 2 provides the SHS-based modeling process of multirotors. Section 3 presents the health performance evaluation algorithm, including the hybrid state estimation and health quantification. Section 4 presents a case study, including the configuration, results, and analysis. Section 5 presents the conclusions, and future research is discussed.

2 SHS-based multirotor modeling

2.1 Multirotor dynamics

A general dynamic model of a multirotor is presented [32], as follows:

$$\begin{aligned} \left\{ \begin{array}{ll} \mathrm {^{e}}\varvec{\dot{p}} &{} =\mathrm {^{e}}{\varvec{v}}\\ \mathrm {^{e}}\dot{{\varvec{v}}} &{} =\left[ \begin{array}{c} 0\\ 0\\ g \end{array}\right] -\frac{1}{m}{\mathbf {R}}_{\mathrm {b}}^{\mathrm {e}}\cdot \left[ \left[ \begin{array}{c} 0\\ 0\\ f_{\mathrm {T}} \end{array}\right] +{}^{\mathrm {b}}{\varvec{f}}_{w}\right] \\ \varvec{{\dot{\varTheta }}} &{} ={\mathbf {W}}\cdot {}^{\mathrm {b}}\varvec{\varpi }\\ {\mathbf {J}}{}^{\mathrm {b}}\varvec{\varpi } &{} =-^{\mathrm {b}}\varvec{\varpi }\times \left( {\mathbf {J}}\cdot {}^{\mathrm {b}}\varvec{\varpi }\right) +\varvec{\tau } \end{array}\right. , \end{aligned}$$
(1)

where \(\mathrm {^{e}}{\varvec{p}}=\left[ \begin{array}{ccc} \mathrm {^{e}}p_{x}&\mathrm {^{e}}p_{y}&\mathrm {^{e}}p_{z}\end{array}\right] ^{\mathrm {T}}\in {\mathbb {R}}^{3\times 1}\) represents the multirotor’s three-dimensional position in the earth-fixed coordinate frame, \(\mathrm {^{e}}{\varvec{v}}=\left[ \begin{array}{ccc} \mathrm {^{e}}v_{x}&\mathrm {^{e}}v_{y}&\mathrm {^{e}}v_{z}\end{array}\right] ^{\mathrm {T}}\in {\mathbb {R}}^{3\times 1}\) represents the projection of the multirotor’s velocity in the earth-fixed coordinate frame, \(^{\mathrm {b}}{\varvec{f}}_{w}=\left[ \begin{array}{ccc} ^{\mathrm {b}}f_{w,x}&^{\mathrm {b}}f_{w,y}&^{\mathrm {b}}f_{w,z}\end{array}\right] ^{\mathrm {T}}\in {\mathbb {R}}^{3\times 1}\) represents the projection of the additive wind force due to wind turbulence in the aircraft-body coordinate frame, \(\varvec{\varTheta }=\left[ \begin{array}{ccc} \phi&\theta&\psi \end{array}\right] ^{\mathrm {T}}\in {\mathbb {R}}^{3\times 1}\) represents the attitude angles of the multirotor, which are the roll, pitch and yaw angles, respectively, \(^{\mathrm {b}}\varvec{\varpi }\in {\mathbb {R}}^{3\times 1}\) represents the angular velocity of the aircraft body’s rotation, \({\mathbf {J}}=\mathrm {diag}\left( J_{x},J_{y},J_{z}\right) \in {\mathbb {R}}^{3\times 3}\) represents the moments of inertia of the aircraft, \(\varvec{\tau }\in {\mathbb {R}}^{3\times 1}\) represents the moments generated by the propellers in the axes of the aircraft-body coordinate frame, g is the acceleration of gravity, m is the mass of the multirotor, \(f_{\mathrm {T}}\) is the total lift, \({\mathbf {R}}_{\mathrm {b}}^{\mathrm {e}}\in {\mathbb {R}}^{3\times 3}\) is the rotation matrix from the aircraft-body coordinate frame to the earth-fixed coordinate frame, and the matrix \({\mathbf {W}}\) is defined as follows:

$$\begin{aligned} {\mathbf {W}}=\left[ \begin{array}{ccc} 1 &{} \mathrm {tan}\theta \mathrm {sin}\phi &{} \mathrm {tan}\theta \mathrm {cos}\phi \\ 0 &{} \mathrm {cos}\phi &{} -\mathrm {sin}\phi \\ 0 &{} \mathrm {sin}\phi /\mathrm {cos}\theta &{} \mathrm {cos}\phi /\mathrm {cos}\theta \end{array}\right] . \end{aligned}$$

2.2 Wind force and turbulence modeling

When a multirotor flies forward, the projection of the wind force due to wind turbulence can be calculated as follows:

$$\begin{aligned} \left\{ \begin{array}{ll} ^{\mathrm {b}}f_{w,x} &{} =C_{\mathrm {d}}\cdot {}^{\mathrm {b}}v_{x}^{2}\\ ^{\mathrm {b}}f_{w,y} &{} =C_{\mathrm {d}}\cdot {}^{\mathrm {b}}v_{y}^{2}\\ ^{\mathrm {b}}f_{w,z} &{} =C_{\mathrm {d}}\cdot {}^{\mathrm {b}}v_{z}^{2} \end{array}\right. , \end{aligned}$$

where \(C_{\mathrm {d}}\) is the generalized airframe drag coefficient; \(\left[ \begin{array}{ccc} \mathrm {^{b}}v_{x}&\mathrm {^{b}}v_{y}&\mathrm {^{b}}v_{z}\end{array}\right] ^{\mathrm {T}}\in {\mathbb {R}}^{3\times 1}\) represents the projection of the velocity of the airflow around the multirotor relative to the flight speed of the multirotor in the aircraft-body coordinate frame, which is

$$\begin{aligned} \left[ \begin{array}{c} \mathrm {^{b}}v_{x}\\ \mathrm {^{b}}v_{y}\\ \mathrm {^{b}}v_{z} \end{array}\right] ={\mathbf {R}}_{\mathrm {e}}^{\mathrm {b}}\left( \left[ \begin{array}{c} \mathrm {^{e}}w_{x}\\ \mathrm {^{e}}w_{y}\\ \mathrm {^{e}}w_{z} \end{array}\right] -\left[ \begin{array}{c} \mathrm {^{e}}v_{x}\\ \mathrm {^{e}}v_{y}\\ \mathrm {^{e}}v_{z} \end{array}\right] \right) , \end{aligned}$$

where \({\mathbf {R}}_{\mathrm {e}}^{\mathrm {b}}=\left[ {\mathbf {R}}_{\mathrm {b}}^{\mathrm {e}}\right] ^{-1}\) is the rotation matrix from the earth-fixed coordinate frame to the aircraft-body coordinate frame, and \(\left[ \begin{array}{ccc} \mathrm {^{e}}w_{x}&\mathrm {^{e}}w_{y}&\mathrm {^{e}}w_{z}\end{array}\right] ^{\mathrm {T}}\in {\mathbb {R}}^{3\times 1}\) represents the projection of the wind velocity caused by wind turbulence in the earth-fixed coordinate frame. In this study, the Dryden wind turbulence model is used to describe the turbulent wind field [33, 34]. The Dryden wind turbulence model is characterized by power spectral densities for the three velocity components \(\mathrm {^{e}}w_{x},\mathrm {^{e}}w_{y},\mathrm {^{e}}w_{z}\) , which are

$$\begin{aligned} \begin{array}{ll} \varPhi _{w_{x}}\left( \omega \right) &{} =\sigma _{x}^{2}\frac{L_{x}}{\pi \cdot \mathrm {^{e}}v_{x}}\frac{1}{1+\left( L_{x}\frac{\omega }{\mathrm {^{e}}v_{x}}\right) ^{2}},\\ \varPhi _{w_{y}}\left( \omega \right) &{} =\sigma _{y}^{2}\frac{L_{y}}{\pi \cdot \mathrm {^{e}}v_{y}}\frac{1+12\left( L_{y}\frac{\omega }{\mathrm {^{e}}v_{y}}\right) ^{2}}{\left[ 1+4\left( L_{y}\frac{\omega }{\mathrm {^{e}}v_{y}}\right) ^{2}\right] ^{2}},\\ \varPhi _{w_{z}}\left( \omega \right) &{} =\sigma _{z}^{2}\frac{L_{z}}{\pi \cdot \mathrm {^{e}}v_{z}}\frac{1+12\left( L_{z}\frac{\omega }{\mathrm {^{e}}v_{z}}\right) ^{2}}{\left[ 1+4\left( L_{z}\frac{\omega }{\mathrm {^{e}}v_{z}}\right) ^{2}\right] ^{2}}, \end{array} \end{aligned}$$

where \(\sigma \) and L represent the turbulence intensity and scale length, respectively. Since the multirotor flies at a low altitude, the turbulence intensity and scale length satisfy the following [35]:

$$\begin{aligned} L_{x}= & {} 2L_{y}=\frac{\mathrm {^{e}}p_{z}}{\left( 0.177+0.000823\cdot \mathrm {^{e}}p_{z}\right) ^{1.2}}, \\ L_{z}= & {} \frac{\mathrm {^{e}}p_{z}}{2}, \\ \frac{\sigma _{x}}{\sigma _{z}}= & {} \frac{\sigma _{y}}{\sigma _{x}}=\frac{1}{\left( 0.177+0.000823\cdot \mathrm {^{e}}p_{z}\right) ^{0.4}}, \\ \sigma _{z}= & {} 0.1w_{20}, \end{aligned}$$

where \(w_{20}\) is the wind speed at 20 ft (6.096 m).

Let \({\varvec{x}}=\left( \begin{array}{cccc} \mathrm {^{e}}{\varvec{p}}^{\mathrm {T}}&\mathrm {^{e}}{\varvec{v}}^{\mathrm {T}}&\varTheta ^{\mathrm {T}}&^{\mathrm {b}}\varvec{\varpi }^{\mathrm {T}}\end{array}\right) ^{\mathrm {T}}\) be the state variable vector. A generic dynamic model form of the multirotor is established as follows:

$$\begin{aligned} \begin{aligned}{\varvec{x}}\left( k\right)&={\varvec{F}}\left( {\varvec{x}}\left( k-1\right) ,{}^{\mathrm {b}}{\varvec{f}}_{w}\left( k-1\right) \right) +\varvec{\Gamma }_{{\varvec{w}}}{\varvec{w}}\left( k-1\right) \\ {\varvec{y}}\left( k\right)&={\mathbf {C}}{\varvec{x}}\left( k\right) +\varvec{\Gamma }_{{\varvec{v}}}{\varvec{v}}\left( k\right) \end{aligned} , \end{aligned}$$

where \({\varvec{F}}\left( \cdot \right) \) can be obtained by discretization of (1), \({\varvec{y}}\) represents system measurements, and the matrix \({\mathbf {C}}\) is the measurement parameter matrix. The items \({\varvec{w}}\) and \({\varvec{v}}\) are the process noise and measurement noise, respectively, which satisfy the following:

$$\begin{aligned} \left\{ \begin{array}{l} {\varvec{w}}\left( \cdot \right) \sim {\mathcal {N}}\left( {\varvec{0}},{\mathbf {Q}}\right) ,{\varvec{v}}\left( \cdot \right) \sim {\mathcal {N}}\left( {\varvec{0}},{\mathbf {R}}\right) ,\forall k\\ \mathrm {cov}\left[ {\varvec{w}}\left( k\right) ,{\varvec{v}}\left( j\right) \right] =\mathrm {E}\left[ {\varvec{w}}\left( k\right) {\varvec{v}}^{\mathrm {T}}\left( j\right) \right] ={\varvec{0}},\forall k,j \end{array},\right. \end{aligned}$$

where \({\mathbf {Q}}\) and \({\mathbf {R}}\) are covariance matrices, and \(\varvec{\Gamma }_{{\varvec{w}}}\) and \(\varvec{\Gamma }_{{\varvec{v}}}\) are noise-driven matrices.

2.3 SHS modeling

In this section, an SHS-based multirotor model is established, in which the discrete subsystem describes the different health statuses and the dynamic transitions between them, and the continuous subsystem describes the flying behavior under these statuses. The established SHS-based multirotor model is defined as \({\mathcal {H}}=\left( {\mathcal {S}},{\mathcal {C}},{\mathcal {D}},\mathrm {Init}\right) \).

(a) Hybrid state space (\({\mathcal {S}}\))

Let \({\mathcal {S}}={\mathcal {Q}}\times {\mathbb {R}}^{n_{x}}\) be a hybrid state space. \({\mathcal {Q}}\)=\(\left\{ q_{1},q_{2},\ldots ,q_{M}\right\} \) is a finite set of discrete modes, where \(q_{j}\) represents the jth health status of the multirotor. The space \({\mathcal {S}}\) assigns each discrete mode \(q_{j}\in {\mathcal {Q}}\) a continuous space \({\mathbb {R}}^{n_{x}}\), where the state variable vector \({\varvec{x}}\in {\mathbb {R}}^{n_{x}}\). The hybrid state \(\left( q,{\varvec{x}}\right) \) is then defined on the hybrid state space \({\mathcal {S}}\).

(b) Continuous dynamics (\({\mathcal {C}}\))

For \(\forall q_{j}\in {\mathcal {Q}}\), the continuous dynamics of the SHS-based multirotor model are described as follows:

$$\begin{aligned} {\mathcal {C}}:\left\{ \begin{array}{ll} {\scriptstyle {\varvec{x}}\left( k\right) } &{} {\scriptstyle ={\varvec{F}}_{j}\left( {\varvec{x}}\left( k-1\right) ,{}^{\mathrm {b}}{\varvec{f}}_{w}\left( k-1\right) \right) +\varvec{\Gamma }_{w,j}{\varvec{w}}_{j}\left( k-1\right) }\\ {\scriptstyle {\varvec{y}}\left( k\right) } &{} {\scriptstyle ={\mathbf {C}}_{j}{\varvec{x}}\left( k\right) +\varvec{\Gamma }_{v,j}{\varvec{v}}_{j}\left( k\right) } \end{array}.\right. \end{aligned}$$
(2)

(c) Discrete dynamics (\({\mathcal {D}}\))

A Markov chain is used to describe uncertain mode transitions in \({\mathcal {H}}\) as follows:

$$\begin{aligned} {\mathcal {D}}:\left\{ \begin{aligned}{\mathcal {P}}\left\{ q_{j}\left( k\right) \right\}&=p_{j}\left( k\right)&\forall q_{j}\in {\mathcal {Q}}\\ {\mathcal {P}}\left\{ q_{j}\left( k+1\right) \left| q_{i}\left( k\right) \right. \right\}&=\pi _{ij}\left( k\right)&\forall q_{i},q_{j}\in {\mathcal {Q}} \end{aligned} ,\right. \end{aligned}$$

where \({\varvec{\Pi }}=\left[ \pi _{ij}\right] _{M\times M}\in {\mathbb {R}}^{M\times M}\) is the mode transition probability matrix, and \({\varvec{p}}=\left( p_{1},p_{2},\ldots ,p_{M}\right) \in {\mathbb {R}}^{1\times M}\) is the mode probability vector, which satisfies

$$\begin{aligned} \left\{ \begin{array}{ll} \sum _{j=1}^{M}\pi _{ij} &{} =1,\;i=1,2,\ldots ,M\\ \sum _{j=1}^{M}p_{j} &{} =1 \end{array}\right. . \end{aligned}$$

(d) Initial condition (\(\mathrm {Init}\))

The initial condition of \({\mathcal {H}}\) can be described by the probability distribution function of \(\left( q\left( 0\right) ,{\varvec{x}}\left( 0\right) \right) \):

$$\begin{aligned} \mathrm {Init}:\left\{ \begin{array}{ll} {\mathcal {F}}\left( {\varvec{x}}\left( 0\right) \left| q_{j}\left( 0\right) \right. \right) &{} ={\mathcal {N}}\left( {\varvec{x}}_{j}\left( 0\right) ,{\mathbf {P}}_{j}\left( 0\right) \right) \\ {\mathcal {P}}\left\{ q_{j}\left( 0\right) \right\} &{} =p_{j}\left( 0\right) \end{array}\right. , \end{aligned}$$
(3)

where the symbol \({\mathcal {F}}\left( \cdot \right) \) denotes the symbol of the probability distribution function. For \(\forall q_{j}\in {\mathcal {Q}}\), \(p_{j}\left( 0\right) \ge 0\), and \(\sum _{j=1}^{M}p_{j}\left( 0\right) =1\).

3 Health performance evaluation algorithm

Similar to previous safety assessment studies [36], the health of a multirotor refers to its ability to maintain a good working condition and perform tasks as required by users. Commonly, a task of a multirotor can be decomposed to a sequential waypoints in its flying space. Thus, a multirotor can be considered healthy if it flies following a predefined trajectory with deviations in a tolerant range. Suppose a task trajectory is

$$\begin{aligned} \mathbf {Tr}=\left\{ \mathrm {^{e}}{\varvec{p}}^{{\mathcal {M}}},k\left| \mathrm {^{e}}{\varvec{p}}^{{\mathcal {M}}}\left( k\right) \in \mathbb {R^{\mathrm {3\times 1}}}\right. \right\} . \end{aligned}$$
(4)

Then, given a real-time flight position \(\mathrm {^{e}}{\varvec{p}}\left( k\right) \) of the multirotor at a specific time k, the health performance of multirotor can be evaluated by a quantization function:

$$\begin{aligned} h\left( k\right) ={\mathcal {H}}\left( \mathrm {^{e}}{\varvec{p}}\left( k\right) ,\mathbf {Tr}\right) . \end{aligned}$$
(5)

In the proposed health performance evaluation algorithm, a specific form and computation method of (5) are established, which here includes two parts: hybrid state estimation and health performance quantification.

3.1 Hybrid state estimation

To evaluate the real-time health performance of a multirotor, the probability distribution of the hybrid state \(\left( q\left( k\right) ,{\varvec{x}}\left( k\right) \right) \)is estimated by an M-IMMPF algorithm. The IMMPF algorithm combines an interacting multiple model (IMM) filter and a particle filter, which can address the problem of nonlinearities and deal with a scenario with non-Gaussian noise. In addition to these advantages, compared with other observer-based state estimation methods for the purpose of obtaining state estimates [37, 38], IMMPF can use many particles to fit the non-Gaussian distribution of the system states. This can account for the uncertainties in the health risk assessment and give more reasonable and accurate system health values. In addition, as the computational power of computers (such as aircraft’s ground station computers) increases, the computational cost limit of this algorithm is gradually weakened.

Based on the established model \({\mathcal {H}}\), the sequential sensor measurements \({\mathbf {Y}}^{k}=\left\{ {\varvec{y}}\left( 0\right) ,{\varvec{y}}\left( 1\right) ,\ldots ,{\varvec{y}}\left( k\right) \right\} \), and an initial condition in (3), the IMMPF algorithm is implemented as described in Table 1.

Table 1 IMMPF based hybrid state estimation

\( Modification \): In the conventional IMMPF algorithm, the transition probability matrix \(\varvec{\Pi }\) is always assumed to be constant as prior knowledge. However, an unchanged transition probability matrix may reduce the filtering accuracy and also fail to recognize the correct mode. The reason for this is that when the health status of the multirotor changes, a new mode should be dominant, and its corresponding transition probability setting should be changed [39]. This problem can be solved by dynamically resetting the transition probability matrix after one anomaly is detected. The principle is to make the IMMPF algorithm “think” the dominant mode after an anomaly occurs is not the dominant one anymore. The detected anomalous mode should be viewed as a new dominant mode. Furthermore, the update process should be efficient without complex computations. Thus, an update of transition probability is added to the conventional IMMPF algorithm to achieve more accurate hybrid state estimations.

Suppose \(q\left( k-1\right) =q_{i}\) and \(q\left( k\right) =q_{j}\). If \(q_{i}=q_{j}\), then \(\varvec{\varvec{\Pi }}\left( k\right) =\varvec{\varvec{\Pi }}\left( k-1\right) \). Otherwise, \(\varvec{\varvec{\Pi }}\left( k\right) =\varvec{\Xi }\cdot \varvec{\varvec{\Pi }}\left( k-1\right) \cdot \varvec{\Xi }\), where \(\varvec{\Xi }\) is an elementary matrix, defined as follows:

$$\begin{aligned} \varvec{\Xi }=\left[ \begin{array}{ccccccc} 1\\ &{} \cdots \\ &{} &{} 0 &{} &{} 1 &{} \leftarrow i\text {th row}\\ &{} &{} &{} \ddots \\ &{} &{} 1 &{} &{} 0 &{} \leftarrow j\text {th row}\\ &{} &{} &{} &{} &{} \cdots \\ &{} &{} &{} &{} &{} &{} 1 \end{array}\right] , \end{aligned}$$

which means \({\varvec{\Pi }}\left( k\right) \) is obtained from \({\varvec{\Pi }}\left( k-1\right) \) by a simple row and column transformation. After the update, mode \(q_{j}\) at time k becomes dominant instead of mode \(q_{i}\). Through the modification, the filtering accuracy will be guaranteed. Furthermore, the restriction that accurate discrete dynamics should be known as priori knowledge for SHS modeling is relaxed.

Based on the M-IMMPF algorithm, the real-time probability distribution of the hybrid state \(\left( q,{\varvec{x}}\right) \) is estimated as follows:

$$\begin{aligned} \begin{aligned}{\mathcal {F}}\left( {\varvec{x}}\left( k\right) \left| q_{j}\left( k\right) \right. \right)&=\sum _{l=1}^{N}\varepsilon _{j}^{l}\left( k\right) \delta \left( {\varvec{x}}\left( k\right) -\hat{{\varvec{s}}}_{j}^{l}\left( k\right) \right) \\ {\mathcal {P}}\left\{ q_{j}\left( k\right) \right\}&=p_{j}\left( k\right) \end{aligned} ,j=1,2,3, \end{aligned}$$
(6)

where \(\delta \left( \cdot \right) \) is the Dirac function.

3.2 Health performance quantification

Based on the hybrid state estimation result, the health performance status of the multirotor can be evaluated and identified in a quantitative manner. Here, two health performance indicators are established: classical health degree and fuzzy health degree.

3.2.1 Classical health degree

Based on the assigned task trajectory of the multirotor in (4), a time-varying healthy space \({\mathbb {S}}_{\mathrm {H}}\) is defined as follows:

$$\begin{aligned} {\mathbb {S}}_{\mathrm {H}}\left( k\right) =\left\{ {\mathbb {R}}^{3}\left| \left\| \mathrm {^{e}}{\varvec{p}}\left( k\right) -\mathrm {^{e}}{\varvec{p}}^{{\mathcal {M}}}\left( k\right) \right\| _{\infty }\le \xi \right. \right\} , \end{aligned}$$
(7)

where \(\xi \) is a healthy threshold. As shown in Fig. 1, (7) presents a range and boundary of the multirotor deviating from the task.

Fig. 1
figure 1

Diagram of the healthy space

Thus, the classical health degree of the multirotor at time k can be defined as follows:

$$\begin{aligned} h_{\mathrm {c}}\left( k\right) ={\mathcal {P}}\left\{ \mathrm {^{e}}{\varvec{p}}\left( k\right) \in {\mathbb {S}}_{\mathrm {H}}\left( k\right) \left| \forall q_{j}\in {\mathcal {Q}}\right. \right\} . \end{aligned}$$
(8)

Equation (8) interprets that the classical health degree at time k as the probability of the multirotor staying in the healthy space at the moment, regardless of which discrete modes it belongs to. Since the real-time hybrid state estimation is obtained by the M-IMMPF algorithm in (6), the classical health degree of the multirotor under mode \(q_{j}\) can be calculated as follows:

$$\begin{aligned} \begin{array}{ll} h_{\mathrm {c},j}\left( k\right) &{} =\int _{{\mathbb {S}}_{\mathrm {H}}\left( k\right) }{\mathcal {F}}\left( {\varvec{x}}\left( k\right) \left| q_{j}\left( k\right) \right. \right) \mathrm {d}{\varvec{x}}\\ &{} =\sum _{l=1}^{N}\varepsilon _{j}^{l}\left( k\right) {\mathbf {1}}_{{\mathbb {S}}_{\mathrm {H}}\left( k\right) }\left( \hat{{\varvec{s}}}_{j}^{l}\left( k\right) \right) , \end{array} \end{aligned}$$

where \({\mathbf {1}}_{{\mathbb {S}}_{\mathrm {H}}}:{\mathbb {R}}^{3}\rightarrow \left\{ 0,1\right\} \) denotes the indicator function of set \({\mathbb {S}}_{\mathrm {H}}\) \(\subseteq {\mathbb {R}}^{3}\):

$$\begin{aligned} {\mathbf {1}}_{{\mathbb {S}}_{\mathrm {H}}}\left( {\varvec{s}}\right) =\left\{ \begin{array}{cc} 1\quad &{} {\varvec{s}}\in {\mathbb {S}}_{\mathrm {H}}\\ 0\quad &{} {\varvec{s}}\notin {\mathbb {S}}_{\mathrm {H}} \end{array}\right. . \end{aligned}$$

Then, the classical health degree of the multirotor is

$$\begin{aligned} \begin{aligned}h_{\mathrm {c}}\left( k\right)&=\sum _{j=1}^{M}h_{\mathrm {c},j}\left( k\right) \cdot p_{j}\left( k\right) .\end{aligned} \end{aligned}$$
(9)

3.2.2 Fuzzy health degree

The classical health degree is defined on a binary healthy space. However, for dynamical systems that can operate in a degraded level, the health performance goes through a series of degradation states from fully healthy to fully failed. It is limited to characterizing the health performance of the system with a binary threshold in certain situations. Thus, the fuzzy health degree is constructed to achieve a quantitative description of the health performance of the multirotor, which is more efficient and logical than the one proposed previously [29].

For \(\varDelta _{p}\left( k\right) =\left\| \mathrm {^{e}}{\varvec{p}}\left( k\right) -\mathrm {^{e}}{\varvec{p}}^{{\mathcal {M}}}\left( k\right) \right\| _{\infty }\), we define the fuzzy healthy membership function \(\mu \left( \varDelta _{p}\left( k\right) \right) \). Then, the fuzzy health degree of the multirotor at time k is the fuzzy probability that the multirotor is in a fuzzy healthy status at the moment. Since the real-time hybrid state estimation is obtained by the M-IMMPF algorithm in (6), the fuzzy health degree of the multirotor under mode \(q_{j}\) can be calculated as follows:

$$\begin{aligned} \begin{array}{ll} {\scriptstyle {\textstyle h_{\mathrm {f},j}\left( k\right) }} &{} {\scriptstyle {\textstyle =\int _{{\mathbb {R}}^{3}}\mu \left( \varDelta _{p}\left( k\right) \right) \cdot {\mathcal {F}}\left( {\varvec{x}}\left( k\right) \left| q_{j}\left( k\right) \right. \right) \mathrm {d}{\varvec{x}}}}\\ {\textstyle } &{} {\scriptstyle {\textstyle =\sum _{l=1}^{N}\mu \left( \varDelta _{p}\left( k\right) \right) \cdot \varepsilon _{j}^{l}\left( k\right) {\mathbf {1}}_{{\mathbb {R}}^{3}}\left( \hat{{\varvec{s}}}_{j}^{l}\left( k\right) \right) .}} \end{array} \end{aligned}$$

Then, the fuzzy health degree of the multirotor is

$$\begin{aligned} h_{\mathrm {f}}\left( k\right) =\sum _{j=1}^{M}h_{\mathrm {f},j}\left( k\right) \cdot p_{j}\left( k\right) . \end{aligned}$$
(10)

In this section, the state variables of the multirotor used for health performance quantification are denoted as \(\mathrm {^{e}}{\varvec{p}}\), since the multirotor is defined to be healthy if it flies following a predefined trajectory with a deviation in a tolerant range in this paper. Note that the health definition of a multirotor is related to its application scenario. In some mission scenarios, such as hovering surveillance, the flight attitude of the multirotor should be given more attention. Under these circumstances, the variables in \(\varTheta \) should be considered in the definition and computation of the classical and fuzzy health degrees. Thus, the health performance quantification method proposed in this part can be extended to different definitions of the health performance of multirotors.

4 Case study

In this section, a faulty multirotor with sensor anomalies during flight is used to prove the effectiveness of the proposed health performance evaluation method. The multirotor is required to fly to sequential waypoints and hover at these points for different time intervals, where GPS and barometer anomalies occur alternately during the task. The simulation design, results and discussion are presented below.

4.1 Simulation design

4.1.1 SHS-based model configuration

The parameters in the multirotor dynamics and the wind force and turbulence model are listed in Table 2. Note that the embedded flight controller was properly set by the trial method based on simulations [40].

Table 2 Multirotor model parameters

Since the GPS and barometer readings are anomalous, the SHS-based multirotor model is built by setting the discrete modes as a fully healthy mode \(q_{1}\), a GPS anomalous mode \(q_{2}\), and a barometer anomalous mode \(q_{3}\), which is expressed as

$$\begin{aligned} \mathcal {Q=}\left\{ q_{1},q_{2},q_{3}\right\} . \end{aligned}$$

For \(\forall q_{j}\in {\mathcal {Q}}\), we have its continuous dynamics as presented in (2), where the process equations satisfy

$$\begin{aligned} \left\{ \begin{array}{ll} {\varvec{F}}_{1}\left( \cdot \right) &{} ={\varvec{F}}_{2}\left( \cdot \right) ={\varvec{F}}_{3}\left( \cdot \right) ={\varvec{F}}\left( \cdot \right) \\ \varvec{\Gamma }_{{\varvec{w}},1} &{} =\varvec{\Gamma }_{{\varvec{w}},2}=\varvec{\Gamma }_{{\varvec{w}},3}=\varvec{\Gamma }_{{\varvec{w}}}\\ {\mathbf {Q}}_{1} &{} ={\mathbf {Q}}_{2}={\mathbf {Q}}_{3}={\mathbf {Q}} \end{array}\right. \end{aligned}$$

and

$$\begin{aligned} \begin{array}{cc} {\mathbf {Q}}\!=\!\text {diag}\!\!\left\{ \!\! \begin{array}{l} {\varvec{w}}\left( \cdot \right) \sim {\mathcal {N}}\left( {\varvec{0}},{\mathbf {Q}}\right) \\ \left\{ \!\begin{array}{llllll} 0.01,&{}0.01,&{}0.01,&{}0.01,&{}0.01,&{}0.01,\\ 0.001,&{}0.001,&{}0.001,&{}0.001,&{}0.001,&{}0.001 \end{array}\right\} \\ \varvec{\Gamma }_{{\varvec{w}}}=\text {diag}\left\{ 0,0,0,1,1,1,0,0,0,1,1,1\right\} \end{array}\right. \!\!\!.\end{array} \end{aligned}$$

As to the measurement equation, for mode \(q_{1}\) representing the fully healthy status, we have

$$\begin{aligned} \left\{ \begin{aligned}{\mathbf {C}}_{1}&\varvec{=}\left[ \begin{array}{c} {\varvec{c}}_{1}\\ {\varvec{c}}_{2}\\ \vdots \\ {\varvec{c}}_{12} \end{array}\right] \\ \varvec{\Gamma }_{{\varvec{v}},1}&=\varvec{\Gamma }_{{\varvec{v}}} \end{aligned} \right. , \end{aligned}$$

where \({\varvec{c}}_{i}\) is the ith row of \({\mathbf {C}}_{1}\). For mode \(q_{2}\) representing the GPS anomalous mode, the components \(\left\{ ^{\mathrm {e}}p_{x},^{\mathrm {e}}p_{y}\right\} \) of \({\varvec{x}}\) might be incorrectly measured, and even the GPS measurements are completely lost. Then, we have

$$\begin{aligned} {\mathbf {C}}_{2}={\mathbf {C}}_{1}\Bigg \backslash \left[ \begin{array}{c} {\varvec{c}}_{1}\\ {\varvec{c}}_{2} \end{array}\right] , \end{aligned}$$

which is interpreted as \({\mathbf {C}}_{2}\) being the remaining part after removing the rows \({\varvec{c}}_{1}\) and \({\varvec{c}}_{2}\) from \({\mathbf {C}}_{1}\). The meaning of \({\mathbf {C}}_{2}\) is that whether the GPS signal can be received or not, the continuous state update under mode \(q_{2}\) does not consider GPS measurements. According to this principle, for mode \(q_{3}\), we have

$$\begin{aligned} \begin{array}{c} {\mathbf {C}}_{3}={\mathbf {C}}_{1}\backslash {\varvec{c}}_{3}\end{array}, \end{aligned}$$

since the height \(^{e}p_{z}\) is the 3rd component of \({\varvec{x}}\). For simplicity, set \({\mathbf {C}}={\mathbf {I}}_{12}\), which means all state variables can be directly measured. For measurement noise \({\varvec{v}}_{j}\) and the noise driven matrix \(\varvec{\Gamma }_{{\varvec{v}},j}\) under each mode \(q_{j}\), we set

$$\begin{aligned} \begin{array}{cc} q_{1}\!:\! &{} \left\{ \! \begin{array}{l} {\varvec{v}}_{1}\left( \cdot \right) \sim {\mathcal {N}}\left( {\varvec{0}},{\mathbf {R}}_{1}\right) \\ {\mathbf {R}}_{1}\!=\!\text {diag}\left\{ \begin{array}{c} 0.1,0.1,0.1,0.5,0.5,0.5,0.001,\\ 0.001,0.001,0.001,0.001,0.001 \end{array}\right\} \\ \varvec{\Gamma }_{{\varvec{v}},1}=\text {diag}\left\{ 1,1,1,1,1,1,1,1,1,1,1,1\right\} \end{array}\right. \!\!\!.\end{array} \end{aligned}$$

For modes \(q_{2}\) and \(q_{3}\), the matrices \({\mathbf {R}}_{j}\) and \(\varvec{\Gamma }_{{\varvec{v}},j}\) can be obtained following the same conversion rules as those used for \({\mathbf {C}}_{j}\) . The transition probability matrix in the discrete dynamics is set as

$$\begin{aligned} \varvec{\Pi }=\left[ \begin{array}{ccc} 0.98 &{} 0.01 &{} 0.01\\ 0.1 &{} 0.9 &{} 0\\ 0.1 &{} 0 &{} 0.9 \end{array}\right] . \end{aligned}$$
Table 3 Task trajectory

Here, there are two aspects that should be noted. First, except for the GPS and barometers, other on-board equipment of the multirotor is considered to be healthy, including the propulsors and other sensors, such as compasses, gyroscopes, and accelerometers. Second, at most only one anomaly in the GPS or barometer occurs at an identical time, since there is little chance that the two sensors are both anomalous at the same time for a qualified multirotor product. These two points confine the number of the discrete modes of the SHS-based multirotor model. In fact, the number of discrete modes determines the complexity and real-time performance of the M-IMMPF algorithm. Therefore, the computational power of the ground station of the multirotor and the programming method of the algorithm limit the maximum number of discrete modes. References [22, 29] conformed this by setting three and four modes for the same case. Actually, the mode number and the computational power are a trade-off. More modes require advanced hardware to provide more sufficient computational power. Similarly, in practical applications, real hardware devices determine the maximum number of modes that can be handled. However, this is not the emphasis of this paper, because the number of discrete modes does not change the framework and implementation of the proposed health performance assessment method.

4.1.2 Health performance quantification configuration

To compute the classical and fuzzy health degrees, we set the healthy threshold and fuzzy healthy membership function as follows:

$$\begin{aligned} \xi =0.5\text { m} \end{aligned}$$

and

$$\begin{aligned} \mu \left( \varDelta _{p}\right) =\left\{ \begin{array}{ll} 1 &{} \varDelta _{p}\in \left[ 0,0.2\mathrm {m}\right] \\ \frac{\varDelta _{p}-1}{-0.8} &{} \varDelta _{p}\in \left( 0.2\mathrm {m},1\mathrm {m}\right] \\ 0 &{} \varDelta _{p}\in \left( 1\mathrm {m},+\infty \right) \end{array}\right. . \end{aligned}$$

Here, the selection of \(\xi \) and \(\mu \left( \varDelta _{p}\right) \) plays an important role in the health performance quantification, since an inappropriate configuration will lead to problems such as false or missed alarms of the health performance degradation. In practice, the values should be determined by historical data and reliability tests of multirotors, practical engineering requirements, and expert experience.

4.1.3 Task and anomaly design

The whole simulation time was \(160\text { s}\). In the task, a multirotor was required to fly along a predefined trajectory, which could be described by a series of waypoints. The details are shown in Table 3. For example, the multirotor was commanded to hover at the waypoint \(\left[ 5,0,5\right] \) from 20 to 30 s, and then the multirotor flew to the next waypoint \(\left[ 5,0,10\right] \) and hovered there. During the task, different types of GPS and barometer anomalies occurred alternately, as shown in Table 4. To simulate GPS measurements with large noise, the corresponding parameters in \({\mathbf {R}}_{1}\) of \({\varvec{v}}_{1}\left( \cdot \right) \) were increased as follows:

$$\begin{aligned} {\mathbf {R}}_{1}\left( 1,1\right) ={\mathbf {R}}_{1}\left( 2,2\right) =5.1. \end{aligned}$$

For the GPS measurement drift, we add a random value to the measurements of \(\mathrm {^{e}}p_{x}\) and \(^{\mathrm {e}}p_{y}\), as follows:

$$\begin{aligned} \left\{ \begin{array}{l} {\varvec{y}}\left( k\right) ={\mathbf {C}}_{1}{\varvec{x}}\left( k\right) +\varvec{\Gamma }_{{\varvec{v}},1}{\varvec{v}}_{1}\left( k\right) +\varDelta _{y}\left( k\right) \\ \varDelta _{y}\left( k\right) =\left[ \varDelta _{1}\left( k\right) ,\varDelta _{2}\left( k\right) ,0,\ldots ,0\right] ^{\mathrm {T}}\\ \varDelta _{1}\left( k\right) =3+\zeta _{1}\left( k\right) \\ \varDelta _{2}\left( k\right) =5+\zeta _{2}\left( k\right) \\ \zeta _{1}\left( \cdot \right) \sim {\mathcal {N}}\left( 0,0.01\right) ,\zeta _{2}\left( \cdot \right) \sim {\mathcal {N}}\left( 0,0.01\right) \end{array}.\right. \end{aligned}$$

For the loss of the GPS measurements, the related measurements are changed to

$$\begin{aligned} \left\{ \begin{array}{c} y_{1}\left( k\right) =y_{1}\left( k-1\right) \\ y_{2}\left( k\right) =y_{2}\left( k-1\right) \end{array}\right. . \end{aligned}$$

For barometer anomalies, similar variations are performed to generate related measurements.

Table 4 Anomaly occurrence scenario

4.2 Results

The proposed health performance evaluation method was performed for the presented simulation scenario. The results are shown in Figs. 2-8. Fig. 2 depicts the three-dimensional wind velocities of the simulated wind turbulence in the established simulation scenario. It clearly shows that the wind disturbances experienced by the multirotor in an actual flight process are colored noise, which cannot be simply modeled with a Gaussian-distributed noise. This indicates the necessity of the established wind force and turbulence modeling method. The hybrid state estimation result is shown in Figs. 3-6. According to the definition of classical and fuzzy health degrees, the components \(\mathrm {^{e}}{\varvec{p}}\) in \({\varvec{x}}\) are examined in this section. Fig. 3 compares the variation of the measured and estimated values of \(\mathrm {^{e}}{\varvec{p}}\). Fig. 4 depicts the variation of the true and estimated values of \(\mathrm {^{e}}{\varvec{p}}\), and the task trajectory as shown in Table 3. Despite the incorrect sensor measurements, and even sensor signal loss, the state variables in \({\varvec{x}}\) could also be estimated by the M-IMMPF algorithm. Furthermore, when sensor anomalies (especially sensor signal lost) occur, the estimated values of \({\varvec{x}}\) will fluctuate within a small range, which deviate from their true values. It should be noted that the estimated values of \(\mathrm {^{e}}{\varvec{p}}\) depicted in Fig. 4 are estimates with the minimum variance for display purposes. Actually, the probability distribution of the hybrid state \(\left( q,{\varvec{x}}\right) \) is used for health performance evaluation. The probability distribution function \(f\left( {\varvec{x}}\left( k\right) \left| q_{j}\left( k\right) ,{\mathbf {Y}}^{k}\right. \right) \) in (6) is represented by a number of particles by the M-IMMPF algorithm, which is difficult to depict. Nevertheless, Fig. 5 shows the probability distribution of different modes \(p_{j}\left( k\right) \) in (6), which is used in the health performance quantification in (9) and (10). On this basis, Fig. 6 presents the mode recognition results based on the M-IMMPF algorithm. This indicates that a dominant mode of the multirotor is able to be mostly recognized by the M-IMMPF algorithm, meaning that the M-IMMPF algorithm has the ability to detect faults. Although fault detection is not the main purpose of the proposed method, Fig. 6 proves the effectiveness and accuracy of the hybrid state estimation result based on M-IMMPF. For health performance quantification, the computed classical health degree is depicted in Fig. 7, and the computed fuzzy health degree is depicted in Fig. 8. This indicates that when a sensor anomaly occurs, both the classical and fuzzy health degrees decrease to some extent, which proves that their variations can reflect the health performance variations of the multirotor as effective indicators of the health performance status.

Fig. 2
figure 2

Simulated wind turbulence

Fig. 3
figure 3

Measured and estimated values of \(\mathrm {^{e}}{\varvec{p}}\)

Fig. 4
figure 4

True and estimated values of \(\mathrm {^{e}}{\varvec{p}}\)

Fig. 5
figure 5

Mode probability distribution of the SHS-based model

Fig. 6
figure 6

Mode recognition result based on the M-IMMPF algorithm

Fig. 7
figure 7

Health performance quantification result based on classical health degree

Fig. 8
figure 8

Health performance quantification result based on fuzzy health degree

4.3 Discussion

To quantitatively assess the effectiveness of the proposed health evaluation method, three error indicators, namely root mean square error (RMSE), mean absolute error (MAE) and mean relative error (MRE), are employed to prove the effectiveness and accuracy of the hybrid state estimation result. Fig. 4 presents the true and estimated values of \(\mathrm {^{e}}{\varvec{p}}\). The error indicators are calculated. For example, the calculation formulas of the above error indicators for the state variable \(\mathrm {^{e}}p_{x}\) are as follows:

$$\begin{aligned} \left\{ \begin{array}{ll} e\left( k\right) &{} =\mathrm {^{e}}p_{x}\left( k\right) -\mathrm {^{e}}\hat{p}_{x}\left( k\right) \\ \mathrm {RMSE} &{} =\sqrt{\frac{1}{N}\sum _{k=1}^{N}e^{2}\left( k\right) }\\ \mathrm {MAE} &{} =\frac{1}{N}\sum _{k=1}^{N}\left| e\left( k\right) \right| \\ \mathrm {MRE} &{} =\frac{1}{N}\sum _{k=1}^{N}e\left( k\right) \end{array}\right. . \end{aligned}$$

The results are shown in Table 5. From the average effect, the estimation error of the real-time position of the multirotor is within an acceptable range, since the error range is much smaller than the variation range of the multirotor flight trajectory.

Despite the error analysis, the advantages of the proposed method can be further demonstrated through two comparisons. First, a comparison between the M-IMMPF and conventional IMMPF algorithms is made. For clarity, only the mode recognition result based on the conventional IMMPF algorithm is depicted here, as shown in Fig. 9. The conventional IMMPF algorithm fails to identify the correct dominant mode of the multirotor, let alone evaluate the real-time health performance status of multirotor. A comparison of Figs. 6 and 9 demonstrates the necessity of the transition probability updating process, and the effectiveness and advantages of the proposed M-IMMPF algorithm.

Table 5 Calculated error indicators
Fig. 9
figure 9

Mode recognition result based on the conventional IMMPF algorithm

For health performance quantification, Figs. 7 and 8 clearly show that when an anomaly occurs, the classical health degree fluctuates more heavily than the fuzzy health degree, and the variation of the fuzzy health degree is sensitive to variations of the health performance status, especially when the multirotor still flies in a variable degradation condition. The reason for this difference is that the classical health degree uses a sharp threshold to determine the health performance status of the multirotor, while the fuzzy health degree uses fuzzy states to characterize the health performance. Both methods have advantages. For safety-critical scenarios, the multirotor cannot tolerate slight anomalies, and an emergency decision should be made based on slight health performance degradation. In this case, the classical health degree is required to monitor the health performance status of the multirotor. For mission-critical scenarios, the first priority of a multirotor is to successfully complete the mission, and it is acceptable to fly with a degraded or with an average tolerant health performance status. In this case, the fuzzy health degree is more suitable. Thus, the selection of the health performance indicators should be based on practical engineering demands.

Another comparison is made between the fuzzy health degree proposed in this paper and that proposed previously in [29]. Reference [29] established two forms of the fuzzy health degree, \(R_{sys1}\) and \(R_{sys2}\) . The calculation equations are

$$\begin{aligned} R_{sys1}=R_{^{\mathrm {e}}p_{x}}\cdot R_{^{\mathrm {e}}p_{y}}\cdot R_{^{\mathrm {e}}p_{z}} \end{aligned}$$

and

$$\begin{aligned} R_{sys2}=\frac{1}{3}\left( R_{^{\mathrm {e}}p_{x}}+R_{^{\mathrm {e}}p_{y}}+R_{^{\mathrm {e}}p_{z}}\right) . \end{aligned}$$

Apparently, \(R_{sys1}\) considers that \(\left\{ ^{\mathrm {e}}p_{x},^{\mathrm {e}}p_{y},^{\mathrm {e}}p_{z}\right\} \) influence the health performance evaluation result of the multirotor in a serial form, and any state variable can totally affect the health performance of the system. \(R_{sys2}\) considers that each state variable only influences the health performance status of the multirotor in a weighted form, and the health performance of the system is a weighted sum of the health performance statuses of the state variables of interest. The detailed algorithm is presented previously in [29]. In this way, the health performance quantification results based on \(R_{sys1}\) and \(R_{sys2}\) are shown Fig. 10. A comparison with Fig. 8 shows that both \(R_{sys1}\) and \(R_{sys2}\) have limitations. The value of \(R_{sys1}\) is arbitrary to some extent, since deviations of multiple state variables influence the variation of the fuzzy health degree in a overlapping manner. As to \(R_{sys2}\), its value mostly varies in a relatively small range, since when a single state variable deviates from its expected value, the influence on the health performance evaluation result will be weakened due to the weighted (averaged) computation. The fuzzy health degree calculated by the method proposed in this paper can be viewed as a compromise between \(R_{sys1}\) and \(R_{sys2}\), considering both sensitivity and robustness. More importantly, the algorithm of the fuzzy health degree reported in [29] requires a discretization step, since the probability distribution of the state variables of the multirotor conforms to a multivariate Gaussian distribution. The accuracy of the evaluation result is positively related to the fineness of the discretization. This leads to a heavier computational burden than that of the algorithm of the fuzzy health degree proposed in this paper, since the proposed algorithm in this paper is implemented on the continuous domain of state variables of the multirotor.

Fig. 10
figure 10

Fuzzy health degree result based on the algorithm in [29]

The limitations of the proposed method lie in two aspects. First, the health performance evaluation result of the multirotor is sensitive to external disturbances, even if a filtering-based method is employed. In low-intensity wind disturbances, such as low-speed wind turbulence, the filtering-based method can achieve a basically satisfactory anti-disturbance effect, and the health performance evaluation result has a high degree of credibility. However, for high-intensity wind disturbances, such as high-speed wind turbulence or gusts, the real-time flight position of the multirotor will deviate from the predetermined flight trajectory, resulting in a decline in health. This is not caused by anomalous on-board components, but caused by disturbances. Strictly speaking, it cannot be regarded as the deterioration of the health performance of the multirotor. Second, the capacity of the algorithm is not determined, that is, how many sensor anomalies can be covered by this method, and meanwhile ensures its effectiveness. To obtain accurate health evaluation results, it is necessary to accurately estimate the hybrid state of the SHS-based multirotor model. Therefore, an observability analysis of the model can determine the capacity of the algorithm. However, it should be noted that for current multirotor products, the observation of aircraft state variables mostly relies on the fusion of multiple sensor signals, and the capacity of the algorithm also depends on the type and number of sensors on the aircraft.

5 Conclusion

In this paper, a health performance evaluation method of multirotors under wind turbulence is proposed. During the SHS-based multirotor modeling, the Dryden wind turbulence model is used to describe the turbulent wind field, which models the wind disturbances on the multirotor as colored noise. The M-IMMPF algorithm is proposed to estimate the real-time hybrid state of the SHS-based multirotor model, where the probability distribution of the hybrid state is described by a certain number of particles. Finally, the health performance status of the multirotor is quantified by both classical and fuzzy health degrees as indicators. A case study proved the effectiveness of the proposed method, where the error indicators RMSE, MAE, and MRE were all in acceptable ranges. This method detects the real-time health performance degradation of the multirotor in a realistic wind field, and quickly and accurately provides a health quantitative value, which provides a reference for making reliable flight decisions. Furthermore, compared to the conventional IMMPF algorithm and fuzzy health degree proposed in a previous study, the advantages of the M-IMMPF algorithm are demonstrated, and the rationality and efficiency of the proposed fuzzy health degree are proven. In future research, there are three aspects that require further study. First, other multirotor anomalies, such as airframe damage and propulsor faults, should be taken into account to extend the applicability of the proposed method. Furthermore, other sensor anomalies should be embedded in the proposed method, and an observability analysis should be performed to determine the minimum number of accurately observed variables for the scheme to be applicable. Second, a health performance evaluation algorithm for a homogeneous multirotor team can be investigated, because the members of the team suffer from similar disturbances in a similar wind field. The study can help to estimate the form and amplitude of the disturbances and to mitigate their impact on the evaluation. Finally, how to properly set a multirotor’s flight strategy based on different health evaluation results should also be studied.