3rd Year Engineering Cycle • Module AU-513 • Grenoble INP - Esisar

Model-Based Fault Diagnosis for Linear Systems

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).
  • IFAC Nomenclature: Diagnosis, Supervision, Estimator Banks.
  • Typology of sensor faults, structure of residual generators & $3\sigma$ thresholds.
Global Architecture of Fault Tolerant Control (FDD & FTC) FTC FDD Reconfiguration Mechanism Fault Detection & Diagnosis (FDD) Estimated fault f̂ Controller Adaptation System Faults f(t) Reference Input u Output y Steer-by-Wire Embedded Automotive Flight Controls Critical Aerospace 3 Tanks Hydraulic Processes Wind Turbines Wind Energy
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).
Synergy of the 3 Pillars of Dependability 1. STATE ESTIMATION Luenberger Observers, Kalman Filter, UIO (x̂(t)) 2. DIAGNOSIS (FDD) Residual generation r(t), Detection, Isolation & Estimation 3. FAULT TOLERANT CONTROL (FTC) Maintaining stability and performance of complex systems in the presence of faults
Program supported by ANR-10-AIRT-05 (IRT Nanoelec) — Grenoble INP Esisar & GIPSA-lab.

Why Model-Based Diagnosis? (Challenges & Interest)

Industrial Motivation

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$.
Comparison: Hardware Redundancy (Voting) vs Analytical Redundancy A. HARDWARE REDUNDANCY (Triple Modular — High Cost, Weight, and Footprint) Process Physical Sensor 1 Physical Sensor 2 Sensor 3 (Fault) Majority Vote (2 against 1) Alarm B. MODEL-BASED ANALYTICAL REDUNDANCY (1 Single Sensor + Real-Time Algorithm) u(t) Real Process 1 Single Sensor y(t) Virtual Sensor (Analytical Model) Observer / Parity / Estimation ŷ(t) + − Residual r(t)
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:

Educational and Scientific Progression of the AU-513 Module SEQUENCE 1 Fundamentals of Diagnosis (FDI), Fault Modeling & Residual Structure IFAC Nomenclature, sensor/actuator/component faults, constraints Hu*(z) + Hy(z)Gyu*(z) = 0, 3σ thresholds. IN PROGRESS SEQUENCE 2 Observer-Based Approaches, DOS / GOS Architectures & UIO Synthesis BFDF detection filters, dedicated (Clark) and generalized (Frank) schemes, Unknown Input Observers (T·E = 0). SEQUENCE 3 Robust Sensor and Actuator Isolation Schemes Based on UIO Banks Cj row deletion (sensors), Ei augmentation (actuators), Rao-Mitra and Hautus rank conditions. SEQUENCE 4 Parity Relations Approach (Static & Dynamic Parity Space) Orthogonal projection V·C = 0, optimal decoupling by Rayleigh quotient, sliding horizon [k−s, k] (V·W = 0). SEQUENCE 5 Fault Detection by Parametric Estimation (Least Squares LS & RLS) Multiplicative faults Δai, Δbj, recursive algorithm RLS (inversion lemma), physical identification p̂ = f−1(Θ̂).
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.
Supervision Level Execution Level Control Re-design Diagnosis Estimated fault f^(t) yref Controller u(t) Process (Plant) f(t) d(t) y(t)
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!
Inputs u Actuators Act. Fault Process Comp. Fault Sensors Sens. Fault y1 y2 yN State Estimator 1 State Estimator 2 ⋮ State Estimator N ± ŷe1 r1 ± ŷe2 r2 ± ŷeN rN r1 Fault detected r2 rN Adaptive thresholds (envelopes)
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:

$$y_i(t) = \begin{cases} x_i(t) & \forall t \ge t_0 \quad \textbf{(Fault-free)}\\[4pt] x_i(t) + b_i, \;\; \dot{b}_i(t)=0, \; b_i(t_{F_i})\neq 0 & \forall t \ge t_{F_i} \quad \textbf{(a) Bias (Offset)}\\[4pt] x_i(t) + b_i(t), \;\; |b_i(t)| = c_i t, \; 0 < c_i \ll 1 & \forall t \ge t_{F_i} \quad \textbf{(b) Drift}\\[4pt] x_i(t) + b_i(t), \;\; |b_i(t)| \le \bar{b}_i, \; \dot{b}_i \in L^\infty & \forall t \ge t_{F_i} \quad \textbf{(c) Loss of accuracy}\\[4pt] x_i(t_{F_i}) = \text{Cte} & \forall t \ge t_{F_i} \quad \textbf{(d) Freezing}\\[4pt] k_i(t)\,x_i(t), \;\; 0 < \bar{k} \le k_i(t) \le 1 & \forall t \ge t_{F_i} \quad \textbf{(e) Gain error} \end{cases}$$
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.
Real quantity xi(t) Faulty measurement yi(t) (a) Constant bias Time (b) Slow drift Time (c) Loss of accuracy Time (d) Jamming / Freezing Time (e) Calibration error Quantity X(t) Measurement Y(t)
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.
  • Empirical observations (visual, vibratory symptoms, etc.).
QUANTITATIVE APPROACH (This course) ẋ(t) = A·x(t) + B·u(t) + Ef·f(t) Observers, Parity Space, Residuals r(t) QUALITATIVE APPROACH IF (Pressure = Low) AND (Flow = High) THEN (Pipe Leak) — Causal Graphs

Examples of Real Processes & FDI Applications

Physical Systems

Fault Detection and Isolation (FDI) methods apply to a wide variety of electromechanical, hydraulic, and embedded processes:

1. Direct Current Motor

Electromechanical actuator present in robotics and industry.

ω(t)
  • Faults: Armature short-circuit ($\Delta R$), demagnetization, mechanical jamming ($\Delta f$), encoder failure.

2. 3-Tank System

Reference test bench for chemical and hydraulic processes.

Tank 1 h1 Tank 3 h3 Tank 2 h2 P1 P2
  • 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.

CG ay r (yaw)
  • 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:

  1. Actuators: Subject to actuator faults $f_A(t)$ (providing $u_a(t)$ from the command $u_c(t)$).
  2. Process Dynamics: Subject to component faults $f_c(t)$ and state disturbances $w(t)$.
  3. 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!
Physical Chain Subject to Faults (Dotted) and Noise (Solid Lines) Command signal uc(t) Actuators fA(t) Action signal ua(t) Process Dynamics fc(t) w(t) Process outputs yp(t) Sensors fs(t) ν(t) Measured outputs y(t) Faults to detect (fA, fc, fs) Uncertainties to reject (w, ν)
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$.
Faults (Actuators, Process, Sensors) Input u(t) Actuators Process Sensors Output y(t) Model-based fault detection Process Model Residual Generator Residuals r(t) Residual Evaluation Fault Alarm
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.
u(t) Process (Plant) y(t) Σ + − Residual r(t) r(t) = y(t) − ŷ(t) Simulator or Output Estimator Measurement feedback y(t) (Observer / KF / UIO) Estimated ŷ(t)
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}$$
Physical System f(z) Gyf(z) u*(z) Gyu*(z) + + y(z) Residual Generator Hu*(z) Hy(z) + + r(z)
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)$.

Residual Evaluation & Statistical Detection Thresholds

Decision & 3-Sigma Rule

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)$:

$$\begin{cases} J\big(r(t)\big) \le \varepsilon(t) & \implies \text{Decision: } \mathbf{f(t) = 0} \quad (\text{Healthy system})\\[4pt] J\big(r(t)\big) > \varepsilon(t) & \implies \text{Decision: } \mathbf{f(t) \neq 0} \quad (\text{Fault alarm!}) \end{cases}$$

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)$:

$$\bar{r}_i := \mathbb{E}\{r_i(t)\}, \qquad \bar{\sigma}_i^2 := \mathbb{E}\big\{[r_i(t) - \bar{r}_i]^2\big\}$$
$$\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\%$.

Mean Shift Detection on a Noisy Residual (N = 5000 samples) 0.10 0.05 0 -0.05 0.15 -0.10 Residual r(t) 1000 2000 3000 4000 5000 Time samples (Data Samples k) Fault-free residual (f = 0) Faulty residual (f ≠ 0) Upper threshold: +ε = r̄ + δ·σ̄ Lower threshold: −ε = r̄ − δ·σ̄
Clear crossing of the statistical threshold $+\varepsilon(t)$ upon fault occurrence at sample $k = 2500$.
3rd Year Engineering Cycle • Module AU-513 • Grenoble INP - Esisar

Observer-Based Approaches, Isolation Banks & UIO Synthesis

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):

  1. Identity Observer & BFDF: Theory + Example 1 (MATLAB & Simulink Scheme).
  2. Sensor Isolation (DOS vs GOS): Theory + Example 2 (GOS Bank in Simulink).
  3. Robust UIO Observers: Decoupling $T E = 0$ + Example 3 (UIO in Simulink).
  4. Comparative synthesis: Architecture selection criteria for engineers.
Methodological and Practical Progression of Sequence 2 1. LUENBERGER IDENTITY OBSERVER & BFDF FILTER Error dynamics: ėx(t) = (A − L·C)·ex(t) + (Fx − L·Fs)·f(t) + Numerical Example 1: Calculation of L, MATLAB code and Simulink model Structuring into Banks of m Observers 2. SENSOR ISOLATION ARCHITECTURES: DOS vs GOS DOS Scheme: 1 measurement yi (Im Table) GOS Scheme: m−1 measurements (Except yi) + Numerical Example 2: GOS Sensor Bank in MATLAB / Simulink Presence of unknown disturbances E·d(t) 3. UNKNOWN INPUT OBSERVERS (UIO — ROBUST FDI) Exact decoupling: T·E = 0 , T = I − N·C , F = T·A − K·C , G = K + F·N + Numerical Example 3: Complete UIO synthesis in MATLAB / Simulink
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:

Roadmap of the 5 Sequences of the AU-513 Module SEQUENCE 1 Fault Diagnosis (FDI) Fundamentals, Fault Modeling & Residual Structure IFAC nomenclature, sensor/actuator/component faults, frequency constraints, 3σ statistical thresholds. COMPLETED SEQUENCE 2 Observer-Based Approaches, DOS / GOS Architectures, UIO Synthesis & Simulink Identity Observer, BFDF filter, DOS and GOS banks, Unknown Input Observers (UIO) and MATLAB implementations. IN PROGRESS SEQUENCE 3 Robust Sensor and Actuator Isolation Schemes Based on UIO Banks Row deletion Cj (sensors), augmentation Ei = [E bi] (actuators), Rao-Mitra and Hautus rank conditions. SEQUENCE 4 Parity Relations Approach (Static & Dynamic Parity Space) Orthogonal projection V·C = 0, optimal decoupling via Rayleigh quotient, sliding horizon [k−s, k] (V·W = 0). SEQUENCE 5 Fault Detection via Parametric Estimation (Least Squares LS & RLS) Multiplicative faults Δai, Δbj, RLS recursive algorithm (inversion lemma), physical identification p̂ = f−1(Θ̂).
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!

Comparison of Estimation Error ex(t) = x(t) − x̂(t) (With x(0) ≠ x̂(0)) A. OPEN-LOOP SIMULATOR : x̂˙ = A·x̂ + B·u ⇒ ėx(t) = A·ex(t) No feedback from measurement y(t) Dynamics fixed by matrix A Diverges if A is unstable! Time t ex(t) A unstable (Divergence) A slow (Long transient) B. CLOSED-LOOP OBSERVER : x̂˙ = A·x̂ + B·u + L·(y − C·x̂) ⇒ ėx(t) = (A − L·C)·ex(t) Correction via gain L Free pole placement of (A − L·C) if (A, C) is observable Time t ex(t) Fast exponential convergence : ex(t) → 0
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:

Healthy process model: $$\begin{cases} \dot{x}(t) = A\,x(t) + B\,u(t) \\ y(t) = C\,x(t) \end{cases}$$
State observer model (Identity Observer): $$\begin{cases} \dot{\hat{x}}(t) = A\,\hat{x}(t) + B\,u(t) + L\,\big(y(t) - C\,\hat{x}(t)\big) \\ \hat{y}(t) = C\,\hat{x}(t) \end{cases}$$

By defining the state estimation error $e_x(t) = x(t) - \hat{x}(t)$, its dynamics are obtained by subtraction ($\dot{e}_x = \dot{x} - \dot{\hat{x}}$):

$$\dot{e}_x(t) = (A - L\,C)\,e_x(t) \implies \lim_{t \to \infty} e_x(t) = 0$$ $$\text{Residual: } r(t) = W\,\big(y(t) - \hat{y}(t)\big) = W\,C\,e_x(t) \xrightarrow{t \to \infty} 0$$
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.
General Structure of a Residual Generator in Healthy Operation u(t) ẋ(t) = A·x(t) + B·u(t) y(t) = C·x(t) y(t) State Observer Subsystem B + + + x̂˙ ∫ x̂ A C ŷ(t) + − L W r(t)
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$:

Faulty process model: $$\begin{cases} \dot{x}(t) = A\,x(t) + B\,u(t) + F_x\,f(t) \\ y(t) = C\,x(t) + F_s\,f(t) \end{cases}$$

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:

