尚前明,楊 燁,王 瀟,曹 召,鄧曉光
(武漢理工大學(xué) 能源與動力工程學(xué)院,湖北 武漢 430063)
當(dāng)前船舶柴油機故障診斷面臨的一大問題是故障特征的發(fā)現(xiàn),由于船舶柴油機的特定工作環(huán)境使得獲得大量有效的故障非常困難。而常規(guī)的分類算法包括神經(jīng)網(wǎng)絡(luò)都依賴于大量的樣本統(tǒng)計數(shù)據(jù),當(dāng)訓(xùn)練樣本數(shù)量有限時,很難保障模型有著較好的泛化性能。支持向量機算法(SVM)算法通過核函數(shù)將特征空間映射到Hilbert高維空間,有效的降低了模型的VC維,滿足了結(jié)構(gòu)化風(fēng)險原則,非常適合訓(xùn)練樣本數(shù)量較小的學(xué)習(xí)情況[1]。
SVM是Vapnik等人基于統(tǒng)計學(xué)理論的結(jié)構(gòu)風(fēng)險最小化規(guī)則提出的,其算法本質(zhì)上是凸二次規(guī)劃問題。神經(jīng)網(wǎng)絡(luò)的算法極值解有可能是局部最優(yōu)值,而SVM算法的極值解就是最優(yōu)解,這就使得SVM算法有著較強的學(xué)習(xí)能力。另外SVM有著很強的推廣能力使得在訓(xùn)練樣本很少的情況下依然能在測試集中得到很小的預(yù)測誤差。
由于船舶柴油機特定的工作環(huán)境使其故障數(shù)據(jù)不易獲得,而SVM算法可以從小樣本訓(xùn)練集中學(xué)習(xí),因此將SVM算法應(yīng)用到只有較小訓(xùn)練樣本的船舶柴油機故障診斷中非常合適。算法的實現(xiàn)主要分為模型訓(xùn)練和故障識別2個階段,具體步驟如下。
1)模型訓(xùn)練過程。主要是讓SVM算法根據(jù)兩類故障樣本的特征值和標(biāo)簽值找到支持向量進而確定最優(yōu)分類超平面。
(1)搜集船舶柴油機的故障數(shù)據(jù)和正常數(shù)據(jù),根據(jù)專家知識建立起訓(xùn)練樣本集和測試集[Xi,Yi],Yi∈(-1,1)。
(2)根據(jù)Mercer定理選擇合適的核函數(shù),根據(jù)所選擇的核函數(shù)對訓(xùn)練樣本進行預(yù)處理。
(3)模型訓(xùn)練,根據(jù)找出的支持向量SV建立最優(yōu)分類超平面,得到分類決策函數(shù)f(x)。
2)故障識別。根據(jù)訓(xùn)練好的二分類SVM函數(shù)對測試數(shù)據(jù)進行分類。
(1)將測試數(shù)據(jù)輸入到訓(xùn)練好的SVM模型中,得出特征數(shù)據(jù)X的輸出結(jié)果。
(2)利用指示函數(shù)將輸出結(jié)果f(x)歸在(-1,1)范圍內(nèi),做出判斷決策。
最原始SVM算法是一種二分類算法,本質(zhì)上是通過兩類訓(xùn)練樣本劃分出一條邊界,使兩類樣本最大程度的遠離分離邊界。因此要將SVM算法應(yīng)用到多分類故障診斷中,需要在原始的算法上進行一定的改進。目前比較常用的SVM算法解決多分類問題的思路主要有以下2種。
2)OVA方法,即將訓(xùn)練樣本分為一對多的類型,這種方法只需要訓(xùn)練m個分類器,但是存在訓(xùn)練樣本不均衡的問題。這種方法雖然簡單有效,但是可能存在有些樣本一直得不到正確分類,即存在分類陰影問題。
這里采用一種適合船舶柴油機帶故障優(yōu)先級的2PTMC算法來解決多分類問題[2]。該方法屬于第二類OVA方法的思想構(gòu)造分類器,根據(jù)故障本身特性將故障分為不同優(yōu)先級。第一級SVM分類器輸入全部訓(xùn)練樣本,把第一優(yōu)先級的故障分出,然后剩下的樣本輸入第二級SVM分類器進行分類,以此類推直到最后一級分類器,完成全部k類故障樣本區(qū)分?;赟VM的2PTMC算法結(jié)構(gòu)如圖1所示,下面給出2PTMC算法的具體實現(xiàn)步驟。
圖1 2PTMC算法結(jié)構(gòu)示意圖
當(dāng)需要解決的是一個m類的分類問題時,訓(xùn)練數(shù)據(jù)樣本集為(x1,y1),(x2,y2),…,(xi,yi),其中x∈Rn,y∈[1,2,…,m]。這里定義一個2PTMC結(jié)構(gòu)元組:(F,SVM,TS,P),具體每個元素的含義如下所示。
F=(f1,f2,…,fi,…,fm),F(xiàn)表示所有的二叉樹終止點集合,由f1,f2,…,fi,…,fm待識別的m個可能的故障數(shù)據(jù)集所組成,正常狀態(tài)的數(shù)據(jù)集也包括在內(nèi),與圖中的正常、故障1、故障2等所對應(yīng)。
P=(p1,p2,…,pi,…,pm),P表示故障分類的優(yōu)先級組合,決定了SVM的排序方式。一般情況下,優(yōu)先級根據(jù)故障發(fā)生的頻率來排序,故障發(fā)生頻率比較高的優(yōu)先級大,發(fā)生頻率低的優(yōu)先級較小。
SVM=(svm1,svm2,…,svmi,…,svmm-1),SVM表示所有svm分類器的組合,當(dāng)存在m類分類問題時,需要m-1個svm分類模型,其中第i個svm分類器處理的是故障優(yōu)先級為pi的分類問題。
作為船舶核心動力裝置的船舶柴油機長期工作在高溫、高壓的惡劣環(huán)境下,并且存在運動部件結(jié)構(gòu)復(fù)雜、振源多的特點。這就使得船舶柴油機一旦發(fā)生故障,不好確定故障具體位置,稍不留意還可能影響船舶正常運營,甚至造成更大的經(jīng)濟損失,危機船員生命安全[3]。傳統(tǒng)的故障診斷方法一般有油液分析法、振動信號分析法、轉(zhuǎn)動信號法和熱工參數(shù)分析法等。船舶柴油機的熱工參數(shù)比較容易采集,并且熱工參數(shù)可直接反應(yīng)出船舶柴油機的工作狀態(tài)變化,因此可以采用熱工參數(shù)對船舶柴油機進行故障診斷。本文數(shù)據(jù)集來自某船舶MAN B&W 7K98MC型船舶柴油機,該型號船舶柴油機為大型2沖程柴油機,廣泛應(yīng)用于大型船舶上,主要技術(shù)參數(shù)如表1所示。
根據(jù)所采集數(shù)據(jù)的主要故障和MAN B&W 7K98MC型船舶柴油機比較容易發(fā)生的故障綜合考慮,選取壓氣機故障、中冷器效率下降、噴油器堵塞、排氣管臟堵幾種故障模式進行故障分類診斷,驗證基于SVM的2PTMC算法在船舶柴油機故障診斷上的可行性。這里根據(jù)所采集數(shù)據(jù)的不同故障發(fā)生頻率進行優(yōu)先級排序(不同柴油機可能不同),具體排序方式如表2所示。
表1 MAN B&W 7K98MC型柴油機的主要技術(shù)參數(shù)
表2 故障優(yōu)先級分級表
部分訓(xùn)練樣本集如表3所示(這里由于頁面尺寸原因只放上前7維數(shù)據(jù),實際上有15維)。
表3 部分訓(xùn)練樣本數(shù)據(jù)集
1)模型訓(xùn)練。訓(xùn)練SVM分類器采用Python語言編寫程序,調(diào)用Python庫函數(shù)中的SVM函數(shù)使得編程變得簡單可行。SVM模型中核函數(shù)的應(yīng)用可將有限的線性不可分的特征維度映射到更高的維度已獲得更好的分類效果。比較常用的核函數(shù)有高斯核、線性核、多項式核等。這里選用高斯核函數(shù),作為一種經(jīng)典的魯棒徑向集核,高斯核有著較好的魯棒性,抗干擾能力較強。其數(shù)學(xué)公式如下:
k(x,y)=exp(-δ‖x-y‖2),
其中超參數(shù)δ的選取極為重要,δ的大小影響SVM的分類效果,當(dāng)δ的取值分別為1、10、100時分類效果如圖2所示。
圖2 δ值為1、10、100的分類效果圖
由圖2可知,隨著δ的增大,分類邊界變得越來越復(fù)雜,最后分類邊界變成一個個獨立的小區(qū)域。由此可見δ太大,容易造成過擬合問題(即模型的泛化性能變差),所以δ的選取不能太大。
按照上述的故障優(yōu)先級分別訓(xùn)練SVM分類器,由于實驗數(shù)據(jù)過多且步驟大多一致,這里只給出第一級和最后一級SVM分類器訓(xùn)練結(jié)果。
(1)第一級SVM分類器。訓(xùn)練樣本為全部樣本,其中正常數(shù)據(jù)樣本20組,其他4類故障樣本每種20組,全部訓(xùn)練樣本為100組。訓(xùn)練采用高斯核函數(shù),在1~10范圍內(nèi)根據(jù)試驗選取δ的取值。結(jié)果顯示,當(dāng)δ=3時可以獲得比較穩(wěn)定的支持向量(SV)個數(shù),為了防止模型過擬合,這里選取δ=3。第一級SVM分類結(jié)果如表4所示。
表4 δ =3時第一級SVM訓(xùn)練結(jié)果
(2)第四級SVM分類器。訓(xùn)練數(shù)據(jù)為壓氣機故障、中冷器效率下降兩類故障訓(xùn)練樣本集,每種故障20組,共40組訓(xùn)練數(shù)據(jù)。分類結(jié)果如表5所示。
表5 δ=3時第四級SVM訓(xùn)練結(jié)果
2)模型診斷。這里采用50組測試數(shù)據(jù)對模型進行驗證,訓(xùn)練結(jié)果如表6所示。
表6 測試結(jié)果
由表6可知,只有在第二級分類時出現(xiàn)2個錯誤和第三級分類時出現(xiàn)1個錯誤。出現(xiàn)錯誤的原因可能是測試集本身含有噪聲或者數(shù)據(jù)集本身錯誤,但模型整體分類精確度很高,可以達到分類要求。另外根據(jù)測試樣本數(shù)量可以直觀看出,相比傳統(tǒng)的OVO和OVA多分類模式,2PTMC多分類方法的樣本重復(fù)率是最小的,隨著數(shù)據(jù)量的增加,2PTMC算法的優(yōu)勢更加明顯。
船舶柴油機由于其特定的工作環(huán)境和復(fù)雜的結(jié)構(gòu)組成使得其故障原因難以發(fā)現(xiàn)和故障數(shù)據(jù)難以獲得。船舶柴油機熱工參數(shù)的變化可以大體反映其工作過程,本文引用了一種適合小樣本決策的基于SVM的多故障診斷算法,并利用此算法根據(jù)熱工故障對船舶柴油機進行故障診斷。結(jié)果表明該方法有效可行,相比于傳統(tǒng)的SVM多分類算法,基于2PTMC的多故障分類方法識別精度很高,而且重復(fù)樣本訓(xùn)練次數(shù)明顯減少。