王維剛, 陶 京, 劉占生
(1.東北石油大學機械科學與工程學院 大慶, 163318) (2.哈爾濱工業(yè)大學能源科學與工程學院 哈爾濱, 150001)
隨著工業(yè)自動化程度的提高,機械設備越來越復雜,從中獲取故障數(shù)據(jù)非常困難,而且付出的代價也是巨大的。與此相反,機器在服役內絕大多數(shù)時間運行是正常的,因此獲取設備正常工況數(shù)據(jù)是非常容易而且廉價的?;诳色@得數(shù)據(jù)是否帶有標簽,可將機械故障分類分為監(jiān)督和非監(jiān)督兩類[1]。當正常和故障狀態(tài)的先驗信息可獲得時,可用監(jiān)督方法進行故障分類;相反若沒有先驗信息,需要采用非監(jiān)督方法。當機械設備發(fā)生故障時,振動信號將會偏離正常值,而基于振動信號的診斷技術已廣泛用于軸承[2]、齒輪[3]等設備的故障診斷中。近年來,稀疏編碼技術在人臉識別[4]、圖像分類[5]等領域的成功應用,文獻[6-8]將其引用在機械故障診斷中,例如:文獻[6]采用稀疏編碼提取特征以進行機械故障診斷;文獻[7]將稀疏自動編碼器融入深度神經(jīng)網(wǎng)絡,實現(xiàn)非監(jiān)督學習的特征提取,感應電動機的故障診斷試驗驗證了方法有效性;文獻[8]提出了用于機械故障分類的半監(jiān)督類標一致字典學習框架,采用類標一致字典學習和自適應類標預測聯(lián)合的技術,故障診斷實驗驗證了方法的優(yōu)秀性能。
對于信號處理,稀疏編碼采用過完備字典中幾個原子的線性組合近似表示輸入信號,其中字典的質量決定稀疏編碼的性能。采用從訓練樣本中學習字典取代傳統(tǒng)Fourier基或小波基進行編碼,取得了非常好的效果。為了能夠得到較好表示信號的字典,學者們提出了一些有效的字典學習方法[9-13],并證明了由監(jiān)督學習構建的字典能產(chǎn)生較好的分類性能,其中典型的監(jiān)督字典學習方法包括判別k均值奇異值分解(discriminative k-mean singular value decomposition,簡稱D-KSVD)[12],類標一致k均值奇異值分解(label consistent k-mean singular value decomposition,簡稱LC-KSVD)[13]。D-KSVD將分類誤差添加至k均值奇異值分解(K-mean singular value decomposition,簡稱 KSVD)目標函數(shù)中,以增強字典的表示能力。LC-KSVD通過增加判別稀疏編碼誤差以提高KSVD模型的字典學習性能,并且由判別稀疏編碼誤差、重構誤差和分類誤差形成聯(lián)合問題。由于D-KSVD和LC-KSVD均為監(jiān)督模型,因此存在某些明顯的缺點,如過擬合導致的性能下降以及實際中缺乏信號先驗知識而導致的應用受限。現(xiàn)場無標記振動數(shù)據(jù)容易獲得,若聯(lián)合有標記和無標記數(shù)據(jù)來近似數(shù)據(jù)集幾何結構,可以增強表示能力和分類準確度,這也正是半監(jiān)督學習能引起學者們[14-15]廣泛關注的原因。
為了探索更有效的字典學習算法,本研究在最大間隔字典學習(max-margin dictionary learning,簡稱MMDL)[16]算法基礎上,將廉價的、易獲得的無標記樣本構成的重構誤差項引入到目標函數(shù)中,所提出SSMMDL算法定義的目標函數(shù)不僅包括有標記樣本的重構誤差項、支持向量機的損失函數(shù)和分類間隔兩個正則項,而且包括無標記樣本的重構誤差項,不但實現(xiàn)了字典和分類器的同步學習,而且能利用標記樣本充分表達數(shù)據(jù)的潛在結構。
在訓練階段,已知輸入信號集X=[x1,…,xN]∈Rm×N,求解過完備字典解的過程稱為字典學習,如式(1)所示
(1)
字典學習是在滿足稀疏度約束條件下使重構誤差最小而獲得的。KSVD[9]是一種求解式(1)的有效算法,通過將其分解為字典學習和稀疏編碼兩個子問題,并采用交替優(yōu)化策略求解。
在測試階段,已知字典D,求解測試樣本xt對應稀疏向量st的過程稱為稀疏編碼,表示為
(2)
稀疏編碼通常利用追蹤算法來求解,包括匹配追蹤(matching pursuit,簡稱MP)[17]、正交匹配追蹤(orthogonal matching pursuit,簡稱OMP)[18]以及基追蹤(basis pursuit,簡稱BP)[19],此類方法計算簡單、收斂快且能得到全局最優(yōu)解。筆者采用OMP算法對測試信號進行稀釋編碼。
為了充分利用大量廉價的、易獲得的未標記樣本,筆者提出半監(jiān)督最大間隔字典學習算法,將未標記樣本構成的重構誤差項也引入到最大間隔字典學習算法的目標函數(shù)中,具體模型如下所述。
記類別標簽向量V=[y1,…,yN],根據(jù)上述思想,將目標函數(shù)定義為
(3)
其中:Nu和Nl分別為無標記和有標記訓練樣本的數(shù)量;xu和xl分別為樣本來自無標記數(shù)據(jù)集和有標記數(shù)據(jù)集;su和sl分別為xu和xl的稀疏表示。
式(3)前兩項均為重構誤差項,第3項為支持向量機分類間隔正則項,第4項為損失函數(shù)項。系數(shù)α,β和γ控制上述項的權重。該目標函數(shù)包括D,S,[ω,b](ω和b看作一個整體)3個決策變量,式(3)對于上述3個變量不是凸函數(shù),但是當固定其中任意兩個變量后,目標函數(shù)為凸函數(shù)。
當振動信號輸入模型時,采用在稀疏編碼、字典更新及支持向量機參量三者之間交替進行的方式求解上述模型。
首先,初始化字典D及支持向量機參量[ω,b]。該過程是在有監(jiān)督條件下實現(xiàn)的。為了滿足字典每個基向量都與某一故障類別有關,先采用文獻[20]算法學習多個故障類別對應的子字典,然后將其合并為完整過完備字典,其形式如下
D=[D1,…,Dk,…,DM] =[d1,1,…,d1,L,…dk,1,
…,dk,L,…dM,1,…,dM,L] ∈Rm×K
(4)
其次,在t次迭代時,固定D,[ω,b],求樣本xt的解稀疏表示st。若xt為無標記樣本,則直接采用OMP算法求解式(2)即可;若xt為有標記樣本,則稀疏編碼問題轉換為
(5)
除去與st無關的項,化簡后的目標函數(shù)為
(6)
該目標函數(shù)的梯度和Hessian矩陣分別如式(7)和式(8)所示。
▽J(st)=-2αDTxt+2αDTDst+
2γωωTst+2γbωUT-γωVT
(7)
▽2J(st)=(2αDTD+2γωωT)?I
(8)
其中,U=[1,…,1]∈R1×N。
該目標函數(shù)的Hessian矩陣半正定,因此目標函數(shù)J(st)為凸函數(shù),即優(yōu)化模型為一個有約束的凸優(yōu)化問題,采用拉格朗日-擬牛頓法便可求得全局最優(yōu)解。
算法1:字典更新
步驟1:輸入當前字典Dt-1,初始化j=1,計算At和Bt
(9)
(10)
步驟2:更新字典的第j列,公式為
(11)
(12)
步驟3:j=j+1,返回步驟2,直至j=K。
步驟4:重復步驟2~步驟3,直至收斂。
最后,固定S,D,更新參量[ω,b]。式(3)變?yōu)?/p>
(13)
上述模型為一個標準的支持向量機分類問題,可采用共軛梯度等方法來求解。
關于無標記樣本屬于故障中的已有類別還是新類別,文中采用基于信號稀疏編碼概率模型的選擇準則進行判斷。
考慮輸入信號x的稀疏表示s=[s1,…,sK]T。一旦子字典確定了其類別,就不會再變。此時可用與基向量dj相關的稀疏系數(shù)sj計算信號x處在與字典基向量dj同一類別的概率。將同一類與字典基向量相關稀疏表示的絕對值加起來并歸一化,就得到信號的類別概率分布。具體講,假設有M類分類問題,每類用L個基向量表示,L×M=K。已知字典D,信號x屬于類別l的概率為
(14)
其中:L為一個數(shù)據(jù)點或字典基向量映射到一個特定的類標簽l∈{1,…,M}。
計算信號x的類概率分布公式為P(x)= [p1(x),…,pM(x)]T。概率分布表示字典區(qū)分輸入信號的能力。為了量化輸入信號區(qū)分性的置信度,計算其稀疏表示的熵
(15)
如果字典對某輸入信號有高的區(qū)別性,則期望稀疏表示的較大值集中在某字典基向量上,因此該信號的類別就最大可能地屬于與字典基向量對應的類別。從定量角度,設置概率分布的兩個熵閾值:上限值φh和下限值φl。如果信號熵值比下限值φl小,表明該信號關于當前字典是一個區(qū)分性強的輸入信號,且由此確定該信號的類別。于是該信號自動添加到有標記數(shù)據(jù)集中,進一步求解新字典。如果信號熵值比上限值φh高,有兩層含義:a.該信號是不確定信號;b.當前字典不能很好地表示該信號。該不確定點可能靠近決策邊界,也可能為新類別數(shù)據(jù),因此對于字典學習這些信號是非常關鍵的。首先用訓練數(shù)據(jù)的稀疏表示近似其類屬性,然后產(chǎn)生熵值分布作為確定閾值的基礎。按照手動標記預估上限值φh,最優(yōu)的φl通過對訓練集5次交叉驗證來確定。模型中α,β和γ也通過交叉驗證來確定。
概括提出的半監(jiān)督最大間隔字典學習策略。先在完全監(jiān)督下初始字典及支持向量機參量;隨著未標記訓練樣本依次輸入,給定當前字典,計算稀疏表示的概率分布,并評價樣本的置信度。如果熵值低于下限值,自動標記該樣本為對應類別。在極少情況下,如果熵值超過上限值,要求用戶標記該數(shù)據(jù)新的類別。若樣本熵值位于上限值與下限值區(qū)間,則將其從樣本中刪除。算法2為本算法的偽代碼。
算法2:半監(jiān)督最大間隔字典學習策略
輸入:訓練樣本X=[x1,…,xN]和對應標簽V,系數(shù)α,β和γ,上限值φh和下限值φl。
輸出:D和[ω,b]。
初始化:初始化D0[ω0,b0],A0=0,B0=0。
fort=1,…,N
輸入訓練樣本xt
ifxt是無標記樣本
用式(2)計算其稀疏表示st
用式(15)計算Ent(xt)
ifEnt(xt)<φl
L(xt)=argmaxjpj(x)
用算法1更新字典Dt
elseifEnt(xt)>φh
L(xt)=l
endif
endif
用式(5)計算其稀疏表示st
用算法1更新字典Dt
用式(13)更新[ω,b]
endfor
記測試樣本為xt,從算法2得到字典D,根據(jù)式(2)計算其稀疏表示st。當st在字典上的響應滿足式(16)時,則判定該測試樣本屬于第k類
(16)
基于半監(jiān)督最大間隔字典學習的故障診斷流程如圖1所示,該方法主要包括以下步驟:
圖1 基于半監(jiān)督最大間隔字典學習的故障診斷流程Fig.1 Flowchart of fault diagnosis based on semi-supervised max-margin dictionary learning
1) 先用多結構元素差值形態(tài)濾波器對原始振動信號(包括訓練和測試信號)降噪[21],再用平滑偽維格納-威爾分布(smoothed pseudo wigner-ville distribution,簡稱SPWVD)[22]技術將時域信號轉換為時頻表示;
2) 采用三次樣條插值方法[23]壓縮時頻表示,構建故障樣本;
3) 將有標記和無標記高維訓練故障樣本輸入到半監(jiān)督最大間隔字典學習算法中,輸出字典;
4) 對測試樣本,經(jīng)稀疏編碼后得到對應稀疏表示,采用基于稀疏表示的分類方法識別測試樣本的類別標簽。
本試驗數(shù)據(jù)來自?;啓C轉子試驗臺,如圖2所示。該試驗臺包括動力系統(tǒng)、轉子系統(tǒng)、潤滑系統(tǒng)及振動信號采集分析系統(tǒng)4部分,其中轉子系統(tǒng)由3跨轉子、兩個輪盤、一個?;栞嗈D子、3個聯(lián)軸器及4個滑動軸承(其參數(shù)為長徑比為0.625、半徑間隙比為2‰、軸承直徑為40 mm)組成。在4個軸承上分別安裝兩個BENTLY 3000XL8 mm電渦流位移傳感器,用以測量軸承水平和垂直方向振動信號。采樣頻率為1 600 Hz,在轉速為3 000 r/min下分別測取正常狀態(tài)、不平衡故障、不對中故障、地腳松動故障、徑向碰磨故障及油膜渦動故障(分別記為f1,f2, …,f6)6種工作狀態(tài)的振動信號各200組,任選100組為訓練樣本,剩余100組為測試樣本。其中,正常狀態(tài)的樣本是在轉子安裝調試、動平衡后采集的樣本;不平衡故障樣本是在兩個輪盤零相位處的平衡孔上分別添加5, 10 g不平衡配重后采集的樣本;不對中故障樣本是在抬高中間兩個軸承標高0.08 mm后采集的樣本;地腳松動故障樣本是在松動中間兩個軸承地腳螺栓后采集的樣本;徑向碰磨故障樣本是利用摩擦棒與輪盤發(fā)生碰磨后采集的樣本;對于油膜渦動故障,是轉速升高至一階臨界轉速之上,而未達到一階臨界轉速二倍時采集的樣本。圖3,4分別為轉子油膜渦動故障的時域波形圖、頻譜圖、SPWVD時頻圖像及壓縮圖像。
圖2 ?;嚈C轉子試驗臺Fig.2 Modelling steam turbine rotor test stand
圖3 油膜渦動故障的時域波形圖及頻譜圖Fig.3 Time domain waveform and frequency spectrum of oil whirl fault
圖4 油膜渦動故障的SPWVD時頻圖像及其壓縮圖像Fig.4 SPWVD time-frequency images and compressed images of oil whirl fault
為了減小數(shù)據(jù)規(guī)模,在半監(jiān)督字典學習前,采用圖像縮放技術中的雙三次插值算法,將SPWVD1024×1024時頻矩陣壓縮至30×30矩陣,如圖4所示。為防止過度擬合的產(chǎn)生,本算法所有系數(shù)的選取均采用交叉驗證法自動完成。另外,為了保證結果的客觀性及對比的公正性,所有試驗結果均為運行20次后的平均值。為防止產(chǎn)生過擬合現(xiàn)象,所提算法中的3個正則項系數(shù)均采用交叉驗證法自動選取。關于熵閾值上限值φh和下限值φl確定,先采用訓練數(shù)據(jù)的稀疏編碼來粗略估計其類別分布,通過熵值分布確定φh為0.6,從而進行人工標記,而最優(yōu)φl值可對訓練數(shù)據(jù)集通過交叉驗證法進行選擇。本算法所得計算結果均為獨立運行20次的平均值,以確保結果的客觀性?,F(xiàn)從以下3個方面分析筆者所提方法的有效性。
1) 分析時頻字典的特性。從訓練集選取壓縮時頻圖像進行子字典學習,其中子字典長度為30,原子個數(shù)為5,經(jīng)SSMMDL算法得到轉子6種工作狀態(tài)的子字典(如圖5)??梢钥闯?,每種工作狀態(tài)對應的時頻原子波形都有瞬時脈沖,但是每類子字典對應的脈沖幅值大小均不相同,這樣不同故障的測試樣本就得到不同的稀疏編碼,為故障識別奠定基礎。
圖5 從轉子振動數(shù)據(jù)得到的各類子字典Fig.5 Sub-dictionary of each class learned from rotor vibration data
2) 針對所提方法,驗證未標記樣本對故障診斷性能的改善狀況,以及有標記樣本與未標記樣本不同比例對性能的影響規(guī)律。在100組訓練集中分別選擇有標記樣本數(shù)為40,60和80,并設置不同未標記樣本數(shù),測試不同比例下所提方法的分類準確率,并將其與僅采用有標記樣本(對應未標記樣本數(shù)為0)的最大間隔字典學習算法進行對比,結果見表1。
通過表1的試驗結果可以看出,未標記樣本的加入使故障診斷準確率得到提高;訓練樣本總數(shù)相同,但未標記和有標記樣本數(shù)比例增加時,故障診斷準確率也隨之增加;故障診斷準確率隨有標記樣本數(shù)增加而增加。從訓練樣本中包含的有標記樣本數(shù)和無標記樣本數(shù)來看,基于SSMMDL半監(jiān)督字典學習算法的識別率高于有監(jiān)督學習算法的識別率,而且隨著未標記樣本數(shù)的增加,算法的識別率隨之提高,驗證了方法的優(yōu)越性。
3) 將所提方法SSMMDL與MMDL,LC-KSVD,D-KSVD、稀疏表示分類器(sparse representa-tion based classifier,簡稱SRC)[21]進行對比,以進一步驗證所提方法的優(yōu)越性。設置φhigh=φlow=0,即所有新樣本全部進行標記,SSMMDL與其他幾種字典學習方法的對比結果如圖6和表2所示??梢钥闯?,筆者所提方法的識別率優(yōu)于其他方法,尤其當有標記樣本數(shù)較少時,所提方法更顯示了優(yōu)越的性能。MMDL是一種有監(jiān)督的最大間隔字典學習,僅利用有標記樣本實現(xiàn)字典和分類器的同步學習,因此分類性能低于SSMMDL。D-KSVD和LC-KSVD2均為監(jiān)督方法,利用有標記樣本進行訓練和分類,因此分類性能尚可。由于SRC是一種無監(jiān)督方法,分類性能最差。而從運行效率角度,盡管所提方法的運行時間比其他3種方法耗時稍多,但完全可以滿足在線監(jiān)測的要求。通過上述的對比分析可知,基于SSMMDL的半監(jiān)督字典學習算法體現(xiàn)了一定的優(yōu)越性。
表1 不同有標記樣本和未標記樣本比例下SSMMDL算法的分類性能
圖6 SSMMDL與其他方法的識別率隨樣本數(shù)的變化趨勢Fig.6 Change trend of recognition rates of SSMMDL and other three methods with labeled sample number
Tab.2 Classification performance of SSMMDL and other methods
方 法t/s最高識別率 /%SRC0.13693.30D-KSVD0.11794.32LC-KSVD20.12196.10MMDL0.25396.55SSMMDL0.31098.89
筆者提出一種基于SSMMDL算法的故障診斷方法。首先,從原始振動信號的SPWVD分布中提取時頻域特征,并構建訓練樣本集;然后,通過所提SSMMDL算法從訓練樣本集學習字典;最后,通過字典求解測試樣本的稀疏表示,并利用基于稀疏表示的分類器實現(xiàn)故障模式識別,得到測試樣本的故障類型。運用時頻分析方法構建高維故障樣本,該樣本能揭示非平穩(wěn)信號的頻率成分及時變特征,為構建判別性較強的字典打下基礎。所提方法能夠充分利用無標記樣本的信息,通過將無標記樣本稀疏重構誤差項添加至優(yōu)化模型,提高了故障診斷模型的判別能力。試驗結果表明,隨著未標記樣本數(shù)量的增加,故障識別率隨之提高。轉子故障診斷結果驗證了所提半監(jiān)督字典學習算法的優(yōu)越性,相比其他算法,不但提高了識別率,而且能用于在線監(jiān)測中。