$$\dot{e}_x(t) = (A - L\,C)\,e_x(t) + \big(F_x - L\,F_s\big)\,f(t)$$ $$\tilde{y}(t) = y(t) - \hat{y}(t) = C\,e_x(t) + F_s\,f(t)$$ $$r(t) = W\,\big(y(t) - \hat{y}(t)\big) = W\,C\,e_x(t) + W\,F_s\,f(t)$$
Asymptotic response to a constant fault ($\dot{e}_x \to 0$): $$\lim_{t \to \infty} r(t) = \Big( -W\,C\,(A - L\,C)^{-1}(F_x - L\,F_s) + W\,F_s \Big)\,f(t) \neq 0$$
Injection of Faults f(t) via Matrices Fx (State) and Fs (Output) f(t) Fx Fs u(t) + u* ẋ = A·x + B·u* y* = C·x y* + y(t) B + x̂˙ ∫ x̂ A C ŷ + − L W r(t)
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$:

$$\begin{cases} \dot{x}(t) = A\,x(t) + B\,u(t) + b_i\,f_{ai}(t) \\ y(t) = C\,x(t) + I_j\,f_{sj}(t) \end{cases}$$
  • 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$.
BFDF filter error dynamics: $$\dot{e}_x(t) = (A - L\,C)\,e_x(t) + b_i\,f_{ai}(t) - L\,I_j\,f_{sj}(t)$$ $$\tilde{y}(t) = C\,e_x(t) + I_j\,f_{sj}(t) \implies \lim_{t \to \infty} r(t) \neq 0$$
Vector Decomposition of an Actuator Fault bi and Sensor Fault Ij Matrix B = [b1 … bi … br] bi b1 br × fai(t) BFDF Error Dynamics: ėx = (A − L·C)·ex + bi·fai − L·Ij·fsj Unit Vector Ij ∈ ℝm 0 1 (row j) 0 × fsj(t) Output Deviation (Innovation): ỹ(t) = C·ex(t) + Ij·fsj(t) ⇒ r(t) ≠ 0
An actuator fault $f_{ai}$ enters along the fixed direction $b_i$, while a sensor fault $f_{sj}$ enters along $I_j$.

Numerical Example 1 (1/2): Synthesis of an Identity Observer

Analytical Calculation & MATLAB Script

Consider an electromechanical system of order $n = 2$ with a scalar measurement $y(t) = x_1(t)$ and an actuator fault $f_a(t)$:

$$A = \begin{bmatrix} -1 & 1 \\ 0 & -2 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ 1 \end{bmatrix}, \quad C = \begin{bmatrix} 1 & 0 \end{bmatrix}, \quad F_x = B = \begin{bmatrix} 0 \\ 1 \end{bmatrix}$$

1 Observability: $\mathcal{O} = \begin{bmatrix} C \\ CA \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix} \implies \text{rank}(\mathcal{O}) = 2 = n$.

2 Calculation of the gain $L = [l_1 \;\; l_2]^T$ to place the poles at $\{-3, -4\}$:

$$A - L C = \begin{bmatrix} -1 - l_1 & 1 \\ -l_2 & -2 \end{bmatrix} \implies \det(pI - (A-LC)) = p^2 + (3 + l_1)p + (2 + 2l_1 + l_2)$$ By equating with $(p+3)(p+4) = p^2 + 7p + 12$, we obtain: $$3 + l_1 = 7 \implies \mathbf{l_1 = 4}, \qquad 2 + 2(4) + l_2 = 12 \implies \mathbf{l_2 = 2} \quad \left(L = \begin{bmatrix} 4 \\ 2 \end{bmatrix}\right)$$

3 Static response of the residual to a step fault $f_a(t) = f_{a0}$:

$$\lim_{t\to\infty} r(t) = -C(A - LC)^{-1}B\,f_{a0} = \frac{1}{\det(A-LC)}\,f_{a0} = \mathbf{\frac{1}{12}\,f_{a0} \approx 0.0833\,f_{a0}}$$

Synthesis MATLAB Script (Identity Observer)

% 1. Continuous state-space model matrices (n = 2, m = 1) A = [-1 1; 0 -2]; B = [0; 1]; C = [1 0]; 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$):

Simulink Model: Faulty Process + Identity Observer + Residual Evaluation Step u(t) Fault fa(t) (t = 5 s) + + State-Space (Process) ẋ = A·x + B·(u + fa) y = C·x y(t) Mux u(t) Fed-back measurement y(t) State-Space (Observer) Aobs = A − L·C ; Bobs = [B , L] Cobs = C ; Dobs = [0 , 0] ŷ(t) + − r(t) Simulink Scope: Residual r(t) t (s) t = 5 s Threshold ε = 0.04 r(∞) = 0.10 Experimental Verification in Simulink: Between t = 0 and t = 5 s, r(t) = 0 despite variations in the control u(t). At t = 5 s, the fault fa = 1.2 causes r(t) to converge to 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$:

$$\text{Global model: } \begin{cases} \dot{x}(t) = A\,x(t) + B\,u(t) \\ y(t) = C\,x(t) + f_s(t) \end{cases}$$ $$\text{Model seen by the } i^{\text{th}}\text{ sensor: } \begin{cases} \dot{x}(t) = A\,x(t) + B\,u(t) \\ y_i(t) = C_i\,x(t) + f_{si}(t) \end{cases}$$

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)$:

$$\dot{\hat{x}}_i(t) = A\,\hat{x}_i(t) + B\,u(t) + L_i\,\big(y_i(t) - C_i\,\hat{x}_i(t)\big)$$ $$\dot{e}_{x_i}(t) = (A - L_i\,C_i)\,e_{x_i}(t) - L_i\,f_{si}(t)$$ $$r_i(t) = y_i(t) - \hat{y}_i(t) = C_i\,e_{x_i}(t) + f_{si}(t) \in \mathbb{R}$$
Elementary Cell i: Observer Driven Solely by Sensor yi Process: ẋ = A·x + B·u Output i: Ci·x(t) u(t) + Fault fsi(t) yi(t) State Observer i x̂˙i = A·x̂i + B·u + Li·(yi − Ci·x̂i) ŷi(t) = Ci·x̂i(t) Driven solely by the scalar measurement yi(t) ŷi(t) − + ri(t) ∈ ℝ Key property: lim ri(t) ≠ 0 if and only if fsi(t) ≠ 0
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).
Input u Actuators uR Process yR Sensors fs Output y Signal Ungrouping (y → y1..ym) y1 Identity Obs. 1 / KF 1 − + r1(t) yj Identity Obs. j / KF j − + rj(t) ym Identity Obs. m / KF m − + rm(t) FDI Logic a1 aj am
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:

$$\big\|r_i(t)\big\| \ge \varepsilon_i \quad \implies \quad f_{si}(t) \neq 0 \quad (\text{Alarm } a_i = 1)$$

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.
Illustration of a Simultaneous Double Fault (Sensors 1 and m) Channel 1: Residual ||r1(t)|| (Sensor 1 faulty) Threshold ε1 a1 = 1 Channel 2: Residual ||r2(t)|| (Sensor 2 healthy) Threshold ε2 a2 = 0 Channel m: Residual ||rm(t)|| (Sensor m faulty) Threshold εm am = 1
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$)!
Input u Actuators uR Process yR Sensors fs Output y Signal Grouping yj = y w/o yj y1 Obs 1 z1 C1 − + r1(t) yj Obs j zj Cj − + rj(t) ym Obs m zm Cm − + rm(t) FDI Logic a1 aj am
GOS Architecture: each residual $r^i(t) \in \mathbb{R}^{m-1}$ uses $m-1$ measurements (all except $y_i$).

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:

$$a_1 = \overline{L(\|r^1\|)} \;\cap\; L(\|r^2\|) \;\cap\; L(\|r^3\|) \;\cap\; \dots \;\cap\; L(\|r^m\|)$$
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!
Realization of GOS Decision by AND Gates L(||r1||) = 0 (||r1|| < ε1) L(||r2||) = 1 (||r2|| ≥ ε2) L(||r3||) = 1 (||r3|| ≥ ε3) L(||rm||) = 1 (||rm|| ≥ εm) NOT 1 AND (∩) a1 = 1 Sensor 1
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):

$$A = \begin{bmatrix} -2 & 1 \\ 0 & -3 \end{bmatrix}, \quad B = \begin{bmatrix} 1 \\ 1 \end{bmatrix}, \quad C = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} = \begin{bmatrix} c_1 \\ c_2 \\ c_3 \end{bmatrix}$$

1 Construction of the 3 GOS sub-models ($C^j \in \mathbb{R}^{2\times 2}$ without row $c_j$):

$$C^1 = \begin{bmatrix} 0 & 1 \\ 1 & 1 \end{bmatrix} \text{ (ignores } y_1\text{)}, \quad C^2 = \begin{bmatrix} 1 & 0 \\ 1 & 1 \end{bmatrix} \text{ (ignores } y_2\text{)}, \quad C^3 = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \text{ (ignores } y_3\text{)}$$

2 Pole 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 = [-2 1; 0 -3]; B = [1; 1]; C = [1 0; 0 1; 1 1]; poles_gos = [-5, -6]; % 2. Sub-matrices C^j (removal of the j-th row) C1 = C([2 3], :); % Uses [y2 ; y3] -> Insensitive to fs1 C2 = C([1 3], :); % Uses [y1 ; y3] -> Insensitive to fs2 C3 = C([1 2], :); % 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$):

Simulink Diagram of the GOS Sensor Isolation Bank (Scenario: Fault on Sensor 2) u(t) State-Space Process (A, B, C, D) y ∈ ℝ3 + fs = [0 ; fs2 ; 0] y(t) Sel [2, 3] State-Space Obs1 (Uses y2, y3) ||r1|| ≥ ε (1) Sel [1, 3] State-Space Obs2 (Uses y1, y3) ||r2|| < ε (0) Sel [1, 2] State-Space Obs3 (Uses y1, y2) ||r3|| ≥ ε (1) AND a2 = 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$)?

$$\text{Disturbed healthy process: } \dot{x}(t) = A\,x(t) + B\,u(t) + E\,d(t)$$ $$\text{Luenberger Observer: } \dot{\hat{x}}(t) = A\,\hat{x}(t) + B\,u(t) + L\big(y(t) - C\,\hat{x}(t)\big)$$ $$\implies \mathbf{\dot{e}_x(t) = (A - L\,C)\,e_x(t) + E\,d(t)} \quad \implies \quad \mathbf{r(t) = C\,e_x(t) \neq 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}$!
Comparison in the Presence of an Unknown Disturbance d(t) (Healthy System: f = 0) 1. STANDARD LUENBERGER OBSERVER: ėx(t) = (A − L·C)·ex(t) + E·d(t) Gain L acts on C·ex, but cannot multiply E·d(t) ⇒ False alarm as soon as d(t) ≠ 0! Threshold ε ||r(t)|| crosses ε (False alarm!) 2. UIO OBSERVER (x̂ = z + N·y): ėx(t) = F·ex(t) + T·E·d(t) with T = I − N·C Thanks to N·y(t), the derivative ẋ(t) is pre-multiplied by T = I − N·C: We choose N such that T·E = 0! Threshold ε ||r(t)|| = 0 despite d(t) ≠ 0 (Zero false alarms)
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$).
Structure of the full-order Unknown Input Observer (UIO): $$\begin{cases} \dot{z}(t) = F\,z(t) + T\,B\,u(t) + G\,y(t) \\ \hat{x}(t) = z(t) + N\,y(t) \end{cases}$$ $$\text{Residual: } \quad r(t) = y(t) - C\,\hat{x}(t)$$

The matrices $F, T, G, N$ are the degrees of freedom to be synthesized to exactly cancel the effect of $d(t)$ on $e_x(t)$.

Internal Architecture of the Unknown Input Observer (UIO) u(t) ẋ = A·x + B·u + E·d(t) + B·fa(t) y = C·x + fs(t) Disturbance E·d(t) Faults fa, fs y(t) UIO Structure: ż = F·z + T·B·u + G·y ; x̂ = z + N·y T·B + ż(t) ∫ z(t) F + G N x̂ C + − r(t)
The direct term $N\,y(t)$ in $\hat{x}(t) = z(t) + N\,y(t)$ provides the algebraic degree of freedom essential to eliminate $E\,d(t)$.

Design of the UIO Observer: Estimation Error Equation

Algebraic Demonstration

Let us express the state estimation error $e_x(t) = x(t) - \hat{x}(t)$ by substituting $\hat{x}(t) = z(t) + N\big(Cx(t) + f_s(t)\big)$:

$$e_x(t) = (I - N\,C)\,x(t) - z(t) - N\,f_s(t) = T\,x(t) - z(t) - N\,f_s(t) \quad \text{with } \mathbf{T = I - N\,C}$$

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)$$
Mechanism for Canceling Undesired Terms in ėx(t) Term dependent on the unknown state x(t): (T·A − G·C − F·T)·x(t) = 0 ⇔ F = T·A − K·C Term dependent on the unknown input d(t): T·E·d(t) = (I − N·C)·E·d(t) = 0 (Exact decoupling!) If all eigenvalues of F are stable: - Fault-free case (fa = 0, fs = 0): lim ||r(t)|| = 0 (< Threshold) - Faulty case (fa ≠ 0 or fs ≠ 0): lim ||r(t)|| ≥ Threshold
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 1 Verify the unknown input decoupling condition:

