1 Introduction

In engineering applications, a fault can be defined as the unacceptable deviation of a parameter or property of a system from their nominal conditions [19]. In this sense, both the complexity of processes and the large number of variables that are monitored and controlled have significantly increased the probability of fault occurrence [21]. This scenario has motivated the development of diagnostic and control techniques to improve reliability and safety, and even guarantee an acceptable performance in presence of faults [1, 17, 25, 26].

Fault diagnosis involves warning about the occurrence of faults (detection) and provide their location, nature or characteristics (isolation) [10]. In this context, fault detection and isolation (FDI) methods often use approaches based on physical or analytical redundancy. In the first case, signals from different hardware components, e.g., sensors, are compared for further processing using statistical and signal processing techniques [21]. For its part, analytical redundancy focuses on model-based and estimation schemes, thus reducing the investment in hardware [15]. This work is performed under this framework.

In recent years, different approaches for FDI have been developed. Reviews [19] and [20] present a general classification of FDI methods based on parity equations, parameter estimation, unknown inputs observers, extensions of Kalman filter, optimization, and stochastic processes. Furthermore, [37] shows a general overviews of the main model-based strategies to deal with incipient faults focusing on statistical classifiers, Luenberger and sliding mode observers, and optimizations based on linear matrix inequalities (LMI), among others. Similarly, methods for nonlinear systems [7], discrete event systems [38], and cyber-physical systems [8] have been studied. Additionally, some data-based strategies based on fuzzy logic [29], hybrid computing [23], and support vector machine [41] have also been explored.

Although fault diagnosis schemes are diverse, most are based on residual generation and fault identification (estimation). Residuals show the difference between the fault-free operation and the performance under fault conditions [33]. These signals present deviations when the fault occurs, and they must be sensitive to a single fault allowing its isolation. On the other hand, fault identification provides more accurate information on the dynamics of the fault; however, its online implementation is often more complex [10]. In general, FDI strategies are negatively affected by noise, parameter uncertainty, and unknown disturbances, making the diagnosis process difficult [12]. Likewise, the effectiveness against multiple, intermittent and simultaneous faults is still a challenge [26, 34].

The algebraic identification method, introduced by Fliess and Sira-Ramírez in [14], is characterized by performing an analytical treatment on the system model, which includes derivations with respect to time, multiplication by powers of time (or other functions), and iterated integration by conventional methods [13]. This procedure is carried out to estimate unknown parameters using equations independent of initial conditions, free of explicit derivatives, and less sensitive to noise and structured disturbances [35]. This method has been commonly used in the estimation of harmonic content in electrical power systems [3], filtering of signals affected by noise [31], identification of vibration modes in flexible structures [39], control of magnetic levitation systems [24], industrial processes [27], and motion control systems [30].

Although algebraic identification has multiple applications, some practical restrictions have limited this approach. These include: (a) manipulation of nonlinear operations that include derivatives of the system outputs [40]; (b) high computational complexity when estimating multiple parameters [5]; and (c) constraints imposed by the numerical conditioning and the persistence of excitation [14]. In fact, FDI applications of algebraic identification methods have been confined to linear systems and experimental results have not been reported [11, 12, 22, 32].

To deal with the mentioned issues, this work proposes three strategies for fault diagnosis based on residual generation, fault identification and parameter estimation. These schemes integrate algebraic treatment and the use of extended state observers (ESO). Under this approach, the ESO provide an estimation of the derivatives of the system outputs, facilitating the direct calculation of complex nonlinear operations, which are difficult to solve analytically. In this way, features of the classic algebraic framework such as the elimination of initial conditions, intrinsic noise filtering, rapid estimation, and statistical independence in noise treatment are kept. In addition, the proposed schemes estimate as few parameters as possible, making their implementation simpler. These strategies also avoid using auxiliary estimators, switching policies, sliding window integrals, or filters to smooth the estimated signals [5, 40].

Summarizing, the novel contributions in this paper are:

  • Three alternatives for fault diagnosis based on an improved algebraic identification method are given. These proposals are analyzed and compared to establish their features and application scenarios.

  • The classic algebraic method is reconditioned to maintain its strengths and solve difficulties associated with the complexity and the numerical conditioning. This allows a proper implementation in FDI context.

  • The main upgrading is the use of extended state observers to estimate time derivatives of measurable variables, which are present in complex nonlinear terms of the dynamics of the system. In this way, the implementation of the algebraic identifiers is facilitated.

  • Experimental validation is performed on a nonlinear multivariable system affected by actuator faults. The results demonstrate the applicability and practical viability of the proposed strategies.

The remaining of this paper is organized as follows: Section 2 introduces the algebraic framework for fault diagnosis. Section 3 describes the algebraic residual generation scheme. Section 4 presents an algebraic fault identification strategy. Section 5 discuses the fault diagnosis via algebraic parameter estimation. Section 6 shows the experimental validation for the case study of a twin-rotor aerodynamics system affected by multiple, intermittent, and simultaneous actuator faults. Finally, Sect. 7 summarizes the conclusions of this work.

2 Algebraic framework for fault diagnosis

Fault detection and isolation (FDI) are the basic objectives of fault diagnosis. Therefore, to clarify the scope of the strategies that will be proposed later, this section introduces some definitions concerning fault diagnosis under an algebraic framework.

Consider the following nonlinear system affected by faults:

$$\begin{aligned} \begin{array}{c} {\dot{x}}(t)=g(x,u,f)\\ y(t)=h(x,u,f), \end{array} \end{aligned}$$
(1)

where \(x\in {\mathbb {R}}{}^{n} \) represents the state vector, \( u \in {\mathbb {R}} {} ^ {k} \) is the input vector, \( y \in {\mathbb {R}} {} ^ {p} \) is the output vector (measurable), and \( f \in {\mathbb {R}} {} ^ {\mu } \) is the fault vector (unknown inputs). In regards to system (1) the following definitions are considered:

Definition 1

A state x is algebraically observable if it is related to y, u, and their time derivatives by a polynomial equation [2].

Definition 2

A fault f is algebraically detectable, if and only if, it indeed influences the output variables [11].

Definition 3

A fault f is differential algebraically isolable, if it satisfies an unique parity differential equation in terms of the input and output variables, and their time derivatives. In systems with multiple faults, there must be multiple parity equations. [13].

Definition 4

System (1) is algebraically diagnosable, if the fault f can be estimated from the system equations and the available information of u and y [6].

Taking into account the above considerations, the proposed strategies for fault diagnosis aided by extended state observers (ESO) are presented in the next sections.

3 Algebraic residual generation assisted by ESO

Fault detection can be carried out by analyzing signals that warn the difference between fault-free and fault-affected behaviors. These signals called residuals are obtained by performing a mathematical treatment of the system model. Like diagnosis methods based on fault identification/estimation, the residual generation should face the following challenges:

  1. 1.

    To provide algorithms based exclusively on known inputs and measured outputs. Although direct handling of the mathematical model gives ideal expressions for the residuals, these rely on explicit derivatives of the system states and outputs [2]. Besides, the complexity of such terms depends on the system order and the particular nonlinear operations. In this sense, observers can be used to obtain estimations of the required variables. Nevertheless, factors such as noise and uncertainty cause estimation errors, which affect the accuracy and speed of fault diagnosis [9, 24].

  2. 2.

    To avoid dependence on initial conditions of system states. This feature is especially relevant when the analytical procedure implies performing integrals since the performance of strategies can decreased by uncertainty in specific test conditions, e.g., initial values of positions, velocities, temperatures, voltages, and levels [40]. Therefore, it is preferable that the diagnosis process should not depend on any initial condition.

