1 Introduction

Over the past few decades, fault detection and diagnosis played a significant role in crucial industries such as aircraft, trains, power plants, and chemical plants. In practice, many systems may be exposed to random variations, which may result in component failure, abrupt changes in operating points, and measurement noise. Generally, the optimal performance of such systems has a direct relationship with the predetermined efficiency and profitability. Therefore, the user must be aware of the performance and working conditions of a particular system. Early fault detection (i.e., when the system is functional in a controlled condition) prevents abnormal incidents and reduces system losses. Moreover, it can avoid sudden disasters and system disability. Hence, fault detection and identification is a significant issue for industrial practitioners and academic researchers.

An extension of a multi-model approach was proposed in Fair and Campbell (2011) to detect two or more simultaneous faults in continuous-time linear systems in the presence of model uncertainty. To achieve this objective, auxiliary signals for fault detection and identification were developed. The ad-joint null-space method is used in Russell (2011) for fault detection in both continuous and discrete linear elastic systems. In the proposed approach, parameter identification problems should be solved. Over the past two decades, many studies have investigated fault detection and identification approaches using analytical or statistical methods. The parity relation-based optimization approach, introduced in Chen and Patton (2012), is one of the most significant optimal approaches for robust fault diagnosis systems. In the early 1980s, Linear Analytical Redundancy (AR) was utilized for the first time in Chow and Willsky (1984). In this approach, the null-space of the extended observability matrix is determined to create residuals vectors in the linear model.

Fault detection for a class of nonlinear impulsive switched systems was studied in Su (2014). In this study, the proposed filters are designed to maintain the overall stability of the system. Using linear matrix inequalities, sufficient conditions for convex optimization are ensured. Robust fault detection in nonlinear systems approach based on Lyapunov method is proposed in Chen et al. (2006), where a sufficient condition guarantees local stability of the proposed observer. An internal model approach for nonlinear systems subject to single and multiple faults is introduced in Aßfalg and Allgöwer (2007), and sub-optimal solutions are suggested to illustrate the high practical relevance in the three-tank benchmark. A Robust Nonlinear Analytical Redundancy (RNLAR) technique to detect and isolate actuator and sensor faults in a mobile robot is investigated in Halder and Sarkar (2007). The designed residue vectors possessed the highest sensitivity to possible faults and the least to a process disturbance or a model plant mismatch. A novel approach entitled “quantized fault detection in networked control systems with time delays” is studied in Zhang (2013). Model predictive control is used to compensate for time delays, while linear matrix inequality was employed to guarantee the H-infinity stability of the state predictive observer. Application of fault detection and diagnosis for industrial gas turbine systems using hierarchical clustering and self-organizing neural network maps is demonstrated in Zhang (2017). Finally, Zhang (2017) developed techniques to accommodate transient system operation.

Takagi-Sugeno fuzzy models are proposed in Nguang et al. (2007), and parity relation-based technique is used to estimate faults in nonlinear systems. The residual generator there is based on linear matrix inequalities. However, fault detection and identification is rarely used in bilinear systems. In Yu et al. (1995) and Yu and Shields (2001), linear parity space method with recursive algorithm is extended in these systems. Parity space-based fault detection technique for linear discrete time-varying (LDTV) systems is considered in Zhong et al. (2015) and Zhong (2010). To find a solution under heavy online computational burdens, authors employed projection to Krein space and increasing parity space order. Construction of discrete time-varying parity equations for linear systems under dwell-time switching is shown in Sun et al. (2018).

Detection and isolation are critical in practical systems. Since all processes are affected by unknown factors, fault occurrence should be recognized in a process, and its distinction with issues such as disturbance, uncertainty, and noise are determined in Wei and Verhaegen (2011) and Ding et al. (1999). In this approach, residue array is designed based on state-space realization. In Zhong et al. (2015), a new fault detection method is proposed for linear discrete time-varying systems subject to unknown inputs with limited \(l_2\)-norm. The basic idea is to design the fault detection system with \(l_2\)-norm unknown inputs, bound as the threshold. The proposed Krein space projection technique adds a recursive factor to reduce the computational burden. In Dong (2015), the dynamic plant is subject to nonlinearities, while the faults occur randomly with Bernoulli distribution. The goal is to design a time-varying fault estimator approach to mitigate exogenous disturbances and highlight randomly-occurring faults. The desired fault estimator is designed using recursive linear matrix inequality approach.

Fault detection using fuzzy observer for nonlinear systems in the presence of external disturbances is studied in Li (2016). In this study, Takagi Sugeno fuzzy models were employed to approximate nonlinear systems. Then, using \(l_2\) stability theory, the observer-based FD systems were investigated. In Krokavec and Filasová (2015), a PD observer-based fault estimator was implemented for a class of TS descriptors to perform fault estimation in continuous-time nonlinear systems. An intermediate estimator was proposed in Zhu (2015) and Wang and Yi (2017) to estimate the states and faults in a class of Lipschitzian nonlinear systems. A bank of Kalman estimators is generated in Chang (2017) and Oliaee et al. (2019) to identify the faulty sensors by comparing the measurements with the proposed estimated signals. An analytical fault-tolerant strategy, with sliding-mode observer, is used in Hasani et al. (2017) to improve the reliability of the aerospace launch vehicle.

Fault detection and isolation in nonlinear time-varying dynamic systems with uncertainty, along with a comparison between parity space-based and observer-based approaches, are discussed in Frank (1994). As demonstrated there, parity space-based and observer-based approaches can be converted to each other. A novel Nonlinear Minimum Variance (NMV) estimator is implemented in Alkaya and Grimble (2016) to generate a residual vector and, consequently, provide fault detection in nonlinear systems. In Leuschen et al. (2005), the NLAR technique was applied to a class of nonlinear systems. However, the proposed residues are sensitive to occurred faults and are dependent on the system inputs. Therefore, a particular mapping is implemented in Aldeen and Sharma (2008) and Sedigh Ziyabari and Shoorehdeli (2018) to decouple fault and unknown disturbances in a class of nonlinear systems through a series of transformations.

Recently, other classes of approximation models for nonlinear systems have been proposed in the literature. Fractional neural networks were proposed in Lodhi et al. (2019) to find an approximate model for nonlinear systems based on Riccati equations. Reachable set estimation and verification in safety-critical nonlinear systems is discussed in Xiang et al. (2019). Non-empty intersections between unsafe regions and the estimated reachable set will produce the verified model. The quasilinear approximation, which is capable of reproducing many properties of exact nonlinear systems, is employed in Pausch (2019) to approximate Navier–Stokes equation. Recently, there have been many studies on different classes of approximation models for nonlinear systems, which is an important issue for designing nonlinear parity family approaches. A finite-time fault-tolerant control for a class of switched nonlinear systems with finite-time stability is considered in Liu et al. (2018). The effectiveness of the theoretical result in that study is evaluated by an illustrative simulation.

On the other hand, since many practical nonlinear systems suffer significantly from linearization, a design approach that is implemented directly on a class of nonlinear systems is inevitable. In this paper, we are introducing a method to detect the occurrence of fault in a class of nonlinear systems subject to component/actuator faults, in the presence of measurement noise. Moreover, unlike the approach introduced in Leuschen et al. (2005) and Yang and Fang (2019), the residues signals in this paper are not sensitive to input variations, and all designed residues will be stimulated in the event of an occurrence of faults.

This paper is organized as follows. Problem formulation to decouple the two subsystems is provided in Sect. 2. The proposed fault detection scheme based on nonlinear unknown input observer and nonlinear parity approach is presented in Sect. 3. The validity of this approach on three practical examples and simulation results are demonstrated in Sect. 4. Finally, Sect. 5 concludes the paper.

2 Problem Formulation and Preliminaries

Nonlinear systems are significantly different from linear systems. Some fundamental behaviors such as limit cycle, finite escape time, multiple isolated equilibrium points, and chaos are not considered in linear systems. Therefore, control and fault detection and identification are more important and more complex in nonlinear systems.

Since high-order differentiation amplifies high-frequency noise in continuous nonlinear systems, designing a mapping mechanism to decouple noise in high frequencies is inevitable.

The following can be considered as the nonlinear state-space realization of the system:

$$\begin{aligned} \left\{ \begin{array}{l} {\dot{x}}(t)=Ax(t)+Bu(t)+G(x,u)+Ff_c(t)\\ y(t)=Cx(t)+\lambda n(t) \end{array} \right. \end{aligned}$$
(1)

where \(x(t)\in \mathfrak {R}^n,u(t)\in \mathfrak {R}^m,y(t)\in \mathfrak {R}^{n_y},f_c(t)\in \mathfrak {R}^{n_c},n(t)\in \mathfrak {R}^{n_s}\) are the states, input, output, fault, and noise vectors, respectively. Moreover, ABFC and \(\lambda \) are constant matrices with appropriate dimensions. It is assumed that measurement noise is not determined, while the coefficient \(\lambda \) is determined. The known nonlinear function G(xu) is assumed to be locally Lipschitz (Isidori 2013; Khalil 2002) with Lipschitz constant \(\gamma _0\). That is,

$$\begin{aligned} \parallel G(x_1,u)-G(x_2,u)\parallel \le \gamma _0 \parallel x_1-x_2\parallel ~~\forall x_1,x_2\in \mathfrak {R}^n \end{aligned}$$
(2)

Lemma 2.1

There always exists a correspondent system in which the matrices \(({\bar{A}},{\bar{B}},{\bar{F}},{\bar{C}},{{\bar{\lambda }}})\) have the following structures respectively:

$$\begin{aligned} \begin{aligned} \bigg ( \begin{bmatrix} A11&{}A12\\ A21&{}A22 \end{bmatrix}, \begin{bmatrix} B1\\ B2 \end{bmatrix}, \begin{bmatrix} 0_{(n-n_c)\times n_c}\\ f \end{bmatrix}, \begin{bmatrix} C11&{}C12\\ C21&{}C22 \end{bmatrix},\\ \begin{bmatrix} l\\ 0_{(n_y-n_s)\times n_s} \end{bmatrix} \bigg ) \end{aligned} \end{aligned}$$
(3)

where \(A_{11}\in \mathfrak {R}^{(n-n_c)\times (n-n_c)}\), \(A_{12}\in \mathfrak {R}^{(n-n_c)\times (n_c)}\), \(A_{21}\in \mathfrak {R}^{(n_c)\times (n-n_c)}\), \(A_{22}\in \mathfrak {R}^{n_c\times n_c}\), \(B_{1}\in \mathfrak {R}^{(n-n_c)\times m}\), \(B_{2}\in \mathfrak {R}^{n_c\times m}\), \(f\in \mathfrak {R}^{n_c\times n_c}\), \(C_{11}\in \mathfrak {R}^{n_s\times (n-n_c)}\), \(C_{12}\in \mathfrak {R}^{n_s\times n_c}\), \(C_{21}\in \mathfrak {R}^{(n_y-n_s)\times (n-n_c)}\), \(C_{22}\in \mathfrak {R}^{(n_y-n_s)\times n_c}\), \(l\in \mathfrak {R}^{n_s\times n_s}\)

Proof

Using singular value decomposition, matrix \(\lambda \in \mathfrak {R}^{n_y\times n_s}\) can be expressed as:

$$\begin{aligned} \lambda =U\varSigma _\lambda V^T=[u_1~u_2] \begin{bmatrix} \varSigma _2\\ 0_{(n_y-n_s)\times n_s} \end{bmatrix} V^T \end{aligned}$$
(4)

where \(U\in \mathfrak {R}^{n_y\times n_y}\), \(\varSigma _\lambda \in \mathfrak {R}^{n_y\times n_s}\), \(V^T\in \mathfrak {R}^{n_s\times n_s}\), \(u_1\in \mathfrak {R}^{n_y\times n_s}\), \(u_2\in \mathfrak {R}^{n_y\times (n_y-n_s)}\), \(\varSigma _2\in \mathfrak {R}^{n_s\times n_s}\). (1) may then be rewritten as:

$$\begin{aligned} y(t)=Cx(t)+U\varSigma _\lambda V^Tn(t) \end{aligned}$$
(5)

Then, (5) can be pre-multiplied by \(U^T\) to obtain:

$$\begin{aligned} \begin{aligned} U^Ty(t)= \begin{bmatrix} u_1^Ty(t)\\ u_2^Ty(t) \end{bmatrix} \overset{\varDelta }{=} \begin{bmatrix} {\bar{y}}_1(t)\\ {\bar{y}}_2(t) \end{bmatrix}= \begin{bmatrix} u_1^T\\ u_2^T \end{bmatrix} Cx(t)\\ +\begin{bmatrix} \varSigma _2\\ 0 \end{bmatrix}V^Tn(t) \end{aligned} \end{aligned}$$
(6)

Singular value decomposition of matrix \(F\in \mathfrak {R}^{n\times n_c}\) yields:

$$\begin{aligned} F=Q\varSigma _F R^T=[q_1~q_2] \begin{bmatrix} 0_{(n-n_c)\times n_c}\\ \varSigma _1 \end{bmatrix} R^T \end{aligned}$$
(7)

where \(Q\in \mathfrak {R}^{n\times n}\), \(\varSigma _F \in \mathfrak {R}^{n\times n_c}\), \(R^T\in \mathfrak {R}^{n_c\times n_c}\), \(q_1\in \mathfrak {R}^{n\times (n-n_c)}\), \(q_2\in \mathfrak {R}^{n\times n_c}\), \(\varSigma _1\in \mathfrak {R}^{n_c\times n_c}\). By defining:

$$\begin{aligned} {\bar{x}}\overset{\varDelta }{=}Q^Tx= \begin{bmatrix} {\bar{x}}_1\\ {\bar{x}}_2 \end{bmatrix} \Rightarrow x=Q{\bar{x}} \end{aligned}$$
(8)

(1) becomes as:

$$\begin{aligned} \begin{aligned} {\dot{\bar{x}}}(t)=\,&Q^TAQ{\bar{x}}(t)+Q^TBu(t)+Q^TG(Q{\bar{x}},u)\\&+\begin{bmatrix} 0\\ \varSigma _1 \end{bmatrix} R^Tf_c(t) \end{aligned} \end{aligned}$$
(9)

Now, by substituting (8) into (6), we have:

$$\begin{aligned} \begin{bmatrix} {\bar{y}}_1(t)\\ {\bar{y}}_2(t) \end{bmatrix}= U^TCQ{\bar{x}}(t)+ \begin{bmatrix} \varSigma _2\\ 0 \end{bmatrix}V^Tn(t) \end{aligned}$$
(10)

In (9) and (10):

$$\begin{aligned} \begin{aligned} Q^TAQ=\,&\begin{bmatrix} A_{11}&{}A_{12}\\ A_{21}&{}A_{22} \end{bmatrix},\quad Q^TB= \begin{bmatrix} B_1\\ B_2 \end{bmatrix},\\ U^TCQ=\,&\begin{bmatrix} C_{11}&{}C_{12}\\ C_{21}&{}C_{22} \end{bmatrix} \end{aligned} \end{aligned}$$
(11)

\(\square \)

3 Development of Fault Detection Scheme Based on Unknown Input Observer

In this section, the proposed unknown input observer-based fault detection approach will be introduced. Then, the structure formulation demonstrated in Sect. 2 will be implemented. To consider the problem of fault detection design, regarding the transformations in Lemma 2.1. are essential. The original system in (1) can be divided into the following two subsystems:

$$ \begin{aligned} &\dot{{\bar{x}}}_1(t)=A_{11}{{\bar{x}}}_1(t)+A_{12}{{\bar{x}}}_2(t)+B_1u(t)+G_1(Q{\bar{x}},u)\\ &\dot{{\bar{x}}}_2(t)=A_{21}{{\bar{x}}}_1(t)+A_{22}{{\bar{x}}}_2(t)+B_2u(t)+G_2(Q{\bar{x}},u)\\ &\quad \quad\quad+\varSigma _1R^T f_c(t)\\& {\bar{y}}_1(t)=C_{11}{{\bar{x}}}_1(t)+C_{12}{{\bar{x}}}_2(t)+\varSigma _2V^T n(t)\\ &{\bar{y}}_2(t)=C_{21}{{\bar{x}}}_1(t)+C_{22}{{\bar{x}}}_2(t) \end{aligned}$$
(12)

where \({\bar{x}}_1\in R^{n-n_c},{\bar{x}}_2\in R^{n_c}\) are partitioned transformed states, and \({\bar{y}}_1\in R^{n_s},{\bar{y}}_2\in R^{n_y-n_s}\) are partitioned transformed outputs of the original system. For the sake of simplicity, matrices \(f\,\overset{\varDelta }{=}\, \varSigma _1 R^T\in R^{n_c\times n_c}\) and \(l\,\overset{\varDelta }{=}\, \varSigma _2 V^T\in R^{n_s\times n_s}\) are defined. Moreover, it is assumed that \(n_y\ge n_s+n_c,~n_y+n_c>n+n_s\). This assumption is not restrictive since there are many practical systems with similar assumptions.

3.1 Decoupling the Faulty and Noisy Subsystems

Since \(C_{22}\in \mathfrak {R}^{(n_y-ns)\times (n_c)}\) is full column rank, a \((n_y-n_s)\times (n_y-n_s)\) non-singular matrix may be constructed from:

$$\begin{aligned} \begin{array}{l} N_2= \begin{bmatrix} C_{22}^+\\ M_2 \end{bmatrix} \end{array} \end{aligned}$$
(13)

where \(C_{22}^+\in \mathfrak {R}^{(n_c)\times (n_y-n_s)}\) is the pseudo-inverse of \(C_{22}\), defined as \(C_{22}^+=(C_{22}^TC_{22})^{-1}C_{22}^T\), and \(M_2\in \mathfrak {R}^{(n_y-n_s-n_c)\times (n_y-n_s)} \) is an arbitrarily selected matrix so that \(N_2\in \mathfrak {R}^{(n_y-n_s)\times (n_y-n_s)}\) will be non-singular. Premultiplying the second subsystem output by (14) yields:

$$\begin{aligned} \begin{bmatrix} C_{22}^+\\ M_2 \end{bmatrix} {\bar{y}}_2(t)= \begin{bmatrix} C_{22}^+\\ M_2 \end{bmatrix} C_{21}{\bar{x}}_1(t)+ \begin{bmatrix} C_{22}^+\\ M_2 \end{bmatrix} C_{22}{\bar{x}}_2(t) \end{aligned}$$
(14)

Since \(C_{22}^+C_{22}=I_{n_c}\), (14) yields:

$$\begin{aligned} {\bar{x}}_2(t)= \,& {}\, C_{22}^+\bigg ({\bar{y}}_2(t)-C_{21}{\bar{x}}_1(t)\bigg ) \end{aligned}$$
(15)
$$\begin{aligned} M_2{\bar{y}}_2= \,& {} \,M_2C_{21}{\bar{x}}_1+M_2C_{22}{\bar{x}}_2 \end{aligned}$$
(16)

Substituting (15) into (12) results in:

$$\begin{aligned} \dot{{\bar{x}}}_1(t)= \,& {} {\tilde{A}}_1{\bar{x}}_1(t)+{\tilde{B}}_1{\tilde{u}}(t)+G_1(Q\bar{x},u)\nonumber \\ {\tilde{y}}_1(t)= \,& {} {\tilde{C}}_1{\bar{x}}_1(t)+ln(t); \end{aligned}$$
(17)

where \({\tilde{A}}_1=A_{11}-A_{12}C_{22}^+C_{21}, {\tilde{B}}_1=[B_1~A_{12}C_{22}^+],{\tilde{u}}(t)=[u^T(t)~{\bar{y}}_2^T(t)]^T,{\tilde{y}}_1(t)={\bar{y}}_1(t)-C_{12}C_{22}^+{\bar{y}}_2(t),{\tilde{C}}_1=C_{11}-C_{12}C_{22}^+C_{21}\).

Similarly, since \(C_{21}\in \mathfrak {R}^{(n_y-ns)\times (n-n_c)}\) is full-column rank, a \((n_y-n_s)\times (n_y-n_s)\) non-singular matrix may be constructed from:

$$\begin{aligned} \begin{array}{l} N_1= \begin{bmatrix} C_{21}^+\\ M_1 \end{bmatrix} \end{array} \end{aligned}$$
(18)

where \(C_{21}^+\in \mathfrak {R}^{(n-n_c)\times (n_y-n_s)}\) is the pseudo-inverse of \(C_{21}\), defined as \(C_{21}^+=(C_{21}^TC_{21})^{-1}C_{21}^T\), and \(M_1\in \mathfrak {R}^{(n_y-n_s-n+n_c)\times (n_y-n_s)} \) is an arbitrarily selected matrix so that \(N_1\in \mathfrak {R}^{(n_y-n_s)\times (n_y-n_s)}\) will be non-singular. Premultiplying the second subsystem output by (18) gives:

$$\begin{aligned} \begin{bmatrix} C_{21}^+\\ M_1 \end{bmatrix} {\bar{y}}_2(t)= \begin{bmatrix} C_{21}^+\\ M_1 \end{bmatrix} C_{21}{\bar{x}}_1(t)+ \begin{bmatrix} C_{21}^+\\ M_1 \end{bmatrix} C_{22}{\bar{x}}_2(t) \end{aligned}$$
(19)

Since \(C_{21}^+C_{21}=I_{n-n_c}\), (19) yields:

$$\begin{aligned} {\bar{x}}_1(t)= \,& {} C_{21}^+\bigg ({\bar{y}}_2(t)-C_{22}{\bar{x}}_2(t)\bigg ) \end{aligned}$$
(20)
$$\begin{aligned} M_1{\bar{y}}_2= \,& {} M_1C_{21}{\bar{x}}_1+M_1C_{22}{\bar{x}}_2 \end{aligned}$$
(21)

Substituting (20) into (12) results in:

$$\begin{aligned} \begin{array}{l} \dot{{\bar{x}}}_2(t)={\tilde{A}}_2{\bar{x}}_2(t)+{\tilde{B}}_2{\tilde{u}}(t)+G_2(Q\bar{x},u)+ff_c(t)\\ \end{array} \end{aligned}$$
(22)

where \({\tilde{A}}_2=A_{22}-A_{21}C_{21}^+C_{22}, {\tilde{B}}_2=[B_2~A_{21}C_{21}^+],{\tilde{u}}(t)=[u^T(t)~{\bar{y}}_2^T(t)]^T.\) Finally, by substituting (20) into (21), we have:

$$\begin{aligned} \begin{aligned} & M_1(I_{n_y-n_s}-C_{21}C_{21}^+){\bar{y}}_2\\&\quad = M_1(I_{n_y-n_s}-C_{21}C_{21}^+)C_{22}{\bar{x}}_2 \end{aligned} \end{aligned}$$
(23)

Define \({\tilde{y}}_2\overset{\varDelta }{=}M_1(I_{n_y-n_s}-C_{21}C_{21}^+){\bar{y}}_2\) and \({\tilde{C}}_{2}\overset{\varDelta }{=}M_1(I_{n_y-n_s}-C_{21}C_{21}^+)C_{22}\) yields \({\tilde{y}}_2={\tilde{C}}_{2}{\bar{x}}_2\).

3.2 Nonlinear Unknown Input Observer Design

In this section, we propose a theorem to design a NUIO for the fault-free part of the system, provided by (17). The proposed approach estimates \({\bar{x}}_1(t)\) in the presence of measurement noise. Moreover, the stability of the error system is guaranteed in this method.

State-space realization of the NUIO is as follows:

$$\begin{aligned} \left\{ \begin{array}{l} \dot{z}(t)=Fz(t)+J{\tilde{u}}(t)+g_1{\tilde{y}}_1(t)+WG_1(Q\hat{{\bar{x}}},u)\\ \hat{{\bar{x}}}_1(t)=z(t)-g_2{\tilde{y}}_1(t); \end{array} \right. \end{aligned}$$
(24)

where \(F,~J,~g_1,~W\) and \(g_2\) are constant matrices with appropriate dimensions defined as:

$$\begin{aligned} \begin{aligned}&g_2l=0\Rightarrow g_2\in nullspace(l)\\&Fg_2l+g_1l=0\Rightarrow g_1\in nullspace(l)\\&W=I+g_2{\tilde{C}}_1, J=g_2{\tilde{C}}_1{\tilde{B}}_1+{\tilde{B}}_1\\&F+Fg_2{\tilde{C}}_1+g_1{\tilde{C}}_1-g_2{\tilde{C}}_1{\tilde{A}}_1-{\tilde{A}}_1=0\\ \end{aligned} \end{aligned}$$
(25)

where \(z(t)\in \mathfrak {R}^{n-n_c}\) is the observer state that constructs the exact estimated state \(\hat{{\bar{x}}}_1(t)\). To have an answer to the last equation in (25), \(g_2\) must be in the null-space of l. Plus, \(I+g_2\tilde{C_1}\) is not a singular matrix (Chen and Patton 2012; Hosseini et al. 2019a, b). The necessary and sufficient conditions for asymptotical stability of \(e_1(t)=\hat{{\bar{x}}}_1(t)-{\bar{x}}_1(t)\) for NUIO, given by (24) and (25), are described in the following theorem. It should be noted that \(\hat{{\bar{x}}}_2(t)=C_{22}^+({\bar{y}}_2(t)-C_{21}\hat{{\bar{x}}}_1(t))\) will be obtained simultaneously.

Lemma 3.1

The following property holds for any positive scalar \(\epsilon \) and for any matrices P and Q with appropriate dimensions (Hosseini et al. 2019b):

$$\begin{aligned} P^TQ+Q^TP \le \epsilon P^TP+\epsilon ^{-1}Q^TQ \end{aligned}$$
(26)

Theorem 3.2

Consider the nonlinear system given by (17) with a Lipschitz constant \(\gamma _0\) and the NUIO structure demonstrated in (24) and (25). The observer error dynamics is asymptotically stable for any positive scalar \(\epsilon \), if the following linear matrix inequality holds:

$$\begin{aligned} \begin{aligned} \begin{bmatrix} -\epsilon ^{-1}I&{}X_{12}\\ X_{12}^T&{}X \end{bmatrix}<0 \end{aligned} \end{aligned}$$
(27)

where X and \(X_{12}\) are defined as:

$$\begin{aligned} \begin{aligned} X=2F^T+\epsilon ^{-1}\gamma _0^2I,X_{12}=W \end{aligned} \end{aligned}$$
(28)

Proof

In the decoupling of the nonlinear system according to the transformed state errors \(e_1=\hat{{\bar{x}}}_1-{\bar{x}}_1\) and \(e_2=\hat{{\bar{x}}}_2-{\bar{x}}_2\), the positive definite Lyapunov function \(V=e_1^Te_1+e_2^Te_2\) is introduced.

Equations (17) and (24) obtain:

$$\begin{aligned} \begin{aligned}&\dot{e}_1(t) =\,Fe_1(t)+(F+Fg_2{\tilde{C}}_1+g_1{\tilde{C}}_1-g_2{\tilde{C}}_1{\tilde{A}}_1-{\tilde{A}}_1)x_1(t)\\&+ (J-g_2{\tilde{C}}_1{\tilde{B}}_1-{\tilde{B}}_1){\tilde{u}}(t)+(Fg_2l+g_1l)n(t)-g_2l\dot{n}(t)\\&+ WG_1(Q\hat{{\bar{x}}},u)-g_2{\tilde{C}}_1G_1(Q{\bar{x}},u)-G_1(Q{\bar{x}},u) \end{aligned} \end{aligned}$$
(29)

Using (25), we have:

$$\begin{aligned} \begin{aligned} {\dot{e}}_1=Fe_1+W(G_1(Q\hat{{\bar{x}}},u)-G_1(Q{\bar{x}},u))=Fe_1+W{\tilde{G}}_1 \end{aligned} \end{aligned}$$
(30)

The time derivative of the Lyapunov function is given by:

$$\begin{aligned} {\dot{V}}= 2\dot{e}_1^Te_1+2\dot{e}_2^Te_2 \end{aligned}$$
(31)

The second subsystem error dynamic is:

$$\begin{aligned} \begin{aligned}&e_2=\hat{{\bar{x}}}_2-{\bar{x}}_2=C_{22}^+\bigg ({\bar{y}}_2(t)-C_{21}\hat{{\bar{x}}}_1(t)\bigg )\\&\quad -C_{22}^+\bigg ({\bar{y}}_2(t)-C_{21}{\bar{x}}_1(t)\bigg )\Rightarrow \\&e_2=-C_{22}^+C_{21}(\hat{{\bar{x}}}_1-{\bar{x}}_1)=-C_{22}^+C_{21}e_1\Rightarrow \\&\dot{e}_2=-C_{22}^+C_{21}\dot{e}_1 \end{aligned} \end{aligned}$$
(32)

Substituting (32) into (31) yields:

$$\begin{aligned} \begin{aligned} \dot{V}=\,&2\dot{e}_1^Te_1+2\dot{e}_1^T(C_{22}^+C_{21})^T(C_{22}^+C_{21})e_1\\ =\,&2e_1^TF^Te_1+{\tilde{G}}_1^TW^Te_1+e_1^TW{\tilde{G}}_1\\&+2\dot{e}_1^T(C_{22}^+C_{21})^T(C_{22}^+C_{21})e_1 \end{aligned} \end{aligned}$$
(33)

Using Lemma 3.1., and considering \(P=W^Te_1,Q={\tilde{G}}_1\), we have:

$$\begin{aligned} \begin{aligned}&\dot{V}<2e_1^T F^T e_1+\epsilon e_1^T WW^T e_1+\epsilon ^{-1} {\tilde{G}}_1^T {\tilde{G}} _1\\&\quad +2\dot{e} _1^T (C_{22}^+ C_{21} )^T (C_{22}^+ C_{21} ) e_1 \end{aligned} \end{aligned}$$
(34)

Also, we know that:

$$\begin{aligned} \begin{aligned} 2\dot{e}_1^T (C_{22}^+ C_{21} )^T (C_{22}^+ C_{21} ) e_1<2{\bar{\sigma }} \big ((C_{22}^+ C_{21} )^T (C_{22}^+ C_{21} )\big ) \dot{e}_1^T e_1 \end{aligned} \end{aligned}$$
(35)

Therefore, we have:

$$\begin{aligned} \begin{aligned}&\dot{V}<2e_1^TF^Te_1+\epsilon ^{-1}{\tilde{G}}_1^T{\tilde{G}}_1+\epsilon e_1^TWW^Te_1\\&\quad +2{\bar{\sigma }}(C_{22}^+C_{21})^T(C_{22}^+C_{21})\dot{e}_1^Te_1 \end{aligned} \end{aligned}$$
(36)

where \({\bar{\sigma }}(C_{22}^+C_{21})^T(C_{22}^+C_{21})\) is the maximum singular value of \((C_{22}^+C_{21})^T(C_{22}^+C_{21})\).

Using (2) and (36) leads to:

$$\begin{aligned} \begin{aligned}&\dot{V}<\bigg (1+{\bar{\sigma }}(C_{22}^+C_{21})^T(C_{22}^+C_{21})\bigg )\\&\quad \times \bigg (2e_1^TF^Te_1+\epsilon ^{-1}\gamma _0^2e_1^Te_1+\epsilon e_1^TWW^Te_1\bigg ) \end{aligned} \end{aligned}$$
(37)

The stability condition for the estimation error dynamic is provided when the time derivative of the Lyapunov function is negative definite.

Since \((1+{\bar{\sigma }}(C_{22}^+C_{21})^T(C_{22}^+C_{21}))\) is a positive number, we have:

$$\begin{aligned} \begin{array}{l} 2F^T+\epsilon ^{-1}\gamma _0^2I_{n-n_c}+\epsilon WW^T<0 \end{array} \end{aligned}$$
(38)

Using \(X\overset{\varDelta }{=}2F^T+\epsilon ^{-1}\gamma _0^2I_{n-n_c}\), \(X_{12}\overset{\varDelta }{=}W^T\), and Schur complement, LMI in (27) is concluded. \(\square \)

3.3 Residual Generation Using Nonlinear Parity Approach

In this section, nonlinear parity approach is expanded for the composition of residuals. By considering subsystem 2 subjected to fault \(f_c(t)\) in the state equation,

$$\begin{aligned} \left\{ \begin{array}{l} \dot{{\bar{x}}}_2(t)={\tilde{A}}_2{\bar{x}}_2(t)+{\tilde{B}}_2{\tilde{u}}(t)+G_2(Q\bar{x},u)+ff_c(t)\\ {\tilde{y}}_2(t)={\tilde{C}}_2{\bar{x}}_2(t) \end{array} \right. \end{aligned}$$
(39)

Parity relations are derived by differentiating output. By applying the proposed transformations, measurement noise will be eliminated from the subsystem. Otherwise, due to the amplification of high-frequency noise, nonlinear parity approach is infeasible.

$$\begin{aligned} \begin{aligned}&{\tilde{y}}_2(t)={\tilde{C}}_2{\bar{x}}_2(t)\\&\dot{{\tilde{y}}}_2(t)={\tilde{C}}_2{\tilde{A}}_2{\bar{x}}_2+{\tilde{C}}_2{\tilde{B}}_2{\tilde{u}}+{\tilde{C}}_2G_2+{\tilde{C}}_2ff_c(t)\\&\ddot{{\tilde{y}}}_2(t)={\tilde{C}}_2{\tilde{A}}_2^2{\bar{x}}_2+{\tilde{C}}_2{\tilde{A}}_2{\tilde{B}}_2{\tilde{u}}+{\tilde{C}}_2{\tilde{A}}_2G_2\\&\quad \quad \quad + {\tilde{C}}_2{\tilde{A}}_2ff_c(t)+{\tilde{C}}_2{\tilde{B}}_2\dot{{\tilde{u}}}+{\tilde{C}}_2\dot{G}_2+{\tilde{C}}_2f\dot{f}_c(t)\\&\qquad \qquad \qquad \qquad \qquad \quad .\\&\qquad \qquad \qquad \qquad \qquad \quad .\\&\qquad \qquad \qquad \qquad \qquad \quad . \end{aligned} \end{aligned}$$
(40)

where \(\dot{G}_2\) in (38) is the derivative of \(G_2\) with respect to time (\(\dot{G}_2=\frac{\partial G_2}{\partial {\bar{x}}}\dot{{\bar{x}}}+\frac{\partial G_2}{\partial u}\dot{u}\)). Next, we need to determine how many derivatives of the output must be retained to generate a minimal set of residuals. In nonlinear systems, it is \(n_c\), which is equal to the number of the states \({\bar{x}}_2\). The residuals obtained using the proposed approach are described in the following proposition.

Proposition 3.3

Retaining the output derivatives yields \(y_s=H_{os}\hat{{\bar{x}}}_2+H_{us}u_s+H_{fs}f_s\). To determine parity matrix \(v_s\), it is sufficient that \(v_s\in null~space~of~H_{os}\) matrix where \(H_{os}\hat{{\bar{x}}}_2\) is as follows:

$$\begin{aligned} \begin{array}{l} H_{os}\hat{{\bar{x}}}_2= \begin{bmatrix} {\tilde{C}}_2\\ {\tilde{C}}_2{\tilde{A}}_2\\ {\tilde{C}}_2{\tilde{A}}_2^2\\ .\\ .\\ . \end{bmatrix}\hat{{\bar{x}}}_2 \end{array} \end{aligned}$$
(41)

Residuals are obtained via multiplying the parity matrix \(v_s\) and the nonlinear dynamically derived matrix \(y_s-H_{us}u_s\).

$$\begin{aligned} \begin{array}{l} R=v_s(y_s-H_{us}u_s) \end{array} \end{aligned}$$
(42)

where \(y_s\) and \(H_{us}u_s\) are given by:

$$\begin{aligned} \begin{aligned} \begin{array}{l} y_s= \begin{bmatrix} {\tilde{y}}_2\\ \dot{{\tilde{y}}}_2\\ \ddot{{\tilde{y}}}_2\\ .\\ .\\ . \end{bmatrix}, \quad H_{us}u_s= \begin{bmatrix} 0\\ {\tilde{C}}_2{\tilde{B}}_2{\tilde{u}}+{\tilde{C}}_2{\hat{G}}_2\\ {\tilde{C}}_2{\tilde{A}}_2{\tilde{B}}_2{\tilde{u}}+{\tilde{C}}_2{\tilde{A}}_2{\hat{G}}_2+\\ {\tilde{C}}_2{\tilde{B}}_2\dot{{\tilde{u}}}+{\tilde{C}}_2\dot{{\hat{G}}}_2\\ .\\ .\\ . \end{bmatrix} \end{array} \end{aligned} \end{aligned}$$
(43)

where \({\hat{G}}_2\) is defined as \(G_2(Q\hat{{\bar{x}}},u)\).

Remark 3.4

The system matrix \(H_{fs}f_s\) given by (39) can be rewritten as:

$$\begin{aligned} \begin{array}{l} H_{fs}f_s= \begin{bmatrix} 0\\ {\tilde{C}}_2ff_c(t)\\ {\tilde{C}}_2{\tilde{A}}_2ff_c(t)+{\tilde{C}}_2f\dot{f}_c(t)\\ .\\ .\\ . \end{bmatrix} \end{array} \end{aligned}$$
(44)

In faulty conditions, \(R\ne 0\) and the otherwise the residue vector will approximately be zero.

4 Numerical Examples and Simulation Results

To demonstrate the efficiency of the approach expressed in Sects. 23, three practical examples of nonlinear systems are investigated, and the results are examined.

Example 4.1

In this example, the proposed approach is implemented to (1) decouple fault and measurement noise, and (2) estimate unknown states and detect faults in the train system presented in Fig. 1. This system consists of an engine E, and a carriage C, coupled by a spring with a stiffness coefficient k, and \(\rho \) representing the linear and nonlinear characteristics, respectively. The engine mass and the carriage mass are represented by \(M_E\) and \(M_C\), respectively. The train is moving using the engine traction force, u, which, for practical reasons, is assumed to be influenced by fault. In this system, the loss of traction force is modeled as a fault. The state-space realization for the train subject to possible faults is considered as follows:

$$\begin{aligned} \begin{aligned}&\dot{x}(t)= \begin{bmatrix} 0&{}1&{}0&{}0\\ -\frac{k}{M_E}&{}-\alpha g&{}\frac{k}{M_E}&{}0\\ 0&{}0&{}0&{}1\\ \frac{k}{M_C}&{}0&{}-\frac{k}{M_C}&{}-\alpha g \end{bmatrix} x(t) \\&\quad +\begin{bmatrix} 0\\ \frac{1}{M_E}\\ 0\\ 0 \end{bmatrix} u(t) + \begin{bmatrix} 1&{}\frac{1}{M_E}\\ -\frac{1}{M_E}&{}0.2\\ 0&{}-1\\ 0&{}0 \end{bmatrix} \begin{bmatrix} f_1(t)\\ f_2(t) \end{bmatrix} + \begin{bmatrix} 0\\ \frac{\rho }{M_E}(x_2+\\ x_4)^2\\ 0\\ \frac{\rho }{M_C}(x_2+\\ x_4)^2 \end{bmatrix};\\ &\quad y(t)= \begin{bmatrix} 1&{}0&{}0&{}0\\ 0&{}1&{}0&{}0\\ 0&{}0&{}1&{}0\\ 0&{}0&{}0&{}1 \end{bmatrix} x(t)+ \begin{bmatrix} 2\\ 1\\ -1\\ -3 \end{bmatrix} n(t); \end{aligned} \end{aligned}$$
(45)

where \(\alpha \) is the rolling friction, and f(t) and n(t) represent loss of traction (fault) and measurement noise, respectively. The state vector is defined as \(x=[x_1~x_2~x_3~x_4]^T\), where \(x_1\) and \(x_2\) are engine’s position and velocity, respectively, and \(x_3\) and \(x_4\) are similar characteristics of the carriage. For simulation purpose, the following assumptions are considered: \(M_E=10~\hbox {kg}, M_C=5~\hbox {kg}, k=4.87~\hbox {N/s}, \alpha =0.5~\hbox {s/m}, \rho =1~\hbox {N/s}~\hbox {and}~g=9.8~\hbox {m/s}^2\).

Decoupling Fault and the Measurement Noise: The transformations matrices Q and U, as denoted by (4) and (7) are as follows:

$$\begin{aligned} \begin{aligned} \begin{array}{l} Q= \begin{bmatrix} 0&{}0.097&{}0.75&{}-0.66\\ 0&{}0.97&{}-0.2&{}-0.09\\ 0&{}0.2&{}0.6&{}0.7\\ 1&{}0&{}0&{}0 \end{bmatrix},\\ U= \begin{bmatrix} 0.52&{}-0.26&{}0.26&{}0.77\\ 0.26&{}0.96&{}0.04&{}0.13\\ -0.26&{}0.04&{}0.96&{}-0.13\\ -0.77&{}0.13&{}-0.13&{}0.60 \end{bmatrix} \end{array} \end{aligned} \end{aligned}$$
(46)

The proposed transformation applied to the system represented in (9) and (10) yields the following two subsystems:

$$\begin{aligned}&\left\{ \begin{array}{l} \dot{{\bar{x}}}_1(t)= \begin{bmatrix} -4.9&{}-0.1\\ 0.2&{}-4.5 \end{bmatrix} {\bar{x}}_1(t)+ \begin{bmatrix} 0.1&{}-1.4\\ 0.9&{}1.1 \end{bmatrix} {\bar{x}}_2(t) \\ \quad +\begin{bmatrix} 0\\ 0.097 \end{bmatrix} u(t) + \begin{bmatrix} 0.2(0.97{\bar{x}}_{12}-0.2{\bar{x}}_{21}-\\ 0.09{\bar{x}}_{22}+ {\bar{x}}_{11})^2\\ 0.097(0.97{\bar{x}}_{12}-0.2{\bar{x}}_{21}-\\ 0.09{\bar{x}}_{22}+ {\bar{x}}_{11})^2 \end{bmatrix}\\ {\bar{y}}_1(t)= \begin{bmatrix} -0.77&{}0.25 \end{bmatrix} {\bar{x}}_1(t) + \begin{bmatrix} 0.17&{}-0.56 \end{bmatrix} {\bar{x}}_2(t)+ 3.9n(t) \end{array} \right. \end{aligned}$$
(47)
$$\begin{aligned}&\left\{ \begin{array}{l} \dot{{\bar{x}}}_2(t)= \begin{bmatrix} 0.6&{}1.7\\ 0.7&{}-0.2 \end{bmatrix} {\bar{x}}_1(t) + \begin{bmatrix} -0.35&{}-0.3\\ 0.05&{}-0.04 \end{bmatrix} {\bar{x}}_2(t)\\ \quad +\begin{bmatrix} -0.02\\ -0.01 \end{bmatrix} u(t) + \begin{bmatrix} -0.02(0.97{\bar{x}}_{12}-0.2{\bar{x}}_{21}-\\ 0.09{\bar{x}}_{22}+ {\bar{x}}_{11})^2\\ -0.009(0.97{\bar{x}}_{12}-0.2{\bar{x}}_{21}-\\ 0.09{\bar{x}}_{22}+ {\bar{x}}_{11})^2 \end{bmatrix}\\ \quad +\begin{bmatrix} 0.8&{}-0.6\\ -0.6&{}-0.8 \end{bmatrix}f_c(t)\\ {\bar{y}}_2(t)= \begin{bmatrix} 0.13&{}0.9\\ -0.13&{}0.26\\ 0.6&{}0.18 \end{bmatrix} {\bar{x}}_1(t) + \begin{bmatrix} -0.36&{}0.11\\ 0.79&{}0.54\\ 0.47&{}-0.62 \end{bmatrix} {\bar{x}}_2(t) \end{array} \right. \end{aligned}$$
(48)

Using (17), (22), (23) we have:

$$\begin{aligned} \left\{ \begin{array}{l} \dot{{\bar{x}}}_1(t)= \begin{bmatrix} -5.8&{}0.2\\ 0.7&{}-4.7 \end{bmatrix} {\bar{x}}_1(t) \\ \quad +\begin{bmatrix} 0&{}-0.3&{}-0.8&{}1.4\\ 0.1&{}-0.1&{}1.4&{}-0.5 \end{bmatrix} {\tilde{u}}(t) \\ \quad +\begin{bmatrix} 0.2(0.97{\bar{x}}_{12}-0.2{\bar{x}}_{21}-0.09{\bar{x}}_{22}+{\bar{x}}_{11})^2\\ 0.097(0.97{\bar{x}}_{12}-0.2{\bar{x}}_{21}-0.09{\bar{x}}_{22}+{\bar{x}}_{11})^2 \end{bmatrix}\\ {\tilde{y}}_1(t)= \begin{bmatrix} -1.2&{}0.4 \end{bmatrix} {\bar{x}}_1(t)+ 3.9n(t) \end{array} \right. \end{aligned}$$
(49)

where \({\bar{x}}_2=C_{22}^+({\bar{y}}_2-C_{21}{\bar{x}}_1)\), \({\bar{x}}_1=[{\bar{x}}_{11}^T~{\bar{x}}_{12}^T]^T\) and \({\bar{x}}_2=[{\bar{x}}_{21}^T~{\bar{x}}_{22}^T]^T\).

$$\begin{aligned} \left\{ \begin{array}{l} \dot{{\bar{x}}}_2(t)= \begin{bmatrix} -0.39&{}-0.2\\ -0.3&{}1 \end{bmatrix} {\bar{x}}_2(t) \\ \quad +\begin{bmatrix} -0.02&{}1.6&{}0.3&{}0.8\\ -0.01&{}-0.3&{}-0.5&{}1.2 \end{bmatrix} {\tilde{u}}(t) \\ \quad +\begin{bmatrix} -0.02(0.97{\bar{x}}_{12}-0.2{\bar{x}}_{21}-0.09{\bar{x}}_{22}+{\bar{x}}_{11})^2\\ -0.009(0.97{\bar{x}}_{12}-0.2{\bar{x}}_{21}-0.09{\bar{x}}_{22}+{\bar{x}}_{11})^2 \end{bmatrix}\\ \quad +\begin{bmatrix} 0.8&{}-0.6\\ -0.6&{}-0.8 \end{bmatrix}f_c(t)\\ {\tilde{y}}_2(t)= \begin{bmatrix} -0.9&{}-0.3 \end{bmatrix} {\bar{x}}_2(t) \end{array} \right. \end{aligned}$$
(50)

where \({\bar{x}}_1=C_{21}^+({\bar{y}}_2-C_{22}{\bar{x}}_2)\).

Observer Design. Initially, the Lipschitz constant should be determined to ensure that (2) is satisfied.

Fig. 1
figure 1

A train system (Aldeen and Sharma 2008)

This is calculated as the supremum of the partial derivative of the nonlinear function G(x) with respect to x, which is:

$$\begin{aligned} \gamma _0=\parallel \frac{\partial G(x)}{\partial x} \parallel _\infty ~~at~x=x^{(0)} \end{aligned}$$
(51)

where \(x^{(0)}\) represents the equilibrium point of the train system. After calculations, the Lipschitz constant is determined as \(\gamma _0=0.088\).

The UIO observer gains for the fault-free subsystem, (24), are obtained by solving the BMI under the constraints in (25), (27), and (28), as:

$$\begin{aligned} g_1=g_2=0_{2\times 1},W=I_{2},J={\tilde{B}}_1,F={\tilde{A}}_1 \end{aligned}$$
(52)

The observer gain matrix F, with \(\epsilon =1\), results in \(2F^T+(1+\gamma _0^2)I_{2}\), which is negative definite with eigenvalues of \((-10.8,-8.1)\), and satisfies the conditions given by (27) and (28).

Residual Generation. To demonstrate the performance of the proposed observer and parity approach, the following simulation is executed. It is assumed that the initial conditions for the proposed observer are not equal to the main system, given by the (45). It is assumed that two abrupt faults occurred in the system at \(t=3(s), t=6(s)\).

From (41), the parity vector is:

$$\begin{aligned} \begin{aligned} V_s= \begin{bmatrix} -0.35&-0.49&0.8 \end{bmatrix} \end{aligned} \end{aligned}$$
(53)

After the simulation, the proposed residue signals are generated using (42). As can be seen, the estimated states are compared with the actual states in Figs. 2 and 3. For a fair comparison, the mean square estimation error for the engine’s position (reported in Aldeen and Sharma (2008)) and the proposed method in this paper are considered as 0.67 and 0.13, respectively. It can be seen that the proposed estimation approach is more efficient.

Fig. 2
figure 2

Proposed residual based on nonlinear parity approach

Fig. 3
figure 3

Real states and estimated ones with NUIO

Example 4.2

The state-space realization for the nonlinear system considered in this example is assumed to have component faults and measurement noises. The dynamical model of this system is expressed as follows:

$$\begin{aligned} \begin{array}{l} \dot{x}_1(t)=x_2(t)+sin(x_1(t)u(t))+f_{1c}(t)-f_{3c}(t)\\ \dot{x}_2(t)=x_3(t)+x_2(t)sin(x_3(t))+u(t)+f_{2c}(t)\\ \quad -2f_{3c}(t)\\ \dot{x}_3(t)=x_4(t)+u(t)+f_{1c}(t)-f_{2c}(t)+0.5f_{3c}(t)\\ \dot{x}_4(t)=x_5(t)+x_2(t)u(t)+u(t)-f_{1c}(t)\\ \dot{x}_5(t)=-3.75x_1(t)-17.25x_2(t)-28.125x_3(t)\\ \quad -21.25x_4(t)-7.5x_5(t)+ sin(x_1(t)x_2(t))\\ \quad +2f_{2c}(t)-1.5f_{3c}(t)\\ y(t)= \begin{bmatrix} 1&{}0&{}0&{}0&{}0\\ 0&{}1&{}0&{}0&{}0\\ 0&{}0&{}1&{}0&{}0\\ 0&{}0&{}0&{}1&{}0\\ 0&{}0&{}0&{}0&{}1 \end{bmatrix} x(t)+ \begin{bmatrix} -1&{}0\\ 0&{}1\\ 1&{}-1\\ -2&{}1.5\\ 1&{}0 \end{bmatrix} \begin{bmatrix} n_1(t)\\ n_2(t)\\ \end{bmatrix} \end{array} \end{aligned}$$
(54)

where \(x_1,~x_2,~x_3,~x_4\) and \(x_5\) are the states for the given nonlinear system, and u(t) and \(f_c(t)\) are control inputs and component faults, respectively. Finally, \(n(t)=[n_1^T(t),n_2^T(t)]^T\) represents the measurement noise. In this example, the conditions and the accuracy of the theorems are evaluated. It can be seen that:

$$\begin{aligned} \begin{aligned} G(x,u)= \begin{bmatrix} sin(x_1u)\\ x_2sin(x_3)\\ 0\\ x_2u\\ sin(x_1x_2) \end{bmatrix} \end{aligned} \end{aligned}$$
(55)

Decoupling Fault and Measurement Noise. The system can be converted to the two subsystems given by (4), (7) using the transformations Q and U:

$$\begin{aligned} \begin{aligned} Q=\,&\begin{bmatrix} -0.2&{}0.7&{}-0.2&{}-0.6&{}-0.2\\ 0.02&{}-0.5&{}-0.6&{}-0.2&{}-0.6\\ 0.7&{}-0.2&{}0.04&{}-0.6&{}0.3\\ 0.5&{}0.5&{}-0.5&{}0.5&{}-0.01\\ 0.4&{}0.2&{}0.6&{}0.08&{}-0.7 \end{bmatrix};\\ U=\,&\begin{bmatrix} -0.3&{}0.5&{}0.3&{}-0.6&{}0.4\\ -0.2&{}-0.7&{}0.4&{}-0.5&{}-0.3\\ 0.4&{}0.2&{}0.8&{}0.3&{}-0.05\\ -0.8&{}-0.05&{}0.3&{}0.5&{}0.2\\ 0.3&{}-0.5&{}-0.004&{}0.1&{}0.8 \end{bmatrix} \end{aligned} \end{aligned}$$
(56)

The nonlinear model in (54) can be rewritten as (9) and (10), with the following matrices:

$$\begin{aligned} \begin{aligned} \begin{array}{l} A_{11}= \begin{bmatrix} -11.7&{}0.7\\ -5.5&{}-0.2 \end{bmatrix}; A_{12}= \begin{bmatrix} 5.9&{}4.1&{}2.7\\ 2.4&{}1.7&{}0.3 \end{bmatrix};\\ A_{21}= \begin{bmatrix} -21.1&{}0.4\\ -3&{}0.2\\ 23.6&{}0.1 \end{bmatrix}; A_{22}= \begin{bmatrix} 9.4&{}6.4&{}5.2\\ 2.3&{}0.8&{}0.7\\ -11.3&{}-6.6&{}-5.8 \end{bmatrix};\\ B_1= \begin{bmatrix} 1.3\\ -0.2 \end{bmatrix}; B_2= \begin{bmatrix} -1.1\\ -0.2\\ -0.3 \end{bmatrix}; l= \begin{bmatrix} 2.6&{}-1.8\\ -0.7&{}-0.96 \end{bmatrix};\\ f= \begin{bmatrix} 0.35&{}0.57&{}0.49\\ -1.69&{}0.56&{}0.56\\ 0.11&{}-2.31&{}2.6 \end{bmatrix}; C_{11}= \begin{bmatrix} 0.05&{}-0.51\\ -0.18&{}0.54 \end{bmatrix};\\ C_{12}= \begin{bmatrix} 0.74&{}-0.42&{}0.13\\ 0.05&{}-0.38&{}0.73 \end{bmatrix}; C_{21}= \begin{bmatrix} 0.7&{}-0.1\\ 0.7&{}0.01\\ 0.2&{}0.7 \end{bmatrix};\\ C_{22}= \begin{bmatrix} -0.4&{}-0.6&{}-0.1\\ 0.2&{}0.6&{}0.4\\ 0.5&{}-0.1&{}-0.5 \end{bmatrix}; \end{array} \end{aligned} \end{aligned}$$
(57)

It should be noted that \(G_1\) is the first two rows of \(Q^TG(Q{\bar{x}},u)\), while \(G_2\) is the remaining rows.

Using (17), (22), and (23), we have:

$$\begin{aligned} \left\{ \begin{array}{l} \dot{{\bar{x}}}_1(t)= \begin{bmatrix} -43.2&{}-8.5\\ -13.1&{}-3.2 \end{bmatrix} {\bar{x}}_1(t) \\ \quad +\begin{bmatrix} 1.3&{}16.6&{}25.3&{}14.9\\ -0.2&{}3.2&{}6.6&{}4.8 \end{bmatrix} {\tilde{u}}(t) +G_1\\ {\tilde{y}}_1(t)= \begin{bmatrix} -8.7&{}-2.9\\ -8.3&{}-0.9 \end{bmatrix} {\bar{x}}_1(t)+ \begin{bmatrix} 2.5&{}-1.8\\ -0.7&{}-0.96 \end{bmatrix} n(t) \end{array} \right. \end{aligned}$$
(58)

where \({\bar{x}}_2=C_{22}^+({\bar{y}}_2-C_{21}{\bar{x}}_1)\), \({\bar{x}}_1=[x_{11}^T~x_{12}^T]^T\) and \({\bar{x}}_2=[x_{21}^T~x_{22}^T~x_{23}^T]^T\).

$$\begin{aligned} \left\{ \begin{array}{l} {\dot{\bar{x}}}_2(t)= \begin{bmatrix} 6.1&{}5.4&{}10.35\\ 1.7&{}0.6&{}1.5\\ -8.1&{}-5.5&{}-11.1 \end{bmatrix} {\bar{x}}_2(t) \\ \quad +\begin{bmatrix} -1.1&{}-16.3&{}-14.7&{}-0.7\\ -0.2&{}-2.4&{}-2.1&{}0.1\\ -0.3&{}18.1&{}16.3&{}1.5\\ \end{bmatrix} {\tilde{u}}(t) + G_2\\ \quad + \begin{bmatrix} 0.3&{}0.6&{}0.5\\ -1.7&{}0.6&{}0.6\\ 0.11&{}-2.3&{}2.6 \end{bmatrix}f_c(t)\\ {\tilde{y}}_2(t)= \begin{bmatrix} -0.6&{}-1.2&{}-0.6 \end{bmatrix} {\bar{x}}_2(t) \end{array} \right. \end{aligned}$$
(59)

where \({\bar{x}}_1=C_{21}^+({\bar{y}}_2-C_{22}{\bar{x}}_2)\).

Observer Design. Initially, the Lipschitz constant is determined as the supremum of the magnitude of the partial derivative of the nonlinear function G(xu) with respect to x to ensure the satisfaction of (2) as:

$$\begin{aligned} \gamma _0=\parallel \frac{\partial G(x,u)}{\partial x} \parallel _\infty ~~at~x=x^{(0)} \end{aligned}$$
(60)

where \(x^{(0)}\) represents the equilibrium point, and x and u are within the domain of the nonlinear system under consideration. For this example, the Lipschitz constant is determined as \(\gamma _0=0.447\).

The UIO observer gains for the fault-free subsystem, (24), are obtained by solving the BMI under the constraints in (25), (27), and (28), as:

$$\begin{aligned} \begin{aligned}&g_1=1.0e-08 \times \begin{bmatrix} 0.01&{}0.03\\ 0.19&{}0.47 \end{bmatrix}, W=I_{2}\\&g_2=1.0e-12 \times \begin{bmatrix} 0.004&{}0.02\\ 0.07&{}0.44 \end{bmatrix},\\&J= \begin{bmatrix} 1.3&{}16.6&{}25.3&{}14.9\\ -0.2&{}3.2&{}6.6&{}4.8 \end{bmatrix}, F= \begin{bmatrix} -43.2&{}-8.5\\ -13.1&{}-3.2 \end{bmatrix} \end{aligned} \end{aligned}$$
(61)

The observer gain matrix F, with \(\epsilon =1\), results in \(2F^T+(1+0.447^2)I_{2}\), which is negative definite with eigenvalues of \((-90.5,-0.04)\), and satisfies the condition given by (27) and (28).

Residual Generation. To demonstrate the performance of the proposed observer and parity approach, the following simulation is executed. The observer is switched on with \(\hat{{\bar{x}}}(0)\ne {\bar{x}}(0)\). It is assumed that three abrupt faults occurred in the system at \(t=15(s), t=30(s), t=45(s)\).

From (41), the parity vector is:

$$\begin{aligned} \begin{aligned} V_s= \begin{bmatrix} -0.04&0.93&0.35&0.08 \end{bmatrix} \end{aligned} \end{aligned}$$
(62)

After the simulation, the actual states are compared with the estimated states and the residue signals generated using (42) in Figs. 4, 5 and 6.

Fig. 4
figure 4

Real states and estimated ones with NUIO (\(x_1~to~x_3\))

Fig. 5
figure 5

Real states and estimated ones with NUIO (\(x_4, x_5\))

Fig. 6
figure 6

Proposed residual based on nonlinear parity approach

Example 4.3

The state space realization for the DTS200 setup, a three-vessel water tank system (TTS) depicted in Fig. 7, is expressed as follows (Yang and Fang 2019):

$$\begin{aligned}&\left\{ \begin{array}{l} A\dot{h}_1(t)=Q_1 - Q_{13}\\ A\dot{h}_3(t)=Q_{13} - Q_{32}\\ A\dot{h}_2(t)=Q_{2} + Q_{32} - Q_{20}\\ \end{array} \right. \end{aligned}$$
(63)
$$\begin{aligned}&\left\{ \begin{array}{l} Q_{13}=s_{13}a_1sgn(h_1-h_3)\sqrt{2g\mid (h_1-h_3)\mid }\\ Q_{32}=s_{23}a_3sgn(h_3-h_2)\sqrt{2g\mid (h_3-h_2)\mid }\\ Q_{20}=s_0a_2\sqrt{2gh_2} \end{array} \right. \end{aligned}$$
(64)

where \(A=0.054~\hbox {m}^2,g=9.81~\hbox {m/s}^2,s_{23},s_{13},s_0=0.00005,a_1=0.49,a_2=0.61,a_3=0.45\), \(Q_1=4\times 10^{-5}~\hbox {m}^3/s\) and \(Q_2=1.4\times 10^{-5}~\hbox {m}^3/~\hbox {s}\). In this system, \(h_2\) and \(h_3\) (water height in tanks 2 and 3) are assumed to be measured.

Observer Design. Initially, the Lipschitz constant is determined as the supremum of the magnitude of the partial derivative of the nonlinear function G(xu) with respect to x to ensure the satisfaction of (2) as:

$$\begin{aligned} \gamma _0=\parallel \frac{\partial G(x,u)}{\partial x} \parallel _\infty ~~at~x=x^{(0)} \end{aligned}$$
(65)

where \(x^{(0)}\) represents the equilibrium point, and x and u are within the domain of the nonlinear system under consideration. For this example, the Lipschitz constant is computed as \(\gamma _0=0.354\).

The UIO observer gains for the fault-free subsystem, (24), are obtained by solving the BMI under the constraints in (25), (27), and (28). The observer gain matrix F, with \(\epsilon =1\), results in \(2F^T+(1+\gamma _0^2)I_{2}\) which is negative definite with eigenvalues of \((-8.1,-1.4)\), and satisfies the condition given by (27) and (28).

Residual Generation. To demonstrate the performance of the proposed observer and parity approach, the following simulation is executed. The observer is switched on with \({\hat{\bar{x}}}(0)\ne {\bar{x}}(0)\). It is assumed that one abrupt fault occurs in the system at \(t=300(s)\).

From (41), the parity vector is:

$$\begin{aligned} \begin{aligned} V_s= \begin{bmatrix} -0.45&0.3 \end{bmatrix} \end{aligned} \end{aligned}$$
(66)

For a fair comparison, we adopted a one-step fault detection approach using the modified Mann–Whitney test proposed in Yang and Fang (2019), along with the nonlinear analytical redundancy proposed in Leuschen et al. (2005), and the nonlinear parity-based fault detection method proposed in this paper. Table 1 summarizes the FD results, including the conclusion output (0 for no fault and 1 for the occurrence of fault), False Positive Ratio (FPR), and False Negative Ratio (FNR). In specific, FPR is the number of false alarms divided by the total number of actual fault-free events, while FNR is the number of missed detections divided by the total number of actual faulty events.

Table 1 Performance comparison

The simulation results for the three water tank system using the method proposed in Leuschen et al. (2005) and the method proposed in this paper, illustrated in Figs. 8 and 9, confirm the efficiency of the proposed approach.

Fig. 7
figure 7

The three-vessel water tank system

Fig. 8
figure 8

Decision on occurring fault using proposed method in Leuschen et al. (2005)

Fig. 9
figure 9

Proposed residual based on nonlinear parity approach

It can be concluded that in the method proposed in Leuschen et al. (2005), the decision on the occurrence of fault is dependent on changes in input during interval \(0^s\) to \(500^s\). However, using the residue signal proposed in this paper, fault diagnosis is dependent on the moment of fault occurrence. Furthermore, the FPR and FNR indices proposed in this paper are considerably lower than those obtained in Yang and Fang (2019) and Leuschen et al. (2005).

5 Conclusion

In this study, issues in fault detection for a class of nonlinear systems subject to actuator/component faults and measurement noises are investigated. In contrast to the existing detection methods, we have proposed a novel approach to detect the occurrence of faults in a wide range of nonlinear systems without loss of generality. To this end, a mapping approach was designed to split the original system into two subsystems, namely a system with a possible fault, and another with measurement noise. Then, the nonlinear unknown input observer formulation was described to estimate the states of the former subsystem. Sufficient conditions for asymptotical stability were examined using the Lyapunov method, and formulating the results in the form of bilinear matrix inequalities (BMI). To detect possible faults in the latter subsystem, nonlinear parity approach relations were expressed to construct residue vectors. The parity approach proposed in this study is feasible using the proposed mapping to decouple noise and faults. Finally, simulation results illustrated the efficiency of the proposed method. As an extension of our current research, the fault-tolerant control for the presented systems can be considered and studied in future studies, by regarding some recent investigations in this field (Liu et al. 2018). In addition, another possible extension future direction will be instructing multiple Lyapunov functions in piece-wise quadratic form to provide sufficient conditions for asymptotic stability and less conservatism for Discrete-Time Switched Piecewise-Affine Systems Under Dwell-Time Constraints (Zhu and Zheng 2019).