$$\text{rank}(C\,E) = \text{rank}(E) = \dim(d) = q$$

Step 2 Calculate 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 3 Solve 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$.

UIO Observer Design Flowchart 1. Rank Test: rank(C·E) = rank(E) = q? NO YES 2. Calculation of the Pseudo-Inverse and T: N = E·[(C·E)T(C·E)]−1(C·E)T ; T = I − N·C 3. Pair (T·A, C) detectable? 4. Pole placement: F = T·A − K·C stable ⇒ G = K + F·N
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:

$$\begin{cases} \dot{e}_x(t) = F\,e_x(t) + T\,B\,f_a(t) - K\,f_s(t) - N\,\dot{f}_s(t) \\ r(t) = C\,e_x(t) + f_s(t) \end{cases}$$

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 Projection by Operator T (Kernel Ker(T) = Im(E)) Projected subspace Im(T) (Visible by the residual r) 0 Subspace Im(E) = Ker(T) T·E·d(t) = 0 (Canceled) Actuator direction bi ∉ Im(E) Operator T Projection T·bi ≠ 0 Necessary and sufficient condition: bi must not belong to Im(E) Otherwise T·bi = 0 and the actuator fault fai(t) becomes undetectable!
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]$.
Bank of Unknown Input Observers (UIO) for Robust Isolation Process: ẋ = A·x + B·u + E·d(t) + B·fa(t) Measurements: y = C·x + fs(t) u(t) y(t) UIO 1: Decouples d(t) and f1 (Insensitive to d(t) and f1, sensitive to f2..fm) UIO j: Decouples d(t) and fj (Insensitive to d(t) and fj, sensitive to fk≠j) UIO m: Decouples d(t) and fm (Insensitive to d(t) and fm, sensitive to f1..fm−1) r1(t) rj(t) rm(t) Robust Isolation Logic (GOS Table)
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
Control Engineer's Decision Tree for FDI Observer Selection Presence of strong unknown disturbances E·d(t)? YES UIO Observer Bank Synthesis: T·E = 0 and F = T·A − K·C NO (A, Ci) observable ∀i ⇒ DOS Scheme Else (1 fault at a time) ⇒ GOS Scheme Isolation & Decision Threshold Logic ||rj|| ≥ εj
Engineering Cycle Year 3 • Module AU-513 • Grenoble INP - Esisar

Robust Sensor and Actuator Isolation Schemes Based on UIOs

Sequence 3: Generalized Observer Banks (GOS-UIO), Rank Conditions & Simultaneous Faults

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:

  1. Robust isolation principle: From a single UIO detector to a structured bank.
  2. Sensor fault isolation: Bank of $m$ UIOs on $y^j \in \mathbb{R}^{m-1}$ and Rao-Mitra theorem.
  3. Actuator fault isolation: Bank of $r$ UIOs via the augmented input $E^i d^i(t)$.
  4. Simultaneous faults & Numerical study: Transition to DOS and explicit calculation of $N^1, T^1$.
Methodological Duality: Robust Isolation of Sensors vs. Actuators Disturbed System: ẋ(t) = A·x(t) + B·u(t) + E·d(t) + B·fa(t) Measurement Equation: y(t) = C·x(t) + fs(t) PART 1: SENSOR FAULTS Healthy actuators (fa = 0) Deletion of the j-th output yj: yj = Cj·x + fsj ∈ ℝm−1 Condition: rank(Cj·E) = rank(E) = q Bank of m UIO observers (j = 1..m) PART 2: ACTUATOR FAULTS Healthy sensors (fs = 0) Augmentation of the unknown input: Ei = [E bi] ; di = [dT ui+fai]T Condition: rank(C·Ei) = dim(d) + 1 Bank of r UIO observers (i = 1..r) Common Isolation Logic (GOS): The k-th fault is isolated when ||rk(t)|| < εk while all other residuals verify ||rl(t)|| ≥ εl (l ≠ k)
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:

Roadmap of the 5 Sequences of the AU-513 Module SEQUENCE 1 Fault Diagnosis (FDI) Fundamentals, Fault Modeling & Residual Structure IFAC nomenclature, sensor/actuator/component faults, frequency constraints, 3σ statistical thresholds. COMPLETED SEQUENCE 2 Observer-Based Approaches, DOS / GOS Architectures & UIO Synthesis Luenberger Observer, BFDF filter, dedicated (DOS) and generalized (GOS) banks, disturbance decoupling (UIO). COMPLETED SEQUENCE 3 Robust Sensor and Actuator Isolation Schemes Based on UIO Banks Row deletion Cj (sensors), augmentation Ei = [E bi] (actuators), Rao-Mitra and Hautus rank conditions. IN PROGRESS SEQUENCE 4 Parity Relations Approach (Static & Dynamic Parity Space) Orthogonal projection V·C = 0, optimal decoupling via Rayleigh quotient, sliding horizon [k−s, k] (V·W = 0). SEQUENCE 5 Fault Detection via Parametric Estimation (Least Squares LS & RLS) Multiplicative faults Δai, Δbj, RLS recursive algorithm (inversion lemma), physical identification p̂ = f−1(Θ̂).
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$):

$$\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)$$

1. Why is a single UIO not enough for isolation?

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$!

Principle of Selective Blindness in a UIO Observer Bank A. SINGLE UIO OBSERVER (Detects the fault, but confuses all sources) Possible faults: f1 or f2 or … or fm (+ Disturbance d) Single UIO Decouples d(t) only ||r(t)|| ≥ ε Which one? B. STRUCTURED GOS-UIO BANK (Each UIO k ignores the disturbance d(t) AND the fault fk) Real scenario: Fault f2 active (and d(t) ≠ 0) UIO 1 (Blind to d and f1) ||r1|| ≥ ε1 (1) UIO 2 (Blind to d and f2) ||r2|| < ε2 (0) ! UIO m (Blind to d and fm) ||rm|| ≥ εm (1)
The only residual that remains zero unambiguously identifies the corresponding fault.

Robust Sensor Fault Isolation: Measurement Partitioning

Partitioning the C Matrix

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:

$$\begin{cases} \dot{x}(t) = A\,x(t) + B\,u(t) + E\,d(t) \\[4pt] y^j(t) = C^j\,x(t) + f_s^j(t) \in \mathbb{R}^{m-1} \\[4pt] y_j(t) = c_j\,x(t) + f_{sj}(t) \in \mathbb{R} \end{cases} \quad \text{for } j = 1, 2, \dots, m$$
  • $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)$!
Geometric Extraction of Sub-Matrix Cj and Vector yj Matrix C ∈ ℝm×n Rows c1 to cj−1 (Kept) Row cj ∈ ℝ1×n (Deleted) Rows cj+1 to cm (Kept) Reduction Sub-Model for UIO j: Cj ∈ ℝ(m−1)×n (w/o row cj) yj(t) = Cj·x(t) + fsj(t) ∈ ℝm−1 Consequence on faults: fsj(t) does not appear in yj(t)! This operation is repeated for each sensor j = 1, 2, …, m.
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$):

$$\begin{cases} \dot{z}^j(t) = F^j\,z^j(t) + T^j B\,u(t) + G^j\,y^j(t) \\[4pt] \hat{x}^j(t) = z^j(t) + N^j\,y^j(t) \\[4pt] r^j(t) = y^j(t) - C^j\,\hat{x}^j(t) = \big(I_{m-1} - C^j N^j\big)\,y^j(t) - C^j\,z^j(t) \in \mathbb{R}^{m-1} \end{cases}$$

For each observer $j$ to be an Unknown Input Observer (UIO) decoupling $E\,d(t)$, its parameter matrices must satisfy:

$$\begin{aligned} \mathbf{1)} \quad & N^j = E\,(C^j E)^+ = E\,\Big[(C^j E)^T(C^j E)\Big]^{-1}(C^j E)^T \\[3pt] \mathbf{2)} \quad & T^j = I_n - N^j C^j \quad \big(\text{guarantees } T^j E = 0\big) \\[3pt] \mathbf{3)} \quad & F^j = T^j A - K^j C^j \quad \big(\text{stabilized by the choice of } K^j\big) \\[3pt] \mathbf{4)} \quad & G^j = K^j + F^j N^j \end{aligned}$$
Detailed Internal Structure of the j-th UIO Residual Generator j u(t) Tj · B + żj(t) ∫ zj(t) Fj Cj yj(t) ∈ ℝm−1 Gj I − Cj·Nj + − rj(t) Direct expression of the residual without explicitly reconstructing x̂j(t): rj(t) = (I − Cj·Nj)·yj(t) − Cj·zj(t) ∈ ℝm−1
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:

$$\begin{cases} \big\|r^j(t)\big\| < \varepsilon^j & (\text{Residual } j \text{ remains below its threshold}) \\[6pt] \big\|r^k(t)\big\| \ge \varepsilon^k & \forall k \in \{1, \dots, j-1, j+1, \dots, m\} \end{cases}$$ where $\varepsilon^j > 0$ ($j = 1, 2, \dots, m$) denote the isolation thresholds.

Physical explanation of the mechanism:

  • 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$!
Input u Actuators uR Process E·d(t) yR Sensors fs Output y Signal Grouping (y → y1..ym) y1 UIO 1 z1 C1 (I − C1·N1) − + r1(t) yj UIO j zj Cj (I − Cj·Nj) − + rj(t) ym UIO m zm Cm (I − Cm·Nm) − + rm(t) FDI Logic a1 aj am
Complete robust sensor fault isolation architecture: each residual $r^i(t) \in \mathbb{R}^{m-1}$ ($i = 1 \dots m$).

Sensor Fault Isolability Analysis (Robust GOS)

Signature Table & Alarm Equation

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:

$$a_1 = \overline{L(\|r^1\|)} \;\cap\; L(\|r^2\|) \;\cap\; L(\|r^3\|) \;\cap\; \dots \;\cap\; L(\|r^m\|)$$ $$a_j = L(\|r^1\|) \;\cap\; \dots \;\cap\; \overline{L(\|r^j\|)} \;\cap\; \dots \;\cap\; L(\|r^m\|)$$
Timing Diagram for Isolation of a Fault on Sensor j in the Presence of d(t) Unknown input d(t) (Active from t = 0: rejected by all UIOs) Residual ||r1(t)|| (Uses yj ⇒ Sensitive to fsj) → L(||r1||) = 1 Threshold ε1 Residual ||rj(t)|| (Does not use yj ⇒ Insensitive to fsj) → L(||rj||) = 0 Threshold εj Residual ||rm(t)|| (Uses yj ⇒ Sensitive to fsj) → L(||rm||) = 1 Threshold εm Appearance of sensor fault fsj at t = tf
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)}$.
Dimensional Constraint Induced by Rank Condition c1 Nj n × (m − 1) × Cj · E (m − 1) × q = E n × q rank(E) = q Fundamental consequence on system instrumentation: For rank(Cj·E) = q with Cj·E ∈ ℝ(m−1)×q, it is mandatory that: m − 1 ≥ q ⇔ m ≥ dim(d) + 1
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}$!

Difference in Physical Propagation: Sensor Fault vs. Actuator Fault 1. SENSOR FAULT fsj(t): Affects only a single output line yj(t) Healthy state x(t) ẋ = A·x + B·u + E·d y1 = c1·x (Healthy) yj = cj·x + fsj (Ignored by UIO j) ym = cm·x (Healthy) 2. ACTUATOR FAULT bi·fai(t): Contaminates x(t) and ALL measurements y(t) = C·x(t)! bi·fai Contaminated state x(t) ẋ = A·x + B·u + bi·fai y1 affected yj affected ym affected Solution for UIO i: Set Ei = [E bi] ⇒ Ti·E = 0 and Ti·bi = 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$):

$$\begin{aligned} \dot{x}(t) &= A\,x(t) + B^i u^i(t) + B^i f_a^i(t) + b_i\big(u_i(t) + f_{ai}(t)\big) + E\,d(t) \\ &= A\,x(t) + B^i u^i(t) + B^i f_a^i(t) + E^i\,d^i(t) \\ y(t) &= C\,x(t) \end{aligned}$$
  • $b_i \in \mathbb{R}^n$ is the $i$th column of $B$, and $B^i \in \mathbb{R}^{n \times (r-1)}$ is obtained by deleting column $b_i$ from $B$.
  • $u_i(t)$ is the $i$th component of $u(t)$, and $u^i(t) \in \mathbb{R}^{r-1}$ is obtained by deleting $u_i(t)$ from $u(t)$.
  • Fundamental trick: We merge the path of actuator $i$ with the vector of unknown disturbances $d(t)$ by defining:
$$E^i = \begin{bmatrix} E & b_i \end{bmatrix} \in \mathbb{R}^{n \times (q+1)}, \qquad d^i(t) = \begin{bmatrix} d(t) \\ u_i(t) + f_{ai}(t) \end{bmatrix} \in \mathbb{R}^{q+1}$$
Principle of Augmenting the Unknown Input Vector di(t) Separation of the i-th action channel: B·(u + fa) = Bi·(ui + fai) + bi·(ui + fai) Bi ∈ ℝn×(r−1) and ui ∈ ℝr−1 (Known) Initial External Disturbance: E · d(t) E ∈ ℝn×q and d(t) ∈ ℝq (Unknown) Merge bi·(ui + fai) with E·d(t) New Augmented Unknown Input for UIO Observer i: Ei · di(t) = [ E bi ] · [ d(t)T (ui(t) + fai(t)) ]T By decoupling Ei, UIO i becomes insensitive to both d(t) AND the fault fai(t)!
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$):