Motivated by the above requirements, the algebraic methodology can be used to eliminate initial conditions as well as to minimize the explicit derivatives. However, to tackle complex nonlinear operations, which have difficult analytical handling in the classic algebraic approach, this work proposes their direct calculation from estimations of the time derivatives of the outputs, which are provided by extended state observers (ESO).

3.1 Algebraic residuals

Consider the following class of perturbed nonlinear systems:

$$\begin{aligned} y^{(n)} \!=\! \kappa (t, y, \varPhi ) u \!+\! \zeta (t, y, {\dot{y}}, ..., y ^{(n-1)},\varPhi ) \!+\! f(t),\nonumber \\ \end{aligned}$$
(2)

where n is the system order, y is the output, the state vector is comprised by \(x=[x_1 \cdots x_n]=[y \cdots y^{(n-1)}]\), \(\kappa (t, y,\varPhi )\) is the control gain,

\(\zeta (t, y,{\dot{y}}, \cdots , y^{(n-1)},\varPhi )\) is a drift function, \(\varPhi \) is the parameter vector, \(Y_{0} = [y(t_0), {\dot{y}}(t_0), \cdots , y^{(n-1)}(t_0)]\) is the set of initial conditions, and f(t) represents an additive fault function.

Fig. 1
figure 1

Resetting and retain scheme. The integrals are reinitialized at \(T_r\), the last estimated values are retained until \(T_h\), and new estimates are available for \(t= (T_h, T_r)\)

The general procedure for algebraic residual generation from equation (2) is as follows:

  1. 1.

    Rewrite model (2) as a parity equation solving for the fault function (ideal residual) as follows

    $$\begin{aligned} f(t)= & {} y^{(n)} - \kappa (t, y, \varPhi _n) u \nonumber \\&- \zeta (t, y, {\dot{y}}, ..., y ^{(n-1)}, \varPhi _n), \end{aligned}$$
    (3)

    where \(\varPhi _n\) is the nominal (known) parameter vector.

  2. 2.

    Multiply equation (3) by \((-t)^{n}\) to eliminate initial conditions. It is also possible to use other suitable functions of time, such as sinusoidal, rational, or bounded exponential. However, this change can make analytical development in nonlinear models more tedious. Seeking to avoid equations with explicit derivatives of the system outputs, especially the highest order ones, in the next step iterated integrals will be carried out. Nevertheless, the numerical evaluation of these integrals, without any type of conditioning, requires knowledge of the initial conditions. Hence, to obtain expressions free of initial values, convolutions with functions of time are previously performed as proposed in this step [40].

  3. 3.

    Carry out n iterated integrals, denoted as

    $$\begin{aligned}&\int ^{(n)}\beta (t)=\int _{t_{0}}^{(n)}\beta (t)=\int _{t_{0}}^{t}\int _{t_{0}}^{\uplambda _{1}}\ldots \nonumber \\&\quad \int _{t_{0}}^{\uplambda _{n-1}}\beta (\uplambda _{n})d\uplambda _{n}\ldots d\uplambda _{1}, \end{aligned}$$
    (4)

    where \(\beta (t)\) is any term in the equation after step 2. That is, \((-t)^n f(t) \). This procedure also has an intrinsic filtering effect, since noise that corrupts the outputs and their estimated derivatives is attenuated by the repeated integrals, which act as low pass filters [18].

  4. 4.

    Use an ESO to estimate time-derivatives in step 3. This is useful where there are integrals of nonlinear operations between states, powers of time, and time derivatives of outputs. Defining \(\xi (t)= \zeta (t, y, {\dot{y}}, ..., y ^{(n-1)}) + f(t)\) as the total disturbance of system (2), which has an ideal internal model \({d\xi (t)/}{dt}=0\), then a full-order ESO is designed as follows [35]

    $$\begin{aligned} \dot{\hat{x}} =A\hat{x}+B\kappa (t,y,\varPhi _n)u+L\left( y-\hat{y}\right) , \end{aligned}$$
    (5)

    where \(\hat{x}=\left[ \hat{x}_{1} \cdots \hat{x}_{n+1} \right] ^{T}\) is the estimated vector of \(x=\left[ x_{1} \cdots x_{n+1}\right] ^{T}\) with \(x_{1}=y\), \(x_{2}={\dot{y}}\), \(x_{n}=y^{(n-1)}\), \(x_{n+1}=\xi \). In addition, \(L=\left[ l_{n} \cdots l_{0}\right] ^{T}\) represents the observer gain vector, and matrices A and B are

    $$\begin{aligned}&A=\left[ \begin{array}{ccccc} 0 &{} 1 &{} 0 &{} \cdots &{} 0\\ 0 &{} 0 &{} 1 &{} \cdots &{} 0\\ \vdots &{}\vdots &{} \vdots &{} \ddots &{}\vdots \\ 0 &{} 0 &{} 0 &{} \cdots &{} 1\\ 0 &{} 0 &{} 0 &{} \cdots &{} 0 \end{array}\right] \in {\mathbb {R}}{}^{(n+1)\times (n+1)}, \end{aligned}$$
    (6)
    $$\begin{aligned}&B=\left[ \begin{array}{c} 0\\ \vdots \\ 1_{(nth)}\\ 0 \end{array}\right] \in {\mathbb {R}}{}^{(n+1)\times 1}. \end{aligned}$$
    (7)

    The characteristic polynomial to tune the ESO has the form

    $$\begin{aligned} p_{o}(s)=s^{n+1}+l_{n+1}s^{n+1}+\cdots +l_{1}s+l_{0}. \end{aligned}$$
    (8)

    It is worth noting that \( {\hat{x}} \) can be used for the fault diagnosis scheme and the controller, both on an active disturbance rejection framework.

  5. 5.

    Formulate the implementable algebraic residual as follows

    $$\begin{aligned} r(t)=\int ^{(n)}(-t)^{n}f(t). \end{aligned}$$
    (9)
  6. 6.

    Analyze the residual for fault diagnosis.

Remark 1

In the ideal case, residuals should be equal to zero. However, in practice, it is more reasonable to consider thresholds due to noise parameter uncertainty and external disturbances. These thresholds can be tuned experimentally from the fault-free behavior.

Remark 2

Algebraic residual generation does not require parameter estimation. This means that restrictions caused by numerical conditioning and computational complexity, which can appear in algebraic parameter identification, are overcome for fault diagnosis purposes. Nevertheless, it is mandatory to periodically re-initialize the calculations to prevent numerical overflows in the practical implementation.

3.2 Resetting scheme

In real applications, the system conditions may vary owing to disturbances and noise. Likewise, due to the non-asymptotic nature of the signals involved in the algebraic method, caused by the multiplication by powers of time of type \((-t)^n\), a resetting scheme for the integrals is required together with an updating strategy.

