朱 靜,何玉珠,崔唯佳
(1.成都航空職業技術學院,成都610100;2.北京航空航天大學儀器科學與光電工程學院,北京100191)
在武器系統、航空航天等國防軍工領域,對電子設備的指標要求更加苛刻,對自動化的故障診斷和先進的故障診斷技術有著迫切的需求。數模混合電路中80%以上的故障都來自于模擬電路部分,模擬電路的高故障率和診斷成本一直是困擾電子工業自動化測試的最大瓶頸[1-2]。因此,模擬電路故障診斷一直是一個研究熱點,也已經有很多研究成果[3-5]。模擬電路的元器件具有容差特性,且很多故障是元器件性能參數發生變化的軟故障,故障樣本可辨識性較差,這給故障診斷帶來了很大的難度。人工神經網絡[6-7]、極限學習機[8-9]和支持向量機[10-11]等是應用較為廣泛的分類算法,而SVM具有對樣本量需求較小、分類能力強的優點,因此被廣泛地用于模擬電路故障診斷。
在SVM的應用過程中,核函數選取和參數設置對其分類效果影響較大,RBF核函數已被證明在非線性問題中有著良好的效果[12],因此懲罰因子C和核參數gamma的選取成為問題的關鍵。常見的參數優化方法包括網格搜索算法(GridSearch)、遺傳算法(GA)、粒子群算法PSO等。網格搜索算法[13]類似于地毯式搜索,但僅適用于低維數據,且搜索速度較慢;遺傳算法[14]是一種有效的全局優化算法,但其收斂速度慢、編碼解碼過程較為復雜,且其3個算子參數選擇主要依靠經驗;粒子群優化算法[15]具有易于陷入局部極值點、迭代后期收斂速度慢、準確度較低等缺點。
針對上述問題,本文提出了一種適用于容差模擬電路軟故障診斷的正弦余弦算法(SCA)優化支持向量機的分類方法。在對實驗電路數據進行小波熵特征提取,采用主元分析法(PCA)進行特征選擇后構成故障集,利用SCA-SVM中對故障集進行故障診斷,得到故障分類結果。
SCA是由Seyedali Mirjalili提出的一種新型類粒子群智能優化算法[16]。在SCA算法中,當正弦函數或余弦函數值的絕對值大于1時,算法進行全局探索;當正弦函數或余弦函數的絕對值介于-1和1之間時,算法進行局部開發,原理如圖1所示。SCA算法最顯著的特點是借助正弦函數和余弦函數值變化來實現優化搜索,能夠探索不同的搜索空間,有效避免陷入局部最優,具有模型簡單、調節參數少、收斂速度快、全局尋優能力強等優點。通過SCA算法求解標準測試函數以及與其他多種智能優化算法的比較,均證明了該優化算法的優越性[16-18]。
在正弦余弦算法中,個體位置初始化后采用正弦余弦函數在后續迭代中更新個體位置。具體更新方程為:
式中,為個體X在第t次迭代中的位置,r1、r2、r3為隨機數,Pi是當前個體最優解的位置。在計算過程中,有選擇地使用上述的位置更新方程:
式中,r4為[0,1]范圍中的隨機數。
在上述公式中,r1、r2、r3、r4是SCA算法的4個主要參數。其中,參數r1決定了下一次迭代時的位置(或移動方向),它既可以是當前解和目標解之間的區域(圖1圓形內部區域),也可以是二者之外的區域(圖1圓外側環形區域);參數r2為[0,π]之間的隨機數,定義了當前移動應該朝向或遠離目標解的步進值;參數r3為目標解隨機賦予的一個權值,目的是加強(r3>1)或削弱(r3<1)所定義的步進值對目標解的影響;參數r4表示如何在式(3)中的正弦和余弦分量之間切換,當r4<0.5時,按正弦公式進行迭代,當r4≥0.5時,按余弦公式進行迭代。這個設計保證了算法在局部開發和全局探索之間的平衡,正弦和余弦函數的幅值在[-1,1]范圍內時是局部開發階段,在[-2,-1]和[1,2]則是全局探索。
為了平衡局部開發和全局探索,遍歷搜索空間內所有區域,并最終收斂得到全局最優解,SCA算法利用式(4)來實現正弦和余弦函數幅值的自適應調節:
式中,t為當前迭代次數,T為最大迭代次數,a為常數。
SVM是由Cortes等[19]提出的一種建立在VC維和結構風險最小化理論基礎之上的機器學習技術,集成了最大間隔超平面、凸二次規劃、Mercer核和松弛變量等多種技術理論,尤其適用于小樣本、高維度、非線性等工程實際問題,具有很強的泛化能力和機器學習能力[20-21]。
SVM的基本思想是通過映射將低維空間的數據樣本轉到高維空間中,使它們成為線性可分,再運用線性劃分來確定分類邊界[22]。對于給定的線性可分樣本集:
式中,d為訓練樣本的維數,n為訓練樣本的個數,xi為訓練樣本的輸入值,yi為訓練樣本的輸出值。樣本被最優分類超平面ω·x+b=0完全無誤地分為兩個類別,且離超平面距離最近的樣本與超平面之間的距離最大,離分類超平面最近的兩類樣本向量稱為支持向量。兩類支持向量與最優超平面間距之和為,因此,構造最優超平面問題就轉化為下述優化問題:
式中,ω為最優超平面法向量,b為偏移量。
對于線性不可分樣本,SVM采用非線性映射?將數據樣本映射到高維空間進行分類,運用核函數K(xi,yi)解決高維空間維數過高的問題。該核函數滿足Mercer條件,其對應于變換空間的內積,即K(xi,yi)=?(xi)·?(yi),內積運算在未知?(x)具體形式的情況下即可實現[23],通過選擇合適的核函數K(xi,yi)便可實現非線性樣本的線性分類。同時,引入一個松弛變量ξ(ξ>0)將分類面放寬。
引入懲罰因子C以權衡松弛變量ξi的懲罰度,則式(6)轉換為:
通過引入Lagrange乘子α將上述約束條件構建的最優超平面問題轉化為對偶二次規劃問題:
求解式(9),最終得到最優分類決策函數為:
選擇不同的核函數將對核函數的分類能力和適用范圍產生較大的影響,常用的核函數有線性核函數、多項式核函數、徑向基核函數等。本文采用Gauss徑向基核函數:
標準SVM是一個二分類算法,在處理模擬電路故障診斷的多分類問題時,需要構造多分類器,可以采用組合若干個二值分類器去構造多類分類器的方法實現[24]。SVM的參數選取對其分類效果有較大的影響,需要確定的參數主要包括懲罰因子C和核參數γ,本文采用SCA算法對其進行尋優。
基于SCA-SVM的模擬電路故障診斷的方法流程如圖2所示,主要包括故障注入及數據采集、特征提取、特征選擇、SVM參數尋優和故障分類5個主要步驟。
實驗電路采用Sallen-Key帶通濾波器,電路圖如圖3所示。各元件參數值為元件標稱值,元件容差為:電阻±5%,電容±10%。假設當元件參數偏離原值50%即為電路發生軟故障,↑表示元件偏大故障,↓表示元件偏小故障。將電路劃分為正常狀態(non fault-NF)和8種故障狀態,分別記為R2↑,R2↓,R3↑,R3↓,C1↑,C1↓,C2↑,C2↓,具體設置如表1所示。

表1 Sallen-Key帶通濾波器故障類型及編碼Table 1 Fault type and encoding of Sallen-Key band-pass filter circuit
在Cadence16.5中對電路進行仿真實驗,所施加激勵信號參數如圖3所示,對表1所示的故障類別分別進行100次Monte Carlo分析,采集120μs內的輸出端波形并保存作為電路輸出數據。9種故障共900個樣本,從中隨機抽取300個樣本作為訓練集,剩余600個樣本作為測試集。
對樣本集合數據集進行5層小波包變換,得到32個高頻和低頻序列系數,按照式(12)[25]計算小波包能量熵,構造得到32維特征向量。
式中,Hj,k為小波包能量熵,ej,k(i)為第i個子頻帶在j層k節點小波包對應能量在總能量中的概率。
32維故障特征向量存在著一些冗余成分會影響故障判別,因此采用主流的主元分析法(PCA)進行特征選擇,特征選擇閾值選取85%。
經過特征降維后的特征向量即可使用SVM進行分類,本文采用libSVM[26]來實現SVM,使用SCA對SVM的兩個參數進行優選。同時,將本文算法與其他算法進行對比,包括網格搜索法(GridSearch)、遺傳算法(GA)、粒子群算法(PSO)等。設定相同的libSVM參數c和g搜索范圍,c為[0.1,1000],g為[0.01,1000],交叉驗證參數v均為5。GridSearch步進值為0.1,GA、PSO和SCA均采用相同的迭代次數20和種群規模20,在訓練集上的對比結果如表2所示,消耗時間運行環境為四核Intel Core i5-4210U 1.70GHz,4G運行內存。
從表2可以看出,綜合分類準確率和消耗時間來看,SCA均表現最優,可見SCA-SVM非常適用于模擬電路故障診斷。使用SCA優選后的SVM參數進行計算,分類結果如圖4所示,在測試集上分類準確率達到了99.1667%(595/600)。

表2 Sallen-Key帶通濾波器電路訓練集診斷結果Table 2 Diagnosis result of training set on Sallen-Key band-pass filter circuit
為了驗證SCA-SVM分類器的通用性,選擇了更復雜的四運放雙二次高通濾波器電路作為驗證對象,元件標稱值和激勵信號設置如圖5所示,每個故障進行200次Monte Carlo分析。故障類別如表3所示,每個故障抽取前100個樣本組成訓練集,后100個樣本組成測試集。

表3 四運放雙二次高通濾波器故障類型及編碼Table 3 Fault type and encoding of four-opamp biquad highpass filter circuit
繼續采用4種不同算法進行驗證,算法參數設置同上,4種算法在訓練集上的運行情況如表4所示,GA、PSO和SCA三者的詳細優化迭代進程如圖6所示。

表4 四運放雙二次高通濾波器電路訓練集診斷結果Table 4 Diagnosis result of training set on four-opamp biquad highpass filter circuit
從表4和圖6可以看出,無論是最優分類準確率、運行時間,還是算法的收斂速度,SCA均優于其他3種算法,運行時間遠遠少于其他算法,算法在第二代即收斂達到最高準確率97.5385%。使用SCA-SVM對測試集進行分類,分類準確率達到了98.38%,算法在測試集上的表現也很好,如圖7所示。說明SCA-SVM分類器步進能達到全局最優分類準確率,還具有最快的收斂速度,提高了模擬電路故障診斷的效率。
本文提出了一種SCA優化的SVM容差模擬電路軟故障診斷方法。
1)SCA-SVM算法可在樣本數量較小的情況下得到較高的分類準確率。在Sallen-Key帶通濾波器電路實驗中,無論是算法迭代速度,還是分類準確率,均優于GridSearch、GA、PSO算法優化的SVM,最后在測試集上的分類準確率也達到了99.1667%。
2)SCA-SVM可以廣泛地用于模擬電路故障診斷,使用四運放雙二次高通濾波器電路驗證算法的通用性,結果顯示本文算法仍然在分類準確率和迭代速度上優于其他幾種算法。
3)在復雜電路的故障診斷中,雖然分類準確率已經很高,但還是存在一些故障難以區分的情況,這主要是因為它們之間在輸出特性上較為相似。因此,可以探索其他更加合適的故障特征提取和特征選擇方法來提高此類樣本的分類準確率,這也是下一步研究的方向。