管業(yè)勤, 蔣祖華
(上海交通大學(xué) 機(jī)械與動(dòng)力工程學(xué)院,上海 200240)
機(jī)電設(shè)備隨著科技的發(fā)展和進(jìn)步日趨復(fù)雜,隨機(jī)性、繼發(fā)性、并發(fā)性、暴發(fā)性、隱蔽性等也已成為故障出現(xiàn)時(shí)所具備的性質(zhì)[1]。同時(shí),故障的出現(xiàn)方式更加復(fù)雜,多個(gè)故障同時(shí)發(fā)生或相互作用的情況更加常見(jiàn)。
傳統(tǒng)的研究將多重故障診斷轉(zhuǎn)化為一類(lèi)由各個(gè)組成故障對(duì)應(yīng)于征兆數(shù)據(jù)集合的類(lèi)劃分問(wèn)題[2]。現(xiàn)有的智能診斷方法大多針對(duì)具體的工程問(wèn)題展開(kāi),如文獻(xiàn)[3]針對(duì)航空發(fā)動(dòng)機(jī)的并發(fā)多故障診斷問(wèn)題,運(yùn)用自聯(lián)想記憶神經(jīng)網(wǎng)絡(luò),改進(jìn)輸入數(shù)據(jù)不完整或充滿噪聲情況下的診斷效果,但其特點(diǎn)對(duì)于相似故障的判別能力較弱。文獻(xiàn)[4]建立基于置信規(guī)則的復(fù)合式診斷系統(tǒng)架構(gòu)以應(yīng)對(duì)無(wú)耦合關(guān)聯(lián)和發(fā)生沖突的船用柴油機(jī)并發(fā)多故障,擴(kuò)大系統(tǒng)可診斷的故障范圍,其缺點(diǎn)是沒(méi)有考慮可能并發(fā)的故障之間如沖突、耦合等更為復(fù)雜的聯(lián)系。文獻(xiàn)[5]針對(duì)電動(dòng)機(jī)故障診斷復(fù)雜,訓(xùn)練困難等難題,擴(kuò)展了單故障診斷方法,采用子徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)構(gòu)造組態(tài)式故障診斷模型一種故障模式。文獻(xiàn)[6]針對(duì)傳統(tǒng)模糊診斷規(guī)則庫(kù)缺乏聯(lián)想和自學(xué)習(xí)能力的缺點(diǎn),采用模糊神經(jīng)網(wǎng)絡(luò)構(gòu)造智能診斷系統(tǒng),將遺傳算法和蟻群算法用于系統(tǒng)參數(shù)優(yōu)化訓(xùn)練中,提高了診斷系統(tǒng)的泛化能力和收斂速度,不足之處在于該方法僅針對(duì)多種相互獨(dú)立故障,難以應(yīng)對(duì)復(fù)雜的多故障并發(fā)情形?,F(xiàn)有研究大多聚焦于提取表征故障類(lèi)型的有效故障特征,或著力于建立基于特征信息的模式分類(lèi)系統(tǒng)。
機(jī)器學(xué)習(xí)作為新興的技術(shù)手段,在故障診斷領(lǐng)域大放異彩。遞歸神經(jīng)網(wǎng)絡(luò)是機(jī)器學(xué)習(xí)最常用到的模型,遞歸神經(jīng)網(wǎng)絡(luò)中常用的Elman網(wǎng)絡(luò),其輸出不僅取決于當(dāng)前的輸入,而且與以前的網(wǎng)絡(luò)內(nèi)部狀態(tài)有關(guān),契合復(fù)雜系統(tǒng)的實(shí)時(shí)故障診斷要求[7]。故障診斷情境具有歷史數(shù)據(jù)稀疏的特點(diǎn),結(jié)構(gòu)簡(jiǎn)單的支持向量機(jī)(support vector machine,SVM)算法適合解決此類(lèi)小樣本模式識(shí)別問(wèn)題[8]。文獻(xiàn)[9]結(jié)合極限學(xué)習(xí)機(jī)(extreme learning machine, ELM)算法與糾錯(cuò)輸出碼(error corrected output code, ECOC),建立基于故障特征的模式分類(lèi)系統(tǒng),準(zhǔn)確識(shí)別故障原因。因而,本文提出了基于Elman網(wǎng)絡(luò)和ECOC-SVM的機(jī)電系統(tǒng)并發(fā)多故障診斷方法,在線推送診斷結(jié)果,助力維修決策。
如圖1,本文提出的并發(fā)多故障診斷方法分為離線建模和在線診斷2個(gè)部分:離線建模:1)待診斷故障的原因初判模型;2)疑似故障的篩選模型。在線診斷:1)運(yùn)用初判模型構(gòu)造疑似故障原因集合;2)利用篩選模型識(shí)別故障原因。
圖1 多故障并發(fā)診斷方法示意Fig.1 Fault diagnostic method for multiple concurrent fault modes
本文采用基于Elman網(wǎng)絡(luò)的組態(tài)式模型對(duì)故障類(lèi)別進(jìn)行初判。如圖2所示,幾個(gè)相對(duì)獨(dú)立的子模型組成多故障初判模型,其輸入是傳感器監(jiān)測(cè)到的系統(tǒng)運(yùn)行參數(shù)值,不同的故障類(lèi)型分別對(duì)應(yīng)各自的子模型??紤]到在線診斷的實(shí)時(shí)性要求,子模型均由Elman網(wǎng)絡(luò)訓(xùn)練而成。
編號(hào)為i(i=1,2,…,N)的子模型中,其故障特征集合Ti根據(jù)專家知識(shí)選取得到,輸入層神經(jīng)元的個(gè)數(shù)由Ti決定,網(wǎng)絡(luò)中間層到輸出層的傳遞函數(shù)采用對(duì)數(shù)Sigmoid函數(shù),輸出表示為yi,yi的取值范圍是(-1,1)。Pi用于推測(cè)該子模型用于識(shí)別的類(lèi)型是否為故障原因。
當(dāng)yi≤0時(shí),Pi=0,表示該子模型對(duì)應(yīng)的故障未發(fā)生;當(dāng)yi>0時(shí),Pi=yi,表示該子模型對(duì)應(yīng)的故障類(lèi)型,其發(fā)生概率與模型輸出值的大小成正比。
可能的故障原因集合F為:
F={(F1,P1),…,(Fi,Pi),…,(FN,PN)
(1)
式中Fi(i=1,2,…,N)表示第i種故障類(lèi)型。
Pi的取值為:
(2)
圖2 基于Elman網(wǎng)絡(luò)的組態(tài)式多故障類(lèi)別初判模型結(jié)構(gòu)Fig.2 Fault diagnostic model for multiple concurrent fault modes in a parallel structure
1.2.1 篩選模型
SVM結(jié)構(gòu)簡(jiǎn)單、泛化能力強(qiáng);ECOC對(duì)于解決多分類(lèi)問(wèn)題很有效。因此本文通過(guò)結(jié)合ECOC與OVO將SVM擴(kuò)展至ECOC-SVM建立篩選模型。
離線建模過(guò)程中,本文用于訓(xùn)練分辨任兩類(lèi)故障的SVM二值分類(lèi)器與1.1節(jié)中訓(xùn)練Elman網(wǎng)絡(luò)的歷史故障數(shù)據(jù)一致,假設(shè)所有的可能故障類(lèi)別數(shù)為N。
訓(xùn)練過(guò)程如圖3所示。
圖3 故障篩選模型訓(xùn)練流程圖Fig.3 Fault screening model training flowchart
不同于文獻(xiàn)[8]在編碼之前使用統(tǒng)計(jì)特征(例如主成分和線性判別分析)來(lái)過(guò)濾特征,本文采用唯一初始矩陣:列向量為二值分類(lèi)器,行向量為類(lèi)別標(biāo)簽,規(guī)避了編碼穩(wěn)定性不強(qiáng)的問(wèn)題。
本文提出的編碼矩陣M取值于集合,{-1,0,+1},M[i,j]=0意味著樣本的標(biāo)簽值對(duì)于第j個(gè)二值分類(lèi)器無(wú)意義。對(duì)于類(lèi)別數(shù)為m的多分類(lèi)問(wèn)題,M是一個(gè)m行、m(m-1)/2列的矩陣,對(duì)于第j列,若M[r1,j]=+1,M[r2,j]=-1,且其他處均為零,說(shuō)明該列代表區(qū)分故障類(lèi)別r1和r2的二值分類(lèi)器。結(jié)合ECOC與OVO初始化糾錯(cuò)輸出碼矩陣M的詳細(xì)流程如圖4所示。
圖4 糾錯(cuò)輸出碼矩陣初始化流程Fig.4 ECOC matrix flowchart
執(zhí)行上述步驟得到的初始化編碼矩陣M為:
(3)
1.2.2 篩選過(guò)程
F為本文1.1節(jié)得到的可能故障原因集合,m為集合中的故障類(lèi)別數(shù)量。當(dāng)m≤2時(shí),診斷結(jié)果即為集合F。
本文考慮m>2的診斷情形,提出基于極大似然估計(jì)[13]的ECOC解碼方式,運(yùn)用ECOC-SVM多分類(lèi)器篩選故障原因,得到最終診斷結(jié)果。
類(lèi)別數(shù)為m的多分類(lèi)問(wèn)題中,ψn表示第n組分類(lèi),有ψn{SVMi,j,SVMj,i}(n=1,2,…,m(m-1)/2)。假設(shè)初始編碼矩陣M中,hn(i)表示第n列第i行的元素值,hn(i)∈{-1,0,+1}。若hn(i)≠0,un(di)表示以待診斷故障數(shù)據(jù)d為輸入時(shí),該非零項(xiàng)的實(shí)際預(yù)測(cè)值,un(di)∈{+1,-1}。gn(di)表示在第n組分類(lèi)中,d屬于類(lèi)別i的權(quán)重,其取值為:
(4)
其中:
(5)
d屬于類(lèi)別i的可能性大小U(di)為:
(6)
本文提出的篩選模型用于識(shí)別故障原因的過(guò)程如下:
2)依次用ψ中第n組分類(lèi)器ψn對(duì)d進(jìn)行分類(lèi),若SVMi,j返回值為-1,則un(di)=-hn(i);若SVMi,j返回值為+1,則un(di)=hn(i);若SVMj,i返回值為-1,則un(di)=-hn(i);若SVMj,i返回值為+1,則un(di)=hn(i)。
3)運(yùn)用式(4)、(5)計(jì)算d屬于類(lèi)別i的權(quán)重gn(di);
4)d的歸屬類(lèi)別與類(lèi)別i的相似度值U(di),由式(6)計(jì)算得到,篩選判據(jù)為:
(7)
經(jīng)上述步驟,診斷結(jié)果經(jīng)故障原因篩選后推送給維修人員輔助其決策。
本文采集某類(lèi)型船用發(fā)動(dòng)機(jī)售后維修部的真實(shí)數(shù)據(jù),以該發(fā)動(dòng)機(jī)故障診斷為例,對(duì)本文提出的診斷方法進(jìn)行實(shí)驗(yàn)評(píng)估。
2.1.1 離線建模
本文收集897項(xiàng)報(bào)警內(nèi)容為發(fā)動(dòng)機(jī)氧合系數(shù)異常的船用發(fā)動(dòng)機(jī)故障的發(fā)動(dòng)機(jī)運(yùn)行數(shù)據(jù)用于實(shí)驗(yàn)。
表1為9個(gè)預(yù)先設(shè)置的特征參數(shù)。表2為可能引起發(fā)動(dòng)機(jī)氧合系數(shù)異常的6種故障原因。
表1 特征參數(shù)表Table 1 Features details
表2 故障原因表Table 2 Faults details
表3表示根據(jù)專家經(jīng)驗(yàn)得到的特征參數(shù)與故障原因間的映射關(guān)系,由此構(gòu)造診斷系統(tǒng)。
針對(duì)此6類(lèi)故障原因,采用1.2節(jié)所述方法構(gòu)建故障類(lèi)別初判模型S;采用1.1節(jié)所述步驟,訓(xùn)練SVM二值分類(lèi)器,構(gòu)造用于在線診斷階段的ECOC-SVM分類(lèi)器。
表3 特征參數(shù)-故障明細(xì)表Table 3 Features-faults for every sub-system
2.1.2 在線診斷
本實(shí)例中待診斷故障數(shù)據(jù)為d,經(jīng)2.1.1節(jié)構(gòu)造的故障類(lèi)別初判模型S處理后得到可能故障原因集合F為:
F={(F1,0.65),(F2,0.73),(F3,0.57),
(F4,0.51),(F5,0),(F6,0)}
(8)
初始化編碼矩陣為:
(9)
d的歸屬類(lèi)別與各類(lèi)別的相似度值U(di)(i=1,2,3,4)如表4所示。
表4 ECOC-SVM預(yù)測(cè)值Table 4 Prediction values of ECOC-SVM
(10)
性能對(duì)比實(shí)驗(yàn)均在R環(huán)境下進(jìn)行,所用計(jì)算機(jī)內(nèi)存為8 GB。
2.2.1 對(duì)比常用機(jī)器學(xué)習(xí)分類(lèi)方法
表5給出了與本文方法進(jìn)行比較的分類(lèi)算法[10-12]的描述和參數(shù)選擇。
表5 實(shí)例研究中的各個(gè)算法說(shuō)明Table 5 Details of classifiers used in the experimental study
本文使用性能測(cè)量指標(biāo)宏F1(macro_F1)衡量分類(lèi)器性能:
(11)
性能對(duì)比如圖5所示,其中TP、FP、TN和FN分別代表真陽(yáng)性、假陽(yáng)性、真陰性和假陰性的數(shù)量。
圖5 分類(lèi)器性能比較箱線圖Fig.5 Boxplot of average Macro-F1 obtained examined classifiers used
每種方法的平均訓(xùn)練持續(xù)時(shí)間和測(cè)試持續(xù)時(shí)間如表6所示。
從圖5可以看出,單個(gè)分類(lèi)器(C5.0,kNN)的性能指標(biāo)低于80%,這意味著超過(guò)1/5的實(shí)際故障在故障診斷中將被忽略。
表6 算法時(shí)長(zhǎng)對(duì)比
OVA-SVM使用一對(duì)多分類(lèi)策略,精確度不高的原因可能是樣本數(shù)量不均。輸出代碼設(shè)計(jì)(ECOC)是糾錯(cuò)碼(ECC)和一對(duì)一分類(lèi)(OVO)的結(jié)合。從圖6可以看出,與ECOC組合的分類(lèi)器的性能要優(yōu)于組合前單個(gè)分類(lèi)器的性能。另外,作為比較算法,k-NN的宏高于C5.0,但結(jié)合糾錯(cuò)輸出代碼,ECOC-k-NN性能遠(yuǎn)不及其他混合算法,而ECOC-SVM性能高于其他混合算法。
圖6 分類(lèi)錯(cuò)誤率對(duì)比Fig.6 Comparison of the multiclass error
考慮到診斷系統(tǒng)需要及時(shí)給出故障檢測(cè)建議,以解除警報(bào),因此本文對(duì)比了各分類(lèi)方法的平均訓(xùn)練時(shí)間與對(duì)未知樣本的平均分類(lèi)時(shí)間(測(cè)試時(shí)間),如表6所示。盡管k-NN不需要預(yù)先訓(xùn)練,但其測(cè)試時(shí)間顯著高于其他方法,不適合實(shí)際使用。與OVA-SVM相比,ECOC-SVM的訓(xùn)練時(shí)間更長(zhǎng),但是實(shí)際的診斷系統(tǒng)采用離線訓(xùn)練,訓(xùn)練時(shí)長(zhǎng)不影響在線診斷的即時(shí)響應(yīng)時(shí)間。
2.2.2 對(duì)比基于漢明距離的ECOC-SVM分類(lèi)方法
將本文提出的基于最大似然估計(jì)的ECOC-SVM故障分類(lèi)方法與傳統(tǒng)的基于漢明距離的ECOC-SVM故障分類(lèi)方法進(jìn)行比較[8],如圖6所示。
本文提出的方法考慮了分類(lèi)過(guò)程中的損失函數(shù),因此與傳統(tǒng)的漢明距離方法相比,分類(lèi)精度有所提高。但隨著分類(lèi)數(shù)量的增加,2種分類(lèi)方法的錯(cuò)誤率均增加,分類(lèi)準(zhǔn)確度呈下降趨勢(shì)。
本文診斷方法的優(yōu)勢(shì)在于使用故障類(lèi)別初判模型減少ECOC-SVM的分類(lèi)數(shù)量,以此降低ECOC-SVM的分類(lèi)錯(cuò)誤率。
1)本文提出的方法利用Elman網(wǎng)絡(luò)構(gòu)造組態(tài)式的多故障診斷模型,構(gòu)建方法簡(jiǎn)單,各子系統(tǒng)含義清晰。
2)這種方法的模型訓(xùn)練的實(shí)質(zhì)是訓(xùn)練子系統(tǒng)。子系統(tǒng)可以根據(jù)應(yīng)用條件進(jìn)行重組或更新,以方便擴(kuò)展。
3)這種方法中的子系統(tǒng)是相對(duì)獨(dú)立的。故障特征的選擇充分利用了專家的經(jīng)驗(yàn)。
4)該方法根據(jù)實(shí)時(shí)數(shù)據(jù)的特征從所有單個(gè)故障中選擇可能的故障類(lèi)型,避免了故障診斷對(duì)機(jī)理模型的依賴。
本文提出的故障診斷方法以沒(méi)有未知故障為前提,忽略了故障模式未知的診斷情形。因此之后的研究應(yīng)聚焦未知故障情境下的診斷方法。