Figure 1 shows the resetting and updating procedures proposed in this work. As can be seen, the time base to compute the integrals (in blue) is restarted every \(T_r\) by the rising edge of the reset signal (in black) at times \(0,T_r,2T_r, 3T_r,\cdots \). By doing this, not only a reliable and timely fault detection is ensured but also numerical overflow is prevented. Nevertheless, during resets, the information provided by the algebraic algorithm suffers sudden changes. Therefore, an updating policy is adopted to rule out unhelpful calculations. In this way, after a reset, the last estimated values are retained during a hold time denoted by \(T_h\) (in red). After that, the new estimates will be available within the interval \(t= (T_h, T_r)\).

Remark 3 The signals used to calculate the algebraic residuals have a non-asymptotic behavior. Therefore, a long reset time (\(T_r\)) could cause numerical overflow, decrease the sensitivity, and increase the detection time. On the other hand, a small \( T_r \) makes the diagnostic scheme more noise-sensitive, so the detection thresholds must be more accurate. Based on these considerations, it is possible to propose an updating strategy focused on reducing \( T_r \) as much as possible and taking the last sample before each restart. In this way, it is only necessary to tune the parameter \(T_r\). Finally, the hold time is given by \(T_h=T_r-T_s\), where \(T_s\) is the sampling time.

4 Algebraic fault identification assisted by ESO

As a second strategy for diagnosis, the algebraic fault identification is now presented. In this context, additive function f(t) in system (2) can be modeled as a w-order polynomial that locally approximates the fault. For the sake of simplicity, and to reduce the degradation of the numerical conditioning of the algebraic identifier, in this work the internal model of f(t) is assumed as follows

$$\begin{aligned} \frac{df(t)}{dt}=0. \end{aligned}$$
(10)

This assumption implies that f(t) is modeled by a constant trend (0-order polynomial), which is common in the context of active disturbance rejection control (ADRC). Therefore,

$$\begin{aligned} f(t)= \alpha _{}. \end{aligned}$$
(11)

The goal now is to estimate the time-varying parameter \(\alpha \), using the algebraic method presented in Sect. 3 and to build an online fault estimation as follows:

$$\begin{aligned} {\hat{f}}(t)= {\hat{\alpha }}_{}, \end{aligned}$$
(12)

where \(\hat{\alpha }\) is the estimate of \( \alpha \).

Combining equations (3) and (9) yields

$$\begin{aligned} \int ^{(n)}(-t)^{n}{{\hat{\alpha }}}=r(t). \end{aligned}$$
(13)

Equation (13) is rewritten by defining \(G(t)=\int ^{(n)}(-t)^{n}\). Thus

$$\begin{aligned} G(t){{\hat{\alpha }}}=r(t). \end{aligned}$$
(14)

Applying an invariant filter, which improves the signal-to-noise ratio, the algebraic identifier to estimate the parameter \({\hat{\alpha }}_0\) becomes:

$$\begin{aligned} {\hat{a}}=\frac{\int _{t_0}^{t}G(\uplambda )r(\uplambda )d\uplambda }{\int _{t_0}^{t}G(\uplambda )^{2}d\uplambda }. \end{aligned}$$
(15)

Subsequently, fault identification allows a diagnosis based on thresholds or experimental rules, compared to fault-free behavior.

4.1 Error and sensitive indices

Unlike other applications of algebraic methods, fault detection has the advantage that the occurrence of the fault conveniently excites the algebraic identifier (15), which improves numerical conditioning. In this sense, the criterion of the integral square error, the normalized error index and the sensitivity index are adopted to evaluate the performance of the identifier. These indices are also useful for tuning the resetting and updating scheme, which is required to guarantee a reliable estimation.

From (14), the residual error is defined as

$$\begin{aligned} \epsilon (\alpha ,t)=G(t)\alpha -r(t). \end{aligned}$$
(16)

Next, the optimization objective is formulated as follows:

$$\begin{aligned} \jmath (\alpha ,t)=\frac{1}{2}\int _{t_0}^{t}\epsilon ^{2}(\alpha ,\uplambda )d\uplambda . \end{aligned}$$
(17)

Defining the following terms for a simplified notation:

$$\begin{aligned}&M_{1}{=}\int _{t_{0}}^{t}G^{2}(\uplambda )d\uplambda , M_{2}{=}\int _{t_{0}}^{t}r(\uplambda )G(\uplambda )d\uplambda ,\nonumber \\&M_{3}{=}\int _{t_{0}}^{t}r^{2}(\uplambda )d\uplambda . \end{aligned}$$
(18)

Therefore, (17) is now expressed as:

$$\begin{aligned} \jmath (\hat{\alpha },t)=\frac{1}{2}\left( M_{3}-\left( M_{2}^{2}M_{1}{}^{-1}\right) \right) . \end{aligned}$$
(19)

Then, the normalized error index is set as:

$$\begin{aligned} E_{\alpha }=\sqrt{\frac{\jmath (\hat{\alpha },t)}{\jmath (0,t)}}=\sqrt{\frac{M_{3}-\left( M_{2}^{2}M_{1}{}^{-1}\right) }{M_{3}}}\le 1. \end{aligned}$$
(20)

On the other hand, the sensitivity error defined as the maximum variation of \(\hat{\alpha }\) required to cause a doubling of the residual error (16) is given by:

$$\begin{aligned} \varDelta _\alpha =\sqrt{\jmath (\hat{\alpha },t)M_{1}{}^{-1}}. \end{aligned}$$
(21)

Remark 3

To ensure a reliable and fast detection, the resetting strategy presented in Sect. 3 is also used for the fault identification strategy. In addition, to choose the most suitable reset time (\(T_r\)) it is necessary to take into account the following criteria: (a) the initial transit (\(T_ {r}\min \)), which is caused by numerical hardware limitations, noise, and numerical conditioning; (b) the numerical overflow; and (c) the fact that the reliability of the estimation and the speed of detection could be degraded by too long restart time (\( T_ {r} \max \)). On the other hand, after the transient, the estimation can be updated in the interval \((T_h, T_r)\).

The error and sensitivity indices can support the selection of \(T_r\) and \( T_h \). The procedure for tuning these parameters is as follows: (1) it is advisable to start the tests using a long reset time \(T_r\) to guarantee convergence of the algorithm. (2) From real data, error index \(E_x\) and sensitivity index \(\varDelta _x\) are computed. Afterward, the settling time (\(t_s\)) is measured for a certain metric based on the adopted indices, e.g., \(t(E_x \le 5 \%)\). (3) The settling time provides a guide to choose the hold time, such that, \(T_h > t_s\). Similarly, the reset time must be greater than the hold time. For practical purposes, we suggest that \(T_h\) is slightly larger than \(t_s\) and \(T_r \ge 3T_h\), to achieve useful estimations with the least dead time.

Remark 4

It is possible to assume more complex polynomial models for the fault, such that:

$$\begin{aligned} f(t)= & {} \overset{w}{\underset{i=0}{\sum }}\left( \alpha _{i}t^{i}\right) . = \alpha _{0}+\alpha _{1}t+ \cdots +\alpha _{w-1}t^{w-1}\nonumber \\&\quad +\,\alpha _{w}t^{w}. \end{aligned}$$
(22)

Then, the vector of time-varying parameters \(\varOmega =\left[ \hat{\alpha }_{0} \cdots \hat{\alpha }_{w}\right] ^{T}\) can be estimated as follows:

$$\begin{aligned} \varOmega =\left[ \int _{t_0}^{t}G^{T}(\uplambda )G(\uplambda )d\uplambda \right] ^{-1}\int _{t_0}^{t}G^{T}(\uplambda )r(\uplambda )d\uplambda , \end{aligned}$$
(23)

