Terima kasih kepada semua orang yang mengirim komentar / jawaban untuk pertanyaan saya kemarin ( Menerapkan filter Kalman untuk posisi, kecepatan, percepatan ). Saya telah melihat apa yang direkomendasikan, dan khususnya pada (a) contoh wikipedia tentang posisi dan kecepatan satu dimensi dan juga situs web lain yang menganggap hal serupa .
Perbarui 26-Apr-2013 : pertanyaan asli di sini berisi beberapa kesalahan, terkait dengan fakta bahwa saya belum memahami contoh wikipedia dengan benar tentang posisi dan kecepatan satu dimensi . Dengan pemahaman saya yang lebih baik tentang apa yang terjadi, saya sekarang telah menyusun ulang pertanyaan dan memfokuskannya lebih erat.
Kedua contoh yang saya rujuk dalam paragraf pengantar di atas menganggap bahwa hanya posisi yang diukur. Namun, contoh baik memiliki jenis perhitungan untuk kecepatan. Sebagai contoh, misalnya Wikipedia menentukan matriks sebagai , yang berarti bahwa hanya posisi input. Fokus pada contoh Wikipedia, negara vektor dari filter Kalman berisi posisi dan kecepatan , yaitu
Misalkan pengukuran posisi pada waktu yaitu x k . Kemudian jika posisi dan kecepatan pada saat k - 1 adalah x k - 1 dan ˙ x k - 1 , dan jika suatu adalah percepatan konstan yang berlaku dalam selang waktu k - 1 untuk k , dari pengukuran x itu mungkin untuk menyimpulkan nilai untuk sebuah menggunakan rumus
Ini berarti bahwa pada saat , pengukuran ˙ x k kecepatan yang diberikan oleh
Semua jumlah di sisi kanan persamaan itu , x k - 1 dan ˙ x k - 1 ) biasanya didistribusikan variabel acak dengan cara yang dikenal dan standar deviasi, sehingga R matrix untuk vektor pengukuran
dapat dihitung. Apakah ini cara yang valid untuk memperkenalkan perkiraan kecepatan ke dalam proses?
sumber
Jawaban:
Jika Anda memilih negara Anda dengan tepat, maka perkiraan kecepatan datang "gratis". Lihat derivasi dari model sinyal di bawah ini (untuk kasus 1-D sederhana yang telah kita lihat).
Model Sinyal, Ambil 2
Jadi, kita benar-benar perlu menyepakati model sinyal sebelum kita bisa bergerak maju. Dari mengedit Anda, sepertinya model Anda dari posisi, , adalah:xk
Jika keadaan kita seperti sebelumnya: maka persamaan pembaruan status adalah hanya: xk+1=( 1 Δ t 0 1 )xk+( ( Δ t ) 2
Itu memberikan matriks yang berbeda dari versi sebelumnya, tetapi matriks F dan H harus sama.G F H
Jika saya menerapkan ini dalam
scilab
(maaf, tidak ada akses ke matlab), sepertinya:Lalu, saya bisa menerapkan persamaan filter Kalman untuk ini (pengukuran berisik).y
Jadi kami memiliki pengukuran bising kami , dan kami telah menerapkan filter Kalman untuk mereka dan menggunakan model sinyal yang sama untuk menghasilkan y seperti yang kami lakukan untuk menerapkan filter Kalman (asumsi yang cukup besar, kadang-kadang!).y y
Kemudian plot berikut menunjukkan hasilnya.
Plot 1 : dan x k terhadap waktu.y xk
Plot 2 : Tampilan yang diperbesar dari beberapa sampel pertama:
Plot 3 : Sesuatu yang tidak pernah Anda dapatkan dalam kehidupan nyata, posisi sebenarnya vs perkiraan posisi tersebut.
Plot 4 : Sesuatu yang Anda juga tidak pernah dapatkan dalam kehidupan nyata, kecepatan sebenarnya vs perkiraan kecepatan.
Plot 5 : Norma matriks kovarian negara (sesuatu yang harus selalu Anda pantau dalam kehidupan nyata!). Perhatikan bahwa sangat cepat berubah dari nilai awalnya yang sangat besar ke sesuatu yang sangat kecil, jadi saya hanya menunjukkan beberapa sampel pertama.
Plot 6 : Plot kesalahan antara posisi sebenarnya dan kecepatan dan perkiraan mereka.
Ini berarti bahwa prosedur pembaruan Kalman menghasilkan
Seperti yang Anda lihat, nilai untuk kecepatan diberikan dengan tepat formula yang Anda usulkan untuk digunakan untuk perkiraan kecepatan. Jadi meskipun Anda tidak bisa melihat perhitungan apa pun( xk- xk - 1) / dt untuk kecepatan, sebenarnya itu tersembunyi di sana.
sumber