$$\begin{cases} \dot{z}^i(t) = F^i\,z^i(t) + T^i B^i\,u^i(t) + G^i\,y(t) \\[4pt] \hat{x}^i(t) = z^i(t) + N^i\,y(t) \\[4pt] r^i(t) = y(t) - C\,\hat{x}^i(t) = \big(I_m - C\,N^i\big)\,y(t) - C\,z^i(t) \in \mathbb{R}^m \end{cases}$$

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}$$
Internal Structure of the i-th UIO Generator (Decoupling of Actuator i) ui(t) ∈ ℝr−1 Ti · Bi + żi(t) ∫ zi(t) Fi C y(t) ∈ ℝm Gi I − C·Ni + − ri(t) Fundamental difference with the sensor case: Here, y(t) ∈ ℝm and C are complete, but the input ui(t) ∈ ℝr−1 is missing ui(t)!
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:

$$\dot{e}_x^k(t) = F^k\,e_x^k(t) + T^k B^k\,f_a^k(t), \qquad r^k(t) = C\,e_x^k(t) \in \mathbb{R}^m$$

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!
Input u Actuators fu uR Process E·d(t) yR Sensors Output y Input Grouping (u → u1..ur) u1 UIO 1 z1 C (I − C·N1) − + r1(t) ui UIO i zi C (I − C·Ni) − + ri(t) ur UIO r zr C (I − C·Nr) − + rr(t) FDI Logic a1 ai ar
Complete robust actuator fault isolation architecture: each residual $r^i(t) \in \mathbb{R}^m$ ($i = 1 \dots r$).

Actuator Fault Isolability Analysis (Robust GOS)

Actuator Signature Table

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:

$$a_1 = \overline{L(\|r^1\|)} \;\cap\; L(\|r^2\|) \;\cap\; L(\|r^3\|) \;\cap\; \dots \;\cap\; L(\|r^r\|)$$
Selective Decoupling Mechanism of Direction bi by Ti Scenario: Fault on Actuator 1 (fu1 ≠ 0) and Disturbance d(t) ≠ 0 Disturbing signal injected into the process: E·d(t) + b1·fu1(t) Observer UIO 1 T1·E = 0 AND T1·b1 = 0 ⇒ ||r1(t)|| < ε1 L(||r1||) = 0 Observer UIO 2 T2·E = 0 BUT T2·b1 ≠ 0 ⇒ ||r2(t)|| ≥ ε2 L(||r2||) = 1 Observer UIO r Tr·E = 0 BUT Tr·b1 ≠ 0 ⇒ ||rr(t)|| ≥ εr L(||rr||) = 1 Unique signature [0, 1, …, 1] ⇒ Actuator 1 Alarm triggered (a1 = 1)
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_1$ (Decoupling condition of $E^i = [E \;\; b_i]$): $$\text{rank}\begin{pmatrix} C\,E^i \\ E^i \end{pmatrix} = \text{rank}(C\,E^i) = \text{rank}\big(C\,[E \quad b_i]\big) = \dim(d) + 1$$
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:
  1. The number of sensors $m$ must satisfy $\mathbf{m \ge \dim(d) + 1}$ (because $C E^i \in \mathbb{R}^{m \times (q+1)}$).
  2. The column $b_i$ of actuator $i$ must not be collinear with $E$.
  3. 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$.
Verification of Dimensions for the Augmented Matrix C·Ei C m × n × Ei ∈ ℝn×(q+1) E (n × q) bi (n×1) = C · [E bi] m × (q + 1) Full rank = q + 1 Summary of Rank Conditions for each UIO Observer i: 1) Decoupling condition c1: rank(C·[E bi]) = dim(d) + 1 ⇒ m ≥ dim(d) + 1 2) Detectability condition c2: rank([p·In − Ti·A ; C]) = n ∀ Re(p) ≥ 0
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.
Modification of UIO Decoupling to Isolate Simultaneous Faults (DOS) Problem of the GOS Scheme when facing 2 Simultaneous Faults (e.g., f1 ≠ 0 and f2 ≠ 0): • Signature of f1 alone: [0, 1, 1, …, 1] | Signature of f2 alone: [1, 0, 1, …, 1] • Combined signature (f1 AND f2 simultaneous): [1, 1, 1, …, 1] ⇒ All residuals at 1! Detection successful, but isolation impossible with a standard GOS table. Solution: Grouping of the other faults into Ei (DOS) Principle of the Robust Dedicated Scheme (DOS) Based on UIOs: For UIO observer i, ALL actuators except bi are placed in the unknown input: EDOSi = [ E Bi ] ∈ ℝn×(q+r−1) ⇒ Ti·E = 0 and Ti·Bi = 0 (but Ti·bi ≠ 0) Result: ri(t) is sensitive ONLY to fui (Diagonal matrix Ir), requiring m ≥ q + r − 1.
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)$:

$$C = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}, \quad E = \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix}, \quad b_1 = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}, \quad b_2 = \begin{bmatrix} 2 \\ 2 \\ 0 \end{bmatrix}$$

Question 1 Can the 3 sensor faults be isolated by a GOS bank of 3 UIOs?

We test $\text{rank}(C^j E) = \dim(d) = 1$ for $j = 1, 2, 3$:
• $j=1$ (we remove row 1): $C^1 E = \begin{bmatrix} 1 \\ 0 \end{bmatrix} \implies \text{rank}(C^1 E) = 1$.
• $j=2$ (we remove row 2): $C^2 E = \begin{bmatrix} 1 \\ 0 \end{bmatrix} \implies \text{rank}(C^2 E) = 1$.
• $j=3$ (we remove row 3): $C^3 E = \begin{bmatrix} 1 \\ 1 \end{bmatrix} \implies \text{rank}(C^3 E) = 1$.
Conclusion: YES, condition $c_1$ is satisfied for all 3 sensors!

Question 2 Can the 2 actuator faults ($b_1$ and $b_2$) be isolated?

We test $\text{rank}(C[E \;\; b_i]) = \dim(d) + 1 = 2$:
• Actuator 1: $\text{rank}\begin{bmatrix} 1 & 1 \\ 1 & 0 \\ 0 & 0 \end{bmatrix} = 2 \implies$ UIO 1 exists.
• Actuator 2: $b_2 = 2 E \implies \text{rank}\begin{bmatrix} 1 & 2 \\ 1 & 2 \\ 0 & 0 \end{bmatrix} = 1 \neq 2 \implies$ Impossible!
Geometric Interpretation in ℝ3 of the Numerical Example x1 x3 x2 b1 = [1, 0, 0]T (Independent of E) E = [1, 1, 0]T b2 = [2, 2, 0]T = 2·E (Collinear with the disturbance!) Why can't b2 be isolated from d(t)? Because b2 = 2·E: any observer that decouples E (T·E = 0) satisfies T·b2 = 2·T·E = 0!
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$:

$$E^1 = \begin{bmatrix} E & b_1 \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 1 & 0 \\ 0 & 0 \end{bmatrix} \in \mathbb{R}^{3 \times 2}, \qquad C = I_3 \implies C\,E^1 = E^1$$

Step 1 Calculation of the left pseudo-inverse $(C E^1)^+ = [(E^1)^T E^1]^{-1}(E^1)^T$:

$$(E^1)^T E^1 = \begin{bmatrix} 1 & 1 & 0 \\ 1 & 0 & 0 \end{bmatrix} \begin{bmatrix} 1 & 1 \\ 1 & 0 \\ 0 & 0 \end{bmatrix} = \begin{bmatrix} 2 & 1 \\ 1 & 1 \end{bmatrix} \implies \big[(E^1)^T E^1\big]^{-1} = \begin{bmatrix} 1 & -1 \\ -1 & 2 \end{bmatrix}$$ $$(C E^1)^+ = \begin{bmatrix} 1 & -1 \\ -1 & 2 \end{bmatrix} \begin{bmatrix} 1 & 1 & 0 \\ 1 & 0 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 \\ 1 & -1 & 0 \end{bmatrix}$$

Step 2 Deduction of $N^1 = E^1 (C E^1)^+$ and the projector $T^1 = I_3 - N^1 C$:

$$N^1 = \begin{bmatrix} 1 & 1 \\ 1 & 0 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} 0 & 1 & 0 \\ 1 & -1 & 0 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix} \implies \mathbf{T^1 = I_3 - N^1 = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix}}$$
Algebraic Verification of the Action of Projector T1 Physical Interpretation of the Obtained Projector T1 = diag(0, 0, 1): T1 cancels the first two state components (plane x1, x2) and keeps only the 3rd component x3! 1. Action on E: T1 · E = [0, 0, 0]T Disturbance d(t) totally rejected! 2. Action on b1: T1 · b1 = [0, 0, 0]T Actuator 1 decoupled as desired! 3. Action on b2: T1 · b2 = [0, 0, 0]T If b2 = [2, 2, 0]T, b2 is also canceled! Reconfiguration for the rest of the example (Slide 18): By replacing the 2nd actuator with b̃2 = [0, 0, 1]T, we get T1·b̃2 = [0, 0, 1]T ≠ 0 and rank(C·[E b1 b̃2]) = 3: the two actuators become perfectly isolable!
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:

$$A = \begin{bmatrix} -2 & 1 & 0 \\ 0 & -3 & 1 \\ 1 & 0 & -1 \end{bmatrix}, \quad T^1 = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} \implies T^1 A = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 1 & 0 & -1 \end{bmatrix}$$

Step 3 Hautus 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$:

$$K^1 = \begin{bmatrix} 4 & 0 & 0 \\ 0 & 4 & 0 \\ 1 & 0 & 3 \end{bmatrix} \implies F^1 = T^1 A - K^1 I_3 = \begin{bmatrix} -4 & 0 & 0 \\ 0 & -4 & 0 \\ 0 & 0 & -4 \end{bmatrix} = -4\,I_3$$

Step 4 Calculation of gain $G^1 = K^1 + F^1 N^1$ and input matrix $T^1 B^1$:

$$G^1 = \begin{bmatrix} 4 & 0 & 0 \\ 0 & 4 & 0 \\ 1 & 0 & 3 \end{bmatrix} + (-4 I_3)\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 1 & 0 & 3 \end{bmatrix}, \quad T^1 \tilde{b}_2 = \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}$$
Deduction of the Scalar Differential Equation for Observer UIO 1 1. Internal dynamics of z1(t) = [z1,1 , z1,2 , z1,3]T: ż1,1 = −4·z1,1 (→ 0) ; ż1,2 = −4·z1,2 (→ 0) ż1,3(t) = −4·z1,3(t) + u2(t) + y1(t) + 3·y3(t) 2. Residual vector r1(t) = (I3 − C·N1)·y(t) − C·z1(t): Since I3 − N1 = T1 = diag(0, 0, 1), after extinction of initial conditions: r1(t) = [ 0 , 0 , y3(t) − z1,3(t) ]T 3. Transfer function of the useful residual r1,3(p) in the Laplace domain: r1,3(p) = 0 · d(p) + 0 · fa1(p) + [ 1 / (p + 4) ] · fa2(p)
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)]$:

$$\dot{z}^j(t) = F^j\,z^j(t) + \begin{bmatrix} T^j B & G^j \end{bmatrix} \begin{bmatrix} u(t) \\ y^j(t) \end{bmatrix}, \quad y_{obs}^j(t) = C^j\,z^j(t)$$
% MATLAB initialization script (UIO 1 Actuator)
A = [-2 1 0; 0 -3 1; 1 0 -1]; C = eye(3);
E = [1; 1; 0]; b1 = [1; 0; 0]; b2 = [0; 0; 1];
E1 = [E, b1]; B1 = b2; % u2 channel kept
N1 = E1 * pinv(C * E1);
T1 = eye(3) - N1 * C;
K1 = place((T1*A)', C', [-4 -4.1 -4.2])';
F1 = T1*A - K1*C; G1 = K1 + F1*N1;
% Matrices for the Simulink State-Space block:
A_sim = F1; B_sim = [T1*B1, G1];
C_sim = C; D_sim = zeros(3, 1 + 3);
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]!
Simulink Block Diagram of a UIO Isolation Channel j (With Threshold Evaluation) 1 : u(t) 2 : y(t) Selector Idx: [1..j-1,j+1..m] → yj(t) Mux State-Space (UIO j) ẋ = Fj·zj + [TjB Gj]·umux yobs = Cj·zj + [0 0]·umux Output: Cj·zj(t) I − Cj·Nj Matrix Gain (K*u) − + rj(t) Norm & Threshold ||u||₂ ≥ εj Out : L(||rj||) The m (or r) Boolean outputs L(||rk||) feed a Simulink "Logic Operator (AND / NOT)" block realizing Table 1.
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]$
Calculation of $N$ and $T$ $N^j = E(C^j E)^+$ and $T^j = I_n - N^j C^j$ $N^i = E^i(C E^i)^+$ and $T^i = I_n - N^i C$
Residual equation $r^j(t) = (I_{m-1} - C^j N^j)y^j(t) - C^j z^j(t) \in \mathbb{R}^{m-1}$ $r^i(t) = (I_m - C N^i)y(t) - C z^i(t) \in \mathbb{R}^m$
Decoupling condition ($c_1$) $\text{rank}\begin{pmatrix} C^j E \\ E \end{pmatrix} = \text{rank}(C^j E) = \dim(d)$ $\text{rank}\begin{pmatrix} C E^i \\ E^i \end{pmatrix} = \text{rank}\big(C[E \;\; b_i]\big) = \dim(d) + 1$
Detectability condition ($c_2$) $\text{rank}\begin{pmatrix} pI_n - T^j A \\ C^j \end{pmatrix} = n, \;\; \forall \text{Re}(p) \ge 0$ $\text{rank}\begin{pmatrix} pI_n - T^i A \\ C \end{pmatrix} = n, \;\; \forall \text{Re}(p) \ge 0$
GOS Decision Logic $\|r^j\| < \varepsilon^j$ and $\|r^k\| \ge \varepsilon^k$ ($\forall k \neq j$) $\implies a_j = 1$ $\|r^i\| < \varepsilon^i$ and $\|r^k\| \ge \varepsilon^k$ ($\forall k \neq i$) $\implies a_i = 1$
Step 1: Verify m ≥ dim(d) + 1 Test rank conditions c1 and c2 for each channel j = 1..m or i = 1..r Step 2: Synthesis of the UIO Bank Calculate N, T, place the poles of F via K and deduce G = K + F·N Step 3: Real-Time Decision Evaluate L(||rk(t)||) against εk and apply the GOS Boolean table
Engineering Cycle Year 3 • Module AU-513 • Grenoble INP - Esisar

Parity Relations Approach (Parity Space) for Diagnosis

Sequence 4: Spatial Redundancy, Temporal Redundancy & Optimal Decoupling

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:

  1. Observer vs. Parity Comparison: Recursive IIR Filter vs. Finite memory FIR Filter.
  2. Static systems: Direct redundancy ($m \ge n$), projection $V C = 0$ and signatures.
  3. Optimal isolation: Approximate decoupling and generalized eigenvalues (Rayleigh).
  4. Dynamic systems & MATLAB/Simulink: Sliding horizon $[k-s, k]$ and full simulation.
The 3 Main Families of Model-Based Residual Generation 1. OBSERVER-BASED APPROACHES (Sequences 2 & 3) Recursive closed-loop filters (Luenberger, Kalman Filter, UIO) Explicit state reconstruction: r(t) = y(t) − C·x̂(t) SEQUENCE 4 2. PARITY RELATIONS (PARITY SPACE) Spatial Redundancy (Static) m > n sensors at instant k rk = V·yk with V·C = 0 Temporal Redundancy (Dynamic) Sliding window [k − s, k] rk = V·(Yk − H·Uk), V·W = 0 3. DETECTION VIA PARAMETRIC ESTIMATION (Sequence 5) Online identification of physical parameters θ̂(t) (Recursive Least Squares) Comparison to nominal model: Δθ(t) = θ̂(t) − θ0
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):

Roadmap of the 5 Sequences of the AU-513 Module SEQUENCE 1 Fault Diagnosis (FDI) Fundamentals, Fault Modeling & Residual Structure IFAC nomenclature, sensor/actuator/component faults, frequency constraints, 3σ statistical thresholds. COMPLETED SEQUENCE 2 Observer-Based Approaches, DOS / GOS Architectures & UIO Synthesis Luenberger Observer, BFDF filter, dedicated (DOS) and generalized (GOS) banks, disturbance decoupling (UIO). COMPLETED SEQUENCE 3 Robust Sensor and Actuator Isolation Schemes Based on UIO Banks Row deletion Cj (sensors), augmentation Ei = [E bi] (actuators), Rao-Mitra and Hautus rank conditions. COMPLETED SEQUENCE 4 Parity Relations Approach (Static & Dynamic Parity Space) Orthogonal projection V·C = 0, optimal decoupling via Rayleigh quotient, sliding horizon [k−s, k] (V·W = 0) & Simulink. IN PROGRESS SEQUENCE 5 Fault Detection via Parametric Estimation (Least Squares LS & RLS) Multiplicative faults Δai, Δbj, RLS recursive algorithm (inversion lemma), physical identification p̂ = f−1(Θ̂).
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.

2. Parity Space: Non-Recursive Filter (FIR — Finite Memory)

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$.

Architectural Comparison: Recursive Observer (IIR) vs Parity (FIR) A. OBSERVER APPROACH (Recursive IIR Filter — Dynamic Closed Loop) uk , yk Internal Recursive Dynamics x̂k+1 = (A − L·C)·x̂k + B·uk + L·yk State feedback x̂k (Requires A − L·C stable) Infinite Memory Exponential transient B. PARITY SPACE APPROACH (Non-Recursive FIR Filter — Finite Sliding Window) Uk , Yk Direct Linear Combination rk = V · (Yk − H · Uk) with V·W = 0 No feedback loop (Always stable!) Finite Memory (s + 1 steps) Independent of xk−s for k ≥ s
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$.
Visual Comparison of the Two Measurement Configurations CASE 1: m < n (No direct redundancy) yk = C (m × n) xk Underdetermined system at instant k Solution: Collect y over a time window [k − s, k] CASE 2: m > n (Direct spatial redundancy) yk = C (m × n) xk Overdetermined system at instant k There are m − n independent relations Left null space: V·C = 0
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$):

$$Y(k-s : k) = \begin{bmatrix} y_{k-s} \\ y_{k-s+1} \\ \vdots \\ y_k \end{bmatrix} \in \mathbb{R}^{(s+1)m}$$
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.
Collection of Measurements over a Sliding Window of Order s Active data window: (s + 1) consecutive instants Discrete time k−s−1 k − s yk−s k − s + 1 yk−s+1 · · · k − 1 yk−1 k (Present) yk Stacked Observation Vector Y(k − s : k) ∈ ℝ(s+1)m Each sample brings m additional scalar equations. Condition for eliminating state xk−s ∈ ℝn: (s + 1)·m > n (In practice, the Cayley-Hamilton theorem bounds the useful order to s ≤ n)
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:

$$Y = \begin{bmatrix} y_1 \\ y_2 \\ y_3 \\ y_4 \end{bmatrix} = \begin{bmatrix} 1 & 2 \\ 1 & 0 \\ \hline 1 & 1 \\ 2 & 0 \end{bmatrix} X \iff \begin{cases} Y_1 = C_1\,X \\ Y_2 = C_2\,X \end{cases}$$ with the regular (invertible) block $C_1 = \begin{pmatrix} 1 & 2 \\ 1 & 0 \end{pmatrix}$ and $C_2 = \begin{pmatrix} 1 & 1 \\ 2 & 0 \end{pmatrix}$.

1 Elimination of $X$: Since $C_1$ is invertible, $X = C_1^{-1} Y_1$, which we substitute into $Y_2 = C_2 X = C_2 C_1^{-1} Y_1$:

$$\begin{pmatrix} -C_2 C_1^{-1} & I_2 \end{pmatrix} \begin{pmatrix} Y_1 \\ Y_2 \end{pmatrix} = 0 \iff \begin{cases} r_1 = 0.5\,y_1 + 0.5\,y_2 - y_3 = 0 \\ r_2 = 2\,y_2 - y_4 = 0 \end{cases}$$

2 3rd relation (by eliminating $y_2$): $r_3 = r_1 - 0.25\,r_2 = 0.5\,y_1 - y_3 + 0.25\,y_4 = 0$.

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!
Matrix Partitioning and Signature Table for Example 1 Details of the Analytical Calculation of Parity Matrix P = [ −C2·C1−1 I2 ] : C1 = [1 2 ; 1 0] ⇒ det(C1) = −2 ⇒ C1−1 = [0 1 ; 0.5 −0.5] C2·C1−1 = [1 1 ; 2 0] · [0 1 ; 0.5 −0.5] = [0.5 0.5 ; 0 2] Hence: y3 = 0.5·y1 + 0.5·y2 and y4 = 2·y2 (so y3 = 0.5·y1 + 0.25·y4) Sensitivity Table of the 3 Parity Relations to the 4 Sensors: Parity Relation Fault y1 Fault y2 Fault y3 Fault y4 r1 = 0.5y1 + 0.5y2 − y3 ≠ 0 (1) ≠ 0 (1) ≠ 0 (1) = 0 (0) r2 = 2y2 − y4 = 0 (0) ≠ 0 (1) = 0 (0) ≠ 0 (1) r3 = 0.5y1 − y3 + 0.25y4 ≠ 0 (1) = 0 (0) ≠ 0 (1) ≠ 0 (1)
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$:

$$r_k = V\,y_k = V\,(C\,x_k + f_k) = (V\,C)\,x_k + V\,f_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).
Geometric Interpretation in ℝm and Directional Signatures vi State subspace Im(C) (dim = n) Parity Space (dim = m − n) V·C·xk = 0 (State eliminated) C·xk Fault fk yk rk = V·fk Principle of Directional Localization in Parity Space: Matrix V = [ v1 v2 … vm ] ∈ ℝ(m−n)×m If only sensor i has failed (fi(k) ≠ 0), then rk = vi·fi(k) is collinear to vi!
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):

$$y_k = C\,x_k + \epsilon_k + F\,d_k \iff y_k = \begin{bmatrix} C & F^- \end{bmatrix} \begin{pmatrix} x_k \\ d_k^- \end{pmatrix} + \epsilon_k + F^+\,d_k^+$$

1 Ideal solution (Exact decoupling): Find a row vector $\Omega \in \mathbb{R}^{1 \times m}$ such that $P_k = \Omega\,y_k = \Omega\,F^+\,d_k^+ + \Omega\,\epsilon_k$, i.e.:

$$\Omega\,\begin{bmatrix} C & F^- \end{bmatrix} = 0 \qquad \text{and} \qquad \Omega\,F^+ \neq 0$$

2 Optimal 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:

$$\min_{\Omega} \big\|\Omega\,\begin{bmatrix} C & F^- \end{bmatrix}\big\| \qquad \text{and} \qquad \max_{\Omega} \big\|\Omega\,F^+\big\|$$
Numerical Application of Example 3 (m = 5 sensors, n = 2 states) Numerical data of the system with m = 5 measurements: Matrix C (5 × 2) [ 12 1 ; 10 2 ; 1 11 ; 10 1 ; 20 2 ] To decouple: Ω·C = 0 Matrix F− (5 × 2) [ 1 2 ; 0 0 ; 2 5 ; 0 1 ; 0 0 ] To reject (d− undetectable) Vector F+ (5 × 1) [ 1 ; 0 ; 3 ; 1 ; 1 ]T To maximize (d+ detected) Case A: rank([C F−]) < m Here [C F−] is 5 × 4 (rank 4 < 5). There exists 1 exact vector Ω ∈ ℝ1×5 satisfying Ω·[C F−] = 0! Case B: rank([C F−]) = m If F− has ≥ 3 columns, Ω·[C F−] = 0 yields Ω = 0. ⇒ min / max optimization required!
As soon as the total number of variables to decouple $(n + p - 1)$ equals or exceeds $m$, we switch from exact decoupling to optimal decoupling.

Robust Isolation: Multi-Objective Optimization Formulation

Sensitivity / Robustness Ratio

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^+$!
Principle of the Multi-Objective Compromise: Minimize the Quotient J(Ω) NUMERATOR J1(Ω): Energy of undesired terms (TO BE MINIMIZED) || Ω · [ C F− ] ||2 (or || Ω · F− ||2 under the constraint Ω · C = 0) QUOTIENT J(Ω) DENOMINATOR J2(Ω): Energy of the fault to isolate (TO BE MAXIMIZED) || Ω · F+ ||2 Minimizing J(Ω) simultaneously maximizes the Signal-to-Interference ratio!
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:

$$\begin{cases} \Omega\,C = 0 \\ \displaystyle \min_{\Omega} \frac{\|\Omega\,F^-\|^2}{\|\Omega\,F^+\|^2} \end{cases}$$

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}$:

$$\Omega\,C = 0 \iff \begin{pmatrix} \Omega_1^T & \Omega_2^T \end{pmatrix} \begin{pmatrix} C_1 \\ C_2 \end{pmatrix} = 0 \iff \Omega_1^T = -\Omega_2^T\,C_2\,C_1^{-1}$$ $$\implies \mathbf{\Omega = \Omega_2^T\,\underbrace{\begin{pmatrix} -C_2\,C_1^{-1} & I_{m-n} \end{pmatrix}}_{=\,P \;\in\; \mathbb{R}^{(m-n)\times m}} = \Omega_2^T\,P}$$

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}$:

$$\min_{\Omega_2} \frac{\big\|\Omega_2^T\,P\,F^-\big\|^2}{\big\|\Omega_2^T\,P\,F^+\big\|^2} \iff \mathbf{\min_{\Omega_2} \frac{\Omega_2^T\,P\,F^-(F^-)^T P^T\,\Omega_2}{\Omega_2^T\,P\,F^+(F^+)^T P^T\,\Omega_2}}$$
Explicit Parameterization Mechanism of the Null Space of C Step 1: Partitioning of C into C1 ∈ ℝn×n (invertible) and C2 ∈ ℝ(m−n)×n Ω1T·C1 + Ω2T·C2 = 0 ⇒ Ω1T is fixed by the choice of Ω2T! There are exactly (m − n) degrees of freedom left, contained in Ω2 ∈ ℝm−n. Step 2: Construction of the Parity Basis P = [ −C2·C1−1 Im−n ] Immediate verification: P · C = −C2·C1−1·C1 + I·C2 = −C2 + C2 = 0 Step 3: Rayleigh Quotient on ℝm−n Reminder: ||vT||2 = vT · (vT)T = Ω2T · P · F · FT · PT · Ω2
The matrix $P = [-C_2 C_1^{-1} \;\; I_{m-n}]$ forms an explicit basis of the left null space of $C$ ($\forall \Omega_2$, $(\Omega_2^T P)C = 0$).

Analytical Resolution via Generalized Eigenvalues

Rayleigh Quotient Theorem

By defining the two symmetric positive semi-definite matrices $A = P F^-(F^-)^T P^T$ and $B = P F^+(F^+)^T P^T$, the optimization problem is written:

$$\min_{\Omega_2} \frac{\Omega_2^T\,A\,\Omega_2}{\Omega_2^T\,B\,\Omega_2}$$

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}$!

Complete Algorithm for Calculating the Optimal Parity Vector Ω* 1. Form the Projected Gram Matrices (m − n) × (m − n): A = P·F−·(F−)T·PT and B = P·F+·(F+)T·PT 2. Solve the Generalized Eigenvalue Problem: det(A − γ·B) = 0 ⇒ Identify the smallest root γmin = γ̲ 3. Calculate the Associated Eigenvector Ω2* = X* and Reconstruct Ω*: (A − γ̲·B)·Ω2* = 0 ⇒ Ω* = (Ω2*)T · [ −C2·C1−1 Im−n ] (In MATLAB / Python: eig(A, B) function then select γ̲)
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:

$$\begin{cases} x_{k+1} = A\,x_k + B\,u_k + R_1\,f_k \\ y_k = C\,x_k + D\,u_k + R_2\,f_k \end{cases}$$
  • $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}$!
Recursive Propagation of the Discrete State between k − s and k Initial instant k − s: Unknown state: xk−s yk−s = C·xk−s + D·uk−s + R2·fk−s xk−s+1 = A·xk−s + B·uk−s + R1·fk−s Instant k − s + 1: Substitute xk−s+1 yk−s+1 = C·A·xk−s + C·B·uk−s + D·uk−s+1 + C·R1·fk−s + R2·fk−s+1 Present instant k: s iterations of A yk = C·As·xk−s + ∑ C·As−1−jB·u + D·uk + … A single unknown state vector xk−s in all rows!
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:

$$\underbrace{\begin{bmatrix} y_{k-s} \\ y_{k-s+1} \\ \vdots \\ y_k \end{bmatrix}}_{Y_k} - H \underbrace{\begin{bmatrix} u_{k-s} \\ u_{k-s+1} \\ \vdots \\ u_k \end{bmatrix}}_{U_k} = W\,x_{k-s} + M \underbrace{\begin{bmatrix} f_{k-s} \\ f_{k-s+1} \\ \vdots \\ f_k \end{bmatrix}}_{F_k} \iff \mathbf{Y_k - H\,U_k = W\,x_{k-s} + M\,F_k}$$
$$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\}$!

Anatomy of the Two Parts of the Sliding Horizon Model 1. LEFT SIDE: Measured and Known Online Quantities Yk − H · Uk ∈ ℝ(s+1)m (Computable at each step k) H is a lower block-triangular Toeplitz matrix (Markov parameters). = 2. RIGHT SIDE: Unknown Internal Quantities State term: W · xk−s W = Observability matrix (TO CANCEL: V·W = 0) Fault term: M · Fk M = Toeplitz of {R2, R1} (TO KEEP: V·M ≠ 0)
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}$$
Dual Role of the Parity Matrix V ∈ ℝp×(s+1)m CALCULATION FORM (Implemented in the real-time computer): rk = V · ( Yk − H · Uk ) Uses only past/present measurements Yk and controls Uk (FIR Filter). Analytical Equivalence (with V·W = 0) ANALYSIS FORM (Governing the fault response): rk = (V · W)·xk−s + V · M · Fk = V · M · Fk • Fault-free (Fk = 0): rk = 0 | • In the presence of fault (Fk ≠ 0): rk ≠ 0
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$):

$$A = \begin{bmatrix} 0 & 1 \\ -0.5 & 1.5 \end{bmatrix}, \;\; B = \begin{bmatrix} 0 \\ 1 \end{bmatrix}, \;\; C = \begin{bmatrix} 1 & 0 \end{bmatrix}, \;\; D = 0, \;\; R_1 = \begin{bmatrix} 0 & 0 \\ 1 & 0 \end{bmatrix}, \;\; R_2 = \begin{bmatrix} 0 & 1 \end{bmatrix}$$

1 Choice of order $s$: With $m=1, n=2$, the condition $(s+1)m > n$ requires $\mathbf{s = 2}$ ($(2+1)\times 1 = 3 > 2$). The horizon matrices $W \in \mathbb{R}^{3\times 2}$ and $H \in \mathbb{R}^{3\times 3}$ are:

$$W = \begin{bmatrix} C \\ C A \\ C A^2 \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ -0.5 & 1.5 \end{bmatrix}, \qquad H = \begin{bmatrix} 0 & 0 & 0 \\ C B & 0 & 0 \\ C A B & C B & 0 \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 1 & 0 & 0 \end{bmatrix}$$

2 Parity vector $V = [v_0 \;\; v_1 \;\; v_2] \in \text{Ker}(W^T)$:

$$V\,W = 0 \iff \begin{cases} v_0 - 0.5\,v_2 = 0 \\ v_1 + 1.5\,v_2 = 0 \end{cases} \xrightarrow{v_2 = 1} \mathbf{V = \begin{bmatrix} 0.5 & -1.5 & 1 \end{bmatrix}}$$
Calculation Form (FIR) and Fault Analysis Form (s = 2) 1. Real-Time Calculation Form: rk = V · Yk − (V · H) · Uk • V·Yk = 0.5·yk−2 − 1.5·yk−1 + yk | • V·H·Uk = [1 0 0]·Uk = uk−2 ⇒ rk = yk − 1.5·yk−1 + 0.5·yk−2 − uk−2 = (1 − 1.5z−1 + 0.5z−2)yk − z−2uk 2. Interpretation via Cayley-Hamilton Theorem: Characteristic polynomial of A: det(z·I − A) = z2 − 1.5·z + 0.5 = (z − 1)(z − 0.5) ⇒ A2 − 1.5·A + 0.5·I = 0: V contains exactly the coefficients of the polynomial! 3. Internal Form of Sensitivity to Faults: rk = V · M · Fk rk = fa,k−2 + ( fs,k − 1.5·fs,k−1 + 0.5·fs,k−2 )
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

MATLAB Console Output (Numerical Verification)

>> disp(V) 0.5000 -1.5000 1.0000 >> disp(norm(V * W)) 2.2204e-16 % Perfect decoupling of state x_{k-2}! >> disp(VH) 1 0 0

Real-Time Calculation Loop of Residual $r_k$

% 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=2 end

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$:

Simulink Model: Discrete System + Order s = 2 FIR Residual Generator SUBSYSTEM 1: DISCRETE PHYSICAL PROCESS (Discrete State-Space, Te = 0.1 s) Step uk (u0 = 1) uk + + fa,k (t=2s) Discrete State-Space xk+1 = A·xk + B·(uk + fa,k) y0,k = C·xk (x0 = [2 ; −1]) + + fs,k (t=6s) yk (Meas.) Scope yk SUBSYSTEM 2: PARITY SPACE RESIDUAL GENERATOR (FIR Filters in z−1 : rk = yk − 1.5·yk−1 + 0.5·yk−2 − uk−2) yk v2 = 1 z−1 yk−1 v1 = −1.5 z−1 yk−2 v0 = 0.5 z−1 uk−1 z−1 uk−2 1 ∑ − + rk Scope FDI Residual rk
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$!

2. Actuator fault pulse ($t \in [2\text{ s}, 4\text{ s}]$)

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}$).

3. Sensor fault step ($t \ge 6\text{ s}$, $f_{s,k} = +1$)

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$!

Simulink Time Plots: Fault Signals and Parity Residual rk 0 0.5 1.0 a) Injected faults: fa,k (blue) and fs,k (orange) fa,k = +0.5 fs,k = +1.0 (Step) +1.0 +0.5 0 −0.5 b) Residual Signal rk = V·(Yk − H·Uk) generated by Simulink +Threshold Jth rk = fa,k−2 = +0.5 Peak +1.0 (k=60) Peak −0.5 (k=61) 0 s 2 s 4 s 6 s 8 s t (s)
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):

uk System (Dynamic Process) yk Time redundancy residual generator: rk = V · ( Yk − H · Uk ) Output Memory "s" Samples Yk Input Memory "s" Samples Uk H + − V rk
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$:

$$\begin{cases} x_{k+1} = A\,x_k + B\,u_k \\ y_k = C\,x_k + f_k \end{cases}$$

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}$):

$$r_{ik} = V_i\,\big[\,Y_{ik} - H_i\,U_k\,\big] = V_i W_i\,x_{k-s} + V_i M_i\,F_{ik}, \qquad i = 1, 2, \dots, m$$ $$\text{Constraints: } \quad \mathbf{V_i\,W_i = 0} \qquad \text{and} \qquad \mathbf{V_i\,M_i \neq 0}$$
$$W_i = \begin{bmatrix} C_i \\ C_i A \\ \vdots \\ C_i A^s \end{bmatrix}, \quad H_i = \begin{bmatrix} 0 & 0 & \dots & 0 \\ C_i B & 0 & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ C_i A^{s-1}B & C_i A^{s-2}B & \dots & 0 \end{bmatrix}, \quad F_{ik} = \begin{bmatrix} f_{i,k-s} \\ f_{i,k-s+1} \\ \vdots \\ f_{ik} \end{bmatrix}, \quad M_i = I_{s+1}$$
Auto-Redundancy Principle and Diagonal Decision Table Sensor i Auto-Redundancy Channel (Independent from other sensors j ≠ i): Yik = [ yi,k−s , yi,k−s+1 , … , yik ]T ∈ ℝs+1 (with s ≥ n) Since Wi ∈ ℝ(s+1)×n has s + 1 > n rows, there exists Vi ≠ 0 such that Vi·Wi = 0 ! And since R1 = 0 and R2 = I, we have Mi = Is+1 ⇒ rik = Vi · Fik Induced Decision Table (Isolability of Simultaneous Faults): Residual \ Fault f1 f2 … fm r1 1 0 … 0 r2 0 1 … 0 rm 0 0 … 1
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).

General Synthesis of Sequence 4: Robust Parity Space Sliding Horizon Relation with Disturbances Dk = [dk−sT … dkT]T : Yk − H·Uk = [ W Hd ] · [ xk−sT DkT ]T + M · Fk Projection onto the Left Null Space of [ W Hd ] : V · W = 0 AND V · Hd = 0 ⇒ rk = V · M · Fk (If exact solution impossible: optimal decoupling via generalized eigenvalues) DOS Architecture (Dedicated) Auto-redundancy by channel i Isolates simultaneous faults GOS Architecture (Generalized) Vj also decouples fault j Zeros on the diagonal
Perfect structural equivalence between the UIO observer approach and the sliding horizon parity relations approach.
Course 3A Engineering Cycle • Module AU-513 • Grenoble INP - Esisar

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:

  1. Principle of parametric diagnostic: Multiplicative faults $\Delta a_i, \Delta b_j$ and excitation.
  2. Least Squares (LS & RLS): ARX regression, inversion lemma and forgetting factor $\lambda$.
  3. Case study: Diagnostic of physical parameters $R$ and $C$ of an electrical filter.
  4. Global Synthesis & Perspectives: Mixed GOS / UIO / $H_\infty$ synthesis and FTC via $H_\infty$ duality.
The 3 Main Families of Model-Based Residual Generation 1. OBSERVER-BASED APPROACHES (Sequences 2 & 3) Closed-loop state reconstruction (Luenberger, Kalman Filter, UIO DOS / GOS banks) Innovation residual: r(t) = y(t) − C·x̂(t) 2. PARITY RELATIONS / PARITY SPACE (Sequence 4) Algebraic state elimination over sliding horizon [k − s, k] by orthogonal projection FIR residual: rk = V·(Yk − H·Uk) with V·W = 0 SEQUENCE 5 3. DETECTION VIA PARAMETRIC ESTIMATION Online Identification (LS / RLS) θ̂(t+1) = θ̂(t) + Kt+1·e(t+1) Model symptom: Δθ̂ = θ̂ − θ0 (Mathematical parameters ai, bj) Inversion to Physics p̂ = f−1(θ̂) (R, C, k, f, J…) Physical residual: Δp̂ = p̂ − p0 (Direct component diagnostic)
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):

