鄧明洋,李長征,楊 浩
(西北工業(yè)大學(xué) 動力與能源學(xué)院,西安 710072)
機(jī)械設(shè)備在使用的過程中,隨著時間的推移,由于一些因素如機(jī)械疲勞、操作不當(dāng)、維護(hù)不當(dāng)?shù)?,?dǎo)致零部件發(fā)生破損而產(chǎn)生故障。損壞的機(jī)械設(shè)備繼續(xù)運(yùn)行很可能會導(dǎo)致嚴(yán)重的事故發(fā)生,而造成巨大的損失。機(jī)械故障診斷技術(shù)是一種了解和掌握機(jī)器在運(yùn)行
過程的狀態(tài),確定其整體或局部正常或異常,早期發(fā)現(xiàn)故障及其原因,并能預(yù)報故障發(fā)展趨勢的技術(shù)。運(yùn)用機(jī)械故障診斷技術(shù)能夠有效的減少安全隱患,避免造成重大損失[1-3]。
基于數(shù)據(jù)驅(qū)動的機(jī)械故障診斷是通過對監(jiān)測信號進(jìn)行分析,并設(shè)計算法進(jìn)行故障診斷。傳統(tǒng)的故障診斷方法是從信號的時域、頻域以及時頻域進(jìn)行分析,這類方法的可解釋性強(qiáng),能夠很好地闡述某些故障的現(xiàn)象和原因,但需要深入的專業(yè)領(lǐng)域知識,并且因為信號本身是經(jīng)過十分復(fù)雜的調(diào)制過程形成的,分析方法特別是定量指標(biāo)存在難以泛化的困難。隨著機(jī)器學(xué)習(xí)技術(shù)的深入研究,在機(jī)械故障診斷領(lǐng)域也得到了廣泛的應(yīng)用。基于機(jī)器學(xué)習(xí)的故障診斷方法的基本流程是,首先通過人工提取一些常用的特征,如時域特征、頻域特征、時頻域特征等,然后對特征進(jìn)行篩選,消除冗余信息,達(dá)到更好的診斷效果,最后挑選相應(yīng)的機(jī)器學(xué)習(xí)算法進(jìn)行訓(xùn)練以及測試故障診斷的效果。相對傳統(tǒng)方法,它不需要太過專業(yè)的知識[4]。得益于算力的提升以及數(shù)據(jù)量的增長,深度學(xué)習(xí)在故障診斷領(lǐng)域也開始廣泛應(yīng)用。深度學(xué)習(xí)進(jìn)行故障診斷無需對數(shù)據(jù)進(jìn)行人工的特征提取[5],一類方法是將原始信號進(jìn)行直接輸入網(wǎng)絡(luò)通過一維卷積進(jìn)行故障診斷[6],另一類方法對原始數(shù)據(jù)經(jīng)短時傅里葉變換或者小波變換后轉(zhuǎn)換成圖像,輸入網(wǎng)絡(luò)通過二維卷積進(jìn)行故障診斷[7],但這兩類方法對不同分布的數(shù)據(jù)則需要重新進(jìn)行訓(xùn)練網(wǎng)絡(luò),且網(wǎng)絡(luò)參數(shù)巨大。
自編碼器可以看作一種自動提取特征的神經(jīng)網(wǎng)絡(luò),編碼網(wǎng)絡(luò)將原始數(shù)據(jù)作為輸入,通過神經(jīng)網(wǎng)絡(luò)壓縮為對應(yīng)的特征,然后解碼網(wǎng)絡(luò)將特征解碼為原始數(shù)據(jù)[8]。對不同分布的數(shù)據(jù),使用自編碼器進(jìn)行特征提取,輸入到輕量的故障診斷模型進(jìn)行診斷。這種方法可以共用特征提取網(wǎng)絡(luò),且故障診斷模型的參數(shù)量小,此外還可以探索不同分布數(shù)據(jù)的相關(guān)性。
由于故障信號是極具復(fù)雜,通過自編碼器進(jìn)行提取故障信號的特征,然后根據(jù)特征重構(gòu)出原始信號,在網(wǎng)絡(luò)規(guī)模小的時難以收斂[9]。為了解決這個問題,一些學(xué)者提出使用信號頻譜作為自編碼器的輸入,取得了較好的效果。趙志宏等[10]提出了使用故障信號作為輸入,重構(gòu)的是信號頻譜,提取出信號的頻域特征,從故障信號到對應(yīng)頻譜,相當(dāng)于只重構(gòu)信號的部分特征,通過這種方法取得了很好的分類效果。但這種方法使用自編碼器將數(shù)據(jù)樣本編碼為確定性向量,對噪聲的抗干擾性不強(qiáng)[11-14]。
針對上述問題,本文提出采用變分自編碼器提取信號頻域特征。首先將原始信號輸入網(wǎng)絡(luò)提取頻域特征分布,對特征分布加入噪聲然后采樣得到特征向量,對特征向量重構(gòu)頻譜[15]。這種方法使得特征向量具有一定的不確定性,因此使得特征表示更為魯棒。進(jìn)一步,應(yīng)用局部異常因子算法對信號特征的離群點進(jìn)行檢測和剔除。最后,以頻域特征作為輸入構(gòu)建分類算法對不同類型的軸承故障進(jìn)行分類并驗證算法的有效性。
自編碼器(AE,autoencoder)是一種人工神經(jīng)網(wǎng)絡(luò),用于學(xué)習(xí)未標(biāo)記數(shù)據(jù)的有效編碼,屬于無監(jiān)督學(xué)習(xí)方法,通過嘗試從編碼中重新生成輸入來驗證和改進(jìn)編碼。自編碼器通過訓(xùn)練網(wǎng)絡(luò)來學(xué)習(xí)一組數(shù)據(jù)的編碼,即特征表示,通常用于數(shù)據(jù)降維[9]。
自編碼器的結(jié)構(gòu)如圖1所示,自編碼器由編碼器(Encode)和解碼器(Decode)兩個部分組成。編碼器用于將輸入映射到相應(yīng)的編碼,解碼器用于將編碼重建原始輸入。給定輸入空間X∈X和特征空間h∈F,定義映射f,g使得輸入的重建誤差最小[11]:
變分自編碼器[14](VAE,variational auto-encoders)與自編碼器架構(gòu)有相似之處,但在過程和數(shù)學(xué)公式方面存在著顯著差異。普通自編碼器將輸入編碼成特征空間中的某個確定點;而變分自編碼器,將輸入編碼成特征空間中的概率分布。變分自編碼器模型訓(xùn)練過程分為四步:首先,將輸入編碼成在特征空間中的分布;第二,在這個分布中隨機(jī)采樣特征空間中的一個點;第三,對采樣點進(jìn)行解碼計算出損失;最后,損失通過網(wǎng)絡(luò)進(jìn)行反向傳播優(yōu)化網(wǎng)絡(luò)參數(shù)。
變分自編碼器的目標(biāo)是使用參數(shù)化分布pθ(x)模擬或近似x的真實分布p(x)。設(shè)z為潛空間變量,為x更本質(zhì)的描述。通過聯(lián)合分布邊緣化z表示x:
根據(jù)鏈?zhǔn)揭?guī)則,方程可以重寫為:
pθ(x)難處理導(dǎo)致pθ(z|x)很棘手,變分自編碼器采用神經(jīng)網(wǎng)絡(luò)來近似后驗分布:
qΦ(z|x)≈pθ(z|x)
通過深度神經(jīng)網(wǎng)絡(luò)優(yōu)化參數(shù)Φ,使得qΦ(z|x)可以很好的估計pθ(z|x)。通過這種方式將整體問題轉(zhuǎn)換到自編碼器框架中,其中條件似然概率分布pθ(x|z)由解碼器計算,而近似后驗概率分布qΦ(z|x)由編碼器計算。
對于深度學(xué)習(xí)問題,需要定義一個可微的損失函數(shù),以便通過反向傳播來更新網(wǎng)絡(luò)權(quán)重。對于變分自編碼器,其思路是通過優(yōu)化解碼器模型(生成模型)參數(shù)減少輸入和輸出之間的重建誤差,以及參數(shù)Φ使得qΦ(z|x)盡可能地接近pθ(z|x)。重構(gòu)誤差使用均方誤差,衡量兩個分布差異使用Kullback-leibler散度[15]。DKL(qΦ(z|x)||pθ(z|x))具體的表達(dá)形式為:
通過變形移項可以將等式重寫為:
log(pθ(x))-DKL(qΦ(z|x)||pθ(z|x))=
Ez~qΦ(z|x)(log(pθ(z|x))-DKL(qΦ(z|x)||pθ(z)))
目標(biāo)是最大化pθ(x)項,以提高生成的數(shù)據(jù)質(zhì)量,并最小化真實后驗和估計后驗的差異。定義證據(jù)下界(ELBO,evidence lower bound)損失函數(shù),可以寫成:
LθΦ=-Ez~qΦ(z|x)(log(pθ(z|x)))+
DKL(qΦ(z|x)||pθ(z))
鑒于Kullback-leibler散度的非負(fù)性質(zhì),有如下性質(zhì):
-Lθ,Φ≤log(pθ(x))
問題可以概括為,使用神經(jīng)網(wǎng)絡(luò)求解最佳參數(shù)將此損失函數(shù)最小化:
變分自編碼器的框架如圖2所示,通過重參數(shù)化技巧,將隨機(jī)向量ε作為外部輸入注入到潛空間中,將隨機(jī)性排除在更新過程之外。
圖2 變分自編碼器結(jié)構(gòu)
關(guān)于潛空間的主要假設(shè)可以看作為一組多元高斯分布,可以描述為:
z~pθ(z|x)=N(μ,δ2)
鑒于噪聲項滿足ε~N(0,I)和⊙定義為元素的乘積,重參數(shù)化將上述方程修改為:
z=μ+σ⊙ε
傳統(tǒng)的自編碼器的目標(biāo)輸出一般為原始信號,且網(wǎng)絡(luò)結(jié)構(gòu)一般是對稱的。通過自編碼器提取特征,使用特征分類的過程,即故障診斷過程如圖3所示。分類過程只使用了編碼網(wǎng)絡(luò)的輸出。所以在保證分類模型的復(fù)雜度時,加深解碼網(wǎng)絡(luò)的層數(shù),構(gòu)建非對稱自編碼器,使得特征提取的效果更好。此外通過壓縮的特征進(jìn)行重建原始信號,必然會有一定的信息損失。頻譜是時域信號在頻域下的表示方式,通過對時域信號x(t)進(jìn)行傅里葉變換得到f(w)=|A(W)|*e(jφ(w)),其中|A(W)|為幅值譜,e(jφ(w))為相位譜,廣義上的頻譜就是對幅值譜的另一種叫法,從時域信號到幅值譜存在一定的信息損失。計算機(jī)在處理的過程中是對采樣的信號進(jìn)行處理,由采樣定理可知,給定采樣率fs,完全重構(gòu)頻帶的限制為B 圖3 自編碼器分類任務(wù) 頻域特征變分自編碼器的框架如圖4所示,輸入為原始的時域信號,通過編碼器得到頻域特征的概率分布,通過對頻域特征的概率分布進(jìn)行重采樣得到頻域特征向量,解碼器對特征向量進(jìn)行重建頻譜??梢钥闯鼍幋a器和解碼器為非對稱的結(jié)構(gòu)。 圖4 頻域特征變分自編碼器 離群點(outliers)也稱為異常值,是與其他觀測值有顯著差異的值。形成離群點的因素是多種多樣的,可能是數(shù)據(jù)采樣過程中噪聲引入的誤差,也可能是研究對象固有存在各種偶然因素引起的[16-17]。不管何種原因?qū)е码x群點出現(xiàn),都會對數(shù)據(jù)的分析造成一定的影響。對于故障檢測而言,離群點表征某種故障發(fā)生時,幾率較小的情況,離群點提供了重要的信息,需要單獨討論。而為了讓診斷模型泛化性能更好,選擇丟棄這些異常值來進(jìn)行實驗。 局部異常因子(LOF,local outlier factor)[18-19]是一種無監(jiān)督的離群檢測方法,采用局部的方法能夠?qū)Σ煌芏染垲惖碾x群點進(jìn)行識別。相關(guān)概念如下: 1)點p的第k距離:給定正整數(shù)k,定義d(p,o)為點p和點o∈D之間的距離,點p的第k距離定義為k-distance(p)使得: (1)至少有k個點o′∈D滿足d(p,o′)≤d(p,o)以及 (2)至多有k-1個點o′∈D滿足d(p,o′) 2)點p的第k距離鄰域:給定點p的第k距離,點p的第k距離鄰域包含所有與點p距離不超過點p的第k距離的點。 Nk(p)={q∈D|d(p,q)≤k-distance(p)} 其中:|Nk(p)為Nk(p)集合中的點數(shù),有|Nk(p)|≥k。 3)點p相對于點o第k可達(dá)距離:令k為一個自然數(shù),則點p相當(dāng)于點o的第k可達(dá)距離定義為: reach-distk(p,o)=max{k-distance(o),d(p,o)} 4)點p的局部可達(dá)密度定義為: 局部可達(dá)密度為點p與其第k距離鄰域點的平均可達(dá)距離的倒數(shù)。表示的是從點p的鄰近點到達(dá)點p的平均可達(dá)性,對于重復(fù)點時,這個值變得無窮大。 5)點p的局部離群因子表達(dá)為: 局部離群因子為點p第k距離鄰域點平均局部可達(dá)密度與點p的局部可達(dá)密度之比,這是密度值之比,有如下結(jié)論: (1)LOFk(p)~1表示點p和鄰近點具有相似的密度; (2)LOFk(p)<1表示點p比鄰近點的密度更高(內(nèi)點); (3)LOFk(p)>1表示點p的密度低于鄰近點的密度(離群點)。 LOF是通過點p和它鄰域點的相對密度來判斷是否為異常點。相對密度通過局部異常因子來衡量,異常因子明顯大于1的表示離群點,密度通過平均局部可達(dá)距離倒數(shù)表達(dá),距離越大表明密度越小。LOF是通過點的第k距離鄰域來計算,不必全局計算,因此稱作局部異常因子。LOF不會因為數(shù)據(jù)的數(shù)據(jù)簇的分散情況而誤判。 本文提出的故障診斷模型的整體流程如圖5所示,它包含數(shù)據(jù)預(yù)處理、特征提取、樣本分類3個部分。每個部分的具體作用如下: 圖5 故障診斷模型流程 1)數(shù)據(jù)預(yù)處理部分對原始數(shù)據(jù)進(jìn)行截取,劃分訓(xùn)練集和測試集以及對訓(xùn)練集使用FFT求取頻譜; 2)特征提取部分使用訓(xùn)練集訓(xùn)練頻域特征變分自編碼器,然后使用局部異常因子算法對每一簇的離群點進(jìn)行剔除得到特征訓(xùn)練集; 3)樣本分類即為選定分類器,使用特征訓(xùn)練集進(jìn)行訓(xùn)練,使用測試集經(jīng)頻域特征變分自編碼器提取特征,輸入分類器進(jìn)行分類。 本文的滾動軸承實驗數(shù)據(jù)來自凱斯西儲大學(xué)(CWRU)軸承數(shù)據(jù)中心[20],實驗裝置如圖6所示,實驗裝置由2HP電機(jī)(左)、扭矩傳感器/編碼器(中)、功率計以及電子控制設(shè)備(未顯示)組成。使用放電加工將單點故障引入測試軸承,在不同損傷程度以及不同負(fù)載下采集了多組的振動信號。選取了風(fēng)扇端軸承在采樣頻率為12 kHz及負(fù)載為0 HP的實驗數(shù)據(jù)。如表1所示,數(shù)據(jù)的類別分別為正常狀態(tài)(Normal)、滾動體故障(Ball)、內(nèi)圈故障(IR)、外圈故障(OR),其中每種故障包含0.007、0.014和0.021三種不同的損傷程度如表1所示,共10種類型的數(shù)據(jù)。 圖6 滾動軸承實驗裝置 表1 實驗數(shù)據(jù)故障類型 使用滑動窗口方法生成訓(xùn)練集和測試集樣本,設(shè)定窗口長度為L,窗口的重疊率為R,則可計算出滑動的步長S為: S=(1-R)*L 分別使用滑動窗口法對上述類別數(shù)據(jù)進(jìn)行截取,同時通過FFT求取數(shù)據(jù)的頻譜,每種數(shù)據(jù)生成2 000個樣本,把不同損傷程度與正常數(shù)據(jù)分別組合為數(shù)據(jù)集A(0.007)、數(shù)據(jù)集B(0.014)、數(shù)據(jù)集C(0.021)。 實驗所采用的編程環(huán)境為Google Colaboratory,是Google提供的一個Jupyter Notebook式的交互環(huán)境,搭載python3.7、tensorflow2.8.2。構(gòu)建頻域特征變分自編碼器模型進(jìn)行特征提取,模型具體參數(shù)如表2所示,主要參數(shù)中的神經(jīng)元個數(shù)括號中第一個參數(shù)表示前一層節(jié)點的個數(shù),第二參數(shù)表示當(dāng)前層的節(jié)點數(shù)。訓(xùn)練模型時,批次大小為50,采用Adam優(yōu)化器,學(xué)習(xí)率設(shè)置為0.000 1,迭代次數(shù)500次。 表2 變分頻域特征提取自編碼模型參數(shù) 自編碼器是一種無監(jiān)督的學(xué)習(xí)網(wǎng)絡(luò),在分類任務(wù)前進(jìn)行特征提取,同時需將數(shù)據(jù)集劃分為訓(xùn)練集和測試集,從表2可以看出特征的維度為32,為了直觀地展示,將提取到的32維特征使用t-SNE算法進(jìn)行二維可視化。在數(shù)據(jù)集A、B、C分別使用訓(xùn)練集進(jìn)行訓(xùn)練,使用測試集進(jìn)行驗證,通過t-SNE算法得到如圖7~9所示的結(jié)果。 圖7 數(shù)據(jù)集A的特征降維結(jié)果 圖8 數(shù)據(jù)集B的特征降維結(jié)果 圖9 數(shù)據(jù)集C的特征降維結(jié)果 從圖7~9可以看出,3種不同損傷的數(shù)據(jù)集通過頻域特征變分自編碼器提取特征,對提取的特征進(jìn)行t-SNE聚類算法可以明顯看出數(shù)據(jù)集分為四類,類與類之間存在著清晰的界線。此外,有少部分點被t-SNE算法映射別的簇中。 3種數(shù)據(jù)集的頻譜重建的效果如圖10~12所示,可以看出重建頻譜與原始頻譜在形狀上是相似的,但是原始頻譜中的毛刺被消除了,相當(dāng)于多個混有噪聲的頻譜進(jìn)行平均,說明頻域特征變分自編碼器能夠提取大部分頻域特征。 圖10 數(shù)據(jù)集A原始頻譜和重建頻譜 圖11 數(shù)據(jù)集B原始頻譜和重建頻譜 圖12 數(shù)據(jù)集C原始頻譜和重建頻譜 通過對信號進(jìn)行編碼壓縮成特征,然后對特征解碼還原信號,還原信號的好壞,在一定程度上取決于特征數(shù)量,特征數(shù)量越多表明表達(dá)信息越完整,但是提取特征以及解碼特征所需要的計算量也大,所以在保證提取大部分特征的同時也需要對計算量折中,訓(xùn)練集A上不同特征維度對重建損失影響效果,如圖13所示??紤]計算量以及性能提升選取了32作為特征空間維度大小。 圖13 重建誤差隨特征維度的關(guān)系 此外對數(shù)據(jù)集A、B、C合并,即把相同類型不同損傷程度的歸為一類,通過頻域特征變分自編碼器對10種故障數(shù)據(jù)特征進(jìn)行提取,對提取的數(shù)據(jù)進(jìn)行t-SNE算法進(jìn)行可視化,結(jié)果如圖14所示。數(shù)據(jù)的顏色標(biāo)注和圖9~11一致,可以看出數(shù)據(jù)集存在明顯聚類,且不同損傷的數(shù)據(jù)集之間分布不同。 圖14 10類故障數(shù)據(jù)特征降維結(jié)果 為了討論頻域特征變分自編碼器+分類模型,對不同分布的識別性能。使用數(shù)據(jù)集A、B、C的訓(xùn)練集作為訓(xùn)練,利用數(shù)據(jù)集A、B、C的測試集對分類效果進(jìn)行驗證,分類網(wǎng)絡(luò)采用一層全連接層以及一層softmax層,具體分類網(wǎng)絡(luò)的參數(shù)如表3所示。 表3 樣本分類網(wǎng)絡(luò)模型參數(shù) 使用數(shù)據(jù)集A、B、C的訓(xùn)練集為訓(xùn)練數(shù)據(jù),數(shù)據(jù)集A、B、C的測試數(shù)據(jù)驗證的結(jié)果。診斷結(jié)果如表4所示,實驗結(jié)果表明分類的效果很好,準(zhǔn)確率可以達(dá)到98%以上。 表4 軸承故障診斷實驗準(zhǔn)確率 % 此外,區(qū)分損傷程度即將故障位置相同但損傷程度不同劃分為不同類,即表1所示的10種故障類型。使用同樣的方法進(jìn)行特征提取,輸入到10分類的網(wǎng)絡(luò)分類,結(jié)果如表4所示,實驗表明達(dá)到相同分類效果所需要的分類網(wǎng)絡(luò)層數(shù)明顯增多。圖14的特征分布可以看出,不同損傷程度數(shù)據(jù)相似,說明可以通過進(jìn)一步探究不同損傷程度數(shù)據(jù)之間的聯(lián)系。 本文將變分自編碼器和頻域特征提取自編碼器進(jìn)行結(jié)合提出了一種頻域特征變分自編碼器,使得特征具有一定的不確定性,特征的魯棒性更強(qiáng)。對提取的特征進(jìn)行t-SNE二維可視化,發(fā)現(xiàn)部分點被t-SNE映射到別的簇中,引入局部異常因子算法對離群點進(jìn)行檢測和剔除,以防止分類器過擬合。在不同損傷程度的數(shù)據(jù)上進(jìn)行泛化分類實驗,實驗表明僅通過兩層輕量神經(jīng)網(wǎng)絡(luò)可達(dá)到98%以上的分類準(zhǔn)確率。本文方法所提取的特征對信號具有優(yōu)異的表達(dá),通過對故障特征進(jìn)行分類,降低了故障診斷模型的復(fù)雜度。同時也可以進(jìn)一步探討不同損傷程度的故障、以及不同工況下的故障的區(qū)別和聯(lián)系,對后續(xù)研究有一定的參考價值。1.3 局部異常因子算法
2 故障診斷模型
3 故障診斷實驗
3.1 實驗數(shù)據(jù)介紹與預(yù)處理
3.2 特征提取實驗及分析
3.3 故障診斷實驗及結(jié)果分析
4 結(jié)束語