where

$$\begin{aligned} G=\left[ \begin{array}{cccc} \gamma _{0}(t)&\gamma _{1}(t)\ldots&\gamma _{w-1}(t)&\gamma _{w}(t)\end{array}\right] , \end{aligned}$$
(24)

and

$$\begin{aligned} \gamma _{i}(t)=\int ^{(n)}(-1)^{n} t^{(n+i)}, \end{aligned}$$
(25)

for \(i=0...w\).

Thus, the fault f(t) is identified on line from the estimated parameter vector \(\varOmega _{\alpha }\) as follows

$$\begin{aligned} {\hat{f}}(t)=\overset{w}{\underset{i=0}{\sum }}\left( \hat{\alpha }_{i}t^{i}\right) =\left[ \begin{array}{cccc} 1&t\cdots&t^{w-1}&t^{w}\end{array}\right] \varOmega . \end{aligned}$$
(26)

Notice that although the accuracy of the fault estimation improves with a higher polynomial order w, the requirements in terms of persistence of the excitation and numerical conditioning also rise [5, 14].

5 Fault diagnosis via algebraic parameter estimation assisted by ESO

The third proposed strategy focuses on estimating specific model parameters associated with the faults. To do this, a physical interpretation of the source of the fault is required. Likewise, given the detectability and isolability restrictions, it is advisable to concentrate the process on as few parameters as possible.

The general procedure for algebraic identification of a single parameter on equation (2) is presented below.

  1. 1.

    (Optional) Derive the differential equation \(\rho \)-times to eliminate structured polynomial disturbances f(t). This procedure can have a negative influence on numerical conditioning.

    $$\begin{aligned}&y^{(n+\rho )} = D^\rho [ \kappa (t, y, \varPhi ) u \nonumber \\&+ \zeta (t, y, {\dot{y}}, ..., y ^{(n-1)},\varPhi ) + f(t) ], \end{aligned}$$
    (27)

    where \(D^\rho ={d^\rho }/{dt^\rho }\)

  2. 2.

    Multiply equation (27) by \((-t)^{j}\) to eliminate initial conditions, where \(j=n+\rho \)

  3. 3.

    Perform j iterated integrals, according to definition (4). Use the estimations provided by the ESO in (5) when it is necessary.

  4. 4.

    Rewrite resulting expressions as a linear equation in terms of the required parameter

    $$\begin{aligned} P k=q(t), \end{aligned}$$
    (28)

    where k is the parameter associated with the fault (to be estimated), P contains explicit operations in terms of, t, u(t), and y(t), which multiply the parameter. As a result, q(t) is the remain of the equation.

  5. 5.

    Compute the online estimated parameter using a single invariant filter as follows:

    $$\begin{aligned} {\hat{k}}=\frac{\int _{t_0}^{t}P(\uplambda )q(\uplambda )d\uplambda }{\int _{t_0}^{t}P(\uplambda )^{2}d\uplambda }. \end{aligned}$$
    (29)
  6. 6.

    Compare the estimated parameters with their nominal values or a suitable threshold for fault diagnosis.

The error and sensitivity indices (presented in Sect. 4) can be easily adapted to evaluate the degree of fit of the estimated parameters for the system model. As a consequence, the normalized error index of \({\hat{k}}\) is given by:

$$\begin{aligned} E_{k}=\sqrt{\frac{M_{3}-\left( M_{2}^{2}M_{1}{}^{-1}\right) }{M_{3}}}\le 1, \end{aligned}$$
(30)

where

$$\begin{aligned}&M_{1}{=}\int _{t_{0}}^{t}P^{2}(\uplambda )d\uplambda , M_{2}{=}\int _{t_{0}}^{t}q(\uplambda )P(\uplambda )d\uplambda ,\nonumber \\&M_{3}{=}\int _{t_{0}}^{t}q^{2}(\uplambda )d\uplambda . \end{aligned}$$
(31)

Similarly, the sensitivity index for \({\hat{k}}\) is set as:

$$\begin{aligned} \varDelta _k=\sqrt{\jmath (\hat{k},t)M_{1}{}^{-1}}, \end{aligned}$$
(32)

where the optimization objective is:

$$\begin{aligned} \jmath (\hat{k},t)=\frac{1}{2}\left( M_{3}-\left( M_{2}^{2}M_{1}{}^{-1}\right) \right) . \end{aligned}$$
(33)

6 Case study and experimental validation

In this section, the proposed strategies based on algebraic methods are applied to fault diagnosis using a twin-rotor aerodynamic system (TRAS), which operates in closed loop. In addition, experimental results that validate the proposed strategies are presented.

6.1 Dynamic model

Consider the TRAS shown in Fig. 2. During its operation the system can be tilted \(\theta \) degrees around the Y-axis (Pitch), and rotate \(\psi \) degrees around the Z-axis (Yaw). The dynamic model of the TRAS was defined by the following expressions:

$$\begin{aligned}&\left[ J_{eqp}+M_{heli}\left( l_{mc}^{2}+h^{2}\right) \right] \ddot{\theta }\nonumber \\&\qquad +M_{heli}\left[ 0.5\sin 2\theta \left( l_{mc}^{2}-h^{2}\right) -\left( l_{mc}h\cos 2\theta \right) \right] \dot{\psi ^{2}}\nonumber \\&\qquad +\left[ M_{heli}g(l_{mc}\cos \theta +h\sin \theta )\right] \nonumber \\&\quad =K_{pp}V_{mp}+K_{py}V_{my}-B_{p}{\dot{\theta }}-F_{cp,} \end{aligned}$$
(34)
$$\begin{aligned}&\left[ J_{eqy}+M_{heli}\left( \cos ^{2}\theta \left( l_{mc}^{2}-h^{2}\right) +\left( l_{mc}h\sin 2\theta \right) +h^{2}\right) \right] \ddot{\psi }\nonumber \\&\qquad +M_{heli}\left[ -\sin 2\theta \left( l_{mc}^{2}-h^{2}\right) +2\left( l_{mc}h\cos 2\theta \right) \right] {\dot{\psi }}{\dot{\theta }}\nonumber \\&\quad =K_{yp}V_{mp}+K_{yy}V_{my}-B_{y}{\dot{\psi }}-F_{cy} . \end{aligned}$$
(35)

where angles \(\theta \) and \(\psi \) are the measured outputs, and \(V_{mp}\), and \(V_{my}\) are the voltage applied to the front and rear propellers, respectively. The equivalent moments of inertia in the Pitch and Yaw axes are \(J_{eqp}\) and \(J_{eqy}\), while \(M_{heli}\) is the total moving mass of the system. The positions of the center of mass in the X and Z axes are \(l_{mc}\) and h, respectively. These general parameters are provided by the TRAS manufacturer (Quanser inc \(\circledR \)).

Fig. 2
figure 2

General description of a Twin-Rotor Aerodynamic System

On the other hand, \(B_{p}\) and \(B_{y}\) are the viscous frictions, while \(F_{cp}\) and \(F_{cy}\) are the torques caused by Coulomb frictions on each axis. For their part, \(K_{pp}\) and \(K_{py}\) relate the voltages with torques generated in the Pitch axis. Likewise, \(K_{yp}\) and \(K_{yy}\) relate the voltages with torques generated in the Yaw axis. It is important to mention that nominal values of these parameters were estimated in [35] using algebraic methods.

