高振海,溫文昊,唐明弘,張 建,陳國迎
(1.吉林大學,汽車仿真與控制國家重點實驗室,長春 130022;2.中國第一汽車集團有限公司智能網(wǎng)聯(lián)開發(fā)院,長春 130000)
汽車主動控制系統(tǒng)與輔助及智能駕駛系統(tǒng)的實現(xiàn)以獲取汽車的基本平面運動狀態(tài)為前提[1-3],即獲取縱向速度、側向速度與橫擺角速度(如圖1所示)。一般來說,這些信息可以直接從傳感器獲取。然而由于傳感器精度與成本限制以及量測噪聲分布特性難以確定等問題,有些狀態(tài)信息無法找到有效適用的傳感器來直接進行測量或測量精度不高。合理的方法是基于廉價傳感器的信息,結合狀態(tài)估計算法來進行軟測量。
傳統(tǒng)的運動狀態(tài)估計算法主要采用基于模型的方法,利用運動學和動力學模型來描述縱側向速度及橫擺角速度與其他車輛參數(shù)和狀態(tài)之間的關系。如卡爾曼濾波(KF)類算法[1],它將一系列帶有噪聲的量測結果與基于線性模型的估計結果融合,適用于常規(guī)的駕駛條件。擴展卡爾曼濾波(EKF)[4-5]采用非線性車輛模型,估計精度優(yōu)于KF。無跡卡爾曼濾波(UKF)[6]利用UT變換來避免線性化處理,具有更高的估計精度。
基于模型的估計算法性能取決于車輛建模精度[6]。當車輛運行在大側偏的工況時,車輛表現(xiàn)出較強的非線性。在這種情況下,線性的車輛模型與實際的車輛系統(tǒng)偏差很大,KF的估計性能顯著下降[1,7]。在道路摩擦因數(shù)發(fā)生改變時,EKF的參數(shù)必須進行調(diào)整,且EKF只適合于較弱的非線性工況,在較強的非線性工況下其性能會惡化[1,3]。UKF有更高的近似精度但仍受限于模型精度,且成功的UKF估計算法需要精細的參數(shù)調(diào)整[1,6,8-9]。
機器學習方法尤其是神經(jīng)網(wǎng)絡(NN)近年來有了很大的發(fā)展[10]。基于神經(jīng)網(wǎng)絡的方法利用神經(jīng)網(wǎng)絡模型來描述多種廉價傳感器信息與估計狀態(tài)量之間的關系,無需了解車輛的固有參數(shù)[11-13]。通過適當?shù)哪P徒Y構和豐富多樣的訓練數(shù)據(jù)集,這種方法可準確有效地估計車輛運動狀態(tài)[6-7]。
國內(nèi)外學者利用深度學習(DL)方法對車輛狀態(tài)估計進行了大量的研究。Chindamo等[14]使用ANN構建了質(zhì)心側偏角的估計算法,并通過CarSim仿真軟件來驗證估計性能。Ghosh等[15]使用多層長短期記憶網(wǎng)絡(LSTM)估計質(zhì)心側偏角,其輸入包含多個時刻的傳感器信號。Spielberg等[16]使用深度神經(jīng)網(wǎng)絡建模高性能車輛的動力學,其輸入為前5個時間步長的傳感器輸入值。結果表明這種建模方法在高附與低附路面下均工作良好。
然而目前大多數(shù)的研究直接利用深度學習領域[17]的模型框架,如DNN、LSTM、GRU等[16-19],未針對車輛運動狀態(tài)估計問題的特點做出改進。數(shù)據(jù)集大多來源于同一工況下多次試驗采集得到的傳感器時序信號,導致在特定數(shù)據(jù)集下得到的最優(yōu)網(wǎng)絡架構泛化性能較差。在Srinivasan等[18]的研究中,采用的長序列輸入GRU網(wǎng)絡在未見的工況上性能較差,其原因在于長序列輸入的GRU網(wǎng)絡很好地記憶了在試驗賽道下車輛狀態(tài)的平均值,而非學習得到車輛的動力學特性。
因此本文提出了一種基于混合神經(jīng)網(wǎng)絡的車輛運動狀態(tài)估計算法。通過分析車輛本身的動力學基本特性,設計了適合于車輛運動狀態(tài)估計的HNN混合神經(jīng)網(wǎng)絡架構,實現(xiàn)了車輛運動狀態(tài)的深度學習估計。在由多工況組成的數(shù)據(jù)集上對模型進行訓練與調(diào)優(yōu)。最后在仿真和實車環(huán)境中驗證了算法。
GRU(gated recurrent unit)神 經(jīng) 網(wǎng) 絡 是RNN(recurrent neural network)網(wǎng)絡的一種變體。經(jīng)典的RNN網(wǎng)絡在訓練過程中會遇到梯度消失或梯度爆炸的問題。因此新的架構如LSTM(long-short term memory)[20]被發(fā)明出來,并被廣泛地應用于語言識別、翻譯等。
GRU[21]對LSTM進行了簡化,通過單個門控單元同時控制遺忘因子和狀態(tài)更新單元的輸出。GRU網(wǎng)絡順序結構如圖2所示。圖中在時刻t下每一個重復單元的輸入量包括樣本輸入數(shù)據(jù)x(t)、上一單元的狀態(tài)h(t-1),輸出量為y(t)。
GRU單元內(nèi)層級如圖3所示,其中,W hr為復位門的狀態(tài)權重,W xr為復位門的輸入權重,b r為復位門的偏置;W hz為更新門的狀態(tài)權重,W xz為更新門的輸入權重,b z為更新門的偏置;W hg為輸入門的狀態(tài)權重,W xg為輸入門的輸入權重,b g為輸入門的偏置;σ(?)表示sigmoid激活函數(shù),tanh(?)表示雙曲正切激活函數(shù);?表示矩陣乘法,?表示按元素相乘,⊕表示按元素相加;“1-”表示用1減去所有元素。
在GRU網(wǎng)絡中,更新門同時控制遺忘門和輸入門。如果更新門的輸出是1,則遺忘門打開(=1),輸入門關閉(1-1=0);如果輸出0,則相反。下式為更新門計算公式:
復位門控制那些先前狀態(tài)會被輸出給輸入門來計算。下式為復位門的計算公式:
輸入門的輸入量為當前時刻的輸入與經(jīng)過復位門限制之后的前一時刻狀態(tài),激活函數(shù)為雙曲正切函數(shù)。下式為輸入門的計算公式:
最后的更新公式將前一時刻狀態(tài)和輸入門的輸出值用更新門的輸出來進行融合。下式為更新公式:
由于本文的訓練任務為回歸任務,損失函數(shù)取為均方誤差:
式中:h(·)表示混合神經(jīng)網(wǎng)絡正向傳播的預測值;表示當前時刻網(wǎng)絡的輸入;y t表示當前時刻的期望輸出值向量;m為樣例個數(shù)。
采用Adam優(yōu)化算法來最小化損失函數(shù),它結合了動量優(yōu)化和RMSProp的思想,跟蹤過去梯度的指數(shù)衰減平均值與過去平方梯度的指數(shù)衰減平均值。算法公式如下:
式中:t代表迭代次數(shù);β1為梯度衰減因子;β2為平方梯度衰減因子;θ為神經(jīng)網(wǎng)絡中的參數(shù);J(?)代表損失函數(shù)。
運動狀態(tài)估計網(wǎng)絡架構的設計基于對經(jīng)典車輛動力學模型的分析,以傳感器輸入信號與估計量之間的主要依賴關系為依據(jù)提出了適合于表達這種聯(lián)系的深度神經(jīng)網(wǎng)絡結構。
圖4所示為2自由度車輛動力學模型,運動微分方程為
式中:vx為縱向速度;vy為側向速度;ωr為橫擺角速度;δ為前輪轉角;k1、k2分別為前后輪側偏剛度;a、b分別為質(zhì)心到前后軸距離;m為整車質(zhì)量;Iz為繞z軸的轉動慣量。
該模型可用于描述汽車的基本運動特性。從微分方程組可以看出,當前時刻的側向速度與橫擺角速度值取決于控制輸入(前輪轉角、縱向速度)和過去時刻兩者的狀態(tài)值,即當前時刻狀態(tài)值對過去時刻的狀態(tài)有顯式的依賴。
在該模型中縱向速度作為控制輸入,而非狀態(tài)變量。一般來說,當前時刻的縱向速度主要取決于當前時刻的輪速,它們之間為非線性的耦合關系,不具有顯式的時序依賴。
基于上述分析可知,縱向速度的估計需要可表達非線性關系的網(wǎng)絡結構,而側向速度與橫擺角速度的估計在表達非線性關系的基礎上需要顯式地表達時序依賴關系。因此本文設計了3層的網(wǎng)絡架構來估計車輛的運動狀態(tài),分別是傳感器輸入層,縱向速度估計層,側向速度與橫擺角速度估計層。其連接關系如圖5所示。
該算法輸入為包括當前時刻在內(nèi)的前n個時刻的傳感器測量值序列。式(13)為t時刻的傳感器測量值向量,式中符號定義見表1。輸出值為當前時刻t的運動狀態(tài)向量,包括了縱側向速度和橫擺角速度,如式(14)所示。
2.2.1 傳感器輸入層
以某國產(chǎn)電動車型CAN總線可獲取的傳感器測量信號為依據(jù),篩選了與運動狀態(tài)估計相關的信號作為本算法的傳感器輸入,總結在表1中。在這些信號中,除傳統(tǒng)的基于EKF的估計算法用到的傳感器輸入外,還包括驅動電機轉矩。增加該信號可以使模型得到與縱向相關的特性,提高估計精度。
表1 傳感器信號輸入量
2.2.2 縱向速度估計層
該層基于DNN網(wǎng)絡構建,其輸入是當前時刻的傳感器測量值向量,輪速之外的其他傳感器信號可在車輛處于側滑或縱滑狀態(tài)下對縱向速度的估計值修正。該網(wǎng)絡的隱層數(shù)與各隱層的神經(jīng)元數(shù)量作為超參數(shù),在訓練過程中確定。
在數(shù)據(jù)集上訓練對比了多種縱向速度估計網(wǎng)絡,其結果如表2所示。其中RMSE為均方誤差,MAE為平均絕對誤差,變化率指相對前者的RMSE與MAE變化幅度,箭頭表示相比前者下降。
表2 縱向速度估計網(wǎng)絡對比
2.2.3 側向速度與橫擺角速度估計層
側向速度與橫擺角速度估計需要的時序依賴關系可以通過RNN類型的網(wǎng)絡顯式地表達,本方法選用了性能更優(yōu)的GRU網(wǎng)絡。在不同車速條件下,縱向速度的估計值是重要的估計參量,需要將其輸入到該層網(wǎng)絡中。
該網(wǎng)絡單個時刻的輸入向量包括傳感器測量值向量與縱向速度估計結果vx。前n個時刻的輸入組成一個序列作為該網(wǎng)絡的輸入。GRU網(wǎng)絡的單元個數(shù)和輸入序列的長度n作為超參數(shù)在訓練時確定,過長的輸入序列對于性能的提升不大。在GRU層之后是dropout層,增加該層可以有效地防止GRU網(wǎng)絡產(chǎn)生過擬合的現(xiàn)象,同時可提高擬合的精確度。其僅在訓練期間使用,在測試與驗證過程中將不起作用。最后各GRU單元的輸出通過全連接層將維度修正為2。
表3顯示了利用不同的網(wǎng)絡架構搭建該層時的估計結果。由表3可見,GRU網(wǎng)絡的估計精度相比DNN有大幅提升。在輸入中包含縱向速度的估計結果后其精度進一步提升。
表3 側向速度與橫擺角速度估計網(wǎng)絡對比
為測試驗證本文中提出的車輛運動狀態(tài)估計算法的實際性能,首先在駕駛模擬器中采集了訓練數(shù)據(jù)集,并訓練了算法網(wǎng)絡模型;然后在仿真環(huán)境下的標準工況中對比了本算法與傳統(tǒng)算法,并分析討論了結果;最后在DLC工況下驗證算法在實車環(huán)境中的性能。
3.1.1 數(shù)據(jù)采集
數(shù)據(jù)采集應用了駕駛模擬器,其中的車輛模型為前述某國產(chǎn)電動車型,在前期的科研工作中,根據(jù)試驗數(shù)據(jù)和模擬數(shù)據(jù)的差異,通過試錯法逐步調(diào)整了該模型的參數(shù)。選取了5名兩年以上駕齡的青年駕駛員,年齡在20-30歲之間。采集過程見圖6,每名駕駛員完成一次下述所有工況的數(shù)據(jù)采集。
數(shù)據(jù)采集工況包含多種緊急駕駛的典型場景,主要分為縱向和側向兩個部分。側向工況包括雙移線工況、J型轉向工況和正弦轉向輸入工況。每種工況下車速在20-120 km/h范圍內(nèi)變化,間隔為10 km/h。表4為側向工況的總結??v向工況包括固定加速踏板開度與加速踏板開度逐漸變化到最大值兩種情況,總結在表5中。各工況在不同路面下分別采集。
表4 數(shù)據(jù)集所含側向工況總結
表5 數(shù)據(jù)集所含縱向工況總結
數(shù)據(jù)集的有效時長為2 h 1 min 17 s。車輛質(zhì)心側偏角真值分布情況如圖7所示。由于存在部分純縱向的工況,因此質(zhì)心側偏角在0°附近的數(shù)據(jù)最多。質(zhì)心側偏角在4°以上的數(shù)據(jù)占整個數(shù)據(jù)集的31.4%,基本覆蓋了常規(guī)駕駛工況和大側偏角工況。此外本數(shù)據(jù)集在4種路面下的占比分別為17.6%、28.5%、28.5%、25.4%,其分布基本均勻。
3.1.2 混合神經(jīng)網(wǎng)絡訓練
訓練網(wǎng)絡時采用了獨立訓練的方式,分別訓練各子層網(wǎng)絡。訓練過程為:按照網(wǎng)絡的輸入輸出劃分訓練樣例,得到1 452 673個訓練樣例;然后劃分訓練集與驗證集;其次搭建網(wǎng)絡模型,并在驗證集上調(diào)優(yōu)超參數(shù);最后在訓練集與驗證集上重新訓練模型,圖8和圖9為最后的訓練過程。表6和表7展示了經(jīng)過調(diào)優(yōu)后的超參數(shù)設置。
表6 縱向速度估計網(wǎng)絡超參數(shù)設置
表7 側向速度與橫擺角速度估計網(wǎng)絡超參數(shù)設置
在多種車速與路面條件下測試了本文中提出的運動狀態(tài)估計算法的性能,與HNN對比的算法總結在表8中。
表8 對比算法
3.2.1 測試工況
測試工況為轉向盤轉角掃頻輸入工況。輸入頻率從0.2增加到0.5 Hz,幅值從±90°降低到±10°,圖10為轉向盤轉角輸入曲線。分別在3種路面和4種道路下進行了測試,共計12個測試工況。在高速或低附條件下,該工況某些時刻車輛質(zhì)心側偏角可達5°以上,適用于評價大側偏角情況下的運動狀態(tài)估計算法性能。
3.2.2 不同車速下的結果分析
在路面摩擦因數(shù)為1.0的條件下,對比了不同車速下各模型的估計效果。圖11~圖13分別為30、70、120 km/h下的估計結果。
當車速為30 km/h時,GRU估計算法在估計縱向速度時其結果的變化趨勢與真值顯著不同,而側向速度與橫擺角速度估計值的變化趨勢與真值一致。EKF算法在估計縱向速度時,出現(xiàn)了較大幅度的波動,另外由于其初值設置問題,導致初始時刻的估計結果存在較大的誤差。DNN算法在估計側向速度時存在明顯的負偏置。HNN算法與真值的變化趨勢一致。
當車速為70 km/h時,GRU算法、DNN算法與HNN算法的估計結果與30 km/h時一致。EKF算法在估計側向速度時,出現(xiàn)了相位延后的情況。
當車速為120 km/h時,橫擺角速度的真值在波峰與波谷的位置傾向于出現(xiàn)兩個極值。這表明隨著車速的升高,車輛非線性特性更加明顯。EKF算法在估計縱側向速度時,出現(xiàn)了明顯的尖峰,反映出其線性化處理的誤差影響變大。GRU網(wǎng)絡在估計橫擺角速度時其相對誤差減少。DNN算法與HNN算法的估計結果與真值的變化趨勢一致,HNN算法的誤差小于DNN算法。
表9統(tǒng)計了各估計算法在不同車速下對不同狀態(tài)量預測的均方誤差??梢钥闯鯤NN的均方誤差小于其他算法。
表9 不同車速下各算法估計均方誤差RMSE
3.2.3 不同路面下的結果分析
在車速為70 km/h時,對比了不同路面下各個模型的估計效果。圖14~圖16分別是路面摩擦因數(shù)為0.85、0.5、0.3下的估計結果,路面摩擦因數(shù)為1.0的估計結果如圖12所示。
隨著路面摩擦因數(shù)的減小,真值的變化趨勢明顯區(qū)別于高附路面。在大轉向盤轉角輸入下,橫擺角速度的真值曲線波峰與波谷處傾向于出現(xiàn)兩個,而且隨著轉向盤轉角輸入幅值的減小,橫擺角速度幅值沒有明顯降低。這表明在低附路面下,車輛出現(xiàn)了滑移。
觀察估計結果曲線與表10的均方誤差統(tǒng)計結果可以看出,HNN算法在不同路面條件下對不同狀態(tài)量估計的均方誤差最小,且在路面條件變化時,均方誤差的變化不明顯。在道路摩擦因數(shù)降低時,縱向速度估計誤差的變化小于0.9%,側向速度估計誤差變化小于17.8%,橫擺角速度估計誤差變化小于4.9%,遠低于EKF算法的估計誤差變化。
表10 不同路面下各算法估計均方誤差RMSE
3.3.1 實車數(shù)據(jù)采集
數(shù)據(jù)采集應用了OxTSRT2500組合導航設備與VECTOR VN1630A CAN采集設備。輸入HNN網(wǎng)絡的傳感器信號來自本車的底盤與動力CAN總線,RT2500獲取的本車狀態(tài)信息作為真值信號。數(shù)據(jù)采集方案如圖17所示。試驗在干瀝青路面(路面摩擦因數(shù)為0.85)下進行。
3.3.2 DLC工況對比
圖18為83 km/h車速DLC工況下,EKF算法與HNN算法估計結果的對比。
在縱向速度估計的對比中引入了本車ESP估計的縱向車速。可以看出,在本車橫擺角速度出現(xiàn)大幅變化時,實際的縱向車速存在一定的波動。EKF算法估計的結果波動幅度較大,而HNN算法的估計結果很好地貼合了實際車速的變化,而本車ESP的估計結果無法反映出這種波動。
在側向速度的估計中,EKF算法的估計值偏小,而在橫擺角速度的估計中偏大,且存在滯后的現(xiàn)象。HNN算法在側向速度估計中,精度有所提升,但仍小于真值,而在估計橫擺角速度時可以很好地貼合真值的變化。
本文中提出了一種基于混合神經(jīng)網(wǎng)絡架構的車輛運動狀態(tài)估計算法。不同于已有研究直接利用某一神經(jīng)網(wǎng)絡構建算法的方式,本文通過比較不同神經(jīng)網(wǎng)絡的特點,以及車輛本身的動力學特性,設計了適合于車輛運動狀態(tài)估計任務的HNN神經(jīng)網(wǎng)絡架構。
(1)本算法與基于DNN、GRU的神經(jīng)網(wǎng)絡算法測試對比的結果表明,本方法的特殊設計使得其優(yōu)于直接利用傳統(tǒng)深度學習網(wǎng)絡估計的算法。相比于傳統(tǒng)的EKF估計方法,HNN估計方法估計精度大幅提高。
(2)HNN估計方法對于道路摩擦因數(shù)的變化不敏感,具有一定的魯棒性。相比基于模型的估計方法可應用于多種路面條件下,擴大了狀態(tài)估計算法的有效使用范圍。
(3)實車測試的結果表明,在駕駛模擬器模擬工況組成的數(shù)據(jù)集上訓練得到的HNN模型通過實車數(shù)據(jù)的訓練可很好地適應實車環(huán)境,得到優(yōu)于EKF算法的估計性能。