Filter Kalman dalam praktek

17

Saya telah membaca deskripsi dari filter Kalman, tetapi saya tidak jelas tentang bagaimana hal itu menyatu dalam praktik. Tampaknya terutama ditargetkan pada sistem mekanik atau listrik karena menginginkan transisi keadaan linear dan tidak berguna untuk deteksi anomali atau mencari transisi keadaan karena alasan yang sama (ia menginginkan transisi keadaan linear), apakah itu benar? Dalam praktiknya, bagaimana orang biasanya menemukan komponen yang diharapkan diketahui terlebih dahulu untuk menggunakan filter Kalman. Saya telah membuat daftar komponen, mohon koreksi saya jika pemahaman saya tentang apa yang perlu diketahui sebelumnya salah.

Saya percaya ini tidak perlu diketahui "sebelumnya":

  • Proses kebisingan w
  • Kebisingan pengamatan v
  • Status aktual (inilah yang diperkirakan oleh filter Kalman)x

Saya percaya ini perlu diketahui "di muka" untuk menggunakan filter Kalman:

  • Model transisi keadaan linier yang kami terapkan ke (kita perlu mengetahui hal ini sebelumnya, sehingga keadaan kita harus diatur oleh hukum yang dikenal, yaitu filter Kalman berguna untuk mengoreksi pengukuran ketika transisi dari satu negara ke negara lain dipahami dengan baik dan deterministik hingga sedikit noise - ini bukan pencari anomali atau alat untuk menemukan perubahan keadaan acak)x
  • Kontrol vektor kamu
  • Model input kontrol yang diterapkan untuk mengendalikan vektor (kita perlu tahu ini terlebih dahulu, jadi untuk menggunakan filter Kalman kita juga perlu tahu terlebih dahulu bagaimana nilai kontrol kita mempengaruhi model, hingga paling banyak beberapa noise gaussian, dan efek harus linier)kamu
  • Kovarian dari kebisingan proses (yang tampaknya tergantung pada waktu dalam artikel wikipedia, yaitu tergantung pada waktu k ) - tampaknya kita perlu mengetahui ini sebelumnya dan seiring waktu, saya berasumsi dalam praktiknya dianggap konstan ?Qk
  • Model pengamatan (linier) H
  • Covariance (yang tampaknya juga tergantung waktu dalam artikel wikipedia) - masalah yang mirip dengan QRQ

PS Dan ya saya tahu banyak dari ini tergantung pada waktu, saya hanya menjatuhkan semua kekacauan subskrip. Jangan ragu untuk membayangkan huruf kecil di kanan dan bawah dari setiap nama variabel jika Anda mau.k

John Robertson
sumber

Jawaban:

18

Untuk beberapa konteks, mari kembali ke persamaan Kalman Filter:

.x(k+1)=F(k)x(k)+G(k)kamu(k)+w(k)z(k)=H(k)x(k)+v(k)

Singkatnya, untuk vanilla KF biasa:

harus sepenuhnya ditentukan. Ini datang langsung dari persamaan diferensial sistem. Jika tidak, Anda memilikimasalah estimasi ganda(yaitu estimasi kondisi dan model sistem). Jika Anda tidak memiliki persamaan diferensial sistem, maka KF bukan untuk Anda!F(k)

menurut definisi, tidak dapat diketahui. Lagi pula, jika Anda mengetahuinya, itu tidak akan menjadi masalah estimasi!x(k)

kamu(k)G(k)

w(k)Q(k)Q adalah konstan. Dalam beberapa kasus, ini akan diketahui, tetapi dalam banyak kasus, ini akan "disetel" selama pengembangan sistem.

H(k)z(k) juga dikenal karena itu adalah pembacaan dari sensor Anda!

v(k)R(k)

Ada sejumlah besar "trik" yang dapat dilakukan untuk mengatasi batasan dalam vanilla KF biasa, tetapi ini jauh di luar cakupan pertanyaan ini.


Renungan:

Sementara googling untuk "Kalman Filter" menghasilkan jutaan klik, ada beberapa hal yang menurut saya layak untuk dilihat. The halaman wikipedia adalah terlalu berantakan untuk belajar dari efektif :(

Pada AVR Freaks , ada intro "persamaan bebas" ke Filter Kalman yang saya tulis beberapa waktu lalu untuk mencoba memperkenalkan di mana ia digunakan untuk nyata.

Jika Anda tidak takut dengan matematika, ada beberapa buku yang layak dibaca yang ada di tingkat sarjana / pascasarjana awal. Cobalah Brown dan Hwang yang mencakup semua teori dan banyak contoh sistem. Yang lain yang sangat direkomendasikan tetapi saya belum baca adalah Gelb , yang memiliki keuntungan berbeda karena murah!

Damien
sumber
1
+1 untuk tautan AVR Freaks! Dilakukan dengan sangat baik. Mungkin akan menggunakannya di kelas. :-)
Peter K.