卡尔曼滤波器推导
注:受控制領域大牛CAN博士啟發,受益匪淺,作此文以為筆記。
簡介
??設
??卡爾曼濾波器是從測量值ZZZk的平均數開始的。開始推導:
由上式可知
??也就是說隨著kkk的增大,測量結果Zk不在重要,因為已經獲得了足夠多的測量值,此時的估計值已經很貼近了實際值了。我們令Kk=1/k1/k1/k,即
可知,Kk在[0,1][0,1][0,1]之間,當Kk =0=0=0時,估計值等于上一次計算的估計值,當Kk =1=1=1時,估計值等于本次測量值,這時引入兩個參數eEST,eMEA,令
有
其中,eMEA是測量誤差,是測量工具自身的屬性,是不變的,eEST是估計誤差,會受歷史數據的影響,即
由上述幾個式子便可使用卡爾曼濾波器來解決實際的問題了。步驟如下:
第一步
第二步
第三步
例
??有一個質量為50g50g50g的物體,但我們此時并不知道該物體質量是多少,先估計其有46g46g46g,估計誤差為5g5g5g,將其放在稱上稱得質量為
該稱的測量誤差為3g3g3g,將所有數據放在Excel里進行計算
其中藍色線條表示測量值,紅色線條表示估計值,從圖中可以看出,盡管測量值起伏較大,但估計值整體趨勢很平緩,不斷向實際值靠攏且十分接近實際值。
數據融合
??從一個例子入手,設某物體質量為mmm,分別用標準差為σ1 =2g=2g=2g和σ2 =4g=4g=4g得稱來稱該物體,稱得質量分別為Z1 =30g=30g=30g和Z2 =33g=33g=33g,求出最優估計值。
??從上述中可得式
此時引入標準差,即估計值的標準差,當標準差越小時,即方差越小,估計值的波動越小,也就越趨于真實值。如下:
由上式可知,估計值的方差是關于Kk的函數,使估計值方差對Kk求導,即
將σ1 =2g=2g=2g和σ2 =4g=4g=4g代入上式中,Kk =0.2=0.2=0.2,得
協方差矩陣
??有以下333組數據
平均值
方差
協方差
協方差矩陣PPP
為方便編程計算,引入一個過渡矩陣AAA
則
注: 式中的333是指矩陣得維數。
??在matlabmatlabmatlab中驗證一下
與計算得結果一致。
狀態空間表達式
??有如下系統
??該系統中,物塊質量為MMM,彈簧彈力系數為kkk,阻尼系數為BBB,系統輸入為拉力FFF。于是有
狀態變量
得
測量量
狀態空間表達式
化為離散形式
??由于系統存在各種不確定性,需要加入過程噪聲WWW和測量噪聲VVV,即
??WWW服從正態分布,期望為000,協方差矩陣為QQQ,即P(W)?N(0,Q)P(W)-N(0,Q)P(W)?N(0,Q)。VVV也服從正態分布,期望為000,協方差矩陣為RRR,即P(V)?N(0,R)P(V)-N(0,R)P(V)?N(0,R)。其中Q=E[WWT]Q=E[WW^T]Q=E[WWT],推導如下:
同理,R=E[VVT]R=E[VV^T]R=E[VVT]。
卡爾曼增益推導
??由于過程噪聲是不確定的,于是狀態估計值先驗為
根據先驗估計和測量估計可得出后驗估計
令 G=G=G= KkHHH,則
??我們的目標是求得合理的Kk值使得估計誤差最小,有
同理
??當后驗估計值越接近真實值 Xk, 則說明 ek 的方差越小,即 ek 越接近于期望值000。于是有
接著推導
有
先驗誤差協方差矩陣
ek的協方差矩陣Pk
??由之前的推導可得
總結
總結
- 上一篇: Jeston TX2安装Ubuntu系统
- 下一篇: YOLOv5在建筑工地中安全帽佩戴检测的