Filter Kalman
i
FILTER KALMAN
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains
Program Studi Matematika
Disusun oleh: Auxilia Maria Aroran
NIM: 123114004
PROGRAM STUDI MATEMATIKA JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
(2)
ii
A KALMAN FILTER
THESIS
Presented as a Partial Fulfillment of the Requirements to Obtain the Degree of Sarjana Sains
Mathematics Study Program
Written by: Auxilia Maria Aroran Student ID: 123114004
MATHEMATICS STUDY PROGRAM DEPARTMENT OF MATHEMATICS FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
(3)
iii
SKRIPSI
FILTER KALMAN
Disusun oleh: Auxilia Maria Aroran
NIM: 123114004
Telah disetujui oleh: Dosen Pembimbing Skripsi
(4)
iv SKRIPSI
FILTER KALMAN
Dipersiapkan dan ditulis oleh: Auxilia Maria Aroran
NIM: 123114004
Telah dipertahankan di hadapan Panitia Penguji Pada tanggal 31 Januari 2017
Dan dinyatakan telah memenuhi syarat
SUSUNAN PANITIA
Nama Lengkap Tanda Tangan
Ketua : Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. ... Sekretaris : Ir. Ig. Aris Dwiatmoko, M.Sc. ... Anggota : Hartono, Ph.D. ...
Yogyakarta, 31 Januari 2017 Fakultas Sains dan Teknologi
Universitas Sanata Dharma Dekan,
(5)
v
HALAMAN PERSEMBAHAN
Skripsi ini saya persembahkan untuk Tuhan Yesus dan Bunda Maria Kedua Orang Tua, Nixon Aroran dan Maryke Pontoan Adik Lafio Aroran & Adik ipar Cyprianus Warouw Keponakan Karlen Junno Aquinas Warouw Kakek, Nenek, Keluarga Besar dan Sanak Saudara Pastor Yong Ohoitimur dan keluarga besar Yayasan Pendidikan Lokon Almamater tercinta, Universitas Sanata Dharma
(6)
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, 31 Januari 2017
(7)
vii
ABSTRAK
Filter Kalman adalah proses pendugaan keadaan optimal yang diterapkan pada suatu sistem dinamis dan melibatkan derau acak. Pendugaan ini bersifat rekursif, sehingga memudahkan peneliti ataupun teknisi dalam menangani data yang terus bertambah dalam periode waktu tertentu.
Tujuan dari tulisan ini yaitu menurunkan algoritma filter Kalman, yaitu algoritma untuk menduga keadaan optimal dari suatu sistem dinamis, baik diskret maupun kontinu. Simulasi algoritma filter Kalman dilakukan dengan menggunakan software MATLAB R2010a. Hasilnya menunjukkan bahwa filter Kalman dapat menghasilkan penduga yang memiliki sifat kovariansi eror minimum.
Kata kunci: filter Kalman, derau, error, kovariansi, sistem dinamis, penduga kuadrat terkecil rekursif, algoritma.
(8)
viii
ABSTRACT
Kalman filter is an estimation process of optimal state, which applied to a dynamic system that involves noise. This estimation is recursive so that it is easily applied by scientist or engineer in handling data which grows continuously within a certain period of time.
The purpose of this thesis is to derive the Kalman filter algorithm, which is used to estimate the optimal state of a dynamic system, including discrete and continuous models. The simulation is done using MATLAB R2010a. The result shows that Kalman filter gives a good estimator, which has minimum error covariance.
Keywords: Kalman filter, noise, error, covariance, dynamic system, recursive least square estimation, algorithm.
(9)
ix
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Auxilia Maria Aroran
NIM : 123114004
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul:
“Filter Kalman”
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma untuk menyimpan, mengalihkan ke dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya. Dibuat di Yogyakarta
Pada tanggal 31 Januari 2017 Yang menyatakan
(10)
x
KATA PENGANTAR
Puji dan syukur kepada Tuhan atas berkat dan penyertaannya sampai pada
saat penulis dapat menyelesaikan tugas akhir ini. Skripsi yang berjudul “Filter Kalman” ini disusun sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains pada Program Studi Matematika Universitas Sanata Dharma. Selama proses penyusunan, tentu saja penulis menemui berbagai macam hambatan sampai akhirnya bisa selesai berkat penyertaan Tuhan dan dukungan dari berbagai pihak.
Ucapan terima kasih atas berbagai dukungan yang diterima ingin disampaikan oleh penulis kepada:
1. Bapak Hartono, Ph.D., selaku dosen pembimbing skripsi, sekaligus Ketua Program Studi Matematika dan Dosen Pembimbing Akademis atas semua bentuk bimbingan dan saran yang diberikan baik selama proses penyusunan skripsi, maupun sejak penulis berada di Program Studi Matematika ini.
2. Bapak/Ibu/Romo dosen yang telah membagikan ilmu pengetahuannya selama penulis menjalani perkuliahan di Universitas Sanata Dharma.
3. Keluarga dan sanak saudara di Manado atas segala bentuk doa, dukungan, dan dorongan sehingga penulis bisa menyelesaikan skripsi ini.
4. Yayasan Pendidikan Lokon yang telah memberikan kesempatan kepada penulis untuk menempuh pendidikan di USD, serta dorongan dan semangat yang telah diberikan sampai penulis bisa menyelesaikan skripsi.
5. Teman-teman Matematika USD angkatan 2012 (Ajeng, Anggun, Arum, Boby, Budi, Dewi, Ega, Fherny, Hepi, Ilga, July, Lia, Manda, Noni, Putri, Risma,
(11)
xi
Ryan, Sila, Tika) atas semangat dan dorongan selama penulisan, juga selama berdinamika bersama sebagai bagian dari keluarga Prodi Matematika USD. 6. Keluarga Besar Program Studi Matematika Universitas Sanata Dharma,
kakak-kakak dan adik-adik angkatan, juga keluarga besar FST USD, karyawan dan staff yang baik secara langsung maupun secara tidak langsung memberikan bantuan kepada penulis.
7. Zilvi, Tri, dan juga teman-teman befi yang memberikan semangat dan menjadi teman diskusi selama penulis mengerjakan skripsi, serta BF dan semua pihak yang tidak sempat disebutkan, yang secara tidak langsung telah menyemangati penulis sehingga bisa menyelesaikan skripsi ini.
Penulis menyadari, bahkan dengan bantuan dan keterlibatan dari berbagai pihak, tulisan ini adalah karya dari penulis, manusia biasa yang tak luput dari kesalahan. Oleh karena itu, penulis dengan tangan terbuka menerima segala bentuk kritik dan saran dari pembaca sekalian. Semoga kiranya tulisan ini dapat bermanfaat bagi para pembaca.
Yogyakarta, 31 Januari 2017 Penulis
(12)
xii
DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN JUDUL DALAM BAHASA INGGRIS ... ii
HALAMAN PERSETUJUAN PEMBIMBING ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN PERSEMBAHAN ... v
PERNYATAAN KEASLIAN KARYA ... vi
ABSTRAK ... vii
ABSTRACT ... viii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xii
DAFTAR GAMBAR ... xiv
DAFTAR TABEL ... xv
BAB I PENDAHULUAN ... 1
A. Latar Belakang Masalah... 1
B. Rumusan Masalah ... 5
C. Pembatasan Masalah ... 5
D. Tujuan Penulisan ... 5
E. Manfaat Penulisan ... 6
F. Metoda Penelitian ... 6
(13)
xiii
BAB II PENDUGA KUADRAT TERKECIL ... 9
A. Matriks ... 9
B. Variabel Acak dan Proses Stokastik ... 21
C. Penduga Kuadrat Terkecil ... 27
BAB III FILTER KALMAN ... 45
A. Filter Kalman dengan Waktu Diskret ... 45
B. Persamaan Filter Kalman Satu Langkah ... 52
C. Derau Proses Pendugaan ... 58
D. Derau Pengukuran ... 60
E. Filter Kalman dengan Waktu Kontinu ... 61
F. Linearisasi Filter Kalman ... 67
G. Perluasan Filter Kalman dengan Waktu Kontinu ... 70
H. Perluasan Filter Kalman dengan Waktu Diskret ... 72
BAB IV SIMULASI FILTER KALMAN ... 76
A. Simulasi Filter Kalman untuk Menduga Suatu Konstan ... 76
B. Simulasi Filter Kalman untuk Menduga Posisi dan Kecepatan ... 80
C. Penerapan Filter Kalman dalam Berbagai Bidang ... 86
BAB V PENUTUP ... 89
A. Kesimpulan ... 89
B. Saran ... 91
DAFTAR PUSTAKA ... 93
(14)
xiv
DAFTAR GAMBAR
Gambar 1.1 Bagan Penerapan Filter Kalman ... 3
Gambar 1.2 Algoritma Filter Kalman... 4
Gambar 2.1 Pendugaan kuadrat terkecil & nya ... 31
Gambar 2.2 Pendugaan kuadrat terkecil berbobot & nya ... 32
Gambar 2.3 Pendugaan kuadrat terkecil rekursif & nya ... 38
Gambar 3.1 Hubungan antara penduga keadaan priori dan posteriori, dan kovariansi pendugaannya ... 47
Gambar 3.2 Variansi penduga posisi 5 langkah pertama filter Kalman ... 56
Gambar 3.3 Variansi penduga posisi 60 langkah pertama filter Kalman ... 57
Gambar 3.4 pengukuran dan pendugaan untuk contoh 3.2 ... 57
Gambar 4.1 Pendugaan konstan ... 76
Gambar 4.2 pendugaan konstan... 77
Gambar 4.3 Variansi pendugaan konstan ... 77
Gambar 4.4 Posisi kendaraan & nya ... 80
(15)
xv
DAFTAR TABEL
Tabel 3.1 Hubungan antara penduga dan kovariansi pada pendugaan kuadrat
terkecil dan filter Kalman ... 51
Tabel 4.1 Data hasil simulasi filter Kalman untuk menduga suatu konstan ... 78
Tabel 4.2 Data hasil simulasi filter Kalman untuk menduga posisi dan kecepatan... 81
Tabel 4.3 Tujuan dan metode filter Kalman yang berkaitan ... 87
Tabel 5.1 Filter Kalman dengan waktu diskret ... 89
Tabel 5.2 Filter Kalman dengan waktu kontinu ... 90
Tabel 5.3 Perluasan Filter Kalman dengan waktu kontinu ... 90
(16)
1 BAB I PENDAHULUAN
A. Latar Belakang Masalah
Pada tahun 1960, R.E. Kalman menerbitkan paper yang mendeskripsikan suatu solusi rekursif terhadap masalah filter data diskret linear, yang kemudian dikenal dengan nama Filter Kalman. Filter yang dimaksud adalah sebuah algoritma pemrosesan data. Pada umumnya, filter bertujuan untuk memperoleh pendugaan optimal atas suatu susunan data. Sama seperti filter-filter lainnya, filter-filter Kalman juga bertujuan untuk memperoleh pendugaan optimal atas data yang diberikan oleh sumber berderau.
Filter Kalman adalah proses pendugaan keadaan optimal yang diterapkan pada suatu sistem dinamis dan melibatkan derau acak. Optimal di sini berarti meminimalkan error. Filter Kalman disebut juga sebagai penduga kuadrat terkecil linear karena meminimalkan rata-rata kuadrat pendugaan suatu sistem linear stokastik. Terdapat tiga alasan dasar mengapa sistem deterministik dan teori kontrol tidak cukup akurat dalam analisis, antara lain:
Tidak ada model sistem matematis yang sempurna.
Sistem dinamis dipengaruhi bukan hanya oleh kontrol input awal, tetapi juga oleh gangguan-gangguan yang tak terkontrol atau tak bisa dimodel-kan secara deterministik.
Sensor tidak memberikan data yang sempurna dan lengkap dari sebuah sistem
(17)
Filter Kalman menggabungkan semua pengukuran yang tersedia, tanpa memperhatikan ketepatannya, untuk menduga nilai terbaru dari variabel yang diteliti dengan menggunakan (1) pengetahuan tentang sistem dan alat pengukuran, (2) deskripsi statistis dari derau sistem, pengukuran, dan ketidakpastian dalam model dinamis, dan (3) informasi yang tersedia tentang keadaan awal dari variabel yang diteliti.
Salah satu yang membedakan filter Kalman dengan konsep pemrosesan data tertentu adalah konsep rekursif. Dengan sifat rekursif ini, filter Kalman tidak perlu menyimpan semua data yang sebelumnya telah diperoleh kemudian memroses kembali semua data tersebut setiap diperoleh data pengukuran yang baru.
Tujuan utama dari filter kalman yaitu untuk menduga keadaan dari sistem dinamis. Keadaan yang akan diduga yaitu pada sistem dinamis
dari pengetahuan tentang hasil pengukuran
dengan , , dan adalah matriks transisi keadaan, matriks input, dan matriks output. Vektor- vektor , , dan masing-masing menyatakan vektor keadaan, vektor kontrol, dan vektor output, sedangkan dan merupakan proses derau yang terlibat. Untuk lebih jelasnya lihat gambar 1.1.
Filter Kalman telah digunakan secara luas dalam berbagai bidang industri dan pemerintahan, seperti sistem tracking pada video dan laser, navigasi satelit, pendugaan trayektori rudal balistik, radar, dan pengontrol tembakan.
(18)
Dengan berkembangnya komputer berkecepatan tinggi, filter Kalman menjadi lebih berguna dalam aplikasi masa kini.
Secara sederhana, penerapan filter Kalman pada suatu sistem dapat dilihat seperti pada gambar.
Gambar 1.1 Bagan penerapan filter Kalman
Meskipun Filter Kalman sering digunakan, teori matematika dibalik proses Filter Kalman tidak begitu dimengerti oleh penggunanya, karena sebagian besar hanya menggunakan algoritmanya saja tanpa mengetahui bagaimana asal-usul algoritma tersebut. Oleh karena itu, penulis akan berusaha untuk memberikan penjelasan tentang bagaimana algoritma filter Kalman ini diperoleh. Algoritma filter Kalman bermula dari pedugaan kuadrat terkecil dengan mengikuti langkah-langkah penurunan sebagai berikut:
1. Mulai dengan deskripsi matematis dari suatu sistem dinamis yang akan diduga.
(19)
2. Menerapkan persamaan yang mendeskripsikan bagaimana rata-rata dari keadaan yang diteliti dan kovariansinya merambat bersesuaian dengan waktu.
3. Pilih sistem dinamis yang menggambarkan perambatan rata-rata dan kovariansi keadaan tersebut kemudian menerapkan persamaan yang diperoleh. Persamaan ini merupakan dasar dari penurunan Filter Kalman sebab rata-rata dari keadaan tersebut merupakan pendugaan Filter Kalman atas keadaan tersebut.
4. Setiap kali hasil pengukuran diperoleh, maka rata-rata dan kovariansinya akan diperbaharui secara rekursif.
Algoritma filter Kalman dapat dicantumkan dalam bagan sebagai berikut.
Gambar 1.2 Algoritma filter Kalman
Penjelasan mengenai bagaimana memperoleh persamaan-persamaan seperti pada gambar akan dijelaskan pada bab ketiga dari tulisan ini.
(20)
Sebelumnya, pada bab kedua akan dibahas terlebih dahulu tentang teori-teori dasar yang dibutuhkan, khususnya pendugaan kuadrat terkecil.
B. Rumusan Masalah
Berdasarkan latar belakang yang telah dipaparkan, masalah-masalah yang akan dibahas dalam tulisan ini antara lain:
1. Bagaimana proses untuk memperoleh algoritma filter Kalman?
2. Bagaimana contoh simulasi filter Kalman dalam kehidupan sehari-hari?
C. Pembatasan Masalah
Masalah yang akan dibahas dalam tulisan ini dibatasi sebagai berikut: 1. Filter Kalman yang dibahas dalam tulisan ini adalah filter Kalman
dengan waktu diskret dan waktu kontinu, sampai pada perluasannya. 2. Jenis-jenis filter Kalman seperti Ensemble Kalman Filter (EnKF),
Adaptive Kalman Filter (AKF) dan lainnya tidak akan dibahas dalam tulisan ini.
3. Sifat tak bias dari penduga pada filter Kalman tidak dibahas dalam tulisan ini.
D. Tujuan Penulisan
Tujuan yang ingin dicapai oleh penulis selain untuk memenuhi syarat tugas akhir dalam program studi Matematika Universitas Sanata Dharma, yaitu sebagai berikut:
(21)
1. Menjelaskan bagaimana proses memperoleh algoritma filter Kalman. 2. Memberi contoh simulasi filter Kalman dan penerapan filter Kalman
dalam berbagai bidang.
3. Memperluas wawasan pembaca tentang aplikasi ilmu matematika khususnya mengenai filter Kalman.
E. Manfaat Penulisan
Manfaat dari penulisan tugas akhir ini adalah sebagai berikut:
1. Penulis memperoleh pengetahuan baru selama mengerjakan tulisan ini. 2. Pembaca mendapat gambaran tentang aplikasi ilmu matematika dalam
kehidupan sehari-hari, yaitu penerapan filter Kalman.
F. Metode Penelitian
Metode yang digunakan penulis dalam penyusunan tugas akhir yaitu studi pustaka, yaitu dengan mempelajari buku dan/atau jurnal yang membahas tentang Filter Kalman maupun aplikasinya.
G. Sistematika Penulisan BAB I. PENDAHULUAN A. Latar Belakang Masalah B. Perumusan Masalah C. Pembatasan Masalah D. Tujuan Penulisan
(22)
E. Manfaat Penulisan F. Metode Pemulisan G. Sistematika Penulisan BAB II. LANDASAN TEORI A. Matriks
B. Derau Putih
C. Penduga Kuadrat Terkecil BAB III. FILTER KALMAN
A. Filter Kalman dengan Waktu Diskret B. Persamaan Filter Kalman Satu Langkah C. Derau Proses Pendugaan
D. Derau Pengukuran
E. Filter Kalman dengan Waktu Kontinu F. Linearisasi Filter Kalman
G. Perluasan Filter Kalman dengan Waktu Kontinu H. Perluasan Filter Kalman dengan Waktu Diskret BAB IV. SIMULASI FILTER KALMAN
A. Simulasi Filter Kalman untuk Menduga Suatu Konstan B. Simulasi Filter Kalman untuk Menduga Posisi dan Kecepatan C. Penerapan Filter Kalman dalam Berbagai Bidang
BAB V. PENUTUP A. Kesimpulan B. Saran
(23)
DAFTAR PUSTAKA LAMPIRAN
(24)
9 BAB II
PENDUGA KUADRAT TERKECIL
Dalam bab ini, terdapat subbab-subbab yang merupakan landasan teori untuk mempelajari filter Kalman pada bab selanjutnya. Sebelumnya telah disebutkan bahwa filter Kalman juga merupakan penduga kuadrat terkecil. Oleh karena itu, pokok dari bab ini adalah membahas mengenai penduga kuadrat terkecil. Selain itu, terdapat beberapa materi berkaitan yang juga perlu untuk dibahas terlebih dahulu, yaitu matriks dan proses stokastik. Materi-materi tersebut dirangkum dalam subbab-subbab berikut.
A. Matriks
Materi tentang matriks yang akan dibahas dalam subbab ini adalah lemma invers matriks, maktriks pseudo invers, kalkulus matriks, dan matriks definit positif. Pembahasan materi-materi berikut didasari dengan asumsi bahwa pembaca telah menguasai konsep-konsep dasar aljabar linear seperti sistem linear, operasi aljabar matriks, invers matriks, ruang baris dan ruang kolom, serta ruang hasilkali dalam.
1. Lemma Invers Matriks
Pada bagian ini akan dibahas tentang lemma invers matriks yang nantinya akan digunakan pada bagian selanjutnya. Lemma invers matriks juga sering digunakan dalam teori estimasi dan pemrosesan signal.
(25)
Misalkan terdapat matriks gabungan dengan matriks ,
matriks , keduanya tak singular, sedangkan matriks dan matriks . Definisikan matriks dan dengan
maka:
a. Andaikan mempunyai invers, dapat ditunjukkan bahwa
merupakan invers dari
b. Andaikan mempunyai invers, dapat ditunjukkan bahwa
juga merupakan invers dari
c. Bukti a.
(26)
c. Dari a dan b, matriks dan matriks
keduanya merupakan invers dari matriks
sehingga berdasarkan teorema ketunggalan invers, kedua matriks
tersebut sama. Dan dengan kesamaan dua matriks, diperoleh
. ■
Selanjutnya, karena dan , maka
Bentuk ini disebut lemma invers matriks. Bentuk lainnya yang ekuivalen yaitu
Untuk memahami lebih jelas, berikut ini diberikan contoh penggunaan lemma invers di atas.
Contoh 2.1
Misalkan terdapat matriks
(27)
Akan dicari invers dari matriks .
Tanpa menghitung invers matriks dari awal, dapat diperoleh dengan menggunakan hasil invers dari matriks . Perhatikan bahwa
, dengan , , dan
Dengan menggunakan lemma invers matriks, diperoleh
2. Matriks Pseudo Invers
Selain lemma invers matriks, matriks pseudo invers juga akan disebutkan pada bagian selanjutnya, sehingga penting untuk dibahas sebelumnya. Bentuk pseudo invers dari matriks merupakan perumuman dari matriks invers yang biasanya, dimana matriks tidak harus memenuhi semua sifat-sifat matriks yang bisa dibalik.
Misalkan matriks . Hal ini sama saja dengan mengatakan bahwa ruang baris dari paling banyak berdimensi dan ruang kolomnya paling banyak berdimensi . Karena ruang baris dan ruang kolom memiliki dimensi yang sama (rank dari ), jika , maka rank dari paling besar adalah nilai yang lebih kecil antara nilai-nilai dan , yaitu
(28)
Singularitas matriks dibutuhkan untuk menentukan matriks pseudo invers dari . Berikut diberikan teorema tentang singularitas matriks .
Teorema 2.1
Jika merupakan matriks dengan rank penuh, maka tak singular. Bukti
Teorema akan terbukti dengan memperlihatkan jika untuk sebarang , maka . Jika maka dengan mengalikan kedua ruas
dengan , diperoleh ,
sehingga . Karena mempunyai rank penuh, diperoleh .
Dengan demikian, terbukti tak singular. ■
Jika merupakan matriks dengan rank kolom penuh, yaitu , maka tidak singular, jadi punya invers. Bentuk
disebut pseudo invers kiri dari , dimana . Rank dari dan adalah .
Jika merupakan matriks dengan rank baris penuh, yaitu
, maka tidak singular, jadi punya invers. Selanjutnya, bentuk disebut pseudo invers kanan dari . Rank dari dan adalah . Berikut diberikan contoh untuk mencari pseudo invers dari matriks
(29)
Contoh 2.2
Misalkan terdapat matriks . adalah matriks
dengan dan . Diperoleh , dan . Matriks
adalah matriks singular, sedangkan
mempunyai invers, yaitu . Pseudo invers
kirinya tidak terdefinisi karena bukan matriks dengan rank kolom penuh, sedangkan pseudo invers kanannya adalah
dengan .
3. Kalkulus Matriks
Bagian selanjutnya adalah kalkulus matriks. Bagian ini akan membahas definisi-definisi tentang turunan matriks, serta persamaan-persamaan yang dihasilkannya. Bagian ini penting dikuasai untuk digunakan dalam mencari nilai minimum suatu fungsi objektif dalam bentuk matriks.
(30)
Definisi 2.1
Misalkan matriks , dimana elemen-elemennya berupa fungsi terhadap waktu. Didefinisikan turunan matriks sebagai berikut
menyebabkan merupakan matriks konstan sehingga turunannya sama dengan nol. Penurunan dapat juga dihitung dengan
Karena turunannya sama dengan nol, maka dapat diperoleh turunan dari yaitu
Definisi 2.2 (Turunan parsial fungsi terhadap vektor)
Misalkan vektor dan fungsi skalar dari elemen-elemen , maka turunan parsial fungsi terhadap vektor adalah
Definisi 2.3 (Turunan parsial fungsi terhadap matriks)
Misalkan matriks dan fungsi skalar. Turunan parsial terhadap matriks adalah
(31)
Dengan definisi-definisi tersebut, dapat dihitung turunan parsial dari hasil perkalian antara dua vektor. Misalkan dan vektor kolom dengan elemen.
Dengan cara yang sama, diperoleh
Untuk bentuk kuadratik
(32)
Jika matriks simetri, maka sehingga diperoleh
Definisi 2.4 (Turunan parsial vektor terhadap vektor lain)
Misalkan dan . Maka
Jika salah satu dari maupun ditranspos, maka turunan parsialnya juga ditranspos, yaitu
Dari definisi-definisi di atas, dapat diperoleh persamaan-persamaan berikut.
(33)
Definisi 2.5 (Turunan parsial trace matriks terhadap matriks ) Misalkan matriks dan matriks .
Turunan parsial terhadap adalah
(34)
4. Matriks Definit Positif
Bagian selanjutnya akan membahas tentang matriks definit positif. Matriks definit positif berperan penting dalam menentukan nilai minimum suatu fungsi objektif. Berikut merupakan beberapa hal yang perlu diingat tentang matriks definit positif.
Definisi 2.6
Matriks simetri disebut definit positif jika untuk semua vektor yang tak nol.
Teorema 2.2
Jka mempunyai rank penuh, maka merupakan matriks definit positif
Bukti
Karena , maka matriks simetri.
Selanjutnya, mempunyai rank penuh, tidak nol untuk sebarang taknol. Jadi perkalian titik . Dan untuk sebarang vektor ,
diperoleh , jadi berdasarkan definisi, adalah
matriks definit positif. ■
Definisi 2.7
Matriks Hessian adalah matriks simetri yang elemen-elemennya merupakan turunan parsial kedua dari suatu fungsi skalar terhadap suatu
(35)
vektor. Misalkan terdapat suatu fungsi dan vektor , matriks Hessian dari fungsi adalah matriks , dimana , yaitu
Teorema 2.3
Titik stasioner meminimumkan jika matriks Hessian dari yang dievaluasi pada adalah definit positif.
Bukti
Ekspansi Taylor sampai orde kedua di sekitar adalah
Karena titik stasioner, maka
jadi
(36)
bernilai positif. Padahal jika ruas kanan tersebut ditulis dalam bentuk matriks diperoleh
Sedangkan
merupakan matriks Hessian dari . Jadi adalah matriks definit positif, sehingga meminimumkan ketika matriks Hessian dari yang dievaluasi
pada definit positif. ■
B. Variabel Acak dan Proses Stokastik
Sub-bab ini akan membahas mengenai variabel acak dan proses stokastik. Namun sebelumnya akan dibahas terlebih dahulu beberapa teori dasar peluang.
Peluang kejadian didefinisikan dengan
dengan merupakan banyaknya anggota ruang sampel pada kejadian , dan merupakan banyaknya semua anggota ruang sampel, dengan .
Misalnya dalam pelemparan dadu, , maka .
Peluang kejadian munculnya mata dadu 4 pada permukaan dadu adalah . Sedangkan dalam pelemparan 2 dadu berbeda secara bersamaan,
(37)
terdapat 36 anggota ruang sampel , yaitu , dan peluang kejadian munculnya mata dadu 2 dan 3 dalam sekali pelemparan adalah , sebab
, dan .
Peluang suatu kejadian juga bisa berkaitan dengan peluang kejadian yang lainnya. Peluang terjadinya kejadian setelah terjadi disebut peluang bersyarat. Secara matematis, peluang bersyarat didefinisikan sebagai berikut.
Definisi 2.8
Peluang terjadinya kejadian terjadi setelah kejadian adalah
dengan adalah peluang kejadian dan keduanya terjadi.
Dua kejadian dikatakan saling bebas jika terjadinya suatu kejadian tidak mempengaruhi kejadian lainnya. Secara matematis, terdapat beberapa cara untuk menyatakan kejadian dan saling bebas, yaitu
Variabel acak didefinisikan sebagai suatu pemetaan fungsional dari himpunan hasil percobaan ke himpunan bilangan real. Sebagai contoh, hasil pelemparan dadu dapat dilihat sebagai variabel acak jika munculnya mata dadu 1 pada permukaan dadu dipetakan ke bilangan satu, mata dadu 2 dipetakan ke bilangan dua, dan seterusnya.
(38)
Sebuah variabel acak bisa kontinu atau diskret. pelemparan dadu merupakan variabel acak diskret, sebab hasil realisasinya merupakan himpunan nilai-nilai yang diskret. Pengukuran temperatur merupakan variabel acak kontinu karena hasil realisasinya merupakan himpunan nilai-nilai yang kontinu. Baik variabel acak diskret maupun kontinu, keduanya memiliki fungsi densitas peluang dan fungsi distribusi kumulatif. Fungsi-fungsi tersebut didefinisikan sebagai berikut.
Definisi 2.9
merupakan fungsi densitas peluang dari variabel acak diskret jika untuk setiap berlaku
Definisi 2.10
merupakan fungsi densitas peluang dari variabel acak kontinu jika berlaku
(39)
Definisi 2.11
Fungsi distribusi kumulatif dari variabel acak diskret dengan fungsi densitas peluang adalah , dimana
Definisi 2.12
Fungsi distribusi kumulatif dari variabel acak kontinu dengan fungsi densitas peluang adalah , dimana
Masing-masing variabel acak mempunyai karakteristik, seperti rata-rata atau nilai harapan dan variansi. Definisi rata-rata atau nilai harapan dari variabel acak didefinisikan sebagai berikut.
Definisi 2.13
Misalkan variabel acak dengan fungsi densitas peluang . Rata-rata atau nilai harapan dari adalah
(40)
Variansi dari variabel acak menunjukkan seberapa besar variabel acak akan bervariasi dari rata-ratanya. Dalam kasus-kasus tertentu, misalnya jika variabel acak hanya memiliki satu nilai (misalnya jika pada saat melempar dadu selalu muncul mata dadu 4), maka disebut bahwa variansi dari sama dengan 0. Kasus lainnya adalah jika nilai dari berada di antara dengan peluang yang sama, maka disebut bahwa variansi dari sama dengan . Variansi dari variabel acak didefinisikan secara formal sebagai berikut.
Definisi 2.14
Misalkan variabel acak dengan fungsi densitas peluang dan rata-rata . Variansi dari adalah
Standar deviasi dari variabel acak dinotasikan dengan , merupakan akar kuadrat dari variansi. Perhatikan bahwa variansi bisa ditulis
Notasi digunakan untuk menyatakan bahwa merupakan variabel acak dengan rata-rata dan variansi .
(41)
Sebuah variabel acak kontinu disebut Gaussian atau normal jika fungsi densitas peluangnya yaitu
Selanjutnya misalkan terdapat dua variabel acak yaitu dan . Sama halnya dengan kejadian saling bebas, Variabel acak dan dikatakan saling bebas jika memenuhi
Akibatnya,
Kovariansi dari variabel acak skalar dan adalah
Proses stokastik merupakan variabel random yang berubah-ubah menurut waktu, sehingga fungsi distribusi dan fungsi densitasnya merupakan fungsi terhadap waktu. Fungsi distribusi kumulatif dari adalah
Rata-rata dan kovariansi dari juga merupakan fungsi dari waktu, yaitu
(42)
Perhatikan bahwa pada waktu dan merupakan dua variabel acak yang berbeda, yaitu dan . Jika kedua variabel acak dan saling bebas, untuk semua , maka disebut derau putih (white noise). Jika tidak, maka disebut derau berwarna.
C. Penduga Kuadrat Terkecil
Penduga kuadrat terkecil adalah dasar dari penurunan algoritma filter Kalman. Sub-bab ini akan membahas mengenai penduga kuadrat terkecil berbobot dan penduga kuadrat terkecil rekursif.
1. Penduga Kuadrat Terkecil Berbobot
Misalkan adalah vektor konstan dengan -elemen yang tidak diketahui, dan adalah vektor hasil pengukuran yang mengandung komponen derau dengan elemen. Untuk mencari penduga terbaik dari , dimisalkan setiap elemen pengukuran pada vektor sebagai kombinasi linear dari elemen-elemen dalam vektor dengan ditambah derau pengukuran, yaitu
(43)
dengan adalah vektor dengan elemen, vektor pengukuran dengan elemen, , matriks observasi berukuran , dan vektor derau yang memiliki elemen. Selisih antara dan didefinisikan dengan , yaitu
dan disebut sebagai sisa pengukuran. Menurut Karl Gauss, nilai yang paling mungkin untuk vektor adalah vektor yang meminimumkan jumlah kuadrat dari selisih antara nilai yang diamati dengan vektor . Jadi akan dicari yang meminimumkan fungsi objektif , dimana
Substitusi , diperoleh
mencapai minimum saat turunan parsial pertamanya terhadap sama dengan nol, yaitu
Vektor kemudian diperoleh dengan menyelesaikan persamaan tersebut, yaitu
(44)
Dengan , pseudo invers kiri dari matriks ada jika dan matriks dengan rank penuh.
Dalam setiap pengukuran, terdapat derau yang variansinya bisa berbeda. Dengan variansi yang berbeda-beda, dimisalkan
Penduga kuadrat terkecil berbobot bisa diperoleh dengan menurunkan fungsi objektif yang sisa pengukurannya berdistribusi normal. Dengan asumsi bahwa derau dari setiap pengukuran mempunyai rata-rata 0 dan saling bebas, matriks kovariansinya adalah
Pendugaan yang melibatkan variansi derau pengukuran inilah disebut pendugaan kuadrat terkecil berbobot. Dalam pendugaan ini, fungsi objektif yang akan diminimumkan adalah
(45)
mencapai minimum ketika
sehingga diperoleh
Perhatikan bahwa adalah matriks Hessian yang definit positif ketika mempunyai rank , sehingga bisa dipastikan bahwa meminimumkan fungsi objektif .
Berikut diberikan contoh pendugaan kuadrat terkecil sebelum dan sesudah diboboti.
Contoh 2.3
Misalkan diperoleh data hasil pengukuran ( ) berturut-turut 0.98, 0.37, 0.88, 0.91, 0.79, 0.67, 0.72, 0.65, 0.49, dan 0.77. Akan dicari garis yang bisa mewakili hasil pengukuran tersebut. Dalam bentuk matriks bisa ditulis
(46)
Dengan metode kuadrat terkecil, diduga dengan , diperoleh persamaan hasil pendugaan yaitu , dengan jumlah kuadrat nya Plot hasil perhitungan dan perhitungannya adalah sebagai berikut.
Gambar 2.1 (a) Pendugaan kuadrat terkecil (b) error pendugaan Setelah diboboti, diduga dengan , sehingga
diperoleh persamaan hasil pendugaan , dengan
. Plot hasil pendugaan dan pendugaan setelah diberi bobot adalah sebagai berikut
(47)
Gambar 2.2 (a) Pendugaan kuadrat terkecil berbobot (b) error pendugaan
Meskipun dengan hasil pengukuran yang sama, kedua gambar menampilkan plot yang berbeda. Pada gambar 1, plot diperoleh dengan asumsi bahwa tingkat ketelitian semua data sama besar. Sedangkan pada gambar 2, diasumsikan bahwa masing-masing data memiliki tingkat ketelitian yang berbeda. Data-data yang lebih teliti diberikan bobot yang lebih besar. Pemboboton ini membuat data-data tersebut lebih bernilai, sehingga perhitungan akan lebih memperhatikan data-data dengan bobot lebih besar.
2. Penduga Kuadrat Terkecil Rekursif
Setiap diperoleh pengukuran yang baru, diperoleh juga matriks baru yang ukurannya bersesuaian dengan banyaknya pengukuran. Jika pengukuran diperoleh secara berturut-turut, pendugaan dilakukan setiap kali didapat
(48)
hasil pengukuran yang baru. Dengan demikian, pada setiap pengukuran akan diperoleh juga matriks baru. Selanjutnya ketika pendugaan dilakukan kembali dengan matriks yang baru, pendugaan berikutnya akan menmberikan hasil yang berbeda. Ketika banyaknya hasil pengukuran meningkat, proses penghitungan akan menjadi lebih sulit. Contohnya pengukuran terhadap ketinggian satelit setiap 1 detik. Setelah satu jam, akan terdapat 3600 data hasil pengukuran, dan bahkan pengukurannya masih berlanjut. Dengan menggunakan penduga kuadrat terkecil, setiap detik pendugaan dilakukan dengan matriks baru yang ukurannya semakin membesar. Di sini, masalah pertama yang muncul adalah pengukuran masih terus berlanjut, sedangkan yang diinginkan adalah menduga ketinggian satelit setiap detik. Masalah berikutnya adalah apakah penghitungan bisa tetap dilanjutkan setiap detik. Untuk meminimumkan masalah-masalah tersebut, muncul penduga kuadrat terkecil rekursif yang menghitung hasil pendugaan setiap kali pengukuran dilakukan tanpa mengabaikan hasil pendugaan sebelumnya. Penjelasan mengenai proses pendugaan kuadrat terkecil rekursif adalah sebagai berikut.
Misalkan setelah pengukuran ke , diperoleh , kemudian pengukuran selanjutnya menghasilkan suatu nilai hasil pengukuran baru . Penduga rekursif linearnya adalah
(49)
Hal ini menunjukkan bahwa diperoleh berdasarkan dan hasil pengukuran baru . merupakan matriks perolehan (matriks gain) yang nantinya akan ditentukan. Suku disebut suku koreksi. Jika suku ini bernilai nol, atau adalah matriks nol, maka pendugaan tidak mengalami perubahan dari langkah ke langkah .
Rata-rata dari pendugaan dapat dihitung sebagai berikut
Selanjutnya kriteria optimal untuk menentukan adalah meminimalkan jumlah variansi dari error pendugaan pada saat , yaitu
Dengan . Untuk memperoleh perhitungan rekursif , dapat digunakan proses yang mirip dengan proses rekursif sebelumnya, yaitu
(50)
tidak bergantung pada , maka bisa ditulis
karena nilai harapan keduanya sama dengan nol, sehingga diperoleh
dengan adalah kovariansi . Rumus ini merupakan bentuk rekursif untuk kovariansi dari error pendugaan kuadrat terkecil. Hal ini sesuai dengan intuisi bahwa pada saat derau pengukuran meningkat, ketidak-pastian dalam pendugaan juga meningkat. Perhatikan bahwa harus berupa matriks definit positif, dan rumus di atas menjamin bahwa definit positif dengan asumsi bahwa dan adalah matriks definit positif.
Selanjutnya akan dicari nilai sehingga fungsi objektif menjadi seminimal mungkin. Rata-rata error pendugaan adalah 0 untuk setiap nilai dari . Sehingga jika kita memilih untuk membuat fungsi objektifnya lebih kecil, maka error pendugaan tidak akan hanya mempunyai rata-rata 0, tetapi juga akan semakin mendekati nol. Untuk mencari nilai terbaik untuk , ingat kembali bahwa
(51)
jika simetri. Selanjutnya dengan menerapkan aturan rantai pada dan , diperoleh
Agar diperoleh nilai yang meminimumkan , maka haruslah
sehingga
, , dan membentuk penduga kuadrat terkecil rekursif. Secara ringkas, langkah-langkah pendugaan kuadrat terkecil rekursif dapat dituliskan sebagai berikut
1. Tetapkan penduga yaitu
Jika tidak diketahui sebelum dilakukan pengukuran, maka ditentukan dengan sebuah matriks identitas dimana komponennya berupa sebarang bilangan yang nilainya besar pada diagonalnya. Jika keadaan awalnya telah diketahui sebelum pengukuran, maka .
(52)
2. Untuk , langkah-langkah yang dilakukan adalah
a. Catat hasil pengukuran , dengan asumsi bahwa ditentukan dengan , dimana adalah vektor random yang mempunyai rata-rata 0 dengan kovariansi . Selanjutnya, asumsikan bahwa derau pengukuran setiap langkah ke- saling
bebas, yaitu ketika dan ketika .
akibatnya, derau pengukuran merupakan derau putih (white noise). b. Perbaharui nilai pendugaan dan kovariansi error pendugaan
sebagai berikut:
Contoh 2.4
Dari data pengukuran pada Contoh 2.3, bisa juga diperoleh melalui pendugaan kuadrat terkecil rekursif, yakni dengan
sesuai dengan langkah-langkah yang baru saja diperoleh. Pendugaan ini menghasilkan plot seperti pada gambar 2.3.
Dibandingkan dengan pendugaan sebelumnya, pendugaan secara rekursif ini memperhitungkan hasil dugaan sebelumnya, sehingga diperoleh yang bergantung pada sebelumnya. Hasilnya, untuk setiap hasil pengukuran berbeda-beda.
(53)
Gambar 2.3 (a) Pendugaan kuadrat terkecil rekursif (b) pendugaan Dari segi komputasi, bentuk alternatif terkadang lebih menguntungkan. Dengan mempertimbangkan hal ini, maka penting juga untuk mencari bentuk alternatif dari penduga. Untuk memperoleh bentuk alternatif dari penduga yang telah diperoleh sebelumya, langkah pertama adalah mencari bentuk lain dari kovariansi error pendugaan. Sebelumnya telah diperoleh
Substitusi diperoleh
Dimisalkan suatu variabel bantu . Persamaan di atas menjadi
(54)
Dalam persamaan tersebut, muncul secara implisit, sehingga dengan menuliskan kembali, diperoleh
Persamaan ini lebih sederhana dari bentuk sebelumnya, namun masalah komputasi numeris dapat menyebabkan tidak definit positif meskipun
(55)
Dengan menerapkan lemma invers matriks, bisa dicari bentuk yang lain dari yaitu
Dari persamaan ini, gunakan lemma invers matriks dengan
Menurut lemma invers matriks, maka
diperoleh
Sehingga diperoleh
Persamaan ini dapat digunakan untuk mencari bentuk ekuivalen dari persamaan sebagai berikut
Mengalikan ruas kanan dengan (matriks identitas) di sebelah kiri, diperoleh
(56)
Substitusi , diperoleh
Secara umum, algoritma kuadrat terkecil rekursif dapat dirangkum dengan persamaan-persamaan di bawah ini.
Hasil pengukuran dituliskan:
dengan
Dugaan awal dari vektor konstan yaitu
(57)
Untuk
Pada contoh-contoh berikut, akan ditunjukkan bagaimana menerapkan algoritma pendugaan kuadrat terkecil. Contoh 2.5 akan menunjukkan bahwa
yang diperoleh tidak akan pernah negatif.
Contoh 2.5
Misalkan terdapat parameter observasi skalar dengan pengukuran yang sempurna, yaitu dan . Pemisalan selanjutnya yaitu kovariansi pendugaan awal , dan komputer yang digunakan memberikan skala ketepatan 3 digit desimal untuk setiap perhitungan yang dilakukan. Perhitungan penduga yaitu
(58)
Selanjutnya untuk mencari , digunakan persamaan yang telah diperbaharui, yaitu
Perhatikan bahwa dihitung
sebagai 0 karena komputer yang digunakan memiliki ketelitian tiga angka desimal. Bentuk yang diperoleh dari ini menjamin bahwa tidak pernah negatif, meskipun terdapat perhitungan numeris pada , , dan .
Contoh 2.6
Penduga kuadrat terkecil rekursif juga bisa diterapkan pada masalah curve fitting. Misalkan akan dicari suatu garis lurus yang cocok dengan himpunan data. Masalah pencocokkan data linear dapat ditulis
(59)
dimana adalah variabel bebas (contohnya variabel waktu), data dengan derau, dan akan dicari relasi linear antara dan . Dengan kata lain, akan dicari nilai dan yang konstan. Matriks pengukurannya yaitu
Penduga rekursifnya diawali dengan
Dugaan rekursif dari vektor dengan dua anggota kemudian diperoleh sebagai berikut
(60)
45 BAB III FILTER KALMAN
A. Filter Kalman dengan Waktu Diskret
Pada sub-bab ini, akan dicari persamaan-persamaan untuk filter Kalman dengan waktu diskret.
Misalkan terdapat sistem linear dengan waktu diskret sebagai berikut
Proses derau dan merupakan derau putih, dengan rata-rata nol, tidak berkorelasi, dan matriks kovariansinya berturut turut dan , yaitu
Karena dan tidak berkorelasi, maka untuk semua . Tujuan menurunkan model filter Kalman yaitu untuk menduga keadaan , berdasarkan pengetahuan mengenai system dinamis dan ketersediaan pengukuran dengan derau . Ketika data pengukuran yang akan digunakan untuk menduga tersedia sampai pada saat , dapat dibentuk suatu pendugaan posteriori, yang dilambangkan dengan . Salah satu cara membentuk pendugaan keadaan posteriori adalah dengan menghitung nilai
(61)
harapan dengan syarat berupa semua hasil pengukuran sampai ke- dan pengukuran pada saat , yaitu
Jika data pengukuran yang akan digunakan untuk menduga tersedia sebelum waktu (data pada saat tidak tersedia), maka bisa dibentuk pendugaan priori. Salah satu cara membentuknya adalah dengan menghitung nilai harapan dengan syarat berupa semua hasil pengukuran sebelum waktu , tidak termasuk pengukuran pada saat , yaitu
Perhatikan bahwa baik maupun keduanya digunakan untuk menduga hal yang sama, yaitu . Meskipun demikian, merupakan pendugaan untuk sebelum diperhitungkan, sedangkan menduga setelah diperhitungkan. Secara intuisi, bisa dikatakan adalah pendugaan yang lebih baik dari karena informasi yang digunakan pada saat mencari lebih banyak.
melambangkan pendugaan awal , sebelum hasil pengukuran tersedia. Pengukuran pertama dilakukan pada waktu . Karena tidak ada hasil pengukuran untuk menduga , maka dibentuk sebagai nilai harapan dari keadaan awal , yaitu
melambangkan kovariansi dari pendugaan , dan melambangkan kovariansi dari pendugaan , yaitu
(62)
Untuk memahami lebih jelas hubungan antara penduga keadaan priori, posteriori, dan kovariansi pendugaannya, perhatikan gambar 3.1.
Gambar 3.1 Hubungan antara penduga keadaan priori dan posteriori, dan kovariansi pendugaan
Dari gambar terlihat hasil pendugaan priori pada waktu yaitu dan kovariansi error penduganya diperoleh sebelum dilakukan pengukuran pada waktu . Setelah pengukuran dilakukan, diperoleh hasil pengukuran posteriori dan . Keduanya kemudian digunakan untuk mencari penduga priori pada waktu yaitu dan . Setelah pengukuran pada waktu tersedia, diperoleh hasil pendugaan posteriori pada waktu , yaitu dengan kovariansi error pendugaannya .
Proses pendugaan dimulai dari , yaitu dugaan paling baik untuk kondisi awal . Setelah diketahui, langkah selanjutnya adalah meng-hitung . Tetapkan . Lihat kembali bahwa dan rata-rata merambat terhadap waktu, yaitu , maka diperoleh
(63)
Persamaan tersebut menunjukkan bagaimana memperoleh dari . Secara umum dapat dituliskan
Persamaan ini disebut persamaan pembaharuan waktu untuk . Selanjutnya akan dihitung persamaan pembaharuan waktu untuk . Jelas bahwa . Jika nilai tidak diketahui, maka dimisalkan dengan sebuah matriks identitas dengan komponennya berupa sebarang bilangan besar pada diagonal utamannya. Umumnya mewakili ketidakpastian dari dugaan awal , dimana
Sama halnya dengan , juga dapat diperoleh dari . Kovariansi
merambat terhadap waktu dengan , sehingga
diperoleh
Secara umum dapat ditulis
yang disebut persamaan update waktu untuk .
Selanjutnya yang akan dicari adalah persamaan update pengukuran untuk dan , yakni diketahui kemudiah dihitung . Diingat kembali bahwa ketersediaan hasil pengukuran mempengaruhi pendugaan yaitu
(64)
dimana dan adalah penduga dan kovariansi pendugaan sebelum hasil pengukuran diperoleh, dan dan adalah penduga dan kovariansi pendugaan setelah diperoleh. Jadi, untuk memperoleh persamaan dalam bentuk penduga priori, diganti dan diganti . Sedangkan untuk memperoleh persamaan dalam bentuk penduga posteriori, diganti
dan diganti , sehingga diperoleh
yang merupakan persamaan pembaharuan pengukuran untuk dan . Matriks di atas disebut Kalman filter gain.
Setelah diturunkan, persamaan-persamaan yang telah dibahas dapat dirangkum dalam suatu algoritma yaitu sebagai berikut.
(65)
2. Filter Kalman diawali dengan
3. Filter Kalman dihitung untuk setiap waktu
ke-Bentuk pertama dari akan menjamin bahwa akan selalu berupa matriks simetri yang definit positif, selama juga merupakan matriks simetri yang definit positif. Bentuk ketiga dari lebih sederhana penghitungannya dibandingan dengan bentuk pertama, tetapi tidak menjamin apakah matriks yang diperoleh merupakan matriks simetri atau definit positif. Jika dalam perhitungan digunakan bentuk kedua dari , maka perhitungan harus menggunakan bentuk kedua, karena bergantung pada jadi
(66)
untuk menghitung digunakan bentuk kedua yang tidak bergantung pada . Adapun bentuk-bentuk ini mirip dengan yang telah dibahas pada pendugaan kuadrat terkecil. Tabel 3.1 berisi hubungan antara pendugaan dan kovariansi errornya pada pendugaan kuadrat terkecil dan filter Kalman.
Tabel 3.1 Hubungan antara penduga dan kovariansi pada pendugaan kuadrat terkecil dan filter Kalman
Pendugaan kuadrat terkecil Filter Kalman = pendugaan sebelum diketahui = penduga priori = kovariansi sebelum diketahui = kovariansi priori = pendugaan setelah diketahui = penduga posteriori = kovariansi setelah diketahui = kovariansi posteriori
Contoh 3.1
Contoh ini akan menunjukkan penerapan persamaan filter Kalman dengan waktu diskret. Misalkan terdapat sebuah sistem pengukuran dimana
diketahui , , , , dan ,
dengan , , dan , perhitungan filter Kalman pada saat adalah sebagai berikut
(67)
Langkah-langkah tersebut kemudian diulangi sampai waktu ke- untuk memperoleh penduga .
B. Persamaan Filter Kalman Satu Langkah
Persamaan filter Kalman priori dan posteriori dapat digabungkan dalam satu persamaan. Persamaan penduga keadaan priori dengan indeks dinaikkan menjadi
Sedangkan persamaan posteriori untuk adalah
(68)
Langkah yang sama diterapkan untuk memperoleh kovariansi pendugaannya. Persamaan priori kovariansi dengan indeks dinaikkan menjadi
Substitusi diperoleh
Substitusi diperoleh
Dengan cara demikian pula, dapat diperoleh persamaan posteriori satu langkah untuk penduga keadaan dan kovariansi penduga. Bentuk awal persamaan penduga keadaan posteriori adalah
Substitusi persamaan priori , diperoleh
(69)
Dengan substitusi , diperoleh
Contoh 3.2
Misalkan terdapat sistem Newton yang bebas derau dengan vektor posisi , kecepatan , dan percepatan . Dengan kecepatan merupakan turunan dari posisi dan percepatan merupakan turunan dari kecepatan, yaitu dan
.
Sistem tersebut dapat dituliskan
Dengan memisalkan
sistem tersebut menjadi
Diskretisasi dari sistem ini dengan sampel waktu dapat ditulis
dimana
(70)
Filter Kalman untuk sistem tersebut adalah
karena . Diperoleh Kalman gain yaitu
(71)
Terlihat bahwa trace dari kurang dari . Dari sini bisa disimpulkan bahwa kovariansi penduga semakin mengecil, dan pendugaan menjadi lebih terpercaya.
Simulasi pertama sistem ini dilakukan dengan 5 unit sampel waktu atau , dan standar deviasi 30 unit. Gambar 3.2 menunjukkan variansi dari penduga posisi ( dan ) untuk 5 langkah pertama filter Kalman.
(72)
Bisa dilihat bahwa variansinya membesar di setiap langkah, tetapi berkurang setiap diperoleh hasil pengukuran yang baru. Hal yang sama juga terlihat pada Gambar 3.3 yang menunjukkan variansi dari penduga posisi ( dan ) untuk 60 langkah pertama.
Gambar 3.3 Variansi penduga posisi 60 langkah pertama filter Kalman
(73)
Selanjutnya Gambar 3.4 menunjukkan eror pengukuran posisi (dengan standar deviasi dan hasil pendugaannya. Simulasi ini menunjukkan bahwa filter Kalman efektif untuk menduga keadaan.
C. Derau Proses Pendugaan
Perhatikan sistem waktu diskret di bawah ini dengan matriks identitas keadaan transisi dan sampel waktu :
dengan adalah proses derau putih dengan waktu diskret.
meyatakan bahwa merupakan variabel acak Gaussian dengan rata-rata 0 dan variansi . Akan dilihat bagaimana pengaruh derau putih terhadap kovariansi dari keadaan tersebut. Sistem waktu diskret dapat diselesaikan sebagai berikut:
Kovariansi dari keadaan tersebut menjadi:
Nilai dari parameter waktu kontinu sama dengan banyaknya langkah waktu diskret kali sampel waktu , yaitu . Bisa dilihat bahwa
(74)
Kovariansi dari keadaan meningkat secara linear sebanding dengan waktu untuk sampel waktu yang diberikan. Selanjutnya perhatikan sistem waktu kontinu dengan matriks identitas keadaan transisi:
dimana adalah derau putih dengan waktu kontinu. Definisi untuk derau putih dengan waktu kontinu yaitu
dimana dan memiliki arti yang sama dengan dan pada sistem waktu diskret. merupakan fungsi impuls-respon waktu diskret, yaitu fungsi dengan nilai saat , dan 0 selainnya, dengan luas 1. Kovariansi dari
adalah
Substitusi ke persamaan di atas diperoleh
(75)
Dibandingkan dengan kovariansi keadaan untuk waktu diskret, kovariansi keadaan untuk waktu kontinu juga meningkat secara linear dengan perbandingan yang sama. Dengan kata lain, derau putih waktu diskret dengan kovariansi pada sistem dengan sampel waktu ekuivalen dengan derau putih waktu kontinu dengan kovariansi , dengan . Derau putih waktu kontinu dengan rata-rata nol ditulis
yang sama artinya dengan
D. Derau Pengukuran
Misalkan terdapat pengukuran dengan waktu diskret untuk konstan setiap detik. Waktu pengukuran adalah ,
Dari persamaan filter Kalman, diperoleh kovariansi error pendugaan posteriori yaitu
(76)
Kovariansi pada waktu independen terhadap sampel waktu jika
dengan suatu konstan. Hal ini mengimplikasikan
dimana adalah fungsi impuls waktu kontinu. Hal ini memperlihatkan ekuivalensi antara derau putih pengukuran pada sistem waktu diskret dan waktu kontinu. Pengaruh derau putih pengukuran pada sistem waktu diskret akan sama dengan pengaruhnya pada sistem waktu kontinu jika
Menulis sama artinya dengan mengatakan bahwa
E. Filter Kalman dengan Waktu Kontinu
(77)
Selanjutnya misalkan terdapat sistem hasil diskretisasi dengan sampel waktu . Diperoleh
Matriks-matriks pada sistem waktu diskret dihitung sebagai berikut:
Maktriks gain filter Kalman untuk sistem ini adalah
Kovariansi error pendugaan menjadi
(78)
Substitusi diperoleh
Kemudian dengan mengurangkan dan kedua ruas dibagi , diperoleh
Dengan mengambil limit ketika dan mengingat kembali bahwa
diperoleh
Persamaan ini disebut Persamaan diferensial Riccati dan dapat digunakan untuk menghitung kovariansi pendugaan untuk filter Kalman waktu kontinu. Pada bagian sebelumnya, telah diperoleh persamaan filter Kalman untuk yaitu
(79)
Dengan asumsi bahwa kecil, persamaan pembaruan pengukuran dapat ditulis
Selanjutnya substitusi dari diperoleh
Dengan mengurangkan di kedua ruas dan dibagi , lalu diambil limit ketika , diperoleh
Atau dapat juga ditulis
Filter Kalman waktu kontinu dapat diringkas sebagai berikut
1. Sistem dinamis dengan waktu kontinu dan persamaan pengukuran adalah
dimana dan adalah proses derau putih waktu kontinu. 2. Persamaan filter Kalman waktu kontinu adalah
(80)
Contoh 3.3
Misalkan akan dicari suatu konstan dengan derau pengukuran waktu kontinu sebagai berikut:
Jelas bahwa , , dan . Persamaan diferensial untuk kovariansi error penduganya adalah
(81)
Selanjutnya diperoleh Kalman gain yaitu
Persamaan pembaruan keadaan yaitu
Hal ini menunjukkan bahwa setelah diperoleh pengukuran yang tak hingga banyaknya atas suatu konstan, pendugaan terhadap nilai konstan tersebut menjadi sempurna, dan pengukuran tambahan tidak bisa lagi membuat pendugaan menjadi lebih baik. Kalman gain juga menuju nol ketika waktunya semakin membesar, yang artinya pengukuran tambahan diabaikan karena pendugaan telah sempurna. Selanjutnya kovariansi juga menuju nol, menunjukkan tingkat ketidakpercayaan atas pendugaan sama dengan nol, sama saja dengan mengatakan bahwa hasil pendugaan sempurna pada waktu tak hingga.
(82)
F. Linearisasi Filter Kalman
Filter Kalman pada bagian sebelumnya diterapkan langsung hanya untuk sistem linear. Agar metode tersebut bisa digunakan dalam sistem nonlinear, maka terlebih dahulu dilakukan linearisasi terhadap sistem tersebut.
Misalnya terdapat sistem nonlinear:
dengan dan fungsi nonlinear. Dengan menggunakan deret Taylor, fungsi-fungsi tersebut akan dilinearisasi untuk memperoleh dan yang linear sebagai berikut
Asumsikan bahwa derau dan keduanya selalu nol, maka diperoleh dan . Lebih jauh lagi, diasumsikan pula bahwa diketahui sebab ditentukan oleh kontrol sistem sehingga tidak terdapat ketidak-pastian pada nilainya. Artinya
dan . Tetapi nyatanya bisa juga terdapat ketidakpastian pada kontrol sistem karena terhubung dengan aktuator yang bias dan berderau. Jika
(83)
terjadi kasus seperti ini, maka kontrol untuk bisa ditulis sebagai , dengan diketahui merupakan variabel random dengan rata-rata nol, sehingga sistem bisa ditulis kembali dengan kontrol signal yang diketahui, dan termasuk bagian dari derau proses. Selanjutnya didefinisikan nominal sistem trajektori yaitu
Definisikan
Dengan definisi tersebut, diperoleh
Persamaan tersebut merupakan sistem linear dengan keadaan dan pengukuran , sehingga dapat digunakan filter Kalman untuk menduga . Dari sini diperoleh persamaan filter Kalman untuk linearisasi filter Kalman yaitu
(84)
Linearisasi filter Kalman waktu kontinu dapat dirangkum sebagai berikut: 1. Sistem persamaannya yaitu
dengan nominal trajektori
(85)
3. Hitung matriks-matriks
4. Definisikan sebagai selisih antara pengukuran yang sebenarnya dengan pengukuran nominal :
5. Kerjakan persamaan filter Kalman berikut:
6. Keadaan diduga dengan:
G. Perluasan Filter Kalman dengan Waktu Kontinu
Dengan menggabungkan dan
, diperoleh
Selanjutnya dipilih sehingga dan .
(86)
Persamaan ini menjadi ekuivalen dengan linearisasi filter Kalman kecuali bahwa , dan bahwa bisa diperoleh secara langsung dari persamaan. Kalman gain tetap sama dengan yang diperoleh pada linearisasi filter Kalman.
Perluasan Filter Kalman waktu kontinu bisa diringkas sebagai berikut: 1. Sistem persamaannya yaitu:
2. Hitung turunan parsial:
3. Hitung matriks-matriks:
(87)
dengan nilai nominal derau dan .
H. Perluasan Filter Kalman dengan Waktu Diskret Misalkan terdapat model sistem
Dengan menerapkan ekspansi deret Taylor pada persamaan keadaan di
sekitar dan , diperoleh:
(88)
Persamaan pengukuran dilinearkan di sekitar dan , diperoleh
dan didefinisikan:
Dengan menggunakan persamaan filter Kalman biasa yang telah diperoleh di bagian sebelumnya, berikut adalah persamaan-persamaan perluasan filter Kalman waktu diskret:
Perluasan filter Kalman dengan waktu diskret dapat dirangkum sebagai berikut:
(89)
2. Awali filter dengan
3. Untuk , lakukan: a. Hitung turunan diferensial
b. Perbarui waktu dari penduga keadaan dan kovariansi error pendugaan:
c. Hitung turunan diferensial
d. Perbarui pengukuran dari penduga keadaan dan kovariasi error pendugaan:
(90)
(91)
76 BAB IV
SIMULASI FILTER KALMAN
Materi pada bab sebelumnya telah menjabarkan bagaimana memperoleh algoritma dari beberapa jenis filter Kalman. Bab ini berisi simulasi filter Kalman dalam beberapa masalah, serta beberapa penerapan filter Kalman dalam kehidupan sehari-hari.
A. Simulasi Filter Kalman untuk Menduga Suatu Konstan
Simulasi dimulai dengan memilih suatu skalar konstan secara acak. Misalkan . Setelah itu tetapkan 50 sampel pengukuran yang errornya berdistribusi normal dengan rata-rata nol dan standar deviasi 0,1. Dengan kovariansi awal , dan dugaan awal , hasil simulasi filter Kalman untuk menduga nilai dari sampel yang tersedia bisa dilihat seperti pada gambar-gambar berikut.
(92)
Gambar 4.1 memperlihatkan bagaimana hasil dugaan yang diperoleh semakin mendekati nilai sebenarnya. Bisa dilihat pula bagaimana eror pendugaan semakin mendekati nol, yang artinya pendugaan semakin baik. Begitu juga dengan variansi yang semakin mendekati nol, menandakan tingkat kepercayaan akan pendugaan semakin tinggi.
Gambar 4.2 Pendugaan konstan
(93)
Data-data sampel pengukuran, hasil pengukuran, pendugaan dan variansi nya pada setiap langkah pengukuran dalam simulasi pertama ini dapat dilihat pada tabel berikut.
Tabel 4.1 Data Hasil Simulasi Filter Kalman untuk Menduga Suatu Konstan Langkah
ke- Pengukuran Pendugaan
Error
pendugaan Kovariansi 0 0.53385 0.00000 0.52611 1.00000 1 0.40470 0.40069 0.12542 0.00990 2 0.41476 0.40769 0.11842 0.00498 3 0.52543 0.44681 0.07930 0.00332 4 0.67937 0.50480 0.02131 0.00249 5 0.44914 0.49369 0.03242 0.00200 6 0.56325 0.50527 0.02084 0.00166 7 0.50355 0.50502 0.02109 0.00143 8 0.63785 0.52160 0.00451 0.00125 9 0.41720 0.51002 0.01609 0.00111 10 0.52937 0.51195 0.01416 0.00100 11 0.58136 0.51825 0.00786 0.00091 12 0.63617 0.52807 -0.00196 0.00083 13 0.68053 0.53979 -0.01368 0.00077 14 0.53470 0.53943 -0.01332 0.00071 15 0.37695 0.52860 -0.00249 0.00067 16 0.45188 0.52381 0.00230 0.00062 17 0.41995 0.51771 0.00840 0.00059 18 0.76116 0.53122 -0.00511 0.00056 19 0.46455 0.52772 -0.00161 0.00053 20 0.60092 0.53137 -0.00526 0.00050
(94)
21 0.50687 0.53021 -0.00410 0.00048 22 0.61497 0.53406 -0.00795 0.00045 23 0.44963 0.53039 -0.00428 0.00043 24 0.38588 0.52437 0.00174 0.00042 25 0.38387 0.51875 0.00736 0.00040 26 0.57493 0.52091 0.00520 0.00038 27 0.50837 0.52045 0.00566 0.00037 28 0.50650 0.51995 0.00616 0.00036 29 0.66804 0.52506 0.00105 0.00034 30 0.55527 0.52606 0.00005 0.00033 31 0.54589 0.52670 -0.00059 0.00032 32 0.68488 0.53164 -0.00553 0.00031 33 0.44566 0.52904 -0.00293 0.00030 34 0.59577 0.53100 -0.00489 0.00029 35 0.60962 0.53325 -0.00714 0.00029 36 0.50174 0.53237 -0.00626 0.00028 37 0.54768 0.53278 -0.00667 0.00027 38 0.40953 0.52954 -0.00343 0.00026 39 0.41131 0.52651 -0.00040 0.00026 40 0.53660 0.52676 -0.00065 0.00025 41 0.59834 0.52851 -0.00240 0.00024 42 0.78466 0.53461 -0.00850 0.00024 43 0.45942 0.53286 -0.00675 0.00023 44 0.54484 0.53313 -0.00702 0.00023 45 0.51786 0.53279 -0.00668 0.00022 46 0.33281 0.52844 -0.00233 0.00022 47 0.48221 0.52746 -0.00135 0.00021 48 0.34664 0.52369 0.00242 0.00021 49 0.61015 0.52546 0.00065 0.00020 50 0.43731 0.52370 0.00241 0.00020
(95)
B. Simulasi Filter Kalman untuk Menduga Posisi dan Kecepatan
Masalah untuk simulasi selanjutnya adalah untuk menduga posisi dan kecepatan dari sebuah kendaraan. Simulasi dilakukan 1 menit dengan pengukuran sebanyak satu kali per detik ( pada sistem dinamis berikut
Diperoleh matriks transisi , matriks input , dan
matriks pengukuran .
Hasil simulasi bisa dilihat pada gambar-gambar berikut.
Gambar 4.4 (a) Posisi kendaraan (b) error Posisi
Gambar 4.4 (a) menunjukkan posisi sebenarnya, posisi hasil pengukuran dan posisi hasil pendugaan. Meskipun ketiganya terlihat berhimpitan, gambar 4.4 (b) menunjukkan hasil pengukuran dan hasil pendugaan terhadap posisi yang sebenarnya.
(96)
Gambar 4.5 (a) Kecepatan kendaraan (b) error kecepatan
Hasil yang mirip terlihat pada gambar 4.5. Kecepatan hasil dugaan hampir berhimpitan dengan kecepatan sebenarnya, dengan berada di sekitar nol. Data untuk simulasi kedua ini dapat dilihat pada tabel-tabel berikut.
Tabel 4.2 (a) Data Hasil Simulasi Filter Kalman untuk Menduga Posisi
Langkah ke-
Posisi Error
Sebenar-nya
Hasil pengukuran
Hasil
dugaan Pengukuran Pendugaan
0 0.0994 -9.113 0.0972 9.2124 0.0021
1 0.2883 18.1366 0.4273 -17.848 -0.139 2 0.5577 4.0492 0.956 -3.4916 -0.3984 3 1.4211 -10.849 1.5305 12.2696 -0.1094 4 2.4512 5.3331 2.4699 -2.8819 -0.0187
5 4.1189 -11.4 3.0548 15.5186 1.0641
6 5.795 6.2893 4.348 -0.4943 1.447
(97)
8 9.4432 8.4125 7.8112 1.0307 1.632 9 11.245 21.1474 10.9565 -9.9025 0.2884 10 13.4755 19.6856 14.0457 -6.2101 -0.5702 11 15.5806 23.4704 17.6094 -7.8898 -2.0288 12 17.6352 4.7125 17.9174 12.9226 -0.2822 13 20.1427 25.6362 21.5556 -5.4935 -1.4129 14 23.0068 20.7088 23.9173 2.298 -0.9105 15 26.0045 22.1362 26.1861 3.8683 -0.1816 16 29.3984 6.905 25.1826 22.4933 4.2157 17 33.3481 46.5126 31.8078 -13.165 1.5402 18 37.3461 39.1154 36.1528 -1.7694 1.1933 19 41.4417 46.3046 41.2698 -4.8628 0.1719 20 45.381 56.2861 47.5908 -10.905 -2.2099 21 49.646 53.0782 52.3608 -3.4322 -2.7148 22 54.1122 58.4986 57.4316 -4.3865 -3.3194 23 59.3349 46.2599 59.2923 13.075 0.0427 24 64.6258 71.1174 65.5893 -6.4915 -0.9634 25 69.9147 51.7798 67.1216 18.1349 2.7931 26 75.8226 76.9241 73.1727 -1.1015 2.6499 27 81.827 84.3699 79.7253 -2.5429 2.1017 28 88.1888 101.14 88.5301 -12.952 -0.3414 29 94.6999 99.3875 95.6453 -4.6877 -0.9455 30 100.969 115.675 104.797 -14.705 -3.8274 31 107.231 108.365 111.057 -1.1339 -3.8265 32 113.497 84.6739 111.509 28.8234 1.9888 33 119.69 113.923 117.331 5.7665 2.3591 34 125.91 120.693 123.439 5.2173 2.4711 35 132.068 136.573 131.596 -4.5049 0.4717 36 138.17 123.878 135.864 14.2911 2.3059 37 144.402 136.503 141.734 7.8993 2.6683
(98)
38 151.009 158.961 150.967 -7.9527 0.0414 39 158.299 170.053 160.876 -11.754 -2.5776 40 166.197 157.151 166.572 9.0466 -0.3749 41 174.578 179.121 175.497 -4.5434 -0.9195 42 183.626 180.984 183.242 2.6414 0.384 43 192.94 187.401 190.841 5.5399 2.0996 44 202.313 196.566 198.85 5.7468 3.4628 45 212.111 222.325 210.514 -10.214 1.597 46 221.999 234.582 222.671 -12.583 -0.6719 47 232.232 249.156 235.685 -16.925 -3.454 48 242.571 264.491 249.566 -21.92 -6.9952 49 253.29 257.313 259.681 -4.0226 -6.3902 50 264.184 282.404 272.897 -18.22 -8.7131 51 275.106 273.218 281.981 1.888 -6.875 52 286.317 291.608 292.921 -5.2907 -6.6035 53 297.43 294.837 302.461 2.5929 -5.0304 54 308.361 312.096 313.561 -3.7351 -5.2001 55 319.913 320.899 324.337 -0.9866 -4.4245 56 331.673 335.206 335.915 -3.5329 -4.2419 57 343.4 351.161 348.512 -7.7616 -5.1126 58 355.341 379.996 364.554 -24.654 -9.2122 59 367.691 366.965 375.241 0.726 -7.5495 60 380.06 378.475 386.102 1.5847 -6.0427
Tabel 4.2 (b) Data Hasil Simulasi Filter Kalman untuk Menduga Kecepatan Langkah ke- Kecepatan sebenarnya Kecepatan hasil dugaan Error pendugaan 0 0.1816 0.1982 -0.0165
(99)
2 0.5775 0.6179 -0.0404
3 0.9629 0.7783 0.1846
4 1.3412 0.9926 0.3487
5 1.5316 1.0902 0.4414
6 1.5493 1.3085 0.2407
7 1.8109 1.5618 0.2491
8 1.9816 1.7704 0.2112
9 2.2603 2.1406 0.1197
10 2.1559 2.4458 -0.2899
11 2.02 2.7641 -0.7441
12 2.469 2.6832 -0.2142
13 2.7173 2.9728 -0.2554 14 2.9556 3.1012 -0.1456
15 3.2517 3.2104 0.0413
16 3.6692 3.0011 0.6681
17 3.7428 3.5287 0.2142
18 3.6491 3.7943 -0.1452
19 3.8061 4.105 -0.2989
20 4.2597 4.4953 -0.2356
21 4.372 4.7109 -0.3389
22 5.079 4.9342 0.1448
23 5.1115 4.8506 0.2609
24 5.272 5.171 0.101
25 5.6512 5.0361 0.6151
26 6.0205 5.3182 0.7023
27 6.141 5.6202 0.5208
28 6.1343 6.0983 0.036
29 6.2352 6.3811 -0.1458 30 6.0918 6.8226 -0.7307 31 6.1897 6.9626 -0.7729
(100)
32 6.0973 6.5632 -0.4659 33 6.2049 6.6869 -0.4821 34 6.0414 6.8253 -0.7839
35 6.029 7.1372 -1.1081
36 6.2088 7.0674 -0.8586 37 6.4908 7.1495 -0.6587 38 7.0864 7.5298 -0.4434 39 7.7584 7.9369 -0.1785
40 8.3487 7.9242 0.4245
41 8.9523 8.206 0.7463
42 9.244 8.355 0.889
43 9.3666 8.4773 0.8893
44 9.5546 8.6256 0.929
45 9.8017 9.0926 0.7092
46 9.9854 9.5618 0.4236
47 10.192 10.0662 0.1258 48 10.4657 10.6036 -0.1378 49 10.8472 10.7501 0.0971 50 11.0241 11.1649 -0.1408 51 11.0967 11.1669 -0.0701 52 10.94 11.3372 -0.3972 53 10.9519 11.3649 -0.413 54 11.4768 11.5318 -0.055 55 11.4918 11.6541 -0.1624 56 11.7468 11.8381 -0.0913
57 11.98 12.098 -0.1179
58 12.4057 12.647 -0.2413 59 12.1924 12.6599 -0.4676 60 12.376 12.6875 -0.3115
(1)
%menyiapkan matriks posm=[];
xtm=[]; ym=[]; Pplus=P0; Varminus=[];
Varplus=[P0(1,1)]; Km=[];
for k=1:N
%simulasi sistem dan pengukuran v=vv(k);
x=F*x;
y=H*x+sigma*v; %estimasi keadaan Pminus=F*Pplus*F';
K=Pminus*H'*inv(H*Pminus*H'+R); xt=F*xt;
xt=xt+K*(y-H*xt);
Pplus=(eye(3)-K*H)*Pminus*(eye(3)-K*H)'+K*R*K'; %menyimpan data
posm=[posm x(1)]; xtm=[xtm xt]; ym=[ym y];
Varminus=[Varminus Pminus(1,1)]; Varplus=[Varplus Pplus(1,1)]; Km=[Km K];
end
(2)
figure; k=1:N;
plot(k,ym-posm,'r:'); hold on;
plot(k,xtm(1,:)-posm,'b-'); xlim([0 60]);
xlabel('langkah ke-'); ylabel('posisi');
legend('error pengukuran','error pendugaan'); figure;
hold on; for k=1:N-1
plot([k-1 k],[Varplus(k) Varminus(k+1)]); plot([k k],[Varminus(k+1) Varplus(k+1)]); end
xlabel('langkah ke-');
ylabel('error variansi penduga posisi');
Simulasi A
clear close all clcload Simulasi_A t=0:50;
z=0.52611; %konstan yang akan diduga R0=0.1;
%n1=randn(size(t)); %variabel random berdistribusi normal standar n1;
(3)
y=z+R0.*n1; %variabel random berdistribusi normal dengan rata-rata y dan standar deviasi R0
P=[]; x=[]; err=[];
R=0.01; %variansi derau pengukuran P(1)=1; %variansi error pendugaan awal x(1)=0; %dugaan
for i=2:length(t)
K=P(i-1)*inv(P(i-1)+R);
x(i)=x(i-1)+K*(y(:,i)-x(i-1)); P(i)=P(i-1)-K*P(i-1);
end err=z-x; figure
plot(t,y,'o') hold on
plot(t,x,'k') plot(t,z,'g.')
title('pendugaan konstan') xlabel('langkah ke-') ylabel('konstan')
legend('sampel pengukuran','hasil dugaan','nilai konstan sebenarnya')
figure
plot(t,err,t,0)
title('error pendugaan') xlabel('langkah ke-')
(4)
ylabel('error') figure
plot(t,P)
xlabel('langkah ke-') ylabel('konstan')
title('variansi error pendugaan')
Simulasi B
clear close all clcload Simulasi_B
t=60; %waktu simulasi
dt=1; %waktu untuk satu langkah update dem=10; %derau pengukuran
dea=0.2; %derau percepatan
a=[1 dt; 0 1]; %matriks transisi (F) b=[dt^2/2; dt]; %matriks input (G) c=[1 0]; %matriks pengukuran (H) x=[0; 0]; %vektor keadaan awal xt=x; %vektor dugaan awal
Sz=dem^2; %kovariansi error pengukuran
Sw=dea^2*[dt^4/4 dt^3/2; dt^3/2 dt^2]; %kovariansi error proses pendugaan
P=Sw; %kovariansi error estimasi awal %menyiapkan matriks
pos=[]; %matriks posisi sebenarnya post=[]; %matriks posisi dugaan
(5)
posm=[]; %matriks posisi hasil pengukuran vel=[]; %matriks kecepatan sebenarnya velt=[]; %matriks kecepatan dugaan for k=0:dt:t
u=0.2; %misalkan percepatannya 0.2m/s^2 ue=due(k+1);
we=dwe(k+1);
deP=dea*[(dt^2/2)*ue; dt*we]; %derau proses pendugaan x=a*x+b*u+deP;
ve=dve(k+1); deM=dem*ve; y=c*x+deM; xt=a*xt+b*u; Inn=y-c*xt; s=c*P*c'+Sz; K=a*P*c'*inv(s); xt=xt+K*Inn;
P=a*P*a'-a*P*c'*inv(s)*c*P*a'+Sw; pos=[pos; x(1)];
posm=[posm; y]; post=[post; xt(1)]; vel=[vel; x(2)]; velt=[velt; xt(2)]; end
%plot hasil k=0:dt:t; %Posisi figure
(6)
subplot(1,2,1)
plot(k,pos,'b-',k,posm,'g--',k,post,'r-.'); xlabel('Waktu (s)');
ylabel('Posisi (m)'); title('Posisi');
legend('posisi sebenarnya','posisi hasil pengukuran','posisi hasil dugaan',2);
%Error posisi subplot(1,2,2)
plot(k,pos-posm,'b-',k,pos-post,'g--'); xlabel('Waktu (s)');
ylabel('Error Posisi (m)');
title('Error Pengukuran dan Error Pendugaan'); legend('error pengukuran','error pendugaan'); %Kecepatan
figure
subplot(1,2,1)
plot(k,vel,'b-',k,velt,'r-.') xlabel('Waktu (s)');
ylabel('Kecepatan (m/s)'); title('Kecepatan');
legend('kecepatan sebenarnya','kecepatan hasil dugaan',2); %Error kecepatan
subplot(1,2,2) plot(k,vel-velt) xlabel('Waktu (s)');
ylabel('Error Kecepatan (m/s)'); title('Error Kecepatan');