Filtro di Kalman - Introduzione - Dipartimento di Ingegneria dell

Transcript

Filtro di Kalman - Introduzione - Dipartimento di Ingegneria dell
ELABORAZIONE dei SEGNALI nei SISTEMI di CONTROLLO
Lezione 21:
Filtro di Kalman - Introduzione
• Cenni storici
• Filtro di Kalman e Filtro di Wiener
• Formulazione del problema
• Struttura ricorsiva della soluzione
20-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.
20-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).
20-3
Formulazione del problema (1/3) (caso lineare t.d.)
Si consideri il seguente sistema dinamico lineare, TD, sottoposto ad ingressi aleatori
x(t + 1) = Ax(t) + Bu(t) + Dw(t)
(1)
y(t) = Cx(t) + v(t)
dove x(t) è lo stato, u(t) l’ingresso, y(t) l’uscita, w(t) il disturbo di processo e v(t) il disturbo
di misura.
Osservazione - Tutte queste grandezze (e non solo lo stato) possono essere vettoriali.
Si adottano le seguenti ipotesi statistiche:
• w(t) ∼ wn(0, Q)
• v(t) ∼ wn(0, R)
• x(0) ∼ (m0, P0)
• x(0), w(i), v(j) fra loro incorrelati ∀i, j ≥ 0
Osservazione - Anche se non espressamente indicato, tutti i parametri del modello possono
variare nel tempo.
20-4
Formulazione del problema (2/3)
△
L’informazione disponibile è rappresentata dalle misure y t = {y(1), y(2), . . . , y(t)}. Si desidera stimare il valore assunto dallo stato. Più precisamente si desidera calcolare:
• x̂(t|k) ∈ Rn : stima lineare a MEQM di x(t) basata sulle osservazioni y k .
△
• P (t|k) = E[x
e(t|k)x
e′(t|k)] ∈ Rn×n: matrice di varianza dell’errore di stima
△
x
e(t|k) = x(t) − x̂(t|k)
Inoltre il calcolo deve avvenire in maniera ricorsiva rispetto agli indici t e/o k. La stima cioè
deve essere generata da equazioni ricorsive.
20-5
Formulazione del problema (3/3)
Classificazione della stima:
• Predizione se t > k.
• Filtraggio se t = k.
• Interpolazione (Regolarizzazione) se t < k.
Osservazione - Il filtro di Kalman in sostanza mira a stimare lo stato di un sistema dinamico
sulla base di misure dell’uscita in un contesto statistico.
Lo stesso problema viene affrontato nella Teoria dei Sistemi in un contesto deterministico, cioè in assenza di disturbi, e viene risolto introducendo il ricostruttore dello
stato (osservatore). Come si vedrà, il Filtro di Kalman appare una generalizzazione
dell’osservatore.
20-6
Struttura ricorsiva della soluzione(1/2)
Nella formulazione del problema sono individuati due indici temporali: t che denota l’istante
per il quale si desidera la stima; k che denota l’istante dell’ultima misura disponibile.
Quando si cerca una soluzione ricorsiva, si deve specificare rispetto a quale indice temporale
deve avvenire la ricorsione.
Il filtro di Kalman ha una struttura ricorsiva particolare, secondo la quale vengono aggiornate, in prima battuta, la stima x̂(t|k) e la matrice di varianza P (t|k). Essa è rappresentata
dal seguente grafo:
y(t)
⇓
x̂(t|t − 1) =⇒ x̂(t|t) =⇒ x̂(t + 1|t)
⇑
P (t|t − 1) =⇒ P (t|t) =⇒ P (t + 1|t)
(2)
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.
20-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)
L = 1, 2, . . .
(3)
P (k + L|k) =⇒ P (k + L + 1|k)
• Interpolazione (nel passato)
y(t + L + 1)
⇓
x̂(t|t + L) =⇒ x̂(t|t + L + 1)
⇑
P (t|t + L) =⇒ P (t|t + L + 1)
L = 1, 2, . . .
(4)
20-9