高 偉,李福勝,張鐵竹
(鄭州鐵路職業技術學院機車車輛學院,河南 鄭州 451460)
模擬電路作為工業電子設備的重要組成部分,廣泛應用于工業控制、信號分析等領域[1-3]。模擬電路的失效會導致系統性能退化、失效等,造成財產損失和人員傷亡。因此,研究模擬電路故障診斷方法對于工業電子設備安全可靠運行具有重要意義[4-5]。
由于復雜模擬電路很難精確建模,因此基于數據驅動的方法得到了廣泛應用。數據驅動方法一般包括特征提取和故障模式分類2 部分。特征提取主要是利用現代信號處理技術來提取故障特征,故障模式分類通常采用人工神經網絡ANN(Artificial Neural Network)、支持向量機SVM(Support Vector Machine)等淺層機器學習方法來識別不同故障模式。Yuan L F 等[6]選擇輸出信號的熵和峰度作為故障特征,提出一種基于ANN 的模擬電路故障診斷方法。Song D 等[7]將輸出信號經過分數階傅里葉變換后提取多種統計特征,采用核主成分分析KPCA(Principle Component Analysis)進行特征降維后輸入SVM 進行模型訓練,利用訓練好的SVM 模型進行故障模式分類。Arabi A 等[8]提出一種基于多分類自適應神經模糊推理系統ANFIS(Adaptive Neuro-Fuzzy Inference System)的故障診斷方法,提取信號多種時頻域特征進行模型訓練。然而,這些方法依賴于信號處理技術和專家經驗,難以處理故障根源與信號特征之間的復雜非線性關系。
近年來,CNN、深度信念網絡DBN(Deep Belief Network)等深度學習算法已經廣泛應用在故障診斷領域,能夠直接提取深層故障特征,同時提高故障診斷準確率[9]。Zhang G Q 等[10]提出了一種基于深度信念網絡的故障診斷方法,采用DBN 模型對輸出信號進行自動特征提取。此外,相比于2D CNN 網絡主要處理圖像數據,1D CNN 由于能夠高效處理一維時間序列數據,已經廣泛應用于心電監護、軸承故障診斷、結構健康檢測等領域[11],并取得了不錯的效果。然而,傳統的1D CNN 一般采用多層全連接網絡作為分類器,因其參數過多容易造成模型過擬合,造成模型訓練失敗,對于未知樣本的故障診斷準確率較低。因此,提出一種基于1D CNN 的模擬電路故障診斷方法,直接從原始輸出信號中提取深層故障特征。同時,采用全局平均池化層代替多層全連接網絡,從而減少模型參數,提高訓練效率,避免模型過擬合。
采用的網絡結構如圖1 所示,1D CNN 主要由3個1D 卷積層、2 個最大池化層、1 個全局平均池化層和1 個Softmax 分類器組成。卷積層將輸入的局部區域與多個濾波器核進行卷積操作,然后送入神經元產生輸出特征。每個過濾器采用相同的卷積核來提取輸入局部區域的特征,這通常稱為權重共享。卷積操作可以定義為:

圖1 1D CNN 模型結構

在卷積操作后,采用激活函數來得到輸入信號的非線性表示。近年來,修正線性單元ReLU(Rectified Linear Unit)通常用作CNN 的激活函數來加速模型收斂。ReLU 函數可以表示為:

在卷積層后一般接池化層來實現降采樣操作,從而減少特征空間和網絡參數。通常池化層采用最大池化,其可以表示為:

傳統的CNN 模型一般采用多個全連接層來實現故障分類,但是全連接層會增加CNN 模型的參數,容易造成模型過擬合。全局平均池化層由于其具有不增加模型參數、能夠加速模型訓練等優點,目前已經用于GoogleNet,MobileNet,ShuffleNet 等CNN模型中,并取得了很好的效果[12]。因此,采用全局平均池化層取代全連接層,將最后一層卷積輸出的所有n個通道進行全局池化操作,從而得到長度為n的向量,輸入Softmax 分類器。Softmax 分類器可以表示為:

式中:zj表示第j個輸出神經元,m表示輸出神經元總數。
所提出的模擬電路故障診斷方法采用1D CNN直接從電路輸出電壓信號中提取具有良好可分性的故障特征,采用全局池化層代替全連接層來減少模型參數,后接Softmax 分類器實現故障模式分類,能夠避免模型過擬合,提高模型分類準確率,提高模型訓練效率,主要流程包括以下幾個步驟:
(1)針對被測電路,通過靈敏度分析確定故障模式,定義元件參數和容差;
(2)選取合適的激勵源,通過時域暫態分析和蒙特卡洛分析法得到不同故障模式下的原始時間序列信號,每次蒙特卡洛分析得到一個原始輸出信號,每個原始輸出信號看作一個樣本;
(3)對數據進行歸一化處理,數值限定在[0,1]范圍內,并將每個故障模式的數據平均隨機地劃分為訓練數據集和測試數據集;
(4)設置1D CNN 的網絡層數和類型、卷積核的大小和滑動窗口寬度、池化層窗口大小、學習率等參數,利用訓練數據集訓練1D CNN 模型;
(5)將測試數據集輸入訓練好的模型,進行故障數據分類,驗證模型的診斷性能,選用診斷準確率作為評價指標。
以四運放雙二階高通濾波器電路為實驗電路,采用Candence16.6 軟件進行電路仿真實驗來獲取故障模式數據,算法編程由Python3.6 實現,采用Keras 架構搭建1D CNN 模型。所有程序運行于處理器為Intel core i7-7500U、內存為8G 的計算機上。
實驗電路如圖2 所示,激勵源選擇峰值為5 V,持續時間為10 μs 的單脈沖信號,電阻和電容的容差均設置為5%。