6.2 ESO-based control

To control the system, an ESO-based controller is proposed under the active disturbance rejection (ADRC) framework. Therefore, a simplified representation of (34) and (35), which includes two decoupled loops, is adopted as follows:

$$\begin{aligned}&\theta ^{(2)}=\kappa _{\theta }u_{\theta }+\xi _{\theta }, \end{aligned}$$
(36)
$$\begin{aligned}&\psi ^{(2)}=\kappa _{\psi }u_{\psi }+\xi _{\psi }, \end{aligned}$$
(37)

where \(\xi _{\theta }\) and \(\xi _{\psi }\) are the total disturbances associated to each loop, which group all the internal and external effects [36]. In addition, \(\kappa _{\theta }= [J_{eqp}+M_{heli}\left( l_{mc}^{2}+h^{2}\right) ]^{-1}\) is the control gain in the Pitch axis and \( \kappa _{\psi }= [J_{eqy}+M_{heli}\big (\cos ^{2}\theta \left( l_{mc}^{2}-h^{2}\right) +\left( l_{mc}h\sin 2\theta \right) +\left( h^{2}\right) \Big )]^{-1}\) is the control gain in the Yaw axis. Furthermore, \(u_{\theta }\) and \(u_{\psi }\) are auxiliary control signals defined as:

$$\begin{aligned}&u_{\theta }=K_{pp} V_{mp} + K_{py} V_{my}, \end{aligned}$$
(38)
$$\begin{aligned}&u_{\psi }=K_{yp} V_{mp} + K_{yy} V_{my}. \end{aligned}$$
(39)

To estimate \(\xi _{\theta }\) and the states in the Pitch axis, the following extended estate observer (ESO) based on equation (5) is proposed:

$$\begin{aligned}&\frac{d}{dt}\hat{\theta }=\dot{\hat{\theta }}+l_{\theta 2}(\theta -\hat{\theta }), \end{aligned}$$
(40)
$$\begin{aligned}&\frac{d}{dt}\dot{\hat{\theta }}=\hat{\xi }_{\theta }+\kappa _{\theta }u_{\theta }+l_{\theta 1}(\theta -\hat{\theta }), \end{aligned}$$
(41)
$$\begin{aligned}&\frac{d}{dt}{\hat{\xi }}_{\theta }=l_{\theta 0}(\theta -\hat{\theta }), \end{aligned}$$
(42)

where \(\epsilon _\theta =\theta -\hat{\theta }\) is the estimation error in the Pitch axis, and \(l_{\theta 0}=4000\), \(l_{\theta 1}=800\), and \(l_{\theta 2}=50\) are the observer gains. These values were adjusted from the characteristic polynomial (8) rewritten as \(P_{o\theta } = (s-\varrho _{\theta 1})(s-\varrho _{\theta 2})(s-\varrho _{\theta 3})\). The poles were placed on \(\varrho _{\theta 1}=-10\), \(\varrho _{\theta 2}=-20\), and \(\varrho _{\theta 3}=-20\), which provides a bandwidth of 7.3 rad/s.

Similarly, the ESO that estimates \(\xi _{\psi }\) and the states in the Yaw axis is designed as follows:

$$\begin{aligned}&\frac{d}{dt}\hat{\psi }=\dot{\hat{\psi }}+l_{\psi 2}(\psi -\hat{\psi }), \end{aligned}$$
(43)
$$\begin{aligned}&\frac{d}{dt}\dot{\hat{\psi }}=\hat{\xi }_{\psi }+\kappa _{\psi }u_{\psi }+l_{\psi 1}(\psi -\hat{\psi }), \end{aligned}$$
(44)
$$\begin{aligned}&\frac{d}{dt}{\hat{\xi }}_{\psi }=l_{\psi 0}(\psi -\hat{\psi }), \end{aligned}$$
(45)

where the estimation error in the Yaw axis is \(\epsilon _\psi =\psi -\hat{\psi }\), and gains \(l_{\psi 0}=2688\), \(l_{\psi 1}=584\), and \(l_{\psi 2}=42\) were tuned using the polynomial (8) rewritten as \(P_{o\psi } = (s-\varrho _{\psi 1})(s-\varrho _{\psi 2})(s-\varrho _{\psi 3})\). In this case, the poles were placed om \(\varrho _{\psi }=-12\), \(\varrho {\psi }=-14\), and \(\varrho _{\psi }=-16\) giving a bandwidth of 7 rad/s.

It is worth noting that the eigenvalues of ESOs were experimentally tuned to reach an effective disturbance rejection, but taking into account the restrictions imposed by measurement noise and sampling time. Besides, a good damping factor was desirable (real poles) to achieve a soft start-up and avoid pole-shifting during testing. For practical purposes, the bounds of the estimation errors were defined as \(|\epsilon _\theta | \le 0.15\) degrees and \(|\epsilon _\psi | \le 0.15\) degrees. In this way, the bandwidth of each observer was increased until the desired errors were attained.

To track the reference positions denoted by \(\theta ^{*}(t)\) and \(\psi ^{*}(t)\), two sliding mode control loops assisted by ESO are implemented. In this context, \(\varepsilon _\theta =(\hat{\theta }-\theta ^{*})\) and \(\varepsilon _\psi =(\hat{\psi }-\psi ^{*})\) represent the tracking errors and their time derivatives are \({{\dot{\varepsilon }}}_\theta =(\dot{\hat{\theta }}-\dot{\theta ^{*}})\) and \({{\dot{\varepsilon }}}_\psi =(\dot{\hat{\psi }}-\dot{\psi ^{*}})\) respectively. From these variables, the following first-order sliding surfaces are adopted:

$$\begin{aligned}&\varsigma _\theta = {{\dot{\varepsilon }}}_\theta + \iota _\theta \varepsilon _\theta , \end{aligned}$$
(46)
$$\begin{aligned}&\varsigma _\psi = {{\dot{\varepsilon }}}_\psi + \iota _\psi \varepsilon _\psi , \end{aligned}$$
(47)

where −\(\iota _\theta \) and −\(\iota _\psi \) are the desired poles in the sliding surfaces. Therefore, the characteristic polynomials, in the Laplace domain, that define the dynamics for the Pitch and Yaw loops are \(P_{y\theta }=s+\iota _\theta \) and \(P_{y\psi }=s+\iota _\psi \) respectively.

Inspired by the active disturbance rejection approach, the control strategies contain two parts. Firstly, a continuous term based on the estimation of the disturbance affecting the sliding surface dynamics at each loop. Secondly, a discontinuous term acting on the sliding surface [36]. Accordingly, the following control laws are proposed:

$$\begin{aligned}&u_{\theta }=\frac{1}{\kappa _{\theta }}\left[ \hat{\xi }_{\varepsilon \theta } -W_\theta \quad \text {sign}\left( \varsigma _\theta \right) \right] , \end{aligned}$$
(48)
$$\begin{aligned}&u_{\psi }=\frac{1}{\kappa _{\psi }}\left[ \hat{\xi }_{\varepsilon \psi } -W_\psi \quad \text {sign}\left( \varsigma _\psi \right) \right] , \end{aligned}$$
(49)

where \(W_\theta \) and \(W_\psi \) are the amplitudes of the switching parts. Besides, \(\hat{\xi }_{\varepsilon \theta }=\ddot{\theta ^{*}}- {{\dot{\varepsilon }}}_\theta -l_{\theta 1}\epsilon _\theta -{\hat{\xi }}_{\theta }\) and \(\hat{\xi }_{\varepsilon \psi }=\ddot{\psi ^{*}}- {{\dot{\varepsilon }}}_\psi -l_{\psi }\epsilon _\psi -{\hat{\xi }}_{\psi }\) are the equivalent disturbances of the sliding surfaces. These signals are computed from the estimates provided by the observers and some reference-dependent calculations.

The stability of the sliding regimes is assured by choosing \(\iota _\theta >0\) and \(\iota _\psi >0\). Furthermore, to guarantee an appropriate sliding regime creation it is required that \(W_\theta >0\) and \(W_\psi >0\) [4]. However, the higher amplitude the greater the chattering in the control signal. Based on these considerations, the gains of the controllers were experimentally adjusted as \(\iota _\theta =\iota _\psi =1\) and \(W_\theta =W_\psi =0.05\). These values yield bandwidths of 1 rad/s, settling times of less than 5 s, and a reduced chattering effect. In addition, for each loop, the relationship between the observer bandwidth (\(\omega _o\)) and the controller bandwidth (\(\omega _c \)) satisfies \( \omega _ o>5\omega _c\) as suggested in [16].

6.3 Fault diagnosis schemes

In this work, two actuator faults that affect the operation of the TRAS are considered. Fault 1 (f1) is a sudden loss of efficiency in the front propeller motor. Fault 2 (\(f_2\)) is a sudden loss of efficiency in the rear propeller motor. In this way, the fault occurrence profile is presented in Fig. 3 and several scenarios are considered: (a) single fault (f1 OR \(f_2\)); (b) multiple and simultaneous faults (\(f_1\) AND \(f_2\)); and (c) intermittent and repetitive faults (switching on f1 AND \(f_2\)). In addition, the proposed algebraic diagnosis schemes for Faults 1 and 2 are presented below.

Fig. 3
figure 3

Fault occurrence profile considered for the TRAS. \(f_ 1\) is the front propeller motor fault, and \(f_ 2\) is rear propeller motor fault

6.3.1 Parameter estimation

Assuming that Faults 1 and 2 mainly affect the parameters \(K_ {pp} \) and \(K_ {py} \) respectively, it is required to propose two algebraic identifiers. These allow detecting the respective fault, but they are also insensitive to noise, uncertainties, and other faults. Therefore, multiplying (34) and (35) by \(t^2 \), integrating twice with respect to time and organizing in terms of the desired parameters, the following expressions are obtained:

$$\begin{aligned}&P_{\theta }(t) K_{pp}=q_{\theta }(t), \end{aligned}$$
(50)
$$\begin{aligned}&P_{\psi }(t) K_{yy}=q_{\psi }(t). \end{aligned}$$
(51)

where

$$\begin{aligned} P_{\theta }(t)=\int ^{(2)}t^{2}V_{mp}, \quad P_{\psi }(t)=\int ^{(2)}t^{2}V_{my}, \end{aligned}$$
(52)

and the rest of the equations are:

$$\begin{aligned}&q_{\theta }(t)=\left( J_{eqp}+M_{heli}\left( l_{mc}^{2}+h^{2}\right) \right) \nonumber \\&\quad \left[ t^{2}\theta -4\int ^{(1)}t\theta +2\int ^{(2)}\theta \right] \nonumber \\&\quad +0.5M_{heli}\left( l_{mc}^{2}-h^{2}\right) \int ^{(2)}t^{2}\sin (2\theta ){\hat{{\dot{\psi }}}}^{2} -M_{heli}l_{mc}h\nonumber \\&\quad \int ^{(2)}t^{2}\cos (2\theta ){\hat{{\dot{\psi }}}}^{2}\nonumber \\&\quad +M_{heli}gl_{mc}\int ^{(2)}t^{2}\cos (\theta ) +M_{heli}gh\int ^{(2)}t^{2}\sin (\theta )-K_{py}\nonumber \\&\quad \int ^{(2)}t^{2}V_{my}\nonumber \\&\quad +B_{p}\left( \int ^{(1)}t^{2}\theta -2\int ^{(2)}t\theta \right) +F_{cp}\int ^{(2)}t^{2}, \end{aligned}$$
(53)
$$\begin{aligned}&q_{\psi }(t)=\left( J_{eqy}+M_{heli}h^{2}\right) \left[ t^{2}\psi -4\int ^{(1)}t\psi +2\int ^{(2)}\psi \right] \nonumber \\&+M_{heli}\left( l_{mc}^{2}-h^{2}\right) \left[ t^{2}(\cos ^{2}\theta )\psi -4\int ^{(1)}t(\cos ^{2}\theta )\psi \right. \nonumber \\&\quad \left. +2\int ^{(2)}(\cos ^{2}\theta )\psi \right. \nonumber \\&\left. -2\int ^{(2)}t(\sin 2\theta )\hat{{\dot{\theta }}}\psi \right] +M_{heli}l_{mc}h\nonumber \\&\left[ t^{2}(\sin 2\theta )\psi -4\int ^{(1)}t(\sin 2\theta )\psi \right. \nonumber \\&-\int ^{(1)}2t^{2}(\cos 2\theta )\hat{{\dot{\theta }}}\psi +2\int ^{(2)}(\sin 2\theta )\psi \nonumber \\&\left. +4\int ^{(2)}t(\cos 2\theta )\hat{{\dot{\theta }}}\psi \right] \nonumber \\&-K_{yp}\int ^{(2)}t^{2}V_{mp} +B_{y}\left[ \int ^{(1)}t^{2}\psi -2\int ^{(2)}t\psi \right] \nonumber \\&+F_{cy}\int ^{(2)}t^{2}. \end{aligned}$$
(54)

Notice that \(\hat{{\dot{\theta }}}\), and \(\hat{{\dot{\psi }}}\) are provided by the designed observers.

Then, the algebraic identifiers to estimate \(K_{pp}\) and \(K_{yy}\) are:

$$\begin{aligned}&{\hat{K}}_{pp}=\frac{\int _{t_0}^{t}P_\theta (\uplambda )q_\theta (\uplambda )d\uplambda }{\int _{t_0}^{t}P_\theta (\uplambda )^{2}d\uplambda }, \end{aligned}$$
(55)
$$\begin{aligned}&{\hat{K}}_{yy}=\frac{\int _{t_0}^{t}P_\psi (\uplambda )q_\psi (\uplambda )d\uplambda }{\int _{t_0}^{t}P_\psi (\uplambda )^{2}d\uplambda }, \end{aligned}$$
(56)

Fault indicators are activated when the estimates \(K_{pp}\) and \(K_{yy}\) go outside \(\pm 25\%\) of their nominal values, which are considered acceptable ranges (thresholds) to generate a fault alarm.

6.3.2 Residual generation

From Equations (50) and (51), residuals for Faults 1 and 2 are described as follows:

$$\begin{aligned} r_1(t)= & {} q_{\theta }(t)-P_{\theta }(t)K_{pp}, \end{aligned}$$
(57)
$$\begin{aligned} r_2(t)= & {} q_{\psi }(t)-P_{\theta }(t)K_{yy}, \end{aligned}$$
(58)

