本文將以車輛三自由度模型為基礎,利用擴展卡爾曼濾波,通過車輛的側向加速度來估計橫擺角速度、質(zhì)心側偏角、縱向速度等三個參數(shù),通過一個實際的仿真案例來進行具體介紹擴展卡爾曼濾波的使用。
一般地,卡爾曼濾波會選擇比較容易獲取的參數(shù),來估計不易測量的參數(shù)。
在這里,腳主把卡爾曼參數(shù)估計仿真分為四個步驟:
1)車輛模型搭建;
2)擴展卡爾曼濾波算法搭建;
3)模型整合及仿真工況設置;
4)仿真及結果分析。
車輛模型搭建
本例中,利用車輛三自由度模型(如下圖)進行參數(shù)估計,需要知道車輛的輸入信號(車輪轉角、縱向加速度)和輸出信號(側向加速度),所以需要自己搭建一個車輛模型來創(chuàng)造這些數(shù)據(jù)。即對車輛模型輸入一個方向盤轉角和縱向加車速,得到側向加速度。
在實車上,這一步是可以忽略的,因為我們可以通過傳感器直接測量卡爾曼濾波所需的信號。
腳主暫時選擇比較簡便的方法,借助carsim中的車輛模型來完成這項工作,僅需要設置好我們關注的車輛基本參數(shù)及信號接口即可。
質(zhì)心到前后軸距離、沿Z軸轉動慣量、質(zhì)量設置位置如下圖。
前后輪側偏剛度設置位置如下圖。
方向盤轉角到車輪轉角的傳動比設置位置如下圖。
輸出接口選擇輸出橫擺角速度、質(zhì)心側偏角、縱向車速、方向盤轉角、縱向加速度、側向加速度。前三個是待估計的參數(shù),用于與仿真結果對比;后三個是車輛的輸入輸出信號,會作為卡爾曼濾波算法的輸入。
一直用別人的車輛模型也不合適,后面腳主會自己動手搭建車輛模型,這樣就可以避免聯(lián)合仿真的麻煩,仿真可以全部在simulink中實現(xiàn)了。更重要的是自己搭建車輛模型更加能加深對車輛的理解,這個是商業(yè)軟件所無法替代的。
擴展卡爾曼濾波算法搭建
擴展卡爾曼濾波算法就是把上文提到的5個核心公式表達出來。再次強調(diào)一下:需要使用非線性函數(shù)f、h來表示狀態(tài)方程和輸出方程;系統(tǒng)矩陣A、輸出矩陣H需要用f、h函數(shù)求偏導后的雅克比矩陣表示。
腳主這里借助以前搭建的卡爾曼濾波算法,稍微改動一下,得到如下圖的擴展卡爾曼濾波算法。
用5個function表達卡爾曼濾波算法其實比較繁瑣,但是可以更好地表達5個公式之間的時序關系,便于初學者理解。
模型整合及仿真工況設置
把上述兩部分內(nèi)容組合起來就是整個基于擴展卡爾曼濾波的參數(shù)估計仿真模型,如下圖。基本思路就是,carsim模型輸出濾波算法所需的信號,然后進行參數(shù)估計,輸出估計的結果,最后將估計結果與車輛實際信號對比,來驗證算法的有效性。
為了驗證算法,還需要在carsim中設置一下仿真工況。
1)初始車速為30km/h進行滑行。
2)方向盤轉角按下圖的曲線執(zhí)行。
仿真及結果分析
運行模型,得到估計的橫擺角速度、質(zhì)心側偏角、縱向車速,與車輛實際的狀態(tài)對比如下圖。
橫擺角速度估計結果:
質(zhì)心側偏角估計結果:
縱向車速估計結果:
從圖中可以看出,橫擺角速度、質(zhì)心側偏角、縱向車速的估計值與實際值基本一致,算法可靠有效。
以上,介紹了擴展卡爾曼濾波算法進行參數(shù)估計的一個實例,僅供大家參考。