圖2 四運放雙二階高通濾波器電路
圖3 為不同故障模式下被測電路輸出電壓,選取0~280 μs 內的被測電路輸出電壓直接作為模型輸入。通過蒙特卡洛分析,每個模式得到500 個脈沖響應數據,每個模式隨機選取50%的脈沖響應數據作為訓練數據,其余50%作為測試數據。

圖3 不同故障模式下被測電路輸出電壓
對被測電路進行靈敏度分析,選取C1、C2、R1、R2、R3、R4作為被測元件,故障碼、故障類別、標稱值和故障值如表1 所示,共得到12 個故障模式和1 個正常工作模式,其中↑和↓分別表示故障值高于和低于標稱值。

表1 實驗電路故障代碼及模式
為了獲得更好的訓練模型,采用自適應矩估計Adam(Adaptive moment estimation)優化器,其非常適合解決數據或參數較大的問題,具有較高的計算效率和較低的內存需求。作為模型訓練的重要參數,學習率的選取直接影響到訓練效果。不同學習率下的模型訓練結果如圖4 所示,當學習率為0.005 時,訓練過程能夠最快收斂,得到的模型性能最好。

圖4 不同學習率對比
為了直觀展示1D CNN 模型的特征提取過程,選擇t 分布隨機近鄰嵌入t-SNE(t-Distributed Stochastic Neighbor Embedding)進行特征降維,將測試數據集的輸入層數據和卷積層輸出特征降至2 維空間。
如圖5 所示為原始測量數據和卷積神經網絡不同層輸出特征的二維分布。由圖5(a)所示,F2 和F10 故障模式、F3 和F11 故障模式之間分布幾乎完全重疊,F0、F4 和F12 故障模型之間有明顯的重疊分布,無法準確地進行故障模式分類。采用1D CNN 模型進行特征提取后,圖5(b)~(d)分別為第1~第3 卷積層輸出特征的二維分布。由圖5(c)可得,經過2 次卷積操作,F2 和F10 故障模式分布已無明顯重疊,易于進行故障模式分類。由圖5(d)可見,經過第3 次卷積操作后,除了F0、F2 和F6 故障模式有輕微重疊分布外,其他故障模式均無重疊,邊界清晰可分,聚集性較好,便于后續分類器故障模式分類。實驗結果表明,提出的方法能夠有效地從原始時間序列數據中提取深度故障特征。

圖5 特征可視化
圖6 為1D CNN 測試集故障分類結果的混淆矩陣,F0、F2 和F6 故障模式的分類結果較差,這與圖5(d)中不同故障類型特征的2 維分布情況對應。F0、F2 和F6 故障模式的分類準確率均大于0.96,其余故障模式分類準確率均為1,每個故障模式的分類準確率相差不超過0.04。實驗結果說明,所提出的故障診斷方法有較高的故障診斷準確率,且對不同故障模式的診斷性能穩定。

圖6 診斷結果混淆矩陣
對四運放雙二階高通濾波器電路進行故障診斷對比實驗,對比實驗均以電路中C1,C2,R1,R2,R3,R4 為被測元件,故障值均為偏離元件標稱值±50%。實驗結果如表2 所示,所提出的基于1D CNN 的故障診斷方法的診斷準確率明顯高于NN、SVM 等傳統淺層網絡,說明該方法能夠更有效地提取深層故障特征,更容易實現準確故障模式分類。與基于DBN 的深度學習故障診斷方法相比,該方法在不對輸出信號進行人工處理以及更大測試集下診斷準確率提升了0.08%,表現出了更好的性能。

表2 故障診斷方法結果對比
同時,所提出的1D CNN 模型由于直接將原始信號作為模型輸入,未進行人工特征提取,因此其模型訓練時間為61.75 s,大于Yuan L F 等[6]和Song D等[7]中淺層模型的訓練時間。但是,本文方法的測試時間為0.266 5 s,能夠滿足應用要求。
提出了一種基于1D CNN 的模擬電路故障診斷方法,能夠直接高效地提取原始輸出信號的深度故障特征,無需專家經驗和信號處理技術。采用全局平均池化層取代傳統CNN 模型的全連接層,減少了模型參數,避免了模型過擬合,提高了模型訓練效率和診斷準確率。實驗結果表明,相比于傳統方法,所提出的故障診斷方法能夠有效提取故障特征,提高了故障診斷準確率,適用于模擬電路故障診斷領域。