卡爾曼濾波在動態地磅稱量中的應用
為了適應動態地磅稱重精度的要求,本文通過分析干擾因素,提取出真實的軸重信號,將汽車質量信號分成兩部分進 行分析建模,應用卡爾曼濾波作為信息處理器,得到較準確的真實信號。在實際測試中通過加載砝碼,得到了較準確的實驗數據,與 其AD值的平均值進行對比。結果表明:該方法提高了動態稱重的精度,實現了動態精度在國標范圍中。
0.引言
為適應現代自動化管理,動態汽車衡已經廣泛應用于高速 公路超限檢測系統和計重收費系統,高精度、高速度是汽車動 態稱重系統的迫切需求,由于路面不平和車輛振動等因素使得 采集到的重量信號中摻雜了復雜的干擾信號,在外界隨機干 擾因素作用下如何準確測量真實軸重信號,就成了汽車動態 稱重系統的技術難點和關鍵。
汽車駛入秤臺時,由于汽車自身因素以及路面的不平整度 的影響,使得汽車信號受到各種干擾因素。依據汽車動力學,可以得到其數學模型為一個單自由度二階線性系統。本文通 過分析干擾因素,提取出真實的軸重信號,結合卡爾曼濾波將 信號加以處理,得到較準確的真實信號。
1.測試系統及原理
結合地磅模型和汽車駛入秤臺的測量數據后,我們得出 理想狀態下汽車在秤臺上產生的波形是一個梯形波。如圖1 所示,汽車均速駛入秤臺時為一直線,到達梯形波底則是汽車 在上秤臺的過程,中間的平穩直線是汽車完全作用與汽車所產 生的波形,同理另一個腰是汽車在下秤臺的過程。
我們所討論的汽車質量信號是一個多干擾因素的復雜信 號,將汽車的動態車道線作為跟蹤目標,車道線具有連續性,動 態地磅的傳感器輸出的信號主要由汽車質量真實信號 和噪聲信號組成。將汽車質量信號進行分析:可以看作有兩部 分組成,即一部分由已知的運動方程正確地預測出來,即為線 性隨機微分系統,另外一部分可以看作是均值為零的隨機分 量,即為高斯白噪聲。對于滿足上面的條件(線性隨機微分系 統,過程和測量都是高斯白噪聲),卡爾曼濾波器是最優的信息處理器。
2.基于卡爾曼濾波的動態地磅建模
結合地磅模型和汽車駛入秤臺的測量數據后,我們得出 理想狀態下汽車在秤臺上產生的波形是一個梯形波。均速駛 入秤臺時為一直線,到達梯形波底則是汽車在上秤臺的過程, 中間的平穩直線是汽車完全作用與汽車所產生的波形,同理另 一個腰是汽車在下秤臺的過程。下一章將具體分析此過程的 實際波形。
2.1卡爾曼濾波簡介
卡爾曼濾波是以最小均方誤差為估計的最佳準則,來尋求 一套遞推估計的算法,其基本思想是:采用信號與噪聲的狀態 空間模型,利用前一時刻的估計值和現時刻的觀測值來更新對 狀態變量的估計,求出現時刻的估計值。
卡爾曼濾波即為最優線性濾波.應用這種濾波方法的優點 是,每加進一個新的量測值,只需要利用已經算出的前一狀態 的濾波值和濾波誤差的方差陣,便可算出新的狀態的濾波值和 新的濾波誤差方差陣.這樣,不論量測次數如何增加,既不需 要解高階的逆矩陣,又不需要存儲大批過時的量測數損,從而 滿足了應用濾波時的實時需要,也大大減少計算機的存儲量。
2.1卡爾曼濾波算法流程
首先,我們先要引入一個離散控制過程的系統。該系統可 用一個線性隨機微分方程來描述:
oxk_i+suk+wk ⑴
再加上系統的測量值:Zk=H^k+ Vk ⑵
上兩式子中,Xk是k時刻的系統狀態,Uk是k時刻對系統 的控制量。O和S是系統參數,對于多模型 系統,他們為矩陣。Zk是k時刻的測量值,
H是測量系統的參數,對于多測量系統,風 為矩陣。W和Vk分別表示過程和測量的 噪聲。他們被假設成高斯白噪聲,他們的 covariance分別是Q, R (所討論模型中假 設他們不隨系統狀態變化而變化)。
首先我們要利用系統的過程模型,來預 測下一狀態的系統。假設現在的系統狀態 是k根據系統的模型,可以基于系統的上 一狀態而預測出現在狀態:
Xk|k_i=OXk_i|k_i+^Uk ⑶
式(1)中,1$—1是利用上一狀態預測的 結果,Xk?k?是上一狀態最優的結果,U為 現在狀態的控制量,由于如果沒有控制量,
它可以為0,所討論模型沒有控制量,所以設為0。
對應于Xkk?的covariance進行更新。我們用P表示co- variance:
Pkik?= ^Pk?jk?^^+Q ⑷ 式⑵中,Pkik? 是 X.i 對應的 covariance, Pk?|k? 是 Xk?ijk?i 對應的 covariance, Q 是系統過程的 covariance。
我們有了現在狀態的預測結果,然后我們再收集現在狀態 的測量值。結合預測值和測量值,我們可以得到現在狀態的最 優化估算值石:
Xk= Wg(ZHkV?) ⑶
其中Kg為卡爾曼增益:
Kg= P.iHT / (HAik?T + R) (6)
到現在為止,我們已經得到了 k狀態下最優的估算值 X(k|k)。但是為了要另卡爾曼濾波器不斷的運行下去直到系統 過程結束,我們還要更新k狀態下Xk的covariance:
Pk=(I-KgHK)Pk|k? (7)
其中I為1的矩陣,對于單模型單測量,/=1。當系統進入 k+1狀態時,Pk就是式子(2)的Pk?|k?。這樣,算法就可以自回 歸的運算下去。
算法的程序流程圖如圖3所示。
卡爾曼濾波的基本思路是先預測、后校正,可分為兩部分: 時間更新和量測更新。時間更新方程也可視為預測方程,測量 更新方程可視為校正方程。最后的估計算法成為一種具有數 值解的預估-校正算法,時間更新方程將當前狀態變量作為先驗估計及時地向前 投射到測量更新方程,測量更新方程校正先驗估計以獲得狀態 的后驗估計。
3.試驗步驟
由于車在勻速過秤時時一條直線,而我們實際所測的數據為曲線,最后進行卡爾曼濾波,使數據進行最優化訓練。具體 處理步驟如下所示:
1)對動態地磅進行建模:
把動態地磅看成一個系統,然后對這個系統建模。所 試驗的相同的汽車,所以下一次與上一次的值是相同的,所以 爐=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)是系統最優的,從而使算法不能收斂。所以選了 X(0|0)=14600, P(0|0)=14600;
3)試驗測試
實驗用兩軸載重貨車(加載砝碼),在額定軸載荷為30 t 的動態地磅上進行測試。在靜態情況下稱得汽車前軸重量 是5193 kg(所測的叫前排傳感器值),后軸重量是14175 kg(所 測的叫后排傳感器值);
4)采集AD數據,選取有效數據
本課題選取有效段數據進行研究,即選取前軸與后軸最 大值之間的數據進行處理。有效數據選取:選取曲線上平穩的 數據段,去掉上下秤的數據,取較平穩數據段的所有數據和;
5)將提取的有效段數據進行卡爾曼濾波,得到其采集值的 最優估計,依次進行估計;
6)將AD采集數據的平均值與卡爾曼濾波后的最優估計 值平均值進行比較,得出結論……
4.試驗結果分析
圖4所示即為載重貨車一個軸的波形數據,直線為靜態下 稱得的汽車軸重,即:汽車每根車軸分別停在秤臺上,在靜止情 況下稱量的重量。
現場采集數據及算法處理結果
圖4所示即為載重貨車兩軸的波形數據,紅色直線為靜態 下稱得的汽車軸重和,即:汽車每根車軸分別停在秤臺上,在靜 止情況下稱量的前軸與后軸之和。
直線1:是期望值,即汽車在靜止狀態下測量值;
直線2:有限段數據平均值,有效段數據即為前排后排波峰 之間的數據;
采樣個數n 圖4卡爾曼濾波算法濾波后 Fig.4 Figure of kalman filter algorithm 曲線3:前后軸重量(總重量)=前排傳感器值+后排傳感 器值;
曲線4:是前軸重量,前排傳感器值;
曲線5:是后排傳感器值,即圖中后排數據;
直線6:采樣卡爾曼濾波后的 如圖3-3是應用卡爾曼濾波后均值 由以上仿真結果可以看出,對采樣數據進行處理然后進 行卡爾曼濾波后可以得到精度很高的重量信號,接近于真實 信號。選擇好有效數據段的起始點和結束點,然后根據濾波 器頻域特性可以很容易得到汽車軸重信號。
試驗測得部分數據及處理運算結果見表1,可以看出,用卡 爾曼濾波的方法比平均值法誤差小,能夠達到國標范圍以內。
表1現場試驗數據結果 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 |
從圖中看出卡爾曼濾波后的值明顯優于AD采集值的平 均值,卡爾曼濾波后的最優質更接近試驗靜止狀態下的稱量 值,即真實值。
5.結束語
本文采用卡爾曼濾波進行動態數據處理。該方法權值因 子可動態調整,無需噪聲的先驗信息,實現非常容易,但仍能 獲得較高的測量精度,實時性很好,測試結果表明:此方法有 效地將測得的軸重量誤差控制在國標范圍以內,使計算結果最 大限度地逼近車軸的真實重量.能夠很好的滿足動態稱重的 精度要求。