劉軍 聶斐 蔡駿宇 熊明路 陶昌嶺
(江蘇大學(xué))
基于安卓的汽車狀態(tài)測量及預(yù)測系統(tǒng)的研究
劉軍 聶斐 蔡駿宇 熊明路 陶昌嶺
(江蘇大學(xué))
設(shè)計了基于Android(安卓)的汽車運動狀態(tài)在線測量及預(yù)測系統(tǒng),闡述了預(yù)測系統(tǒng)的硬件組成和軟件設(shè)計方法。通過實車道路試驗,對側(cè)向加速度與橫滾角的試驗值與預(yù)測值進(jìn)行比較,并得出相對誤差率,驗證了該預(yù)測系統(tǒng)的可行性。與傳統(tǒng)車載終端相比,該預(yù)測系統(tǒng)不僅提高了安卓車載終端對汽車主動安全的融合性,而且有效降低了汽車狀態(tài)感知的成本并具有良好的可擴(kuò)展性和靈活性。
研究表明,若駕駛員能提早1 s意識到交通事故的發(fā)生,并提前0.5 s做出反應(yīng)且采取相應(yīng)措施,即可最大限度地減少道路交通事故。因此,開展基于車輛主動安全預(yù)測技術(shù)的研究,提前預(yù)測車輛未來時刻可能的行駛運行狀態(tài),并預(yù)先向駕駛?cè)藛T提供警示信息,對提高車輛的主動安全性、減少道路交通事故將起到十分重要的作用。
汽車運動狀態(tài)參數(shù)包括汽車的縱向、側(cè)向、垂向3個方向的加速度及橫擺、側(cè)傾、俯仰3個方向的角速度,但僅以這6個參數(shù)對汽車行駛運動狀態(tài)進(jìn)行分析是不夠的,需要進(jìn)一步研究汽車姿態(tài)角的解算。
汽車運動狀態(tài)以及姿態(tài)角實時預(yù)測原理如圖1所示。首先由MEMS傳感器組成的微慣性測量單元以捷聯(lián)方式直接測出車輛6自由度運動參數(shù),然后依據(jù)其中的角速度信號解算出車輛姿態(tài)角,再應(yīng)用Kal?man濾波器完成對加速度計信號、角速度陀螺信號及姿態(tài)角估計誤差的融合處理,消除系統(tǒng)耦合、陀螺儀零偏及漂移等因素的影響,從而獲取姿態(tài)角的最優(yōu)估計值;在此基礎(chǔ)上應(yīng)用自回歸模型對未來時刻可能的車輛姿態(tài)角進(jìn)行實時預(yù)測。
2.1 車輛姿態(tài)角的解算
因四元數(shù)法能保持方程是線性的且不產(chǎn)生奇異[1,2],任何三維空間的向量都可以用實部為0的四元數(shù)表示,所以采用四元數(shù)法作為車輛姿態(tài)角的解算方法。
車輛四元數(shù)姿態(tài)矩陣可表示為:
式中,q0、q1、q2、q3為實時車輛姿態(tài)四元數(shù),滿足
q0、q1、q2、q3與橫擺角速度ωx、側(cè)傾角速度ωy、俯仰角速度ωz之間的關(guān)系滿足:
當(dāng)車輛姿態(tài)角速度已知時,由式(2)可解得q0、q1、q2、q3的值,將其帶入式(1)可得到車輛轉(zhuǎn)動四元數(shù)姿態(tài)矩陣。
由姿態(tài)角與四元數(shù)姿態(tài)矩陣的全角度轉(zhuǎn)換關(guān)系可知,車輛姿態(tài)角的計算公式為:
式中,ψ為橫擺角;θ為側(cè)傾角;γ為俯仰角;Amn是四元數(shù)姿態(tài)矩陣的第m行第n列。
2.2 Kalman濾波器的設(shè)計
由于系統(tǒng)耦合和陀螺儀零偏等因素的影響,使得試驗中所測得角速度存在誤差,故由此角速度積分解算后所得汽車姿態(tài)角也存在誤差,且誤差隨時間累積,因此有必要結(jié)合汽車的其它運動參數(shù)對姿態(tài)角進(jìn)行補(bǔ)償和修正,以提高汽車運動姿態(tài)的測量精度。本文結(jié)合加速度計的測量信號,采用Kalman濾波器對汽車姿態(tài)角進(jìn)行實時最優(yōu)估計,同時對陀螺儀信號進(jìn)行實時修正。
首先建立系統(tǒng)狀態(tài)方程,令狀態(tài)向量和觀測向量分別為:
式中,δq1、δq2、δq3為四元數(shù)矢量部分的估計誤差(標(biāo)量部分δq0近似為1);ΔBfx、ΔBfy、ΔBfz為陀螺儀的零偏估計誤差;δax、δay、δaz為三軸加速度的估計誤差。
考慮到汽車姿態(tài)角的運動可分解為連續(xù)2次的運動,即汽車相對于車體平臺坐標(biāo)系(當(dāng)?shù)厮阶鴺?biāo)系)轉(zhuǎn)動一個估計角,再轉(zhuǎn)動一個估計誤差角,則結(jié)合四元數(shù)運動微分方程及四元數(shù)的乘法性質(zhì)可推出系統(tǒng)狀態(tài)方程為:
而姿態(tài)矩陣的逆矩陣可看成由姿態(tài)估計陣和姿態(tài)誤差陣相乘得到,再對誤差矩陣做線性估計,則可推出系統(tǒng)觀測方程為:
式中,V(t)為加速度計估計誤差的噪聲,也是獨立的具有零均值的高斯白噪聲。
將狀態(tài)方程和觀測方程離散化,進(jìn)而可得到系統(tǒng)卡爾曼濾波方程,其中包括時刻k的系統(tǒng)狀態(tài)一步預(yù)測方程、一步預(yù)測均方誤差方程、濾波增益矩陣、狀態(tài)估計矩陣和均方差估計矩陣,最終可得到時間更新方程和觀測更新方程分別為:
2.3 姿態(tài)角預(yù)測
采用AR建模預(yù)測方法[3~5]對姿態(tài)角進(jìn)行預(yù)測。以橫擺角序列為例,建立其自回歸模型:
式中,εt為服從均值為0、方差為σ2ε的互相獨立的白噪聲序列;φ1,φ2,···φp為自回歸系數(shù),是模型的待估參數(shù);p為模型的階數(shù)。
在建模前首先要確定模型的階數(shù),模型定階方法通常采用艾克準(zhǔn)則(Akaike Information Criterion,AIC),也稱最小信息準(zhǔn)則。
AIC統(tǒng)計量的計算方法為:
式中,n為給定數(shù)據(jù)長度;為的估計值。
在實際應(yīng)用中,通常假設(shè)模型最大階數(shù)為m,逐個計算p從1到最大階數(shù)m的AIC(1),AIC(2),…,AIC(m)值,使得AIC(p)值最小的p即可認(rèn)為是模型的最佳階數(shù)。
模型階數(shù)確定后需要對模型參數(shù)進(jìn)行估計,考慮到模型預(yù)測的實時運算能力,采用遞推最小二乘法進(jìn)行估計,計算式為:
模型參數(shù)和階數(shù)均確定后,自回歸模型即可確定,進(jìn)而可進(jìn)行橫擺角的預(yù)測。
設(shè)預(yù)測步長為l,則向前遞推l步的預(yù)測值的計算式為:
為評價姿態(tài)角AR建模預(yù)測的精度,采用平均相對誤差率對其進(jìn)行考核,設(shè)平均相對誤差率為υ,則
用同樣的方法可對側(cè)傾角和俯仰角進(jìn)行預(yù)測。
預(yù)測系統(tǒng)的總體設(shè)計方案如圖2所示。
在保證系統(tǒng)性能良好的情況下,構(gòu)建了功耗低、體積小且成本低的傳感器模塊、微處理器模塊及藍(lán)牙模塊。其中,傳感器單元包含集成三軸加速計、三軸陀螺儀的運動處理組件、磁力計和氣壓計等,主要用于采集車輛實時狀態(tài)數(shù)據(jù),并作為數(shù)據(jù)處理和姿態(tài)解算的原始數(shù)據(jù)源;微處理器用于實時姿態(tài)解算、數(shù)據(jù)融合濾波和模塊間通信;車載感知模塊通過串口接線與藍(lán)牙模塊連接后,與Android監(jiān)測客戶端的藍(lán)牙適配器配對,相當(dāng)于在車載感知模塊與Android監(jiān)測客戶端之間虛擬了一根串口線以實現(xiàn)串口通訊。
移動終端軟件主要分為下位機(jī)軟件和上位機(jī)軟件。下位機(jī)軟件中的傳感器以捷聯(lián)方式直接測出汽車6自由度運動參數(shù)[6],然后由四元素法解算出汽車姿態(tài)角,同時應(yīng)用Kalman濾波器完成對姿態(tài)角的最優(yōu)估計處理,在此基礎(chǔ)上對姿態(tài)角實時預(yù)測。上位機(jī)軟件是根據(jù)硬件模塊需要實現(xiàn)的功能數(shù)據(jù)分別進(jìn)行數(shù)據(jù)采集與狀態(tài)預(yù)測程序的設(shè)計、藍(lán)牙通訊程序的設(shè)計及其它附加功能的程序設(shè)計。數(shù)據(jù)采集和處理流程如圖3所示。
客戶端的設(shè)計基于Android2.1操作系統(tǒng)實現(xiàn),根據(jù)所需要完成的任務(wù)、運行實時性以及程序數(shù)據(jù)流,可以將整個客戶端劃分為藍(lán)牙通信模塊、數(shù)據(jù)采集與狀態(tài)預(yù)測模塊、數(shù)據(jù)存儲模塊和菜單功能模塊等[7],客戶端運行主界面如圖4所示。
4.1 藍(lán)牙通信程序的設(shè)計
藍(lán)牙通信的基本思想是將HC-06-D藍(lán)牙串口模塊與單片機(jī)芯片相接,與安卓客戶端的藍(lán)牙適配器配對成功后實現(xiàn)通信,相當(dāng)于在單片機(jī)與安卓客戶端之間虛擬了一根串口線實現(xiàn)串口通訊進(jìn)行數(shù)據(jù)采集[9]。
設(shè)計的藍(lán)牙通信程序的流程為設(shè)置藍(lán)牙設(shè)備并建立服務(wù)器端、藍(lán)牙搜索并配對、建立通信客戶端并連接設(shè)備與設(shè)備之間數(shù)據(jù)傳輸。其中藍(lán)牙搜索配對結(jié)果如圖5所示。
4.2 數(shù)據(jù)采集與狀態(tài)預(yù)測程序設(shè)計
數(shù)據(jù)采集與狀態(tài)預(yù)測界面用于實時顯示更新運動處理組件、磁力計、氣壓高度計及下位機(jī)解算的車輛姿態(tài)信息,再依據(jù)這些數(shù)據(jù)信息進(jìn)行AR建模,并對未來3 s內(nèi)車輛可能會出現(xiàn)的運動狀態(tài)進(jìn)行短期預(yù)測[8]。通過實測車載感知數(shù)據(jù)的顯示,用戶可以及時了解車輛運行時的三軸加速度、三軸角速度、三軸磁場、大氣壓力、大氣溫度、海拔高度及解算的航向角、橫滾角和俯仰角等。數(shù)據(jù)采集與狀態(tài)預(yù)測功能運行界面如圖6所示。
數(shù)據(jù)存儲模塊的功能是實時存儲采集的運行參數(shù),在圖6中的運行界面中點擊保存即可進(jìn)行實時存儲。
菜單功能模塊實現(xiàn)軟件退出功能和幫助功能。在主界面(圖4)點擊手機(jī)菜單按鈕即出現(xiàn)菜單選項,點擊“設(shè)置”選項后直接進(jìn)入設(shè)置界面;點擊“關(guān)于”選項后進(jìn)入軟件說明界面;點擊“退出”選項則直接調(diào)用Android系統(tǒng)的finish()函數(shù)結(jié)束本界面,退出汽車實時監(jiān)測系統(tǒng)。
為驗證該預(yù)測系統(tǒng)的運行效果,進(jìn)行了實車道路試驗。試驗時將傳感器數(shù)據(jù)采集模塊放置在駕駛員右側(cè)扶手箱底部(即質(zhì)心處),主要針對車輛的側(cè)向加速度、橫滾角進(jìn)行道路試驗。對于橫向加速度的實時感知與預(yù)測選擇蛇形試驗方法[9];對于橫滾角的實時感知與預(yù)測選擇固定轉(zhuǎn)向盤連續(xù)加速試驗的方法[10]。橫向加速度和橫滾角的試驗值與預(yù)測值分別見表1和表2。通過表1和表2的數(shù)據(jù),可計算出實車道路試驗中通過AR模型在線建模預(yù)測方法所得到的1~3 s預(yù)報的平均相對誤差率,見表3。
Research on Measurement&Prediction System for Vehicle Motion State Based on Android
Liu Jun,Nie Fei,Cai Junyu,Xiong Minglu,Tao Changling
(Jiangxu University)
Vehicle motion online measurement&prediction system based on Android is designed,and hardware composition and software design method of the prediction system is elaborated.Through vehicle road test,the test value and predicated value of lateral acceleration and roll angle are compared and the relative error rate is obtained,which proves feasibility of this prediction system.Compared with the conventional vehicle-mounted terminal,this prediction system not only improves the integration of Android vehicle terminal to vehicle active safety,but also effectively lowers the cost of vehicle state perception,moreover,this system also has good expandability and flexibility.
Vehicle state,Measurement,Prediction,Android
表1 側(cè)向加速度試驗值與預(yù)測值 m/s2
表2 橫滾角試驗值與預(yù)測值 (°)
汽車狀態(tài) 測量 預(yù)測 Android
U467.1
A
1000-3703(2015)02-0029-05