Ho creato (diversi) filtri Kalman estesi discreti (EKF). Il modello di sistema che sto costruendo ha 9 stati e 10 osservazioni. Vedo che la maggior parte degli stati convergono tranne uno. Tutto tranne 1-2 della stima dello stato EKF sembra andare alla deriva. Poiché l'EKF dipende dalla convergenza di tutti gli stati, il resto degli stati è molto errato dopo la divergenza.
Come posso verificare l'osservabilità dell'EKF? Devo semplicemente controllare il rango della misura giacobino e vedere se è inferiore al rango massimo della misura giacobino?
Dopo aver aggiunto più misurazioni nella mia simulazione, sono stato in grado di far convergere le cose. Tuttavia, la mia domanda sull'osservabilità rimane ancora!
Problema:
I grafici di stima della verità a terra e dell'EKF possono essere trovati qui o vedere sotto.
Appunti:
- Il modello è abbastanza non lineare tra le fasi temporali 400-600, quindi una certa divergenza di alcuni stati
- Figura / Stato 6 è quello che sembra divergere
- Si prega di ignorare i grafici delle "letture del sensore" per le figure 8/9
Cose che ho provato:
- So che per i sistemi spaziali a stati lineari puoi usare il Teorema di Cayley Hamilton per verificare l'osservabilità.
- Ho provato a controllare il residuo di innovazione / misurazione
e
e tutte le innovazioni convergono a 0 - Ho anche testato diversi input e non sembrano influenzare la convergenza degli stati divergenti
- Ho sintonizzato l'EKF senza alcun segno di convergenza per gli stati divergenti
- Grafici per un altro segnale di ingresso: o vedi sotto
- Dopo aver parlato con un collega, mi ha suggerito di indagare su un altro problema che potrebbe essere che esiste un'osservazione che dipende linearmente da 2 stati, ad es
y = x1 + x2
. Esiste un numero infinito di valori che potrebbero soddisfare lo stessoy
, ma l'osservabilità non dovrebbe catturare anche questo problema?
Per favore fatemi sapere se c'è qualcos'altro che posso fornire.
Verità di base e grafici di stima EKF: fare
clic sull'immagine per ingrandirla
Segnale di ingresso aggiuntivo: fare
clic sull'immagine per ingrandirla
rank(O) = [H; HA...] = n
. L'unico problema è che ho qualcosa di similesin( x(3) )
o sinusoidale di stato 3. Lo linearizzox(3)
e lo tratto come parte della matrice A? Ci proverò al mattino e riferirò. cwrucutter.wordpress.com/2012/11/12/…