Roadmap of the 5 Sequences of Module AU-513 SEQUENCE 1 Fundamentals of Diagnostic (FDI), Fault Modeling & Residual Structure IFAC nomenclature, sensor/actuator/component faults, frequency constraints, 3σ statistical thresholds. ACQUIRED SEQUENCE 2 Observer-Based Approaches, DOS / GOS Architectures & UIO Synthesis Luenberger Observer, BFDF filter, dedicated (DOS) and generalized (GOS) banks, disturbance decoupling (UIO). ACQUIRED SEQUENCE 3 Robust Sensor and Actuator Isolation Schemes Based on UIO Banks Deletion of row Cj (sensors), augmentation Ei = [E bi] (actuators), Rao-Mitra and Hautus rank conditions. ACQUIRED SEQUENCE 4 Parity Relations Approach (Static & Dynamic Parity Space) Orthogonal projection V·C = 0, optimal decoupling via Rayleigh quotient, sliding horizon [k−s, k] (V·W = 0). ACQUIRED SEQUENCE 5 Parametric Estimation (LS / RLS), Global Synthesis & H∞ / FTC Perspectives RLS Algorithm, inversion p̂ = f−1(Θ̂), mixed GOS / UIO / H∞ synthesis and Fault-Tolerant Control via duality. IN PROGRESS
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!

Comparison: Additive Fault (Signal) vs. Multiplicative Fault (Parameter) A. ADDITIVE FAULT (Sensor Bias fs or Actuator fa) : ẋ = A·x + B·u + Ef·f(t) Independent of the operating point: Even if u(t) = 0 and x(t) = 0, the bias fs(t) ≠ 0 excites the residual r(t)! Ideal tools: - State Observers (UIO) - Parity Relations (FIR) B. MULTIPLICATIVE FAULT (Component Drift ΔA, ΔB) : ẋ = (A + ΔA)·x + (B + ΔB)·u Coupled to signals x(t) and u(t): Disturbing term: ΔA·x + ΔB·u Requires persistent excitation (rank(HᵀH) = dim(θ) invertible) Dedicated tool (Sequence 5): - Recursive Least Squares (RLS) - Physical inversion p̂ = f −1(Θ̂) (Locates the exact component R, C, k)
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.
Overview of Monitoring via Online Parametric Estimation PHASE 1 : Nominal Reference Healthy system (fault-free) Reference parameters: Θ0 , p0 PHASE 2 : Online Monitoring Real-time measurements u(t), y(t) RLS Algorithm → Estimates Θ̂(t) , p̂(t) Σ − + Symptom Generation (Parametric Deviations) : ΔΘ̂(t) = Θ̂(t) − Θ0 and Δp̂(t) = p̂(t) − p0 ⇒ Threshold Test
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}$:

$$Y = \underbrace{\begin{bmatrix} 1 & U & U^3 \end{bmatrix}}_{H}\,\underbrace{\begin{bmatrix} \beta_0 \\ \beta_1 \\ \beta_3 \end{bmatrix}}_{\underline{\theta}} + \epsilon$$

We minimize the quadratic criterion weighted by $V^{-1}$:

$$J(\theta) = \frac{1}{2}\big\|Z - H\theta\big\|_{V^{-1}}^2 = \frac{1}{2}(Z - H\theta)^T V^{-1}(Z - H\theta)$$ $$\left.\frac{\partial J(\theta)}{\partial \theta}\right|_{\theta=\hat{\theta}} = -H^T V^{-1}(Z - H\hat{\theta}) = 0, \qquad \frac{\partial^2 J(\theta)}{\partial \theta\,\partial \theta^T} = H^T V^{-1} H > 0$$
$$\mathbf{\hat{\theta}_{\text{WLS}} = (H^T V^{-1} H)^{-1} H^T V^{-1} Z} \quad \xrightarrow{V = \sigma^2 I} \quad \mathbf{\hat{\theta}_{\text{LS}} = (H^T H)^{-1} H^T Z = H^+ Z}$$
Convexity of the Quadratic Criterion J(θ) and Global Minimum θ̂ Parameter θ Criterion J(θ) = ½ ||Z − H·θ||2 ∂J/∂θ = 0 (Horizontal tangent) θ̂ = (HTH)−1HTZ Strict convexity condition (Hessian) : ∂2J / ∂θ∂θT = HT·V−1·H > 0 ⇔ rank(H) = dim(θ) Even if Y = β0 + β1U + β3U3 is non-linear in U, it is LINEAR in θ = [β0, β1, β3]T !
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:

$$\mathbf{y(t) = h^T(t)\,\Theta}$$ $$h^T(t) = \begin{bmatrix} -y^{(1)}(t) & \dots & -y^{(n)}(t) & u(t) & \dots & u^{(m)}(t) \end{bmatrix}$$ $$\Theta^T = \begin{bmatrix} a_1 & \dots & a_n & b_0 & \dots & b_m \end{bmatrix}$$
  • 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)}$.
Transfer Function Model Subject to Additive and Multiplicative Faults u(t) + Input fault fu Gp(s) = B(s) / A(s) Dynamic Process Multiplicative Faults Δai (poles) , Δbj (zeros/gain) + Output fault fy y(t) Structural distinction of effects: fu and fy are added to the signals, whereas Δai and Δbj modify the vector Θ!
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):

$$\begin{cases} \dot{x}(t) = A\,x(t) + b\,u(t) \\ y(t) = c^T x(t) \end{cases}$$ $$A = \begin{bmatrix} 0 & \dots & 0 & -a_0 \\ 1 & \dots & 0 & -a_1 \\ \vdots & \ddots & \vdots & \vdots \\ 0 & \dots & 1 & -a_{n-1} \end{bmatrix}, \quad b = \begin{bmatrix} b_0 \\ b_1 \\ \vdots \\ b_{n-1} \end{bmatrix}, \quad c^T = \begin{bmatrix} 0 & 0 & \dots & 1 \end{bmatrix}$$

In this state representation, the two categories of faults are clearly distinguished:

  • Additive faults: $f_l(t)$ (input or state variable fault) and $f_m(t)$ (fault on the output measurement).
  • Multiplicative (parametric) faults: Matrix perturbations $\Delta A$, $\Delta b$ and $\Delta c^T$ caused by variations $\Delta a_i$, $\Delta b_i$, $\Delta c_j$.
State Diagram Subject to Additive (fl, fm) and Multiplicative (ΔA, Δb, Δc) Faults u(t) b Δbi + fl(t) ẋ(t) ∫ x(t) A Δai (ΔA) cT Δcj + fm(t) y(t)
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:

1. Non-Recursive Method (Batch LS): $$\hat{\Theta} = \big[H^T H\big]^{-1} H^T y$$ 2. Recursive Method (Online / RLS): $$\hat{\Theta}_{k+1} = \hat{\Theta}_k + K_{k+1}\,\big(y_{k+1} - h^T(k+1)\,\hat{\Theta}_k\big)$$

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}$$
A. Equation Error Identification Structure u(t) Gp(s) = B(s)/A(s) y(t) Â(s) B̂(s) + − e(t) Parametric Estimation B. Block Diagram of Recursive Parameter Update (RLS) yk+1 + − Kk+1 + + Θ̂k+1 q−1 Θ̂k hT(k + 1) ŷk+1
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)$):

$$A(q)\,y(t) = B(q)\,u(t) + \epsilon(t), \qquad \epsilon(t) \sim \mathcal{N}(0, \sigma^2)$$ $$\begin{cases} A(q) = 1 + a_1\,q^{-1} + \dots + a_{n_a}\,q^{-n_a} \\ B(q) = b_1\,q^{-1} + \dots + b_{n_b}\,q^{-n_b} \end{cases}$$

By expanding the polynomials in $q^{-1}$, the output at instant $t$ is expressed in the standard linear regression form:

$$\mathbf{y(t) = h^T(t)\,\theta + \epsilon(t)}$$ $$h^T(t) = \begin{bmatrix} -y(t-1) & \dots & -y(t-n_a) & u(t-1) & \dots & u(t-n_b) \end{bmatrix}$$ $$\theta^T = \begin{bmatrix} a_1 & \dots & a_{n_a} & b_1 & \dots & b_{n_b} \end{bmatrix} \in \mathbb{R}^{n_a + n_b}$$

By collecting measurements for $k = 1, \dots, t$, we stack the equations row by row into a large matrix relation.

Chronological Stacking of Input/Output Data (Data Record) y(1) ⋮ y(k) ⋮ y(t) = −y(0) … −y(1−na) | u(0) … u(1−nb) ⋮ −y(k−1) … −y(k−na) | u(k−1) … u(k−nb) ⋮ −y(t−1) … −y(t−na) | u(t−1) … u(t−nb) a1 ⋮ an_a b1 ⋮ bn_b + ε(1) ⋮ ε(k) ⋮ ε(t) Compact Matrix Form at Instant t: Z(t) = H(t) · θ + ε(t)
Construction of the regressor matrix $H(t) \in \mathbb{R}^{t \times (n_a + n_b)}$ where the $k$th row equals $h^T(k)$.

Proof of Non-Recursive Least Squares (2/2 — OLS Solution)

Batch LS Estimator & Real-Time Limitations

Using the stacked vector notations up to instant $t$:

$$Z(t) = \begin{bmatrix} y(1) \\ \vdots \\ y(t) \end{bmatrix} \in \mathbb{R}^t, \quad H(t) = \begin{bmatrix} h^T(1) \\ \vdots \\ h^T(t) \end{bmatrix} \in \mathbb{R}^{t \times (n_a+n_b)}, \quad \underline{\epsilon}(t) = \begin{bmatrix} \epsilon(1) \\ \vdots \\ \epsilon(t) \end{bmatrix}$$

By minimizing the Ordinary Least Squares (OLS) criterion with $V = \sigma^2 I_t$:

$$\min_{\theta} J(\theta) = \min_{\theta} \frac{1}{2}\big\|Z(t) - H(t)\,\theta\big\|_{V^{-1}}^2$$

We obtain the non-recursive analytical solution (OLS) at instant $t$:

$$\mathbf{\hat{\theta}(t) = \Big[H^T(t)\,H(t)\Big]^{-1} H^T(t)\,Z(t)}$$
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$!
Comparison: Batch Computation (Batch LS) vs. Recursive Computation (RLS) 1. NON-RECURSIVE APPROACH (Batch LS — Unsuited for long real-time runs) • Stores in memory the ENTIRE history Z(t) ∈ ℝt and H(t) ∈ ℝt×p (t → ∞) • Explicit matrix inversion [HT(t)·H(t)]−1 required at each sampling step Memory and computational costs grow with the number of samples t! 2. RECURSIVE APPROACH (RLS — Ideal for embedded diagnosis) • Updates θ̂(t+1) directly from θ̂(t) and the single new measurement y(t+1) • No online matrix inversion (division by a simple scalar 1 + hTPh) Fixed memory O(p2) and constant computation time per sampling step!
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:

$$\underbrace{\begin{pmatrix} Z(t) \\ \hline y(t+1) \end{pmatrix}}_{Z(t+1)} = \underbrace{\begin{bmatrix} H(t) \\ \hline h^T(t+1) \end{bmatrix}}_{H(t+1)} \underline{\theta} + \begin{pmatrix} \underline{\epsilon}(t) \\ \hline \epsilon(t+1) \end{pmatrix}$$

Let's apply the Least Squares formula at instant $t+1$:

$$\hat{\theta}(t+1) = \Big[H^T(t+1)\,H(t+1)\Big]^{-1} H^T(t+1)\,Z(t+1)$$ $$= \left( \begin{bmatrix} H^T(t) & h(t+1) \end{bmatrix} \begin{bmatrix} H(t) \\ h^T(t+1) \end{bmatrix} \right)^{-1} \begin{bmatrix} H^T(t) & h(t+1) \end{bmatrix} \begin{pmatrix} Z(t) \\ y(t+1) \end{pmatrix}$$

By performing the block matrix multiplications, we obtain the fundamental starting relation:

$$\mathbf{\hat{\theta}(t+1) = \Big(H^T(t)H(t) + h(t+1)h^T(t+1)\Big)^{-1} \Big(H^T(t)Z(t) + h(t+1)y(t+1)\Big)}$$
Block Decomposition upon Arrival of Sample (t + 1) Z(t) y(t + 1) = H(t) (t × p) hT(t + 1) (1 × p) × θ (p × 1) Consequence on Normal Matrices at Instant t + 1: 1) Information matrix: HT(t+1)·H(t+1) = HT(t)·H(t) + h(t+1)·hT(t+1) 2) Second member: HT(t+1)·Z(t+1) = HT(t)·Z(t) + h(t+1)·y(t+1)
The matrix $H^T(t+1)H(t+1)$ undergoes a rank 1 update equal to the outer product $h(t+1)h^T(t+1)$.

Proof of Recursive Least Squares (2/3 — Inversion Lemma)

Woodbury / Sherman-Morrison Identity

To invert the sum $H^T(t)H(t) + h(t+1)h^T(t+1)$ without recalculating a matrix inverse, we apply the Matrix Inversion Lemma:

$$(A + B\,C\,D)^{-1} = A^{-1} - A^{-1} B\,\big(C^{-1} + D\,A^{-1} B\big)^{-1} D\,A^{-1}$$

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:

