郭智剛,申 宗,江 楠,閆立冰,馮健洧
(濰柴動(dòng)力股份有限公司,山東 濰坊 261021)
近年來,中國環(huán)境污染越來越嚴(yán)重,涉及水污染、空氣污染等各種污染,其中最引人關(guān)注的當(dāng)屬空氣污染[1]。機(jī)動(dòng)車排放是大氣污染物的主要貢獻(xiàn)者,且柴油車排放的NOx 超過機(jī)動(dòng)車氮氧化物的80%[2]。傳感器測(cè)量排放污染物由于受到成本、精度誤差等因素制約[3],通常采用模型預(yù)測(cè)柴油機(jī)的NOx 排放[4]?;贛AP 映射是一種常用的方法,根據(jù)發(fā)動(dòng)機(jī)的轉(zhuǎn)速與噴油量查找對(duì)應(yīng)工況下MAP 圖的NOx 排放,而對(duì)MAP 圖的標(biāo)定是依賴于發(fā)動(dòng)機(jī)臺(tái)架標(biāo)定實(shí)驗(yàn)。隨著對(duì)性能的追求以及排放要求的提升,各種新技術(shù)會(huì)應(yīng)用到發(fā)動(dòng)機(jī)上,這也就使得發(fā)動(dòng)機(jī)系統(tǒng)變得更加復(fù)雜,進(jìn)而使得標(biāo)定實(shí)驗(yàn)變得更加復(fù)雜困難,再加之標(biāo)定工作的效果很大程度上依賴于標(biāo)定人員的操作,這使得整個(gè)試驗(yàn)成本較高并且耗費(fèi)的時(shí)間較長。設(shè)計(jì)結(jié)構(gòu)簡單又能表達(dá)非線性系統(tǒng)特征的模型成為研究人員關(guān)注的問題[5]。隨著機(jī)器學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)的發(fā)展,借助于神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)排放物濃度成為研究的熱點(diǎn)問題[6-8]。文獻(xiàn)[6]提出使用深度極限學(xué)習(xí)機(jī),基于發(fā)動(dòng)機(jī)不同運(yùn)行狀態(tài)下的數(shù)據(jù)對(duì)尾氣排放進(jìn)行預(yù)測(cè)。周斌[5]建立不依賴于研究對(duì)象數(shù)學(xué)模型的三層Back Propagation(BP)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)發(fā)動(dòng)機(jī)的排放。胡杰等[8]選用最小二乘法提取特征并利用神經(jīng)網(wǎng)絡(luò)進(jìn)行擬合,建立柴油機(jī)NOx排放預(yù)測(cè)模型。
上述研究并沒有考慮到樣本之間的時(shí)間序列聯(lián)系,網(wǎng)絡(luò)表達(dá)能力有限。本文考慮到影響NOx產(chǎn)生的因素過多,導(dǎo)致整個(gè)模型的訓(xùn)練與預(yù)測(cè)時(shí)間過長,采用隨機(jī)森林選取重要特征,同時(shí)注意到內(nèi)燃機(jī)的NOx 排放與各參數(shù)的變化時(shí)序有關(guān),即上個(gè)狀態(tài)的各個(gè)工況參數(shù)與當(dāng)前NOx 的排放有一定關(guān)系,使用基于優(yōu)化的門控循環(huán)單元(Gate Recurrent Unit, GRU)網(wǎng)絡(luò)對(duì)最終結(jié)果的預(yù)測(cè)更加有效。綜上提出使用隨機(jī)森林與GRU 結(jié)合的方法建立NOx 預(yù)測(cè)模型。
NOx 的產(chǎn)生影響因素較多,本文初步選擇了18 個(gè)相關(guān)參數(shù)作為影響NOx 的特征:增壓壓力、軌壓、進(jìn)氣溫度、進(jìn)氣壓力、廢氣再循環(huán)(Exhaust Gas Recirculation, EGR)冷卻溫度、燃油流量、進(jìn)氣流量、EGR 流量、EGR 開度、EGR 設(shè)定、節(jié)流閥位置、節(jié)流閥設(shè)定、發(fā)動(dòng)機(jī)轉(zhuǎn)速、發(fā)動(dòng)機(jī)扭矩、主噴提前角、主噴油量、預(yù)噴油量、后噴油量。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,并不是特征越多性能就會(huì)越好,輸入特征數(shù)過多造成的最直接影響就是計(jì)算量劇增,除了給計(jì)算量帶來不利的影響外,有些特征對(duì)于最后結(jié)果的表達(dá)貢獻(xiàn)并不大,這就需要通過特征提取去壓縮數(shù)據(jù)特征維數(shù),在滿足最終預(yù)測(cè)精度的前提下,盡量減少處理數(shù)據(jù)的冗余度。因此,有保留地選擇出對(duì)最終結(jié)果影響最大的特征參數(shù)成了重要的過程,也是必不可少的一步[9-11]。文獻(xiàn)[9]利用主成分分析法(Principal Component Analysis, PCA)對(duì)內(nèi)燃機(jī)的噪聲特征進(jìn)行提取并取得了較好結(jié)果。文獻(xiàn)[10]在軸承狀態(tài)監(jiān)測(cè)的故障分類中使用PCA 進(jìn)行最優(yōu)特征選取。文獻(xiàn)[11]選用通過特征降維后提高了柴油機(jī)部件的故障識(shí)別率。
隨機(jī)森林是一種有效的機(jī)器學(xué)習(xí)方法,在諸多領(lǐng)域均有應(yīng)用,如疲勞駕駛檢測(cè)[12]、癌癥診斷[13]、信用評(píng)估[14]等。隨機(jī)森林的突出優(yōu)點(diǎn)是計(jì)算復(fù)雜度低,隨機(jī)選擇樣本和特征,泛化能力較強(qiáng)、特征重要性評(píng)估準(zhǔn)確性高[15]。隨機(jī)森林基本組成單元為決策樹,通過隨機(jī)的選擇樣本建立不同的決策樹,從而組成性能更加強(qiáng)大的隨機(jī)森林。本文中的隨機(jī)森林算法具體過程如下:
1)從共計(jì)含有18 880 個(gè)樣本的數(shù)據(jù)集中有放回的隨機(jī)抽取70%的樣本作為一個(gè)訓(xùn)練集;
2)利用步驟1)中的樣本集生成一顆決策樹,決策樹每個(gè)節(jié)點(diǎn)的生成規(guī)則,如重復(fù)的選擇隨機(jī),不重復(fù)地選擇16 個(gè)特征;
3)在所選樣本集中尋找16 個(gè)特征的最優(yōu)劃分點(diǎn),特征劃分的基本原則為使得劃分后的熵增益最大;
4)重復(fù)步驟1)、步驟2)建立150 棵決策樹,即建立成隨機(jī)森林;
5)用隨機(jī)森林對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),并利用票選法決定預(yù)測(cè)結(jié)果。
隨機(jī)森林算法流程如圖1 所示。
圖1 隨機(jī)森林算法流程
由圖1 可見,隨機(jī)森林的強(qiáng)大之處體現(xiàn)在隨機(jī)性上,不僅在樣本的選擇上隨機(jī)選取,建立決策樹時(shí)也會(huì)隨機(jī)選擇特征。隨機(jī)森林的一個(gè)重要的用途便是評(píng)估重要特征,本文采用袋外數(shù)據(jù)分類的準(zhǔn)確性來測(cè)試特征的重要性,流程如下:
1)計(jì)算每一棵決策樹的袋外數(shù)據(jù)誤差,記為err1;
2)對(duì)袋外數(shù)據(jù)所有樣本的特征隨機(jī)添加噪聲,再次計(jì)算袋外誤差,記為err2;
3)計(jì)算特征的重要性I。
其中,袋外數(shù)據(jù)是指在進(jìn)行隨機(jī)有放回選擇樣本的時(shí)候,沒有用于建立決策樹的數(shù)據(jù),而這部分?jǐn)?shù)據(jù)會(huì)被用作評(píng)估決策樹,這樣避免造成使用訓(xùn)練數(shù)據(jù)進(jìn)行評(píng)估而造成的數(shù)值誤差。模型在袋外數(shù)據(jù)下的預(yù)測(cè)錯(cuò)誤率,被稱為袋外錯(cuò)誤率,重要性I計(jì)算公式為
式中,N為隨機(jī)森林中的N棵樹。越重要的特征在被改變后,對(duì)最后的結(jié)果產(chǎn)生的影響越大,因此,在對(duì)特征添加隨機(jī)噪聲后,使得袋外誤差增加越大,說明對(duì)最終預(yù)測(cè)結(jié)果的重要性越大。
依據(jù)以上步驟進(jìn)行特征重要性的繪制如圖2所示,根據(jù)特征重要圖的特征重要性排序選取EGR 冷卻溫度、進(jìn)氣溫度、增壓壓力、轉(zhuǎn)速、扭矩、進(jìn)氣流量的六個(gè)特征作為網(wǎng)絡(luò)特征輸入。
圖2 特征重要性
深度學(xué)習(xí)中對(duì)于傳統(tǒng)的序列問題通常使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN),t時(shí)刻接收到輸入Xt之后,隱藏層的值為St,輸出為Ot,此時(shí)關(guān)鍵點(diǎn)在于St的計(jì)算參考St-1,即上個(gè)時(shí)刻的狀態(tài),這時(shí)的網(wǎng)絡(luò)初步具備了“記憶”功能,也就是說對(duì)于一個(gè)序列,后一個(gè)輸入與前一個(gè)輸入并不是沒有關(guān)系,通過將本時(shí)刻的輸入與上一時(shí)刻的狀態(tài)建立聯(lián)系,從而提高網(wǎng)絡(luò)的表達(dá)能力。隨著時(shí)間序列的推移,后面的時(shí)間節(jié)點(diǎn)對(duì)之前節(jié)點(diǎn)的感知能力會(huì)逐漸下降,并且 RNN 無法控制寫入記憶模塊的內(nèi)容[4]。GRU 可以很好地解決這種問題,且能夠更好地捕捉序列中較長的依賴關(guān)系[16]。
GRU 的基本結(jié)構(gòu)如圖3 所示,其使用門控機(jī)制控制輸入信息和記憶信息,并在當(dāng)前時(shí)間狀態(tài)下給出預(yù)測(cè)信息。GRU 通過兩個(gè)門控制神經(jīng)網(wǎng)絡(luò)的輸出,能長時(shí)間保存時(shí)間序列信息,不會(huì)隨時(shí)間推移和預(yù)測(cè)結(jié)果不同而被丟棄[17]。
圖3 GRU 基本結(jié)構(gòu)
圖3 中的zt與γt分別為GRU 的update gate(更新門)與reset gate(重置門)。更新門反映的是前一狀態(tài)信息對(duì)當(dāng)前狀態(tài)信息的影響權(quán)重,該值越大表明,當(dāng)前信息應(yīng)該增大包含前一狀態(tài)信息的權(quán)重。重置門反映的是拋棄前一信息的權(quán)重,該值越大應(yīng)該更多忽略上一狀態(tài)信息。GRU 通過使用一種“門”的結(jié)構(gòu),極大地避免了梯度消失的問題,可以更有效地分析長期依賴關(guān)系,同時(shí)GRU化簡了單元復(fù)雜度[18],實(shí)際運(yùn)行過程中效率更高,其中σ為Sigmoid 激活函數(shù);tanh為激活函數(shù)。GRU 前向傳播公式為
式中,[]為向量相連;*為矩陣乘積,即損失函數(shù)是神經(jīng)網(wǎng)絡(luò)中衡量預(yù)測(cè)值與真實(shí)值之間差距的指標(biāo),損失函數(shù)的設(shè)計(jì)優(yōu)劣對(duì)網(wǎng)絡(luò)的最終訓(xùn)練結(jié)果有重要的影響,損失函數(shù)選用Smooth L1 Loss 函數(shù),公式為
Smooth L1 Loss 的優(yōu)勢(shì)在于真實(shí)值與預(yù)測(cè)值差別較小時(shí),神經(jīng)網(wǎng)絡(luò)的梯度更新較小,使得神經(jīng)網(wǎng)絡(luò)的效果更精準(zhǔn),如圖4 所示。而真實(shí)值與預(yù)測(cè)值差別較大時(shí),梯度值并不會(huì)太大以至于產(chǎn)生梯度爆炸的情況。
圖4 Smooth L1 Loss 函數(shù)圖像
神經(jīng)網(wǎng)絡(luò)的優(yōu)化通過梯度下降的方法實(shí)現(xiàn),針對(duì)梯度下降的優(yōu)化算法[19-21]有很多。本文選用Adam(適應(yīng)性動(dòng)量估計(jì))的優(yōu)化算法,Adam 參數(shù)更新為
Adam 綜合了文獻(xiàn)[19]與文獻(xiàn)[20]的方法,全面估計(jì)了梯度的一階矩和二階矩,其中β1通常取0.9,β2通常取0.999,相比于其他優(yōu)化算法,Adam算法計(jì)算高效,同時(shí)能自適應(yīng)調(diào)整學(xué)習(xí)率,在神經(jīng)網(wǎng)絡(luò)的優(yōu)化過程中表現(xiàn)更優(yōu)。
GRU 網(wǎng)絡(luò)參數(shù)設(shè)置如表1 所示。
表1 GRU 網(wǎng)絡(luò)參數(shù)設(shè)置
受制于影響NOx 排放的因素過多,且各個(gè)工況下內(nèi)燃機(jī)的運(yùn)行復(fù)雜性,部分樣本的預(yù)測(cè)結(jié)果不理想。提高網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果,最直接的方法就是對(duì)樣本的處理,困難樣本加強(qiáng)的核心思想是使用網(wǎng)絡(luò)模型對(duì)樣本進(jìn)行處理,把其中難以達(dá)到預(yù)期的樣本統(tǒng)一放置一個(gè)集合中,之后使用該集合繼續(xù)訓(xùn)練分類器。也就是說,訓(xùn)練結(jié)束后使用訓(xùn)練的模型對(duì)樣本進(jìn)行測(cè)試,測(cè)試結(jié)束后挑選困難樣本,將困難樣本形成一個(gè)集合后,對(duì)原有的模型使用困難樣本集合繼續(xù)訓(xùn)練,當(dāng)閾值過大時(shí)認(rèn)定為是困難樣本需要重新訓(xùn)練,反之不進(jìn)行重新訓(xùn)練。對(duì)困難樣本的挖掘重新訓(xùn)練,可以增強(qiáng)網(wǎng)絡(luò)的泛化能力,提高模型的魯棒性。
綜上,基于優(yōu)化GRU 的NOx 預(yù)測(cè)排放框架如圖5 所示。
圖5 優(yōu)化GRU 架構(gòu)
為了驗(yàn)證模型的效果,進(jìn)行全球統(tǒng)一瞬態(tài)試驗(yàn)循環(huán)(World Harmonized Transient Cycle, WHTC)試驗(yàn),以穩(wěn)態(tài)數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),其中實(shí)驗(yàn)數(shù)據(jù)70%作為訓(xùn)練集,30%作為測(cè)試集,其中模型在瞬態(tài)工況下預(yù)測(cè)效果如圖6 所示。
圖6 瞬態(tài)工況下GRU 與傳感器結(jié)果對(duì)比
模型在穩(wěn)態(tài)工況下預(yù)測(cè)效果如圖7 所示。
圖7 穩(wěn)態(tài)工況下GRU 與傳感器結(jié)果對(duì)比
使用隨機(jī)森林選擇的六個(gè)特征(EGR 冷卻溫度、進(jìn)氣溫度、增壓壓力、轉(zhuǎn)速、扭矩、進(jìn)氣流量)進(jìn)行試驗(yàn),預(yù)測(cè)值基本符合實(shí)際值的變化,表明該模型具有較高的精準(zhǔn)度,但部分工況點(diǎn)存在偏差,推測(cè)原因如下:
1)網(wǎng)絡(luò)表達(dá)能力的限制,網(wǎng)絡(luò)的表達(dá)能力與網(wǎng)絡(luò)的設(shè)置結(jié)構(gòu)有重要關(guān)系,但復(fù)雜的結(jié)構(gòu)不僅會(huì)造成訓(xùn)練時(shí)間過長,甚至可能造成過擬合情況出現(xiàn),導(dǎo)致模型在訓(xùn)練集中表現(xiàn)良好但測(cè)試集中表現(xiàn)較差,實(shí)際使用中需要在模型精度與訓(xùn)練時(shí)間做一個(gè)有效權(quán)衡;
2)實(shí)際采集數(shù)據(jù)中可能存在的異常點(diǎn)導(dǎo)致部分工況無法準(zhǔn)確學(xué)習(xí)。
設(shè)置對(duì)照試驗(yàn),使用相同數(shù)據(jù)設(shè)置BP 模型與多項(xiàng)式模型的NOx 預(yù)測(cè)對(duì)照試驗(yàn)。使用均方根誤差(Root Mean Square Error, RMSE)與R2 兩個(gè)參數(shù)來量化訓(xùn)練效果,RMSE 與R2 是回歸分析中常用的兩個(gè)評(píng)價(jià)指標(biāo),其中RMSE 的計(jì)算公式為
R2 決定系數(shù)用以衡量預(yù)測(cè)值與真實(shí)值之間的偏差,其計(jì)算公式為
式中,為當(dāng)前樣本的預(yù)測(cè)值;為樣本的平均值。
為說明算法的有效性,將本文算法與BP 神經(jīng)網(wǎng)絡(luò)以及多項(xiàng)式模型進(jìn)行對(duì)比,其中BP 神經(jīng)網(wǎng)絡(luò)的相關(guān)參數(shù)設(shè)置同與本文算法GRU 參數(shù)設(shè)置相同。而多項(xiàng)式模型中使用最小均方誤差進(jìn)行擬合,各個(gè)模型分別對(duì)相同的穩(wěn)態(tài)和瞬態(tài)數(shù)據(jù)進(jìn)行試驗(yàn),相關(guān)對(duì)比結(jié)果如表2、表3 所示。由實(shí)驗(yàn)結(jié)果可知,在瞬態(tài)工況與穩(wěn)態(tài)工況下,相比于BP 模型與多項(xiàng)式擬合模型,隨機(jī)森林結(jié)合GRU 具有更高的精準(zhǔn)度。
表2 瞬態(tài)工況下預(yù)測(cè)結(jié)果圖
表3 穩(wěn)態(tài)工況下預(yù)測(cè)結(jié)果圖
本文以柴油機(jī)NOx 的排放預(yù)測(cè)為研究對(duì)象,提出使用隨機(jī)森林與GRU 神經(jīng)網(wǎng)絡(luò)結(jié)合的方法進(jìn)行預(yù)測(cè),隨機(jī)森林選取對(duì)預(yù)測(cè)結(jié)果影響較大的特征,構(gòu)建基于門結(jié)構(gòu)的循環(huán)神經(jīng)網(wǎng)絡(luò),并針對(duì)實(shí)際訓(xùn)練提出一些優(yōu)化訓(xùn)練的方法。針對(duì)上述算法,以WHTC 工況數(shù)據(jù)以及萬有數(shù)據(jù)為輸入,進(jìn)行了對(duì)比實(shí)驗(yàn),根據(jù)實(shí)驗(yàn)結(jié)果顯示,本文使用的方法在穩(wěn)態(tài)工況與瞬態(tài)工況均有良好表現(xiàn),瞬態(tài)工況下較傳統(tǒng)的BP 模型精度提高了54.3%,穩(wěn)態(tài)工況下較傳統(tǒng)的BP 模型精度提高了49.81%,從而證明本算法預(yù)測(cè)NOx 排放的高精準(zhǔn)度以及良好的泛化性。