Flitro di Kalman: Implementazione |
Un filtro di Kalman č normalmente sviluppato con un linguaggio testuale del tipo Matlab, C o analoghi. E' possibile sviluppare lo stesso funzionamento anche con un linguaggio di tipo Simulink o LabView. Un filtro di Kalman č normalmente costruito come una funzione richiamata ciclicamente all'interno di un loop. Nell'esempio che segue, viene mostrato l'esempio di un filtro di Kalman utilizzato per la stima dello stato di un processo del tipo: x1 = x1 + 0.2 dt x2 + d1 x2 = x2 + d2
dove: - x1, x2: stati del sistema - dt : intervallo di campionamento del sistema - d1, d2: disturbi sullo stato del sistema
La misura a disposizione č x1 e bisogna stimare il valore di x2. z = x1 + n
dove: - z: misura dello stato x1 - n: rumore sulla misura
Nel riquadro che segue, sono state utilizzate le seguenti definizioni: - e1, e2: covarianza dell'incertezza sul valore iniziale dello stato - q1, q2: covarianza del disturbo sullo stato - r1: covarianza del rumore sulla misura
Il file di esempio č anche scaricabile dal collegamento che segue:
Per eseguire l'esempio, digitare il comando: [Xres, Pres, XRres] = Kalman_Loop;
L'esecuzione del filtro porta ad i seguenti grafici:
Valore da stimare di X2:
Stima di X2:
Alcune semplici istruzioni per mandare in esecuzione il filtro- copiare il file Kalman_Loop.m
nella directory di lavoro, solitamente c:\matlabx\work La scelta dei valori della covarianzae1,
e2, q1, q2, r1 sono ricavati sulla base dei valori scelti per il rumore
Ackowledges- Paola Leaci (Universitā di Trento) per il feedback sulla presente pagina. Questa pagina č stata aggiornata il 06/08/05. |
Leonardo
Daga's Warehouseâ, http:/digilander.iol.it/LeoDaga |