了解卡爾曼濾波器 (from matlab)
Understanding Kalman Filters
為什麼要用卡爾曼濾波器?
濾波器不是咖啡的濾紙喔~哈
主要的目的在於用於估計,無法直接觀測得到的真實值量 (如火箭屁股火溫)
只能夠過旁邊的方法觀測,如貼在外面的溫度計觀測,但這個溫度跟火箭屁股火溫有誤差
這時候該怎麼知道實際的溫度呢?
或是另外一個案例,要知道車子移動到的位置
但是當車子進入隧道時,GPS會因為屏障很變得不準確
只能從不同的角度推測車子的位置,用加速度乘時間計算,或是測量器推估車子位置,再加上有誤差的GPS
而卡爾曼濾波器,就能結合不同儀器的觀測資料,結合出一個最好的解,知道車子最佳位置。
卡爾曼濾波器使用在何時?
1. 當變數無法直接被觀測
2. 可以從不同的觀測儀器觀測,但主要的方式有較多誤差
計算車子行駛一公里後的位置,當估算的位置準確,但有偏差,或是沒有偏差但有很大的離散
都是不好的結果
但如果要做到無偏差,離散度低的結果,卻是要花很多很多的錢才有辦法做到!!!
卡爾曼濾波器,用在有誤差,有偏差的觀測或預測的系統中,得到一個好的結果
卡爾曼濾波器,就是結合觀測和預報,去找到最佳的估計值
觀測和預報都有誤差,以高斯分佈的標準差為設定(R, Q)
分為兩個部分 (此為線性模式)
1. prediction
預報狀態下的x,和預報狀態下的標準差 P
2. update
把上面的x 和 P 拿過來,更新出新的 x 和 P(預報誤差)
用K還極小化 P
當觀測誤差R為零,就會得到觀測 y 為最佳解
相反預報誤差P為零,就會得到預報值 x 為最佳解
要進行下一次預報,不需要所有的資料
只要存下 估計場 x 和 P 矩陣 (covariance matrix) 即可進入循環
亦可增加更多的觀測,加入矩陣得到更好的 最佳解!
留言
張貼留言