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