許小偉,韋道明,嚴運兵,劉哲宇,敖金艷,占 柳
(1.武漢科技大學 汽車與交通工程學院,武漢 430065;2.廣東海洋大學 船舶與海運學院,廣東 湛江 524088)
永磁同步電機(permanent magnet synchronous motor,PMSM)具有效率高、體積小、功率密度大和調速范圍寬等優點,在生產生活中有著廣泛的應用。但是電機長時間運行可能會出現電氣故障、退磁故障、機械故障等[1]。電機故障具有偶發性,傳統的故障診斷方法難以滿足高效快速診斷的要求。深度學習憑借其良好的特征提取能力被應用在故障診斷領域[2-3],但足量且均衡的數據集是保證基于深度學習的故障診斷方法發揮其性能的前提[4]。通過試驗平臺采集數據難以模擬所有故障類型和故障程度,而實際應用中采集的電機故障樣本又偏少,與正常樣本相比嚴重失衡。
過采樣方法是目前解決樣本數量缺失的思路之一。傳統的隨機過采樣算法(random oversampling,ROS)[5]通過簡單復制使數據集各類樣本達到均衡,但這種方式得到的數據集樣本重疊嚴重,隨著生成數據的增多,導致診斷模型泛化性弱。合成少數類過采樣技術(synthetic minority oversampling technique,SMOTE)[6]、自適應合成樣本方法(adaptive synthetic,ADASYN)[7]在少數類樣本中通過線性插值生成樣本,緩解了ROS導致的模型泛化性弱的問題。但是此類方法并未考慮到原始數據的整體分布特性,所以對模型性能的提升有限[8]。
大數據的驅動下,深度學習算法在數據擴張領域取得了一定成果。文獻[9-10]在自編碼的基礎上對樣本進行了重建,生成了效果不錯的數據,但是概率計算復雜,樣本的重構精度偏低。文獻[11]提出的生成對抗網絡(generative adversarial nets,GAN)利用兩個神經網絡對抗有效地提升了生成圖像的質量。文獻[12-13]提出了超分辨GAN(super-resolution generative adversarial network,SRGAN),提高了對低分辨率圖像的超分辨率重建效率。文獻[14-15]考慮到數據的相關性,在模型中添加上下文約束條件,生成了高質量的重建圖像。以上研究表明GAN能夠通過訓練學習到原始樣本的特征分布[16]。
鑒于采集到的電機故障數據是一維時間序列,研究表明GAN的衍生模型具有生成一維時間序列數據的潛力。文獻[17]提出了一種基于GAN的多優化數據插補方法解決了風力渦輪機大規模數據丟失的問題;文獻[18]利用ACGAN對心電信號進行了有效擴張。
PMSM故障數據是變化波動大且分布多樣的離散數據,直接將ACGAN用于生成電機故障數據存在生成效率低、重建損失大、訓練不穩定等情況。鑒于此,本文提出了一種基于改進ACGAN的數據擴張方法,對電機故障數據進行擴充。首先使用Wasserstein距離約束生成數據的重建損失,利用梯度懲罰代替權值剪裁對模型進行優化;然后,考慮到電機發生故障時數據的時序特性和相關性,在生成器中引入循環神經網絡;最后將BP神經網絡作為診斷模型,對比數據擴張前后的分類結果驗證本文所提方法的有效性。
生成對抗網絡由生成器和判別器兩部分組成[19],且兩者處于博弈對抗關系。生成器的目的是生成盡量逼真的數據騙過判別器的甄別;判別器的目的是將真實數據和生成數據準確區分,并且最大化判別概率。其結構見圖1。

圖1 GAN結構示意
假設n組電機故障樣本,則故障數據集為X={x1,x2,…,xn},xn為第n組故障樣本的特征向量。隨機噪聲z服從Pz分布,即z~Pz為生成器的輸入;真實數據X滿足客觀真實分布Pdata,即X~Pdata。
通過對生成器和判別器進行交替迭代訓練,建立Pz和Pdata之間的映射關系。將生成器生成的樣本和原始故障樣本一同輸入到判別器中,通過神經網絡計算獲得樣本為真實樣本的概率,將輸出結果反饋給生成器使得生成更加逼真的數據,達到以假亂真的地步。
最終當生成器生成的數據分布和故障數據分布一致時,達到納什均衡點。則GAN的目標函數為
Ez~Pz[ln(1-D(G(z)))]
(1)

