---
title: 11 - Individuazione guasti con osservatore dello stato
tags: Misure
info: Lezioni 15 min 48:00 -20 ottobre
description: Blocco slide parte 11
---
# Individuazione guasti con osservatore dello stato
Le tecniche di individuazione guasti mediante osservatore dello stato utilizzano l’errore tra l’uscita misurata del processo reale e quella di un modello matematico (in spazio di stato) per generare residui: esse rientrano, insieme alle tecniche basate su equazioni di parità, nell’area della diagnosi basata su modello.
In questo caso, invece che andare ad usare il modello del sistema per ottenere il residuo voglio andare ad usare l'osservazione che ottengo tramite l'osservatore dello stato. Il concetto è quindi simile, pur presentando delle importanti differenze.
Osservatore: "copia" del sistema reale la cui uscita è data dallo stato del sistema che viene modellato. La rappresentazione utilizzata è basata sullo spazio di stato, che è equivalente all'uso delle funzioni di trasferimento.
Come nel caso delle equazioni di parità si suppone che la struttura e che i parametri del modello siano noti (i.e. si suppone che sia possibile creare un modello matematico del processo reale). Gli osservatori dello stato ricostruiscono le variabili di stato in funzione delle condizioni iniziali e dell’evolvere nel tempo delle misure di ingresso e di uscita provenienti dal processo reale.
# Osservatore dello stato
Si consideri un processo LTI con $p$ ingressi $u(t)$ e $r$ uscite $y(t)$ descritto dal seguente modello:
$$
\dot{x}(t) = Ax(t) + Bu(t) \\
y(t) = Cx(t)
$$
Dove $A$ è la matrice di transizione della dinamica, $B$ è la matrice di transizione ingresso-stato. $y(t)$ è combinazione lineare degli stati associati al sistema (spesso è costituito dallo stato stesso).
Un osservatore dello stato permette di ricostruire lo stato (non misurabile) del processo reale a partire dalle misure di ingresso e di uscita.
In particolare, l'osservatore è una replica del sistema reale di questo tipo:
$$
\dot{\hat{x}}(t) = A\hat{x}(t) + Bu(t) + He(t) \\
e(t) = y(t) - C\hat{x}(t) \\
\dot{\tilde{x}}(t) = \dot{x}(t) - \dot{\hat{x}}(t)
$$
dove $e(t)$ è una misura di errore sull'uscita associata all'osservatore. L'errore di stima è dato da $\dot{\tilde{x}}$. L'osservatore può essere realizzato se e solo se il sistema è osservabile.
Si ha, in particolare, che:
$$
\begin{align*}
\dot{\hat{x}}(t) &= A\hat{x}(t) + Bu(t) + H[y(t) - C\hat{x}(t)] \\
&= (A - HC)\hat{x}(t) + Bu(t) + Hy(t)
\end{align*}
$$
$$
\begin{align*}
\dot{\tilde{x}} &= Ax(t) + Bu(t) - (A - HC)\hat{x}(t) - Bu(t) - Hy(t) \\
&= Ax(t) - HCx(t) - (A - HC)\hat{x}(t) \\
&= (A-HC)(x(t)-\hat{x}(t)) = (A-HC)\tilde{x}(t)
\end{align*}
$$
Per garantire che l’osservatore sia stabile ($\lim_{t\to\infty}\tilde{x}(t)=0$), è sufficiente progettare in maniera opportuna la matrice H affinché la matrice risultante A-HC sia Hurwitz (parte reale degli autovalori negativa) (e.g. tecniche di pole placement in s): la scelta degli autovalori è un compromesso tra velocità di rilevazione (preferibilmente alta) e numero di falsi allarmi (preferibilmente basso).
È quindi possibile, in questo modo, ottenere una stima dello stato del sistema. Di seguito è presente uno schema che rappresenta il modello:

## Introduzione guasti additivi

