楊青,葉義霞,吳東升,劉伊鵬
(沈陽理工大學 自動化與電氣工程學院,沈陽 110159)
滾動軸承是旋轉(zhuǎn)機械的重要部件,其故障將影響整機的安全運行,軸承故障診斷一直是研究的熱點問題[1-3]。軸承大部分時間處于正常狀態(tài),正常數(shù)據(jù)易于采集,故障數(shù)據(jù)難以采集,這導致出現(xiàn)了數(shù)據(jù)不平衡問題[4]。此外,軸承在工作過程中工況(如轉(zhuǎn)速、負載)會發(fā)生變化,而目前大多數(shù)研究均假設(shè)軸承工況不變[5-6]。
針對數(shù)據(jù)不平衡問題,從數(shù)據(jù)處理和算法改進2個方面進行研究。在數(shù)據(jù)處理方面:文獻[7]提出了一種基于樣本特性的過采樣算法;文獻[8]提出了一種簡單有效的時域下采樣算法。在算法改進方面:文獻[9]將歸一化卷積神經(jīng)網(wǎng)絡(luò)用于數(shù)據(jù)不平衡和變工況軸承的故障診斷;文獻[10]提出了一種可再生融合故障診斷網(wǎng)絡(luò)(Renewable Fusion Fault Diagnosis Network, RFFDN)深度學習模型。上述研究取得了一定的成果,但存在如下問題[11]: 1)數(shù)據(jù)處理未學習到原始樣本的數(shù)據(jù)分布; 2)樣本數(shù)據(jù)較少時,改進算法也無法使模型等價學習不平衡樣本。隨著深度學習的發(fā)展,有學者嘗試用深度神經(jīng)網(wǎng)絡(luò)解決數(shù)據(jù)不平衡問題:文獻[12]提出的生成對抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)能夠?qū)W習原始數(shù)據(jù)的分布,然后生成具有相似分布的新樣本;文獻[13]利用GAN生成故障樣本,進而提高故障診斷模型的泛化能力;文獻[14]為解決GAN的模式崩潰與訓練不穩(wěn)定問題,提出了基于深度遺憾分析(Deep Regret Analysis,DRA)的變分自編碼(Variational Auto-Encoder, VAE)- GAN的滾動軸承故障診斷方法,在VAE-GAN 的基礎(chǔ)上使用DRA機制和特征匹配模塊,提高了生成樣本的質(zhì)量。
針對變工況問題:文獻[15]提出了一種基于對抗學習的分布式自適應(yīng)網(wǎng)絡(luò),通過改進聯(lián)合最大平均差(Improved Joint Maximum Mean Difference, IJMMD)測量源域與目標域之間的聯(lián)合分布差異,無需近似計算,利用對抗性域自適應(yīng)方法提取源域與目標域數(shù)據(jù)的不變特征,實現(xiàn)無監(jiān)督變工況故障診斷;文獻[16]提出了一種基于注意力的雙層對抗網(wǎng)絡(luò)的變工況滾動軸承故障診斷方法;文獻[17]提出了一種新的多任務(wù)域自適應(yīng)變工況滾動軸承智能故障診斷方法。上述方法取得了一定的成果,但大多考慮全局域?qū)R,計算復雜。
為更好地解決上述問題,本文提出一種輔助分類生成對抗網(wǎng)絡(luò)與深度子領(lǐng)域自適應(yīng)網(wǎng)絡(luò)(Auxiliary Classifier Generative Adversarial Networks-Deep Subdomain Adaptation Network, ACGAN-DSAN) 相結(jié)合的變工況滾動軸承故障診斷方法。首先,用自適應(yīng)損失函數(shù)代替原來ACGAN中的交叉熵損失函數(shù),生成高質(zhì)量軸承數(shù)據(jù)進行平衡;然后,使用子領(lǐng)域自適應(yīng)網(wǎng)絡(luò)對齊源域與目標域的數(shù)據(jù)分布并加入自注意力機制;最后,構(gòu)建聯(lián)合損失進行變工況自適應(yīng)故障診斷。
GAN[12]主要由生成器和鑒別器組成,生成器主要用于學習原始數(shù)據(jù)的分布并生成與之相似的數(shù)據(jù),鑒別器主要用于判斷輸入的數(shù)據(jù)是真實數(shù)據(jù)還是來自生成器的數(shù)據(jù)并訓練至納什均衡。目標函數(shù)為
Ez~pz(z)[log(1-D(G(z))],
(1)
式中:x為真實數(shù)據(jù);pdata(x)為真實數(shù)據(jù)分布;z為隨機噪聲;pz(z)為隨機噪聲的數(shù)據(jù)分布;D(x)為樣本為真的概率;G(z)為生成的樣本。
ACGAN[18]是GAN的變體,ACGAN給生成器輸入標簽信息,利用隨機噪聲和類別數(shù)生成有對應(yīng)標簽的樣本Xfake=G(z,c)。生成器根據(jù)輸入標簽生成指定樣本,鑒別器輸出樣本真假與標簽類別,實現(xiàn)樣本分類。ACGAN網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 ACGAN結(jié)構(gòu)
ACGAN的損失函數(shù)包含判斷樣本真假的損失LS及判斷標簽類別的損失LC,即
LS=E[logP(S=real∣Xreal)]+
E[logP(S=fake∣Xfake)],
(2)
LC=E[logP(C=c∣Xreal)]+
E[logP(C=c∣Xfake)],
(3)
式中:S為樣本真假;C為樣本類別;Xreal為真實數(shù)據(jù);Xfake為生成數(shù)據(jù);P(S∣X)和P(C∣X)為判別器網(wǎng)絡(luò)輸出數(shù)據(jù)為真實樣本的概率分布、所屬數(shù)據(jù)類別概率分布。
鑒別器用于鑒別樣本的真假與類別,即LS,LC越大越好,其損失函數(shù)為LS+LC最大。生成器希望LS小,LC大,其損失函數(shù)為LC-LS最大。
全局領(lǐng)域自適應(yīng)的遷移網(wǎng)絡(luò)雖然能使2個域的分布大致相同,但會使不同子域的數(shù)據(jù)分布過于接近,無法準確分類。文獻[19]提出了一種子域適應(yīng)方法,即在源域和目標域中精確對齊同一類別內(nèi)相關(guān)子域的分布,結(jié)構(gòu)如圖2所示。
圖2 DSAN結(jié)構(gòu)圖
DSAN使用類別劃分子領(lǐng)域,一個類別對應(yīng)一個子領(lǐng)域。采用局部最大均值差異(Local Maximum Mean Discrepancy,LMMD)對齊子領(lǐng)域分布,其計算方法為
(4)
樣本xi的權(quán)重為
(5)
采用真實標簽的獨熱編碼計算源域樣本,使用網(wǎng)絡(luò)的概率輸出作為偽標簽計算目標域樣本。整個網(wǎng)絡(luò)的損失函數(shù)為
(6)
原始一維時序信號數(shù)據(jù)可以用來處理數(shù)據(jù)不平衡問題,但特征不明顯,生成樣本的質(zhì)量較差。故本文將一維的原始軸承數(shù)據(jù)轉(zhuǎn)換為二維的灰度圖,轉(zhuǎn)換過程如圖3所示。
圖3 一維數(shù)據(jù)轉(zhuǎn)化為二維圖像
將一維振動信號切分為若干個N×N的序列片段,將每個序列片段歸一化到0~255之間,將像素值取整后轉(zhuǎn)換為灰度圖,歸一化公式為
(7)
式中:p(i,j)為圖像在(i,j)點的像素值;h為取整;Lmax,Lmin為振動信號的最大值和最小值。
為了提高樣本質(zhì)量,提出了一種改進ACGAN網(wǎng)絡(luò),結(jié)構(gòu)如圖4所示。
圖4 改進ACGAN結(jié)構(gòu)圖
為降低噪聲對模型穩(wěn)定性的影響以及提高圖像質(zhì)量,用自適應(yīng)損失函數(shù)代替原ACGAN中的交叉熵損失函數(shù),即
(8)
式中:x為期望值與目標值的差;α為超參數(shù),用于控制損失函數(shù)的魯棒性;m為尺度參數(shù),用于控制x在0附近的彎曲尺度。
(8)式可轉(zhuǎn)化為
(9)
當m=1.1時,對(9)式求導可得f與x的關(guān)系如圖5所示。由(9)式和圖5可知:當limα→2時,損失函數(shù)近似于平方誤差損失,x越大,對損失函數(shù)的影響越大,模型收斂越快;當α=1時,損失函數(shù)近似于平均絕對誤差損失,當|x|增大到大于m時,導數(shù)的大小飽和為常數(shù)1/m,當殘差增加時,其影響永遠不會減小,但永遠不會超過固定值,收斂速度慢;當α<1時,|x|逐漸大于m,損失函數(shù)的導數(shù)值逐漸減小,故x在梯度下降期間對模型的影響較小,這說明當期望值與目標值的差值增大時對梯度的影響較小,可以有效地減緩模型訓練過程中異常值的影響,提高生成樣本的質(zhì)量;當limα→-∞時,|x|>3m時損失函數(shù)值幾乎不變,對模型影響幾乎不變。
圖5 自適應(yīng)損失函數(shù)導數(shù)
在模型訓練過程中,根據(jù)(10),(11)式優(yōu)化α,m使模型能自適應(yīng)地選擇不同形式的損失函數(shù),即
(10)
(11)
為提高變工況下故障診斷的泛化能力,在原DSAN中加入自注意力機制,結(jié)構(gòu)如圖6所示。自注意力機制可以調(diào)整不同特征向量的注意力權(quán)重,從而弱化冗余特征信息。根據(jù)樣本重要性分配權(quán)重,即
(12)
加入自注意力機制的交叉熵分類損失為
(13)
LMMD的自適應(yīng)損失為
(14)
改進后的DSAN損失函數(shù)為
(15)
基于ACGAN-DSAN的變工況滾動軸承故障診斷流程圖如圖7所示,主要包括數(shù)據(jù)預(yù)處理、數(shù)據(jù)集平衡、離線階段、在線階段,具體步驟如下:
1)將不同工況的原始振動信號分為源域和目標域,將一維數(shù)據(jù)轉(zhuǎn)換為二維灰度圖;
2)將轉(zhuǎn)換后的源域和目標域數(shù)據(jù)分別用來訓練改進ACGAN網(wǎng)絡(luò),達到納什均衡后保存模型,調(diào)用模型生成源域和目標域類別不平衡的數(shù)據(jù);
3)用殘差網(wǎng)絡(luò)提取源域和目標域的特征,將其映射到再生核希爾伯特空間中,在該空間中用LMMD計算每個類別源域和目標域的最大均值差異,并在DSAN中加入自注意力機制,由交叉熵分類損失和LMMD自適應(yīng)損失計算聯(lián)合損失,判斷是否完成訓練;
4)模型訓練完成后保存模型,調(diào)用模型進行在線故障診斷。
圖7 變工況滾動軸承故障診斷流程圖
采用美國凱斯西儲大學[20]的6205深溝球軸承數(shù)據(jù)集。CPU為Intel Core i7-8700,GPU為INVIDIA GTX 1080 Ti,深度學習框架為Tensorflow和Pytorch。
試驗裝置如圖8所示,轉(zhuǎn)速分別取1 772,1 750,1 730 r/min,定義為工況A,B,C,每種工況又包含10種故障類型,見表1。
圖8 試驗臺
表1 6205軸承的故障類型
采樣頻率為48 kHz,每個故障類型取4 096個連續(xù)點生成一張像素為64×64的灰度圖,每類故障可以生成115張灰度圖,每種工況下共計1 150張灰度圖,轉(zhuǎn)換后的灰度圖如圖9所示。在轉(zhuǎn)換后的灰度圖數(shù)據(jù)集中,取80%作為訓練樣本,20%作為測試樣本。
圖9 不同故障類別的灰度圖
采用KL散度、歐式距離(ED)和皮爾遜相關(guān)系數(shù)(PCC)3個指標來評估樣本質(zhì)量,KL散度、ED表征2個分布的相似度,其值越小,說明兩分布越相似,PCC表征2個變量的相關(guān)性,其值越大,說明越相關(guān)。為驗證本文方法的有效性,選擇DCGAN,ACGAN與本文改進ACGAN對比,3組試驗均采用相同的數(shù)據(jù)集和訓練參數(shù)。迭代次數(shù)為1 000,批次大小為32,鑒別器的學習率為0.000 2,生成器的學習率為0.000 3,優(yōu)化器采用Adam算法,3種方法生成樣本的各項質(zhì)量指標見表2:改進ACGAN的KL散度和ED最小,PCC最大,說明改進ACGAN生成樣本的質(zhì)量優(yōu)于其他模型。
表2 不同方法生成樣本的各項質(zhì)量指標
改進ACGAN在訓練過程中,生成器和鑒別器的損失曲線如圖10所示:當?shù)螖?shù)達到1 500時,生成器和鑒別器的損失曲線基本耦合并保持小幅震蕩,說明網(wǎng)絡(luò)達到了納什均衡。網(wǎng)絡(luò)訓練后故障8的生成灰度圖如圖11所示,隨機截取故障8的真實灰度圖,如圖12所示。
圖10 改進ACGAN的損失曲線
圖11 故障8的生成樣本圖
圖12 故障8的真實樣本圖
為進一步驗證本文方法在數(shù)據(jù)集不平衡方面故障診斷的有效性,選擇Borderline-SMOTE[21],DCGAN,ACGAN進行對比,生成不平衡類別的數(shù)據(jù)然后補全訓練集數(shù)據(jù),用CNN網(wǎng)絡(luò)進行故障診斷,診斷準確率見表3:改進ACGAN的診斷準確率優(yōu)于其他模型,說明本文的數(shù)據(jù)生成方法能有效解決數(shù)據(jù)不平衡問題。
表3 不同方法對軸承故障診斷的準確率
為驗證本文方法在變工況軸承故障診斷方面的有效性,選擇DAN,Deep Coral[22]與本文改進DSAN進行變工況軸承的故障診斷。設(shè)1為原始軸承數(shù)據(jù)集,2為ACGAN生成數(shù)據(jù)進行平衡后的數(shù)據(jù)集,3為改進ACGAN生成數(shù)據(jù)進行平衡后的數(shù)據(jù)集,根據(jù)工況的不同,分別進行A1-B1,A1-C1,B1-C1,A2-B2,A2-C2,B2-C2,A3-B3,A3-C3,B3-C3(A1代表原始數(shù)據(jù)中的A工況,A2代表ACGAN生成的數(shù)據(jù)平衡原始數(shù)據(jù)集后的A工況,A3代表本文方法生成的數(shù)據(jù)平衡原始數(shù)據(jù)集后的A工況,B,C工況類似;A1-B1代表A1為源域,B1為目標域,其他類似)的變工況軸承故障診斷試驗,具體的任務(wù)樣本集見表4。參數(shù)設(shè)置:網(wǎng)絡(luò)的輸入為64×64的灰度圖,初始學習率為0.01,動量因子為0.9,批次大小為32,迭代次數(shù)為100。每次試驗重復3次取平均值,結(jié)果見表5。
表4 任務(wù)樣本集設(shè)置
表5 變工況軸承故障診斷的準確率
對比表5中任務(wù)1,2,3,任務(wù)4,5,6,任務(wù)7,8,9可知:改進ACGAN生成數(shù)據(jù)進行源域數(shù)據(jù)增強和目標域數(shù)據(jù)平衡后的數(shù)據(jù)集的故障診斷準確率高于原始數(shù)據(jù)和ACGAN生成數(shù)據(jù)進行源域數(shù)據(jù)增強與目標域數(shù)據(jù)平衡后的數(shù)據(jù)集,說明本文方法生成的數(shù)據(jù)能有效解決數(shù)據(jù)不平衡的變工況軸承故障診斷問題。
對比表5中任務(wù)1,4,7,任務(wù)2,5,6,任務(wù)3,6,9可知:使用改進ACGAN生成數(shù)據(jù)進行數(shù)據(jù)增強時,本文方法的故障診斷準確率高于DAN,Deep Coral且波動不大,說明本文方法具有較好的魯棒性。
對比表5中任務(wù)4,5,6可知:DAN,Deep Coral的A-C工況故障診斷準確率遠低于本文方法, 說明對齊源域和目標域中同一類別相關(guān)子域的分布能夠獲取每個類別的細粒度信息,這些信息可以在端到端的框架中訓練,使模型能有效提高變工況軸承故障診斷的準確率。
為進一步驗證本文方法對故障誤判的情況,對本文方法進行混淆矩陣試驗,分別選取有自注意力機制A1-B1工況,無自注意力機制A3-B3工況,有自注意力機制A3-B3工況,結(jié)果如圖13所示:1)未進行數(shù)據(jù)增強時,模型將故障6誤判為故障1,故障1的準確率僅33%;2)在有自注意力機制A3-B3工況,故障2, 8的準確率分別為67%,86%,其余故障的準確率均達到100%,說明本文方法的數(shù)據(jù)增強能有效提高故障診斷準確率;3)有自注意力機制的診斷準確率高于無自注意力機制,說明引入自注意力機制,能降低模型對故障識別的混淆度。
(a) 有自注意力機制A1-B1工況
(b) 無自注意力機制A3-B3工況
(c) 有自注意力機制A3-B3工況
為解決軸承故障數(shù)據(jù)少、樣本不平衡以及變工況導致故障診斷準確率低的問題,提出一種基于ACGAN-DSAN的滾動軸承故障診斷方法,其具有以下優(yōu)點:
1)改進ACGAN能有效提高生成樣本的質(zhì)量;
2)對原始數(shù)據(jù)集進行數(shù)據(jù)增強,有效提高了軸承故障診斷的準確率;
3)使用子領(lǐng)域自適應(yīng)方法將源域和目標域同一類別的特征對齊,增大了樣本的類間可分性,提高了模型的分類性能;
4)在DSAN中加入自注意力機制,提高了模型對故障特征的非線性擬合能力,降低了模型對故障識別的混淆度,進一步提高了軸承故障診斷的準確率。
ACGAN-DSAN在加噪的環(huán)境中故障診斷效果較差,后續(xù)有待進一步研究。