# Osservatore dello stato

Nella teoria del controllo, l'osservatore di stato è un sistema dinamico con lo scopo di stimare l'evoluzione di stato di un sistema da osservare.
La conoscenza dello stato è necessaria per risolvere molti problemi legati al controllo; ad esempio per implementare leggi di controllo con feedback quando non si può misurare direttamente lo stato del sistema o anche quando, pur potendo misurare lo stato, l'errore nella misurazione è più grande di quello che si commette andando a stimare lo stato del sistema. Affinché la stima sia possibile, occorre che il sistema di cui si vuole stimare lo stato sia osservabile, e quindi, che la matrice test di osservabilità abbia rango pari all'ordine del sistema. In tal modo, è possibile ricostruire lo stato del sistema a partire dall'osservazione dell'output.
Viene impiegato in tutte le applicazioni in cui lo stato del sistema non è completamente accessibile o di dimensione troppo elevata per predisporre altrettanti trasduttori. Può essere utilizzato anche per grandezze non misurabili direttamente, il cui valore deve essere ricavato attraverso la misura di altre grandezze e l'utilizzo di un modello matematico. In questi casi l'osservatore permette di correggere gli errori introdotti dalle incertezze sul modello.

## Struttura nel caso di un sistema dinamico lineare stazionario a tempo continuo

Consideriamo un sistema dinamico lineare stazionario di cui vogliamo osservare lo stato,
    ${\frac {d{\vec {x}}(t)}{dt}}=\,A{\vec {x}}(t)+B{\vec {u}}(t)$
    ${\vec {y}}(t)=C{\vec {x}}(t)+D{\vec {u}}(t)$
Il vettore colonna ${\vec {x}}(t)$ è ciò che vogliamo osservare, per quanto detto in precedenza abbiamo a disposizione gli ingressi forniti al sistema ${\vec {u}}(t)$ e le sue uscite ${\vec {y}}(t)$.
Per costruire un osservatore di stato è necessario costruire un sistema dinamico che con le informazioni ${\vec {u}}(t)$ e ${\vec {y}}(t)$ riesca a stimare lo stato garantendone la convergenza:
    $\lim _{t\to +\infty }|{\vec {x}}(t)-{\vec {\hat {x}}}(t)|={\vec {0}}$, dove ${\vec {\hat {x}}}(t)$ è lo stato stimato.
È bene notare che integrando il modello riusciremmo ad ottenere l'evoluzione di stato a meno di una costante, se dunque la condizione iniziale all'inizio dell'osservazione non è nulla non riusciremmo a raggiungere la convergenza dello stato osservato con quello reale.
Una espressione classica per l'osservatore di stato è la seguente:
    ${\frac {d{\vec {\hat {x}}}(t)}{dt}}=\,F{\vec {\hat {x}}}(t)+L{\vec {u}}(t)+G{\vec {y}}(t)$
dove ${\vec {\hat {x}}}(t)$ è lo stato stimato. Assumendo la dipendenza istantanea dell'uscita dall'ingresso nulla ($D={\begin{bmatrix}0&\dots &0\\\vdots &\ddots &\vdots \\0&\dots &0\\\end{bmatrix}}$) l'uscita stimata dal sistema può essere espressa come ${\vec {y_{s}}}(t)=C{\vec {\hat {x}}}(t)$. Dunque assumendo $F=A-GC$ e $L=B$ l'espressione dell'osservatore di stato diventa:
    ${\frac {d{\vec {\hat {x}}}(t)}{dt}}=\,A{\vec {\hat {x}}}(t)+B{\vec {u}}(t)+G({\vec {y}}(t)-{\vec {y_{s}}}(t))$.
Questa nuova formulazione rende evidente la modalità con cui funziona l'osservatore di stato. Infatti lo stato osservato ${\vec {\hat {x}}}(t)$ è ottenuto utilizzando il modello matematico noto a cui viene aggiunto un termine di correzione, questo termine è pesato dalla matrice $G$ e modifica la stima dello stato in base alla "distanza" tra l'uscita misurata e quella stimata.

### Convergenza

È possibile dimostrare che le assunzioni fatte in precedenza garantiscono la convergenza allo stato stimato, per farlo è sufficiente sottrarre membro a membro l'equazione differenziale del sistema e quella dell'osservatore di stato:
    ${\frac {d{\vec {e}}(t)}{dt}}=\,(A-GC){\vec {e}}(t)$, dove ${\vec {e}}(t)={\vec {x}}(t)-{\vec {\hat {x}}}(t)$.
Se la matrice $A-GC$ è una matrice definita negativa ${\vec {e}}(t)$ tende a ${\vec {0}}$, quindi la convergenza è verificata.

### Osservatore deterministico e non deterministico (stocastico)

La caratterizzazione fatta è del tutto generale, è evidente che la velocità di convergenza dell'osservatore di stato può essere modificata agendo sulla matrice $G$. Tipicamente viene associato a questo tipo di osservatore il nome di Osservatore di Luenberger o di osservatore deterministico per distinguerlo dall'osservatore non deterministico detto Filtro di Kalman. In realtà entrambi i tipi di osservatore hanno la medesima struttura e si differenziano solo per la scelta della matrice $G$, nel caso deterministico la scelta è legata esclusivamente alla velocità di convergenza della stima. Mentre nel caso non deterministico la scelta è influenzata dall'incertezza sulla misura di ${\vec {u}}(t)$ e ${\vec {y}}(t)$.

