Filtro Kalman - Modo ottimale per gestire misurazioni "derivate"?


13

Cioè, se hai come variabili di stato posizione ( p ) e velocità ( v ), e faccio misurazioni a bassa frequenza di p , anche questo mi dà indirettamente informazioni su v (poiché è la derivata di p ). Qual è il modo migliore per gestire una simile relazione?

A) Nella fase di aggiornamento, devo solo dire che ho misurato p e fare affidamento sul processo di filtraggio e sulla mia matrice di covarianza di stato ( P ) accumulata per correggere v ?

B) Devo creare un passaggio di previsione "extra", dopo o prima del mio passaggio di aggiornamento per la misurazione di p , che utilizza il mio p misurato e un delta (relativamente grande) per effettuare una previsione di varianza elevata di v ?

C) Nel mio passaggio di aggiornamento / misurazione, dovrei dire di aver effettuato una misurazione di p e v , e quindi in qualche modo codificare le informazioni sulla loro interdipendenza nella matrice di co-varianza di misurazione ( R )?


Per un po 'di più, ecco la situazione specifica in cui ho riscontrato il problema:

Sto lavorando con un sistema in cui voglio stimare la posizione ( p ) di un oggetto e faccio frequenti misurazioni di accelerazione ( a ) e rare, ad alto rumore di p .

Attualmente sto lavorando con una base di codice che fa questo con un filtro di Kalman esteso, dove si tiene come variabili di stato p e v . Esegue una fase di "previsione" dopo ogni misurazione di accelerazione, in cui utilizza i tempi a e delta misurati per integrare e prevedere nuovi p e v . Quindi esegue un passaggio di "aggiornamento" / "misurazione" per ogni misura (rara) p .

Il problema è questo: ricevo misurazioni occasionali di errori elevati di a , che si traducono in v altamente errata . Ovviamente, ulteriori misurazioni di a non correggeranno mai questo, ma le misurazioni di p dovrebbero sbarazzarsi di questo. E, in effetti, questo sembra accadere ... ma MOLTO lentamente.

Pensavo che ciò potesse essere parzialmente perché l'unico modo in cui p influenza v in questo sistema è attraverso la matrice di covarianza P - cioè il metodo A) dall'alto - che sembra abbastanza indiretto. Mi chiedevo se ci sarebbe stato un modo migliore per incorporare la nostra conoscenza di questa relazione tra p e v nel modello, in modo che le misurazioni di p correggessero v più velocemente.

Grazie!


1
un'

2
pvpK+1=pK+vKΔt

Risposte:


3

Nel mondo ideale avresti il ​​modello giusto e lo utilizzeresti.
Nel tuo caso, il modello non è perfetto.
Tuttavia, i passaggi che stai suggerendo si basano su una conoscenza del processo, che dovresti incorporare nell'equazione del processo utilizzando la matrice del modello dinamico:

  1. Il modo classico e corretto dato alla matrice F è costruito correttamente secondo le tue conoscenze.

  2. FioK=FiojFjKQR

  3. Se non misuri V, devi "stimarlo" in qualche modo. Tuttavia, per definizione, se il tuo caso rientra nelle ipotesi di Kalman, usando il filtro di Kalman si otterrebbero i migliori risultati.

Tutto sommato, attenersi al "classico".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.