Thursday, December 21, 2017

Kalman Filter untuk Model Auto-Regressive (AR)

Bismillah ar-Rahmaan ar-Rohiim. Saya bertemu kalman filter lagi, kali ini dengan tantangan yang baru. Ini perjumpaan saya dengan kalman filter untuk yang ke sekian kalinya dengan rekan dan objek riset yang berbeda pula. Dari beberapa kali perjumpaan itu, saya merenung2 bahwa kalman filter ini adalah sesuatu yang revolusioner. Algoritmanya sederhana tapi efeknya signifikan dan bisa dipakai di banyak persoalan seputar olah sinyal. Saya baru tahu juga Presiden Obama juga sempat memberikan Medals of Science kepada penemunya R.E. Kalman di tahun 2008 [1].


Namun demikian, selama ini saya masih sekedar tahu tentang kalman filter standar. Padahal variannya banyak sekali, diantaranya Extended Kalman Filter yang dirancang untuk nonlinier.

PROBLEM STATEMENT DAN PENDEKATAN PENYELESAIANNYA

Problem yang saya hadapi saat ini adalah bagaimana menggunakan kalman filter untuk data deret waktu dari pengukuran suatu variabel, dimana model matematika sistem dan inputnya juga tidak diketahui. Awalnya saya tidak ada bayangan sama sekali, karena selama ini setahu saya penggunaan kalman filter itu melibatkan model state-space sistem dan inputnya. Tiba2 saya teringat eksperimen sederhana di lab waktu kuliah yang sempat saya tulis juga [2] terkait penggunaan kalman filter pada data pengukuran kecepatan motor dc. Dalam eksperimen itu, memang model state-space plant dan nilai input diketahui. Namun, di situ saya juga saya belajar menggunakan model Auto-Regressive Moving Average (ARMA) untuk memodelkan data pengukuran. Lalu, saya renung2 sepertinya model state-space sistem yang diperlukan untuk merancang kalman filter itu bisa didapatkan atau diturunkan dari model AR. Iya... sepertinya begitu...

Jadi, setidaknya ada dua tahap. Pertama, memodelkan data pengukuran dengan AR, sudah saya cerita di sini [3]. Kedua, merancang kalman filter dengan melibatkan model state-space berdasarkan model AR yang telah didapat, yang akan saya cerita di sini.

PERHATIAN Untuk memahami tulisan ini, memerlukan pemahaman tentang konsep model auto regressive, model state-space diskrit, dan algoritma kalman filter diskrit.

MODEL AR(2) DATA PENGUKURAN

Ini adalah tahap pertama. Ceritanya, saya punya data pengukuran 1500 sampel selama 30 detik. Data tersebut saya dekati dengan model AR orde 2 sebagaimana persamaan berikut.

y[k] = 1.0429 - 0.0121y[k-1] + 0.0065y[k-2]

Cerita detil tentang data pengukurannya dan sejarah munculnya persamaan ini monggo dilihat di sini [3].

REPRESENTASI STATE-SPACE DARI MODEL AR(2)

Ini adalah tahap ke dua. Saya perlu mendapatkan model state-space berdasarkan model AR(2). Saya bersyukur ketemu referensi ini [4]. Ringkasnya begini ceritanya. Misal, saya punya model AR(2) seperti ini
 



Dengan demikian, saya sudah mendapatkan representasi state-space diskrit dari model AR(2).

MERANCANG FILTER KALMAN DISKRIT

Algoritma kalman filter secara umum ada di gambar ini, dan cerita selengkapnya ada di sini [8].


Q dan R adalah kovarian noise proses dan kovarian noise pengukuran, nilainya kita tuning sendiri, cerita tuningnya ada di sini [5][9]. Variabel state x dan kovarian error P kita beri nilai awal dan z adalah data pengukuran itu sendiri. Tugasnya kalman filter adalah mengeliminasi white-noise yang ada pada sinyal z atau, dengan kata lain, mengestimasi sinyal pengukuran tanpa noise.



Saya memilih Q kecil sekali dengan asumsi bahwa tidak ada/kecil sekali noise pada persamaan state x[k]. Nilai R mewakili asumsi bahwa noise ada di persamaan pengukuran z[k].



HASIL SIMULASI

Grafik data pengukuran asli bercampur noise (kiri) dengan hasil estimasi dengan kalman filter (kanan) ditampilkan dalam gambar di bawah ini.


     
Nampak jelas bahwa, noise pengukuran telah dieliminasi oleh kalman filter. Tanpa kehadiran noise ukur, kita bisa tahu dengan mudah bahwa kecepatan kapal terukur adalah sekitar 1.036 m/detik.

KESIMPULAN

Kalman filter itu simpel namun sangat ampuh untuk mengeliminasi white-noise pada data pengukuran. White-noise bisa ada pada proses, bisa juga timbul saat dilakukan pengukuran.

Untuk beroperasi, kalman filter memerlukan model state-space diskrit dari data pengukuran. Model state-space bisa diambil dari model sistem, bisa juga dengan memodelkan data tersebut dengan time-series analysis, seperti AR, ARMA, ARMAX, dll.

Saya mendapatkan data pengukuran bercampur noise dan tidak tahu model state-spacenya. Saya menggunakan model AutoRegressive (AR) untuk memodelkan data [3], lalu saya representasikan dalam model state-space, lalu saya gunakan untuk merancang kalman filter. Hasilnya, noise pengukuran terelminasi secara signifikan.

PENUTUP

Sementara sekian dulu. Maaf, belum sempat menjelaskan secara gamblang, silakan dibaca tulisan2 sebelumnya terkait Kalman, mudah2an bisa membantu. Maturnuwun. Alhamdulillah Rabb al-Alamiin. Segala Puja Puji milik Allah, Tuhan Semesta Raya.

Format penulisan yang lebih baik ada di versi pdf:
https://www.researchgate.net/publication/321946829_Kalman_Filter_untuk_Model_Auto-Regressive_AR

PUSTAKA

[1] https://www.nsf.gov/news/news_summ.jsp?org=NSF&cntn_id=115739
[2] http://mnurq.blogspot.co.id/2013/04/kalman-filter-diskrit-untuk-motor-dc.html
[3] http://mnurq.blogspot.com/2017/12/memodelkan-data-pengukuran-dengan-auto.html
[4] Eric Zivot, 2006, State Space Models and the Kalman Filter
[5] http://mnurq.blogspot.co.id/2014/03/parameter-filter-dan-penyesuaiannya.html
[6] http://mnurq.blogspot.co.id/2014/03/aplikasi-kalman-filter-diskrit-estimasi.html
[7] http://mnurq.blogspot.co.id/2014/03/algoritma-kalman-filter-diskrit.html
[8] http://mnurq.blogspot.co.id/2014/03/pdf-pengenalan-kalman-filter.html
[9] http://mnurq.blogspot.co.id/2016/06/meninjau-kembali-kalman-filter-untuk.html
[10] http://mnurq.blogspot.com/2017/10/membuat-kalman-filter-diskrit-dengan.html
[11] dari siapa saja yang saya beroleh ilmu darinya, semoga Allah merahmati beliau2 semua. Aamiin.

1 comment:

  1. Mohon maaf sebelumnya pak, apakah boleh saya minta kontak email Anda?
    Saat ini saya sedang menyusun tugas akhir dengan metode Kalman Filter, ada yg saya ingin tanyakan mengenai Kalman filter. Terimakasih sebelumnya

    ReplyDelete