Sequence 1: Industrial Challenges, Fundamental Concepts & Residual Generation
Why model-based diagnosis (FDD / FTC)?
In critical systems (aerospace, automotive, energy, processes), a sensor, actuator, or component fault can destabilize the closed loop. The FDD (Fault Detection & Diagnosis) block estimates the fault in real-time so that the FTC (Fault Tolerant Control) block can reconfigure the control law.
Agenda for this 1st sequence:
Industrial interest: Hardware Redundancy vs Analytical Redundancy.
General outline of the AU-513 course (the 5 educational sequences).
Typology of sensor faults, structure of residual generators & $3\sigma$ thresholds.
Coupling between Fault Detection & Diagnosis (FDD) and Fault Tolerant Control (FTC).
Teacher Presentation & Scientific Context
Affiliations & Themes
Damien Koenig — Associate Professor (HDR)
Research Affiliation: GIPSA-lab
GIPSA-lab (Grenoble Images Speech Signal Automatics) is a joint research unit of CNRS and Grenoble Alpes University / Grenoble INP.
Teaching Affiliation: Grenoble INP - Esisar
National Engineering School of Advanced Systems and Networks (Embedded Systems, Control, Computer Science and Electronics) in Valence.
Central themes in Control Engineering
My research work and this 3rd-year engineering course are structured around three complementary pillars for complex systems:
1. State Estimation (Observers), 2. Fault Diagnosis (FDD), and 3. Fault Tolerant Control (FTC).
Program supported by ANR-10-AIRT-05 (IRT Nanoelec) — Grenoble INP Esisar & GIPSA-lab.
In a classic control loop, a sensor fault is copied by the state feedback: the controller attempts to cancel a flawed error and drives the real system toward a dangerous drift. To detect these failures, two paradigms clash:
1. Hardware Redundancy
Physically tripling or quadrupling each sensor/actuator and applying majority voting. Very robust, but penalizing in terms of cost, weight, volume, energy consumption, and wiring.
2. Analytical Redundancy (Model-Based FDI — This course)
Replacing redundant sensors with the dynamic mathematical model $\dot{x} = Ax + Bu$ executed in real-time in the embedded computer. Zero hardware overhead and early detection of internal drifts!
Key Idea of Analytical Redundancy
We continuously check if the measured pair $(u(t), y(t))$ respects the laws of physics encoded in the model: any disagreement generates a residual $r(t) \neq 0$.
Analytical redundancy replaces redundant hardware with the algorithmic intelligence of a dynamic model.
General Architecture & AU-513 Course Outline
Roadmap of the 5 Sequences
This 3rd-year engineering module is structured into 5 progressive sequences covering all analytical methods for fault detection and isolation in linear systems:
Complete organization of the AU-513 course: from general principles to the three main synthesis families.
Nomenclature: Fault Diagnosis & Supervision
Standard Definitions (IFAC SAFEPROCESS)
In dependability, it is essential to distinguish execution-level functions from supervision-level functions:
Fault Diagnosis:
Determination of the nature (type), magnitude (size), location, and time of detection of a fault. It follows detection and includes:
Fault Detection: Deciding whether a fault is present or not.
Fault Isolation: Locating which component has failed.
Identification: Estimating the size and temporal evolution $\hat{f}(t)$.
Supervision:
Monitoring a physical process and taking appropriate decisions (reconfiguration, emergency stop, maintenance) to maintain operation in case of a fault.
Hierarchical architecture: the supervision level observes the pair $(u(t), y(t))$ despite the disturbance $d(t)$.
Fault Localization using State Estimator Banks
Isolation & Adaptive Thresholds
To isolate (localize) which sensor or actuator is faulty among $N$ outputs $y_1, y_2, \dots, y_N$, a single observer is generally not enough. We build a bank of $N$ state estimators (DOS / GOS scheme):
Estimator $i$: Receives the command $u$ and a subset of measurements (e.g., all measurements except $y_i$) to estimate $\hat{y}_{e_i}$.
Structured residual $r_i(t)$: Compares the real output $y_i$ to its estimation $\hat{y}_{e_i}$:
$$r_i(t) = y_i(t) - \hat{y}_{e_i}(t)$$
Adaptive thresholds: In the presence of model uncertainties, residuals fluctuate within a bounded envelope. As soon as a fault occurs, $r_1(t)$ crosses its adaptive threshold!
Bank of $N$ state estimators generating structured residuals evaluated by adaptive thresholds.
Typology and Modeling of Sensor Faults
Fault Modeling
Let $x_i(t)$ be the real physical quantity and $y_i(t)$ the measurement provided by sensor $i$ from the time of fault occurrence $t_{F_i}$. There are 5 classic profiles of sensor faults:
Additive Faults vs Multiplicative Faults
Cases (a), (b), (c) are additive faults ($+b_i(t)$), while the calibration error (e) is a multiplicative fault ($k_i(t)\cdot x_i(t)$) that alters the sensor's slope.
Temporal and static effect of the 5 main families of sensor faults on the measurement $y_i(t)$.
Nomenclature: Quantitative vs Qualitative Models
Modeling Approaches
1. Quantitative Model (Analytical)
Use of static and dynamic relationships between variables and system parameters to describe its behavior in quantitative mathematical terms (differential equations, state representation, transfer functions).
Tools for quantitative (measurable) data:
Structured data (digital sensors, time series).
Statistical analysis, filtering, and state estimation.
Objective conclusions based on mathematical thresholds.
Testing campaigns and experimental identification.
2. Qualitative Model (Symbolic / Expert)
Use of static and dynamic relationships between system variables to describe its behavior in qualitative terms such as causal graphs, fault trees, and IF–THEN rules.
Tools for qualitative (observational) data:
Unstructured or symbolic data (High / Normal / Low).
Synthesis of human expertise and feedback.
Logical reasoning, fuzzy logic, or expert systems.
Reference test bench for chemical and hydraulic processes.
Faults: Tank leaks, inter-tank pipe clogging, pump and level sensor failures.
3. Vehicle Dynamics (ESP)
Bicycle model of an automobile's lateral and yaw dynamics.
Faults: Gyrometer/accelerometer sensor failure, loss of tire grip, steering actuator fault.
Canonical System Decomposition & Fundamental Trade-off
Architecture & Robustness
Diagnostic analysis systematically decomposes the physical chain into three subsystems subject to three classes of faults:
Actuators: Subject to actuator faults $f_A(t)$ (providing $u_a(t)$ from the command $u_c(t)$).
Process Dynamics: Subject to component faults $f_c(t)$ and state disturbances $w(t)$.
Sensors: Subject to sensor faults $f_s(t)$ and measurement noise $\nu(t)$.
The fundamental dilemma of Diagnosis (Robustness vs. Sensitivity)
A reliable diagnostic system must imperatively distinguish real faults $(f_A, f_c, f_s)$ from disturbances $w(t)$ and measurement noise $\nu(t)$: it must be robust to these uncertainties while remaining highly sensitive to faults!
Standard decomposition of a system subject to faults and disturbances/noise.
Analytical Methods for Residual Generation
Detection Architecture
The core of model-based analytical diagnosis relies on the generation of a discrepancy signal called a residual $r(t)$. The methods in the literature are divided into 3 main families:
1. Parity Space Approach: Algebraic elimination of the unknown state $x(t)$ over a sliding time window of inputs/outputs.
2. Observer-based Approach: State $\hat{x}(t)$ and output $\hat{y}(t)$ reconstruction via a Luenberger observer, Kalman filter, or Unknown Input Observer (UIO).
3. Parametric Estimation Approach: On-line identification of physical parameters $\hat{\theta}(t)$ and comparison with their nominal values $\theta_0$.
The two fundamental steps of FDI: 1) Residual generation $r(t)$, then 2) Evaluation / Decision.
Structure of the Residual Generator (1/2 — Estimator Approach)
Analytical Redundancy
The most intuitive idea to detect an anomaly consists in running a simulator or output estimator in parallel with the real system:
$$\text{Residual: } \quad r(t) = y(t) - \hat{y}(t)$$
where $\hat{y}(t)$ denotes the estimated process output.
Open-Loop Simulator: Receives only $u(t)$. Very sensitive to initialization errors $x(0) \neq \hat{x}(0)$ and unusable if the system is unstable!
Closed-Loop Estimator (Observer): Uses both $u(t)$ and the measurement $y(t)$ to make $\hat{y}(t) \to y(t)$ converge in healthy conditions.
Which estimators are used in practice?
The estimator block is generally a Luenberger Observer, a Kalman Filter (KF) in a stochastic context, or an Unknown Input Observer (UIO) to decouple disturbances.
Principle of analytical redundancy: comparison between the real measurement $y(t)$ and the prediction $\hat{y}(t)$.
General Structure & Synthesis Constraints in Frequency / z-domain
Algebraic Formulation
In discrete time (operator $z$) or continuous time ($p$), the system output subjected to known inputs $u^*(z)$ and faults $f(z)$ is written:
$$y(z) = G_{yu^*}(z)\,u^*(z) + G_{yf}(z)\,f(z)$$
Any linear residual generator filters the known signals $u^*(z)$ and $y(z)$ via two transfer matrices $H_{u^*}(z)$ and $H_y(z)$:
$$r(z) = H_{u^*}(z)\,u^*(z) + H_y(z)\,y(z)$$
By substituting $y(z)$, we obtain: $r(z) = \big[H_{u^*}(z) + H_y(z)G_{yu^*}(z)\big]\,u^*(z) + H_y(z)G_{yf}(z)\,f(z)$.
Fundamental synthesis conditions ($r(t) = 0 \iff f(t) = 0$):
$$\begin{cases}
\mathbf{1)\;\; H_{u^*}(z) + H_y(z)\,G_{yu^*}(z) = 0} & \text{(Decoupling of the command } u^*\text{)}\\[4pt]
\mathbf{2)\;\; H_y(z)\,G_{yf}(z) \neq 0} & \text{(Sensitivity to faults } f\text{)}
\end{cases}$$
By choosing $H_{u^*}(z) = -H_y(z)G_{yu^*}(z)$, we obtain $r(z) = H_y(z)\big[y(z) - G_{yu^*}(z)u^*(z)\big] = H_y(z)G_{yf}(z)f(z)$.
In the presence of measurement noise, the residual $r(t)$ is never strictly zero even without a fault. We define an evaluation function (e.g., $J(r(t)) \equiv |r(t)|$) compared to a detection threshold $\varepsilon(t)$:
Statistical threshold setting (Gaussian process):
We estimate in healthy conditions the mean $\bar{r}_i$ and variance $\bar{\sigma}_i^2$ of each residual $r_i(t)$:
$$\mathbf{\varepsilon_i(t) = \bar{r}_i \pm \delta \times \bar{\sigma}_i} \quad (i = 1, \dots, m) \quad \textbf{with } \mathbf{\delta \ge 3}$$
For a normal distribution, $\delta = 3$ guarantees that $99.73\%$ of healthy samples remain within the corridor $[\bar{r}_i - 3\bar{\sigma}_i, \bar{r}_i + 3\bar{\sigma}_i]$, thereby limiting the false alarm rate to less than $0.27\%$.
Clear crossing of the statistical threshold $+\varepsilon(t)$ upon fault occurrence at sample $k = 2500$.
Sequence 2: From the Identity Observer to UIO Decoupling with MATLAB / Simulink Synthesis
Pedagogical Objective of Sequence 2
After defining the general structure of a residual generator in Sequence 1, we now study how to concretely build these residuals using closed-loop state observers, how to isolate faults via observer banks (DOS and GOS architectures), and how to guarantee exact robustness against unknown disturbances using Unknown Input Observers (UIO).
Program (Theory + 3 MATLAB / Simulink Studies):
Identity Observer & BFDF: Theory + Example 1 (MATLAB & Simulink Scheme).
Sensor Isolation (DOS vs GOS): Theory + Example 2 (GOS Bank in Simulink).
Robust UIO Observers: Decoupling $T E = 0$ + Example 3 (UIO in Simulink).
Comparative synthesis: Architecture selection criteria for engineers.
Synoptic view of the theoretical concepts and Simulink implementations covered in this sequence.
Positioning of Sequence 2 in the AU-513 Course
General Module Outline
After studying the fundamental concepts in Sequence 1, we now begin the first major methodological family of residual generation: state observer-based approaches:
Sequence 2 lays all the theoretical and practical foundations of diagnostic observers.
Why a Closed-Loop Observer rather than a Simulator?
Physical Intuition & Convergence
To generate a residual $r(t) = y(t) - \hat{y}(t)$, why not just run a simple open-loop simulator $\dot{\hat{x}}(t) = A\hat{x}(t) + Bu(t)$ in parallel with the real system?
1. Fatal Limitations of the Open-Loop Simulator
The estimation error satisfies $\dot{e}_x(t) = A\,e_x(t) \implies e_x(t) = e^{At}e_x(0)$.
• If the process initial state is unknown ($x(0) \neq \hat{x}(0)$), the error decay rate is imposed (dictated by $A$).
• If the system is unstable or an integrator (e.g., tank level, motor position), $e_x(t)$ diverges or keeps a permanent bias: guaranteed false alarm!
2. The Decisive Contribution of the Closed-Loop Observer
By feeding back the measurement deviation $L(y(t) - C\hat{x}(t))$, the error dynamics become $\dot{e}_x(t) = (A - L C)\,e_x(t)$. If the pair $(A, C)$ is observable, the gain $L$ allows us to arbitrarily set the convergence speed $\hat{x}(t) \to x(t)$, even if the physical system $A$ is unstable!
The observer gain $L$ stabilizes and accelerates the convergence of the estimate $\hat{x}(t)$ to the true state $x(t)$ independently of $x(0)$.
Observer-Based Approach: Nominal Fault-Free Case
Luenberger Identity Observer
First, let us consider the linear time-invariant state-space model of a process in the absence of any fault and any disturbance:
Role of matrices L and W
If the pair $(A, C)$ is observable, the gain $L$ is chosen to place the eigenvalues of $(A - LC)$ in the left half of the complex plane. The matrix $W$ weights the residual.
Internal architecture of the Luenberger identity observer generating the weighted residual $r(t) = W(y(t) - \hat{y}(t))$.
Observer-Based Approach: System Subject to Faults
Residual Sensitivity to Faults
Now, let's introduce a fault vector $f(t)$ acting both on the state equation via the matrix $F_x$ and on the measurement via the matrix $F_s$:
Since the observer keeps the same nominal structure, the dynamics of the estimation error $e_x = x - \hat{x}$ and the output error $\tilde{y} = y - \hat{y}$ become:
As soon as a fault $f(t) \neq 0$ appears, the estimation error $e_x(t)$ no longer converges to zero and excites the residual $r(t)$.
Principles of Fault Detection Filters (BFDF)
Individual Actuator / Sensor Modeling
To analyze in detail the effect of a specific fault on a BFDF (Beard-Jones Fault Detection Filter), we explicitly express the column of the faulty actuator $i$ and the row of the faulty sensor $j$:
Fault on the $i$th actuator ($i = 1, \dots, r$): $b_i \in \mathbb{R}^n$ is the $i$th column of the control matrix $B$, and $f_{ai}(t)$ is the unknown scalar signal describing the evolution of the actuator fault.
Fault on the $j$th sensor ($j = 1, \dots, m$): $I_j \in \mathbb{R}^m$ is the $j$th standard basis vector ($1$ at row $j$, $0$ elsewhere), and $f_{sj}(t)$ is the fault on sensor $j$.
% 1. Continuous state-space model matrices (n = 2, m = 1)
A = [-11; 0-2];
B = [0; 1];
C = [10];
D = 0;
% 2. Verification of the observability of the pair (A, C)
Ob = obsv(A, C);
disp(['Observability rank: ', num2str(rank(Ob))]);
% 3. Pole placement for (A - L*C) at {-3, -4} by duality
poles_obs = [-3, -4];
L = place(A', C', poles_obs)'; % Yields L = [4 ; 2]% 4. Construction of the Observer State-Space block for Simulink% Observer inputs: u_obs = [u(t) ; y(t)]% Observer output: y_hat(t) = C * x_hat(t)
A_obs = A - L*C; % [-5 1 ; -2 -2]
B_obs = [B, L]; % [ 0 4 ; 1 2]
C_obs = C; % [ 1 0 ]
D_obs = [0, 0];
Sys_Obs = ss(A_obs, B_obs, C_obs, D_obs);
By rearranging $\dot{\hat{x}} = (A - LC)\hat{x} + [B \;\; L]\begin{bmatrix} u \\ y \end{bmatrix}$, the observer is implemented in Simulink with a single standard 2-input State-Space block!
Numerical Example 1 (2/2): Identity Observer Simulink Diagram
Simulink Architecture & Timing Diagram
Complete Simulink wiring diagram of the identity observer residual generator and time response to an actuator step fault $f_a(t) = 1.2$ at $t = 5\text{ s}$ (yielding $r(\infty) = 1.2 / 12 = 0.10$):
Direct Simulink implementation using a Mux block to feed the observer's State-Space block with $[u(t) \;;\; y(t)]^T$.
Case 1: Simultaneous Sensor Faults (Per-Sensor Model)
Principle of the Dedicated Observer
Consider a system with no actuator fault but subject to potentially simultaneous sensor faults described by the vector $f_s(t) = [f_{s1}(t), \dots, f_{sm}(t)]^T$:
To isolate each sensor independently of the others, we build a bank of $m$ observers where the $i$th observer is driven solely by the scalar measurement $y_i(t)$:
Since observer $i$ uses no other measurement $y_k$ ($k \neq i$), its residual $r_i(t)$ depends exclusively on $f_{si}(t)$.
Case 1: Dedicated Observer Scheme (DOS)
Clark's Architecture
By assembling the $m$ dedicated observers in parallel (one per output sensor), we obtain the DOS architecture (Dedicated Observer Scheme, introduced by R.N. Clark):
Number of estimators: Equal to the number $m$ of measured outputs of the system.
Signal Ungrouping: The measurement vector $y \in \mathbb{R}^m$ is split into $m$ scalar channels $y_1, \dots, y_j, \dots, y_m$.
Inputs of each observer: The $j$th identity observer (or Kalman Filter $\text{KF}_j$) receives all control inputs $u$ and a single scalar output $y_j$.
Total decoupling: A fault on the $j$th output affects only the residual $r_j(t)$!
Strong existence condition for the DOS scheme
To be able to stabilize the $j$th observer using only the scalar measurement $y_j$, each pair $(A, C_j)$ must be individually observable (complete observability of the system from each sensor taken in isolation).
Complete DOS architecture: each observer $j$ is driven by a single sensor $y_j$ and generates its dedicated residual $r_j(t)$.
Case 1: Decision Logic and Signature Matrix of the DOS Scheme
Diagonal Incidence Table
Thanks to the direct decoupling between measurement channels, elementary threshold logic allows instant localization of each sensor fault:
Incidence table (Signature matrix) of the DOS scheme:
A "1" at the intersection of row $i$ and column $j$ indicates that residual $r_j$ is sensitive to fault $f_{si}$, while a "0" indicates total insensitivity:
Fault \ Residual
$r_1(t)$
$r_2(t)$
$\dots$
$r_m(t)$
Alarm Decision
$f_{s1}$
1
0
$\dots$
0
$a_1 = 1$ if $f_{s1} \neq 0$
$f_{s2}$
0
1
$\dots$
0
$a_2 = 1$ if $f_{s2} \neq 0$
$\vdots$
$\vdots$
$\vdots$
$\ddots$
$\vdots$
$\vdots$
$f_{sm}$
0
0
$\dots$
1
$a_m = 1$ if $f_{sm} \neq 0$
Advantage and practical limitation of the DOS scheme
The diagonal structure makes it possible to isolate simultaneous faults on all sensors at once. However, it is difficult to design in practice because systems that are completely observable from each individual sensor are rare.
Diagonal signature matrix $I_m$: direct bijective mapping between the excited residual $r_i$ and the faulty sensor $f_{si}$.
Case 2: Generalized Observer Scheme (GOS — Without Simultaneous Faults)
Frank's Architecture
When observability from a single sensor is impossible and we assume that only one sensor fails at a time (no simultaneous faults), we use the GOS scheme (Generalized Observer Scheme, P.M. Frank):
Signal Grouping: For each channel $j \in \{1, \dots, m\}$, we form a reduced vector $y^j \in \mathbb{R}^{m-1}$ containing all measurements EXCEPT the $j$th measurement $y_j$:
$$y^j = \begin{bmatrix} y_1 & \dots & y_{j-1} & y_{j+1} & \dots & y_m \end{bmatrix}^T \in \mathbb{R}^{m-1}$$
Observer $j$: Driven by $u$ and by the sub-vector $y^j$ (observation matrix $C^j$ without row $C_j$). It generates the vectorial residual:
$$r^j(t) = y^j(t) - C^j\,\hat{x}^j(t) \in \mathbb{R}^{m-1}$$
Key property: Since observer $j$ never uses sensor $j$, the residual $r^j(t)$ is completely insensitive to fault $f_{sj}$, but sensitive to all other faults $f_{sk}$ ($k \neq j$)!
Case 2: Isolability Analysis and Boolean Logic of the GOS Scheme
Complementary Signature (Zeros on the Diagonal)
In the GOS scheme, the incidence table is the exact logical complement of that of the DOS scheme: the diagonal is composed of "0"s and all off-diagonal terms are "1":
Fault \ Residual
$r^1(t)$
$r^2(t)$
$\dots$
$r^j(t)$
$\dots$
$r^m(t)$
Decision
$f_{s1}$
0
1
$\dots$
1
$\dots$
1
$a_1 = 1$
$f_{s2}$
1
0
$\dots$
1
$\dots$
1
$a_2 = 1$
$\vdots$
$\vdots$
$\vdots$
$\ddots$
$\vdots$
$\ddots$
$\vdots$
$\vdots$
$f_{sj}$
1
1
$\dots$
0
$\dots$
1
$a_j = 1$
$f_{sm}$
1
1
$\dots$
1
$\dots$
0
$a_m = 1$
Let $L(\|r^i\|)$ be the binary logic function equal to $1$ if $\|r^i\| \ge \varepsilon^i$ and $0$ otherwise. The alarm for sensor $1$ (denoted $a_1$) is triggered by the Boolean equation:
Why does GOS not tolerate 2 simultaneous faults?
If $f_{s1}$ and $f_{s2}$ occur at the same time, all residuals $r^1, r^2, \dots, r^m$ go to $1$ (union of rows 1 and 2). We detect that there is a problem, but we lose isolation!
Sensor $j$ is identified as faulty when all residuals exceed their threshold, with the sole exception of residual $r^j$.
Numerical Example 2 (1/2): GOS Bank for Sensor Fault Isolation
Analytical Synthesis & MATLAB Script
Consider a process of order $n = 2$ equipped with $m = 3$ redundant sensors (assuming only one sensor can fail at a time):
2Pole placement for each observer $j \in \{1, 2, 3\}$ at $\{-5, -6\}$:
Since each pair $(A, C^j)$ is of rank 2 (observable), we calculate the 3 gain matrices $L^j \in \mathbb{R}^{2\times 2}$ such that $\lambda(A - L^j C^j) = \{-5, -6\}$. The residual $r^j(t) = y^j(t) - C^j \hat{x}^j(t) \in \mathbb{R}^2$ is evaluated by its norm $\|r^j(t)\|_2$.
MATLAB Synthesis Script for GOS Bank (3 Observers)
% 1. State-space model with n = 2 states and m = 3 sensors
A = [-21; 0-3]; B = [1; 1];
C = [10; 01; 11];
poles_gos = [-5, -6];
% 2. Sub-matrices C^j (removal of the j-th row)
C1 = C([23], :); % Uses [y2 ; y3] -> Insensitive to fs1
C2 = C([13], :); % Uses [y1 ; y3] -> Insensitive to fs2
C3 = C([12], :); % Uses [y1 ; y2] -> Insensitive to fs3% 3. Calculation of gains L1, L2, L3 (dimensions 2x2)
L1 = place(A', C1', poles_gos)';
L2 = place(A', C2', poles_gos)';
L3 = place(A', C3', poles_gos)';
% 4. State-Space systems of the 3 residual generators r^j = y^j - C^j*x_hat^j% Input of Obs j: [u ; y^j] (3x1) | Output: r^j (2x1)
Obs1 = ss(A - L1*C1, [B, L1], -C1, [zeros(2,1), eye(2)]);
Obs2 = ss(A - L2*C2, [B, L2], -C2, [zeros(2,1), eye(2)]);
Obs3 = ss(A - L3*C3, [B, L3], -C3, [zeros(2,1), eye(2)]);
MATLAB trick: by setting $C_{\text{obs}} = -C^j$ and $D_{\text{obs}} = [0_{2\times 1} \;\; I_2]$, the output of the State-Space block directly delivers the residual $r^j(t) = y^j(t) - C^j\hat{x}^j(t)$!
Numerical Example 2 (2/2): Simulink Diagram of the GOS Sensor Bank
Simulink Architecture & Boolean Isolation
Simulink implementation of the 3-observer GOS bank using Selector blocks to extract $y^1, y^2, y^3$ and AND / NOT logic gates to isolate a fault on sensor 2 ($f_{s2} \neq 0 \implies \Vert{}r^2\Vert{} < \varepsilon, \Vert{}r^1\Vert{} \ge \varepsilon, \Vert{}r^3\Vert{} \ge \varepsilon \implies a_2 = 1$):
The Simulink Selector block extracts the sub-vectors $y^j$ without duplicating the wiring: only $\text{Obs 2}$ (which ignores $y_2$) keeps a zero residual, activating $a_2 = 1$.
Why Does the Classical Observer Fail in the Presence of Disturbances $d(t)$?
Mathematical Motivation of the UIO Observer
What happens if the real process is subjected to an external disturbance or model uncertainty $E\,d(t)$ (wind, unknown load torque, nonlinearity) while no fault is present ($f = 0$)?
Critical consequence: Whatever the choice of gain $L$, the term $+E\,d(t)$ remains intact in the equation of $\dot{e}_x(t)$ and causes permanent false alarms!
The UIO (Unknown Input Observer) solution:
Add a direct term $\mathbf{+N\,y(t)}$ in the estimation $\hat{x}(t) = z(t) + N\,y(t)$. Thus, the error becomes $e_x(t) = (I - NC)x(t) - z(t) = T\,x(t) - z(t)$, which allows multiplying $\dot{x}(t)$ by the matrix $T$ and imposing $\mathbf{T\,E = 0}$!
The addition of the algebraic term $N y(t)$ transforms the disturbance term $E d(t)$ into $(I - NC)E d(t) = T E d(t) = 0$.
Robust Diagnosis Based on Unknown Input Observers (UIO)
Disturbance Decoupling
In the presence of model uncertainties or unknown external disturbances $d(t) \in \mathbb{R}^q$, the goal of robust FDI is to construct a residual totally independent of $d(t)$ but sensitive to faults.
System with faults and unknown inputs $d(t)$:
$$\begin{cases}
\dot{x}(t) = A\,x(t) + B\,u(t) + E\,d(t) + B\,f_a(t) \\
y(t) = C\,x(t) + f_s(t)
\end{cases}$$
where $f_a(t) \in \mathbb{R}^r$ (actuator faults), $f_s(t) \in \mathbb{R}^m$ (sensor faults) and $d(t) \in \mathbb{R}^q$ (unknown input with known distribution matrix $E$).
By differentiating $e_x(t)$ with respect to time ($\dot{e}_x = T\dot{x} - \dot{z} - N\dot{f}_s$) and substituting $z(t) = Tx(t) - Nf_s(t) - e_x(t)$, we get:
$$\dot{e}_x = (T A - G C)\,x + T E\,d(t) + T B\,f_a(t) - F\,(T x - N f_s - e_x) - G\,f_s(t) - N\,\dot{f}_s(t)$$
$$\dot{e}_x = F\,e_x + \underbrace{(T A - G C - F T)}_{=\,0}\,x(t) + \underbrace{T E}_{=\,0}\,d(t) + T B\,f_a(t) + (F N - G)\,f_s(t) - N\,\dot{f}_s(t)$$
The 4 Algebraic UIO Decoupling Conditions:
$$\mathbf{1)\;\; T\,E = 0} \qquad \mathbf{2)\;\; T = I - N\,C} \qquad \mathbf{3)\;\; T A - G C - F T = 0} \qquad \mathbf{4)\;\; K = G - F N}$$
Final decoupled error dynamics (independent of $x(t)$ and $d(t)$!):
$$\dot{e}_x(t) = F\,e_x(t) + T B\,f_a(t) - K\,f_s(t) - N\,\dot{f}_s(t), \qquad r(t) = C\,e_x(t) + f_s(t)$$
The coordinated choice of the matrices $(N, T, K, F, G)$ simultaneously eliminates $x(t)$ and $d(t)$ from the error equation.
Algorithmic Synthesis Procedure for a UIO Observer
3-Step Algorithm
Step 1Verify the unknown input decoupling condition:
Step 2Calculate the matrices $N$ and $T$ via the pseudo-inverse $(CE)^+$:
Since $TE = 0 \iff (I - NC)E = 0 \iff N(CE) = E$, an explicit solution is given by the left Moore-Penrose pseudo-inverse:
$$N = E\,(C\,E)^+ = E\,\Big[(C\,E)^T(C\,E)\Big]^{-1}(C\,E)^T, \qquad T = I - N\,C$$
Step 3Solve the Sylvester equation & place the poles:
By setting $K = G - FN$, the equation $TA - GC - FT = 0$ with $T = I - NC$ can be rewritten as:
$$F = T\,A - K\,C \qquad \text{then} \qquad G = K + F\,N$$
If the pair $(TA, C)$ is observable (or detectable), we calculate $K$ by pole placement or the LQ method to stabilize $F$, and then deduce $G$.
In the left pseudo-inverse formula $(CE)^+ = [(CE)^T(CE)]^{-1}(CE)^T$, the matrix $(CE)^T(CE) \in \mathbb{R}^{q \times q}$ is invertible because $\text{rank}(CE)=q$.
Condition for Actuator Fault Detectability by UIO
Geometric Interpretation of T·bᵢ ≠ 0
Once the UIO observer is synthesized ($TE = 0$ and $F = TA - KC$), the residual is governed by the reduced system:
We can see that the disturbance $d(t)$ has completely disappeared. But under what condition does an actuator fault $f_a(t)$ remain visible on the residual $r(t)$?
Actuator fault sensitivity condition:
To detect actuator faults, we must have $\mathbf{T\,B \neq 0}$.
More specifically, a fault $f_{ai}(t)$ affecting the $i$th actuator (column $b_i$ of $B$) will be detectable on the residual if and only if:
$$\mathbf{T\,b_i \neq 0} \quad \Longleftrightarrow \quad \text{rank}\big([E \quad b_i]\big) > \text{rank}(E)$$
Fundamental physical interpretation
The matrix $T$ projects the state space parallel to $\text{Im}(E)$ ($TE = 0$). If the column $b_i$ of an actuator is collinear with $E$ ($b_i \in \text{Im}(E)$), then $Tb_i = 0$: by canceling the disturbance, the UIO also cancels the actuator fault!
Geometric interpretation: the projection $T b_i$ is non-zero if and only if $b_i$ is linearly independent of the columns of $E$.
Robust Fault Isolation Schemes Based on UIO Banks
GOS + UIO Combination
How do we combine robustness against disturbances $d(t)$ AND fault localization (isolation)?
Isolation problem: To localize with certainty which sensor or actuator is faulty despite the permanent presence of the unknown input $d(t)$.
Sensitivity / insensitivity properties: Ideally, each residual $r^j(t)$ should be sensitive to a single fault and insensitive to all others (DOS scheme), but the rank constraints $\text{rank}(C_j E) = \text{rank}(E)$ often make this impossible with a single sensor.
Standard industrial solution (GOS Bank of UIOs):
To isolate sensor faults: each $\text{UIO}_j$ is driven by $u$ and by $y^j$ (all measurements except $y_j$) and decouples $d(t)$.
To isolate actuator faults: the $i$th observer $\text{UIO}_i$ groups the $i$th actuator fault $b_i f_{ai}(t)$ with the unknown input by defining an augmented matrix $E_i = [E \;\; b_i]$.
Each $\text{UIO}_j$ eliminates both the disturbance $d(t)$ and a specific fault $f_j$, generating a robust GOS signature table (detailed in Sequence 3).
Comparative Summary of Observer-Based Architectures
Summary Synthesis
The table and flowchart below summarize the criteria for choosing a diagnostic architecture according to fault assumptions and the presence of disturbances:
Architecture
Inputs of Observer $j$
Incidence Matrix
Simultaneous Faults
Robustness to $d(t)$
Existence Condition
Single Observer (BFDF)
$u(t)$ and $y(t) \in \mathbb{R}^m$
Full vector
Detection only
No (sensitive to $d$)
$(A, C)$ detectable
Dedicated Bank (DOS — Clark)
$u(t)$ and 1 scalar measurement $y_j(t)$
Diagonal $I_m$
Yes (All isolable)
No
Each $(A, C_j)$ detectable (Very restrictive)
Generalized Bank (GOS — Frank)
$u(t)$ and $y^j(t) \in \mathbb{R}^{m-1}$ (except $y_j$)
Zeros on diagonal
No (1 fault at a time)
No
Each $(A, C^j)$ detectable (Flexible)
UIO Bank (Robust GOS)
$u(t)$ and $y^j(t)$ with decoupling $T_j E = 0$
Zeros on diagonal + $0$ for $d(t)$
No (1 fault at a time)
Yes (Exact decoupling)
$\text{rank}(C^j E) = \text{rank}(E)$ and $(T_j A, C^j)$ detectable
Pedagogical Objective of Sequence 3
Here, we apply the theory of Unknown Input Observers (UIO) to design two complete robust isolation architectures: one dedicated to localizing sensor faults by deleting a row in $C$, and the other dedicated to localizing actuator faults by augmenting the unknown input matrix $E^i = [E \;\; b_i]$.
Sequence Structure:
Robust isolation principle: From a single UIO detector to a structured bank.
Sensor fault isolation: Bank of $m$ UIOs on $y^j \in \mathbb{R}^{m-1}$ and Rao-Mitra theorem.
Actuator fault isolation: Bank of $r$ UIOs via the augmented input $E^i d^i(t)$.
Simultaneous faults & Numerical study: Transition to DOS and explicit calculation of $N^1, T^1$.
Structural comparison of the two robust isolation strategies studied in this sequence.
Positioning of Sequence 3 in the AU-513 Course
General Module Outline
In Sequence 2, we learned to design a single UIO observer capable of detecting a fault despite $d(t)$. Sequence 3 generalizes this building block to construct complete robust isolation banks for sensors and actuators:
Sequence 3 completes the study of observer-based methods by solving the full problem of robust localization.
From a Single UIO Detector to a Structured Isolation Bank
Physical Intuition of Selectivity
At the end of Sequence 2, we obtained the error equations for a single UIO observer decoupling the disturbance $E\,d(t)$ ($T E = 0$):
In the equation above, all sensor faults $f_{s1}, \dots, f_{sm}$ and all actuator faults $f_{a1}, \dots, f_{ar}$ simultaneously excite the same residual $r(t)$! As soon as $\|r(t)\| \ge \varepsilon$, we know a fault is present, but it is impossible to know which component to replace.
2. The principle of selective blindness (GOS-UIO)
To locate the culprit, we build a bank of UIO observers where each observer $k$ is made deliberately blind to a specific fault $f_k$ (in addition to $d(t)$). If a fault occurs and only observer $k$ remains calm ($\Vert{}r^k\Vert{} < \varepsilon^k$), we know with certainty that the fault is $f_k$!
The only residual that remains zero unambiguously identifies the corresponding fault.
To design a robust sensor fault isolation scheme, we assume that all actuators are healthy ($f_a(t) = 0$). For each index $j \in \{1, 2, \dots, m\}$, we partition the measurement vector $y(t) \in \mathbb{R}^m$ by isolating the $j$th component:
$c_j \in \mathbb{R}^{1 \times n}$ denotes the $j$th row of the observation matrix $C$.
$C^j \in \mathbb{R}^{(m-1) \times n}$ is obtained from $C$ by deleting the $j$th row $c_j$.
$y_j(t) \in \mathbb{R}$ is the $j$th scalar component of the measurement vector $y(t)$.
$y^j(t) \in \mathbb{R}^{m-1}$ (and $f_s^j(t) \in \mathbb{R}^{m-1}$) is obtained from $y(t)$ (resp. $f_s(t)$) by deleting its $j$th component $y_j(t)$ (resp. $f_{sj}(t)$).
Fundamental principle of sensor decoupling
By never injecting the measurement $y_j(t)$ into the $j$th UIO observer, the subsystem driven by $y^j(t)$ is by construction completely independent of the fault $f_{sj}(t)$!
Construction of the reduced matrix $C^j \in \mathbb{R}^{(m-1)\times n}$ by eliminating the $j$th row $c_j$.
Robust Sensor Isolation: Equations of the $m$ UIO Generators
Matrix Synthesis of the j-th UIO
Based on the previous reduced sub-model, we build a bank of $m$ UIO-based residual generators (for $j = 1, 2, \dots, m$):
Compact implementation form of the $j$th UIO residual generator used in the isolation block diagrams.
Global Scheme for Robust Sensor Fault Isolation
Bank of m UIOs Architecture
When all actuators are healthy ($f_a = 0$) and a fault occurs on the $j$th sensor ($f_{sj}(t) \neq 0$), the $m$ residuals satisfy the following isolation logic:
The Signal Grouping block forms the $m$ sub-vectors $y^1, \dots, y^j, \dots, y^m \in \mathbb{R}^{m-1}$.
The observer UIO $j$ does not receive the measurement $y_j(t)$ corrupted by $f_{sj}(t)$ and decouples $d(t)$: its state error tends to $0$ and $\|r^j(t)\| < \varepsilon^j$.
All other observers UIO $k$ ($k \neq j$) use the faulty measurement $y_j(t)$ in their vector $y^k(t)$: their residuals $\|r^k(t)\|$ cross their thresholds $\varepsilon^k$!
The bank of $m$ UIO observers realizes a Generalized Observer Scheme (GOS) that is robust against $d(t)$. Its isolability table (Table 1) presents "0"s on the diagonal and "1"s everywhere else:
Fault / Input \ Residual
$r^1(t)$
$r^2(t)$
$\dots$
$r^j(t)$
$\dots$
$r^m(t)$
Alarm
Disturbance $d(t)$
0
0
$\dots$
0
$\dots$
0
None
$f_{s1}(t)$
0
1
$\dots$
1
$\dots$
1
$a_1 = 1$
$f_{s2}(t)$
1
0
$\dots$
1
$\dots$
1
$a_2 = 1$
$f_{sj}(t)$
1
1
$\dots$
0
$\dots$
1
$a_j = 1$
$f_{sm}(t)$
1
1
$\dots$
1
$\dots$
0
$a_m = 1$
By defining the binary logic function $L(\|r^i\|) = 1$ if $\|r^i\| \ge \varepsilon^i$ (and $0$ otherwise), the sensor alarm $a_j$ is generated by the Boolean intersection:
Despite the non-zero disturbance $d(t)$, only a sensor fault causes the relevant residuals to cross the thresholds.
Existence Conditions of the Sensor UIO Bank & Algebraic Proof
Rao & Mitra Rank Theorem (1971)
For each of the $m$ UIO observers ($j = 1, \dots, m$) to simultaneously satisfy the decoupling constraint $T^j E = 0$ and the stability of $F^j = T^j A - K^j C^j$, two rank conditions must be met for all $j \in \{1, \dots, m\}$:
Condition $c_1$ (Decoupling condition of $d(t)$):
$$\text{rank}\begin{pmatrix} C^j E \\ E \end{pmatrix} = \text{rank}(C^j E) = \dim(d) = q$$
Condition $c_2$ (Popov-Belevitch-Hautus detectability condition):
$$\text{rank}\begin{pmatrix} p\,I_n - T^j A \\ C^j \end{pmatrix} = n, \qquad \forall p \in \mathbb{C} \text{ such that } \text{Re}(p) \ge 0$$
Proof of condition $c_1$ (Rao & Mitra, 1971):
$$T^j E = 0 \iff (I_n - N^j C^j)\,E = 0 \iff \mathbf{N^j\,(C^j E) = E}$$
According to the theory of generalized inverses of matrices (Rao & Mitra, 1971), the linear matrix equation $N^j (C^j E) = E$ with unknown $N^j$ admits a solution if and only if $\text{rank}\begin{bmatrix} C^j E \\ E \end{bmatrix} = \text{rank}(C^j E)$. If $E$ has full column rank $\dim(d)$, this imposes $\text{rank}(C^j E) = \dim(d)$ and therefore $\mathbf{m - 1 \ge \dim(d)}$.
To isolate a sensor fault while decoupling $q$ independent disturbances, a minimum of $q + 1$ sensors is required!
Why Does Actuator Isolation Differ from Sensor Isolation?
Dynamic Propagation vs. Local Fault
To isolate sensor $j$, it was enough not to connect the wire $y_j(t)$ to observer $\text{UIO } j$. Why is it not enough to disconnect the control wire $u_i(t)$ to isolate actuator $i$?
1. Sensor Fault $f_{sj}(t)$: Localized effect on an output
In $y(t) = Cx(t) + f_s(t)$, a sensor fault does not enter the state differential equation $\dot{x}(t)$ (open-loop with respect to the observer). It only contaminates wire $y_j(t)$: deleting row $c_j$ is enough to eliminate it!
2. Actuator Fault $f_{ai}(t)$: Global contamination of the state $x(t)$
In $\dot{x}(t) = Ax(t) + Bu(t) + b_i f_{ai}(t)$, the failure of actuator $i$ physically modifies the state vector $x(t)$, which simultaneously contaminates ALL measurements $y(t) = Cx(t)$! To make observer $\text{UIO } i$ blind to actuator $i$, we must cancel its input direction $b_i$ using the projector $\mathbf{T^i b_i = 0}$!
Since an actuator fault affects all measurements $y(t)$, eliminating it in $\text{UIO } i$ requires a geometric projection in the state space ($T^i b_i = 0$).
Robust Actuator Fault Isolation: Model Reformulation
Augmentation of the Unknown Input
To design a robust actuator fault isolation scheme, we now assume that all sensors are healthy ($f_s(t) = 0$). We want to isolate a fault $f_{ai}(t)$ on the $i$th actuator ($i = 1, \dots, r$):
By treating $u_i(t) + f_{ai}(t)$ as an additional unknown input, observer $\text{UIO } i$ no longer uses the control signal $u_i(t)$.
Robust Actuator Isolation: Equations of the $r$ UIO Generators
Matrix Synthesis of the i-th UIO
Starting from the augmented representation $E^i = [E \;\; b_i]$, we build a bank of $r$ UIO-based residual generators (one per actuator, for $i = 1, 2, \dots, r$):
For the $i$th observer to exactly decouple $E^i d^i(t)$ (meaning $T^i E^i = 0$), its parameter matrices must satisfy:
$$\begin{aligned}
\mathbf{1)} \quad & N^i = E^i\,(C\,E^i)^+ = E^i\,\Big[(C\,E^i)^T(C\,E^i)\Big]^{-1}(C\,E^i)^T \\[3pt]
\mathbf{2)} \quad & T^i = I_n - N^i C \quad \big(\text{guarantees } T^i E = 0 \text{ and } T^i b_i = 0\big) \\[3pt]
\mathbf{3)} \quad & F^i = T^i A - K^i C \quad \big(\text{stabilized by the choice of } K^i\big) \\[3pt]
\mathbf{4)} \quad & G^i = K^i + F^i N^i
\end{aligned}$$
Since $T^i E^i = [T^i E \;\; T^i b_i] = 0$, we have $T^i B u(t) = T^i B^i u^i(t) + \cancel{T^i b_i u_i(t)}$: the control $u_i(t)$ naturally disappears.
Global Scheme for Robust Actuator Fault Isolation
Bank of r UIOs Architecture
When all sensors are healthy ($f_s = 0$) and a fault occurs on the $i$th actuator ($f_{ai}(t) \neq 0$), the estimation error dynamics of the $k$th observer is written as:
Since $f_a^i(t)$ does not contain $f_{ai}(t)$ (because $T^i b_i = 0$), the $r$ residuals satisfy the isolation logic:
$$\begin{cases}
\big\|r^i(t)\big\| < \varepsilon^i & (\text{Residual } i \text{ is insensitive to } f_{ai}) \\[6pt]
\big\|r^k(t)\big\| \ge \varepsilon^k & \forall k \in \{1, \dots, i-1, i+1, \dots, r\}
\end{cases}$$
where $\varepsilon^i > 0$ ($i = 1, 2, \dots, r$) are the actuator isolation thresholds.
Role of the Signal Grouping block
Unlike the sensor scheme where the grouping was on $y$, here the Signal Grouping block acts on the control vector $u \in \mathbb{R}^r$ to distribute $u^1, \dots, u^i, \dots, u^r \in \mathbb{R}^{r-1}$ to the $r$ UIO observers!
The bank of $r$ UIO observers realizes a Generalized Observer Scheme (GOS) for the $r$ actuators. A "1" at row $i$ and column $k$ means that the residual $r^k$ is sensitive to the actuator fault $f_{ui}$ ($f_{ai}$), while a "0" indicates total insensitivity:
Fault / Input \ Residual
$r^1(t)$
$r^2(t)$
$\dots$
$r^i(t)$
$\dots$
$r^r(t)$
Decision
Disturbance $d(t)$
0
0
$\dots$
0
$\dots$
0
None
$f_{u1}(t)$
0
1
$\dots$
1
$\dots$
1
$a_1 = 1$
$f_{u2}(t)$
1
0
$\dots$
1
$\dots$
1
$a_2 = 1$
$f_{ui}(t)$
1
1
$\dots$
0
$\dots$
1
$a_i = 1$
$f_{ur}(t)$
1
1
$\dots$
1
$\dots$
0
$a_r = 1$
With the binary logic function $L(\|r^i\|) = 1 \iff \|r^i\| \ge \varepsilon^i$, the failure alarm of the 1st actuator (or the $i$th actuator) obeys the Boolean law:
Each projection operator $T^i$ simultaneously cancels $\text{Im}(E)$ and the direction $b_i$ of its associated actuator.
Existence Conditions of the Actuator UIO Bank
Rank Conditions c₁ and c₂
For each of the $r$ UIO observers ($i = 1, \dots, r$) to satisfy the decoupling constraints $T^i E^i = 0$ and the stability of $F^i = T^i A - K^i C$, the following two rank conditions must be met for each $i \in \{1, \dots, r\}$:
Condition $c_2$ (Detectability condition of the pair $(T^i A, C)$):
$$\text{rank}\begin{pmatrix} p\,I_n - T^i A \\ C \end{pmatrix} = n, \qquad \forall p \in \mathbb{C} \text{ such that } \text{Re}(p) \ge 0$$
Physical analysis of the condition $$\text{rank}(C[E \;\; b_i]) = \dim(d) + 1$$
This condition implies three simultaneous requirements:
The number of sensors $m$ must satisfy $\mathbf{m \ge \dim(d) + 1}$ (because $C E^i \in \mathbb{R}^{m \times (q+1)}$).
The column $b_i$ of actuator $i$ must not be collinear with $E$.
For $r^k$ ($k \neq i$) to be sensitive to $f_{ui}$, we must also have $T^k b_i \neq 0$, meaning $\text{rank}(C[E \;\; b_k \;\; b_i]) > \dim(d) + 1$.
As with the sensors, condition $c_1$ imposes that the number of measurements $m$ is at least equal to $\dim(d) + 1$.
Fundamental Remarks: Single Faults vs. Simultaneous Faults
From GOS Scheme to DOS Grouping
The analysis of the two robust isolation schemes (sensors and actuators) presented previously leads to three essential methodological remarks:
1. Single Fault Assumption: The GOS architectures presented above can only isolate one fault at a time (either on a sensor or on an actuator).
2. Probabilistic justification in industrial practice: This assumption is realistic in the majority of real systems because the probability of simultaneous occurrence of two independent faults at the exact same time is extremely low.
3. Extension to isolation of simultaneous faults (Grouping / DOS): If simultaneous faults absolutely must be isolated, the scheme must be modified by fault grouping: each residual is designed to be sensitive to one group of faults and insensitive to all other groups, leading to a Dedicated Observer Scheme (DOS) based on UIOs.
Transition from GOS to robust DOS: instead of decoupling $b_i$, observer $i$ decouples all columns $B^i$ except $b_i$.
Pedagogical Example (1/4): Existence Tests on a 3rd Order System
Numerical Application of Conditions c₁
Let's consider a linear system of order $n = 3$, equipped with $m = 3$ sensors ($C = I_3$), $r = 2$ actuators ($B = [b_1 \;\; b_2]$), and subjected to $q = 1$ scalar disturbance $d(t)$:
Direct visualization of the rank deficiency $\text{rank}(C[E \;\; b_2]) = 1 < 2$ when $b_2 \in \text{Im}(E)$.
Pedagogical Example (2/4): Explicit Calculation of Matrices $N^1$ and $T^1$
Algebraic Decoupling (Steps 1 & 2)
Let's continue the previous example by explicitly calculating the static matrices $N^1$ and $T^1$ of the observer UIO 1, whose task is to simultaneously decouple the disturbance $E$ and the first actuator $b_1$:
Direct numerical verification of the algebraic properties of $N^1$ and $T^1 = I_3 - N^1 C$.
Pedagogical Example (3/4): Full Dynamic Synthesis ($F^1, K^1, G^1$)
Pole Placement & Time Equation of the Residual
Let's complete the example with the following state matrix $A$ and the reconfigured actuator $\tilde{b}_2 = [0, 0, 1]^T$. We calculate the dynamic matrices $F^1, K^1, G^1$ of UIO 1:
Step 3Hautus Verification ($c_2$) & Pole Placement of $F^1 = T^1 A - K^1 C$:
Since $C = I_3$, the pair $(T^1 A, I_3)$ is trivially observable ($\text{rank}[pI_3 - T^1 A ; I_3] = 3$). We choose $K^1$ to place the 3 eigenvalues of $F^1$ at $\lambda_1 = \lambda_2 = \lambda_3 = -4$:
The residual $r_{1,3}(t)$ is a 1st order low-pass filter with time constant $\tau = 0.25\text{ s}$ with respect to $f_{a2}(t)$, and strictly zero against $d(t)$ and $f_{a1}(t)$!
Pedagogical Example (4/4): MATLAB / Simulink Implementation Diagram
Real-Time Implementation & Initialization Script
To simulate a UIO isolation bank in MATLAB / Simulink, each residual generator $j$ is implemented using a standard State-Space block receiving the concatenated vector $[u(t) ; y^j(t)]$:
Simulink Trick: You can even integrate the direct subtraction $(I - C N^1)y(t)$ into the direct transmission matrix of the State-Space block by setting C_sim = -C and D_sim = [zeros(m, r-1), eye(m) - C*N1]!
Reusable Simulink subsystem (Masked Subsystem) for each branch of the robust isolation bank.
General Summary: Robust Sensor vs. Actuator Isolation
Design Summary Table
This table summarizes all the synthesis equations and rank conditions of the two UIO-based robust isolation banks studied in this sequence:
Synthesis Criterion
Robust Sensor Fault Isolation ($j = 1 \dots m$)
Robust Actuator Fault Isolation ($i = 1 \dots r$)
Working assumption
Healthy actuators ($f_a = 0$), 1 sensor fault $f_{sj}$ at a time
Healthy sensors ($f_s = 0$), 1 actuator fault $f_{ai}$ at a time
Model modification for UIO
Deletion of the $j$th row of $C$: $y^j = C^j x + f_s^j \in \mathbb{R}^{m-1}$
Augmentation of $E$ with the $i$th column of $B$: $E^i = [E \;\; b_i]$
Philosophy of the Parity Space
Unlike state observers which recursively estimate $\hat{x}_k$ over time, the parity relations approach algebraically eliminates the unknown state $x_k$ by projecting the measurements onto the left null space of the observation matrix (static case $V C = 0$) or the observability matrix over a sliding time window of $s+1$ samples (dynamic case $V W = 0$).
Sequence 4 Outline:
Observer vs. Parity Comparison: Recursive IIR Filter vs. Finite memory FIR Filter.
Static systems: Direct redundancy ($m \ge n$), projection $V C = 0$ and signatures.
Optimal isolation: Approximate decoupling and generalized eigenvalues (Rayleigh).
Dynamic systems & MATLAB/Simulink: Sliding horizon $[k-s, k]$ and full simulation.
Positioning of the parity relations approach among residual generation techniques.
Positioning of Sequence 4 in the AU-513 Course
General Module Outline
After studying state observers in depth (Sequences 2 and 3), we tackle the second major family of diagnostic methods: the algebraic approach via parity relations (Parity Space):
The parity space offers a purely algebraic alternative to state observers, ideal for digital computers.
Why Parity Space? Comparison with Observers
Recursive IIR Filter vs. Finite Memory FIR Filter
What is the practical advantage of the parity relations approach compared to the state observers studied in Sequences 2 and 3?
1. State Observer: Recursive Filter (IIR — Infinite Memory)
An observer integrates a closed-loop differential or recurrence equation ($\hat{x}_{k+1} = (A-LC)\hat{x}_k + \dots$). You must choose and stabilize its poles, and the effect of an initial error $e_x(0)$ takes an asymptotic time to die out.
The parity residual $r_k = V(Y_k - H U_k)$ depends only on the last $s+1$ samples stored in a sliding window $[k-s, k]$:
• No internal feedback: The filter is a Finite Impulse Response (FIR) filter, therefore unconditionally stable (no pole placement required!).
• Exact forgetting in $s+1$ steps: The unknown state $x_{k-s}$ is eliminated algebraically by a simple matrix product $V W = 0$.
Parity space replaces the dynamic synthesis of a gain $L$ with a simple linear algebra problem (finding the left null space of $W$).
Overview of Models Handled in Parity Space
From Static to Dynamic
The parity space approach comes in four increasing levels of mathematical model complexity:
1. Static Systems and Constrained Systems
a) Pure static system (no unknown input):
$$Y = C\,X \quad (\text{with } m > n \text{ measurements})$$
b) Static system under algebraic constraints:
$$\begin{cases} A\,X = 0 & (\text{Conservation laws: nodes, balances}) \\ Y = C\,X & (\text{Measurement equation without UI}) \end{cases}$$
Direct exploitation of sensor geometry
When the number of sensors $m$ exceeds the number of independent states $n$, the measurements instantaneously satisfy algebraic consistency relations.
2. Systems with Disturbances and Dynamic Systems
c) Static system without perfect decoupling ($m > n$):
$$y_k = C\,x_k + \epsilon_k + F\,d_k \iff y_k = C\,x_k + \epsilon_k + F^-\,d_k^- + F^+\,d_k^+$$
where $\epsilon_k \in \mathbb{R}^m$ is the noise, $d_k^- \in \mathbb{R}^{p-1}$ the vector of faults/disturbances to reject, and $d_k^+ \in \mathbb{R}^1$ the scalar target fault to detect.
d) Discrete-time dynamic system:
$$\begin{cases}
x_{k+1} = A\,x_k + B\,u_k + E^1\,d_k + R^1\,f_k \\
y_k = C\,x_k + D\,u_k + E^2\,d_k + R^2\,f_k
\end{cases}$$
where $f_k \in \mathbb{R}^g$ groups the faults (actuators, components, sensors) and $d_k \in \mathbb{R}^q$ denotes the vector of unknown inputs (UI).
Sensor Fault Detection: Spatial vs. Temporal Redundancy
Dimensional Analysis (m vs n)
Consider the general problem of measuring an unknown state vector $x_k \in \mathbb{R}^n$ using $m$ sensors described by the algebraic equation:
$$y_k = C\,x_k + f_k$$
where $y_k \in \mathbb{R}^m$ is the measurement vector, $x_k \in \mathbb{R}^n$ is the state vector, $f_k \in \mathbb{R}^m$ is the sensor fault vector, and $C \in \mathbb{R}^{m \times n}$ is the measurement matrix.
Depending on the number of sensors $m$ relative to the dimension $n$ of the state, two fundamental situations arise:
Case 1: $m < n$ (or $m = n$ with $C$ invertible — No direct spatial redundancy): There are fewer sensors than state unknowns. At a given instant $k$, any variation in $y_k$ can be explained by a legitimate variation in $x_k$.
Case 2: $m > n$ with $\text{rank}(C) = n$ (With direct spatial redundancy): The rows of $C$ are linearly dependent; we can eliminate $x_k$ at instant $k$.
Geometric distinction between an under-instrumented system ($m < n$) and a redundant system ($m > n$).
Case 1 ($m < n$): Concept of Temporal (Serial) Redundancy
Sliding Data Window
When $m < n$ with $y_k = C\,x_k$ and $\text{rank}(C) = m$, no direct spatial redundancy relation exists at an isolated instant $k$ (the left null space of $C$ is reduced to $\{0\}$ because the $m$ rows of $C$ are linearly independent).
On the other hand, if $x_k$ evolves according to a known dynamic law, we can artificially create redundancy by stacking the sensor measurements over a time horizon of $s+1$ samples (sliding window from $k-s$ to $k$):
Temporal Redundancy (or Serial Redundancy)
By choosing the window order $s$ such that $(s+1)m > n$, the stacked vector $Y(k-s:k)$ has more scalar rows than the dimension $n$ of the initial state $x_{k-s}$! This is the principle of temporal redundancy.
Sliding memory mechanism: temporal accumulation compensates for the low number of physical sensors.
Case 2 ($m > n$ and $\text{rank}(C)=n$): Example 1 of Direct Redundancy
Guided Sensor Isolation Example
When $m > n$ and $\text{rank}(C) = n$, the rows of $C$ are linked by $m - n$ static algebraic relations. Consider a system with $n = 2$ states measured by $m = 4$ sensors:
Diagnosis of a fault on sensor $y_2$:
If sensor $y_2$ is faulty, $r_1 \neq 0$ and $r_2 \neq 0$, while $r_3 = 0$ (because $r_3$ does not depend on $y_2$): the fault on $y_2$ is detected and isolated!
Note: the 3rd exact relation eliminating $y_2$ is $0.5y_1 - y_3 + 0.25y_4 = 0$.
General Formalism of the Static Parity Space ($V C = 0$)
Projection onto the Left Null Space
Let's generalize the previous example (Example 2): let $y_k = C\,x_k + f_k$ with $m > n$ and $\text{rank}(C) = n$. The number of measurements is strictly greater than the number of state variables $x_k$.
For diagnosis (FDI), we linearly combine the components of $y_k$ via a parity matrix $V \in \mathbb{R}^{(m-n) \times m}$ to generate the parity vector (residual) $r_k$:
For the residual $r_k$ to be zero in the absence of a fault and completely insensitive to the unknown state $x_k$ ($\forall x_k \in \mathbb{R}^n$), the matrix $V$ must belong to the left null space of $C$:
$$\mathbf{V \times C = 0}$$
When this orthogonality condition is met, the residual contains only the information about the sensor faults:
$$r_k = V\,y_k = V\,f_k \iff r_k = v_1\,f_1(k) + v_2\,f_2(k) + \dots + v_m\,f_m(k)$$
where $v_i$ is the $i$th column of $V$ (signature direction of the fault $f_i(k)$ of the $i$th sensor).
If the columns $v_1, \dots, v_m$ of $V$ have pairwise non-collinear directions, the direction of $r_k$ identifies the faulty sensor.
Isolation in Parity Space: Exact Decoupling vs Optimal Decoupling
Example 3: Separation d⁻ / d⁺
Let's consider the noisy static system (Example 3) where the fault vector $d_k \in \mathbb{R}^p$ is decomposed into $d_k^- \in \mathbb{R}^{p-1}$ (faults or disturbances to make undetectable) and $d_k^+ \in \mathbb{R}^1$ (the target fault to detect):
2Optimal projection (Approximate decoupling): In practice, if the number of columns of $[C \;\; F^-]$ is equal to or greater than $m$, the condition $\Omega\,[C \;\; F^-] = 0$ with $\Omega F^+ \neq 0$ is impossible to achieve. We then look for an optimal vector $\Omega$ that provides the best compromise:
How to simultaneously solve the two antagonistic objectives $J_1 = \min_{\Omega} \|\Omega\,[C \;\; F^-]\|$ (robustness) and $J_2 = \max_{\Omega} \|\Omega\,F^+\|$ (sensitivity to fault $d^+$)?
A solution minimizing $J_1$ alone ($\Omega = 0$) obviously cannot maximize $J_2$ at the same time.
To obtain a mathematically well-posed and scale-invariant compromise (homogeneous of degree 0 in $\Omega$), we define a single performance index $J$ equal to the quadratic ratio of the two criteria:
$$J = \min_{\Omega} \frac{\big\|\Omega\,\begin{bmatrix} C & F^- \end{bmatrix}\big\|^2}{\big\|\Omega\,F^+\big\|^2}$$
Absolute priority to decoupling the unknown state $x_k$
Since the state $x_k$ can take arbitrarily large values depending on the operating point, it is essential to impose an exact decoupling of the state ($\Omega\,C = 0$) and to minimize only the ratio between the effect of $F^-$ and the effect of $F^+$!
The synthesis of a robust isolation residual comes down to minimizing the rational quadratic criterion $J(\Omega)$.
Elimination of the Constraint $\Omega\,C = 0$ by Parameterization
Reduction to an Unconstrained Problem
We are trying to solve the optimization problem under an equality constraint:
Since $C \in \mathbb{R}^{m \times n}$ has full column rank ($\text{rank}(C) = n$), we can partition $C$ and $\Omega = \begin{pmatrix} \Omega_1^T & \Omega_2^T \end{pmatrix}$ with a regular invertible block $C_1 \in \mathbb{R}^{n \times n}$:
By substituting $\Omega = \Omega_2^T P$, the constrained problem in $\Omega \in \mathbb{R}^{1 \times m}$ is reduced to an unconstrained problem on the free vector $\Omega_2 \in \mathbb{R}^{m-n}$:
This problem is solved by computing the smallest generalized eigenvalue $\underline{\gamma}$ of the pair $(A, B)$ and its associated generalized eigenvector $X^* = \Omega_2^*$. Rigorous proof: Let $F_1(X) = \dfrac{X^T A X}{X^T B X}$. At the minimum $X = X^*$, where $F_1(X^*) = \underline{\gamma}$, the gradient vanishes:
$$\left.\frac{\partial F_1}{\partial X}\right|_{X=X^*} = 0 \iff \frac{2 A X^*\,(X^{*T} B X^*) - (X^{*T} A X^*)\,2 B X^*}{(X^{*T} B X^*)^2} = 0$$
$$\iff \frac{2}{X^{*T} B X^*}\left(A - \underbrace{\frac{X^{*T} A X^*}{X^{*T} B X^*}}_{=\,\underline{\gamma}}\,B\right) X^* = 0 \iff \mathbf{(A - \underline{\gamma}\,B)\,X^* = 0}$$
The roots of $\det(A - \gamma B) = 0$, ordered as $\underline{\gamma} < \gamma_j < \dots < \bar{\gamma}$, are the generalized eigenvalues: the global minimum is $\underline{\gamma}$!
The Rayleigh quotient stationarity theorem transforms nonlinear optimization into standard linear algebra.
Parity Relations for Discrete-Time Dynamic Systems
Faulty Discrete State Model
Let's now move to the general case of a linear time-invariant discrete dynamic system described by the following state representation:
$u_k \in \mathbb{R}^r$ is the vector of known control inputs.
$y_k \in \mathbb{R}^m$ is the vector of known measured outputs.
$x_k \in \mathbb{R}^n$ is the unknown state vector of the system.
$f_k \in \mathbb{R}^g$ denotes the vector of unknown faults (which can group actuator, component, or sensor faults).
$\{A, B, C, D, R_1, R_2\}$ are known real matrices of appropriate dimensions.
Central question: How to obtain redundancy relations?
Even if $m < n$ (e.g., a single sensor $m=1$ for a system of order $n=3$), we will propagate the state equations from instant $k-s$ to instant $k$ to express all outputs as a function of the single past state $x_{k-s}$!
By induction over the horizon $[k-s, k]$, all intermediate states are eliminated in favor of $x_{k-s}$.
Construction of Sliding Horizon Matrices ($W$, $H$ and $M$)
Stacked Matrix Formulation
By stacking the output equations from instant $k-s$ to instant $k$, we obtain the temporal redundancy matrix equation:
$$W = \begin{bmatrix} C \\ C A \\ \vdots \\ C A^s \end{bmatrix} \in \mathbb{R}^{(s+1)m \times n}, \qquad
H = \begin{bmatrix} D & 0 & \dots & 0 \\ C B & D & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ C A^{s-1}B & C A^{s-2}B & \dots & D \end{bmatrix} \in \mathbb{R}^{(s+1)m \times (s+1)r}$$
And the fault transfer matrix $M \in \mathbb{R}^{(s+1)m \times (s+1)g}$ is built exactly like the Toeplitz matrix $H$ by replacing the pair $\{D, B\}$ with $\{R_2, R_1\}$!
The fundamental equation $Y_k - H U_k = W x_{k-s} + M F_k$ clearly separates known signals from unknown signals.
Synthesis of the Dynamic Residual Generator ($V W = 0$, $V M \neq 0$)
Decoupling and Detectability Conditions
From the data relation $Y_k - H\,U_k = W\,x_{k-s} + M\,F_k$, we define the residual signal $r_k \in \mathbb{R}^p$ calculated online by:
$$\mathbf{r_k = V\,\big[\,Y_k - H\,U_k\,\big]} \quad \text{with } V \in \mathbb{R}^{p \times (s+1)m}$$
where the integer $s$ is called the parity relation order.
To analyze the internal behavior of the residual, let's replace $Y_k - H U_k$ with its expression as a function of the state and faults:
$$r_k = V\,W\,x_{k-s} + V\,M\,F_k$$
For this parity vector to be a valid FDI residual, the projection matrix $V$ must imperatively satisfy two fundamental conditions:
$$\begin{cases}
\mathbf{1)\;\; V\,W = 0} & \text{(Total insensitivity to the unknown state } x_{k-s}\text{)} \\[4pt]
\mathbf{2)\;\; V\,M \neq 0} & \text{(Detectability condition for faults } F_k\text{)}
\end{cases}$$
A residual generator based on parity space is a Finite Impulse Response (FIR) filter of length $s+1$, therefore always stable!
Complete Numerical Example (1/4): Synthesis over Horizon $s = 2$
Analytical Calculation of W, H, M and V
Consider a discrete system of order $n = 2$ (period $T_e = 0.1\text{ s}$) equipped with a single sensor ($m = 1 < n$), subjected to an actuator fault $f_{a,k}$ and a sensor fault $f_{s,k}$ ($f_k = [f_{a,k} \;\; f_{s,k}]^T$):
Important note: for a sensor step fault $f_{s,k} = f_{s0}$, the sum of the coefficients is $1 - 1.5 + 0.5 = 0$ (transient detection!).
Numerical Example (2/4): MATLAB Synthesis & Simulation Script
Ready-to-Run MATLAB Code
The MATLAB script below automatically constructs the horizon matrices $W, H, M$, calculates the parity vector $V$ via the null(W')' command, and simulates the residual $r_k$:
%% 1. Discrete model parameters (Te = 0.1 s, n = 2, m = 1)
Te = 0.1;
A = [0, 1; -0.5, 1.5]; B = [0; 1];
C = [1, 0]; D = 0;
R1 = [0, 0; 1, 0]; R2 = [0, 1]; % f = [fa ; fs]%% 2. Automatic construction of W and H for order s = 2
s = 2;
W = [C; C*A; C*A^2];
H = [D, 0, 0;
C*B, D, 0;
C*A*B, C*B, D];
%% 3. Calculation of V in the left null space of W (V * W = 0)
V_raw = null(W')'; % Orthonormal basis of Ker(W^T)
V = V_raw / V_raw(end); % Normalization: v2 = 1 -> [0.5, -1.5, 1]
VH = V * H; % Yields [1, 0, 0]%% 4. Discrete FIR filters in z^-1 for Simulink
Fy = tf([V(3), V(2), V(1)], 1, Te, 'Variable', 'z^-1'); % 1 - 1.5z^-1 + 0.5z^-2
Fu = tf([VH(3), VH(2), VH(1)], 1, Te, 'Variable', 'z^-1'); % z^-2
% Simulation over N = 100 steps (10 seconds)for k = 3:N
Yk = [y(k-2); y(k-1); y(k)];
Uk = [u(k-2); u(k-1); u(k)];
r(k) = V * Yk - VH * Uk; % FIR Filter of order s=2end
In Simulink, the Discrete FIR Filter blocks directly use the coefficient vectors [1, -1.5, 0.5] (for $y_k$) and [0, 0, 1] (for $u_k$).
Numerical Example (3/4): Simulink Implementation Block Diagram
Discrete-Time Simulink Architecture (Te = 0.1 s)
Here is the complete Simulink diagram implementing the discrete dynamic system and the order $s = 2$ parity space residual generator using unit delays $z^{-1}$ (Unit Delay blocks) and gains $v_0, v_1, v_2$:
Direct Simulink implementation: only 4 Unit Delay blocks ($z^{-1}$) and 4 gains are needed to build the parity filter!
Numerical Example (4/4): Fault Response Timing Diagrams
Simulink Residual Time Analysis
Let's analyze the time response obtained in Simulink ($T_e = 0.1\text{ s}$, non-zero initial condition $x_0 = [2 \;\; -1]^T$) for two successive fault scenarios:
1. Insensitivity to initial state ($t \ge 0.2\text{ s}$)
As soon as the sliding window of length $s=2$ is filled ($k \ge 2$, i.e., $t \ge 0.2\text{ s}$), we have exactly $\mathbf{r_k = 0}$, despite $x_0 \neq 0$ and the command step $u_k = 1$!
For $f_{a,k} = +0.5$ between $t = 2\text{ s}$ and $4\text{ s}$, the law $r_k = f_{a,k-2}$ produces a persistent pulse of amplitude $+0.5$ (with a delay of $s=2$ steps, i.e., $0.2\text{ s}$).
Since $r_k = f_{s,k} - 1.5 f_{s,k-1} + 0.5 f_{s,k-2}$ and $\mathbf{z = 1}$ is an eigenvalue of $A$ ($1 - 1.5 + 0.5 = 0$), a constant sensor bias creates a transient peak ($+1$ then $-0.5$) before returning to $0$!
The parity filter acts as a discrete differentiator with respect to $f_{s,k}$ because $A$ has an integrating eigenvalue at $z = 1$.
General Block Diagram Architecture of the Time-based Generator
Implementation via Shift Registers
In the general multivariable case ($r$ inputs, $m$ outputs, horizon $s$), the real-time architecture of the time redundancy residual generator is structured around two buffer memories (FIFO):
Architecture of the time redundancy residual generator: two FIFO Buffer memories store the last $s$ samples.
Sensor Isolation via Time Auto-Redundancy Approach
Diagonal Decision Table (DOS Type)
Let us consider the dynamic model subject only to sensor faults $f_k = [f_{1k}, \dots, f_{mk}]^T$:
The auto-redundancy approach consists of building a time parity relation sensor by sensor (using only the history $Y_{ik}$ of the $i$th scalar measurement $y_{ik} = C_i x_k + f_{ik}$):
Auto-redundancy compares each sensor with its own past measurements (and $U_k$), providing a diagonal incidence matrix $I_m$ without requiring full observability!
Dynamic Systems with Unknown Inputs ($d_k$) & Synthesis
DOS / GOS Generalization in Parity Space
Finally, let's consider the general discrete dynamic system subject simultaneously to faults $f_k \in \mathbb{R}^g$ and unknown inputs (disturbances) $d_k \in \mathbb{R}^q$:
$$\begin{cases}
x_{k+1} = A\,x_k + B\,u_k + E_1\,d_k + R_1\,f_k \\
y_k = C\,x_k + D\,u_k + E_2\,d_k + R_2\,f_k
\end{cases}$$
where $\{A, B, E_1, E_2, R_1, R_2, C, D\}$ are known matrices of the model.
Over the sliding horizon $[k-s, k]$, the stacked data equation becomes:
$$Y_k - H\,U_k = W\,x_{k-s} + H_d\,D_k + M\,F_k$$
where $H_d \in \mathbb{R}^{(s+1)m \times (s+1)q}$ is built by replacing $\{D, B\}$ with $\{E_2, E_1\}$.
Synthesis conditions for a robust parity residual $r_k = V(Y_k - H U_k)$:
$$\mathbf{V\,\begin{bmatrix} W & H_d \end{bmatrix} = 0} \quad (\text{Decoupling of } x_{k-s} \text{ and } D_k) \qquad \text{and} \qquad \mathbf{V\,M \neq 0}$$
To detect and isolate the faults $f_k$, a DOS or GOS scheme is then deployed in the parity space (exactly as for UIO banks).
Perfect structural equivalence between the UIO observer approach and the sliding horizon parity relations approach.
Fault Detection via Parametric Estimation (LS & RLS)
Sequence 5 (End): Recursive Least Squares, Global Synthesis & $H_\infty$ / FTC Perspectives
Philosophy of the Parametric Approach (R. Isermann)
While observers and parity space mainly detect additive faults ($f_a, f_s$) assuming known and fixed matrices $(A, B, C)$, the parametric estimation approach directly targets multiplicative faults (component faults) that modify the physical constants of the process (resistance $R$, capacitance $C$, stiffness, damping).
Sequence 5 Program:
Principle of parametric diagnostic: Multiplicative faults $\Delta a_i, \Delta b_j$ and excitation.
Least Squares (LS & RLS): ARX regression, inversion lemma and forgetting factor $\lambda$.
Case study: Diagnostic of physical parameters $R$ and $C$ of an electrical filter.
Global Synthesis & Perspectives: Mixed GOS / UIO / $H_\infty$ synthesis and FTC via $H_\infty$ duality.
Synthesis of the three main analytical approaches of the AU-513 course.
Positioning of Sequence 5 in the AU-513 Course
General Plan & Module Conclusion
This fifth and final sequence completes the trilogy of analytical methods with online parametric identification, before providing a general synthesis of the course and opening up to robust $H_\infty$ approaches and Fault-Tolerant Control (FTC):
Complete journey of the AU-513 module: from basic detection to robust FDI / FTC integration.
Why Parametric Estimation? Additive vs. Multiplicative Faults
Physical Motivation & Persistent Excitation
Why are observers and parity space not always sufficient when an internal component of the process degrades (heating of a resistor $\Delta R$, leak, wear of a spring $\Delta k$)?
1. Limitation of Observers against Multiplicative Faults ($\Delta A$)
If the dynamic matrix changes from $A$ to $A + \Delta A$, the error equation of an observer is written $\dot{e}_x(t) = (A - LC)e_x(t) + \mathbf{\Delta A\,x(t)}$.
• The apparent fault input $\Delta A\,x(t)$ depends on the state $x(t)$!
• It is difficult to separate the signature of a specific parameter $\Delta R$ or $\Delta C$ from the sole vector $\Delta A\,x(t)$.
2. The Benefit of Online Parametric Identification
By directly estimating the parameter vector $\hat{\Theta}(t)$ and then the physical constants $\hat{p}(t) = f^{-1}(\hat{\Theta}(t))$, each physical coefficient has its own dedicated residual $\Delta p_i = \hat{p}_i - p_{i0}$. Key condition: The input signal $u(t)$ must be rich enough (persistently exciting) to awake the dynamic modes of the process!
A multiplicative fault modifies the poles and gains of the system: parametric estimation directly identifies this drift.
Fundamental Principles of Diagnostic via Parametric Estimation
Two-Phase Approach
Parametric estimation for fault detection relies on the following postulates and methodological steps:
Parameter ignorance or drift: The process parameters are not known at all, or not known with sufficient precision. They can be determined by parametric identification methods.
Structural knowledge: The basic structure of the model (order of differential equations, physical laws) must be known a priori.
Physical hypothesis: It is assumed that component faults (wear, leak, short circuit, fouling) are directly reflected in the physical parameters of the system.
Online estimation: The parameters of the real process are estimated in real-time from the measurements $(u(t), y(t))$.
Comparison with reference model: The estimates $\hat{\theta}(t)$ are compared to the nominal parameters $\theta_0$ initially obtained under healthy conditions (fault-free). Any significant deviation ($\Delta\theta \neq 0$) indicates the occurrence of a fault.
Any significant drift of $\hat{\Theta}(t)$ with respect to the healthy signature $\Theta_0$ reveals an internal physical modification.
First Step: Parametric Estimation via Least Squares (LS)
Static Linear Regression & Calorimeter
Let us consider a linear-in-its-parameters model (SISO) linking the sensor measurements vector $Z$ to the unknown parameters vector $\underline{\theta}$:
$$Z = H\,\underline{\theta} + \underline{\epsilon}$$
where $Z$ is the measurement vector, $H$ is the known observation matrix, $\underline{\theta}$ is the unknown parameter vector and $\underline{\epsilon} \sim \mathcal{N}(0, V)$ is the measurement noise with covariance matrix $V > 0$.
Example of a polynomial calorimeter: $Y = \beta_0 + \beta_1 U + \beta_3 U^3 + \epsilon$ is written in linear matrix form with respect to $\underline{\theta}$:
When the noise is white homoscedastic ($V = \sigma^2 I$), Weighted Least Squares reduce to Ordinary Least Squares $\hat{\theta} = H^+ Z$.
Parametric Estimation for Dynamic Systems: I/O Model
Additive vs Multiplicative Faults
Consider a continuous linear dynamic system described around its operating point $(U_{00}, Y_{00})$ by the centered signals $u(t) = U(t) - U_{00}$ and $y(t) = Y(t) - Y_{00}$:
Nominal differential equation (fault-free):
$$y(t) + a_1\,y^{(1)}(t) + \dots + a_n\,y^{(n)}(t) = b_0\,u(t) + b_1\,u^{(1)}(t) + \dots + b_m\,u^{(m)}(t)$$
where $y^{(i)}(t) = \dfrac{d^i y(t)}{dt^i}$ denotes the $i$-th order time derivative.
By isolating $y(t)$, this differential equation can be written as a linear regression:
Additive faults: $f_u(t)$ (input fault) and $f_y(t)$ (output fault).
Multiplicative (parametric) faults: Variations $\Delta a_i$ and $\Delta b_j$ of the coefficients of the transfer function $G_p(s) = \dfrac{B(s)}{A(s)}$.
Representation of a dynamic system subject to both additive $(f_u, f_y)$ and multiplicative $(\Delta a_i, \Delta b_j)$ faults.
Parametric Estimation: Companion State Representation
Faults ΔA, Δb, Δcᵀ vs Faults f_l, f_m
The previous differential equation can also be written in the form of a canonical state representation (companion form):
The oblique orange arrows ($\Delta b_i, \Delta a_i, \Delta c_j$) symbolize the internal modification of the system's matrix operators.
Equation Error Minimization & Symptom Generation
Model Parameters Θ vs Physical Coefficients p
Parametric identification minimizes the quadratic cost function $V = \sum_k e^2(k)$ relating to the equation error $e(k) = y(k) - h^T(k)\hat{\Theta}$ according to two variants:
From the estimate $\hat{\Theta}$, two levels of symptoms (residuals) are generated:
Level 1 — Symptoms on the mathematical model parameters:
$$\Delta\hat{\Theta}(j) = \hat{\Theta}(j) - \Theta_0$$
Level 2 — Symptoms on the physical coefficients of the process:
The model parameters $\Theta = f(p)$ depend on the physical coefficients $p$ (stiffness, damping, resistance $R$, capacitance $C$). If the relation $f$ is invertible:
$$\mathbf{\hat{p} = f^{-1}(\hat{\Theta})} \quad \implies \quad \mathbf{\Delta p(j) = \hat{p}(j) - p_0}$$
Equation error structure (top) and recursive RLS update loop (bottom).
Proof of Non-Recursive Least Squares (1/2 — ARX Model)
Discrete-Time Formulation
Consider a discrete-time system described by an ARX (AutoRegressive with eXogenous input) model using the backward shift operator $q^{-1}$ ($q^{-1} y(t) = y(t-1)$):
Why switch to the recursive form (RLS) for online diagnosis?
In the OLS formula above, the dimensions of $Z(t)$ and $H(t)$ grow indefinitely with time $t$, requiring us to recompute $H^T(t)H(t)$ and invert an $(n_a+n_b)\times(n_a+n_b)$ matrix at every new sample $t+1$!
Transition from the global formulation over $[1, t]$ to the recursive formulation between $t$ and $t+1$.
Proof of Recursive Least Squares (1/3 — Addition of Instant $t+1$)
Partitioning of H(t+1) and Z(t+1)
At instant $t+1$, a new scalar measurement $y(t+1)$ and a new regression vector $h^T(t+1)$ are appended to the bottom of the matrix system:
Let's identify the 4 terms of our problem with the general formula:
$$A = H^T(t)H(t) = P^{-1}(t), \qquad B = h(t+1), \qquad C = 1 \in \mathbb{R}, \qquad D = h^T(t+1)$$
Since $C = 1$ and $D A^{-1} B = h^T(t+1) P(t) h(t+1)$ are scalars, the inverse $(C^{-1} + D A^{-1} B)^{-1}$ reduces to a simple division by the scalar $1 + h^T(t+1)P(t)h(t+1)$! This leads to the RLS equations:
The Sherman-Morrison-Woodbury lemma replaces a $p \times p$ matrix inversion with a simple scalar division.
Proof of Recursive Least Squares (3/3 — Final Factorization)
Obtaining the Canonical RLS Equation
By expanding the product of $P(t+1)$ and $\big(H_t^T Z(t) + h_{t+1} y(t+1)\big)$ and using the identity $\hat{\theta}(t) = (H_t^T H_t)^{-1} H_t^T Z(t)$, we obtain:
Direct analogy with the Kalman Filter: new estimate = old estimate + Gain $\times$ Innovation (prediction error).
Online Fault Tracking: RLS with Forgetting Factor ($\lambda$)
Preventing Algorithm Sleep
Why does standard RLS fall asleep after a long period of healthy operation?
In classical RLS, the matrix $P^{-1}(t) = \sum_{k=1}^t h(k)h^T(k)$ grows indefinitely with $t$. Consequently, $\mathbf{P(t) \to 0}$ and the adaptation gain $\mathbf{K_{t+1} \to 0}$: if a component fault occurs at $t = 5000$, the algorithm barely reacts!
The solution for FDI diagnosis: the Forgetting Factor $\lambda \in ]0, 1[$
We exponentially weight past measurements in the criterion in order to favor recent data:
The division by $\lambda < 1$ keeps $P(t)$ and $K_{t+1}$ constantly active (effective memory of $N_{\text{eq}} \approx \frac{1}{1-\lambda}$ samples).
The forgetting factor $\lambda$ is essential in diagnosis to prevent the asymptotic extinction of the covariance matrix $P(t)$.
Application of the LS Method: Identifiability of an RC Circuit (1/2)
Sensor Choice & Physical Inversion p̂ = f⁻¹(Θ̂)
Consider the series $RC$ electrical circuit supplied by voltage $u_1(t)$, with current $i(t) = C\frac{du_2(t)}{dt}$ flowing through it, and capacitor voltage $u_2(t)$. Let's set the model parameters $b_0 = 1$, $b_1 = C$, and $a_1 = R C$:
Case 1: We only measure voltages $u_1(t)$ and $u_2(t)$
Kirchhoff's voltage law gives: $b_0\,u_1(t) = u_2(t) + a_1\,\dfrac{du_2(t)}{dt}$ with $b_0 = 1$ and $a_1 = R C$.
• By Least Squares (LS), we obtain an estimate of $\theta^T = \begin{bmatrix} b_0 & a_1 \end{bmatrix} = \begin{bmatrix} 1 & R C \end{bmatrix}$.
• Problem: The vector of physical coefficients $\hat{p} = f^{-1}(\hat{\Theta}) = \begin{bmatrix} \hat{R} & \hat{C} \end{bmatrix}^T$ is not accessible (only 1 equation $\widehat{RC} = \hat{a}_1$ for 2 physical unknowns $R$ and $C$!).
Case 2: We measure the input voltage $u_1(t)$ and the current $i(t)$
By differentiating $u_1(t) = R\,i(t) + u_2(t)$ with $\frac{du_2}{dt} = \frac{1}{C}i(t)$, we obtain:
$$b_1\,\frac{du_1(t)}{dt} = a_1\,\frac{di(t)}{dt} + i(t) \quad \text{with } b_1 = C \text{ and } a_1 = R C$$
• By Least Squares (LS), we estimate $\hat{\theta}^T = \begin{bmatrix} \hat{b}_1 & \hat{a}_1 \end{bmatrix} = \begin{bmatrix} \hat{C} & \widehat{RC} \end{bmatrix}$.
• Success: The physical coefficients are unique and accessible: $\mathbf{\hat{C} = \hat{b}_1}$ and $\mathbf{\hat{R} = \dfrac{\hat{a}_1}{\hat{b}_1}}$!
Key takeaway: the choice of instrumentation (measuring $i(t)$ rather than $u_2(t)$) directly dictates the isolability of the physical components!
Application of the LS Method: Numerical Discretization of Case 2 (2/2)
Implicit Euler Scheme & Discrete Regression
How to implement on a digital computer the estimation of Case 2 starting from the continuous differential equation:
$$C\,\frac{du_1(t)}{dt} = R C\,\frac{di(t)}{dt} + i(t)$$
1Approximation of derivatives by the implicit Euler scheme (step $\Delta t$):
2Putting into linear regression form $y_{n+1} = h_{n+1}^T\,\theta$:
By isolating the current measurement $i^{n+1}$ on the left, we directly obtain:
$$\underbrace{i^{n+1}}_{y_{n+1}} = \underbrace{\begin{pmatrix} -\dfrac{i^{n+1} - i^n}{\Delta t} & \dfrac{u_1^{n+1} - u_1^n}{\Delta t} \end{pmatrix}}_{h_{n+1}^T} \underbrace{\begin{pmatrix} R C \\ C \end{pmatrix}}_{\theta}$$
Numerical modeling reminder: Explicit vs Implicit
For a differential system $[M]\{\dot{T}\} + [K]\{T\} = \{F\}$ with $\{\dot{T}\} \approx \dfrac{\{T\}^{n+1} - \{T\}^n}{\Delta t}$:
• Explicit Scheme: $[M]\dfrac{\{T\}^{n+1} - \{T\}^n}{\Delta t} + [K]\{T\}^n = \{F\}^n$ (conditionally stable).
• Implicit Scheme: $[M]\dfrac{\{T\}^{n+1} - \{T\}^n}{\Delta t} + [K]\{T\}^{n+1} = \{F\}^{n+1}$ (unconditionally stable).
The implicit Euler discretization transforms the continuous differential equation into an algebraic relation directly exploitable by RLS.
Global Synthesis of Course AU-513: Comparison of the 3 Paradigms
Methodological Overview (Sequences 1 to 5)
The table below summarizes the properties, existence conditions, and preferred domains of the three major families of model-based diagnosis studied throughout the AU-513 course:
Analysis Criterion
1. State Observers (Luenberger, KF, UIO)
2. Parity Space (Static & Horizon $[k-s, k]$)
3. Parametric Estimation (LS & RLS with Forgetting $\lambda$)
In industrial practice, the number of sensors $m$ is limited and does not allow for exact decoupling of all disturbances. The disturbances are then broken down into two classes:
Structured dominant disturbances $d(t)$: Decoupled exactly by the algebraic UIO structure within a GOS bank ($\mathbf{T^j E_d = 0}$ and decoupling of the $j$th fault).
Residual noises and uncertainties $w(t) \in \mathcal{L}_2$: Impossible to cancel exactly. The remaining degrees of freedom in the observer gain $K^j$ ($F^j = T^j A - K^j C^j$) are then used to perform a robust $H_\infty$ / $H_-$ synthesis via Linear Matrix Inequalities (LMI):
Mixed GOS / UIO / $H_\infty$ synthesis combines the rigor of exact geometric decoupling and the power of convex frequency optimization (LMI).
Perspectives (2/2): Fault Tolerant Control (FTC) via $H_\infty$ Duality
From Robust Observation to Reconfigurable Control
The ultimate goal of diagnosis (FDD) is to allow Fault Tolerant Control (FTC) to maintain the stability and performance of the closed-loop system despite the occurrence of a fault:
Principle of Control Theory Duality (Observation $\leftrightarrow$ Control):
$$H_\infty \text{ Observer}: \quad A_{\text{obs}} = A - L\,C \quad \longleftrightarrow \quad H_\infty \text{ Control}: \quad A_{\text{com}} = A - B\,K_c$$
$$\text{Exact algebraic duality: } \quad (A, C) \longleftrightarrow (A^T, B^T) \quad \text{and} \quad L \longleftrightarrow K_c^T$$
1. Passive FTC via Robust $H_\infty$ Control: We synthesize a single controller $u(t) = -K_c \hat{x}(t)$ guaranteeing $\|T_{z w}\|_\infty < \gamma$ for a whole family of bounded faults $(\Delta A, \Delta B)$ using the same LMI / Riccati tools as the $H_\infty$ observer.
2. Active FTC (Fault Accommodation / Compensation): Thanks to the fault estimate $\hat{f}_a(t)$ provided by the UIO / $H_\infty$ observer bank, we add a direct compensating term in the control law:
The mathematical duality between observation and control allows using exactly the same LMI $H_\infty$ formalism to design the FDD block and the FTC controller.
Reference Bibliography of the AU-513 Module
Fundamental Texts (FDI & FTC)
International Reference Books
1. Jie Chen (1995): Robust residual generation for model-based fault diagnosis of dynamic systems, PhD Thesis, University of York.
2. Jie Chen & Ron J. Patton (1999): Robust Model-Based Fault Diagnosis for Dynamic Systems, Springer Publishing.
3. Silvio Simani, Cesare Fantuzzi & Ron J. Patton (2006): Model-based Fault Diagnosis in Dynamic Systems Using Identification Techniques, Springer.
4. Steven X. Ding (2008): Model-based Fault Diagnosis Techniques: Design Schemes, Algorithms, and Tools, Springer.
End of module AU-513 — Grenoble INP - Esisar & GIPSA-lab.
Thank You for Your Attentive Listening!
End of AU-513 Module • Congratulations & Perspectives
A huge thank you for your engagement
Thank you to everyone for your attentive listening, your scientific curiosity, and the quality of our discussions throughout this Control Systems and Diagnosis course. It has been a real pleasure to guide you through this final stretch of your engineering cycle at Esisar.
Professional & Family Fulfillment
You now hold in your hands solid engineering tools to tackle industry and research with rigor and creativity.
I sincerely wish you the full realization of your professional projects as well as a beautiful path of personal and family fulfillment. Cultivate your passions, take care of your loved ones, and always believe in yourself!
"Life is beautiful..."
Good luck to you all, and I look forward to following your future endeavors!
— Damien
A perfectly stable system, robust to hazards and looking towards the future!