- 1
- 2
- 3
- 4
- 5
- 6
BP神經(jīng)網(wǎng)絡(luò)在靜態(tài)汽車衡軸自動(dòng)識(shí)別中的應(yīng)用
BP神經(jīng)網(wǎng)絡(luò)在靜態(tài)汽車衡軸自動(dòng)識(shí)別中的應(yīng)用
上海香川電子衡器有限公司
【摘 要】 本文主要探討BP神經(jīng)網(wǎng)絡(luò)在靜態(tài)汽車衡軸自動(dòng)識(shí)別中的應(yīng)用。其方法是利
用最小二乘法對(duì)車輛的重量數(shù)據(jù)進(jìn)行擬合,設(shè)計(jì)了一種合適的BP神經(jīng)網(wǎng)絡(luò)模型,用
Matlab編寫模型程序,利用車輛速度與車輛上稱重量建立模型。BP神經(jīng)網(wǎng)絡(luò)在靜態(tài)汽車
衡軸自動(dòng)識(shí)別的預(yù)測(cè)中取得了很好的效果。BP神經(jīng)網(wǎng)絡(luò)在靜態(tài)汽車衡軸自動(dòng)識(shí)別中有良
好的應(yīng)用前景。
引言:
靜態(tài)汽車衡軸自動(dòng)識(shí)別是指汽車在稱重的過程中不借助外加的軸識(shí)別器,只通過對(duì)汽車
本身的上秤的重量信息進(jìn)行研究,得出汽車的準(zhǔn)確軸數(shù),其一直以來被作為靜態(tài)汽車衡
稱重領(lǐng)域的一個(gè)課題被人們所研究。但是由于現(xiàn)場(chǎng)及汽車自身的諸多因素所影響,軸識(shí)
別率一直不能達(dá)到一個(gè)讓人滿意的結(jié)果。近年來,隨著科學(xué)技術(shù)的發(fā)展,各種數(shù)據(jù)處理
方法應(yīng)運(yùn)而生,用神經(jīng)網(wǎng)絡(luò)去進(jìn)行靜態(tài)汽車衡軸自動(dòng)識(shí)別的方法引人注目,它有著傳統(tǒng)
處理方法無法比擬的適應(yīng)性、容錯(cuò)性及自組織性等優(yōu)點(diǎn),特別是用傳統(tǒng)處理方法效果不
好或不能達(dá)到目的時(shí),采用BP神經(jīng)網(wǎng)絡(luò)往往能收到較好的效果。本文論述了采用BP神
經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)靜態(tài)汽車衡軸自動(dòng)識(shí)別的建模,通過最小二乘法與LM算法使BP神經(jīng)網(wǎng)
絡(luò)算法在靜態(tài)汽車衡軸自動(dòng)識(shí)別應(yīng)用中軸識(shí)別準(zhǔn)確率達(dá)到99%以上。
1 BP神經(jīng)網(wǎng)絡(luò)原理與理論分析
BP(Back Propagation)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目
前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)
系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,
通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。
在靜態(tài)汽車衡稱重的過程中,對(duì)軸識(shí)別率產(chǎn)生影響的兩個(gè)最大的因素就是車速與車
重,因?yàn)殪o態(tài)秤的特性就使得其稱重精度很高,通過對(duì)稱重傳感器的處理,我們可以很
精確的知道車輛上秤的重量;在靜態(tài)稱重的過程中,車輛正常行駛上秤過程我們可以認(rèn)
為其是一個(gè)勻速上秤過程,那通過稱重儀表的AD采集速率與秤自身的有效長度,我們
可以計(jì)算出其車速。我們把車速與動(dòng)態(tài)車重作為輸入層,把車軸與車重作為輸出層就可
以構(gòu)建一個(gè)二個(gè)節(jié)點(diǎn)的輸入層和兩個(gè)節(jié)點(diǎn)的輸出層的多層神經(jīng)網(wǎng)絡(luò)模型。
2 BP網(wǎng)絡(luò)在靜態(tài)汽車衡軸自動(dòng)識(shí)別中的建模過程
BP神經(jīng)網(wǎng)絡(luò)建模的基本流程如圖1所示:首先收集靜態(tài)汽車衡產(chǎn)生汽車軸數(shù)與軸
重的主要影響因素及正確的軸數(shù)與軸重結(jié)果;然后把影響因素及正確的軸數(shù)與軸重結(jié)果
輸入到設(shè)計(jì)好神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行反復(fù)訓(xùn)練,直到網(wǎng)絡(luò)收斂(即達(dá)到預(yù)期的訓(xùn)練誤差),
在訓(xùn)練過程中可適當(dāng)采用一定的技巧使網(wǎng)絡(luò)的訓(xùn)練速度最快、誤差最小、模型最優(yōu);最
后用建立好的模型對(duì)車軸與軸重進(jìn)行預(yù)測(cè)。下面具體探討網(wǎng)絡(luò)模型的設(shè)計(jì)要點(diǎn)。
2.1 確定訓(xùn)練樣本
從理論上講,訓(xùn)練樣本集的容量越大,訓(xùn)練后神經(jīng)網(wǎng)絡(luò)的診斷準(zhǔn)確率就有可能提高,
但會(huì)造成訓(xùn)練速度偏慢。由于訓(xùn)練樣本集內(nèi)可能含有信息重復(fù)的冗余樣本,將這些冗余
樣本剔除后也不會(huì)影響診斷準(zhǔn)確率,這樣可用較小的典型訓(xùn)練樣本集獲取較高的診斷準(zhǔn)
確率。
2.2 變量值的歸一化處理
歸一化處理的目的是把變量值歸一到區(qū)間[-1,1]內(nèi),主要是因?yàn)?/SPAN>BP網(wǎng)絡(luò)中非線
性傳遞函數(shù)的值域一般在區(qū)間[-1,1]內(nèi),因此輸入及輸出變量的取值都限于這個(gè)區(qū)間
之內(nèi)。二是為了使輸入值(特別是那些比較大的輸入值)均落在Sigmoid傳遞函數(shù)變化
較大的區(qū)間,使網(wǎng)絡(luò)的訓(xùn)練速度最快,改善網(wǎng)絡(luò)的性能。
2.3 BP網(wǎng)絡(luò)的初始化
開始訓(xùn)練時(shí),首先進(jìn)行參數(shù)的初始化,主要是對(duì)最大訓(xùn)練次數(shù)、訓(xùn)練精度、隱節(jié)點(diǎn)
數(shù)、初始權(quán)值、閾值及速率進(jìn)行初始化。網(wǎng)絡(luò)的初始權(quán)值一般取[-1,1]之間的隨機(jī)
數(shù),這樣可保證每個(gè)神經(jīng)元的權(quán)值都能夠在 型傳遞函數(shù)變化梯度最大的地方進(jìn)行調(diào)節(jié)。
2.4 輸入與輸出層的設(shè)計(jì)
輸入輸出層主要是接收數(shù)據(jù)以及給出最后需要的處理結(jié)果。在網(wǎng)絡(luò)建設(shè)之前必須要
明確輸入輸出層以及它們之間的聯(lián)系,對(duì)于三層BP神經(jīng)網(wǎng)絡(luò)來說,輸入層僅設(shè)一層,
輸入神經(jīng)元的個(gè)數(shù)與輸入變量的個(gè)數(shù)相同。輸出層也僅有一層,輸出層神經(jīng)元的個(gè)數(shù)與
所希望得出的預(yù)測(cè)變量數(shù)目相等。
2.5 隱含層數(shù)以及隱含層節(jié)點(diǎn)的設(shè)計(jì)
在設(shè)計(jì)多層神經(jīng)網(wǎng)絡(luò)時(shí),要考慮到采用幾個(gè)隱含層及各層隱含節(jié)點(diǎn)的個(gè)數(shù),一般來
說,增加隱含層可增加BP神經(jīng)網(wǎng)絡(luò)的處理能力,但是會(huì)引起訓(xùn)練的復(fù)雜化及訓(xùn)練時(shí)間
加長。通用的選取隱含層及其節(jié)點(diǎn)的規(guī)則是:對(duì)于任意問題首先只使用一個(gè)隱含層及少
數(shù)的隱層節(jié)點(diǎn),然后不斷增加隱含層節(jié)點(diǎn)數(shù),直到得到滿意的結(jié)果為止。最后再考慮增
加隱含層。
2.6 信息反饋
當(dāng)輸出的結(jié)果不正確時(shí),通過修正權(quán)值與閾值,直到其誤差減少到最小。
2.7 模型確認(rèn)
模型確認(rèn)后,輸入未知參數(shù),對(duì)已建立模型進(jìn)行確認(rèn),得出結(jié)果。
3 靜態(tài)汽車衡軸自動(dòng)識(shí)別的神經(jīng)網(wǎng)絡(luò)模型
3.1 BP神經(jīng)網(wǎng)絡(luò)模型建立
由于我們所研究的基礎(chǔ)為靜態(tài)汽車衡,在車速為40km/h的情況下,其對(duì)于車輛的
稱重要求能夠完全滿足要求,所以我們主要是對(duì)車軸進(jìn)行了分析。只要是把車軸準(zhǔn)確率
能夠保證,那么就可以準(zhǔn)確得出車輛的軸重以及車輛的總重。
BP神經(jīng)網(wǎng)絡(luò)算法對(duì)靜態(tài)汽車衡數(shù)據(jù)
處理的原理是:構(gòu)建一個(gè)二個(gè)節(jié)點(diǎn)(汽車
車速V與實(shí)時(shí)車重W1)的輸入層和兩個(gè)
節(jié)點(diǎn)(車軸Axle與車重W2)的輸出層的
多層神經(jīng)網(wǎng)絡(luò)模型。通過實(shí)驗(yàn)獲得的樣本
數(shù)據(jù),在MATLAB上通過多次訓(xùn)練構(gòu)建
的雙輸入雙輸出神經(jīng)網(wǎng)絡(luò)。如果泛化的結(jié)
果達(dá)到系統(tǒng)的誤差要求,則輸出各隱層和
輸出層的權(quán)值和閾值,然后可以利用訓(xùn)練
好的網(wǎng)絡(luò)參數(shù),根據(jù)測(cè)得的任意速度和動(dòng)
態(tài)車重,得出當(dāng)前精確的車軸與車重。
V與w1為測(cè)得的汽車行駛速度和動(dòng)態(tài)車重;Axle與w2為輸出的車軸與車重;
輸入層與隱層之間的權(quán)值為wij,閾值i與j;隱層與輸出層之間的權(quán)值為wjk,閾值為j與k;
隱層選用雙曲正切型函數(shù)tansig,函數(shù)原形為:112)()2(.
+=.xexf
輸出層的神經(jīng)元?jiǎng)t采用線性傳遞函數(shù)purelin,函數(shù)原形為=)(xfx;
則隱層節(jié)點(diǎn)的輸出為:j=1,2,……j;網(wǎng)絡(luò)訓(xùn)練的函數(shù)設(shè)定為trainlm。 )(
20iiijxwfWjΣ==
3.2 樣本獲取及訓(xùn)練
本實(shí)驗(yàn)是在靜態(tài)汽車衡的平臺(tái)上,共采用了2~12軸共12種不同車型的車輛,加
載不同的重量分別在不同的速度下(5~40km/h)進(jìn)行分組試驗(yàn)。在車輛重量信息輸入
之前,我們采用了最小二乘法對(duì)車輛的重量數(shù)據(jù)進(jìn)行擬合,對(duì)數(shù)據(jù)進(jìn)行了一次濾波處理,
設(shè)計(jì)合適的神經(jīng)網(wǎng)絡(luò)參數(shù)。輸入神經(jīng)元2個(gè),單層隱含層,隱含層神經(jīng)元數(shù)目4~13個(gè)
之間,通過靈敏度修剪算法確定隱含層的最佳神經(jīng)元個(gè)數(shù),輸出層神經(jīng)元個(gè)數(shù)為2;訓(xùn)
練, 次數(shù)1000次,訓(xùn)練目標(biāo)0.01;隱含層采用 型正切函數(shù)tansig,輸出層采用線性傳遞
函數(shù)purelin,網(wǎng)絡(luò)訓(xùn)練的函數(shù)設(shè)定為trainlm。通過反復(fù)訓(xùn)練發(fā)現(xiàn),當(dāng)隱含層神經(jīng)元個(gè)數(shù)
為6時(shí),網(wǎng)絡(luò)的訓(xùn)練速度最快,僅需要6次訓(xùn)練便達(dá)到到了預(yù)期的訓(xùn)練誤差,訓(xùn)練的速
度也比均勻,網(wǎng)絡(luò)振蕩最小。
4 結(jié)束語
我們把上述訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行考核,把我們的產(chǎn)品投入到陜西30多個(gè)
超限站進(jìn)行試驗(yàn),從客戶中拿到的總計(jì)約有10萬組數(shù)據(jù)進(jìn)行統(tǒng)計(jì),我們的軸識(shí)別率可
以達(dá)到99%以上,其中重車的識(shí)別率達(dá)100%,得到了客戶的認(rèn)可,完全可以滿足現(xiàn)行
超限需求。實(shí)驗(yàn)結(jié)果證明此方法在現(xiàn)實(shí)中已經(jīng)取得了很好的效果,并為靜態(tài)汽車衡實(shí)現(xiàn)
動(dòng)態(tài)稱重打下了良好的基礎(chǔ),有著重要的實(shí)際意義。