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