自適應卡爾曼濾波

自適應卡爾曼濾波

自適應卡爾曼濾波是指在利用測量數據進行濾波的同時,不斷地由濾波本身去判斷系統的動態是否有變化,對模型參數和噪聲統計特性進行估計和修正,以改進濾波設計、縮小濾波的實際誤差。此種濾波方法將系統辨識與濾波估計有機地結合為一體。

簡介

自適應卡爾曼濾波是指在利用測量數據進行濾波的同時,不斷地由濾波本身去判斷系統的動態是否有變化,對模型參數和噪聲統計特性進行估計和修正,以改進濾波設計、縮小濾波的實際誤差。此種濾波方法將系統辨識與濾波估計有機地結合為一體。

卡爾曼

跟其他著名的理論(例如傅立葉變換,泰勒級數等等)一樣,卡爾曼也是一個人的名字,而跟他們不同的是,他是個現代人。  

卡爾曼全名Rudolf Emil Kalman,匈牙利數學家,1930年出生於匈牙利首都布達佩斯。1953,1954年於麻省理工學院分別獲得電機工程學士及碩士學位。1957年於哥倫比亞大學獲得博士學位。卡爾曼濾波器,正是源於他的博士論文和1960年發表的論文《A New Approach to Linear Filtering and Prediction Problems》(線性濾波與預測問題的新方法)。

簡單來說,卡爾曼濾波器是一個“optimal recursive data processing algorithm(最最佳化自回歸數據處理算法)”。對於解決很大部分的問題,他是最優,效率最高甚至是最有用的。他的廣泛套用已經超過30年,包括機器人導航,控制,感測器數據融合甚至在軍事方面的雷達系統以及飛彈追蹤等等。近年來更被套用於計算機圖像處理,例如頭臉識別,圖像分割,圖像邊緣檢測等等。  

卡爾曼濾波器

為了可以更加容易的理解卡爾曼濾波器,這裡會套用形象的描述方法來講解,而不是像大多數參考書那樣羅列一大堆的數學公式和數學符號。但是,他的5條公式是其核心內容。結合現代的計算機,其實卡爾曼的程式相當的簡單,只要你理解了他的那5條公式。  

假設要研究的對象是一個房間的溫度。根據你的經驗判斷,這個房間的溫度是恆定的,也就是下一分鐘的溫度等於這一分鐘的溫度(假設我們用一分鐘來做時間單位)。假設對經驗不是100%的相信,可能會有上下偏差幾度。把這些偏差看成是高斯白噪聲(White Gaussian Noise),也就是這些偏差跟前後時間是沒有關係的而且符合高斯分配(Gaussian Distribution)。  

另外,在房間裡放一個溫度計,但是這個溫度計也不準確的,測量值會比實際值偏差。我們也把這些偏差看成是高斯白噪聲。  

好了,對於某一分鐘有兩個有關於該房間的溫度值:你根據經驗的預測值(系統的預測值)和溫度計的值(測量值)。要用這兩個值結合他們各自的噪聲來估算出房間的實際溫度值。  

假如要估算k時刻的是實際溫度值。 

首先要根據k-1時刻的溫度值,來預測k時刻的溫度。因為溫度是恆定的,所以會得到k時刻的溫度預測值是跟k-1時刻一樣的,假設是23度,同時該值的高斯噪聲的偏差是5度 (5是這樣得到的:如果k-1時刻估算出的最優溫度值的偏差是3,對自己預測的不確定度是4度,他們平方相加再開方,就是5)。 

然後,從溫度計那裡得到了k時刻的溫度值,假設是25度,同時該值的偏差是4度。  

用於估算k時刻的實際溫度有兩個溫度值,分別是23度和25度。究竟實際溫度是多少呢?相信自己還是相信溫度計呢?究竟相信誰多一點,我們可以用他們的covariance 來判斷。因為Kg^2=5^2/(5^2+4^2),所以Kg =0.78,我們可以估算出k時刻的實際溫度值是:23+0.78*(25-23) =24.56度。可以看出,因為溫度計的covariance比較小(比較相信溫度計),所以估算出的最優溫度值偏向溫度計的值。  

已經得到k時刻的最優溫度值了,下一步就是要進入k+1時刻,進行新的最優估算。沒看到什麼自回歸的東西出現。對了,在進入k+1時刻之前,我們還要算出k時刻那個最優值(24.56度)的偏差。算法如下:((1-Kg)*5^2)^0.5 =2.35。這裡的5就是上面的k時刻你預測的那個23度溫度值的偏差,得出的2.35就是進入k+1時刻以後k時刻估算出的最優溫度值的偏差(對應於上面的3)。  

就是這樣,卡爾曼濾波器就不斷的把covariance遞歸,從而估算出最優的溫度值。他運行的很快,而且它只保留了上一時刻的covariance。上面的Kg,就是卡爾曼增益 (Kalman Gain)。他可以隨不同的時刻而改變他自己的值,是不是很神奇!

經典卡爾曼濾波

動態系統的卡爾曼濾波數學模型包括狀態方程和觀測方程,對於線性系統,其離散形式為 

= ,−1−1+ −1−1 

= +  

其中,為系統在時刻的n×1維狀態向量,,−1為系統從−1時刻到時刻的n×n維狀態轉移矩陣,−1為−1時刻的r×1動態噪聲,−1為−1時刻的n×r動態噪聲矩陣,為系統在時刻的m×1維觀測向量,為系統在時刻的m×n維觀測矩陣,為系統在時刻的m×1維觀測噪聲。

相關詞條

熱門詞條

聯絡我們