ACGAN[20]通過在生成器和判別器中引入類別標簽,用來引導樣本的生成,解決了傳統GAN無法控制生成數據類別的缺陷。同時ACGAN模型具備生成指定類別故障數據的特性,減少了訓練時間。其結構見圖2。

圖2 ACGAN結構示意
保持生成器G不變,訓練判別器D的目的是使Ls+Lc最大化;保持判別器D不變,訓練生成器G的目的是使Ls-Lc最大化。ACGAN的目標函數為:
Ls=Ex~Pdata[log2(D(x))]+Ez~Pz[log2(1-D(G(z)))]
(2)
Lc=Ec~Pdata[log2(D(c))]+Ec~Pz[log2(1-D(G(c)))]
(3)
式中:Ls為判別器輸出數據為真的概率,Lc為判別器輸出數據分類正確的概率。
選用Wasserstein距離來度量實際電機故障數據分布與合成電機故障數據分布之間的差異,避免了ACGAN由于采用JS散度或者KL散度來衡量實際分布和生成分布的距離時產生的訓練不穩定。Wasserstein距離[21]定義為
(4)

(5)
式中:K為常數;sup為上確界;‖f‖L≤K表示函數f(x)滿足K-Lipschitz連續,保證其導函數在一定范圍。即在訓練時網絡更新的權重被限定在一定區間內,保證正常的梯度優化,使得網絡權值在每一輪迭代中不會有較大的變化,有效解決ACGAN訓練不穩定的問題。
為了避免權值范圍設置不恰當導致梯度爆炸或梯度消失這一問題,本文在原有的損失函數中添加梯度懲罰項[22],以提高網絡訓練的穩定性。其表達式為
(6)

由此可知,基于梯度懲罰優化的改進ACGAN網絡模型總損失函數為:
Ls=Ex~Pdata[log2(D(x))]+Ez~Pz[log2(1-D(G(z)))]+

(7)
Lc=Ec~Pdata[log2(D(c))]+Ec~Pz[log2(1-D(G(c)))]
(8)
結合變量之間潛在的相關性及歷史數據變化規律,本文在生成器中引入循環神經網絡[23],結構見圖3。

圖3 改進ACGAN的生成器
生成器由一系列相同的結構單元組成,每個結構包含g(·)、f(·)兩部分。全局變量時間步驟T控制生成器的大小。
首先從先驗分布中采樣得到一個樣本zt,zt與此時對應的標簽拼接成變量hz,c,t;然后將hz,c,t縮放至與hy,t相同維度并組成[hz,c,t,hy,t],hy,t為t-1時刻f(·)的輸出結果;最后輸入到f(·),經過多層卷積操作之后得到當前t時刻的生成數據,輸出結果為yt;同樣的,遍歷所有的時間步驟,最終輸出結果yT。
改進ACGAN生成器網絡整體架構見圖4,網絡的超參數是在文獻[18]的基礎上進行實驗所得的結果。卷積核大小和歸一化時采用的動態均值動量大小為原文獻的默認數值;由于電機故障數據是一維的時間序列,所以采用1D卷積來進行數據維度上的處理;濾波器的數量以2為倍數,在結果重構誤差相近的情況下選擇較小的數值,以減少網絡參數,優化模型提高訓練速度;為了充分學習到數據潛在的內部特征,將步長設置為1;采用ReLU激活函數提高訓練速度。生成器在每個時間步長處,添加長度為128的潛變量與上一個步長的結果拼接。

圖4 基于改進ACGAN的電機數據擴張方法框架
為保證生成數據與輸入數據的維度一致,f(·)網絡的輸出層濾波器的個數設置為4,分別對應A相電流、B相電流、負序電流、電磁轉矩4類數據。生成器基本單元里g(·)、f(·)的詳細網絡參數見表1、2。g(·)、f(·)的輸出層分別采用tanh、sigmoid激活函數,其他卷積層及全連接層采用ReLU激活函數。

表1 g(·)網絡結構參數

