朱佳葆
(上海交通大學(xué) 自動化系,上海 200030)
基于BP神經(jīng)網(wǎng)絡(luò)的汽車內(nèi)阻模型預(yù)測*
朱佳葆
(上海交通大學(xué) 自動化系,上海 200030)
分析了利用BP神經(jīng)網(wǎng)絡(luò)方法改進(jìn)傳統(tǒng)滑行法測量車輛內(nèi)阻的可行性,并通過Matlab軟件中的神經(jīng)網(wǎng)絡(luò)工具箱nntool實現(xiàn)了該網(wǎng)絡(luò)的設(shè)計、訓(xùn)練和結(jié)果對比,表明利用BP神經(jīng)網(wǎng)絡(luò)的方法預(yù)測不同條件下車輛內(nèi)阻是滿足工程要求的。
汽車內(nèi)阻;BP神經(jīng)網(wǎng)絡(luò);nntool工具箱
車輛道路阻力的模擬在汽車臺架試驗中有著非常重要的作用,準(zhǔn)確的車輛道路阻力模擬可以使臺架試驗的結(jié)果更趨近于實際道路行駛情況。車輛道路阻力主要由兩部分構(gòu)成:迎面風(fēng)阻和車輛內(nèi)阻(該文所指車輛內(nèi)阻為傳動系阻力與滾動阻力之和),迎面風(fēng)阻在汽車設(shè)計初期由外形所決定,而車輛內(nèi)阻會隨不同的開發(fā)階段車輛配置的改變而產(chǎn)生變化。有限的整車臺架試驗資源無法滿足大量的車輛內(nèi)阻測試需求,因此尋找一種建立阻力模型的方法,使之能較為準(zhǔn)確的預(yù)估不同車輛狀態(tài)下的車輛內(nèi)阻是解決上述問題的一種手段。
2.1 國內(nèi)外現(xiàn)狀分析
目前國內(nèi)外對車輛內(nèi)阻中輪胎部分的研究有很多,通過有限元仿真、Yeoh材料模型、模態(tài)參數(shù)模型和阻尼模型等等,對其基礎(chǔ)力學(xué)特性作了細(xì)致的計算和驗證[1]。但在整車背景下,引入傳動系、路面、外部環(huán)境等因素,直接套用公式法或在理想條件下建立模型分析計算都是比較困難的,因此以輸入輸出為導(dǎo)向,運用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)建立內(nèi)阻模型是比較符合實際應(yīng)用的方法,同時很多研究也表明BP神經(jīng)網(wǎng)絡(luò)在有大量樣本支持下對非線性問題的識別和預(yù)測有良好表現(xiàn),所以運用此方法建立滑行試驗阻力模型并檢驗其效果是可行且值得探究的。
2.2 前期樣本收集
車輛內(nèi)阻的大小受諸多條件的影響,主要因素有輪胎的花紋深淺、輪胎胎壓、摩擦片磨損度、周圍環(huán)境溫度、車輛配載和傳動系內(nèi)阻等。根據(jù)研究目標(biāo)的不同選擇輸入輸出對阻力模型的構(gòu)建效果有著較大的影響。本例中以新舊輪胎、高低胎壓、不同程度的摩擦片磨損和環(huán)境溫度的改變進(jìn)行交叉試驗,在底盤測功機上用滑行法結(jié)合在各種不同車速下測得滑行阻力作為本次神經(jīng)網(wǎng)絡(luò)構(gòu)建的輸入輸出訓(xùn)練樣本。
2.3 神經(jīng)網(wǎng)絡(luò)訓(xùn)練原理
BP網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的網(wǎng)絡(luò)模型之一。它包含輸入層、隱含層和輸出層,隱含層可以為一層或多層,每層上的神經(jīng)元稱為節(jié)點或單元。BP算法的實質(zhì)是把一組樣本輸入輸出問題轉(zhuǎn)化為一個非線性優(yōu)化問題。BP算法是一個快速下降的方法,使用了最優(yōu)化方法中的梯度下降算法,目的是使實際輸出和預(yù)期樣本輸出之間的均方差最小化。它要求傳遞函數(shù)具有連續(xù)可微分的非線性特征。一般使用S型邏輯非線性函數(shù):
對于一個三層前饋BP網(wǎng)絡(luò),設(shè)輸入層有m個節(jié)點,隱含層有s個節(jié)點,輸出層有n個節(jié)點。輸入層、隱含層和輸出層神經(jīng)元之間的連接權(quán)值為wij、vil以及神經(jīng)元閾值θj和γl,神經(jīng)元閾值賦予(-1,1)間的隨機值,學(xué)習(xí)系數(shù)α、β。輸入層的輸出ul、隱含層輸出yj,輸出層輸出zi。
BP算法的具體步驟:
(1) 初始化權(quán)值和閾值,即隨機賦予wij、vil、θj和γl(-1,1)之間的較小值。
(2) 給出輸入向量xi=(x1,x2,x3…xm)和對應(yīng)的預(yù)期輸出向量zi
(3) 將xi的值輸入輸入層節(jié)點,計算隱含層各神經(jīng)元的輸出:
(4) 計算輸出層神經(jīng)元的輸出:
(5) 利用給定的輸出數(shù)據(jù)計算輸出層神經(jīng)元的一般化誤差:
(6) 計算隱含層各神經(jīng)元的一般化誤差:
(9) 選取另一組輸入-輸出數(shù)據(jù),返回式(2)進(jìn)行學(xué)習(xí),重復(fù)利用全部數(shù)據(jù)組進(jìn)行學(xué)習(xí)。這是網(wǎng)絡(luò)利用樣本集完成一次學(xué)習(xí)過程。
(10) 重復(fù)學(xué)習(xí)過程,直至網(wǎng)絡(luò)全局誤差小于設(shè)定值或?qū)W習(xí)次數(shù)到達(dá)設(shè)定次數(shù)為止[2]。
在Matlab軟件把輸入輸出以矩陣形式表達(dá),作為樣本訓(xùn)練集的輸入input和output,輸入包括輪胎花紋深淺、胎壓、環(huán)境溫度、摩擦片磨損度以及車速120~10 km/h共12類,合計144組輸入樣本,命名為input。輸出為144組樣本在底盤測功機下單獨測量得到的車輛內(nèi)阻,命名為output。測試集為樣本外12組輸入,命名為test。
如圖1所示,在命令窗口中鍵入nntool打開Matlab神經(jīng)網(wǎng)絡(luò)工具箱GUI界面,導(dǎo)入input、output及test樣本集。點擊New按鈕建立神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)類型選擇Feed-forward backprop即所說的BP網(wǎng)絡(luò)[3]。
圖1 神經(jīng)網(wǎng)絡(luò)工具箱數(shù)據(jù)和網(wǎng)絡(luò)管理器
在網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置界面中對學(xué)習(xí)算法和傳遞函數(shù)進(jìn)行選擇。權(quán)值學(xué)習(xí)算法的選擇很多,系統(tǒng)默認(rèn)也是最常用的是Levenberg-Marquard優(yōu)化算法,簡稱LM算法。LM算法屬于信賴域法,在優(yōu)化算法中,要求每一步迭代中目標(biāo)函數(shù)是下降的,信賴域法就是從起點開始,假設(shè)一個可信賴的最大位移s,然后在當(dāng)前點以s為半徑的范圍內(nèi)尋找目標(biāo)函數(shù)的一個近似二次函數(shù)最優(yōu)點,以此求解得到真正的位移,在得到真正的位移之后再計算目標(biāo)函數(shù)值,如果目標(biāo)函數(shù)值下降滿足了一定的條件則說明這個位移可靠,就繼續(xù)按此規(guī)則迭代計算下去。反之則減小信賴域范圍重新求解。在本例中推薦使用Levenberg-Marquard優(yōu)化算法,它可以用于解決非線性最小二乘問題,內(nèi)阻模型構(gòu)建屬于曲線擬合類問題,在LM算法適用的范圍內(nèi)。同時后續(xù)用TRAINSCG共軛梯度算法、TRAINDG動量梯度下降算法和TRAINDGX動量梯度自適應(yīng)算法建立網(wǎng)絡(luò),以比較不同算法實際效果。
理論已證明若輸入輸出層采用線性傳遞函數(shù),隱層采用S型傳遞函數(shù),則含有一個隱層的多層神經(jīng)網(wǎng)絡(luò)能以任意精度逼近任何有理函數(shù)?;谶@點,我們選擇的網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)該是帶有一個隱層的三層BP網(wǎng)絡(luò)。而隱層節(jié)點數(shù)的選擇,在目前理論上還沒有一種科學(xué)和普遍的確定方法。原則上是在滿足精度要求的前提下,盡可能精簡隱層節(jié)點數(shù),隱層節(jié)點數(shù)太少會導(dǎo)致網(wǎng)絡(luò)不收斂;而太多會在訓(xùn)練時出現(xiàn)“過擬合”現(xiàn)象。本例中選擇tansig和lonsig都是可行的,輸出層則選擇比例函數(shù)purelin,嘗試5~10個隱層節(jié)點,并根據(jù)網(wǎng)絡(luò)性能選擇合適節(jié)點數(shù)。
創(chuàng)建好的網(wǎng)絡(luò)會顯示在Networks列表中,打開需要訓(xùn)練的網(wǎng)絡(luò),選擇訓(xùn)練時所用的輸入輸出集,網(wǎng)絡(luò)的訓(xùn)練一般把檢驗樣本檢查數(shù)作為終止條件,因此對訓(xùn)練參數(shù)不需要作過多的設(shè)置。通常把樣本輸入網(wǎng)絡(luò)中訓(xùn)練時,系統(tǒng)會自動把樣本分為3部分,訓(xùn)練樣本、驗證樣本和測試樣本用于訓(xùn)練和評估網(wǎng)絡(luò)效果。在網(wǎng)絡(luò)利用訓(xùn)練樣本進(jìn)行訓(xùn)練時,確認(rèn)樣本的誤差曲線連續(xù)N次(N為最大插值次數(shù)的設(shè)定值)迭代不再下降,此時訓(xùn)練終止(即使網(wǎng)絡(luò)訓(xùn)練結(jié)果沒有達(dá)到目標(biāo)值)。在訓(xùn)練參數(shù)設(shè)置中,最大插值次數(shù)的設(shè)定值規(guī)定了檢驗樣本檢查的次數(shù),默認(rèn)為6??蓢L試提高這個設(shè)定值到12、18甚至更高,但其效果只會推遲網(wǎng)絡(luò)訓(xùn)練結(jié)束的時間,這是因為如果檢驗樣本誤差不再減小而繼續(xù)訓(xùn)練網(wǎng)絡(luò),即使網(wǎng)絡(luò)訓(xùn)練精度不斷提高,其性能也不會有所改善,圖2為一次提高插值次數(shù)的網(wǎng)絡(luò)訓(xùn)練效果。
圖2 把最大插值次數(shù)提高1倍后對網(wǎng)絡(luò)性能沒有幫助
對創(chuàng)建好的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練結(jié)束后可在性能圖表中查看均方誤差曲線,來觀察網(wǎng)絡(luò)的學(xué)習(xí)效果。BP網(wǎng)絡(luò)訓(xùn)練的過程是信號正向傳播和誤差反向傳播的過程。通過誤差反傳不斷修正網(wǎng)絡(luò)連接權(quán)值使網(wǎng)絡(luò)模型輸出值與已知的訓(xùn)練樣本輸出值之間的誤差平方和達(dá)到最小或期望值,由于訓(xùn)練網(wǎng)絡(luò)的目的是使其對非訓(xùn)練樣本有良好的泛化能力,因此單純看均方誤差的大小沒有意義。一般來說如果在均方誤差曲線中,驗證樣本和測試樣本的誤差與訓(xùn)練樣本誤差較為接近甚至更小,則網(wǎng)絡(luò)模型已有效地逼近了目標(biāo)系統(tǒng)所呈現(xiàn)的特性。由此得到結(jié)論是測試樣本誤差大小是樣本客觀條件所決定的,而網(wǎng)絡(luò)泛化能力的好壞主要是看三類樣本的誤差接近程度,在圖3中給出了一組理想的網(wǎng)絡(luò)訓(xùn)練結(jié)果以供讀者參考。
在網(wǎng)絡(luò)訓(xùn)練前,初始權(quán)值、閾值是在一個范圍內(nèi)按均勻分布隨機產(chǎn)生,初始值的不同會導(dǎo)致不同的訓(xùn)練結(jié)果,因此確定一個合適的模型,不僅要嘗試不同的訓(xùn)練方法和節(jié)點數(shù)還要改變初始權(quán)值、閾值進(jìn)行多次訓(xùn)練以尋找能夠反映車輛內(nèi)阻特性的理想網(wǎng)絡(luò)模型。通過實踐證明TRAINLM和TRAINGDX算法都可以在有限次的訓(xùn)練中,得到比較理想的模型。而隱含層節(jié)點數(shù)設(shè)置為5,更高的設(shè)置會影響網(wǎng)絡(luò)的泛化能力,而傳遞函數(shù)選擇TANSIG和LONSIG對網(wǎng)絡(luò)的表現(xiàn)影響差異不大。
圖3 TRAINGDX算法下一組理想的網(wǎng)絡(luò)模型表現(xiàn)
在某一網(wǎng)絡(luò)訓(xùn)練達(dá)到期望的效果后,在選項卡中點擊回歸圖表查看樣本回歸情況,如圖4所示。在該神經(jīng)網(wǎng)絡(luò)仿真選項卡中輸入預(yù)測條件集,通過仿真得到預(yù)測數(shù)據(jù)并記錄。根據(jù)預(yù)測條件集配置車輛,在底盤測功機上進(jìn)行滑行試驗測量車輛內(nèi)阻。把兩組數(shù)據(jù)進(jìn)行對比,評估網(wǎng)絡(luò)泛化能力。
圖4 訓(xùn)練完后在回歸圖中查看3組樣本回歸情況
在多組預(yù)測值與實測值的比較后發(fā)現(xiàn),TRAINSCG和TRAINDGX訓(xùn)練算法都可以實現(xiàn)內(nèi)阻模型構(gòu)建的功能,但是SCG算法在網(wǎng)絡(luò)性能總體表現(xiàn)上相較LM算法略遜一籌,而DGX算法的收斂速度受初始權(quán)值、閾值影響較大,訓(xùn)練表現(xiàn)不及LM算法穩(wěn)定,因此在本例中LM算法是車輛內(nèi)阻模型構(gòu)建的第一選擇。表1的數(shù)據(jù)為LM算法下訓(xùn)練完成的網(wǎng)絡(luò)仿真值與實測值的比較,可以看到除了最后兩項外,預(yù)測值與實測值的相對誤差控制在5%以內(nèi),而之所以在低速下產(chǎn)生較大誤差,可能是因為在低速下某一影響內(nèi)阻的因子未在輸入樣本中體現(xiàn)或是實測值有較大誤差而產(chǎn)生的。
表1 某組條件下車輛內(nèi)阻實測值與預(yù)測值的比較
通過對BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練原理的分析,使用Matlab中神經(jīng)網(wǎng)絡(luò)工具箱對車輛內(nèi)阻模型進(jìn)行設(shè)計、訓(xùn)練和仿真。在多組預(yù)測數(shù)據(jù)與實測數(shù)據(jù)進(jìn)行比較的情況下證明:BP神經(jīng)網(wǎng)絡(luò)對車輛內(nèi)阻預(yù)測是符合工程要求的。通過若干組車輛配置和環(huán)境下測得的車輛內(nèi)阻作為訓(xùn)練樣本,可以對其他配置下的內(nèi)阻值進(jìn)行較為準(zhǔn)確的預(yù)測,大大節(jié)省了試驗資源。
[1] 尤金艷,臧孟炎. 乘用車子午線輪胎滾動阻力的有限元分析[J]. 科學(xué)技術(shù)與工程,2012(31):70-73.
[2] 戴永文. 基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)算法的企業(yè)可持續(xù)發(fā)展力評價研究[D]. 南昌:南昌大學(xué),2010.
[3] 王福昌,張寶雷,張同慶. 神經(jīng)網(wǎng)絡(luò)工具nntool及其應(yīng)用[J]. 計算機與現(xiàn)代化,2003(9):84-85.
BP Neural Networks in Vehicle-Loss Prediction Model
ZHU Jia-bao
(ShanghaiJiaotongUniversity,Shanghai200030,China)
The feasibility analysis of BP Neural Networks which is used to improve the vehicle-loss measurement is performed in this paper. Through the nntool of Matlab software to finish the networks design, training and result analysis, it has been proved to meet the requirement of project.
vehicle-loss; BP neural networks; nntool GUI
2013-12-24
朱佳葆(1987-),男,上海人,助理工程師,主要從事整車臺架試驗方面的工作。
TH11
A
1007-4414(2014)01-0090-03