吳濱 屠思遠 孫晨驁 顧曉峰
(江南大學 物聯(lián)網(wǎng)技術應用教育部工程研究中心,無錫 214122)
ARM平臺下高精度柴油機故障診斷系統(tǒng)設計*
吳濱 屠思遠 孫晨驁 顧曉峰
(江南大學 物聯(lián)網(wǎng)技術應用教育部工程研究中心,無錫 214122)
針對傳統(tǒng)方法難以精確診斷柴油機的故障問題,基于嵌入式ARM平臺設計了一個高精度的柴油機故障診斷系統(tǒng)。提出一種改進的人工蜂群算法并以此優(yōu)化BP神經(jīng)網(wǎng)絡算法訓練故障樣本,得到一組精確度較高的故障模型參數(shù)。在ARM平臺上以該模型參數(shù)進行運算診斷獲得故障類型。結(jié)果表明,改進的人工蜂群算法克服了基本人工蜂群算法易陷入局部最優(yōu)的缺點,提高了故障診斷結(jié)果的精確度。
隨著汽車技術的不斷發(fā)展,傳統(tǒng)的柴油機故障診斷方法如故障樹診斷法精度較低,瞬間轉(zhuǎn)速波動診斷法成本太高,已不能滿足現(xiàn)代汽車技術的要求,因此基于專家系統(tǒng)、神經(jīng)網(wǎng)絡、模糊理論等算法的現(xiàn)代診斷技術應運而生[1~3]。專家系統(tǒng)需要存儲空間來存放知識庫,而且其推理過程效率較低;模糊理論的模糊規(guī)則直接影響診斷的準確度,而模糊規(guī)則的設定需要較強的經(jīng)驗;神經(jīng)網(wǎng)絡具有自學習、并行分布計算、結(jié)構(gòu)簡單和易于實現(xiàn)的優(yōu)點,且可用網(wǎng)絡節(jié)點的連接模擬神經(jīng)元結(jié)構(gòu)實現(xiàn)非線性映射功能,明顯優(yōu)于其它方法[3]。但是,神經(jīng)網(wǎng)絡具有容易陷入局部最優(yōu)的缺點,導致診斷精度較低。因此,本文嘗試采用改進的人工蜂群(Artificial Bee Colony,ABC)算法對神經(jīng)網(wǎng)絡算法進行優(yōu)化,并以此在Advanced RISC Machines(ARM)平臺上實現(xiàn)一個高精度的柴油機故障診斷系統(tǒng)。
2.1 Back Propagation(BP)神經(jīng)網(wǎng)絡
BP神經(jīng)網(wǎng)絡是一種多層前饋神經(jīng)網(wǎng)絡,主要特點為信號向前傳遞,誤差反向傳播。在信號向前傳遞過程中,輸入信號從輸入層經(jīng)隱含層處理后到達輸出層,每一層由若干節(jié)點組成。如果輸出層得不到期望輸出,則進行誤差反向傳播,并根據(jù)當前誤差調(diào)整權值和閾值,使BP神經(jīng)網(wǎng)絡的輸出不斷逼近期望輸出[4],其結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡結(jié)構(gòu)示意
圖1中X1,X2,…,Xn是BP神經(jīng)網(wǎng)絡的輸入值,Y1,Y2,…,Ym是BP神經(jīng)網(wǎng)絡的輸出值,wij和wjk是BP神經(jīng)網(wǎng)絡的權值。隱含層第j個節(jié)點的輸出值為Hj,輸出層第k個節(jié)點的輸出值為Ok[5]:
式中,f為隱含層激勵函數(shù);aj為隱含層當前節(jié)點的閾值;l為隱含層節(jié)點數(shù);bk為輸出層當前節(jié)點的閾值。
根據(jù)網(wǎng)絡輸出O和期望輸出Y計算誤差e:
根據(jù)誤差e更新后的BP神經(jīng)網(wǎng)絡[6]權值為wije和wjke,閾值為aje和bke:
式中,η為學習速率。
系統(tǒng)診斷結(jié)果的精度取決于故障模型的精度,而故障模型由神經(jīng)網(wǎng)絡的權值和閾值決定。BP神經(jīng)網(wǎng)絡的訓練結(jié)果無法滿足系統(tǒng)精度要求,所以采用優(yōu)化算法優(yōu)化權值和閾值來提高精度。
2.2ABC算法
ABC算法是一種模擬蜂群采蜜行為的仿生智能算法[7],具有較強的全局搜索能力,在眾多領域都得到了應用[8~10]。人工蜂群由雇傭蜂、跟隨蜂和偵查蜂3組蜜蜂組成。首先,初始化過程隨機產(chǎn)生一組解,雇傭蜂進行全局搜索,更新解的信息并反饋給跟隨蜂;然后,跟隨蜂選擇其中一個蜜源并在其周圍進行局部搜索,如果在設定的搜索次數(shù)limit內(nèi)未搜索到更優(yōu)解,則放棄該解,同時雇傭蜂變?yōu)閭刹榉?,并隨機產(chǎn)生一個新的解[11]。隨機產(chǎn)生解的過程為:
式中,xi表示第i個解;M和N為搜索空間的上、下限。雇傭蜂和跟隨蜂的搜索過程為:
式中,vi為新的解;φ為[-1,1]間的隨機數(shù),決定xi的生成范圍。
跟隨蜂選擇部分優(yōu)質(zhì)解的過程依賴于一個相關于解的概率值,計算過程為:
式中,fiti為xi對應的適應度;SN為初始化解的個數(shù)。
2.3 改進ABC算法
通過對基本ABC算法的研究發(fā)現(xiàn),蜂群按照式(9)進行的搜索過程完全是隨機選取的,降低了算法的搜索效率和精度。因此,考慮引入混沌變量和趨藥性思想,使蜂群能向更優(yōu)解方向搜索。
單個細菌的趨藥性操作分為選擇移動方向和確定移動距離[12],因此可將基本ABC算法中的式(9)分解為以下兩步:
式(11)和式(12)分別代表翻轉(zhuǎn)和前進,Li表示翻轉(zhuǎn)過程的移動步長。通過式(11)確定蜂群的搜索方向后,按照式(12)不斷前進,直至搜索不到更優(yōu)的解。
在此過程中,式(11)的翻轉(zhuǎn)也是隨機的,所以引入混沌變量,利用混沌變量的遍歷性使其更快地翻轉(zhuǎn)到優(yōu)質(zhì)解方向[13],其表達式為:
2.4 故障診斷算法完整流程
采用改進的ABC優(yōu)化神經(jīng)網(wǎng)絡算法的具體步驟如下:
a.設定最大迭代次數(shù)itmax,趨化行為中步長Ns,判斷雇傭蜂是否陷入停滯的參數(shù)limit,設置混沌序列長度K,解的維數(shù)D,解的數(shù)量SN及穩(wěn)定收斂精度為1.0×10-13。
b.生成Logistic混沌變量序列,根據(jù)式(8)隨機產(chǎn)生SN個可行解。
c.根據(jù)神經(jīng)網(wǎng)絡計算每個解的適應度(對應故障診斷精確度)。
d.對每個雇傭蜂根據(jù)式(13)進行翻轉(zhuǎn)操作,根據(jù)式(12)進行前進操作,然后計算并比較適應度,如果得到改善則繼續(xù)進行前進操作,直至適應度不再改善或達到最大前進步數(shù)Ns。
e.對每個跟隨蜂根據(jù)式(10)計算概率,選擇優(yōu)質(zhì)解,然后執(zhí)行與步驟c中與雇傭蜂相同的操作,并記錄未更新次數(shù)。
f.檢查步驟d中未更新次數(shù)是否達到設定值limit,若達到,則根據(jù)式(8)產(chǎn)生一個新的解替代原來的解;若沒有達到,則繼續(xù)進行迭代運算。記錄并更新最優(yōu)解。
g.檢查該次迭代是否達到設定的穩(wěn)定收斂精度,若達到,則結(jié)束迭代循環(huán);否則繼續(xù)迭代。
h.檢查迭代次數(shù)是否達到最大迭代次數(shù)itmax,若達到,則輸出最優(yōu)解并將最優(yōu)權值和閾值寫入ARM代碼;否則返回步驟c。
以尾氣數(shù)據(jù)診斷柴油發(fā)動機失火故障為例,在ARM平臺上實現(xiàn)診斷系統(tǒng)。尾氣中HC、CO2、O2和CO的濃度在幾種常見的失火故障情況下變化明顯,因此以該4種氣體的相對含量作為診斷系統(tǒng)的輸入,具體診斷規(guī)則和歸一化處理后的故障樣本[14]分別列于表1和表2,其中H和L分別代表高和低;CO含量高于2%為H,低于1%為L;CO2含量高于16%為H,低于13%為L;HC含量高于150×10-6為H,低于100×10-6為L;O2含量高于2%為H,低于1%為L。
表1 不同尾氣含量與6種柴油機故障之間的關系
3.1 訓練故障模型
本系統(tǒng)需要先在Matlab中根據(jù)故障樣本,以改進的ABC優(yōu)化BP神經(jīng)網(wǎng)絡算法訓練故障模型。具體參數(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)絡輸入層、隱含層、輸出層的節(jié)點數(shù),此處設為inN=4、hidN=9、outN=6。
根據(jù)算法隨機選取表2中18組數(shù)據(jù)作為訓練樣本,另外12組作為測試數(shù)據(jù)尋找最優(yōu)的故障模型,并進行30次獨立試驗,取其迭代過程中模型精確度(解的適應度)的平均值得到進化曲線,如圖2所示。以BP神經(jīng)網(wǎng)絡和基本ABC優(yōu)化BP神經(jīng)網(wǎng)絡算法訓練故障模型,得到的進化曲線如圖3和圖4所示。
圖2 基于改進ABC-BP算法的精確度進化曲線
圖3 基于BP神經(jīng)網(wǎng)絡算法的精確度進化曲線
可以看出,迭代次數(shù)對計算進行會產(chǎn)生影響,如果迭代次數(shù)較少,數(shù)據(jù)尚未收斂,數(shù)據(jù)根據(jù)此時的模型計算,則錯誤可能性較大;但是基于性能考慮,訓練過程在PC端實現(xiàn),可以輸出訓練曲線圖,只有當曲線收斂于某一個穩(wěn)定值時才認為模型是穩(wěn)定可靠的。由于樣本過少,BP神經(jīng)網(wǎng)絡算法的收斂精度低,導致最終診斷結(jié)果的精確度不理想。
圖4 基于基本ABC-BP算法的精確度進化曲線
基本ABC-BP算法明顯提高了收斂精度,但由于ABC算法已陷入局部最優(yōu),診斷結(jié)果的精確度仍不夠理想。相比優(yōu)化前文獻[14]中的算法測試故障診斷為91.67%的精度,文中提出的改進ABC優(yōu)化BP神經(jīng)網(wǎng)絡算法得到的精確度最高可達95%;此外,由于訓練過程為PC端實現(xiàn),嵌入式中只是通過多線程對一組數(shù)據(jù)根據(jù)特征值進行匹配,對計算效率基本沒有影響。因此,最終將改進ABC-BP算法優(yōu)化后的參數(shù)定義為常數(shù)組寫入Flash。
3.2 系統(tǒng)實現(xiàn)
故障診斷系統(tǒng)基于SMARTARM2400工控開發(fā)板,在LPC2478微處理器上移植UC/OS-II V2.52版本操作系統(tǒng),通過CAN總線采集汽車行駛狀態(tài)參數(shù)進行故障診斷,并將診斷結(jié)果與實時數(shù)據(jù)通過通用分組無線業(yè)務(General Packet Radio Service,GPRS)發(fā)送到上位機,實現(xiàn)實時監(jiān)測與故障診斷。系統(tǒng)框架結(jié)構(gòu)如圖5所示。
圖5 診斷系統(tǒng)框架結(jié)構(gòu)示意
UC/OS操作系統(tǒng)對任務的調(diào)度按照任務優(yōu)先級的高低進行[15],將系統(tǒng)所有任務按其優(yōu)先級從高到低排列依次為:采樣任務(Task0)、數(shù)據(jù)預處理任務(Task1)、故障診斷任務(Task2)、數(shù)據(jù)發(fā)送任務(Task3)。Task0負責從CAN總線實時采集傳感器數(shù)據(jù);Task1負責數(shù)據(jù)濾波和歸一化處理;Task2為將預處理后的數(shù)據(jù)經(jīng)過以最優(yōu)閾值和權值為模型的BP神經(jīng)網(wǎng)絡計算而得到故障編號的過程;Task3負責將最后的診斷結(jié)果和濾波后的數(shù)據(jù)發(fā)送到上位機。系統(tǒng)軟件流程如圖6所示。
圖6 系統(tǒng)軟件流程
3.3 系統(tǒng)驗證
通過CANScope總線分析儀模擬發(fā)送油壓低(故障編號3)情況下的故障報文,如圖7所示。其中,CO、CO2、HC和O2對應的幀ID分別為000、001、002和003,有效數(shù)據(jù)位都為Byte0、Byte1。CO、CO2、O2的百分比含量和HC的含量計算公式為:
式中,factor=10 000/65 535。
圖7 故障報文結(jié)果
經(jīng)過系統(tǒng)診斷之后,通過GPRS模塊把診斷結(jié)果及采集的傳感器數(shù)據(jù)發(fā)送到上位機,收到的結(jié)果如表3所列??芍摻Y(jié)果與CANScope發(fā)送的數(shù)據(jù)相符。
表3 上位機收到的診斷結(jié)果
依次發(fā)送12個故障報文,發(fā)現(xiàn)系統(tǒng)能正確診斷出11個故障,正確率達到92%。進行Matlab仿真時隨機選取了18組樣本,根據(jù)選取樣本的不同,正確診斷的故障數(shù)目在11個與12個之間變動。最后,由30次試驗得到的診斷結(jié)果精確度的平均值達到95%,與Matlab仿真結(jié)果一致。結(jié)果表明,在ARM平臺上實現(xiàn)的故障診斷系統(tǒng)由于采用了改進ABC優(yōu)化BP神經(jīng)網(wǎng)絡算法得到的故障模型具有較高的診斷精確度。
基于ARM平臺實現(xiàn)了一種高精度的柴油發(fā)動機故障診斷系統(tǒng)。通過引入混沌變量和趨藥性改進了ABC算法,以改進的ABC優(yōu)化BP神經(jīng)網(wǎng)絡算法得到了精確度較高的故障模型參數(shù)。在SMARTARM2400工控開發(fā)板上驗證了系統(tǒng)的可行性,測試結(jié)果與仿真結(jié)果相符,表明系統(tǒng)故障診斷結(jié)果的精確度得到了提高。
1 馬善偉,樂偉正,呂健,等.柴油機故障診斷技術綜述.上海第二工業(yè)大學學報,2008,25(2):122~128.
2 李建偉,汪成亮,周亞鑫.專家系統(tǒng)在飛機故障診斷與維護指導系統(tǒng)中的實際應用.計算機應用與軟件,2009,26(5):166~168.
3 楊慧,鄧征.基于自適應神經(jīng)網(wǎng)絡的飛機突發(fā)故障診斷研究.計算機工程與設計,2014,5(3):1010~1015.
4 秦興生,胡覺亮,工佐華.基于神經(jīng)網(wǎng)絡集成的軟件故障預測及試驗分析.計算機工程與應用,2014,50(10):44~47,56.
5 史峰,王小川,郁磊,等.Matlab神經(jīng)網(wǎng)絡30個案例分析.北京:北京航空航天大學出版社,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 王慧穎,劉建軍,王全洲.改進的人工蜂群算法在函數(shù)優(yōu)化問題中的應用.計算機工程與應用,2012,48(19):36~39.
12 孟偉東,楊凡,黃永春.基于均勻設計的改進細菌群體趨藥性算法.計算機工程與應用,2011,47(14):59~61.
13 馮斌,王璋,孫俊.基于混沌變異算子的小生境量子粒子群算法.計算機應用與軟件,2009,26(1):50~52.
14 付金.基于GA優(yōu)化BP神經(jīng)網(wǎng)絡的汽車發(fā)動機失火故障診斷研究:[學位論文].沈陽:東北大學,2009.
15 唐富華,唐景利,郭銀景.基于嵌入式技術的移動醫(yī)療監(jiān)護系統(tǒng)的研制.計算機工程與應用,2005,41(13):201~203.
(責任編輯 晨 曦)
修改稿收到日期為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
柴油機 故障診斷 ARM平臺 人工蜂群算法
U461
A
1000-3703(2016)04-0058-05
江蘇省交通科學研究計劃項目(2012X08-2);中央高?;究蒲袠I(yè)務費專項資金(JUSRP51510);
江蘇省普通高校研究生實踐創(chuàng)新計劃項目(SJZZ_0148)。