where \(K_{yy}\) and \(K_{yy}\) take their nominal values.

Although ideally the residuals are zero for the fault-free case, several factors such as noise, external disturbances, and parameter uncertainty can cause deviations in practice. Thus, taking into account the experimental signal-to-noise ratio, the detection thresholds were selected as \(\pm 5 \max |r_{ff}|\), where \(\max |r_{ff}|\) is the maximum peak of the residual in the fault-free case.

6.3.3 Fault identification

Assuming that \({df_1}/dt=0\) and \({df_2}/dt=0\) are the internal models of the faults, the parameters used for the fault identification are:

$$\begin{aligned} {\hat{f}}_1= & {} {\hat{\alpha }}_1, \end{aligned}$$
(59)
$$\begin{aligned} {\hat{f}}_2= & {} {\hat{\alpha }}_2, \end{aligned}$$
(60)

To estimate \({\hat{\alpha }}_1\) and \({\hat{\alpha }}_2\), the following algebraic identifiers are proposed:

$$\begin{aligned}&{\hat{a}}_1=\frac{\int _{t_0}^{t}G(\uplambda )r_1(\uplambda )d\uplambda }{\int _{t_0}^{t}G(\uplambda )^{2}d\uplambda }, \end{aligned}$$
(61)
$$\begin{aligned}&{\hat{a}}_2=\frac{\int _{t_0}^{t}G(\uplambda )r_2(\uplambda )d\uplambda }{\int _{t_0}^{t}G(\uplambda )^{2}d\uplambda }, \end{aligned}$$
(62)

where \(G(t)=\int ^{(2)}t^2\).

The diagnosis rules based on fault estimation are experimentally deduced such that detection thresholds are chosen as \(\pm 15\max |{\hat{f}}_{ff}|\), where \(\max |{\hat{f}}_{ff}|\) is the maximum peak of the signal in the fault-free case.

6.4 Experimental results

The experimental setup is depicted in Fig. 4. The controllers were built on Simulink\(\circledR \) and they were implemented using WinCon software (Quanser inc\(\circledR \)). The integration method was Runge–Kuta and the fundamental sample time was 1 ms. In addition, input and output signals were managed by the MultiQ4-PCI acquisition card and the power stage included the DC–DC converters (UPM-2405 and UPM-1503). Furthermore, the proposed faults were emulated by inserting external electrical resistors in series with the circuit of each motor.

Figure 5 shows the input and output signals for the TRAS under the proposed ESO-based control for conventional tracking tasks. As can be seen, voltages have a chattering effect caused by the sliding mode component of the control laws. Despite fault tolerate properties of the controller, the effect of both faults can be noticed.

Fig. 4
figure 4

Experimental setup including: TRAS, acquisition card (MultiQ4-PCI), power stage (UPM-2405/1503), control software (Wincon\(\circledR \)-Simulink\(\circledR \)), and the circuit to cause faults

Fig. 5
figure 5

Time response of the angular positions (\(\theta \), \(\psi \)) and voltages (\(V_{mp}\), \(V_{my}\)) of the system in the presence of faults

Fig. 6
figure 6

Algebraic estimation of parameters \(K_{pp}\) and \(K_{yy}\). Parameter deviations outside the thresholds indicate fault occurrence

Fig. 7
figure 7

Error and sensitivity indices for estimation of parameters \(K_{pp}\) (\(E_{,kpp}\), \(\varDelta _{kpp}\)) and \(K_{yy}\) (\(E_{kyy}\), \(\varDelta _{kpp}\)). Shaded region corresponds to the hold time (\(T_h\)) of the identifier

Fig. 8
figure 8

Algebraic residuals for Fault 1 (\(r_1\)) and Fault 2 (\(r_2\)). Deviations of the residuals outside the thresholds indicate fault occurrence

Fig. 9
figure 9

Algebraic identification of Fault 1 (\(f_1\)) and Fault 2 (\(f_2\)). Deviations of the estimated signals outside the thresholds indicate fault occurrence

Fig. 10
figure 10

Error and sensitivity indices for identification of Fault 1 (\(E_{\alpha 1}\), \(\varDelta _{\alpha 1}\)) and Fault 2 (\(E_{\alpha 2}\), \(\varDelta _{\alpha 2}\)). Shaded region corresponds to the hold time (\(T_h\)) of the identifier

The fault diagnosis based on algebraic parameter estimation is presented in Fig. 6. The shaded region indicates the presence of Fault 1 and Fault 2 and the results allow to determine that they mainly affect parameters \( K_{pp} \) and \( K_{yy} \) respectively. This assumption neglects the effect on the parameters \( K_{py} \) and \( K_{yp} \), which can be noticeable when both faults are active. Even so, faults are isolated with low detection time and a good signal-to-noise ratio. Figure 7 depicts the error indices (\(E_{kpp}\), \(E_{kyy}\)) and sensitivity indices (\(\varDelta _{kpp}\), \(\varDelta _{kyy}\)) based on equations (30) and (32), for a single estimation interval \([0,T_r]\), In the absence of faults, the identifier settling times for \(E\le 0.05\) were \(t_{s1}=0.2\) s for \(K_{pp}\), and \(t_{s2}=0.32\) s for \(K_{yy}\). From these measures and taking in to account Remark 4, the hold times were tuned as \(T_{h1}=0.3\) s and \(T_{h2}=0.5\) s. Likewise, since \(T_h \ge T_r\), a single reset time \(T_r=1.5\) s was selected to facilitate the implementation. Concerning sensitivity indices, it was obtained \(\varDelta _{kpp} < \varDelta _{kyy}\), which means greater accuracy in the estimation of \(K_{pp}\) compared to \(K_{yy}\).

Figure 8 presents experimental results of fault diagnosis via algebraic residual generation using \(T_{r1}=0.3\)s and \(T_{r2}=0.5\)s as reset times. As can be seen, residuals \(r_1\) and \(r_2\) are close to zero for the fault-free case and they deviate considerably from the thresholds when faults appear, allowing their detection. Likewise, isolation is also possible for both faults, despite noise and uncertainties.

Algebraic identification of faults is presented in Fig. 9. Here, additive faults \(f_1\) and \(f_2\) were successfully approximated by constant trends. In addition, not only fault detection and isolation are performed, but also the effects of noise are reduced compared to the residual generation scheme. The error and sensitivity indices for the fault identification are presented in Fig. 10. Since the estimation of \( \alpha _1 \) and \(\alpha _2 \) tend to zero in the fault-free case, values \(T_{h1}=0.3\) s, \(T_{h2}=0.5\) s and \(T_r=1.5\) s found previously, were initially adopted here. Subsequently, these were verified by computing the indices and settling times in the fault-affected case. Experimental results show that although the numerical conditioning without faults seems not the best, the identifiers are sensitive to the faults, exhibiting settling times of \(t_{s1} =0.235\) s and \(t_s2=0.425\) s for \(E_{\alpha 1}\) and \(E_{\alpha 2}\) respectively. As these times were comparable with the ones obtained for parameter estimation, values \(T_{h1}\) s, \(T_{h2}\) s and \(T_r\) s were not modified. In relation to the sensitivity measures, they were reduced compared to those obtained in \( \varDelta _{pp} \) and \( \varDelta _{kyy}\). Moreover, \(\varDelta _{\alpha 1} <\varDelta _{\alpha 2}\), so Fault 1 was estimated with greater accuracy than Fault 2.

