朱 靜,何玉珠,崔唯佳
(1.成都航空職業(yè)技術(shù)學(xué)院,成都610100;2.北京航空航天大學(xué)儀器科學(xué)與光電工程學(xué)院,北京100191)
在武器系統(tǒng)、航空航天等國防軍工領(lǐng)域,對電子設(shè)備的指標(biāo)要求更加苛刻,對自動化的故障診斷和先進(jìn)的故障診斷技術(shù)有著迫切的需求。數(shù)?;旌想娐分?0%以上的故障都來自于模擬電路部分,模擬電路的高故障率和診斷成本一直是困擾電子工業(yè)自動化測試的最大瓶頸[1-2]。因此,模擬電路故障診斷一直是一個(gè)研究熱點(diǎn),也已經(jīng)有很多研究成果[3-5]。模擬電路的元器件具有容差特性,且很多故障是元器件性能參數(shù)發(fā)生變化的軟故障,故障樣本可辨識性較差,這給故障診斷帶來了很大的難度。人工神經(jīng)網(wǎng)絡(luò)[6-7]、極限學(xué)習(xí)機(jī)[8-9]和支持向量機(jī)[10-11]等是應(yīng)用較為廣泛的分類算法,而SVM具有對樣本量需求較小、分類能力強(qiáng)的優(yōu)點(diǎn),因此被廣泛地用于模擬電路故障診斷。
在SVM的應(yīng)用過程中,核函數(shù)選取和參數(shù)設(shè)置對其分類效果影響較大,RBF核函數(shù)已被證明在非線性問題中有著良好的效果[12],因此懲罰因子C和核參數(shù)gamma的選取成為問題的關(guān)鍵。常見的參數(shù)優(yōu)化方法包括網(wǎng)格搜索算法(GridSearch)、遺傳算法(GA)、粒子群算法PSO等。網(wǎng)格搜索算法[13]類似于地毯式搜索,但僅適用于低維數(shù)據(jù),且搜索速度較慢;遺傳算法[14]是一種有效的全局優(yōu)化算法,但其收斂速度慢、編碼解碼過程較為復(fù)雜,且其3個(gè)算子參數(shù)選擇主要依靠經(jīng)驗(yàn);粒子群優(yōu)化算法[15]具有易于陷入局部極值點(diǎn)、迭代后期收斂速度慢、準(zhǔn)確度較低等缺點(diǎn)。
針對上述問題,本文提出了一種適用于容差模擬電路軟故障診斷的正弦余弦算法(SCA)優(yōu)化支持向量機(jī)的分類方法。在對實(shí)驗(yàn)電路數(shù)據(jù)進(jìn)行小波熵特征提取,采用主元分析法(PCA)進(jìn)行特征選擇后構(gòu)成故障集,利用SCA-SVM中對故障集進(jìn)行故障診斷,得到故障分類結(jié)果。
SCA是由Seyedali Mirjalili提出的一種新型類粒子群智能優(yōu)化算法[16]。在SCA算法中,當(dāng)正弦函數(shù)或余弦函數(shù)值的絕對值大于1時(shí),算法進(jìn)行全局探索;當(dāng)正弦函數(shù)或余弦函數(shù)的絕對值介于-1和1之間時(shí),算法進(jìn)行局部開發(fā),原理如圖1所示。SCA算法最顯著的特點(diǎn)是借助正弦函數(shù)和余弦函數(shù)值變化來實(shí)現(xiàn)優(yōu)化搜索,能夠探索不同的搜索空間,有效避免陷入局部最優(yōu),具有模型簡單、調(diào)節(jié)參數(shù)少、收斂速度快、全局尋優(yōu)能力強(qiáng)等優(yōu)點(diǎn)。通過SCA算法求解標(biāo)準(zhǔn)測試函數(shù)以及與其他多種智能優(yōu)化算法的比較,均證明了該優(yōu)化算法的優(yōu)越性[16-18]。
在正弦余弦算法中,個(gè)體位置初始化后采用正弦余弦函數(shù)在后續(xù)迭代中更新個(gè)體位置。具體更新方程為:
式中,為個(gè)體X在第t次迭代中的位置,r1、r2、r3為隨機(jī)數(shù),Pi是當(dāng)前個(gè)體最優(yōu)解的位置。在計(jì)算過程中,有選擇地使用上述的位置更新方程:
式中,r4為[0,1]范圍中的隨機(jī)數(shù)。
在上述公式中,r1、r2、r3、r4是SCA算法的4個(gè)主要參數(shù)。其中,參數(shù)r1決定了下一次迭代時(shí)的位置(或移動方向),它既可以是當(dāng)前解和目標(biāo)解之間的區(qū)域(圖1圓形內(nèi)部區(qū)域),也可以是二者之外的區(qū)域(圖1圓外側(cè)環(huán)形區(qū)域);參數(shù)r2為[0,π]之間的隨機(jī)數(shù),定義了當(dāng)前移動應(yīng)該朝向或遠(yuǎn)離目標(biāo)解的步進(jìn)值;參數(shù)r3為目標(biāo)解隨機(jī)賦予的一個(gè)權(quán)值,目的是加強(qiáng)(r3>1)或削弱(r3<1)所定義的步進(jìn)值對目標(biāo)解的影響;參數(shù)r4表示如何在式(3)中的正弦和余弦分量之間切換,當(dāng)r4<0.5時(shí),按正弦公式進(jìn)行迭代,當(dāng)r4≥0.5時(shí),按余弦公式進(jìn)行迭代。這個(gè)設(shè)計(jì)保證了算法在局部開發(fā)和全局探索之間的平衡,正弦和余弦函數(shù)的幅值在[-1,1]范圍內(nèi)時(shí)是局部開發(fā)階段,在[-2,-1]和[1,2]則是全局探索。
為了平衡局部開發(fā)和全局探索,遍歷搜索空間內(nèi)所有區(qū)域,并最終收斂得到全局最優(yōu)解,SCA算法利用式(4)來實(shí)現(xiàn)正弦和余弦函數(shù)幅值的自適應(yīng)調(diào)節(jié):
式中,t為當(dāng)前迭代次數(shù),T為最大迭代次數(shù),a為常數(shù)。
SVM是由Cortes等[19]提出的一種建立在VC維和結(jié)構(gòu)風(fēng)險(xiǎn)最小化理論基礎(chǔ)之上的機(jī)器學(xué)習(xí)技術(shù),集成了最大間隔超平面、凸二次規(guī)劃、Mercer核和松弛變量等多種技術(shù)理論,尤其適用于小樣本、高維度、非線性等工程實(shí)際問題,具有很強(qiáng)的泛化能力和機(jī)器學(xué)習(xí)能力[20-21]。
SVM的基本思想是通過映射將低維空間的數(shù)據(jù)樣本轉(zhuǎn)到高維空間中,使它們成為線性可分,再運(yùn)用線性劃分來確定分類邊界[22]。對于給定的線性可分樣本集:
式中,d為訓(xùn)練樣本的維數(shù),n為訓(xùn)練樣本的個(gè)數(shù),xi為訓(xùn)練樣本的輸入值,yi為訓(xùn)練樣本的輸出值。樣本被最優(yōu)分類超平面ω·x+b=0完全無誤地分為兩個(gè)類別,且離超平面距離最近的樣本與超平面之間的距離最大,離分類超平面最近的兩類樣本向量稱為支持向量。兩類支持向量與最優(yōu)超平面間距之和為,因此,構(gòu)造最優(yōu)超平面問題就轉(zhuǎn)化為下述優(yōu)化問題:
式中,ω為最優(yōu)超平面法向量,b為偏移量。
對于線性不可分樣本,SVM采用非線性映射?將數(shù)據(jù)樣本映射到高維空間進(jìn)行分類,運(yùn)用核函數(shù)K(xi,yi)解決高維空間維數(shù)過高的問題。該核函數(shù)滿足Mercer條件,其對應(yīng)于變換空間的內(nèi)積,即K(xi,yi)=?(xi)·?(yi),內(nèi)積運(yùn)算在未知?(x)具體形式的情況下即可實(shí)現(xiàn)[23],通過選擇合適的核函數(shù)K(xi,yi)便可實(shí)現(xiàn)非線性樣本的線性分類。同時(shí),引入一個(gè)松弛變量ξ(ξ>0)將分類面放寬。
引入懲罰因子C以權(quán)衡松弛變量ξi的懲罰度,則式(6)轉(zhuǎn)換為:
通過引入Lagrange乘子α將上述約束條件構(gòu)建的最優(yōu)超平面問題轉(zhuǎn)化為對偶二次規(guī)劃問題:
求解式(9),最終得到最優(yōu)分類決策函數(shù)為:
選擇不同的核函數(shù)將對核函數(shù)的分類能力和適用范圍產(chǎn)生較大的影響,常用的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)、徑向基核函數(shù)等。本文采用Gauss徑向基核函數(shù):
標(biāo)準(zhǔn)SVM是一個(gè)二分類算法,在處理模擬電路故障診斷的多分類問題時(shí),需要構(gòu)造多分類器,可以采用組合若干個(gè)二值分類器去構(gòu)造多類分類器的方法實(shí)現(xiàn)[24]。SVM的參數(shù)選取對其分類效果有較大的影響,需要確定的參數(shù)主要包括懲罰因子C和核參數(shù)γ,本文采用SCA算法對其進(jìn)行尋優(yōu)。
基于SCA-SVM的模擬電路故障診斷的方法流程如圖2所示,主要包括故障注入及數(shù)據(jù)采集、特征提取、特征選擇、SVM參數(shù)尋優(yōu)和故障分類5個(gè)主要步驟。
實(shí)驗(yàn)電路采用Sallen-Key帶通濾波器,電路圖如圖3所示。各元件參數(shù)值為元件標(biāo)稱值,元件容差為:電阻±5%,電容±10%。假設(shè)當(dāng)元件參數(shù)偏離原值50%即為電路發(fā)生軟故障,↑表示元件偏大故障,↓表示元件偏小故障。將電路劃分為正常狀態(tài)(non fault-NF)和8種故障狀態(tài),分別記為R2↑,R2↓,R3↑,R3↓,C1↑,C1↓,C2↑,C2↓,具體設(shè)置如表1所示。
表1 Sallen-Key帶通濾波器故障類型及編碼Table 1 Fault type and encoding of Sallen-Key band-pass filter circuit
在Cadence16.5中對電路進(jìn)行仿真實(shí)驗(yàn),所施加激勵(lì)信號參數(shù)如圖3所示,對表1所示的故障類別分別進(jìn)行100次Monte Carlo分析,采集120μs內(nèi)的輸出端波形并保存作為電路輸出數(shù)據(jù)。9種故障共900個(gè)樣本,從中隨機(jī)抽取300個(gè)樣本作為訓(xùn)練集,剩余600個(gè)樣本作為測試集。
對樣本集合數(shù)據(jù)集進(jìn)行5層小波包變換,得到32個(gè)高頻和低頻序列系數(shù),按照式(12)[25]計(jì)算小波包能量熵,構(gòu)造得到32維特征向量。
式中,Hj,k為小波包能量熵,ej,k(i)為第i個(gè)子頻帶在j層k節(jié)點(diǎn)小波包對應(yīng)能量在總能量中的概率。
32維故障特征向量存在著一些冗余成分會影響故障判別,因此采用主流的主元分析法(PCA)進(jìn)行特征選擇,特征選擇閾值選取85%。
經(jīng)過特征降維后的特征向量即可使用SVM進(jìn)行分類,本文采用libSVM[26]來實(shí)現(xiàn)SVM,使用SCA對SVM的兩個(gè)參數(shù)進(jìn)行優(yōu)選。同時(shí),將本文算法與其他算法進(jìn)行對比,包括網(wǎng)格搜索法(GridSearch)、遺傳算法(GA)、粒子群算法(PSO)等。設(shè)定相同的libSVM參數(shù)c和g搜索范圍,c為[0.1,1000],g為[0.01,1000],交叉驗(yàn)證參數(shù)v均為5。GridSearch步進(jìn)值為0.1,GA、PSO和SCA均采用相同的迭代次數(shù)20和種群規(guī)模20,在訓(xùn)練集上的對比結(jié)果如表2所示,消耗時(shí)間運(yùn)行環(huán)境為四核Intel Core i5-4210U 1.70GHz,4G運(yùn)行內(nèi)存。
從表2可以看出,綜合分類準(zhǔn)確率和消耗時(shí)間來看,SCA均表現(xiàn)最優(yōu),可見SCA-SVM非常適用于模擬電路故障診斷。使用SCA優(yōu)選后的SVM參數(shù)進(jìn)行計(jì)算,分類結(jié)果如圖4所示,在測試集上分類準(zhǔn)確率達(dá)到了99.1667%(595/600)。
表2 Sallen-Key帶通濾波器電路訓(xùn)練集診斷結(jié)果Table 2 Diagnosis result of training set on Sallen-Key band-pass filter circuit
為了驗(yàn)證SCA-SVM分類器的通用性,選擇了更復(fù)雜的四運(yùn)放雙二次高通濾波器電路作為驗(yàn)證對象,元件標(biāo)稱值和激勵(lì)信號設(shè)置如圖5所示,每個(gè)故障進(jìn)行200次Monte Carlo分析。故障類別如表3所示,每個(gè)故障抽取前100個(gè)樣本組成訓(xùn)練集,后100個(gè)樣本組成測試集。
表3 四運(yùn)放雙二次高通濾波器故障類型及編碼Table 3 Fault type and encoding of four-opamp biquad highpass filter circuit
繼續(xù)采用4種不同算法進(jìn)行驗(yàn)證,算法參數(shù)設(shè)置同上,4種算法在訓(xùn)練集上的運(yùn)行情況如表4所示,GA、PSO和SCA三者的詳細(xì)優(yōu)化迭代進(jìn)程如圖6所示。
表4 四運(yùn)放雙二次高通濾波器電路訓(xùn)練集診斷結(jié)果Table 4 Diagnosis result of training set on four-opamp biquad highpass filter circuit
從表4和圖6可以看出,無論是最優(yōu)分類準(zhǔn)確率、運(yùn)行時(shí)間,還是算法的收斂速度,SCA均優(yōu)于其他3種算法,運(yùn)行時(shí)間遠(yuǎn)遠(yuǎn)少于其他算法,算法在第二代即收斂達(dá)到最高準(zhǔn)確率97.5385%。使用SCA-SVM對測試集進(jìn)行分類,分類準(zhǔn)確率達(dá)到了98.38%,算法在測試集上的表現(xiàn)也很好,如圖7所示。說明SCA-SVM分類器步進(jìn)能達(dá)到全局最優(yōu)分類準(zhǔn)確率,還具有最快的收斂速度,提高了模擬電路故障診斷的效率。
本文提出了一種SCA優(yōu)化的SVM容差模擬電路軟故障診斷方法。
1)SCA-SVM算法可在樣本數(shù)量較小的情況下得到較高的分類準(zhǔn)確率。在Sallen-Key帶通濾波器電路實(shí)驗(yàn)中,無論是算法迭代速度,還是分類準(zhǔn)確率,均優(yōu)于GridSearch、GA、PSO算法優(yōu)化的SVM,最后在測試集上的分類準(zhǔn)確率也達(dá)到了99.1667%。
2)SCA-SVM可以廣泛地用于模擬電路故障診斷,使用四運(yùn)放雙二次高通濾波器電路驗(yàn)證算法的通用性,結(jié)果顯示本文算法仍然在分類準(zhǔn)確率和迭代速度上優(yōu)于其他幾種算法。
3)在復(fù)雜電路的故障診斷中,雖然分類準(zhǔn)確率已經(jīng)很高,但還是存在一些故障難以區(qū)分的情況,這主要是因?yàn)樗鼈冎g在輸出特性上較為相似。因此,可以探索其他更加合適的故障特征提取和特征選擇方法來提高此類樣本的分類準(zhǔn)確率,這也是下一步研究的方向。