表2 f(·)網絡結構參數
改進ACGAN模型的判別器網絡結構與生成器的編碼g(·)基本類似,不同之處在于,為了提高判別器對于數據真偽的判別能力,卷積層的激活函數采用LeakyReLU以提高識別性能。輸出層為2個并列結構的全連接:一個為能夠判定樣本類別的softmax輸出層;另一個為鑒別樣本真假的全連接,采用sigmoid激活函數。最終判別器輸出的值是Wasserstein距離,并且對整個判別模型采用梯度懲罰提升訓練穩定性。
基于改進ACGAN的損失函數,對模型參數進行迭代更新。在每個訓練單元中,訓練過程可以分為2個步驟。
1)判別器的訓練:首先從高斯分布取樣生成數據和原始數據,組成一個批次的訓練數據m;然后將其生成數據和原始數據一同輸入到判別器中,通過對判別器損失函數求導來對判別器網絡參數進行優化,使用Adam算法作為梯度優化算法。
2)生成器的訓練:判別器訓練完成后,開始生成器的訓練。將判別器的輸出結果用來反饋給生成器,指導生成器生成質量更高的數據。通過對生成器損失函數求導對生成器網絡參數進行優化,同樣使用Adam算法作為梯度優化算法。
準確的判別器梯度信息會促進生成器性能的提升,本文先預訓練判別器300次,然后在每一輪正式訓練過程中采取先訓練判別器nD次再訓練生成器1次的方式來提高模型的整體性能。在一輪訓練完后,訓練過程重新開始,通過反復迭代訓練,使整個模型在判別器和生成器損失函數的損失值上達到納什均衡。最后生成器可以根據給定的標簽控制和高斯噪聲生成PMSM不同故障類型的數據。
改進ACGAN的訓練過程如下所示:
算法改進ACGAN
默認參數:學習率l=0.000 5;λ=5;m=128;nD=5;β1=0.9;β2=0.999;w,判別器初始參數;θ,生成器初始參數。
步驟1:while網絡不滿足收斂要求
步驟2:Fort=0,…,nDdo
步驟3:Fori=1,…,mdo
步驟4:x~Pdata//(從真實樣本中取樣)
步驟5:z~Pz(z)//(從潛在分布中取隨機噪聲)
步驟6:ε~U[0,1]//(隨機參數服從均勻分布)


步驟9:
Ls←Ex~Pdata[log2(D(x))]+Ez~Pz[log2(1-D(G(z)))]+
Lc←Ec~Pdata[log2(D(c))]+Ec~Pz[log2(1-D(G(c)))]
步驟10:end for

步驟12:end for


步驟15:end while
步驟16:輸出網絡模型參數
本文所采用的車用永磁同步電動機性能參數如下:額定功率12 kW,額定轉速為1 500 r/min,電機極數為10,定子槽數為45,冷卻方式為水冷。電機控制系統的參數:電機控制器型號KTZ54X32SAN,額定電壓540 V,額定功率90 kW。
選用了A相電流、B相電流、負序電流、電磁轉矩來形成電機故障的組合特征,通過設置不同的并聯短路匝數來模擬不同程度的匝間短路故障,實驗采集的部分數據見表3。

表3 部分實驗數據
電機不同狀態對應的編碼見表4。其中,所有狀態下,輸入電壓的不平衡度控制在0~4%范圍內。健康狀態為電機正常,無匝間故障;允許狀態、故障狀態A、故障狀態B分別為短路程度為5%、10%、15%時發生的匝間短路。

表4 電機狀態編碼
本文構建的數據集樣本總數為2 382。其中,健康狀態、允許狀態、故障狀態A、故障狀態B樣本數據量分別為1 675、358、226、123。將每一類別樣本按照3∶1分為訓練集和測試集,各類別樣本的訓練集和測試集數量見表5。

表5 樣本分布狀態
3.2.1 數據擴張過程分析
為了更加直觀了解在訓練過程中生成數據的動態變化,采用主成分分析法(principal component analysis,PCA)將生成數據映射到二維空間,觀察其在二維空間的分布,其結果見圖5。其中在改進ACGAN的訓練過程中,保持各類別生成數據和原始數據數量一致;狀態編碼1、2、3、4分別為健康狀態、允許狀態、故障狀態A、故障狀態B 4類電機狀態;圖5(a)、(b)、(c)分別為模型迭代了1 000次、5 000次、10 000次時生成數據的分布結果,圖5(d)為原始數據的分布結果。

圖5 生成數據和原始數據分布
由圖5可知,當迭代次數較少時,模型還未充分學習到原始數據的潛在特征,導致改進ACGAN訓練生成的數據分布和原始數據分布相差較遠;隨著迭代次數的增加,模型逐漸學習到變量之間的相關性和歷史變化規律,改進ACGAN生成的數據分布和原始數據分布越來越相似。
為驗證基于梯度懲罰優化的ACGAN模型具有更好的收斂性和訓練穩定性,本文選用的基于權值裁剪的傳統方法作為對比[21],實驗結果見圖6。

圖6 基于不同方法的Wasserstein距離變化
由圖6可知,在迭代次數處于0~2 000之間,基于權值裁剪的傳統方法訓練極不穩定,當訓練到6 000次后才相對穩定,且最終未達到全局最優。相比之下,基于梯度懲罰優化的改進ACGAN訓練過程中收斂速度和收斂結果都有顯著提升。當訓練輪數為2 000時模型逐步開始收斂且在后續迭代過程中平穩收斂到0.03左右,此時的生成器已具有良好的衍生能力。相比于ACGAN,基于梯度懲罰的改進ACGAN模型最終的Wasserstein距離更小,學習到的數據分布與真實數據更為接近。
3.2.2 數據有效性分析
實驗基于2 382組真實樣本進行數據擴張,最終擴張優化后的訓練集中各類別的樣本數量相同,將訓練數據輸入到隱含層大小為20、50、30的BP神經網絡,最大迭代次數為1 000,參數更新算法為Adam,損失函數為交叉熵,小批量訓練樣本為32。優化網絡參數,得到訓練后的診斷模型。
圖7(a)為無數據擴張下故障診斷模型損失函數變化趨勢,可以看到訓練集的損失函數最終近似收斂到0,而測試集的損失函數一直在0.9左右振蕩,則表明此時模型因訓練數據不足出現了過擬合現象。圖7(b)為經改進ACGAN數據擴張后故障診斷模型的損失函數變化趨勢,其損失函數值在訓練集和測試集上均近似收斂到0,說明改進ACGAN模型產生的樣本具有多樣性,使得診斷模型過擬合現象基本消失,具有更強的泛化能力。
3.2.3 不同數據擴張方法性能對比
為了能夠在各類別數據量相差較大的情況下全面有效地綜合評價分類模型的性能,本文引入分類模型的精度指標和召回率指標對診斷網絡的泛化能力進行評價。其中Pi精度衡量的是系統的查準率,召回率Ri衡量的系統的查全率。見式(9)、(10):
(9)
(10)
式中:L為樣本總類別數;nij為實際樣本類別為i被預測為類別j的樣本。
為綜合評估分類模型的性能,本文選用分類準確率、F1度量、G-mean來綜合評價分類模型的分類性能。其公式見式(11)~(13):
(11)
(12)
(13)
為了檢驗本文提出方法生成數據的質量,選用了ROS、SMOTE、ADASYN 3種傳統過采樣方法進行對比分析,每一種方法均保證訓練集中各類別的樣本數量相同。所有方法在測試集上的結果見表6。
由表6可知,相比于原始數據集,采用不同方法擴張后的數據集都會使得模型的診斷性能得到一定的提升。其中,BP神經網絡與ROS算法結合時,其λAcc、λF1、λG-mean指標較擴張前分別提高了4.5%、3.8%、4.8%;BP神經網絡在與SMOTE算法結合時,其λAcc、λF1、λG-mean指標較擴張前分別提高了5.5%、5.3%、14%; BP神經網絡在結合ADASYN算法時,其λAcc、λF1、λG-mean指標較擴張前分別提高了6.5%、7.8%、17%;與改進ACGAN結合時,其λAcc、λF1、λG-mean指標較擴張前分別提高了9%、15%、18%。因此,與傳統過采樣方法相比,在數據合成方式和合成性能方面,改進ACGAN更加適合用于改善電機故障數據的不平衡問題,進而提升模型的綜合分類性能。
針對PMSM故障數據集樣本數量少、各類別樣本數量不平衡的問題,本文提出了一種基于改進ACGAN模型的數據擴張方法,通過實際算例,與傳統過采樣方法相比,得到如下結論:
1)利用PCA降維可視化對所提模型進行評估,結果表明改進ACGAN模型能夠學習到原始數據的分布特征,生成數據與原始數據的分布相似。
2)改進ACGAN在ACGAN模型中使用Wasserstein距離衡量實際分布與生成分布之間的差異,并進一步引入梯度懲罰項進行改進,提升了網絡訓練的穩定性。
3)考慮到變量之間的相關性和歷史變化規律,在基于改進ACGAN的電機故障數據擴張方法中引入循環神經網絡,提高了生成數據的質量,使得診斷模型在分類準確率、F1度量、G-mean指標上較傳統過采樣方法提升效果更為明顯。