## Caso a tempo discreto

Lo stato di un sistema dinamico lineare invariante alla traslazione, quindi a tempo discreto, è rappresentato da
    ${\vec {x}}(k+1)=A{\vec {x}}(k)+B{\vec {u}}(k)$ ${\vec {y}}(k)=C{\vec {x}}(k)+D{\vec {u}}(k)$
dove, al tempo $k,{\vec {x}}(k)$ è lo stato del sistema; ${\vec {u}}(k)$ rappresenta l'input; e ${\vec {y}}(k)$ è l'output. Queste relazioni implicano che lo stato presente e futuro del sistema dipendono esclusivamente dallo stato e dall'input corrente. Sebbene queste equazioni siano in forma discreta, esse risultano molto simili anche nel continuo. Se il sistema è osservabile, l'output del sistema, ${\vec {y}}(k)$, può essere utilizzato per stimare lo stato.
Il modello è tipicamente ottenuto dalle equazioni precedenti. Ulteriori termini possono essere inclusi al fine di assicurare la convergenza della stima dello stato al ricevere di successivi valori di input ed output. In particolare, l'output dell'osservatore può essere sottratto dall'output del sistema e poi moltiplicato per una matrice $L$; questo termine è poi aggiunto alle equazioni dello stato dell'osservatore n modo da ottenere il cosiddetto Luenberger observer, definito dalle equazioni seguenti. Normalmente, le variabili stimate vengono indicate con un accento circonflesso: ${\vec {\hat {x}}}(k)$ and ${\vec {\hat {y}}}(k)$ per distinguerli dalle effettive variabili di stato, e le equazioni che ne determinano il comportamento sono
    ${\vec {\hat {x}}}(k+1)=A{\vec {\hat {x}}}(k)+L\left[{\vec {y}}(k)-{\vec {\hat {y}}}(k)\right]+B{\vec {u}}(k)$ ${\vec {\hat {y}}}(k)=C{\vec {\hat {x}}}(k)+D{\vec {u}}(k)$
L'osservatore è asintoticamente stabile se l'errore ${\vec {e}}(k)={\vec {\hat {x}}}(k)-{\vec {x}}(k)$ converge a zero quando $k\rightarrow \infty$. Per un osservatore di Luenberger, l'errore soddisfa la relazione ${\vec {e}}(k+1)=(A-LC){\vec {e}}(k)$. Esso è dunque asintoticamente stabile quando la matrice $A-LC$ ha tutti gli autovalori nel semipiano negativo del piano complesso (cioè con parte reale negativa) (nel caso continuo) o all'interno del cerchio unitario (nel caso discreto).
Per quel che concerne il controllo, l'output dell'osservatore è retroazionato attraverso la matrice dei guadagni $K$.
${\vec {u}}(k)=-K{\vec {\hat {x}}}(k)$
Le equazioni dell'osservatore diventano:
    ${\vec {\hat {x}}}(k+1)=A{\vec {\hat {x}}}(k)+L\left({\vec {y}}(k)-{\vec {\hat {y}}}(k)\right)-BK{\vec {\hat {x}}}(k)$ ${\vec {\hat {y}}}(k)=C{\vec {\hat {x}}}(k)-DK{\vec {\hat {x}}}(k)$
o, più semplicemente,
    ${\vec {\hat {x}}}(k+1)=\left(A-BK\right){\vec {\hat {x}}}(k)+L\left({\vec {y}}(k)-{\vec {\hat {y}}}(k)\right)$ ${\vec {\hat {y}}}(k)=\left(C-DK\right){\vec {\hat {x}}}(k)$
Sostituendo nelle equazioni del sistema che si intende stimare (chiamato plant) ${\vec {y}}(k)$ si ha
    ${\vec {\hat {x}}}(k+1)=\left(A-BK-LC\right){\vec {\hat {x}}}(k)+L{\vec {\hat {y}}}(k)$ ${\vec {\hat {y}}}(k)=\left(C-DK\right){\vec {\hat {x}}}(k)$
In virtù del principio di separazione è noto che controllore (matrice dei guadagni $K$) ed osservatore (matrice dei guadagni $L$) possono essere progettati indipendentemente. Il sistema complessivo (detto compensatore) sarà stabile se lo saranno i due sottosistemi. Una regola pratica consiglia di scegliere i poli dell'osservatore $A-LC$ tali da convergere 10 volte più velocemente di quelli relativi al controllore $A-BK$.

## Caso non lineare

Se il sistema da osservare è governato da un modello non lineare risulta molto difficile fornire una struttura generale per un osservatore. In questi casi le formulazioni estese degli osservatori di Luenberger e Kalman sono ottenute linearizzando il sistema per un generico punto di funzionamento (e non per un punto di equilibrio) ed introducendo una legge adattativa per la $G$ che garantisca la convergenza dell'osservatore nei diversi punti di funzionamento. La stabilità di tali osservatori viene discussa utilizzando la Teoria di Lyapunov.
Noti i problemi associati ad osservatori per sistemi non lineari, ottenuti a partire da una linearizzazione, è ormai abbastanza noto l'osservatore non lineare sviluppato da Ciccarella-Dalla Mora-Germani. Si rimanda a Osservatore Non Lineare di Germani.