文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)01-0032-04
0 引言
隨著自動化技術(shù)的快速發(fā)展,車載導(dǎo)航系統(tǒng)已成為智能汽車電子領(lǐng)域的重要組成部分。精確地檢測車體當(dāng)前行駛道路的坡度是車載導(dǎo)航系統(tǒng)所必備的功能之一。但是,現(xiàn)有的車載傾角檢測裝置普遍存在如下問題:(1)傳統(tǒng)兩軸加速度傳感器的模擬信號采樣獲取的車體加速度和傾斜角度信息存在著測量精度低、適用范圍較窄等缺陷和不足;(2)單一傳感器節(jié)點結(jié)果易受溫度、電壓、電磁等因素的影響,導(dǎo)致數(shù)據(jù)可靠性差。因此,目前的檢測裝置無法滿足高精度車載導(dǎo)航系統(tǒng)的實際需求。
為了克服上述現(xiàn)有技術(shù)的缺陷,本系統(tǒng)擬提出一種高精度車載道路坡度檢測儀的設(shè)計及實現(xiàn)方案。該檢測儀由主控節(jié)點和檢測節(jié)點組成,利用三軸數(shù)字加速度傳感器獲取車體傾斜角度,然后通過CAN總線將數(shù)據(jù)發(fā)送至主控節(jié)點;主控節(jié)點對分布在不同位置的多個傳感器節(jié)點的檢測數(shù)據(jù)進(jìn)行信息融合處理,獲得車體傾斜角度的最優(yōu)估計值,以實現(xiàn)對道路坡度的高精度檢測。
1 系統(tǒng)方案
1.1 道路坡度檢測儀整體設(shè)計
道路坡度檢測儀主要完成對小車車體傾斜角度的精確測量。檢測儀由主控節(jié)點和多個檢測節(jié)點組成,它在車體不同位置布設(shè)多個檢測節(jié)點,分別檢測各自的傾角信息;然后通過CAN總線將信息傳送給主控節(jié)點進(jìn)行集中處理,將各處及最終的估計值同時顯示到車載液晶屏上,并備份到數(shù)據(jù)庫中。每個檢測節(jié)點通過陀螺儀檢測車體動態(tài)傾斜角度,并配合三軸數(shù)字加速度傳感器檢測車體靜態(tài)傾斜角度。本文所述的高精度車載道路坡度檢測儀的整體設(shè)計框架如圖1所示。
圖1中,主控節(jié)點為基于ARM Linux的嵌入式系統(tǒng)架構(gòu),它分別獲取各檢測節(jié)點的傾角信息,通過所設(shè)計的多傳感器信息融合算法,得到傾斜角度最優(yōu)估計值,并實時顯示到車載液晶屏上;為保存行車過程中的坡度歷史信息,主控節(jié)點中還搭建了嵌入式本地數(shù)據(jù)庫。
1.2 多傳感器數(shù)據(jù)融合方法
本系統(tǒng)通過高精度的三軸數(shù)字加速度傳感器設(shè)計檢測節(jié)點,提高單一傳感節(jié)點的檢測精度;并在車體不同位置布設(shè)多個該檢測節(jié)點,通過融合處理算法獲取車體傾角的最優(yōu)估計值,以提高數(shù)據(jù)靠性及角度信息檢測精度。
由圖2可知,一個檢測周期分為數(shù)據(jù)獲取和數(shù)據(jù)處理兩個階段完成。在數(shù)據(jù)獲取階段,主控節(jié)點通過遠(yuǎn)程幀輪詢各檢測節(jié)點的數(shù)據(jù)。在數(shù)據(jù)處理階段,主控節(jié)點將檢測子節(jié)點的傾角信息依次按照如下步驟進(jìn)行數(shù)據(jù)融合,得到車體行駛道路坡度的最優(yōu)估計值:
(1)采用疏失誤差剔除法[1](Negligence Error Elimination)剔除無效的傳感器數(shù)據(jù),消除角度測量中的隨機(jī)干擾。設(shè)CAN總線網(wǎng)絡(luò)中共有n個檢測節(jié)點,表示主控節(jié)點在第k個檢測周期收集到的檢測節(jié)點i的角度測量值,則第k個周期內(nèi)所有檢測節(jié)點角度測量值組成的集合為,對集合A進(jìn)行從小到大的排序得到集合B={x1(k),x2(k),x3(k),…,xn(k)}。那么疏失誤差剔除后的集合C由式(1)~式(5)計算得到。
其中xM為集合B的中位數(shù),DS為四分位離散度,xU和xD分別為其上四分位數(shù)和下四分位數(shù),MED{·}為求集合中位數(shù)的運算。滿足集合C的測量值為有效的,否則為誤差值,應(yīng)予以剔除。
(2)通過最小二乘法[2](Least Square Method)擬合剔除后的所有測量值,作為卡爾曼濾波器的觀測值輸入。在剔除無效的傳感器數(shù)據(jù)后,通過最小二乘法對集合C中的數(shù)據(jù)進(jìn)行擬合,得到時刻k的觀測值,如式(6)所示,其中LSM{·}為通過最小二乘法擬合集合數(shù)據(jù)的運算。
Y(k)=LSM{C}(6)
(3)結(jié)合上一檢測周期的最優(yōu)估計結(jié)果,利用卡爾曼濾波器完成本周期內(nèi)的道路坡度最優(yōu)估計值預(yù)測??柭鼮V波針對式(7)和(8)所示的離散線性系統(tǒng)。
Y(k)=H·X(k)+V(k)(8)
其中X(k)為k時刻的估計值;Y(k)為k時刻(第k個檢測周期)的觀測值,其值由步驟(2)計算得到;參數(shù)?椎為系統(tǒng)矩陣,H表征了k時刻估計值相對于k-1時刻的變化率;W(k)和V(k)分別為k時刻的過程噪聲和測量噪聲。對于式(9)和(10)所描述的離散線性系統(tǒng),可通過式(9)~(12)計算k時刻的卡爾曼濾波最優(yōu)估計值。
其中Q和R分別為W(k)和V(k)的協(xié)方差,Kg(k)為k時刻的卡爾曼濾波增益,X(k|k)表征時刻k的最優(yōu)結(jié)果,X(k|k-1)表征上一時刻的狀態(tài)預(yù)測值,P(k|k)和P(k|k-1)分別為X(k|k)和X(k|k-1)對應(yīng)的協(xié)方差。
2 系統(tǒng)硬件設(shè)計
本文所述的高精度道路坡度檢測儀硬件分主控節(jié)點和檢測節(jié)點兩部分。主控節(jié)點采用ARM Linux架構(gòu),實現(xiàn)對各檢測子節(jié)點傾角數(shù)據(jù)的采集與處理;檢測節(jié)點通過單片機(jī)低功耗模式,完成對各子區(qū)域車體動靜態(tài)傾斜角度的精確測量。
2.1 主控節(jié)點硬件設(shè)計
主控節(jié)點采用ARM Linux架構(gòu),ARM芯片采用S3C2440,選用Linux 2.6.30內(nèi)核版本進(jìn)行嵌入式系統(tǒng)開發(fā)。通過SPI接口控制CAN總線控制器,完成車載信息的采集,各子區(qū)域的傳感器信息及融合后的精確角度信息均通過車載觸摸液晶屏實時顯示,歷史信息存儲到本地數(shù)據(jù)庫中。主控節(jié)點的硬件設(shè)計如圖3所示。
2.2 檢測節(jié)點硬件設(shè)計
檢測節(jié)點通過三軸加速度傳感器完成對自身傾角信息的采集,并將該數(shù)據(jù)上發(fā)。本系統(tǒng)工況檢測節(jié)點硬件設(shè)計如圖4所示。
在工況信息檢測過程中,傾斜的位置通過節(jié)點的位置確定,為了提高檢測結(jié)果的精度,在檢測之前可對加速度傳感器進(jìn)行校準(zhǔn)。工況節(jié)點檢測傾角的原理如圖5所示。
在圖5(a)中,Ax、Ay、Az分別為傳感器在3個方向上檢測到的靜止加速度。當(dāng)車體發(fā)生了如圖5(b)所示的傾斜時,其各軸的加速度變化如圖5(c)所示,其中Axoy為傳感器在xoy平面上的加速度,其計算方法如式(13)所示:
此時該檢測節(jié)點計算到的車體xoy平面與地表水平面XOY傾斜的角度?琢如式(14)所示:
由此可知,通過此方法將獲取的一組加速度信息進(jìn)行計算處理,可得到檢測節(jié)點各子平面與地表水平面之間的傾角。由于ADXL345三軸加速度傳感器最高分辨率可達(dá)3.9 mg/LSB,因此單個傳感器能捕捉1.0°的傾斜角度變化。
3 系統(tǒng)軟件設(shè)計
本系統(tǒng)的軟件分主控節(jié)點和檢測節(jié)點兩部分進(jìn)行設(shè)計。主控節(jié)點的軟件主要完成對各CAN通信節(jié)點數(shù)據(jù)的收集、處理、保持及顯示等功能;檢測節(jié)點的軟件主要完成傳感器信息的采集和發(fā)送。
3.1 主控節(jié)點軟件設(shè)計
主控節(jié)點采用嵌入式Linux架構(gòu),其軟件設(shè)計在Linux操作系統(tǒng)上完成。本系統(tǒng)關(guān)于主控節(jié)點的軟件可分為模塊驅(qū)動、應(yīng)用層進(jìn)程和多進(jìn)程控制等3個部分組成。模塊驅(qū)動實現(xiàn)與硬件的交互,為應(yīng)用層各進(jìn)程的調(diào)用提供接口;應(yīng)用層實現(xiàn)了主控節(jié)點的各主體功能,包括數(shù)據(jù)采集、數(shù)據(jù)處理與保存和數(shù)據(jù)顯示等;多進(jìn)程控制實現(xiàn)對各個子進(jìn)程的調(diào)度,實現(xiàn)最優(yōu)的進(jìn)程調(diào)度。本系統(tǒng)的主控節(jié)點軟件架構(gòu)如圖6所示。
主控節(jié)點的模塊驅(qū)動程序基于Linux操作系統(tǒng)開發(fā),需要開發(fā)和加載LCD液晶驅(qū)動程序和CAN控制器MCP2510驅(qū)動程序。現(xiàn)場總線網(wǎng)絡(luò)的輪詢數(shù)據(jù)采集由主控節(jié)點控制,軟件上采用一主多從模式。CAN通信中將A0~A7組合表示的地址作為檢測節(jié)點的ID。特別地,主控節(jié)點的數(shù)據(jù)優(yōu)先級最高,因此其ID號固定為0x000,詳細(xì)如表1所示。
數(shù)據(jù)的輪詢收集結(jié)束后,即可對采集的數(shù)據(jù)進(jìn)行相應(yīng)的融合處理。本文1.2節(jié)已詳細(xì)講述數(shù)據(jù)融合算法及其仿真效果,本節(jié)介紹其具體實現(xiàn)流程,如圖7所示。其主要完成對工況節(jié)點數(shù)據(jù)的處理、變量初始化和確定相關(guān)算法變量的初值。針對節(jié)點數(shù)據(jù),分別依次進(jìn)行疏失誤差處理、最小二乘法擬合觀測值和卡爾曼濾波估計最優(yōu)值,得到X(k)即為該線程輸出的融合最優(yōu)估計結(jié)果。由式(12)可知,為保證下一輪數(shù)據(jù)的順利融合,輸出X(k)后仍需將該值保存,作為下一輪數(shù)據(jù)融合的輸入。
3.2 檢測節(jié)點軟件設(shè)計
檢測節(jié)點的主要功能是實現(xiàn)對車體行駛坡度信息的采集,并將采集的信息發(fā)送給主控節(jié)點。檢測節(jié)點的CAN收發(fā)控制流程如圖8所示。程序中首先初始化系統(tǒng),然后進(jìn)入低功耗模式;當(dāng)收到命令時,節(jié)點立即讀取傳感器數(shù)據(jù)并上傳。
4 評測
4.1 仿真結(jié)果分析
在MATLAB中仿真本系統(tǒng)的多傳感器數(shù)據(jù)融合方法,并將其與單傳感器數(shù)據(jù)描述進(jìn)行比較,其前200個檢測周期對比結(jié)果如圖9所示。單傳感器在第100個檢測周期的數(shù)據(jù)明顯發(fā)生了錯誤,本文的多傳感器數(shù)據(jù)融合方法采用疏失誤差剔除這種采集過程中的單節(jié)點的隨機(jī)干擾,保證檢測結(jié)果的精度。需要說明的是,前20個檢測周期的融合值與實測值存在較大偏差,這是由初值X(0)=10、P(0)=0引起的,這種偏差不會對融合效果產(chǎn)生影響,因為隨著算法的繼續(xù)迭代,融合結(jié)果會趨于穩(wěn)定。
4.2 實際效果分析
對于系統(tǒng)實際效果的評測,在車體的3個不同位置分別配置檢測節(jié)點,保證這3個節(jié)點構(gòu)成的平面ω與地表水平面平行。將小車放置在11°左右的斜坡上,截取系統(tǒng)檢測過程中的60組數(shù)據(jù),得到單傳感器檢測和多傳感器數(shù)據(jù)融合估計的實際效果對比,如圖10所示。由圖可知,由于單個節(jié)點檢測過程中數(shù)據(jù)存在一定的隨機(jī)干擾和測量誤差,因此單個節(jié)點檢測的數(shù)據(jù)波動較大;本文的多傳感器數(shù)據(jù)融合算法可通過疏失誤差剔除法剔除隨機(jī)干擾,并通過卡爾曼濾波的迭代消除測量誤差,因此數(shù)據(jù)融合后的曲線相對平穩(wěn),其測量值也更接近真值。
5 結(jié)論
針對當(dāng)前車載坡度檢測技術(shù)缺陷,本文提出了一種高精度車載道路坡度檢測儀的設(shè)計方案,并通過MSP430單片機(jī)、三軸數(shù)字加速度傳感器、ARM微控制器和CAN總線等實現(xiàn)其軟硬件功能。該儀器采用三軸數(shù)字加速度傳感器計算傾角,并對多個傳感器數(shù)據(jù)進(jìn)行融合處理,提高了車載道路邊坡檢測的精度,其可廣泛應(yīng)用于車載導(dǎo)航系統(tǒng)與智能汽車電子領(lǐng)域。
參考文獻(xiàn)
[1] 段戰(zhàn)勝,韓崇昭,陶唐飛.基于最近統(tǒng)計距離的多傳感器一致性數(shù)據(jù)融合[J].儀器儀表學(xué)報,2005,26(5):478-481.
[2] 張曉平,劉桂雄,周松斌.利用最小二乘支持向量機(jī)實現(xiàn)無線傳感器網(wǎng)絡(luò)的目標(biāo)定位[J].光學(xué)精密工程,2010,18(9):2060-2068.