本文將以車輛三自由度模型為基礎(chǔ),利用擴展卡爾曼濾波,通過車輛的側(cè)向加速度來估計橫擺角速度、質(zhì)心側(cè)偏角、縱向速度等三個參數(shù),通過一個實際的仿真案例來進行具體介紹擴展卡爾曼濾波的使用。
一般地,卡爾曼濾波會選擇比較容易獲取的參數(shù),來估計不易測量的參數(shù)。
在這里,腳主把卡爾曼參數(shù)估計仿真分為四個步驟:
1)車輛模型搭建;
2)擴展卡爾曼濾波算法搭建;
3)模型整合及仿真工況設(shè)置;
4)仿真及結(jié)果分析。
車輛模型搭建
本例中,利用車輛三自由度模型(如下圖)進行參數(shù)估計,需要知道車輛的輸入信號(車輪轉(zhuǎn)角、縱向加速度)和輸出信號(側(cè)向加速度),所以需要自己搭建一個車輛模型來創(chuàng)造這些數(shù)據(jù)。即對車輛模型輸入一個方向盤轉(zhuǎn)角和縱向加車速,得到側(cè)向加速度。

在實車上,這一步是可以忽略的,因為我們可以通過傳感器直接測量卡爾曼濾波所需的信號。
腳主暫時選擇比較簡便的方法,借助carsim中的車輛模型來完成這項工作,僅需要設(shè)置好我們關(guān)注的車輛基本參數(shù)及信號接口即可。
質(zhì)心到前后軸距離、沿Z軸轉(zhuǎn)動慣量、質(zhì)量設(shè)置位置如下圖。

前后輪側(cè)偏剛度設(shè)置位置如下圖。

方向盤轉(zhuǎn)角到車輪轉(zhuǎn)角的傳動比設(shè)置位置如下圖。

輸出接口選擇輸出橫擺角速度、質(zhì)心側(cè)偏角、縱向車速、方向盤轉(zhuǎn)角、縱向加速度、側(cè)向加速度。前三個是待估計的參數(shù),用于與仿真結(jié)果對比;后三個是車輛的輸入輸出信號,會作為卡爾曼濾波算法的輸入。

一直用別人的車輛模型也不合適,后面腳主會自己動手搭建車輛模型,這樣就可以避免聯(lián)合仿真的麻煩,仿真可以全部在simulink中實現(xiàn)了。更重要的是自己搭建車輛模型更加能加深對車輛的理解,這個是商業(yè)軟件所無法替代的。
擴展卡爾曼濾波算法搭建
擴展卡爾曼濾波算法就是把上文提到的5個核心公式表達出來。再次強調(diào)一下:需要使用非線性函數(shù)f、h來表示狀態(tài)方程和輸出方程;系統(tǒng)矩陣A、輸出矩陣H需要用f、h函數(shù)求偏導(dǎo)后的雅克比矩陣表示。

腳主這里借助以前搭建的卡爾曼濾波算法,稍微改動一下,得到如下圖的擴展卡爾曼濾波算法。

用5個function表達卡爾曼濾波算法其實比較繁瑣,但是可以更好地表達5個公式之間的時序關(guān)系,便于初學(xué)者理解。
模型整合及仿真工況設(shè)置
把上述兩部分內(nèi)容組合起來就是整個基于擴展卡爾曼濾波的參數(shù)估計仿真模型,如下圖。基本思路就是,carsim模型輸出濾波算法所需的信號,然后進行參數(shù)估計,輸出估計的結(jié)果,最后將估計結(jié)果與車輛實際信號對比,來驗證算法的有效性。

為了驗證算法,還需要在carsim中設(shè)置一下仿真工況。
1)初始車速為30km/h進行滑行。

2)方向盤轉(zhuǎn)角按下圖的曲線執(zhí)行。

仿真及結(jié)果分析
運行模型,得到估計的橫擺角速度、質(zhì)心側(cè)偏角、縱向車速,與車輛實際的狀態(tài)對比如下圖。
橫擺角速度估計結(jié)果:

質(zhì)心側(cè)偏角估計結(jié)果:

縱向車速估計結(jié)果:

從圖中可以看出,橫擺角速度、質(zhì)心側(cè)偏角、縱向車速的估計值與實際值基本一致,算法可靠有效。
以上,介紹了擴展卡爾曼濾波算法進行參數(shù)估計的一個實例,僅供大家參考。