吳濱 屠思遠(yuǎn) 孫晨驁 顧曉峰
(江南大學(xué) 物聯(lián)網(wǎng)技術(shù)應(yīng)用教育部工程研究中心,無(wú)錫 214122)
ARM平臺(tái)下高精度柴油機(jī)故障診斷系統(tǒng)設(shè)計(jì)*
吳濱 屠思遠(yuǎn) 孫晨驁 顧曉峰
(江南大學(xué) 物聯(lián)網(wǎng)技術(shù)應(yīng)用教育部工程研究中心,無(wú)錫 214122)
針對(duì)傳統(tǒng)方法難以精確診斷柴油機(jī)的故障問(wèn)題,基于嵌入式ARM平臺(tái)設(shè)計(jì)了一個(gè)高精度的柴油機(jī)故障診斷系統(tǒng)。提出一種改進(jìn)的人工蜂群算法并以此優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練故障樣本,得到一組精確度較高的故障模型參數(shù)。在ARM平臺(tái)上以該模型參數(shù)進(jìn)行運(yùn)算診斷獲得故障類型。結(jié)果表明,改進(jìn)的人工蜂群算法克服了基本人工蜂群算法易陷入局部最優(yōu)的缺點(diǎn),提高了故障診斷結(jié)果的精確度。
隨著汽車技術(shù)的不斷發(fā)展,傳統(tǒng)的柴油機(jī)故障診斷方法如故障樹診斷法精度較低,瞬間轉(zhuǎn)速波動(dòng)診斷法成本太高,已不能滿足現(xiàn)代汽車技術(shù)的要求,因此基于專家系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、模糊理論等算法的現(xiàn)代診斷技術(shù)應(yīng)運(yùn)而生[1~3]。專家系統(tǒng)需要存儲(chǔ)空間來(lái)存放知識(shí)庫(kù),而且其推理過(guò)程效率較低;模糊理論的模糊規(guī)則直接影響診斷的準(zhǔn)確度,而模糊規(guī)則的設(shè)定需要較強(qiáng)的經(jīng)驗(yàn);神經(jīng)網(wǎng)絡(luò)具有自學(xué)習(xí)、并行分布計(jì)算、結(jié)構(gòu)簡(jiǎn)單和易于實(shí)現(xiàn)的優(yōu)點(diǎn),且可用網(wǎng)絡(luò)節(jié)點(diǎn)的連接模擬神經(jīng)元結(jié)構(gòu)實(shí)現(xiàn)非線性映射功能,明顯優(yōu)于其它方法[3]。但是,神經(jīng)網(wǎng)絡(luò)具有容易陷入局部最優(yōu)的缺點(diǎn),導(dǎo)致診斷精度較低。因此,本文嘗試采用改進(jìn)的人工蜂群(Artificial Bee Colony,ABC)算法對(duì)神經(jīng)網(wǎng)絡(luò)算法進(jìn)行優(yōu)化,并以此在Advanced RISC Machines(ARM)平臺(tái)上實(shí)現(xiàn)一個(gè)高精度的柴油機(jī)故障診斷系統(tǒng)。
2.1 Back Propagation(BP)神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),主要特點(diǎn)為信號(hào)向前傳遞,誤差反向傳播。在信號(hào)向前傳遞過(guò)程中,輸入信號(hào)從輸入層經(jīng)隱含層處理后到達(dá)輸出層,每一層由若干節(jié)點(diǎn)組成。如果輸出層得不到期望輸出,則進(jìn)行誤差反向傳播,并根據(jù)當(dāng)前誤差調(diào)整權(quán)值和閾值,使BP神經(jīng)網(wǎng)絡(luò)的輸出不斷逼近期望輸出[4],其結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意
圖1中X1,X2,…,Xn是BP神經(jīng)網(wǎng)絡(luò)的輸入值,Y1,Y2,…,Ym是BP神經(jīng)網(wǎng)絡(luò)的輸出值,wij和wjk是BP神經(jīng)網(wǎng)絡(luò)的權(quán)值。隱含層第j個(gè)節(jié)點(diǎn)的輸出值為Hj,輸出層第k個(gè)節(jié)點(diǎn)的輸出值為Ok[5]:
式中,f為隱含層激勵(lì)函數(shù);aj為隱含層當(dāng)前節(jié)點(diǎn)的閾值;l為隱含層節(jié)點(diǎn)數(shù);bk為輸出層當(dāng)前節(jié)點(diǎn)的閾值。
根據(jù)網(wǎng)絡(luò)輸出O和期望輸出Y計(jì)算誤差e:
根據(jù)誤差e更新后的BP神經(jīng)網(wǎng)絡(luò)[6]權(quán)值為wije和wjke,閾值為aje和bke:
式中,η為學(xué)習(xí)速率。
系統(tǒng)診斷結(jié)果的精度取決于故障模型的精度,而故障模型由神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值決定。BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果無(wú)法滿足系統(tǒng)精度要求,所以采用優(yōu)化算法優(yōu)化權(quán)值和閾值來(lái)提高精度。
2.2ABC算法
ABC算法是一種模擬蜂群采蜜行為的仿生智能算法[7],具有較強(qiáng)的全局搜索能力,在眾多領(lǐng)域都得到了應(yīng)用[8~10]。人工蜂群由雇傭蜂、跟隨蜂和偵查蜂3組蜜蜂組成。首先,初始化過(guò)程隨機(jī)產(chǎn)生一組解,雇傭蜂進(jìn)行全局搜索,更新解的信息并反饋給跟隨蜂;然后,跟隨蜂選擇其中一個(gè)蜜源并在其周圍進(jìn)行局部搜索,如果在設(shè)定的搜索次數(shù)limit內(nèi)未搜索到更優(yōu)解,則放棄該解,同時(shí)雇傭蜂變?yōu)閭刹榉?,并隨機(jī)產(chǎn)生一個(gè)新的解[11]。隨機(jī)產(chǎn)生解的過(guò)程為:
式中,xi表示第i個(gè)解;M和N為搜索空間的上、下限。雇傭蜂和跟隨蜂的搜索過(guò)程為:
式中,vi為新的解;φ為[-1,1]間的隨機(jī)數(shù),決定xi的生成范圍。
跟隨蜂選擇部分優(yōu)質(zhì)解的過(guò)程依賴于一個(gè)相關(guān)于解的概率值,計(jì)算過(guò)程為:
式中,fiti為xi對(duì)應(yīng)的適應(yīng)度;SN為初始化解的個(gè)數(shù)。
2.3 改進(jìn)ABC算法
通過(guò)對(duì)基本ABC算法的研究發(fā)現(xiàn),蜂群按照式(9)進(jìn)行的搜索過(guò)程完全是隨機(jī)選取的,降低了算法的搜索效率和精度。因此,考慮引入混沌變量和趨藥性思想,使蜂群能向更優(yōu)解方向搜索。
單個(gè)細(xì)菌的趨藥性操作分為選擇移動(dòng)方向和確定移動(dòng)距離[12],因此可將基本ABC算法中的式(9)分解為以下兩步:
式(11)和式(12)分別代表翻轉(zhuǎn)和前進(jìn),Li表示翻轉(zhuǎn)過(guò)程的移動(dòng)步長(zhǎng)。通過(guò)式(11)確定蜂群的搜索方向后,按照式(12)不斷前進(jìn),直至搜索不到更優(yōu)的解。
在此過(guò)程中,式(11)的翻轉(zhuǎn)也是隨機(jī)的,所以引入混沌變量,利用混沌變量的遍歷性使其更快地翻轉(zhuǎn)到優(yōu)質(zhì)解方向[13],其表達(dá)式為:
2.4 故障診斷算法完整流程
采用改進(jìn)的ABC優(yōu)化神經(jīng)網(wǎng)絡(luò)算法的具體步驟如下:
a.設(shè)定最大迭代次數(shù)itmax,趨化行為中步長(zhǎng)Ns,判斷雇傭蜂是否陷入停滯的參數(shù)limit,設(shè)置混沌序列長(zhǎng)度K,解的維數(shù)D,解的數(shù)量SN及穩(wěn)定收斂精度為1.0×10-13。
b.生成Logistic混沌變量序列,根據(jù)式(8)隨機(jī)產(chǎn)生SN個(gè)可行解。
c.根據(jù)神經(jīng)網(wǎng)絡(luò)計(jì)算每個(gè)解的適應(yīng)度(對(duì)應(yīng)故障診斷精確度)。
d.對(duì)每個(gè)雇傭蜂根據(jù)式(13)進(jìn)行翻轉(zhuǎn)操作,根據(jù)式(12)進(jìn)行前進(jìn)操作,然后計(jì)算并比較適應(yīng)度,如果得到改善則繼續(xù)進(jìn)行前進(jìn)操作,直至適應(yīng)度不再改善或達(dá)到最大前進(jìn)步數(shù)Ns。
e.對(duì)每個(gè)跟隨蜂根據(jù)式(10)計(jì)算概率,選擇優(yōu)質(zhì)解,然后執(zhí)行與步驟c中與雇傭蜂相同的操作,并記錄未更新次數(shù)。
f.檢查步驟d中未更新次數(shù)是否達(dá)到設(shè)定值limit,若達(dá)到,則根據(jù)式(8)產(chǎn)生一個(gè)新的解替代原來(lái)的解;若沒有達(dá)到,則繼續(xù)進(jìn)行迭代運(yùn)算。記錄并更新最優(yōu)解。
g.檢查該次迭代是否達(dá)到設(shè)定的穩(wěn)定收斂精度,若達(dá)到,則結(jié)束迭代循環(huán);否則繼續(xù)迭代。
h.檢查迭代次數(shù)是否達(dá)到最大迭代次數(shù)itmax,若達(dá)到,則輸出最優(yōu)解并將最優(yōu)權(quán)值和閾值寫入ARM代碼;否則返回步驟c。
以尾氣數(shù)據(jù)診斷柴油發(fā)動(dòng)機(jī)失火故障為例,在ARM平臺(tái)上實(shí)現(xiàn)診斷系統(tǒng)。尾氣中HC、CO2、O2和CO的濃度在幾種常見的失火故障情況下變化明顯,因此以該4種氣體的相對(duì)含量作為診斷系統(tǒng)的輸入,具體診斷規(guī)則和歸一化處理后的故障樣本[14]分別列于表1和表2,其中H和L分別代表高和低;CO含量高于2%為H,低于1%為L(zhǎng);CO2含量高于16%為H,低于13%為L(zhǎng);HC含量高于150×10-6為H,低于100×10-6為L(zhǎng);O2含量高于2%為H,低于1%為L(zhǎng)。
表1 不同尾氣含量與6種柴油機(jī)故障之間的關(guān)系
3.1 訓(xùn)練故障模型
本系統(tǒng)需要先在Matlab中根據(jù)故障樣本,以改進(jìn)的ABC優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練故障模型。具體參數(shù)設(shè)定為:itmax=100,Ns=3,limit=10,D=inN×hidN+hidN+ hidN×outN+outN,SN=D+20,K=SN+20,其中inN、hidN、outN分別表示BP神經(jīng)網(wǎng)絡(luò)輸入層、隱含層、輸出層的節(jié)點(diǎn)數(shù),此處設(shè)為inN=4、hidN=9、outN=6。
根據(jù)算法隨機(jī)選取表2中18組數(shù)據(jù)作為訓(xùn)練樣本,另外12組作為測(cè)試數(shù)據(jù)尋找最優(yōu)的故障模型,并進(jìn)行30次獨(dú)立試驗(yàn),取其迭代過(guò)程中模型精確度(解的適應(yīng)度)的平均值得到進(jìn)化曲線,如圖2所示。以BP神經(jīng)網(wǎng)絡(luò)和基本ABC優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練故障模型,得到的進(jìn)化曲線如圖3和圖4所示。
圖2 基于改進(jìn)ABC-BP算法的精確度進(jìn)化曲線
圖3 基于BP神經(jīng)網(wǎng)絡(luò)算法的精確度進(jìn)化曲線
可以看出,迭代次數(shù)對(duì)計(jì)算進(jìn)行會(huì)產(chǎn)生影響,如果迭代次數(shù)較少,數(shù)據(jù)尚未收斂,數(shù)據(jù)根據(jù)此時(shí)的模型計(jì)算,則錯(cuò)誤可能性較大;但是基于性能考慮,訓(xùn)練過(guò)程在PC端實(shí)現(xiàn),可以輸出訓(xùn)練曲線圖,只有當(dāng)曲線收斂于某一個(gè)穩(wěn)定值時(shí)才認(rèn)為模型是穩(wěn)定可靠的。由于樣本過(guò)少,BP神經(jīng)網(wǎng)絡(luò)算法的收斂精度低,導(dǎo)致最終診斷結(jié)果的精確度不理想。
圖4 基于基本ABC-BP算法的精確度進(jìn)化曲線
基本ABC-BP算法明顯提高了收斂精度,但由于ABC算法已陷入局部最優(yōu),診斷結(jié)果的精確度仍不夠理想。相比優(yōu)化前文獻(xiàn)[14]中的算法測(cè)試故障診斷為91.67%的精度,文中提出的改進(jìn)ABC優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法得到的精確度最高可達(dá)95%;此外,由于訓(xùn)練過(guò)程為PC端實(shí)現(xiàn),嵌入式中只是通過(guò)多線程對(duì)一組數(shù)據(jù)根據(jù)特征值進(jìn)行匹配,對(duì)計(jì)算效率基本沒有影響。因此,最終將改進(jìn)ABC-BP算法優(yōu)化后的參數(shù)定義為常數(shù)組寫入Flash。
3.2 系統(tǒng)實(shí)現(xiàn)
故障診斷系統(tǒng)基于SMARTARM2400工控開發(fā)板,在LPC2478微處理器上移植UC/OS-II V2.52版本操作系統(tǒng),通過(guò)CAN總線采集汽車行駛狀態(tài)參數(shù)進(jìn)行故障診斷,并將診斷結(jié)果與實(shí)時(shí)數(shù)據(jù)通過(guò)通用分組無(wú)線業(yè)務(wù)(General Packet Radio Service,GPRS)發(fā)送到上位機(jī),實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)與故障診斷。系統(tǒng)框架結(jié)構(gòu)如圖5所示。
圖5 診斷系統(tǒng)框架結(jié)構(gòu)示意
UC/OS操作系統(tǒng)對(duì)任務(wù)的調(diào)度按照任務(wù)優(yōu)先級(jí)的高低進(jìn)行[15],將系統(tǒng)所有任務(wù)按其優(yōu)先級(jí)從高到低排列依次為:采樣任務(wù)(Task0)、數(shù)據(jù)預(yù)處理任務(wù)(Task1)、故障診斷任務(wù)(Task2)、數(shù)據(jù)發(fā)送任務(wù)(Task3)。Task0負(fù)責(zé)從CAN總線實(shí)時(shí)采集傳感器數(shù)據(jù);Task1負(fù)責(zé)數(shù)據(jù)濾波和歸一化處理;Task2為將預(yù)處理后的數(shù)據(jù)經(jīng)過(guò)以最優(yōu)閾值和權(quán)值為模型的BP神經(jīng)網(wǎng)絡(luò)計(jì)算而得到故障編號(hào)的過(guò)程;Task3負(fù)責(zé)將最后的診斷結(jié)果和濾波后的數(shù)據(jù)發(fā)送到上位機(jī)。系統(tǒng)軟件流程如圖6所示。
圖6 系統(tǒng)軟件流程
3.3 系統(tǒng)驗(yàn)證
通過(guò)CANScope總線分析儀模擬發(fā)送油壓低(故障編號(hào)3)情況下的故障報(bào)文,如圖7所示。其中,CO、CO2、HC和O2對(duì)應(yīng)的幀ID分別為000、001、002和003,有效數(shù)據(jù)位都為Byte0、Byte1。CO、CO2、O2的百分比含量和HC的含量計(jì)算公式為:
式中,factor=10 000/65 535。
圖7 故障報(bào)文結(jié)果
經(jīng)過(guò)系統(tǒng)診斷之后,通過(guò)GPRS模塊把診斷結(jié)果及采集的傳感器數(shù)據(jù)發(fā)送到上位機(jī),收到的結(jié)果如表3所列。可知,該結(jié)果與CANScope發(fā)送的數(shù)據(jù)相符。
表3 上位機(jī)收到的診斷結(jié)果
依次發(fā)送12個(gè)故障報(bào)文,發(fā)現(xiàn)系統(tǒng)能正確診斷出11個(gè)故障,正確率達(dá)到92%。進(jìn)行Matlab仿真時(shí)隨機(jī)選取了18組樣本,根據(jù)選取樣本的不同,正確診斷的故障數(shù)目在11個(gè)與12個(gè)之間變動(dòng)。最后,由30次試驗(yàn)得到的診斷結(jié)果精確度的平均值達(dá)到95%,與Matlab仿真結(jié)果一致。結(jié)果表明,在ARM平臺(tái)上實(shí)現(xiàn)的故障診斷系統(tǒng)由于采用了改進(jìn)ABC優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法得到的故障模型具有較高的診斷精確度。
基于ARM平臺(tái)實(shí)現(xiàn)了一種高精度的柴油發(fā)動(dòng)機(jī)故障診斷系統(tǒng)。通過(guò)引入混沌變量和趨藥性改進(jìn)了ABC算法,以改進(jìn)的ABC優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法得到了精確度較高的故障模型參數(shù)。在SMARTARM2400工控開發(fā)板上驗(yàn)證了系統(tǒng)的可行性,測(cè)試結(jié)果與仿真結(jié)果相符,表明系統(tǒng)故障診斷結(jié)果的精確度得到了提高。
1 馬善偉,樂(lè)偉正,呂健,等.柴油機(jī)故障診斷技術(shù)綜述.上海第二工業(yè)大學(xué)學(xué)報(bào),2008,25(2):122~128.
2 李建偉,汪成亮,周亞鑫.專家系統(tǒng)在飛機(jī)故障診斷與維護(hù)指導(dǎo)系統(tǒng)中的實(shí)際應(yīng)用.計(jì)算機(jī)應(yīng)用與軟件,2009,26(5):166~168.
3 楊慧,鄧征.基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)的飛機(jī)突發(fā)故障診斷研究.計(jì)算機(jī)工程與設(shè)計(jì),2014,5(3):1010~1015.
4 秦興生,胡覺亮,工佐華.基于神經(jīng)網(wǎng)絡(luò)集成的軟件故障預(yù)測(cè)及試驗(yàn)分析.計(jì)算機(jī)工程與應(yīng)用,2014,50(10):44~47,56.
5 史峰,王小川,郁磊,等.Matlab神經(jīng)網(wǎng)絡(luò)30個(gè)案例分析.北京:北京航空航天大學(xué)出版社,2010.
6 Pi Erxu,Mantri Nitin,Ngai Sai Ming.BP-ANN for fitting the temperature-germination model and its application in predicting sowing time and region for bermudagrass.PLoS ONE,2013,8(12):1~11.
7 Karaboga D.An artificial bee colony(ABC)algorithm for nu?meric function optimization.Indiana:Proceedings of IEEE Searm Intelligence Symposium Indianapolis,2006:651~656.
8 Pawar P,Rao R,Davim J.Optimization of process parameters of milling process using particle swarm optimization and ar?tificial bee colony algorithm.Proceedings of the Internation?al Conference on Advances in Mechanical Engineering, 2008.
9 Ponton J W,Klemes J.Alternatives to neural networks for in?ferential measurement.Computers and Chemical Engineer?ing,1993,17:42~47.
10 Singh A.An artificial bee colony algorithm for the leaf-con?strained minimum spanning tree problem.Applied Soft Computing,2009,9:625~631.
11 王慧穎,劉建軍,王全洲.改進(jìn)的人工蜂群算法在函數(shù)優(yōu)化問(wèn)題中的應(yīng)用.計(jì)算機(jī)工程與應(yīng)用,2012,48(19):36~39.
12 孟偉東,楊凡,黃永春.基于均勻設(shè)計(jì)的改進(jìn)細(xì)菌群體趨藥性算法.計(jì)算機(jī)工程與應(yīng)用,2011,47(14):59~61.
13 馮斌,王璋,孫俊.基于混沌變異算子的小生境量子粒子群算法.計(jì)算機(jī)應(yīng)用與軟件,2009,26(1):50~52.
14 付金.基于GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的汽車發(fā)動(dòng)機(jī)失火故障診斷研究:[學(xué)位論文].沈陽(yáng):東北大學(xué),2009.
15 唐富華,唐景利,郭銀景.基于嵌入式技術(shù)的移動(dòng)醫(yī)療監(jiān)護(hù)系統(tǒng)的研制.計(jì)算機(jī)工程與應(yīng)用,2005,41(13):201~203.
(責(zé)任編輯 晨 曦)
修改稿收到日期為2016年10月1日。
Design of High Precision Fault Diagnosis System for Diesel Engine Based on ARM Platform
Wu Bin,Tu Siyuan,Sun Chenao,Gu Xiaofeng
(Engineering Research Center of IOT Technology Applications(Ministry of Education),Jiangnan University, Wuxi 214122)
It is difficult to diagnose the faults of diesel engines with traditional method,to address this issue,a high precision diesel engine fault diagnosis system based on the embedded ARM platform was designed.An improved artificial bee colony algorithm(ABC)was proposed,which was used to optimize the training fault samples with back propagation(BP) artificial neural networks algorithm for obtaining a set of fault model parameters with high diagnosis precision.The fault type was obtained by making calculations with these parameters on the ARM platform.Experiment results show that the improved ABC algorithm can overcome the shortcoming of easily falling into local optimum of the basic ABC algorithm, helping to increase the accuracy of fault diagnosis results.
Diesel engine,Fault diagnosis,ARM platform,Artificial bee colony algorithm
柴油機(jī) 故障診斷 ARM平臺(tái) 人工蜂群算法
U461
A
1000-3703(2016)04-0058-05
江蘇省交通科學(xué)研究計(jì)劃項(xiàng)目(2012X08-2);中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)資金(JUSRP51510);
江蘇省普通高校研究生實(shí)踐創(chuàng)新計(jì)劃項(xiàng)目(SJZZ_0148)。