孟蓉歌 張春化 梁繼超
1.長安大學(xué)汽車學(xué)院,西安,7100642.陜西重型汽車有限公司,西安,710200
曲軸信號(hào)是燃油噴射正時(shí)控制的基準(zhǔn),僅靠曲軸的機(jī)械結(jié)構(gòu)無法精確判斷曲軸相位,燃油噴射控制精度不高。如60-2結(jié)構(gòu)的曲軸齒盤,其曲軸轉(zhuǎn)角所能識(shí)別的精度僅為6°,以6°曲軸轉(zhuǎn)角為依據(jù)進(jìn)行噴油控制精度明顯不夠,而目前可用于高精度噴油控制的電子編碼器多為進(jìn)口,價(jià)格昂貴。由此,有必要對曲軸信號(hào)脈寬進(jìn)行準(zhǔn)確預(yù)測,根據(jù)預(yù)測結(jié)果倍頻曲軸信號(hào),從而提高發(fā)動(dòng)機(jī)燃油噴射的控制精度。利用鎖相環(huán)與分頻器實(shí)現(xiàn)鎖相倍頻,硬件電路復(fù)雜,元器件的參數(shù)設(shè)計(jì)調(diào)整相對困難,同時(shí)信號(hào)的倍頻數(shù)也無法靈活設(shè)置。楊騏菲等[1]利用單片機(jī)實(shí)現(xiàn)了信號(hào)倍頻,馬志磊等[2]利用TC1728對曲軸信號(hào)進(jìn)行了判缸模式研究。這兩種方法中所用倍頻方式受單片機(jī)計(jì)數(shù)器位數(shù)的影響,脈寬預(yù)測精度受到限制。文獻(xiàn)[3-4]基于最小二乘算法實(shí)現(xiàn)了曲軸信號(hào)脈寬預(yù)測,這種方式預(yù)測精度較低且瞬態(tài)工況下脈寬預(yù)測的跟隨性較差。
對此,本文提出采用改進(jìn)粒子群優(yōu)化(PSO)-Elman神經(jīng)網(wǎng)絡(luò)的方法(以下簡稱“PSO-Elman算法”)對曲軸脈寬信號(hào)進(jìn)行預(yù)測。陳杰等[5]將PSO算法優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)用于短期電力負(fù)荷預(yù)測;張俊玲等[6]選用慣性權(quán)重線性遞減的PSO算法優(yōu)化了Elman神經(jīng)網(wǎng)絡(luò)并將其用于無模型控制中;顏宏文等[7]用關(guān)聯(lián)規(guī)則對PSO-Elman算法預(yù)測結(jié)果進(jìn)行修正,提高了算法的預(yù)測精度。這幾種采用PSO算法優(yōu)化Elman的方法沒有對算法陷入局部最優(yōu)的情況進(jìn)行處理,算法易出現(xiàn)早熟現(xiàn)象。本文針對基本PSO算法種群過早陷于當(dāng)前局部最優(yōu),未能對整個(gè)解空間進(jìn)行充分搜索的問題,通過改變慣性權(quán)重的修正方法使得PSO算法得到改進(jìn),改善了算法搜索的全局性,使算法能以較快速度跳出局部最優(yōu),提高網(wǎng)絡(luò)收斂速度。
x(k)=ψXc(k-1)
Xc(k)=f(WI1u(k-1)+WI2x(k))
y(k)=g(WLXc(k))
式中,f(·)、g(·)分別為隱含層與輸出層的激勵(lì)函數(shù);ψ為反饋層的自連接增益因子。
粒子群算法最初用于模擬鳥群覓食過程[8]。粒子群中的每個(gè)粒子代表問題的一個(gè)潛在解,粒子通過自身的個(gè)體認(rèn)知與群體中其他成員的社會(huì)認(rèn)知?jiǎng)討B(tài)地更新自己的速度與位置以優(yōu)化群體行為。粒子速度和位置更新公式為
vid(t+1)=w(t)vid(t)+c1r1(pid-xid(t))+
c2r2(pgd-xid(t))
(1)
xid(t+1)=xid(t)+γvid(t+1)
(2)
式中,vid、xid分別為粒子i的速度和位置;c1為粒子跟蹤個(gè)體歷史最優(yōu)的權(quán)重系數(shù);c2為粒子跟蹤社會(huì)認(rèn)知的權(quán)重系數(shù);pid、pgd為粒子個(gè)體和群體的歷史最優(yōu)位置;r1、r2為[0,1]內(nèi)的隨機(jī)數(shù);w為慣性權(quán)重。
慣性權(quán)重w和加速因子c1、c2是影響算法優(yōu)化性能的重要參數(shù),王東風(fēng)等[9]研究了不同參數(shù)組合對算法優(yōu)化性能的影響,推薦了一組固定參數(shù)組合和一種變化的參數(shù)設(shè)置方法。慣性權(quán)重w用于平衡粒子的全局搜索能力和局部搜索能力,w較大時(shí)算法具有全局收斂性,但運(yùn)算量較大,w較小時(shí)算法易收斂,但也易陷入局部最優(yōu)點(diǎn)。w一般按線性遞減算法取值[10]。帶壓縮因子的慣性權(quán)重能夠克服線性遞減算法的不足[11],但對算法陷入局部最優(yōu)沒有給出具體的解決方法。對此,本文提出根據(jù)算法迭代結(jié)果動(dòng)態(tài)設(shè)置慣性權(quán)重以改進(jìn)基本粒子群優(yōu)化的方法。將本次適應(yīng)度函數(shù)的值與上次進(jìn)行比較,若兩次適應(yīng)度值變化在0.01%內(nèi)則認(rèn)為算法本次陷入局部最優(yōu),陷入局部最優(yōu)的代數(shù)加1,否則算法未陷入局部最優(yōu),代數(shù)清零。算法求解過程中如果連續(xù)5代尋找到的最優(yōu)值變化在0.01%內(nèi)則認(rèn)為算法陷入局部最優(yōu)。算法未陷入局部最優(yōu)時(shí)慣性權(quán)重按線性遞減更新;算法陷入局部最優(yōu)時(shí)則根據(jù)陷入局部最優(yōu)的代數(shù)按比例增大慣性權(quán)重,以使算法盡快跳出局部最優(yōu)點(diǎn)。改進(jìn)PSO算法與PSO算法的主要區(qū)別在于對慣性權(quán)重的修正方法不同,如表1所示。
表1 PSO算法與改進(jìn)PSO算法慣性權(quán)重修正方法
改進(jìn)PSO-Elman神經(jīng)網(wǎng)絡(luò)步驟如下:
(1)采集輸入輸出樣本數(shù)據(jù),并進(jìn)行歸一化處理,創(chuàng)建Elman神經(jīng)網(wǎng)絡(luò)。
(2)根據(jù)Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)確定粒子群規(guī)模,初始化粒子速度、位置、慣性權(quán)重、加速因子及迭代次數(shù)。
(3)計(jì)算群體中各粒子的適應(yīng)度值及全局最優(yōu)適應(yīng)度值。采用誤差平方和函數(shù)為學(xué)習(xí)指標(biāo)函數(shù),即粒子的適應(yīng)度函數(shù)。適應(yīng)度值定義為
如果該粒子的當(dāng)前適應(yīng)度值優(yōu)于其歷史最優(yōu)位置的適應(yīng)度值,則更新該粒子個(gè)體最優(yōu)位置。如果所有粒子中個(gè)體最優(yōu)位置所對應(yīng)的適應(yīng)度值優(yōu)于當(dāng)前全局最優(yōu)適應(yīng)度值,則更新全局最優(yōu)位置。
(4)采用式(1)、式(2)對各粒子的速度和位置進(jìn)行更新,產(chǎn)生下一代粒子群。
(5)判斷算法是否陷入局部最優(yōu)。適應(yīng)度函數(shù)優(yōu)化過程中,若連續(xù)5代尋找到的最優(yōu)值變化在0.01%內(nèi),則認(rèn)為算法陷入局部最優(yōu)(陷入局部最優(yōu)的代數(shù)設(shè)為gJ),按w=w+gJ/0.1更新慣性權(quán)重,w最大取1.2,超出時(shí)則取1.2。若未陷入局部最優(yōu)則慣性權(quán)重按w=0.9-0.5g/M(g為迭代次數(shù),M為種群規(guī)模)進(jìn)行更新,w最小取0.68。
(6)判斷迭代次數(shù)是否到達(dá),到達(dá)則停止迭代;否則進(jìn)入步驟(3)重復(fù)。
(7)利用改進(jìn)PSO算法優(yōu)化所得參數(shù)(輸入層至隱層權(quán)值WI1、反饋層至隱層權(quán)值WI2、隱層至輸出層權(quán)值WL、隱層閾值與反饋層閾值)訓(xùn)練Elman神經(jīng)網(wǎng)絡(luò)。
(8)訓(xùn)練結(jié)果反歸一化,輸出。
實(shí)驗(yàn)用發(fā)動(dòng)機(jī)為一臺(tái)6缸增壓中冷YC6G270-30型柴油機(jī)。發(fā)動(dòng)機(jī)主要參數(shù)如表2所示。
表2 發(fā)動(dòng)機(jī)主要參數(shù)
穩(wěn)態(tài)工況下分別對650 r/min、1 000 r/min、1 200 r/min與2 000 r/min時(shí)的曲軸脈寬進(jìn)行預(yù)測,瞬態(tài)工況下對1 030 r/min波動(dòng)時(shí)的曲軸信號(hào)脈寬進(jìn)行預(yù)測。為便于確定粒子規(guī)模,每6個(gè)脈寬作為一組樣本數(shù)據(jù),前5個(gè)為輸入脈寬,第6個(gè)為預(yù)測脈寬。各工況下取訓(xùn)練樣本500組,測試樣本100組。將樣本數(shù)據(jù)歸一化后輸入所創(chuàng)建的Elman神經(jīng)網(wǎng)絡(luò)中。
網(wǎng)絡(luò)隱層傳遞函數(shù)取tansig和logsig,反向傳播函數(shù)取traingdx和trainlm,輸出層傳遞函數(shù)取tansig與purelin分別組合進(jìn)行預(yù)測。結(jié)果發(fā)現(xiàn)隱層傳遞函數(shù)取tansig或logsig對訓(xùn)練結(jié)果影響不大;反向傳播函數(shù)取trainlm時(shí)比traingdx訓(xùn)練結(jié)果精度稍有提高,但網(wǎng)絡(luò)訓(xùn)練時(shí)間明顯增長;輸出層傳遞函數(shù)取線性傳遞函數(shù)purelin時(shí),網(wǎng)絡(luò)訓(xùn)練精度明顯更高(相較采用tansig函數(shù))。最終選擇tansig為所設(shè)計(jì)網(wǎng)絡(luò)的隱層傳遞函數(shù),traingdx為反向傳遞函數(shù),purelin為輸出層傳遞函數(shù)。
圖2 預(yù)測結(jié)果均方差與隱層節(jié)點(diǎn)數(shù)關(guān)系Fig.2 The relationship between mean square error andthe number of hidden layer nodes
根據(jù)實(shí)際工程需要,網(wǎng)絡(luò)最大訓(xùn)練步數(shù)設(shè)為1 000,誤差容限取0.001。利用改進(jìn)PSO算法對Elman神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,各粒子由WI1、WI2、WL、輸入層閾值b1及輸出層網(wǎng)絡(luò)閾值b2組成,粒子編碼格式如圖3所示。
WI1WI2WLb1b2
圖3粒子編碼格式
Fig.3Codingformatofparticle
因此,網(wǎng)絡(luò)權(quán)值的個(gè)數(shù)為5×9+9+9×1=63個(gè),閾值為9+1=10個(gè),PSO算法粒子的長度為73。設(shè)定粒子個(gè)數(shù)為40,最大迭代次數(shù)為100,加速因子取c1=2.05、c2=0.5[13]。
2.3.1不同工況下脈寬預(yù)測結(jié)果比較
曲軸脈寬信號(hào)采樣周期為2.5 μs,穩(wěn)態(tài)工況下以怠速650r/min為例,其脈寬預(yù)測結(jié)果如圖4所示。其他穩(wěn)態(tài)轉(zhuǎn)速工況下可得相似的預(yù)測波形。
圖4 650 r/min穩(wěn)態(tài)工況脈寬預(yù)測結(jié)果Fig.4 Prediction result of engine speed under steady-state operating condition 650 r/min
瞬態(tài)工況下將1 030 r/min波動(dòng)時(shí)的轉(zhuǎn)速預(yù)測值與實(shí)際值進(jìn)行比較,結(jié)果如圖5所示。各工況下曲軸脈寬預(yù)測誤差結(jié)果見表3。
圖5 1 030 r/min瞬態(tài)工況轉(zhuǎn)速預(yù)測結(jié)果Fig 5 Prediction result of engine speed under transient operating condition 1 030 r/min
發(fā)動(dòng)機(jī)轉(zhuǎn)速(r/min)絕對誤差均值相對誤差(%)650(穩(wěn)態(tài))0.44780.05821000(穩(wěn)態(tài))0.50200.05371030(瞬態(tài))0.78910.07651200(穩(wěn)態(tài))0.60190.05012000(穩(wěn)態(tài))0.67390.0298
由表3可見,隨著發(fā)動(dòng)機(jī)轉(zhuǎn)速的增大,脈寬預(yù)測絕對誤差均值略有增大,怠速工況下絕對誤差均值最小,相對誤差隨著發(fā)動(dòng)機(jī)轉(zhuǎn)速的增加明顯減小。瞬態(tài)工況轉(zhuǎn)速在1 030 r/min波動(dòng)時(shí)脈寬預(yù)測絕對誤差與相對誤差均為最大。
2.3.2不同算法預(yù)測結(jié)果對比
為驗(yàn)證算法在小樣本情況下的預(yù)測能力,任取10個(gè)怠速工況下的連續(xù)采樣脈寬數(shù)據(jù),分別采用最小二乘算法、訓(xùn)練好的Elman神經(jīng)網(wǎng)絡(luò)、PSO-Elman神經(jīng)網(wǎng)絡(luò)及改進(jìn)PSO-Elman神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測,預(yù)測結(jié)果如圖6所示。脈寬預(yù)測絕對誤差均值見表4。
圖6 不同模型脈寬預(yù)測結(jié)果Fig.6 Prediction results of different models
算法絕對誤差均值最小二乘3.4256Elman1.5362PSO-Elman0.9397改進(jìn)PSO-Elman0.4982
圖7所示為脈寬預(yù)測相對誤差。
圖7 相對誤差結(jié)果比較Fig.7 Comparison of relative error
圖8為改進(jìn)PSO-Elman神經(jīng)網(wǎng)絡(luò)算法與PSO-Elman神經(jīng)網(wǎng)絡(luò)算法適應(yīng)度函數(shù)變化曲線。
圖8 適應(yīng)度曲線對比圖Fig.8 Comparison graph of adaptability curves betweenPSO-Elman and advanced PSO-Elman
由圖8可見,改進(jìn)PSO-Elman算法能夠以較快的速度跳出局部最優(yōu),經(jīng)13次迭代算法可達(dá)穩(wěn)定值,同時(shí)其收斂精度明顯高于PSO-Elman神經(jīng)網(wǎng)絡(luò)算法。由于PSO算法采用并行計(jì)算,同時(shí)受種群規(guī)模及維數(shù)影響,故文中所用神經(jīng)網(wǎng)絡(luò)均采用離線訓(xùn)練方式。
(1)改進(jìn)PSO-Elman神經(jīng)網(wǎng)絡(luò)算法能夠準(zhǔn)確預(yù)測發(fā)動(dòng)機(jī)曲軸脈寬信號(hào),可用于信號(hào)倍頻以提高發(fā)動(dòng)機(jī)噴油控制的精度。瞬態(tài)工況時(shí)因?yàn)榘l(fā)動(dòng)機(jī)加速度變化大,脈寬預(yù)測精度略低于穩(wěn)態(tài)。
(2)改進(jìn)PSO-Elman神經(jīng)網(wǎng)絡(luò)算法根據(jù)迭代陷入局部最優(yōu)的代數(shù)修改慣性權(quán)重使算法能夠以較短步長跳出局部最優(yōu),有效地提高了算法的收斂速度。改進(jìn)PSO-Elman神經(jīng)網(wǎng)絡(luò)算法預(yù)測精度明顯高于最小二乘、Elman神經(jīng)網(wǎng)絡(luò)與PSO-Elman神經(jīng)網(wǎng)絡(luò)算法的預(yù)測精度。
參考文獻(xiàn):
[1] 楊騏菲,申立中,王貴勇,等. 高壓共軌柴油機(jī)曲軸信號(hào)倍頻研究[J]. 科學(xué)技術(shù)與工程,2011,25(11):6065-6070.
YANG Qifei, SHEN Lizhong, WANG Guiyong, et al. Study of High Pressure Common Rail Diesel Crank Sensor Signal Frequency Multiplier[J]. Science Technology and Engineering,2011,25(11):6065-6070.
[2] 馬志磊,王貴勇,申立中. 基于TC1728的高壓共軌柴油機(jī)判缸研究[J]. 車用發(fā)動(dòng)機(jī),2015,2(1):6-16.
MA Zhilei, WANG Guiyong, SHEN Lizhong. Cylinder Detection for High-pressure Common Rail Diesel Engine Based on TC 1728[J]. Vehicle Engine,2015,2(1):6-16.
[3] WANG Junmin, SARLSHKAR J V. Engine Crankshaft Position Tracking Algorithms Applicable for Given Arbitrary Cam and Crank-shaft Position Signal Patterns[J]. SAE Technical Paper Series,2007-01-1597.
[4] LETEINTURIER P, BENNING J. Enhanced Engine Position Acquisition & Treatment[J]. SAE Technical Paper Series, 1999-01-0203.
[5] 陳杰,高翠云,胡翀. 基于PSO-Elman神經(jīng)網(wǎng)絡(luò)的短期電力負(fù)荷預(yù)測[J]. 安徽建筑大學(xué)學(xué)報(bào),2016,24(1):82-86.
CHEN Jie, GAO Cuiyun, HU Chong. Short-term Electric Load Forecasting Based on PSO-Elman Neural Network[J]. Journal of Anhui Institute of Architecture & Industry,2016,24(1):82-86.
[6] 張俊玲,陳增強(qiáng),張青. 基于粒子群優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)無模型控制[J]. 智能系統(tǒng)學(xué)報(bào),2016,11(1):49-54.
ZHANG Junling, CHEN Zengqiang, ZHANG Qing. Elman Model-free Control Method Based on Particle Swarm Optimization Algorithm [J]. CAAI Transactions on Intelligent Systems,2016,11(1):49-54.
[7] 顏宏文,鄒丹. 基于關(guān)聯(lián)規(guī)則的PSO-Elman短期風(fēng)速預(yù)測[J]. 計(jì)算機(jī)工程與應(yīng)用,2017(1):1-10.
YAN Hongwen, ZOU Dan. Short-term Wind Speed Forecasting Based on PSO-Elman Optimized by Association Rule[J]. Computer Engineering and Applications,2017(1):1-10.
[8] 干旭波,姚棟偉,吳鋒,等. 基于PSO算法的SCR尿素?zé)峤鈩?dòng)力學(xué)參數(shù)優(yōu)化[J]. 內(nèi)燃機(jī)工程,2016,37(3):83-93.
GAN Xubo, YAO Dongwei, WU Feng, et al. Kinetic Optimization of Urea-SCR Thermal Decomposition Based on PSO Algorithm[J]. Chinese Internal Combustion Engine Engineering,2016,37(3):83-93.
[9] 王東風(fēng),孟麗. 粒子群優(yōu)化算法的性能分析和參數(shù)選擇[J]. 自動(dòng)化學(xué)報(bào),2016,42(10):1552-1561.
WANG Dongfeng, MENG Li. Performance Analysis and Parameter Selection of PSO Algorithms[J]. Acta Automatica Sinica,2016,42(10):1552-1561.
[10] 張任,胥芳,陳教科,等. 基于PSO-RBF神經(jīng)網(wǎng)絡(luò)的鋰離子電池健康狀態(tài)預(yù)測[J]. 中國機(jī)械工程,2016,27(21):2975-2981.
ZHANG Ren, XU Fang, CHEN Jiaoke, et al. Li-ion Battery SOH Prediction Based on PSO-RBF Neural Network[J]. China Mechanical Engineering,2016,27(21):2975-2981.
[11] 黃平. 粒子群算法改進(jìn)及其在電子系統(tǒng)的應(yīng)用[D].廣州:華南理工大學(xué),2012.
HUANG Ping. Improved Particle Swarm Algorithm and Its Application in Power System[D]. Guangzhou: South China University of Technology,2012.
[12] 浦健,程靜. 基于PSO-Elman神經(jīng)網(wǎng)絡(luò)的汽輪機(jī)排汽焓在線預(yù)測計(jì)算[J]. 南京師范大學(xué)學(xué)報(bào)(工程技術(shù)版),2009,9(2):35-40.
PU Jian, CHENG Jing. Online Prediction and Calculation of Steam Turbine Exhaust Enthalpy Based on PSO-Elman Neural Network[J]. Journal of Nanjing Normal University(Natural Science Edition),2009,9(2):35-40.
[13] 陳波,潘海鵬,鄧志輝. 基于PSO優(yōu)化RBF神經(jīng)網(wǎng)絡(luò)的反應(yīng)釜故障診斷[J]. 中國機(jī)械工程,2012,23(18):2204-2207.
CHEN Bo, PAN Haipeng, DENG Zhihui. Application of PSO-based RBF Neural Network in Fault Diagnosis of CSTR[J]. China Mechanical Engineering,2012,23(18):2204-2207.