$$\begin{aligned} \hat{\theta}(t+1) &= \hat{\theta}(t) + \underbrace{K_{t+1}}_{\text{Gain}}\,\Big(\underbrace{y(t+1) - h^T(t+1)\hat{\theta}(t)}_{\text{Prediction error}}\Big) \\[3pt] K_{t+1} &= \frac{P(t)\,h(t+1)}{1 + h^T(t+1)\,P(t)\,h(t+1)} \\[3pt] P(t+1) &= P(t) - \frac{P(t)\,h(t+1)\,h^T(t+1)\,P(t)}{1 + h^T(t+1)\,P(t)\,h(t+1)} \quad \text{where } P(t) = \big(H^T(t)H(t)\big)^{-1} \end{aligned}$$
Why the Inversion Lemma Eliminates Matrix Inversion? Dimensional Analysis in the Lemma (with p = dim(θ)): A = HT(t)·H(t) ∈ ℝp×p A−1 = P(t) ∈ ℝp×p (Already known!) B = h(t+1) ∈ ℝp×1 ; D = hT ∈ ℝ1×p C = 1 ∈ ℝ1×1 (Scalar!) The only term to "invert" at each step (t + 1) is a SCALAR: ( C−1 + D · A−1 · B )−1 = [ 1 + hT(t+1) · P(t) · h(t+1) ]−1 ∈ ℝ Since P(t) is symmetric positive definite, 1 + hTPh ≥ 1 > 0: division always possible!
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:

$$\hat{\theta}(t+1) = \hat{\theta}(t) - \frac{(H_t^T H_t)^{-1} h_{t+1}}{1 + h_{t+1}^T (H_t^T H_t)^{-1} h_{t+1}}\,h_{t+1}^T \hat{\theta}(t) + (H_t^T H_t)^{-1} h_{t+1} \left[ 1 - \frac{h_{t+1}^T (H_t^T H_t)^{-1} h_{t+1}}{1 + h_{t+1}^T (H_t^T H_t)^{-1} h_{t+1}} \right] y(t+1)$$

By bringing the bracketed term before $y(t+1)$ to a common denominator:

$$1 - \frac{h_{t+1}^T (H_t^T H_t)^{-1} h_{t+1}}{1 + h_{t+1}^T (H_t^T H_t)^{-1} h_{t+1}} = \frac{1}{1 + h_{t+1}^T (H_t^T H_t)^{-1} h_{t+1}}$$

We then factor out the gain vector $K_{t+1}$ from the a priori prediction error:

$$\mathbf{\hat{\theta}(t+1) = \hat{\theta}(t) + \underbrace{\left[\frac{\big(H^T(t)H(t)\big)^{-1} h(t+1)}{1 + h^T(t+1)\big(H^T(t)H(t)\big)^{-1} h(t+1)}\right]}_{=\,K_{t+1}} \Big(y(t+1) - h^T(t+1)\hat{\theta}(t)\Big)}$$
Summary of the Complete RLS Algorithm (3 Equations per Step) Initialization at t = 0 (with no prior information): θ̂(0) = θ0 (or 0) and P(0) = α · Ip (with α ≫ 1 very large, e.g. 104) At each new sampling instant (t + 1): Step 1 (Adaptation gain): Kt+1 = P(t)·h(t+1) / [ 1 + hT(t+1)·P(t)·h(t+1) ] Step 2 (Update of θ̂): θ̂(t+1) = θ̂(t) + Kt+1 · [ y(t+1) − hT(t+1)·θ̂(t) ] Step 3 (Update of P): P(t+1) = [ Ip − Kt+1·hT(t+1) ] · P(t) Then calculate parametric residual: rθ(t+1) = θ̂(t+1) − θ0
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:

$$J_\lambda(\theta, t) = \frac{1}{2}\sum_{k=1}^{t} \lambda^{t-k}\,\big(y(k) - h^T(k)\theta\big)^2 \qquad \text{with } \mathbf{0.95 \le \lambda \le 0.99}$$
$$\begin{aligned} K_{t+1} &= \frac{P(t)\,h(t+1)}{\mathbf{\lambda} + h^T(t+1)\,P(t)\,h(t+1)} \\[4pt] P(t+1) &= \frac{1}{\mathbf{\lambda}}\Big[I_p - K_{t+1}\,h^T(t+1)\Big]\,P(t) \end{aligned}$$

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).

Responsiveness to a Parameter Jump: Standard RLS (λ = 1) vs RLS with Forgetting (λ = 0.97) Time t Parameter R(t) Nominal value R0 True value after fault R0 + ΔR Standard RLS (λ = 1 : Gain Kt → 0, asleep!) RLS with Forgetting (λ = 0.97 : Fast tracking!) Instant of fault tf Tuning trade-off for the forgetting factor λ: • λ close to 1 (0.99): Very good noise filtering | • Smaller λ (0.95): Ultra-fast jump detection
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}}$!
Electrical Diagram of the RC Circuit and Physical Identifiability Analysis i(t) R C u1(t) u2(t) CASE 1: Measurements (u1, u2) G(s) = U2(s)/U1(s) = 1 / (1 + RCs) Only the product τ = R·C is identifiable! Impossible to isolate if the fault comes from R or from C (f−1 not invertible). CASE 2: Measurements (u1, i) Y(s) = I(s)/U1(s) = Cs / (1 + RCs) θ̂ = [ Ĉ , R̂·Ĉ ]T ⇒ Ĉ = θ̂1 and R̂ = θ̂2/θ̂1 Decoupled physical residuals: rR = R̂ − R0 and rC = Ĉ − C0
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)$$

1 Approximation of derivatives by the implicit Euler scheme (step $\Delta t$):

$$C\,\frac{u_1^{n+1} - u_1^n}{\Delta t} - R C\,\frac{i^{n+1} - i^n}{\Delta t} = i^{n+1}$$

2 Putting 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).
Complete Chain of Identification and Diagnosis for R and C Components 1. Sampled Acquisition (Step Δt) and Calculation of Regressor hn+1T: hn+1T = [ −(in+1 − in)/Δt , (u1n+1 − u1n)/Δt ] ; yn+1 = in+1 2. Estimation by Least Squares (block LS or online RLS): θ̂ = [ θ̂1 , θ̂2 ]T = [ R·C , C ]T = (HT·H)−1 · HT · Z 3. Reconstruction of Physical Parameters and Diagnostic Residuals: Ĉ = θ̂2 and R̂ = θ̂1 / θ̂2 ⇒ rR = R̂ − R0 ; rC = Ĉ − C0 Direct isolation: |rR| ≥ εR ⇒ Resistor Fault | |rC| ≥ εC ⇒ Capacitor Fault
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$)
Generating principle Closed-loop recursive estimation: $r(t) = y(t) - C\hat{x}(t)$ Orthogonal projection onto the left null space: $r_k = V(Y_k - H U_k)$ Minimization of equation error: $\Delta\hat{p}(t) = f^{-1}(\hat{\Theta}(t)) - p_0$
Filter type IIR Filter (Infinite memory, pole placement of $F = TA - KC$) FIR Filter (Finite memory of $s+1$ samples, always stable) Nonlinear adaptive estimator in $(y, u)$ (Gain matrix $K_{t+1}$)
Targeted faults Additive sensor ($f_s$) and actuator ($f_a$) faults Additive sensor ($f_s$) and actuator ($f_a$) faults Multiplicative / component faults ($\Delta R, \Delta C, \Delta A, \Delta B$)
Handling disturbances $d(t)$ Exact decoupling by projection $T E = 0$ (if $\text{rank}(CE) = \dim(d)$) Exact decoupling $V H_d = 0$ or optimal via Rayleigh quotient Statistical filtering by recursive averaging (zero-mean noise $\epsilon$)
Key application condition Detectability of pair $(T A, C)$ and $m \ge \dim(d) + 1$ Observability over the horizon $(s+1)m > n$ Persistent excitation by the input $u(t)$ and invertibility of $f(p)$
Complementarity of the Approaches within a Modern Supervision System Fast Monitoring (Additives) Banks of UIO / Parity Observers Instantaneous detection of jumps fa, fs + Continuous Monitoring (Components) RLS Identification with Forgetting λ Tracking wear and aging Δp Complete Diagnosis & FTC Isolation + Estimation f̂(t), Δp̂(t) Control law reconfiguration

Perspectives (1/2): Mixed Synthesis GOS — UIO / $H_\infty$ Observers

Exact UIO Decoupling + Optimal H∞ Attenuation

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:

$$\begin{cases} \dot{x}(t) = A\,x(t) + B\,u(t) + \mathbf{E_d\,d(t)} + \mathbf{E_w\,w(t)} + E_f\,f(t) \\ y(t) = C\,x(t) + D_w\,w(t) + F_f\,f(t) \end{cases}$$
  • 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):
$$\begin{cases} \mathbf{\big\|T_{r^j w}(p)\big\|_\infty = \sup_{\omega} \bar{\sigma}\big(T_{r^j w}(j\omega)\big) < \gamma} & (\text{Robustness } H_\infty \text{ to noises } w) \\[6pt] \mathbf{\big\|T_{r^j f_k}(p)\big\|_- = \inf_{\omega} \underline{\sigma}\big(T_{r^j f_k}(j\omega)\big) > \beta} & (\text{Sensitivity } H_- \text{ to faults } f_{k \neq j}) \end{cases}$$
Hybrid Architecture of a Combined GOS Bank UIO + H∞ / H− Optimization Three Sources of Excitation Acting on the Error Dynamics of the j-th Observer: 1. Strong unknown input d(t) 2. Broadband noise w(t) ∈ L2 3. Target faults fk≠j(t) STAGE 1: Algebraic (UIO) Choice of Nj and Tj = I − NjC Tj·Ed = 0 and Tj·bj = 0 (Exact decoupling of d and fj) STAGE 2: Optimal H∞ / H− Synthesis (Gain Kj via LMI) • Noise attenuation: || Trʲw(p) ||∞ < γ (Minimize γ) • Fault amplification: || Trʲf(p) ||− > β (Maximize β) (Bounded Real Lemma with P > 0) Optimal Hybrid Residual rj(t): Insensitive to d(t), blind to fj(t), robust to noises w(t) and maximally sensitive to faults fk≠j(t)!
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:
$$\mathbf{u_{\text{FTC}}(t) = -K_c\,\hat{x}(t) - \hat{f}_a(t)} \implies B\big(u_{\text{FTC}}(t) + f_a(t)\big) = -B K_c\hat{x}(t) + B\underbrace{\big(f_a(t) - \hat{f}_a(t)\big)}_{\to\,0}$$
Complete Closed-Loop Architecture: Duality H∞ Estimation (FDD) and H∞ Control (FTC) 1. ESTIMATION & ROBUST DIAGNOSIS PROBLEM (FDD: UIO / H∞ Bank) Pair (A, C) | Synthesis of observation gain L via LMI / Riccati: A − L·C Hurwitz Minimize || Trw(p) ||∞ < γobs ⇒ Provides in real-time the estimated state x̂(t) and the estimated fault f̂(t) Lyapunov-Riccati inequality on the observability Gram matrix Pobs > 0 Mathematical Duality: (A, C) ↔ (AT, BT) Transmission of x̂(t) and f̂(t) 2. DUAL FAULT TOLERANT CONTROL PROBLEM (Robust FTC H∞) Pair (AT, BT) | Synthesis of state feedback Kc via dual LMI: A − B·Kc Hurwitz Minimize || Tzw(p) ||∞ < γcom (Robust stabilization of the regulated output z) Active Reconfigured FTC Law: u(t) = −Kc · x̂(t) − B+ · Ef · f̂(t) Real-time fault compensation while guaranteeing the H∞ robustness margin!
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.
5. Rolf Isermann (2011):
Fault-Diagnosis Applications: Model-Based Condition Monitoring, Springer.
Skills Acquired upon Completion of Module AU-513 1. MODELING OF FAULTY SYSTEMS & STATISTICAL TESTS (Seq. 1) State representation of additive/multiplicative faults and 3σ threshold decision. 2. SYNTHESIS OF DOS, GOS & UIO OBSERVER BANKS (Seq. 2 & 3) Exact decoupling of unknown inputs (T·E = 0) and robust sensor/actuator isolation. 3. PARITY SPACE & RLS PARAMETRIC ESTIMATION (Seq. 4 & 5) Sliding horizon projection (V·W = 0), Rayleigh quotient and physical identification p̂(t). 4. OPENING TOWARDS ROBUST H∞ SYNTHESIS & FTC CONTROL GOS / UIO / H∞ coupling and active control law reconfiguration by duality.
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
The Most Beautiful Closed-Loop System: Your Life Balance Your Projects & Your Dreams + HUMAN ADVENTURE Professional Project Family & Personal Project Hazards & Doubts: Rejected! Happiness & Success Experience, Passion & Kindness Life is beautiful... Enjoy every moment! Damien — Grenoble INP - Esisar
A perfectly stable system, robust to hazards and looking towards the future!
Author: Damien Koenig • Grenoble INP - Esisar / GIPSA-lab
1 / 76

Votre contact personnel

Damien Koenig
Tel. 0661585114


Envie d’en savoir plus ?

Il vous suffit de remplir ce formulaire !

Ou appelez-moi directement au Tel. : 0661585114

(*) Vous pourrez exercer votre droit de rectification ou de suppression (règlement RGPD 679/2016). N°CNIL 1741067
Créée et connectée à Metapartage