Pengantar Kalman Filter Diskrit PDF
Pengantar Kalman Filter Diskrit PDF
Saya awali tulisan ini dengan Nama Alloh Sang Maha Pengasih Sang Maha Penyayang. Segala
Puji bagi-Nya yang telah mengajarkan ilmu kepada siapa saja yang dikehendaki-Nya.
Sungguh, saya merasa terbantu dengan dokumen Introduction to Kalman Filter oleh Greg
Welch & Gary Bishop, 2012, dalam memahami esensi kalman filter diskrit. Saya coba
terjemahkan, mungkin dapat membantu pembaca yang enggan berlama-lama dengan bahasa
Inggris namun tertarik memahami konsep kalman filter diskrit. Bagian tentang Extended
Kalman Filter belum sempat saya terjemahkan, semoga bisa dilanjutkan di lain waktu. Semoga
bermanfaat.
Daftar Istilah
Estimasi: pencarian nilai sebenarnya dari nilai yang sudah tercampur dengan noise
Diskrit: sinyal yang hanya memiliki nilai pada saat-saat tertentu, dengan interval waktu yang
konstan, cth. memiliki nilai setiap 5 detik
Kovarian: yg dimaksud dalam dokumen ini adalah Varian, yaitu besaran statistik yang
menyatakan kuadrat dari standar deviasi
Momen: istilah lain dari fungsi ekspektasi, cth. ekspektasi orde satu disebut momen pertama
White noise: noise yang memiliki magnitude yang tetap untuk semua frekuensi
1
[TERJEMAHAN]
Pengenalan Kalman Filter
Greg Welch1 Gary Bishop2
19 Juni 2012
TR 95-041
Department of Computer Science
University of North Carolina Chapel Hill
Chapel Hill, NC 27599-3175
Diperbarui: Senin, 24 Juli 2006
Abstrak
Tujuan dari makalah ini adalah untuk memberi pengenalan praktis tentang Kalman Filter
diskrit. Pengenalan ini meliputi deskripsi dan beberapa diskusi tentang dasar Kalman Filter
diskrit, penurunan, deskripsi dan beberapa diskusi tentang Extended Kalman Filter, dan
contoh sederhana dengan bilangan nyata beserta hasilnya.
1
welch@cs.unc.edu, http://www.cs.unc.edu/welch
2
gb@cs.unc.edu, http://www.cs.unc.edu/gb
2
Proses yang Diestimasi
Persoalan umum untuk Kalman Filter diskrit adalah mencoba untuk mengestimasi state
dari sebuah proses waktu diskrit yang dinyatakan oleh persamaan beda stokastik linier
xk Ax k 1 Buk 1 wk 1
(1.1)
zk Hxk vk (1.2)
wk dan vk adalah variabel acak yang mewakili noise proses dan noise pengukuran, keduanya
independen, jenis white noise, dengan probabilitas berdistribusi normal.
p( w) ~ N (0, Q ) (1.3)
Dalam praktik, kovarian noise proses Q dan kovarian noise pengukuran R bisa berubah dalam
tiap waktu atau pengukuran, namun di sini keduanya diasumsikan konstan.
Matriks A (nxn) dalam persamaan beda (1.1) menghubungkan state pada waktu diskrit
sebelumnya, yaitu k-1, dengan state pada waktu diskrit sekarang, yaitu k, tanpa pengaruh
fungsi pemicu u atau noise proses w. Dalam praktik, A bisa berubah dalam tiap waktu, tapi di
sini kita asumsikan konstan. Matriks B (nxl) menghubungkan input kontrol u Rl dengan state
x, u bersifat opsional (bisa ada / tidak). Matriks H (mxn) dalam persamaan pengukuran (1.2)
menghubungkan state dengan pengukuran . Dalam praktik, H bisa berubah dalam tiap
waktu atau pengukuran, tapi di sini kita asumsikan konstan.
Komputasi Filter
Kita definisikan (perhatikan notasi minus di atas) sebagai pra-estimasi state pada
step k berdasarkan data dari proses (1.1) sebelum step k, dan sebagai pasca estimasi
state pada step k berdasarkan nilai . Lalu, kita definisikan pra dan pasca estimasi untuk error
sebagai
ek xk xk , dan
ek xk xk
Pk E[ ek ekT ] (1.5)
3
Pk E[ ek ekT ] (1.6)
Dalam menurunkan persamaan untuk kalman filter, kita mulai dengan persamaan yang
menghitung pasca-estimasi state yang dibangun dari kombinasi pra-estimasi dan
selisih antara nilai ukur aktual dan prediksi nilai ukur sebagai berikut (1.7). Beberapa
pertimbangan untuk (1.7) dapat dibaca dalam buku The Probabilistic Origins of the Filter
kami sertakan di bawah
= + K( ) (1.7)
selisih ( ) di (1.7) disebut perbaikan atau selisih pengukuran. Selisih ini mewakili
ketidaksesuaian antara nilai ukur yang diprediksi dan nilai ukur sebenarnya . Selisih
nol berarti nilai keduanya sama persis.
Matrix K (nxm) di (1.7) dipilih sebagai faktor penguat (gain) yang meminimumkan kovarian
pasca-estimasi error (1.6). Untuk penjelasan detil, lihat [Maybeck79; Brown92; Jacobs93].
Salah satu formulasi K yang meminimumkan (1.6) adalah3
= ( + )1 (1.8)
=
+
Pada (1.8) kita lihat bahwa kovarian error pengukuran R mendekati nol, sehingga gain K
membuat selisih pengukuran berpengaruh lebih besar. Secara matematis,
lim = 1
0
Di sisi lain, bila kovarian pra-estimasi error mendekati nol, maka gain K membuat selisih
pengukuran berpengaruh lebih kecil. Secara matematis,
lim = 0
0
Cara lain untuk memahami peran gain K adalah: bila kovarian error pengukuran R mendekati
nol, nilai ukur aktual jauh lebih dipercaya kebenarannya, sedangkan prediksi nilai ukur
semakin tidak dapat dipercaya kebenarannya. Bila kovarian pra-estimasi error
mendekati nol, nilai ukur aktual semakin tidak dapat dipercaya, sedangkan prediksi nilai
ukur semakin dapat dipercaya kebenarannya.
3
Semua persamaan Kalman filter dapat direkayasa menjadi beberapa bentuk. Persamaan (1.8) mewakili salah
satu formulasi Kalman gain yang populer.
4
Konsep Probabilitas dalam Filter
Pertimbangan dalam penentuan (1.7) berakar pada probabilitas pra-estimasi yang
bersyarat pada semua nilai ukur sebelumnya (aturan Bayes). Kalman filter melibatkan dua
momen pertama dari distribusi variabel state,
[ ] =
[( )( ) ] =
Nilai pasca-estimasi state (1.7) mewakili rata-rata / mean (momen pertama) dari distribusi
state nilai ini berdistribusi normal bila kondisi (1.3) dan (1.4) dipenuhi. Kovarian pasca-
estimasi error (1.6) mewakili varian dari distribusi state (momen ke dua non-sentral). Dengan
kalimat lain,
( | )~([ ], [( )( ) ])
( | ) = ( , )
Kalman filter mengestimasi satu proses melalui mekanisme kontrol umpan-balik: Filter
mengestimasi state dari proses kemudian mendapat umpan balik berupa nilai hasil
pengukuran yang bercampur noise. Persamaan untuk Kalman filter dikelompokkan dalam dua
bagian: persamaan update waktu dan persamaan update pengukuran. Persamaan update
waktu bertugas untuk mendapatkan nilai pra-estimasi untuk waktu step selanjutnya.
Persamaan update pengukuran bertugas untuk keperluan umpan balik, seperti memadukan
hasil pengukuran terbaru dengan nilai pra-estimasi untuk mendapatkan nilai pasca-estimasi
yang lebih baik.
Persamaan update waktu disebut juga persamaan prediksi, sedangkan persamaan update
pengukuran disebut persamaan koreksi. Algoritma estimasi Kalman filter menyerupai
algoritma prediksi-koreksi untuk menyelesaikan masalah numerik sebagaimana pada Gambar
1-1.
5
Gambar 1-1. Siklus kerja Kalman filter diskrit. Update waktu membuat prediksi nilai
state. Update pengukuran, menyesuaikan nilai prediksi dengan nilai ukur aktual.
Persamaan spesifik untuk update waktu dan pengukuran disertakan dalam Tabel 1-1 dan
Tabel 1-2.
= 1 + 1 (1.9)
= 1 + (1.10)
Perhatikan, persamaan update waktu memproyeksikan (memprediksi) nilai state dan estimasi
kovarian dari waktu step k-1 menuju step k. A dan B dari (1.1), dan Q dari (1.3). Kondisi awal
untuk filter telah dibahas pada referensi terdahulu.
= ( + )1 (1.11)
= + K( ) (1.12)
= (1 ) (1.13)
Tugas pertama dalam Update pengukuran adalah menghitung Kalman Gain, Kk. Persamaan
Kalman gain di sini (1.11) sama dengan (1.8). Selanjutnya mengukur nilai proses aktual ,
kemudian menghitung pasca-estimasi state dengan melibatkan nilai hasil pengukuran
sebagaimana (1.12). Persamaan (1.12) sama dengan (1.7). Tugas terakhir adalah
mendapatkan nilai pasca-estimasi kovarian error melalui (1.13).
Setelah menjalani satu siklus update waktu dan pengukuran, siklus ini diulang yang mana nilai
pasca-estimasi sebelumnya digunakan untuk memprediksi nilai pra-estimasi yang baru. Sifat
rekursif ini adalah satu sifat penting dari Kalman filter membuat implementasi praktis jauh
lebih sederhana daripada implementasi Wiener filter [Brown92] yang dirancang untuk
beroperasi dengan melibatkan semua data secara langsung dalam setiap kali estimasi.
Gambar 1-2 menampilkan operasi Kalman filter secara menyeluruh.
6
kita dapat mengambil sampel pengukuran secara offline untuk menentukan varian dari noise
pengukuran.
Penentuan kovarian noise proses Q umumnya lebih sulit, karena kita tidak dapat mengamati
proses secara langsung. Terkadang satu model proses yang sederhana dapat menghasilkan
estimasi yang baik dengan pemilihan Q yang tepat, bila pengukuran terhadap proses dapat
diandalkan.
Pada keadaan yang lain, seringkali penyesuaian (tuning) parameter filter Q dan R dapat
menghasilkan performansi filter yang superior (secara statistik). Mekanisme penyesuaian
ini biasanya dijalankan secara offline, terkadang dengan bantuan Kalman filter tipe yang lain.
Proses penyesuaian ini disebut identifikasi sistem.
Gambar 1-2: Skema lengkap Operasi Kalman filter, menggabungkan diagram pada
Gambar 1-1 dan persamaan pada Tabel 1-1 dan Tabel 1-2.
Karena Q dan R adalah konstan, kovarian error estimasi Pk dan Kalman gain Kk akan stabil
dengan cepat kemudian bernilai konstan (lihat persamaan update filter di Gambar 1-2). Jika
demikian, kedua parameter ini dapat dihitung dulu dengan menjalankan filter secara offline,
atau (misal) dengan menentukan nilai steady-state dari Pk sebagaimana pada [Grewal93].
Seringkali, error pengukuran tidak bernilai konstan, demikian juga noise proses, ada kala tidak
bernilai konstan atau berubah secara dinamis selama filter sedang bekerja menjadi Qk
untuk menyesuaikan dengan dinamika proses yang berbeda. Contoh, dalam pelacakan posisi
kepala seorang user di lingkungan virtual 3D, kita perlu mengurangi magnitud Qk bila user
bergerak lambat, dan menignkatkan magnitudnya bila bergerak cepat. Pada kasus ini, Qk
7
dipilih dengan mempertimbangkan ketidakpastian pada kehendak user dan ketidakpastian
pada model.
= 1 + 1 +
= 1 +
= +
= +
State x tidak berubah dari step ke step, jadi A=1. Tidak ada input kontrol, jadi u=0.
Pengukuran yang bercampur noise langsung didapatkan dari state x, jadi H=1.
= 1
= 1 +
= ( + )1 (3.1)
=
+
= + ( )
= (1 )
Anggaplah varian noise proses sangat kecil, Q = 1x105. (Kita bisa saja menetapkan Q = 0, tapi
menetapkan Q yang kecil namun tidak nol akan memberikan fleksibilas dalam tuning atau
penyesuaian parameter filter, akan kita contohkan di bawah). Anggaplah, berdasarkan
pengalaman yang kami tahu, nilai sebenarnya dari nilai konstan acak tersebut berdistribusi
probabilitas normal, jadi kita beri filter kita dengan nilai tebakan nol. Dengan kata lain,
sebelum menjalankan filter, kita tetapkan 1 = 0
8
Kita juga perlu menetapkan nilai awal untuk Pk-1, sebut saja P0. Bila kita yakin bahwa nilai awal
estimasi state 0 = 0 adalah benar, kita boleh menetapkan P0 = 0. Tetapi bila ada
ketidakpastian pada nilai awal estimasi 0 yang kita tetapkan, maka memilih P0 = 0
mengakibatkan filter percaya sejak awal bahwa = 0 . Dengan demikian, kita perlu
menetapkan P0 dengan nilai yang lain. Kita bisa menetapkan sembaran nilai 0 0 dan filter
pada akhirnya akan konvergen. Kita mulai dengan menetapkan P0 = 1.
Simulasi
Untuk permulaan, kita tetapkan secara acak satu nilai konstan x = -0,37727 (tidak ada topi
di atas x karena ini mewakili nilai sebenarnya). Lalu kita simulasikan 50 pengukuran yang
memiliki error berdistribusi normal di sekitar nol dengan standar deviasi 0.1 (ingat, kita
anggap pengukuran terganggu dengan white noise pengukuran sebesar 0.1 volt rms).
Sebenarnya, kami bisa saja melakukan pengukuran ketika filter sedang bekerja, tapi dengan
melakukan pengukuran 50 data sebelum filter dijalankan, kami dapat menjalankan beberapa
macam simulasi dengan data pengukuran yang sama persis (maksudnya, dengan noise
pengukuran yang sama) sehingga perbandingan antara beberapa simulasi dengan parameter
yang berbeda akan lebih bermakna.
Dalam simulasi pertama, kami tetapkan varian error pengukuran R=(0,1)2=0,01. Karena ini
adalah nilai varian error pengukuran sebenarnya, maka kami berharap mendapat performansi
filter terbaik dalam arti keseimbangan antara kecepatan respon filter dan varian estimasi.
Hal ini akan nampak jelas pada simulasi ke dua dan ke tiga. Gambar 3-1 menampilkan hasil
simulasi pertama. Nilai konstan acak yang sebenarnya x = -0,37727, ditampilkan dalam garis
lurus tebal, pengukuran yang bercampur noise diwakili tanda plus, dan estimasi filter diwakili
dengan kurva.
Gambar 3-1. Simulasi pertama: R=(0,1)2=0,01. Nilai konstan acak yang sebenarnya x=-
0,37727 dinyatakan dengan garis lurus tebal, pengukuran yang bercampur noise
diwakili tanda plus, dan estimasi filter diwakili kurva.
9
Ketika pemilihan P0, kami nyatakan bahwa pemilihan ini tidak terlalu penting selama 0 0,
karena pada akhirnya estimasi filter akan konvergen (menuju pada satu nilai). Gambar 3-2 di
bawah, kami telah plot nilai Pk terhadap iterasi. Pada iterasi ke-50, nilai Pk, yang semula
ditetapkan 1 (volt2), bergerak konvergen dan menetap di sekitar 0,0002 (volt2).
Gambar 3-2. Setelah 50 iterasi, nilai awal kovarian error Pk=1 bergerak konvergen dan
menetap di sekitar 0,0002 (volt2).
Dalam bagian 1, topik Parameter Filter dan Penyesuaiannya kami paparkan secara singkat
tentang pengubahan dan penyesuaian parameter Q dan R untuk mendapatkan
performansi filter yang berbeda. Dalam Gambar 3-3 dan Gambar 3-4 di bawah, kita dapat
amati apa yang terjadi ketika R diperbesar atau diperkecil dengan faktor 100. Di Gambar 3-3,
filter diberi tahu bahwa varian error pengukuran adalah 100 kali lebih besar (maksudnya R=1)
jadi filter lebih lambat dalam mempercayai data pengukuran.
Gambar 3-3. Simulasi ke dua: R=1. Filter lebih lambat dalam merespon data
pengukuran, akibatnya varian estimasi filter berkurang.
10
Pada Gambar 3-4, Filter diberi tahu bahwa varian error pengukuran adalah 100 kali lebih kecil
(maksudnya R=0,0001), jadi filter sangat cepat mempercayai data pengukuran yang
bercampur noise.
Gambar 3-4. Simulasi ke empat: R=0,0001. Filter merespon data pengukuran dengan
cepat sekali, akibatnya varian estimasi filter meningkat.
Meskipun estimasi satu nilai konstan adalah topik yang relatif sederhana, namun mampu
mendemonstrasikan unjuk kerja Kalman filter dengan jelas. Pada Gambar 3-3 nampak jelas
bahwa estimasi Kalman filter lebih halus daripada data pengukuran yang bercampur noise.
11
Daftar Pustaka
[Brown92] Brown, R. G. and P. Y. C. Hwang. 1992. Introduction to Random Signals and Applied
Kalman Filtering, Second Edition, John Wiley & Sons, Inc.
[Gelb74] Gelb, A. 1974. Applied Optimal Estimation, MIT Press, Cambridge, MA.
[Grewal93] Grewal, Mohinder S., and Angus P. Andrews (1993). Kalman Filtering Theory and
Practice. Upper Saddle River, NJ USA, Prentice Hall.
[Julier96] Julier, Simon and Jeffrey Uhlman. A General Method of Approximating Nonlinear
Transformations of Probability Distributions, Robotics Research Group, Department of
Engineering Science, University of Oxford [cited 14 November 1995]. Available from
http://www.robots.ox.ac.uk/~siju/work/publications/Unscented.zip. Also see: A New
Approach for Filtering Nonlinear Systems by S. J. Julier, J. K. Uhlmann, and H. F. Durrant-
Whyte, Proceedings of the 1995 American Control Conference, Seattle, Washington,
Pages:1628-1632.
[Lewis86] Lewis, Richard. 1986. Optimal Estimation with an Introduction to Stochastic Control
Theory, John Wiley & Sons, Inc.
[Maybeck79] Maybeck, Peter S. 1979. Stochastic Models, Estimation, and Control, Volume 1,
Academic Press, Inc.
12