新聞中心News
卡爾曼濾波在動態(tài)地磅稱量中的應(yīng)用
為了適應(yīng)動態(tài)地磅稱重精度的要求,本文通過分析干擾因素,提取出真實的軸重信號,將汽車質(zhì)量信號分成兩部分進 行分析建模,應(yīng)用卡爾曼濾波作為信息處理器,得到較準確的真實信號。在實際測試中通過加載砝碼,得到了較準確的實驗數(shù)據(jù),與 其AD值的平均值進行對比。結(jié)果表明:該方法提高了動態(tài)稱重的精度,實現(xiàn)了動態(tài)精度在國標范圍中。
0.引言
為適應(yīng)現(xiàn)代自動化管理,動態(tài)汽車衡已經(jīng)廣泛應(yīng)用于高速 公路超限檢測系統(tǒng)和計重收費系統(tǒng),高精度、高速度是汽車動 態(tài)稱重系統(tǒng)的迫切需求,由于路面不平和車輛振動等因素使得 采集到的重量信號中摻雜了復(fù)雜的干擾信號,在外界隨機干 擾因素作用下如何準確測量真實軸重信號,就成了汽車動態(tài) 稱重系統(tǒng)的技術(shù)難點和關(guān)鍵。
汽車駛?cè)氤优_時,由于汽車自身因素以及路面的不平整度 的影響,使得汽車信號受到各種干擾因素。依據(jù)汽車動力學(xué),可以得到其數(shù)學(xué)模型為一個單自由度二階線性系統(tǒng)。本文通 過分析干擾因素,提取出真實的軸重信號,結(jié)合卡爾曼濾波將 信號加以處理,得到較準確的真實信號。
1.測試系統(tǒng)及原理
結(jié)合地磅模型和汽車駛?cè)氤优_的測量數(shù)據(jù)后,我們得出 理想狀態(tài)下汽車在秤臺上產(chǎn)生的波形是一個梯形波。如圖1 所示,汽車均速駛?cè)氤优_時為一直線,到達梯形波底則是汽車 在上秤臺的過程,中間的平穩(wěn)直線是汽車完全作用與汽車所產(chǎn) 生的波形,同理另一個腰是汽車在下秤臺的過程。
我們所討論的汽車質(zhì)量信號是一個多干擾因素的復(fù)雜信 號,將汽車的動態(tài)車道線作為跟蹤目標,車道線具有連續(xù)性,動 態(tài)地磅的傳感器輸出的信號主要由汽車質(zhì)量真實信號 和噪聲信號組成。將汽車質(zhì)量信號進行分析:可以看作有兩部 分組成,即一部分由已知的運動方程正確地預(yù)測出來,即為線 性隨機微分系統(tǒng),另外一部分可以看作是均值為零的隨機分 量,即為高斯白噪聲。對于滿足上面的條件(線性隨機微分系 統(tǒng),過程和測量都是高斯白噪聲),卡爾曼濾波器是最優(yōu)的信息處理器。
2.基于卡爾曼濾波的動態(tài)地磅建模
結(jié)合地磅模型和汽車駛?cè)氤优_的測量數(shù)據(jù)后,我們得出 理想狀態(tài)下汽車在秤臺上產(chǎn)生的波形是一個梯形波。均速駛 入秤臺時為一直線,到達梯形波底則是汽車在上秤臺的過程, 中間的平穩(wěn)直線是汽車完全作用與汽車所產(chǎn)生的波形,同理另 一個腰是汽車在下秤臺的過程。下一章將具體分析此過程的 實際波形。
2.1卡爾曼濾波簡介
卡爾曼濾波是以最小均方誤差為估計的最佳準則,來尋求 一套遞推估計的算法,其基本思想是:采用信號與噪聲的狀態(tài) 空間模型,利用前一時刻的估計值和現(xiàn)時刻的觀測值來更新對 狀態(tài)變量的估計,求出現(xiàn)時刻的估計值。
卡爾曼濾波即為最優(yōu)線性濾波.應(yīng)用這種濾波方法的優(yōu)點 是,每加進一個新的量測值,只需要利用已經(jīng)算出的前一狀態(tài) 的濾波值和濾波誤差的方差陣,便可算出新的狀態(tài)的濾波值和 新的濾波誤差方差陣.這樣,不論量測次數(shù)如何增加,既不需 要解高階的逆矩陣,又不需要存儲大批過時的量測數(shù)損,從而 滿足了應(yīng)用濾波時的實時需要,也大大減少計算機的存儲量。
2.1卡爾曼濾波算法流程
首先,我們先要引入一個離散控制過程的系統(tǒng)。該系統(tǒng)可 用一個線性隨機微分方程來描述:
oxk_i+suk+wk ⑴
再加上系統(tǒng)的測量值:Zk=H^k+ Vk ⑵
上兩式子中,Xk是k時刻的系統(tǒng)狀態(tài),Uk是k時刻對系統(tǒng) 的控制量。O和S是系統(tǒng)參數(shù),對于多模型 系統(tǒng),他們?yōu)榫仃嚒?/span>Zk是k時刻的測量值,
H是測量系統(tǒng)的參數(shù),對于多測量系統(tǒng),風(fēng) 為矩陣。W和Vk分別表示過程和測量的 噪聲。他們被假設(shè)成高斯白噪聲,他們的 covariance分別是Q, R (所討論模型中假 設(shè)他們不隨系統(tǒng)狀態(tài)變化而變化)。
首先我們要利用系統(tǒng)的過程模型,來預(yù) 測下一狀態(tài)的系統(tǒng)。假設(shè)現(xiàn)在的系統(tǒng)狀態(tài) 是k根據(jù)系統(tǒng)的模型,可以基于系統(tǒng)的上 一狀態(tài)而預(yù)測出現(xiàn)在狀態(tài):
Xk|k_i=OXk_i|k_i+^Uk ⑶
式(1)中,1$—1是利用上一狀態(tài)預(yù)測的 結(jié)果,Xk?k?是上一狀態(tài)最優(yōu)的結(jié)果,U為 現(xiàn)在狀態(tài)的控制量,由于如果沒有控制量,
它可以為0,所討論模型沒有控制量,所以設(shè)為0。
對應(yīng)于Xkk?的covariance進行更新。我們用P表示co- variance:
Pkik?= ^Pk?jk?^^+Q ⑷ 式⑵中,Pkik? 是 X.i 對應(yīng)的 covariance, Pk?|k? 是 Xk?ijk?i 對應(yīng)的 covariance, Q 是系統(tǒng)過程的 covariance。
我們有了現(xiàn)在狀態(tài)的預(yù)測結(jié)果,然后我們再收集現(xiàn)在狀態(tài) 的測量值。結(jié)合預(yù)測值和測量值,我們可以得到現(xiàn)在狀態(tài)的最 優(yōu)化估算值石:
Xk= Wg(ZHkV?) ⑶
其中Kg為卡爾曼增益:
Kg= P.iHT / (HAik?T + R) (6)
到現(xiàn)在為止,我們已經(jīng)得到了 k狀態(tài)下最優(yōu)的估算值 X(k|k)。但是為了要另卡爾曼濾波器不斷的運行下去直到系統(tǒng) 過程結(jié)束,我們還要更新k狀態(tài)下Xk的covariance:
Pk=(I-KgHK)Pk|k? (7)
其中I為1的矩陣,對于單模型單測量,/=1。當系統(tǒng)進入 k+1狀態(tài)時,Pk就是式子(2)的Pk?|k?。這樣,算法就可以自回 歸的運算下去。
算法的程序流程圖如圖3所示。
卡爾曼濾波的基本思路是先預(yù)測、后校正,可分為兩部分: 時間更新和量測更新。時間更新方程也可視為預(yù)測方程,測量 更新方程可視為校正方程。最后的估計算法成為一種具有數(shù) 值解的預(yù)估-校正算法,時間更新方程將當前狀態(tài)變量作為先驗估計及時地向前 投射到測量更新方程,測量更新方程校正先驗估計以獲得狀態(tài) 的后驗估計。
3.試驗步驟
由于車在勻速過秤時時一條直線,而我們實際所測的數(shù)據(jù)為曲線,最后進行卡爾曼濾波,使數(shù)據(jù)進行最優(yōu)化訓(xùn)練。具體 處理步驟如下所示:
1)對動態(tài)地磅進行建模:
把動態(tài)地磅看成一個系統(tǒng),然后對這個系統(tǒng)建模。所 試驗的相同的汽車,所以下一次與上一次的值是相同的,所以 爐=1。沒有控制量,所以G=0。因此得出:
Xkk-i =Xk-ik-i ⑶
式子(4)可以改成:
pkk?「Pk?k? +Q (9)
因為測量的值是同一臺汽車衡的傳感器重量信號,所以 H=1。式子5,6,7可以改成以下:
Xk= Xkk-i+Kg(Zk?kk-1) (10)
Kg= Pkk-i , (Pkk-i + (11) Pk=(1-Kg)Pkk? (12)
2)確定初始值
卡爾曼兩個零時刻的初始值,X(0|0)和戶(0丨0)。
因為隨著卡爾曼的工作,X:會逐漸的收斂。但是對于P, 一般不要取0,因為這樣可能會令卡爾曼完全相信你給定 的X(0|0)是系統(tǒng)最優(yōu)的,從而使算法不能收斂。所以選了 X(0|0)=14600, P(0|0)=14600;
3)試驗測試
實驗用兩軸載重貨車(加載砝碼),在額定軸載荷為30 t 的動態(tài)地磅上進行測試。在靜態(tài)情況下稱得汽車前軸重量 是5193 kg(所測的叫前排傳感器值),后軸重量是14175 kg(所 測的叫后排傳感器值);
4)采集AD數(shù)據(jù),選取有效數(shù)據(jù)
本課題選取有效段數(shù)據(jù)進行研究,即選取前軸與后軸最 大值之間的數(shù)據(jù)進行處理。有效數(shù)據(jù)選取:選取曲線上平穩(wěn)的 數(shù)據(jù)段,去掉上下秤的數(shù)據(jù),取較平穩(wěn)數(shù)據(jù)段的所有數(shù)據(jù)和;
5)將提取的有效段數(shù)據(jù)進行卡爾曼濾波,得到其采集值的 最優(yōu)估計,依次進行估計;
6)將AD采集數(shù)據(jù)的平均值與卡爾曼濾波后的最優(yōu)估計 值平均值進行比較,得出結(jié)論……
4.試驗結(jié)果分析
圖4所示即為載重貨車一個軸的波形數(shù)據(jù),直線為靜態(tài)下 稱得的汽車軸重,即:汽車每根車軸分別停在秤臺上,在靜止情 況下稱量的重量。
現(xiàn)場采集數(shù)據(jù)及算法處理結(jié)果
圖4所示即為載重貨車兩軸的波形數(shù)據(jù),紅色直線為靜態(tài) 下稱得的汽車軸重和,即:汽車每根車軸分別停在秤臺上,在靜 止情況下稱量的前軸與后軸之和。
直線1:是期望值,即汽車在靜止狀態(tài)下測量值;
直線2:有限段數(shù)據(jù)平均值,有效段數(shù)據(jù)即為前排后排波峰 之間的數(shù)據(jù);
采樣個數(shù)n 圖4卡爾曼濾波算法濾波后 Fig.4 Figure of kalman filter algorithm 曲線3:前后軸重量(總重量)=前排傳感器值+后排傳感 器值;
曲線4:是前軸重量,前排傳感器值;
曲線5:是后排傳感器值,即圖中后排數(shù)據(jù);
直線6:采樣卡爾曼濾波后的 如圖3-3是應(yīng)用卡爾曼濾波后均值 由以上仿真結(jié)果可以看出,對采樣數(shù)據(jù)進行處理然后進 行卡爾曼濾波后可以得到精度很高的重量信號,接近于真實 信號。選擇好有效數(shù)據(jù)段的起始點和結(jié)束點,然后根據(jù)濾波 器頻域特性可以很容易得到汽車軸重信號。
試驗測得部分數(shù)據(jù)及處理運算結(jié)果見表1,可以看出,用卡 爾曼濾波的方法比平均值法誤差小,能夠達到國標范圍以內(nèi)。
表1現(xiàn)場試驗數(shù)據(jù)結(jié)果 Tab.1 The field experiment data
序號 | 前軸速度 km/h | 前軸AD值 | 前軸誤差后軸速度 % km/h | 后軸 AD 值 | 后軸誤差整車誤差 %% | ||
9 | 5217 | 0.2427 | 9 | 14180 | 0.0493 | 0.3220 | |
2 | 3 | 5182 | -0.1127 | 3 | 14172 | -0.0324 | -0.1151 |
3 | 2 | 5226 | 0.3329 | 2 | 14146 | -0.2915 | 0.0714 |
4 | 4 | 5189 | -0.0452 | 3 | 14216 | -0.4932 | -0.5084 |
12 | 5161 | -0.2918 | 12 | 14243 | 0.6764 | 0.3846 | |
6 | 3 | 5190 | 0.0005 | 3 | 14215 | 0.4018 | 0.4013 |
7 | 3 | 5176 | -0.1418 | 3 | 14154 | -0.2122 | -0.3540 |
8 | 9 | 5213 | 0.2313 | 9 | 14192 | 0.1718 | 0.4031 |
9 | 4 | 5222 | 0.3209 | 4 | 14121 | -0.5433 | -0.2225 |
10 | 2 | 5196 | 0.0274 | 3 | 14170 | -0.0508 | 0.0067 |
11 | 6 | 5206 | 0.1345 | 6 | 14151 | -0.2444 | -0.0799 |
12 | 7 | 5159 | -0.3119 | 7 | 14217 | 0.4231 | 0.1112 |
13 | 2 | 5192 | 0.0204 | 3 | 14127 | -0.4784 | -0.4580 |
14 | 5164 | -0.2909 | 4 | 14230 | 0.5452 | 0.2844 | |
15 | 4 | 5168 | -0.2516 | 4 | 14175 | 0.0040 | -0.2176 |
從圖中看出卡爾曼濾波后的值明顯優(yōu)于AD采集值的平 均值,卡爾曼濾波后的最優(yōu)質(zhì)更接近試驗靜止狀態(tài)下的稱量 值,即真實值。
5.結(jié)束語
本文采用卡爾曼濾波進行動態(tài)數(shù)據(jù)處理。該方法權(quán)值因 子可動態(tài)調(diào)整,無需噪聲的先驗信息,實現(xiàn)非常容易,但仍能 獲得較高的測量精度,實時性很好,測試結(jié)果表明:此方法有 效地將測得的軸重量誤差控制在國標范圍以內(nèi),使計算結(jié)果最 大限度地逼近車軸的真實重量.能夠很好的滿足動態(tài)稱重的 精度要求。