Fig. 11
figure 11

Comparison between fault diagnosis approaches based on: algebraic identification assisted by ESO (blue) and polynomial observers (red). (Color figure online)

Table 1 Reaction times to activation (\(t_{ON-OFF}\)) and deactivation (\(t_{OFF-ON}\)) of the fault for different diagnosis methods

6.5 Comparison with fault estimation based on polynomial observers

To compare the proposed fault estimation strategy with other reported methods, additional tests were performed using a diagnosis scheme based on polynomial observers. This kind of observer was introduced in [28] for state estimation in nonlinear systems and extended in [2] to fault estimation of a quad-rotor mini air vehicle.

The polynomial observer to estimate Fault 1 is as follows:

$$\begin{aligned}&\frac{d}{dt}\hat{\theta }= \dot{\hat{\theta }}+k_{\theta 11}(\theta -\hat{\theta })+k_{\theta 12}(\theta -\hat{\theta })^{3}, \end{aligned}$$
(63)
$$\begin{aligned}&\frac{d}{dt}\dot{\hat{\theta }}\!=\! \kappa _{\theta }u_{\theta }\!+\!{\bar{\varGamma }}_{\theta }+\!\hat{f}_{\kappa 1}+k_{\theta 21}(\theta -\!\hat{\theta })+k_{\theta 22}(\theta -\hat{\theta })^{3}, \end{aligned}$$
(64)
$$\begin{aligned}&\frac{d}{dt}\hat{f}_{\kappa 1}= b_{f11}({\bar{f}}_{\kappa 1}-\hat{f}_{\kappa 1})+b_{f12}({\bar{f}}_{\kappa 1}-\hat{f}_{\kappa 1})^{3}, \end{aligned}$$
(65)
$$\begin{aligned}&\hat{f}_{1}= \hat{f}_{\kappa 1}/\kappa _{\theta }, \end{aligned}$$
(66)

where

$$\begin{aligned}&\begin{array}{c} {\bar{\varGamma }}_{\theta }=\kappa _{\theta }\left[ -M_{heli}\left[ 0.5\sin 2\hat{\theta }\left( l_{mc}^{2}-h^{2}\right) \right. \right. \\ \left. \left. -\left( l_{mc}h\cos 2\hat{\theta }\right) \right] \dot{\hat{\psi }}^{2}\right. \\ \left. -\left[ M_{heli}g(l_{mc}\cos \hat{\theta }+h\sin \hat{\theta })\right] -B_{p}{\dot{\theta }}-F_{cp}\right] , \end{array} \end{aligned}$$
(67)
$$\begin{aligned}&{\bar{f}}_{\kappa 1}=\frac{d}{dt}\dot{\hat{\theta }}-\kappa _{\theta }u_{\theta }-{\bar{\varGamma }}_{\theta }. \end{aligned}$$
(68)

To estimate Fault 2, the following polynomial observer is proposed:

$$\begin{aligned}&\frac{d}{dt}\hat{\psi }= \dot{\hat{\psi }}+k_{\psi 11}(\psi -\hat{\psi })+k_{\psi 12}(\psi -\hat{\psi })^{3}, \end{aligned}$$
(69)
$$\begin{aligned}&\frac{d}{dt}\dot{\hat{\psi }}= \kappa _{\psi }u_{\psi }+{\bar{\varGamma }}_{\psi }+\hat{f}_{\kappa 2}\nonumber \\&+k_{\psi 21}(\psi -\hat{\psi })+k_{\psi 22}(\psi -\hat{\psi })^{3}, \end{aligned}$$
(70)
$$\begin{aligned}&\frac{d}{dt}\hat{f}_{\kappa 2}= b_{f21}({\bar{f}}_{\kappa 2}-\hat{f}_{\kappa 2})+b_{f22}({\bar{f}}_{\kappa 2}-\hat{f}_{\kappa 2})^{3}, \end{aligned}$$
(71)
$$\begin{aligned}&\hat{f}_{2}= \hat{f}_{\kappa 2}/\kappa _{\psi }, \end{aligned}$$
(72)

where

$$\begin{aligned}&\begin{array}{c} {\bar{\varGamma }}_{\psi }=\kappa _{\psi }\left[ M_{heli}\left[ \sin 2\hat{\theta }\left( l_{mc}^{2}-h^{2}\right) \right. \right. \\ \left. \left. -2\left( l_{mc}h\cos 2\hat{\theta }\right) \right] \dot{\hat{\psi }}\dot{\hat{\theta }}\right. \\ \left. -B_{y}{\dot{\psi }}-F_{cy}\right] , \end{array} \end{aligned}$$
(73)
$$\begin{aligned}&{\bar{f}}_{\kappa 2}=\frac{d}{dt}\dot{\hat{\psi }}-\kappa _{\psi }u_{\psi }-{\bar{\varGamma }}_{\psi }. \end{aligned}$$
(74)

Constants \(k_{\theta 11}=k_{\theta 12}=k_{\psi 11}=k_{\psi 12}=12\), \(k_{\theta 21}=k_{\theta 22}=k_{\psi 21}=k_{\psi 22}=36\), \(b_{f11}=b_{f12}=6\), \(b_{f21}=b_{f22}=6\) were experimentally obtained to ensure stability and a good noise to signal ratio, under the basis of a pole placement strategy with repeated eigenvalues on \(-6\). For more details about the convergence analysis and tuning, see [2, 28].

Figure 11 shows a comparison between the algebraic fault identification strategy and an estimation scheme based on polynomial observers using the same control signals and measured outputs. In general terms, both methods are capable to detect and isolate the considered faults. However, the proposed method exhibits some improvements in reaction times to activation and deactivation of the faults, as shown in Table 1. On the other hand, the transitory effects in the detection of abrupt faults (especially for Fault 1) are less in the strategy with an algebraic approach.

7 Conclusions

In this work, three alternatives for fault diagnosis based on algebraic identification were presented and compared. The proposed approach reconditioned the classic algebraic method, reducing the complexity and improving the numerical conditioning. In this way, a viable proposal for its implementation is provided. In this sense, a novel complement consisting of the addition of Extended State Observers (ESO) was used to estimate time derivatives of system outputs, allowing the direct calculation of nonlinear complex terms.

Although the proposals were developed with the same foundations, they exhibited different distinguishing features. Firstly, the strategy based on fault identification presents the best results in terms of noise immunity, facilitating a more flexible selection of thresholds for detection. This approach can be appropriate for highly noisy environments. Secondly, parameter estimation provides more information on the location of faults. However, the selection of thresholds requires greater knowledge of the system. This alternative can be a valid option for specific fault isolation problems. Thirdly, residual generation is more sensitive to noise, but it does not require an explicit calculation of parameters, which reduces its computational complexity. This advantage can be useful when only fault detection is required, for instance in supervisory systems. Finally, the strategies can be applied independently or simultaneously, e.g., a composite scheme of parameter estimation and residuals can be formed.

The diagnosis schemes were experimentally validated on a twin-rotor aerodynamic system affected by actuator faults. Results showed that all identifiers were robust against noise and uncertainty, allowing fault detection and isolation in scenarios with single, multiple, simultaneous and intermittent faults. This reveals the practical potential of the proposed strategies for a wide range of applications.