Filtro di Kalman

Indice dei contenuti

    Il filtro di Kalman è un algoritmo ricorsivo per stimare lo stato nascosto di un sistema dinamico a partire da un modello e da misure rumorose. È centrale nel controllo moderno, nella navigazione inerziale, nella fusione sensoriale e nella stima in spazio di stato.

    Nel caso lineare-gaussiano è ottimo in senso MMSE: combina in modo coerente l’incertezza del modello e l’incertezza dei sensori, senza ricalcolare tutta la storia delle misure a ogni istante.

    Modello lineare-gaussiano

    SimboloSignificato
    \displaystyle x_kstato del sistema al passo \displaystyle k
    \displaystyle u_kingresso noto o comando applicato
    \displaystyle y_kmisura disponibile
    \displaystyle Amatrice di transizione dello stato
    \displaystyle Bmatrice degli ingressi
    \displaystyle Cmatrice di osservazione
    \displaystyle Qcovarianza del rumore di processo
    \displaystyle Rcovarianza del rumore di misura

    Il modello discreto base è:

    \begin{aligned} x_k &= A x_{k-1}+B u_{k-1}+w_{k-1},\\ y_k &= C x_k+v_k, \end{aligned}

    dove \displaystyle w_{k-1} e \displaystyle v_k sono rumori gaussiani, a media nulla, con covarianze rispettivamente \displaystyle Q e \displaystyle R. Di solito si assume che rumore di processo e rumore di misura siano incorrelati tra loro e nel tempo.

    Ciclo ricorsivo

    Il filtro alterna due fasi: predizione, basata sul modello, e correzione, basata sulla misura.

    FaseScopo
    Predizione dello statopropagare in avanti la stima precedente
    Predizione della covarianzastimare l’incertezza prima della misura
    Guadagno di Kalmanpesare fiducia nel modello e fiducia nel sensore
    Correzione dello statoaggiornare la stima usando l’innovazione
    Correzione della covarianzaridurre l’incertezza dopo la misura

    Le equazioni di predizione sono:

    \begin{aligned} \hat{x}_k^- &= A\hat{x}_{k-1}+B u_{k-1},\\ P_k^- &= A P_{k-1}A^T+Q. \end{aligned}

    La misura prevista, l’innovazione e la sua covarianza sono:

    \begin{aligned} \hat{y}_k^- &= C\hat{x}_k^-,\\ \nu_k &= y_k-\hat{y}_k^-,\\ S_k &= CP_k^-C^T+R. \end{aligned}

    Le equazioni di aggiornamento sono:

    \begin{aligned} K_k &= P_k^- C^T S_k^{-1},\\ \hat{x}_k &= \hat{x}_k^-+K_k\nu_k,\\ P_k &= (I-K_kC)P_k^-. \end{aligned}

    Per stabilità numerica si usa spesso la forma di Joseph:

    P_k=(I-K_kC)P_k^-(I-K_kC)^T+K_kRK_k^T.

    Questa forma è algebricamente equivalente nel caso ideale, ma in calcolo finito conserva meglio simmetria e semidefinitezza positiva della covarianza.

    Lettura ingegneristica

    SituazioneComportamento del filtro
    Misure molto rumoroseil guadagno diminuisce e il modello pesa di più
    Modello poco affidabilela covarianza predetta cresce e le misure pesano di più
    Sensori coerentil’incertezza si riduce dopo l’aggiornamento
    Sistema non osservabilealcune componenti dello stato non possono essere stimate bene

    La grandezza chiave è l’innovazione, cioè lo scarto tra misura e previsione:

    \nu_k=y_k-C\hat{x}_k^-.

    Se l’innovazione è sistematicamente grande o correlata nel tempo, il modello dinamico, la calibrazione dei sensori o le covarianze \displaystyle Q e \displaystyle R sono probabilmente mal specificati. Se R è grande rispetto a Q, il filtro si fida di più del modello; se Q è grande rispetto a R, segue più rapidamente le misure.

    La covarianza P_k segue una ricorsione di Riccati discreta. Nel regime stazionario, quando le matrici sono costanti e le condizioni strutturali sono favorevoli, questa ricorsione può convergere a una soluzione algebrica.

    Applicazioni e limiti

    AmbitoUso tipico
    Navigazione aerospazialefusione di IMU, GPS, altimetri e sensori stellari
    Roboticalocalizzazione e stima dello stato del robot
    Controllo industrialestima di variabili interne non misurabili
    Finanza quantitativastima di stati latenti in modelli dinamici
    Elaborazione segnalifiltraggio adattivo e tracking

    Il filtro classico richiede linearità e rumori gaussiani per essere ottimo in senso MMSE. In pratica viene usato anche come stimatore lineare quando la gaussianità è approssimata, ma la qualità dipende dalla coerenza del modello e dalla taratura di Q e R. Quando la dinamica o le misure sono non lineari si usano varianti come EKF e UKF; quando la distribuzione dello stato è fortemente non gaussiana si ricorre a filtri a particelle.

    Errori comuni: usare Q e R come parametri “decorativi”, trascurare unità di misura e correlazioni tra sensori, confondere stato stimato e misura filtrata, applicare il filtro a un sistema non osservabile, oppure aggiornare P_k con formule numericamente instabili in presenza di matrici mal condizionate.

    Approfondimenti: spazio di stato, controllabilità e osservabilità, ricorsione di Riccati discreta, processo stocastico, distribuzione normale.

    Ultimo aggiornamento: