2013-10-23 11 views
18

Sto solo imparando il filtro di Kalman. Nella terminologia di Kalman Filter, ho qualche difficoltà con il rumore di processo. Il rumore di processo sembra essere ignorato in molti esempi concreti (il più focalizzato sul rumore di misura). Se qualcuno può indicarmi un link di livello introduttivo che descriva bene il rumore di processo con esempi, sarebbe fantastico.Spiegare la terminologia del rumore di processo in Kalman Filter

Usiamo un esempio concreto scalare per la mia domanda, data:

x_j = a x_j-1 + b u_j + w_j 

Diciamo x_j modelli la temperatura entro un frigorifero con il tempo. È 5 gradi e dovrebbe rimanere così, quindi modelliamo con a = 1. Se ad un certo punto t = 100, la temperatura del frigorifero diventa 7 gradi (ad esempio giorno caldo, scarso isolamento), quindi credo che il rumore di processo a questo punto sia di 2 gradi. Quindi la nostra variabile di stato x_100 = 7 gradi, e questo è il vero valore del sistema.

Domanda 1:

Se dunque io parafrasare la frase Vedo spesso per descrivere filtro di Kalman, “filtriamo il segnale x in modo che gli effetti del rumore w sono ridotti al minimo”, http://www.swarthmore.edu/NatSci/echeeve1/Ref/Kalman/ScalarKalman.html se si riducono al minimo il effetti dei 2 gradi, stiamo cercando di sbarazzarci della differenza di 2 gradi? Ma lo stato reale a è x_100 == 7 gradi. Cosa stiamo facendo al rumore di processo w esattamente quando filtriamo Kalmen?

Domanda 2:

Il rumore processo ha una varianza di Q. Nell'esempio del frigo semplice, sembra facile creare un modello perché sai che lo stato vero sottostante è 5 gradi e puoi prendere Q come deviazione da quello stato. Ma se il vero stato sottostante è fluttuante nel tempo, quando si modella, quale parte di questo sarebbe considerata fluttuazione dello stato rispetto al "rumore del processo". E come facciamo a determinare un buon Q (ancora un esempio sarebbe bello)?

Ho scoperto che come Q viene sempre aggiunto alla previsione di covarianza non importa quale passo volta che sono al, (vedi formula covarianza previsione da http://greg.czerniak.info/guides/kalman1/) che, se si seleziona un eccessivamente grande Q, allora non sembra il filtro di Kalman sarebbe ben educato.

Grazie.

EDIT1 My Interpretation

mia interpretazione del rumore processo termine è la differenza tra lo stato effettivo del sistema e lo stato modellato dalla matrice di transizione di stato (es. a * x_j-1). E ciò che il filtro di Kalman cerca di fare è portare la previsione più vicino allo stato attuale. In questo senso, in realtà, in parte, "incorpora" il rumore di processo nella previsione attraverso il meccanismo di feedback residuo, piuttosto che "eliminarlo", in modo che possa prevedere meglio lo stato attuale. Non ho letto una simile spiegazione in nessuna parte della mia ricerca, e gradirei che chiunque commentasse questo punto di vista.

risposta

13

Nel Kalman filtrare il "rumore processo" rappresenta l'idea/caratteristica che lo stato del sistema cambia nel corso del tempo, ma non si conoscono i dettagli esatti di quando/come si verificano questi cambiamenti, e quindi abbiamo bisogno di modellarli come un processo casuale.

Nel tuo esempio frigorifero:

  • lo stato del sistema è la temperatura,
  • otteniamo misurazioni della temperatura sul certo intervallo di tempo, dire ogni ora, , cercando il quadrante termometro. Nota che di solito è necessario rappresentare le incertezze coinvolte nel processo di misurazione nel filtraggio di Kalman, ma non ci si è concentrati su questo nella tua domanda. Supponiamo che questi errori siano piccoli.
  • Al momento t si guarda il termometro, vedere che dice 7 gradi; poiché abbiamo assunto che gli errori di misurazione siano molto piccoli, ovvero che la temperatura effettiva sia (molto vicina a) 7 gradi.
  • Ora la domanda è: qual è la temperatura in un secondo momento, diciamo 15 minuti dopo aver guardato?

Se non sappiamo se/quando il condensatore nel frigorifero si accende potremmo avere: 1. la temperatura al momento è ancora superiore a quello 7degrees (15 minuti riesce per avvicinarsi al temperatura massima in un ciclo), 2. Abbassare se il condensatore è/è stato funzionante, o addirittura, 3. essendo pressappoco lo stesso.

Questa idea che ci sono una distribuzione dei risultati possibili per lo stato reale del sistema in un secondo momento è il "rumore processo"

Nota: il mio modello qualitativo per il frigorifero è: il condensatore non è correndo, la temperatura sale fino a raggiungere una temperatura di soglia di alcuni gradi al di sopra della temperatura nominale nominale (nota - si tratta di un sensore quindi potrebbe esserci rumore in termini di temperatura alla quale il condensatore si accende), il condensatore rimane acceso fino a la temperatura scende di alcuni gradi sotto la temperatura impostata. Si noti inoltre che se qualcuno apre la porta, allora ci sarà un salto nella temperatura; dal momento che non sappiamo quando qualcuno potrebbe farlo, lo modelliamo come un processo casuale.

+0

Grazie, penso di aver capito la definizione del rumore di processo. Ma la maggior parte del materiale sul filtro di Kalman sembra dire che il filtro di Kalman minimizzi il rumore del processo, ma il processo è ciò che sta accadendo (cioè in questo caso, basato sul funzionamento del condensatore ... ecc.), Quindi il rumore non è andando via. In che modo il filtro di Kalman aiuta in merito al rumore di processo? – frank

+0

@frank se quello che stai leggendo dice "rumore" generico, probabilmente si riferisce al rumore di misurazione; se stanno davvero dicendo "rumore di processo", allora direi che è un cattivo modo di spiegare le cose. – Dave

4
  1. Sì, non penso che la frase sia buona. Lo scopo principale di un filtro Kalman è di minimizzare gli effetti del rumore di osservazione, non il rumore di processo. Penso che l'autore possa fondere il filtro di Kalman con il controllo di Kalman (dove STATE cercando di minimizzare l'effetto del rumore di processo).
  2. Lo stato non "fluttua" nel tempo, se non attraverso l'influenza del rumore di processo.

Ricordare, un sistema in genere non ha uno stato "vero" intrinseco. Un frigorifero è un cattivo esempio, perché è già un sistema di controllo, con proprietà non lineari. Una palla di cannone volante è un esempio migliore. C'è un posto dove "realmente è", ma ciò non è intrinseco ad A. In questo esempio, puoi pensare al vento come a una sorta di "rumore di processo". (Non un grande esempio, dal momento che non è un rumore bianco, ma lavora con me qui.) Il vento è un rumore di processo tridimensionale che influenza la velocità della palla di cannone; non influenza direttamente la posizione della palla di cannone.

Ora, supponiamo che il vento in questa zona soffi sempre a nord-ovest. Dovremmo vedere una covarianza positiva tra le componenti del vento del nord e dell'ovest. Una deviazione della velocità della palla di cannone verso nord dovrebbe farci prevedere una simile deviazione verso ovest, e viceversa.

Pensa a Q più come covarianza che come varianza; l'aspetto di autocorrelazione è quasi casuale.

+0

Grazie. Quando cerco il controllo di Kalman su google, si scopre principalmente esempi di filtri di Kalman. È una configurazione separata del tutto, vale a dire. fa il diagramma a blocchi di feedback in http://www.swarthmore.edu/NatSci/echeeve1/Ref/Kalman/ScalarKalman.html Fig 5, e le equazioni di Kalman associate diverse. Sembra che ridurre al minimo il rumore di processo sia ciò a cui sarei interessato e vorrei saperne di più. Ecco un'altra domanda sul filtro kalman che ho postato su ciò che sto cercando: http://stackoverflow.com/questions/19440881/python-using-kalman-filter-to-improve-simulation-but-getting-worse-results – frank

+0

I ho aggiunto un blocco EDIT1 con la mia interpretazione del rumore di processo, per favore dai un'occhiata e fammi sapere cosa ne pensi. Grazie. – frank

0

È una buona discussione che va qui. Vorrei aggiungere che il concetto di rumore di processo è che qualsiasi previsione fatta in base al modello sta avendo degli errori ed è rappresentata usando la matrice Q. Se si notano le equazioni in KF per la previsione della matrice di Covariance (P_prediction) che è in realtà l'errore quadratico medio dello stato che si prevede, la Q viene semplicemente aggiunta ad essa. PPredict = APA '+ Q. Suggerisco, darebbe una buona idea se si potesse trovare la derivazione delle equazioni di KF.

+0

Cerca di evitare commenti nella risposta a meno che tu non abbia una risposta specifica ai dettagli. Si prega di utilizzare la casella di commento qui sotto e una volta che si ha sufficiente reputazione si sarà in grado di commentare qualsiasi post. :) –

Problemi correlati