畢曉君,柳長源,,盧迪
(1.哈爾濱工程大學信息與通信工程學院,黑龍江哈爾濱150001;2.哈爾濱理工大學電氣與電子工程學院,黑龍江哈爾濱150080)
發(fā)動機故障在整車故障中占據(jù)19.8%,故障率是最高的,配件損耗和維修費用也為全車之最[1]。發(fā)動機故障的形成過程與機械狀況、氣缸內的燃燒情況及負載狀況直接相關,采用定期維修的方法難以發(fā)現(xiàn)這些故障,容易造成重大交通事故。發(fā)動機失火故障可通過分析尾氣排放中各類氣體的檢測數(shù)據(jù)進行預判,從而提前排除故障隱患。由于尾氣排放數(shù)據(jù)與發(fā)動機故障之間存在一定的非線性關系,因此可以利用機器學習算法建立它們之間的對應關系,從而實現(xiàn)智能故障診斷。尾氣檢測法近年來開始受到國內外專家的重視,越來越多的學者開始把人工神經網絡、支持向量機(support vector machine,SVM)等算法應用到故障診斷系統(tǒng),并取得了一定的效果[2]。但由于每次機器訓練結果的波動較大,容易出現(xiàn)過學習或欠學習現(xiàn)象,使判斷結果出現(xiàn)偏差,診斷識別結果的準確性和魯棒性依然有待提高。本文提出的發(fā)動機故障檢測方法是基于相關向量機(relevance vector machine,RVM)的故障識別技術,利用粒子群算法(particle swarm optimization,PSO)優(yōu)化RVM核函數(shù)的超參數(shù),通過“一對一”分類器建立尾氣傳感器數(shù)據(jù)中各氣體成分與發(fā)動機運行狀態(tài)之間的關系,提高了故障診斷的精度和可靠性。
根據(jù)汽車故障診斷學可知,汽車尾氣中含有發(fā)動機汽缸燃燒過程中的信息。發(fā)動機失火故障與汽車尾氣成分中HC、CO2、CO和O2等氣體的體積分數(shù)有著相對應的關系,因此可通過汽車尾氣中各氣體體積含量來判斷發(fā)動機所處的工作狀態(tài),并根據(jù)氣體與故障的對應關系完成失火故障診斷[3]。根據(jù)這一理論,可以利用機器學習方法對先驗數(shù)據(jù)樣本進行學習訓練,將訓練好的機器診斷模型用于發(fā)動機故障的分析診斷。
尾氣檢測的原理是根據(jù)不同氣體具有吸收不同波長紅外線的特性[4],CO主要吸收的是4.7μm附近的紅外線,CO2主要吸收4.2μm附近的紅外線,HC主要吸收3.4μm附近的紅外線。據(jù)此,可讓紅外線通過一定量的汽車尾氣,根據(jù)對比某一波長的紅外線經過尾氣前后能量的變化,測定尾氣中某類氣體的含量。而O2則采用電化學法,排放結果用濃度來表示。
某種汽油發(fā)動機在正常工作狀況下的數(shù)值如表1 所示[5]。
表1 發(fā)動機尾氣排放的正常范圍Table 1 The normal range of engine exhaust gas
如果某一種或幾種氣體含量超出表1中的范圍,即對應汽車發(fā)動機處在某種不正常的工作狀態(tài),氣體含量數(shù)據(jù)與某一類別的故障相對應。在非正常狀態(tài)下,各氣體在尾氣中的含量變化為:
1)HC的讀數(shù)高,說明燃油沒有充分燃燒。
2)CO的含量過高,表明燃油供給過多、空氣供給過少;CO的含量過低,則表明混合氣體過稀。
3)CO2是可燃混合氣燃燒的產物,其高低反映出混合氣燃燒的好壞,即燃燒效率。
4)O2的含量是反映混合氣空燃比的最好指標,是最有用的診斷數(shù)據(jù)之一。
通過尾氣分析,可以檢測到以下幾個主要方面的故障:混合氣過濃或過稀、二次空氣噴射系統(tǒng)失靈、噴油器故障、進氣歧管真空泄漏、空氣泵故障、汽缸蓋襯墊損壞、EGR閥故障、排氣系統(tǒng)泄漏、點火系統(tǒng)提前角過大等。
RVM算法是英國劍橋學者Tipping在2001年提出的一種新的機器學習方法[6],該方法基于貝葉斯統(tǒng)計理論,通過“核函數(shù)”將低維空間的非線性問題映射到高維空間并轉化成線性問題,核函數(shù)的巧妙之處是映射過程并未增加很多的計算量。與相對更早提出的SVM算法相比,RVM算法中核函數(shù)的選擇不受Mercer條件的限制,由于其解的稀疏性和概率性,理論上講是機器學習方法中泛化性能最突出的算法,對小樣本的機器學習尤其有效。關于RVM算法的理論模型,在文獻[6]中有詳細的闡述。該方法得到泛化性能優(yōu)秀的稀疏解,是建立在合適的核函數(shù)選擇及參數(shù)設置的基礎上。為了得到最佳設置,本文對RVM超參數(shù)的優(yōu)化采用了PSO算法,并將PSO-RVM模型應用于RVM發(fā)動機故障診斷之中。
本文提出的診斷方法可以分為3個主要過程:
1)預處理:對尾氣樣本的先驗數(shù)據(jù)進行歸一化處理,并建立4種氣體含量與發(fā)動機狀態(tài)之間的對應關系;
2)機器訓練:選擇合適的核函數(shù)并對其超參數(shù)進行PSO優(yōu)化訓練,建立合適的RVM模型;
3)故障診斷:采用“一對一”RVM分類器進行待測樣本故障診斷并輸出結果。
發(fā)動機智能故障診斷系統(tǒng)結構如圖1所示。
圖1 診斷及預報系統(tǒng)結構Fig.1 The structure of diagnosis and prediction system
系統(tǒng)輸出結果為某一種狀態(tài)類型:間歇性失火、高油氣比、低油氣比、點火過遲、點火過早和正常共計6種發(fā)動機狀態(tài)。
常用的RVM核函數(shù)有4種[8]:
線性核函數(shù):
多項式核函數(shù):
高斯徑向基(RBF)核函數(shù):
Sigmoid核函數(shù):
選擇合適的核函數(shù)是該方法能成功使用的關鍵,通過測試驗證訓練,比較各自泛化性能,本文選擇RBF核函數(shù)作為故障診斷的RVM模型。
RVM算法中超參數(shù)的選擇對RVM算法的分類準確率起著決定性的作用,以往文獻常用的參數(shù)尋優(yōu)方法多采用人為列舉尋優(yōu)、交叉驗證等方式設置參數(shù),但是此類方法所需時間過長,同時還存在容易陷入局部最優(yōu)的問題[7]。粒子群算法是一種高效的全局尋優(yōu)算法,可用于機器學習算法的參數(shù)優(yōu)化設置。本文采用PSO算法優(yōu)化RVM算法的超參數(shù)設置,從而建立故障診斷的機器模型。
2.3.1 PSO優(yōu)化算法
粒子群優(yōu)化算法(particle swarm optimization,PSO),是由 Kennedy和 Eberhart于1995年首次提出的一種基于迭代的尋優(yōu)算法[8]。該算法是對鳥群社會行為的模擬,PSO算法和遺傳算法類似,是一種基于群體(population)的優(yōu)化算法,每個粒子通過和其他粒子進行信息交互,調整自己的進化方向,以及避免陷入局部最優(yōu);同時,PSO算法采用不同于遺傳算法的隨機搜索策略,操作起來要比遺傳算法簡便得多,因此在解決某些優(yōu)化問題時顯示出更卓越的性能。
本文利用粒子群優(yōu)化算法優(yōu)化相關向量機中的拉格朗日乘子,通過利用PSO尋找拉格朗日乘子這個向量滿足RVM中約束條件的各個分量的最優(yōu)值,使得兩分類之間的間隔距離最大,從而構造出最優(yōu)超平面。初始化粒子群時,應不斷判斷直到各粒子隨機的初始值滿足所優(yōu)化的相關向量機中的約束條件。PSO優(yōu)化相關向量機的拉格朗日乘子a通過調用編寫的M文件子程序pso.m實現(xiàn)。每個粒子a的每個分量通過自身學習和向其他粒子學習,不斷更新自身速度和位置,達到全局最優(yōu)。
2.3.2 超參數(shù)優(yōu)化過程
整個優(yōu)化訓練過程的具體步驟如下:
1)初始化粒子群:確定粒子群的規(guī)模,初始位置和速度,根據(jù)約束條件對每個粒子初始化一個滿足條件的拉格朗日因子a的值。
2)計算每一個粒子的目標函數(shù)值,即所要優(yōu)化函數(shù)的值。
3)更新每一個粒子a的位置局部最優(yōu)值和全局最優(yōu)值。
4)更新每一個粒子的飛行速度和位置,并根據(jù)飛行空間的限制調整其速度。
5)判斷是否滿足終止條件,滿足條件跳出循環(huán),并計算相關系數(shù),否則返回的步驟2),直到滿足迭代的次數(shù)。
6)返回最優(yōu)a的值,并將最優(yōu)化的參數(shù)傳遞給RVM模型。
經過超參數(shù)優(yōu)化訓練后得到的RVM模型,即可用于數(shù)據(jù)的分類。PSO對RVM算法的參數(shù)優(yōu)化過程如圖2所示。
圖2 PSO算法流程圖Fig.2 Diagram of PSO algorithm
由于有6類發(fā)動機故障,因此故障診斷是一個多分類問題。標準RVM算法只能解決2類模式識別,即是否存在故障,但無法判定故障類型。為了進行多類判別,這里采用了文獻[9]中的“一對一”投票分類方法,利用二分類器的組合來實現(xiàn)多類模式識別。該分類器在目前RVM多分類方法中應用最廣泛,且分類精度相對較高[9-10]。圖3中所示的6個類別ABCDEF分別代表6種發(fā)動機狀態(tài)。
圖3 基于RVM的“一對一”算法Fig.3 “One Against One”algorithm based on RVM
對待分類樣本進行模式判別時,首先在AB 2類中判斷該樣本與哪一類更相似,如果接近B,就在B所在的類別投一票。然后依次是 AC、AD、AE、AF、BC、…、EF,每次2類判別都對與待測樣本更接近的類別進行投票,最后各類票數(shù)累加,得票最高的類別即待測樣本所在的類別,再輸出該類的故障信息即完成故障診斷過程。如果出現(xiàn)最高票2類相等的情況,則對這2類進行一次單獨判斷。
該分類器是多個2類判別分類的組合,把k=6類故障原因中任意2類構造成一個二值分類器,這樣可以構造k(k-1)/2=15個二類分類器,構成多類別分類器。對于樣本的k個特征,輸入樣本特征參數(shù)向量:X=(x1,x2,...,xk),輸出類別參數(shù)向量:Y= (y1,y2,...,yk) ,其中:yi∈{ 1,2,3,4,5,6}分別對應間歇性失火、高油氣比、低油氣比、點火過遲、點火過早和正常共計6種發(fā)動機狀態(tài)。
為了驗證本文提出的基于PSO-RVM的發(fā)動機故障診斷技術的實際性能及應用效果,下面將該方法與BP神經網絡、遺傳優(yōu)化的BP網絡(GA-BP)、遺傳優(yōu)化的支持向量機(GA-SVM)這幾種近年來提出的尾氣故障檢測技術進行對比仿真實驗。
實驗所采用的樣本數(shù)據(jù)來自表2中的30個測試樣本。
對傳感器檢測到的各類氣體含量數(shù)據(jù)是其凈含量,首先需要將它們進行預處理,把它們轉換成百分比濃度,再進行歸一化處理[5,11],歸一化后的數(shù)據(jù)與故障類型編號的對應關系如表2所示。
從表中數(shù)據(jù)可知,尾氣中各類氣體含量與發(fā)動機的某種狀態(tài)呈非線性對應關系。
表2 發(fā)動機尾氣排放的正常范圍Table 2 The normal range of engine exhaust gas
1)把樣本數(shù)據(jù)分成2組,將編號為1~24的樣本作為訓練樣本,編號為25~30的6個樣本作為待識別數(shù)據(jù)。
2)利用訓練樣本對RVM分類器進行訓練。
3)用訓練好的RVM分類器對待識別樣本進行分類,輸出發(fā)動機狀態(tài)分類結果。
4)把每個樣本的機器識別結果與數(shù)據(jù)表中實際狀態(tài)進行比較,并用表格記錄分類正確或錯誤。
5)改變訓練和測試樣本,將編號為7~30的樣本作為訓練樣本,編號為1~6的樣本作為待識別樣本,重復2)~4);再將編號為7~12的樣本作為測試樣本,其余樣本為訓練樣本…;這樣可以用30個樣本完成5組獨立的實驗。
這樣得到的每組實驗訓練和測試的樣本都不相同,能保證全部30個樣本的測試結果互不相關,測試結果具有獨立性。
本文提出的PSO-RVM方法在實驗中測試的30個樣本中只有1例分類錯誤,正確率為96.7%。把文獻[3,5,11]中的方法作為對比參考,對比測試的統(tǒng)計結果如表3所示。
表3 不同發(fā)動機故障診斷方法比較Table 3 Comparison of different engine fault diagnosis methods %
從表3中的數(shù)據(jù)可以看出,本文所提出的方法在汽車發(fā)動機失火故障檢測中準確率是最高的。實際上,神經網絡通常在大量樣本訓練時才能保證機器學習性能,而本文中的樣本每類故障只有5個數(shù)據(jù),顯然是小樣本問題。由于BP和GA-BP都是基于神經網絡的方法,因此訓練的泛化性能和魯棒性都無法保障,每次訓練結果偏差也很大。GA-SVM雖然在這方面有所改善,但在識別率和每次訓練誤差方面,仍不如本文提出的PSO-RVM診斷方法。
發(fā)動機轉速較高時,傳感器檢測的數(shù)據(jù)中噪聲強度會有所增加,此時傳統(tǒng)方法診斷結果誤差會隨之迅速增大,下面繼續(xù)通過實驗比較一下不同檢測方法在含一定強度噪聲的數(shù)據(jù)檢測中的表現(xiàn)。在同樣的檢測條件下,改變噪聲強度,得到的診斷結果如表4所示。
表4 不同發(fā)動機故障診斷方法比較Table 4 Comparison of different engine fault diagnosismethods
試驗結果表明,在傳感器檢測數(shù)據(jù)含噪聲時,PSO-RVM方法的故障診斷明顯好于對比實驗。目前各類發(fā)動機的尾氣樣本數(shù)據(jù)都是在固定轉速狀態(tài)下測得的,不同轉速下各氣體在尾氣中的含量會有一定的差別,因此現(xiàn)有的方法都無法進行實時動態(tài)故障診斷。為將新方法進一步推廣,可采集在每個變速檔位的行駛狀態(tài)樣本數(shù)據(jù)進行單獨訓練,這樣在不同檔位上調用各自對應的RVM模型(區(qū)別在超參數(shù)不同),即可實現(xiàn)不同轉速下的動態(tài)檢測,實時顯示發(fā)動機的運行狀態(tài)。
利用汽車尾氣成分分析法,通過相關向量機訓練歸一化的發(fā)動機狀態(tài)樣本數(shù)據(jù),建立了參數(shù)優(yōu)化的RVM模型,利用該模型進行了發(fā)動機故障檢測實驗,驗證了該方法的有效性。實驗結果表明,采用PSO-RVM方法的發(fā)動機故障診斷技術比傳統(tǒng)的基于神經網絡、GA-BP、GA-SVM等方法的診斷結果更加準確,魯棒性好,泛化能力進一步加強,具有較好的可推廣性和一定的實用價值。
[1]吳廣.汽車故障診斷系統(tǒng)研究[D].長春:吉林大學,2009:1-5.WU Guang.Study on diagnostic system of automobile[D].Changchun:Jilin University,2009:1-5.
[2]KIHOON C,SINGH S,KODALIA,et al.Novel classifier fusion approaches for fault diagnosis[J].IEEE Transactions on Instrumentation and Measurement,2009,58(3):602-611.
[3]LU Di,DOU Wenjuan.Fault diagnosis of engine misfire based on genetic optimized support vector machine[C]//The 6thInternational Forum on Strategic Technology.Harbin,China,2011.
[4]趙遠,張宇.光電信號檢測原理與技術[M].北京:機械工業(yè)出版社,2005:33-35.
[5]付金.基于GA優(yōu)化BP神經網絡的汽車發(fā)動機失火故障診斷研究[D].沈陽:東北大學,2009:11-13.FU Jin.Research on automobile engine fault diagnosis based on GA-BP neural network[D].Shenyang:Northeastern U-niversity,2009:11-13.
[6]TIPPING M E.Sparse Bayesian learning and the relevance vector machine[J].Machine Learning Research,2001:211-244.
[7]趙櫚.相關向量機優(yōu)化方法的研究[D].南寧:廣西大學,2012:7-16.ZHAO Lyu.Optimization methodology research of relevance vector machine[D].Nanning:Guangxi University,2012:7-16.
[8]吳良海.基于粒子群優(yōu)化相關向量機的網絡入侵檢測[J].微電子學與計算機,2010,27(5):181-184.WU Lianghai.Network intrusion detection based on relevance vectormachine optimized by particle swarm optimization algorithm[J].Microelectronics and Computer,2010,27(5):181-184.
[9]IOANNISP,THEODOROSD,MARK A,et al.Multiclass relevance vector machines:sparsity and accuracy[J].IEEE Transactions on Neural Networks,2010,21(10):1588-1598.
[10]柳長源,畢曉君,韋琦.基于向量機學習算法的多模式分類器的研究及改進[J].電機與控制學報,2013,17(1):114-118.LIU Changyuan,BI Xiaojun,WEIQi.Research and improvement of multicass pattern classifier based on vector machine learning algorithm[J].Journal of Electric Machines and Control,2013,17(1):114-118.
[11]朱惠蓮.基于神經網絡的汽車發(fā)動機故障診斷系統(tǒng)[D].楊凌:西北農林科技大學,2007:24-31.ZHU Huilian.The fault diagnostician system of automobile engine based on artificial neural network[D].Yangling:Northwest A & FUniversity,2007:24-31.