IDENTIFICAZIONE dei MODELLI e ANALISI dei DATI Lezione 40: Filtro di Kalman - introduzione Cenni storici Filtro di Kalman e filtro di Wiener Formulazione del problema Struttura ricorsiva della soluzione 40-1
Cenni storici Il Filtro di Kalman venne sviluppato, alla fine degli anni 50, dall ingegnere di origine ungherese R.E. Kalman mentre lavorava presso la NASA allo sviluppo del programma spaziale americano. Al suo nome viene talvolta affiancato quello del suo collega R.S. Bucy. La motivazione applicativa che portò allo sviluppo del filtro fu lo sviluppo di algoritmi che permettessero di tracciare, cioè di determinare posizione e velocità con la maggior precisione possibile, dei satelliti, e successivamente delle navette spaziali, lanciati nell ambito del programma spaziale. Nello sviluppo del filtro, grande attenzione venne dedicata agli aspetti implementativi, cercando di ottenere una soluzione a questo problema di stima che fosse computazionalmente economica e numericamente robusta. Infatti si doveva implementare questo algoritmo su dispositivi di calcolo dalle prestazioni assai limitate. 40-2
Confronto tra Filtro di Kalman e filtro di Wiener L interesse del Filtro di Kalman (e la fama del suo autore) non risiede tanto nell aver risolto un importante problema applicativo, quanto nell aver inquadrato brillantemente un problema di stima all interno della Teoria dei Sistemi, che in quegli anni, per merito dello stesso Kalman, compiva passi decisivi, scoprendo nozioni quali controllabilità, osservabilità, controllo ottimo, dualità, etc. Da un punto di vista dei contenuti il filtro di Kalman é una generalizzazione del filtro di Wiener. Infatti risolve un problema di stima a MEQM per segnali non stazionari e, potenzialmente almeno, per sistemi non lineari. Per questo motivo il filtro di Kalman opera nel dominio del tempo. Il filtro di Wiener appare quindi come un sottoprodotto del filtro di Kalman, ottenuto quando il filtro di Kalman raggiunge lo stato stazionario. Come il filtro di Wiener, anche il filtro di Kalman ha una versione tempo discreta e una versione tempo continua (più difficile da ricavare). 40-3
Formulazione del problema (1/3) (caso lineare t.d.) Si consideri il seguente sistema dinamico lineare, t.d., sottoposto ad ingressi aleatori x(k + 1) = Ax(k) + Bu(k) + w(k) (1) y(k) = Cx(k) + v(k) dove x(k) è lo stato, u(k) l ingresso, y(k) l uscita, w(k) il disturbo di processo e v(k) il disturbo di misura. Osservazione - Tutte queste grandezze (e non solo lo stato) possono essere vettoriali. Si adottano le seguenti ipotesi statistiche: w(k) WN (0, Q) v(k) WN (0, R) x(0) (m0, P0) x(0), w(l), v(j) fra loro incorrelati l, j 0 Osservazione - Anche se non espressamente indicato, tutti i parametri del modello possono variare nel tempo. 40-4
Formulazione del problema (2/3) L informazione disponibile è rappresentata dalle misure {y k = y(1), y(2),..., y(k)}. Si desidera stimare il valore assunto dallo stato. Più precisamente si desidera calcolare: ˆx(j k) R n : stima lineare a MEQM di x(j) basata sulle osservazioni y k. P (j k) = E[ x(j k) x (j k)]: matrice di varianza dell errore di stima x(j k) = x(j) ˆx(j k) Inoltre il calcolo deve avvenire in maniera ricorsiva rispetto agli indici j e/o k. La stima cioè deve essere generata da equazioni ricorsive. 40-5
Formulazione del problema (3/3) Classificazione della stima: Predizione se j > k. Filtraggio se j = k. Interpolazione se j < k. Osservazione - Il filtro di Kalman in sostanza mira a stimare lo stato di un sistema dinamico sulla base di misure sull uscita in un contesto statistico. Lo stesso problema viene affrontato nell Analisi dei Sistemi in un contesto deterministico, cioè in assenza di disturbi, e viene risolto introducendo il ricostruttore dello stato. Come vedremo il filtro di Kalman appare una generalizzazione del ricostruttore dello stato. 40-6
Struttura ricorsiva della soluzione(1/2) Nella formulazione del problema sono individuati due indici temporali: j che denota l istante per il quale desideriamo la stima; k che denota l istante dell ultima misura disponibile. Quando cerchiamo una soluzione ricorsiva dobbiamo quindi specificare rispetto a quale indice temporale la ricorsione deve avvenire. Il filtro di Kalman ha una struttura ricorsiva particolare, secondo la quale vengono aggiornate, in prima battuta, la stima ˆx(j k) e la matrice di varianza P (j k). Essa è rappresentata dal seguente grafo: y(k) ˆx(k k 1) = ˆx(k k) = ˆx(k + 1 k) P (k k 1) = P (k k) = P (k + 1 k) (3) La struttura ricorsiva sopra descritta rappresenta il nucleo del Filtro di Kalman. Essa si articola in due aggiornamenti: Aggiornamento alla misura: la stima predittiva (e la rispettiva matrice di varianza dell errore) viene aggiornata per effetto di una nuova misura diventando una stima filtrata. 40-7
Aggiornamento temporale: la stima filtrata viene aggiornata per inseguire l evoluzione dello stato, diventando nuovamente stima predittiva, ma all istante successivo. Le frecce del grafo sopra descritto indicano le informazioni necessarie per calcolare una certa grandezza. Risulta pertanto: L aggiornamento della matrice di varianza avviene indipendentemente dalle misure e dalla stima dello stato. Di fatto può essere precalcolato. L aggiornamento della stima dello stato ad un nuova misura, dipende non solo dalla misura (ovvio), ma anche dalla matrice di varianza dell errore di stima. Quest ultima pertanto non solo consente di valutare la qualità della stima ma è indispensabile per ottenerla. Rappresenta quindi un onere computazionale inevitabile.
Struttura ricorsiva della soluzione(2/2) Dopo aver implementato la ricorsione di base è possibile implementare altre due ricorsioni per calcolare: Stima predittiva (nel futuro): ˆx(k + l k) = ˆx(k + l + 1 k) P (k + l k) = P (k + l k) l = 1, 2,... (4) Interpolazione (nel passato) y(k + l + 1) ˆx(k k + l) = ˆx(k k + l + 1) P (k k + l) = P (k k + l + 1) l = 1, 2,... (5) 40-9