陳昊天,王玥,曹晶,張繼忠,鄧康耀,崔毅
(1.上海交通大學(xué)動力機械與工程教育部重點實驗室,上海 200240;2.上海核工程研究設(shè)計院有限公司,上海 200233;3.中國北方發(fā)動機研究所(天津),天津 300400)
隨著計算機水平的提升,硬件在環(huán)技術(shù)(HIL)在發(fā)動機控制系統(tǒng)的開發(fā)中得到廣泛地應(yīng)用。在HIL系統(tǒng)中,發(fā)動機仿真模型是一個重要的組成部分。為了能夠有效地實現(xiàn)HIL仿真,發(fā)動機仿真模型不僅需要滿足一定的精度,還需要滿足面向控制的要求,也就是要實現(xiàn)快速計算,滿足實時性約束[1-2]。
當(dāng)前,應(yīng)用于HIL系統(tǒng)的性能預(yù)測模型主要分為以下幾種:平均參數(shù)模型、曲軸轉(zhuǎn)角精度模型以及基于神經(jīng)網(wǎng)絡(luò)的仿真模型[3]。Hendricks首次提出了平均值模型這一概念,不考慮參數(shù)在循環(huán)內(nèi)的變化,只考慮循環(huán)間的變化,避免了十分復(fù)雜的工作過程[4]。雖然平均參數(shù)模型計算效率高,但是模型的精度不高,并且需要大量的數(shù)據(jù)進行標(biāo)定[5]。曲軸轉(zhuǎn)角精度模型利用微分方程計算參數(shù)隨曲軸轉(zhuǎn)角的變化,因此精度較高[6]。雖然曲軸轉(zhuǎn)角模型預(yù)測能力較強,但是不能完全滿足計算速度的要求,尤其是對于高轉(zhuǎn)速的機型[7]。平均參數(shù)模型和曲軸轉(zhuǎn)角精度模型無論是基于Simulink建立或者是利用某種編程語言編寫,都需要較為復(fù)雜的前期開發(fā)工作。人工神經(jīng)網(wǎng)絡(luò)在處理非線性問題上具有優(yōu)勢,近年來在柴油機動力性、排放性以及性能模型建立等研究中得到廣泛的應(yīng)用[8-10]。神經(jīng)網(wǎng)絡(luò)模型是針對具體的發(fā)動機對象建立的,其通用性較差,但是在樣本滿足要求的情況下,神經(jīng)網(wǎng)絡(luò)模型的建立和訓(xùn)練較為簡單,使用方便。離線模型的計算速度很快,并且方便與Simulink中搭建的或者自主編程開發(fā)的控制系統(tǒng)耦合,在面向控制的模型建立問題上可以得到很好的應(yīng)用。
BP神經(jīng)網(wǎng)絡(luò)(Back-Propagation Neural Network)是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò)[11],在柴油機研究中應(yīng)用廣泛,但是其無法保證得到全局最優(yōu)解,收斂速度和泛化能力較差,很難滿足精度上的需求[12]。因此,近年來對神經(jīng)網(wǎng)絡(luò)開展了很多優(yōu)化算法的研究,比如遺傳算法和群體智能算法等[13-14]。群體智能算法魯棒性較強,并且全局收斂能力好,與BP神經(jīng)網(wǎng)絡(luò)結(jié)合,可以充分發(fā)揮雙方的優(yōu)勢。
現(xiàn)有的發(fā)動機神經(jīng)網(wǎng)絡(luò)模型主要用于分析穩(wěn)態(tài)工況,對瞬態(tài)性能的預(yù)測精度、訓(xùn)練速度以及泛化能力較差。因此,本研究選擇群體智能算法中的粒子群算法(PSO算法),提出了預(yù)測柴油機全工況穩(wěn)態(tài)及瞬態(tài)性能的通用神經(jīng)網(wǎng)絡(luò)模型構(gòu)建方法,并與傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)方法進行了全面的比較。
本研究所針對的柴油機為某型渦輪增壓中速柴油機,柴油機的具體參數(shù)如表1所示。
表1 柴油機主要參數(shù)
為了獲取神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練樣本,在該柴油機上開展了穩(wěn)態(tài)和瞬態(tài)試驗。穩(wěn)態(tài)試驗包括25%,50%,75%,90%,100%,110%六個穩(wěn)態(tài)工況點的柴油機性能數(shù)據(jù)。瞬態(tài)試驗主要是變負荷試驗,當(dāng)負荷變化時,轉(zhuǎn)速通過電子調(diào)速器進行PID調(diào)節(jié)。
由于穩(wěn)態(tài)試驗下獲取的樣本數(shù)不足以對神經(jīng)網(wǎng)絡(luò)模型進行充分的訓(xùn)練,因此基于一維非定常流動計算方法,在發(fā)動機性能仿真軟件SPEED中建立柴油機計算模型(見圖1),并利用試驗數(shù)據(jù)進行校核,結(jié)果見圖2。
圖1 柴油機仿真模型
圖2 仿真模型精度校核結(jié)果
利用仿真模型進行不同轉(zhuǎn)速、負荷、噴油參數(shù)下的計算,變量范圍如表2所示,總共獲取穩(wěn)態(tài)訓(xùn)練樣本300組。瞬態(tài)訓(xùn)練樣本主要包括定轉(zhuǎn)速下增減負荷導(dǎo)致的參數(shù)變動,考慮不同的負荷初值、負荷終值以及變化速率。為了盡可能使得訓(xùn)練樣本覆蓋運行工況,本研究中瞬態(tài)樣本負荷變化范圍為10%~100%,選擇50%負荷作為起始值,變動時間范圍為2~30 s,如表3所示,總計42組樣本曲線。各個工況的計算時間均為75 s,負荷變化起始時刻均為30 s。
表2 穩(wěn)態(tài)工況變量取值范圍
表3 瞬態(tài)工況負荷變化范圍
本研究建立的神經(jīng)網(wǎng)絡(luò)模型輸入包括轉(zhuǎn)速、噴油量、噴油時刻、噴油量隨時間的變化率。前面三個輸入可以用于穩(wěn)態(tài)性能模型的建立[14-16],但是為了建立能夠?qū)Ψ€(wěn)態(tài)和瞬態(tài)性能均可以有效預(yù)測的通用神經(jīng)網(wǎng)絡(luò)模型,需要將噴油量變化率作為輸入,因為在瞬態(tài)工況下,負荷的變化加上調(diào)速器的PID調(diào)節(jié)導(dǎo)致噴油的變化,而噴油量變化率對輸出參數(shù)的變化趨勢有重要的影響。穩(wěn)態(tài)工況的訓(xùn)練不考慮噴油量隨時間的變化,因此樣本中噴油量的變化率為0。瞬態(tài)工況的訓(xùn)練主要考慮定轉(zhuǎn)速變負荷,輸入?yún)?shù)中主要是噴油量及其變化率在起作用,樣本中轉(zhuǎn)速值設(shè)為標(biāo)定轉(zhuǎn)速。
基于神經(jīng)網(wǎng)絡(luò)的實時模型主要是面向控制的,輸出量主要考慮控制系統(tǒng)需要的主要性能參數(shù),因此本研究選擇的模型輸出參數(shù)為增壓壓力、缸內(nèi)最高燃燒壓力、排氣溫度和燃油消耗率。本研究所采用的神經(jīng)網(wǎng)絡(luò)為BP神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)見圖3。
圖3 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
除了輸入層和輸出層外,該網(wǎng)絡(luò)還包含一層隱藏層,隱藏層的節(jié)點數(shù)對整個網(wǎng)絡(luò)的預(yù)測效果有十分重要的影響[17]。網(wǎng)絡(luò)的預(yù)測性能主要包括兩個指標(biāo),訓(xùn)練樣本的學(xué)習(xí)效果以及測試樣本的泛化效果,這兩個指標(biāo)是一對矛盾體。隱藏層節(jié)點數(shù)越多,學(xué)習(xí)效果越好,但是隱藏層節(jié)點過多,容易出現(xiàn)過擬合的現(xiàn)象,導(dǎo)致泛化效果較差[16]。因此,節(jié)點數(shù)的選取要適當(dāng)。本研究采用試錯法來選擇隱藏層的節(jié)點數(shù),通過均方誤差(MSE)來表征網(wǎng)絡(luò)的預(yù)測效果,不同個數(shù)的隱藏層節(jié)點下的MSE對比如圖4所示(取50次測試結(jié)果的平均值)。因此,本研究中選擇的模型隱藏層節(jié)點個數(shù)為10。
圖4 不同隱藏層節(jié)點下的均方誤差對比
本研究使用Matlab中的神經(jīng)網(wǎng)絡(luò)工具進行建模,由于輸入輸出數(shù)據(jù)在數(shù)量級上會有較大的差別,數(shù)量級較小的參數(shù)對網(wǎng)絡(luò)權(quán)值的影響有可能會被忽略,從而影響網(wǎng)絡(luò)的訓(xùn)練和預(yù)測精度,因此要對樣本進行歸一化處理。
樣本主要分為兩部分,訓(xùn)練集和測試集,訓(xùn)練集用于網(wǎng)絡(luò)的學(xué)習(xí),測試集用于驗證網(wǎng)絡(luò)的預(yù)測精度。在對本研究建好的網(wǎng)絡(luò)進行訓(xùn)練時,為了盡可能使樣本充分覆蓋全工況范圍,因此隨機取240組穩(wěn)態(tài)試驗樣本作為訓(xùn)練集,剩下60組作為測試集。
由于瞬態(tài)工況關(guān)注參數(shù)隨時間的變化規(guī)律,因此網(wǎng)絡(luò)輸入輸出均應(yīng)為連續(xù)變化的曲線,如圖5所示。在對網(wǎng)絡(luò)進行訓(xùn)練時,取一定的時間間隔,然后對樣本曲線進行取點,輸入輸出要一一對應(yīng),對于每一種工況,輸入的排列是有序的,這樣可以將模型的輸入看作是一條一條的曲線,得到的輸出也是曲線。在本研究中,取42組瞬態(tài)試驗樣本作為訓(xùn)練集,測試集選擇起點為40%負荷、終點為100%負荷、兩階段增加的瞬態(tài)工況樣本,如圖6所示,第一段經(jīng)過10 s提升到75%負荷,第二段經(jīng)過15 s提升到100%負荷。
圖5 瞬態(tài)工況輸入和輸出形式
圖6 測試集負荷變動
用上述結(jié)構(gòu)的網(wǎng)絡(luò)先對訓(xùn)練樣本進行學(xué)習(xí),然后用測試樣本來驗證網(wǎng)絡(luò)的泛化效果。由于BP網(wǎng)絡(luò)初始權(quán)值具有隨機性,使得預(yù)測效果有所波動,因此取多次訓(xùn)練的最優(yōu)結(jié)果。瞬態(tài)和穩(wěn)態(tài)的預(yù)測值和樣本值的誤差如圖7和圖8所示。在圖7中,增壓壓力瞬態(tài)訓(xùn)練的最大誤差達到7.89%;在圖8中,缸內(nèi)燃燒壓力穩(wěn)態(tài)訓(xùn)練的最大誤差達到7.62%。預(yù)測效果不佳可能是因為使用簡單的BP神經(jīng)網(wǎng)絡(luò)會陷入局部最優(yōu),導(dǎo)致泛化效果比較差,無法滿足精度要求。因此,需要選擇合適的算法來對神經(jīng)網(wǎng)絡(luò)進行優(yōu)化。
圖7 瞬態(tài)訓(xùn)練結(jié)果對比
圖8 穩(wěn)態(tài)訓(xùn)練結(jié)果對比
粒子群算法是一種群智能優(yōu)化算法,思想來源于對鳥類覓食行為的研究。鳥群在覓食過程中,初始狀態(tài)下每個個體的位置和方向是隨機的,但是在搜尋的過程中,通過個體之間信息的交互,大大提升搜尋的速度和效率[19]。基于此,粒子群算法的思想可以總結(jié)為粒子群體以一種隨機的初始狀態(tài)飛行,在每個時刻,每個粒子單獨搜尋的最優(yōu)值稱為個體極值,個體極值中的最優(yōu)值稱為全局最優(yōu)值。通過總結(jié)迭代過程中群體的最優(yōu)值來修正自身的飛行狀態(tài),最終搜索到全局的最優(yōu)解。
使用粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)(PSO-BP神經(jīng)網(wǎng)絡(luò))就要建立二者之間的關(guān)聯(lián)。優(yōu)化的目的就在于尋找一組最優(yōu)的網(wǎng)絡(luò)權(quán)值以及最佳的網(wǎng)絡(luò)結(jié)構(gòu),因此用粒子群中每個粒子的位置來表示當(dāng)前的權(quán)值集合,粒子的維度與BP網(wǎng)絡(luò)的連接權(quán)值的數(shù)量相對應(yīng),通過反復(fù)的粒子搜索過程來確定最優(yōu)權(quán)值。
粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)主要包括以下幾個步驟:
1) 構(gòu)建粒子群,給各個粒子賦予隨機初始速度和位置。
2) 利用當(dāng)前粒子群各個粒子的位置生成一組權(quán)值,構(gòu)成網(wǎng)絡(luò)。在網(wǎng)絡(luò)的訓(xùn)練空間中隨機抽取樣本作為訓(xùn)練集,然后對網(wǎng)絡(luò)進行訓(xùn)練。
3) 根據(jù)適應(yīng)度函數(shù)計算各個粒子的適應(yīng)度。適應(yīng)度用來表征網(wǎng)絡(luò)的訓(xùn)練誤差,然后根據(jù)適應(yīng)度確定本次訓(xùn)練的個體最優(yōu)值和全局最優(yōu)值。
4) 如果已經(jīng)達到最大的訓(xùn)練次數(shù)或者全局最優(yōu)值滿足誤差界限,則將最優(yōu)的權(quán)值賦予網(wǎng)絡(luò),否則更新粒子的狀態(tài)然后繼續(xù)全局尋優(yōu),粒子狀態(tài)更新的表達式如下:
Vi(t+1)=ωVi(t)+C1r1(Pi(t)-Xi(t))+
C2r2(Pg(t)-Xi(t)),
Xi(t+1)=Xi(t)+Vi(t+1),
r1=random(0,1),
r2=random(0,1)。
式中:Vi為粒子的速度;Xi為粒子的位置;C1,C2為學(xué)習(xí)因子;ω為慣性權(quán)重;Pi為粒子個體極值;Pg為全局最優(yōu)值。
優(yōu)化算法的計算流程如圖9所示。
圖9 粒子群優(yōu)化算法計算流程
對于本研究所構(gòu)建的PSO-BP神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)保持不變,輸入層節(jié)點個數(shù)為4,隱藏層節(jié)點個數(shù)為10,輸出層節(jié)點個數(shù)為4。隱藏層選擇Sigmoid函數(shù),輸出層選擇線性函數(shù),最大迭代次數(shù)為1 000。
對于粒子群的規(guī)模,即粒子群中粒子的個數(shù),如果選取數(shù)值過大會導(dǎo)致學(xué)習(xí)效率降低,因此本研究中粒子群規(guī)模為50,粒子群算法的最大迭代次數(shù)選擇150,粒子的維數(shù)為94,學(xué)習(xí)因子C1,C2取1.5,慣性權(quán)重ω取1。
利用粒子群算法對本研究所構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型進行優(yōu)化,將穩(wěn)態(tài)和瞬態(tài)訓(xùn)練樣本輸入到網(wǎng)絡(luò)中進行學(xué)習(xí),得到具有最優(yōu)參數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)。用訓(xùn)練好的網(wǎng)絡(luò)對穩(wěn)態(tài)和瞬態(tài)測試樣本進行計算,驗證PSO-BP神經(jīng)網(wǎng)絡(luò)是否能實現(xiàn)更好的預(yù)測效果。
本研究中選擇決定系數(shù)(R2)來表征預(yù)測值和試驗值之間的相關(guān)性[20],從而體現(xiàn)模型的預(yù)測性能。決定系數(shù)的表達式如下:
式中:X和Y分別對應(yīng)預(yù)測值和訓(xùn)練值。決定系數(shù)越大,表示預(yù)測值和試驗值之間的相關(guān)性越好,模型的預(yù)測性能越好。
用PSO-BP網(wǎng)絡(luò)對穩(wěn)態(tài)測試樣本進行預(yù)測,分別計算增壓壓力、缸內(nèi)最高燃燒壓力、渦前排溫、有效燃油消耗率的決定系數(shù),得到普通BP神經(jīng)網(wǎng)絡(luò)和PSO-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測效果對比,如圖10至圖13所示。
圖10 穩(wěn)態(tài)最高燃燒壓力對比
圖11 穩(wěn)態(tài)渦前排溫對比
圖12 穩(wěn)態(tài)增壓壓力對比
圖13 穩(wěn)態(tài)燃油消耗率對比
對于穩(wěn)態(tài)工況,PSO-BP神經(jīng)網(wǎng)絡(luò)所有輸出變量的預(yù)測結(jié)果最大誤差為4.54%,而普通BP神經(jīng)網(wǎng)絡(luò)所有輸出變量的預(yù)測結(jié)果最大誤差為8.78%。
對于瞬態(tài)工況的預(yù)測,輸出結(jié)果是參數(shù)隨時間變化的曲線,因此用每一時刻預(yù)測結(jié)果和訓(xùn)練樣本的誤差曲線可以較為直觀地進行對比。瞬態(tài)工況下普通BP神經(jīng)網(wǎng)絡(luò)和PSO-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測效果對比如圖14至圖17所示。
對于瞬態(tài)工況的預(yù)測,主要關(guān)注的是負荷變化階段的預(yù)測精度。從圖中可以看出,PSO-BP神經(jīng)網(wǎng)絡(luò)和普通BP神經(jīng)網(wǎng)絡(luò)在負荷穩(wěn)定階段的預(yù)測精度基本相當(dāng),但是在負荷變化階段,普通BP神經(jīng)網(wǎng)絡(luò)的預(yù)測誤差較大,尤其是在負荷變動的時間段,而PSO-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度有較為明顯的提升。
圖14 瞬態(tài)最高燃燒壓力對比
圖15 瞬態(tài)渦前排溫對比
圖16 瞬態(tài)增壓壓力對比
圖17 瞬態(tài)燃油消耗率對比
根據(jù)上面的分析可知,對于模型的輸出(最高燃燒壓力、渦前排溫、增壓壓力以及有效燃油消耗率),在穩(wěn)態(tài)工況和瞬態(tài)工況下,PSO-BP神經(jīng)網(wǎng)絡(luò)模型均可以有效地進行預(yù)測,并且與試驗數(shù)據(jù)的相關(guān)性要明顯優(yōu)于普通BP神經(jīng)網(wǎng)絡(luò),說明使用粒子群算法可以得到最優(yōu)的權(quán)值和網(wǎng)絡(luò)結(jié)構(gòu),避免了局部陷阱。模型多次訓(xùn)練的預(yù)測結(jié)果波動不明顯,說明PSO-BP網(wǎng)絡(luò)的預(yù)測穩(wěn)定性更好,不需要進行多次訓(xùn)練即可達到最優(yōu)效果,訓(xùn)練效率更好。
神經(jīng)網(wǎng)絡(luò)是建立面向控制模型的一種有效的方法,可以應(yīng)用在基于模型的控制系統(tǒng)標(biāo)定工作中,后續(xù)可以將本研究的建模方法在實際控制系統(tǒng)的開發(fā)中應(yīng)用。本研究所搭建的通用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)不僅可以預(yù)測發(fā)動機的穩(wěn)態(tài)性能,還可以有效預(yù)測發(fā)動機的瞬態(tài)性能,穩(wěn)態(tài)工況最大誤差為4.54%,瞬態(tài)工況最大誤差為4.93%。普通BP神經(jīng)網(wǎng)絡(luò)由于不能保證全局最優(yōu)導(dǎo)致預(yù)測精度較差,利用粒子群算法對BP神經(jīng)網(wǎng)絡(luò)進行優(yōu)化,可以得到更優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),模型的泛化能力可以得到提升,預(yù)測結(jié)果更加穩(wěn)定,訓(xùn)練效率更好;對于瞬態(tài)樣本的預(yù)測,PSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測精度明顯優(yōu)于普通BP網(wǎng)絡(luò)。