Se sono presenti dei guasti additivi, si introduce il disturbo additivo $v(t)$ (stato), il disturbo additivo $n(t)$ (uscita, rumore) e guasti additivi $f(k)=\begin{bmatrix} f_m(t) \\ f_l(t) \end{bmatrix}$ per uscita e stato. Si ottiene, quindi:
$$
\dot{x}(t) = Ax(t) + Bu(t) + Vv(t) + Lf_l(t) \\
y(t) = Cx(t) + Nn(t) + Mf_m(t)
$$
con L e M matrici di ingresso del fault.
Per quanto riguarda **l'errore di stima** si ha:
$$
\begin{align*}
\dot{\tilde{x}}(t) &= Ax(t) + Bu(t) + Vv(t) + Lf_l(t) - (A - HC)\hat{x}(t) - Bu(t) - H[Cx(t) + Nn(t) + Mf_m(t)] \\
&= (A-HC)\tilde{x} + Vv(t) + Lf_l(t) - HNn(t) - HMf_m(t)
\end{align*}
$$
Se l'osservatore converge la stima dello stato dipende dai disturbi e dal guasto.
I termini presenti dopo $(A-HC)\tilde{x}$ sono simili alla forma interna calcolata con il residuo, considerando anche il fatto che è possibile calcolarlo come differenza tra lo stato del sistema e quello dell'osservatore. Nella realtà è difficile usare l'errore di stima, in quanto in generale non si conosce lo stato (uso l'osservatore a questo scopo), per cui solitamente si usa l'errore di uscita
Per quanto riguarda **l'errore di uscita**, invece, si ha:
$$
\begin{align*}
r_{oss} &= y - C\hat{x} \\
&= Cx +Nn + Mf_m - C\hat{x} \\
&= C\tilde{x} +Nn + Mf_m
\end{align*}
$$
Se si sceglie $\dot{\tilde{x}}(t)$ oppure $r_{oss}(t)$ come residuo, allora si ottiene una forma che mostra gli effetti di fault e disturbi sul residuo, e che corrisponde alla forma interna vista nella generazione di residui mediante equazioni di parità.
A livello pratico, quindi, si considerano le due uscite e vengono confrontate. Bisogna tuttavia notare che spesso il residuo porta informazioni spurie, per cui non sempre dei valori sufficientemente grandi del residuo sono dati da guasti del sistema (può essere colpa di disturbi).
## Introduzione guasti moltiplicativi
Se i guasti compaiono come variazioni parametriche nelle matrici del processo, allora il comportamento del processo diventa:
$$
\dot{x}(t) = (A + \Delta A)x(t) + (B + \Delta B)u(t) \\
y(t) = (C + \Delta C)x(t)
$$
In questo caso per **l'errore di stima** si ha:
$$
\begin{align*}
\dot{\tilde{x}}(t) &= (A + \Delta A)x(t) + (B + \Delta B)u(t) - (A\hat{x}(t) + Bu(t) + H[y(t) - C\hat{x}(t)]) \\
&= Ax + \Delta Ax + Bu + \Delta Bu - A\hat{x} - Bu - HCx - H\Delta Cx + HC\hat{x} \\
&= [A-HC]\tilde{x} + \Delta Ax + \Delta Bu - H \Delta Cx \\
&= [A-HC]\tilde{x} + [\Delta A - H \Delta C]x + \Delta Bu
\end{align*}
$$
Per **l'errore di uscita** si ha:
$$
\begin{align*}
r &= y - C\hat{x} \\
&= Cx + \Delta Cx - C\hat{x} \\
&= C\tilde{x} + \Delta Cx
\end{align*}
$$
Sia l’errore di stima sia l’errore di uscita dipendono dall’ingresso e dallo stato: se tali grandezze vengono utilizzate come residui, allora l’individuazione dei fault non è così semplice come per il caso di fault additivi. La conseguenza è che i guasti moltiplicativi non vengono trattati con le equazioni di parità e con l'osservatore dello stato. Per trattare i guasti moltiplicativi, si fa uso delle tecniche basate sulla stima dei parametri (minimi quadrati). Per i guasti additivi, invece, è possibile usare le equazioni di parità o le tecniche basate sull'osservatore.
## Differenza nell'uso di equazioni di parità e osservatori dello stato (caso SISO)
| Eq. Parità | Osservatori |
| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| Si parte da una funzione di trasferimento: $$\frac{y(s)}{u(s)}=\frac{b_0 + b_1s + ... + b_ms^m}{1 + a_1s + ... + a_ns^n}\ \ m \leq n$$ | Uso della rappresentazione nello spazio degli stati: $$ \dot{x}(t) = Ax(t) + bu(t) \\ y(t) = c^Tx(t) $$ |
| Residuo$$\begin{align*}r(s) &= A(s)y(s) - B(s)u(s) \ \text{errore equazione} \\ &= y(s) - \frac{B(s)}{A(s)}U(s) \ \text{errore uscita} \end{align*}$$ | $$\begin{align*}r(t) &= x(t) - \hat{x}(t) ... \ \text{devo conoscere x} \\ &= y(t) - c^T\hat{x}(t) \end{align*}$$ |
| Devo conoscere a priori $m+n+1$ parametri | Devo conoscere a priori $N\times N + M + P$ parametri (nel caso siso $M=P=N$) |
| Zero gradi di libertà nel design (formula che applico direttamente) | Ho un grado di libertà nella scelta di $H$ |
| Ok per i guasti additivi| Ok per i guasti additivi |
| I guasti moltiplicativi dipendono dalla variazione dell'ingresso | I guasti moltiplicativi dipendono dalla variazione dell'ingresso e dello stato |
| Se ho più ingressi e più uscite devo creare un residuo per ogni funzione di trasferimento, per cui cresce il numero delle funzioni di trasferimento da considerare, e quindi devo impegnarmi di più nel design | Se ho più ingressi e uscite varia solo il numero dei parametri $M,P$, ma la struttura del problema rimane invariata. |
L'approccio basato su osservatore richiede una fase di design iniziale più costosa ma scala meglio, per cui conviene generalmente usare questa tipologia di approccio.
## Isolamento mediante banco di osservatori
Tra le applicazioni dell'osservatore, si ha anche la possibilità di isolare il guasto. Ciò viene fatto grazie ad un banco di osservatori, costituito da osservatori che funzionano in contemporanea che prendono solo un sottoinsieme di ingressi o uscite.

*La figura fa vedere due configurazioni diverse: nella sinistra ogni osservatore ha una sola uscita e tutti gli ingressi, mentre nella destra si ha per ogni osservatore un solo ingresso e tutte le uscite. Calcolando il residuo su ciascuno degli osservatori, si ha la possibilità di isolare il guasto su un unico input oppure su un unico output (residuo diverso da zero su un particolare input o output).*
# Osservatori robusti al rumore
Di seguito sono mostrati degli osservatori che, al contrario di quello osservato fino ad ora, si comportano bene al rumore.
## Filtro di Kalman (stimatore ottimo a minima varianza)
L'osservatore permette di stimare lo stato, dando una indicazione del guasto, tuttavia se c'è del rumore non ci sono particolari garanzie (lo stato viene ricostruito ma non è di alta qualità). Per risolvere il problema, è possibile adottare il **filtro di Kalman**, che consente di ottenere lo stato a minima varianza (minimo effetto del rumore).
In questo caso si ha, quindi, un sistema con dei disturbi $v(t)$ e $n(t)$, caratterizzato dalle seguenti equazioni:
$$
x(k + 1) = Ax(k) + Bu(k) + Vv(k) \\
y(k) = Cx(k) + n(k)
$$
In un caso come questo, il filtro di Kalman effettua due step:
- Predizione (similarmente all'osservatore per quanto riguarda la stima dello stato)
- Calcola una matrice $P$ che è una matrice di covarianza dell'errore di stima. Sulla diagonale ha le varianze associate ai canali (quindi agli stati) stimati. Più i termini sulle diagonali sono alti più le informazioni misurate sono inaffidabili. Se al canale è quindi associato un valore maggiore, viene considerato di meno, e viene corretto con una variazione maggiore. Se il valore è basso, al contrario, il canale ha più peso e vengono apportate delle variazioni minori. La nuova stima, quindi, è data dalla seguente equazione:

Il valore $K(k+1)$ è tanto più grande quanto la covarianza associata alla misura è grande.

<span style="color: green">**Ricordarsi solo che il filtro di Kalman viene usato quando c'è tanto rumore sul sistema, risolvendo il problema dell'osservazione**</span>
## Gli osservatori dell'uscita
Gli Unknown Input Observer (UIO) risolvono il problema dell'osservatore nel caso in cui si conosce la dinamica associata al rumore. Il vantaggio è che se conosco la matrice della dinamica associata al disturbo (che deve rispettare delle proprietà), posso costruire un osservatore che converge allo stato del sistema a prescindere dal disturbo di cui questa soffre, creando dei residui che dipendono dal guasto ma sono totalmente disaccoppiati dal disturbo. Questo osservatore appartiene alla categoria degli **osservatori funzionali**, in cui si ha opera una trasformazione delle variabili di stato del problema originale.
# Considerazione sull'individuazione dei guasti in ciclo chiuso
Le tecniche viste fino ad ora (basate su equazioni di parità oppure osservatore) sono state ideate per l’individuazione dei guasti nel caso di sistemi in catena aperta. Nei sistemi di controllo a ciclo chiuso, in generale, risulta più difficile individuare guasti, perché il sistema di controllo cerca di compensare le variazioni provocate dai guasti stessi. Il sistema di controllo cerca di mantenere le specifiche assegnate e in generale “piccoli” guasti (sia negli attuatori sia nei sensori, additivi o moltiplicativi) sono compensati dal sistema di controllo. È sempre difficile decidere (discriminare) se una significativa deviazione dalle specifiche imposte è dovuta ad un guasto o da un disturbo (di ampiezza elevata).
**La soluzione, nel caso di sistemi a ciclo chiuso, è combinare più tecniche basate sia sui segnali sia sui modelli (approcci euristici).**
# Conclusioni
Un modo relativamente semplice per individuare un guasto in un processo è di confrontare il comportamento del processo reale con quello di un modello nominale.
Le tecniche di individuazione dei guasti basate sulle equazioni di parità sfruttano tali differenze e sono tipicamente basate su due diversi approcci:
- Approccio mediante funzione di trasferimento
- Approccio mediante rappresentazione in spazio di stato
Le tecniche di individuazione guasti mediante osservatore dello stato sfruttano tali differenze e gli approcci più comuni si basano su:
- Osservatori dello stato di tipo classico (Luenberger)
- Filtro di Kalman
Entrambe le tecniche di individuazione guasti sono molto simili: si misurano gli ingressi e le uscite, e si suppongono noti la struttura e i parametri del modello. La struttura dei residui generata è simile in tutti i casi, ciò che cambia è il modo in cui le grandezze di ingresso e uscita sono filtrate. Grazie alla presenza di un modello matematico è possibile strutturare opportunamente il problema per ottenere residui con proprietà particolari (e.g. in grado di permettere l’isolamento del guasto). Bisogna tuttavia notare che l'efficacia di questi modelli dipende largamente dalla qualità del modello usato per descrivere il sistema.
# Domande di riepilogo
- Come è possibile impiegare un osservatore dello stato per l’individuazione di guasti additivi?
- Formulazione matematica all'inizio del blocco
- Come è possibile impiegare un osservatore dello stato per l’individuazione di guasti moltiplicativi?
- Che differenza c’è tra i due approcci?
- Come è possibile isolare un guasto mediante osservatori dello stato?
- Banco di osservatori
- Quali impieghi trova il filtro di Kalman in diagnosi?
- Qual è l’impiego degli osservatori a ingresso sconosciuto?
- Quali sono le differenze tra l’individuazione dei guasti mediante osservatore dello stato e quella mediante equazioni di parità nel caso di sistemi SISO e MIMO?
- Schema (tabella) di confronto sopra presente
- Quali sono i limiti delle tecniche basate su modello per la creazione di residui da utilizzare nella diagnosi guasti.
- Limite principale: il modello deve essere buono, se è incerto i risultati sono generalmente scadenti. A differenza delle tecniche basati su dati, queste tecniche tuttavia possono individuare anche guasti mai visti prima.