Filter Kalman - Cara Optimal untuk Menangani Pengukuran "Turun"?

13

Yaitu, jika Anda memiliki posisi variabel keadaan ( p ) dan kecepatan ( v ), dan saya membuat pengukuran frekuensi rendah p , ini juga secara tidak langsung memberi saya informasi tentang v (karena ini adalah turunan dari p ). Apa cara terbaik untuk menangani hubungan seperti itu?

A) Pada langkah pembaruan, haruskah saya hanya mengatakan saya telah mengukur p , dan mengandalkan proses penyaringan, dan akumulasi matriks kovarians state ( P ) saya, untuk memperbaiki v ?

B) Haruskah saya membuat langkah prediksi "ekstra", baik setelah atau sebelum langkah pembaruan saya untuk pengukuran p , yang menggunakan p diukur dan waktu delta (relatif besar) saya untuk membuat prediksi varians v yang tinggi ?

C) Dalam langkah pembaruan / pengukuran saya, haruskah saya mengatakan saya telah membuat pengukuran p dan v , dan kemudian entah bagaimana menyandikan informasi tentang saling ketergantungan mereka ke dalam matriks co-variance pengukuran ( R )?


Untuk sedikit lebih banyak latar belakang, inilah situasi khusus di mana saya mengalami masalah:

Saya bekerja dengan sistem di mana saya ingin memperkirakan posisi ( p ) suatu objek, dan saya sering melakukan pengukuran akselerasi ( a ) dan pengukuran p -noise yang jarang dan tinggi .

Saya saat ini bekerja dengan basis kode yang melakukan ini dengan Extended Kalman Filter, di mana ia disimpan sebagai variabel keadaan p dan v . Ini menjalankan langkah "prediksi" setelah setiap pengukuran percepatan, di mana ia menggunakan waktu a dan delta yang diukur untuk mengintegrasikan dan memprediksi p dan v baru . Kemudian menjalankan langkah "perbarui" / "pengukuran" untuk setiap pengukuran (jarang) p .

Masalahnya adalah ini - saya mendapatkan pengukuran tinggi-kesalahan sesekali sebuah , yang mengakibatkan sangat-keliru v . Jelas, pengukuran lebih lanjut dari suatu tidak akan pernah memperbaiki ini, tapi pengukuran p harus menyingkirkan ini. Dan, pada kenyataannya, ini tampaknya terjadi ... tetapi SANGAT lambat.

Saya berpikir bahwa ini mungkin sebagian karena satu-satunya cara p mempengaruhi v dalam sistem ini adalah melalui matriks kovarian P - yaitu, metode A) dari atas - yang tampaknya cukup tidak langsung. Saya bertanya-tanya apakah akan ada cara yang lebih baik untuk menggabungkan pengetahuan kita tentang hubungan antara p dan v ke dalam model, sehingga pengukuran p akan mengoreksi v lebih cepat.

Terima kasih!

Paul Molodowitch
sumber
1
Saya akan mencoba kembali dengan jawaban yang lebih lama, tetapi reaksi langsung saya terhadap pertanyaan Anda adalah A) Ya, B dan C) Mungkin tidak. Apakah Anda dapat mendeteksi pengukuran kesalahan tinggi dengan cara tertentu? Jika Anda bisa mendeteksi outlier, Anda bisa membuangnya untuk mengurangi efeknya. Anda mungkin kesulitan untuk mendapatkan kinerja yang hebat jika sample rate Anda dari posisi sistem terlalu rendah dibandingkan dengan dinamikanya. Sebuah
Jason R
2
Satu hal lagi; harus ada hubungan implisit antara dan dinyatakan dalam matriks transisi keadaan Anda. Secara khusus, itu harus menyatakan bahwa atau serupa. halvhalk+1=halk+vkΔt
Jason R

Jawaban:

3

Di dunia ideal Anda akan memiliki model yang benar dan menggunakannya.
Dalam kasus Anda, modelnya tidak sempurna.
Namun langkah-langkah yang Anda sarankan didasarkan pada pengetahuan yang Anda miliki tentang proses - yang harus Anda masukkan ke dalam persamaan proses Anda menggunakan matriks model dinamis Anda:

  1. Cara klasik dan benar diberikan matriks F dibangun dengan benar sesuai dengan pengetahuan Anda.

  2. Langkah prediksi "Ekstra" tidak menghasilkan apa-apa, karena dan jika Anda mengurangi kerangka waktu, Anda harus mengubah dan sesuai yang seharusnya membuat Anda pada akhir rantai langkah-langkah kecil yang sama P_k_k-1.Fsayak=FsayajFjkQR

  3. Jika Anda tidak mengukur V Anda harus "Perkirakan" itu entah bagaimana. Namun menurut definisi, jika kasus Anda berada di bawah asumsi Kalman menggunakan filter Kalman akan menghasilkan hasil terbaik.

Semua dalam semua, tetap dengan "Klasik".

Royi
sumber