趙光權(quán),彭喜元,馬勛亮
(哈爾濱工業(yè)大學(xué)自動(dòng)化測試與控制系,黑龍江哈爾濱 150001)
模擬電路的故障診斷是當(dāng)今世界研究的一大熱點(diǎn).模擬電路的故障可分為兩大類:一類稱為硬故障,指元件的開路和短路失效故障;另一類稱為軟故障(元件參數(shù)故障),指元件的參數(shù)超出預(yù)定的容差范圍,一般它們均未使設(shè)備完全失效[1].由于在模擬電路中元件參數(shù)具有連續(xù)變化的特性,電路的可能狀態(tài)總數(shù)是無窮的,使得采用傳統(tǒng)的故障診斷方法對軟故障進(jìn)行診斷相對困難,而基于現(xiàn)代方法的故障診斷方法例如神經(jīng)網(wǎng)絡(luò)已逐步受到人們的重視[2-4].
基于神經(jīng)網(wǎng)絡(luò)的故障診斷方法不需要建立對象的精確模型,而且其泛化能力與非線性能力使之能夠用于解決模擬電路故障診斷中的容差和非線性問題,目前在故障診斷中已得到了廣泛的研究和應(yīng)用.但是,利用經(jīng)典的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行模擬電路的故障診斷存在如下問題:①網(wǎng)絡(luò)收斂速度慢,且容易陷入局部最優(yōu);②神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)難以確定[5].
針對上述問題,國內(nèi)外已有不少學(xué)者致力于利用進(jìn)化算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的研究,文獻(xiàn)[6]研究了遺傳算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)的問題,取得了較好的效果,但GA同時(shí)存在著易早熟的缺點(diǎn);文獻(xiàn)[7],文獻(xiàn)[8]將PSO算法用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)的權(quán)值.
鑒于微分進(jìn)化算法(Differential Evolution Algorithm,簡稱DE算法)獨(dú)特的思想機(jī)制和神經(jīng)網(wǎng)絡(luò)的廣泛應(yīng)用,將兩者相結(jié)合進(jìn)行研究已成為目前的新方向.本文在分析DE基本算法原理的基礎(chǔ)上提出了改進(jìn)的微分進(jìn)化算法,并利用改進(jìn)的DE算法對神經(jīng)網(wǎng)絡(luò)進(jìn)行權(quán)值訓(xùn)練.最后,將微分進(jìn)化神經(jīng)網(wǎng)絡(luò)應(yīng)用到模擬電路故障診斷中,驗(yàn)證算法的有效性和實(shí)用價(jià)值.
DE是求解基于連續(xù)變量的全局優(yōu)化算法.假設(shè)DE算法種群規(guī)模為NP,每個(gè)個(gè)體有D維變量,則第G代的個(gè)體可表示為Xi,G,i=1,2,…,NP.DE算法的主要算子包括:變異、交叉、選擇[9].
DE算法和其它進(jìn)化算法的主要區(qū)別是變異方式.變異操作后得到中間個(gè)體記為vi,G+1,即
式中:r1,r2,r3∈{1,2,…,NP}為r1?r2?r3?i,F為DE算法中的一個(gè)控制參數(shù).
交叉操作如下:將變異得到的中間個(gè)體vi,G+1和當(dāng)前個(gè)體Xi,G進(jìn)行雜交,如式(2)所示.經(jīng)過雜交后得到當(dāng)前個(gè)體的候選個(gè)體.
式中:i=1,…,NP,j=1,…,D.rnbr(i)是一個(gè)隨機(jī)參數(shù)保證ui,G+1至少從vi,G+1中取到一個(gè)分量值,randb(j)∈[0,1]是一個(gè)均勻分布的隨機(jī)數(shù),雜交因子CR∈[0,1]是DE算法的一個(gè)控制參數(shù),它決定了中間個(gè)體分量值代替當(dāng)前個(gè)體分量值的概率.
選擇操作如下:對候選個(gè)體ui,G+1進(jìn)行適應(yīng)度評價(jià),然后根據(jù)式(3)決定是否選取新產(chǎn)生的個(gè)體.
上述操作中,變異機(jī)制對DE算法的性能有著很大的影響.標(biāo)準(zhǔn)DE算法有多種變異策略,一般將式(1)所示的變異策略稱為基本策略,另一種常用的變異策略如式(4)所示.
式中:Xbest,G表示當(dāng)前種群中的最優(yōu)個(gè)體.
仔細(xì)分析,不難發(fā)現(xiàn):式(1)變異策略的特點(diǎn)是全局性能強(qiáng)但搜索速度慢,式(4)變異策略的特點(diǎn)則是搜索速度快但易陷入局部最優(yōu).為此,本文提出了一種混合變異策略的方法,其主要思想是使少部分個(gè)體按式(4)進(jìn)行變異,其余大部分個(gè)體仍按式(1)進(jìn)行變異.其具體方法為:在每個(gè)個(gè)體變異前,先將當(dāng)前所有個(gè)體的適應(yīng)度值歸一化,然后依據(jù)該個(gè)體適應(yīng)度的值在所有個(gè)體中所占的位置,以一定的概率選擇該個(gè)體變異策略是采用式(1)還是式(4).其偽代碼如圖1所示.
圖1中,rand()表示取 0~1之間的隨機(jī)數(shù),cmin和cmax分別表示上一代個(gè)體中的最優(yōu)個(gè)體和最差個(gè)體的適應(yīng)度的值,cost(i)表示要變異的上一代父個(gè)體的適應(yīng)度值,δ是一個(gè)常數(shù),根據(jù)大量實(shí)驗(yàn),δ一般取0.1.Xr1,G,Xr2,G,Xr3,G是在上一代個(gè)體中隨機(jī)選取的,且Xr1,G≠Xbest,G,r1≠r2≠r3.
圖1 混合變異策略偽代碼Fig.1 Pseudocode of hybrid mutation strategy
MDE算法的本質(zhì)是是每代中的小部分優(yōu)秀個(gè)體以一定概率在當(dāng)前最優(yōu)解附近搜尋,并且優(yōu)秀的個(gè)體有相對大的機(jī)會(huì)在當(dāng)前最優(yōu)解附近搜索,而大部分其它個(gè)體則仍然進(jìn)行隨機(jī)搜索.和基本DE算法相比,MDE算法既使少部分個(gè)體以一定的概率增強(qiáng)其貪婪性,又使大部分個(gè)體保持其多樣性,從而使得MDE能夠在保持較強(qiáng)全局多樣性的同時(shí)加快其收斂速度.
在使用神經(jīng)網(wǎng)絡(luò)前,首先要通過輸入和輸出樣本集對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,亦即對網(wǎng)絡(luò)的權(quán)值進(jìn)行學(xué)習(xí)和修正,以使網(wǎng)絡(luò)實(shí)現(xiàn)給定的輸入輸出映射關(guān)系.神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程就是學(xué)習(xí)的過程,也是確認(rèn)權(quán)值的過程(這里閾值可知,看成系數(shù)為 -1的權(quán)值,故以后只提權(quán)值優(yōu)化).
BP算法是一種經(jīng)典的神經(jīng)網(wǎng)絡(luò)權(quán)值訓(xùn)練算法,同時(shí)又有著一定的局限性,主要體現(xiàn)在如下幾個(gè)方面:①學(xué)習(xí)收斂速度太慢;②不能保證收斂到全局最小點(diǎn);③對目標(biāo)函數(shù)的依賴性太強(qiáng);④沒有確定隱層神經(jīng)元數(shù)的有效方法.
鑒于此,本文采用MDE算法來優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值.其基本思想是:首先通過常規(guī)辦法確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),再將連接權(quán)進(jìn)行編碼,然后利用MDE算法在權(quán)值空間中搜索最優(yōu)權(quán)值.
本文采用實(shí)數(shù)編碼的方式,每個(gè)連接權(quán)值用一個(gè)實(shí)數(shù)表示,一個(gè)網(wǎng)絡(luò)的權(quán)值用一組實(shí)數(shù)向量表達(dá),即為DE算法的一個(gè)個(gè)體.
在DE算法中,適應(yīng)度值是群體進(jìn)化的依據(jù).本文中權(quán)值訓(xùn)練適應(yīng)度函數(shù)的選取如式(5)所示.
式中:P表示輸入的樣本數(shù);M表示神經(jīng)網(wǎng)絡(luò)總的層數(shù);y表示神經(jīng)網(wǎng)絡(luò)的輸出;t表示樣本中的實(shí)際輸出.
在確定了算法的編碼方式和適應(yīng)度函數(shù)后,下一步就該用MDE算法對神經(jīng)網(wǎng)絡(luò)進(jìn)行權(quán)值優(yōu)化.優(yōu)化的過程實(shí)際上就是一個(gè)算法尋優(yōu)的過程,每一組權(quán)值看成一個(gè)個(gè)體,個(gè)體在尋優(yōu)過程中不斷得到進(jìn)化,最后得到最優(yōu)個(gè)體,此時(shí)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)完成.
利用MDE算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的步驟如圖2所示.
圖2 MDE算法優(yōu)化神經(jīng)網(wǎng)絡(luò)Fig.2 Flowchart of neural network trainingwith MDE algorithm
應(yīng)用神經(jīng)網(wǎng)絡(luò)進(jìn)行模擬電路故障診斷主要有如下幾個(gè)步驟:
1)產(chǎn)生訓(xùn)練樣本集.首先要完成故障狀態(tài)點(diǎn)選擇和測試點(diǎn)的選擇,并應(yīng)用PSPICE軟件模擬出電路各測試點(diǎn)的理論值和故障值,并把它建成一個(gè)故障狀態(tài)表.
2)建立神經(jīng)網(wǎng)絡(luò).確定神經(jīng)網(wǎng)絡(luò)的種類,并利用訓(xùn)練樣本集訓(xùn)練神經(jīng)網(wǎng)絡(luò).本文利用MDE算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò),充分保證其泛化能力.
3)利用訓(xùn)練好了的神經(jīng)網(wǎng)絡(luò)進(jìn)行故障診斷.神經(jīng)網(wǎng)絡(luò)訓(xùn)練后,電路的故障字典就建立在神經(jīng)網(wǎng)絡(luò)之中,網(wǎng)絡(luò)的輸入節(jié)點(diǎn)由電路的可測節(jié)點(diǎn)決定,輸出節(jié)點(diǎn)由故障狀態(tài)的數(shù)目決定.診斷時(shí),將待診斷的故障特征數(shù)據(jù)輸入到神經(jīng)網(wǎng)絡(luò)之中,經(jīng)過計(jì)算,神經(jīng)網(wǎng)絡(luò)的輸出就是故障的類別.
本文以sallen-key濾波電路為例來介紹基于微分進(jìn)化神經(jīng)網(wǎng)絡(luò)的故障診斷方法.sallen-key濾波電路如圖3所示[10].
根據(jù)靈敏度分析,sallen-key電路中R2和R3,C1和C2的參數(shù)變化對電路輸出的影響較大,選擇這4個(gè)器件作為故障單元,分別設(shè)置電阻和電容的正常容差為5%和10%.每個(gè)器件設(shè)置的故障閾值為±50%,即當(dāng)這4個(gè)器件任何一個(gè)的參數(shù)值在其標(biāo)稱值±50%以外,則認(rèn)為電路出現(xiàn)故障,本文只考慮單故障的情況.即電路總共有 R2↑(F1),R2↓(F2),R3↑(F3),R3↓(F4),C1↑(F6),C1↓(F7),C2↑(F8),C2↓(F9)這8種故障模式和1種正常模式(本文將正常情況也看成一種故障模式F5),共9種故障模式.其中↑表示器件參數(shù)超過標(biāo)稱值50%,↓表示器件參數(shù)低于標(biāo)稱值50%.
文獻(xiàn)[10]指出,電阻R2阻值變大對電路的影響很小,F1和F5這兩類故障模式的差異最大不超過8.5%,導(dǎo)致在實(shí)際的電路中,這兩類故障模式很難區(qū)分.因此,本文將故障F1和F5合并為一類故障F5,并對這8類故障進(jìn)行診斷.
圖3 Sallen-key濾波電路原理圖Fig.3 Circuit diagram of sallen-key filter
如圖3所示,電路的激勵(lì)信號為幅值 5 V、脈寬10 μ s的矩形信號.通過PSPICE對電路圖進(jìn)行仿真,對每種故障模式進(jìn)行25次蒙特卡洛分析以獲得故障診斷數(shù)據(jù).其中15組用來訓(xùn)練神經(jīng)網(wǎng)絡(luò),另外10組用來測試.
本文所采用的神經(jīng)網(wǎng)絡(luò)為BP網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為5-5-1,輸入層有5個(gè)節(jié)點(diǎn)對應(yīng)5維故障特征輸入向量,輸出層有1個(gè)神經(jīng)元,輸出數(shù)據(jù)1~9分別對應(yīng)于9種故障模式(F1~F9).BP學(xué)習(xí)算法采用最速下降BP算法(matlab中用traingd函數(shù)表示),適應(yīng)度函數(shù)為均方誤差(mse)函數(shù),目標(biāo)精度為0.2.
利用標(biāo)準(zhǔn)BP算法和MDE算法分別對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,兩種算法對15個(gè)故障訓(xùn)練樣本進(jìn)行訓(xùn)練的時(shí)間與診斷結(jié)果對比如表1所示.
從表1可以看出,基于MDE算法的訓(xùn)練時(shí)間為BP算法的50%左右,訓(xùn)練速度明顯快于BP算法,且訓(xùn)練效果也優(yōu)于BP算法,體現(xiàn)出MDE算法在神經(jīng)網(wǎng)絡(luò)權(quán)值訓(xùn)練中具有較強(qiáng)的優(yōu)越性.
利用訓(xùn)練好的兩種神經(jīng)網(wǎng)絡(luò)對10個(gè)測試樣本進(jìn)行實(shí)際診斷,故障診斷準(zhǔn)確率對比如表2所示.
表1 BP算法和MDE算法訓(xùn)練結(jié)果對比Tab.1 Comparision of trainging results with BP algorithm and MDE algorithm
表2 BP神經(jīng)網(wǎng)絡(luò)和MDE神經(jīng)網(wǎng)絡(luò)實(shí)際診斷結(jié)果對比Tab.2 Comparision of diagnosis results with BP neural network and MDE neural network
從表2可以看出,微分進(jìn)化神經(jīng)網(wǎng)絡(luò)的故障診斷準(zhǔn)確率要比BP神經(jīng)網(wǎng)絡(luò)高7%,充分驗(yàn)證了微分進(jìn)化神經(jīng)網(wǎng)絡(luò)在故障診斷方面的優(yōu)越性.
利用MDE優(yōu)化后的神經(jīng)網(wǎng)絡(luò)對Sallen-key濾波電路各故障模式的具體診斷結(jié)果如表3所示,表3中每一行表示的是對某個(gè)特定故障類型進(jìn)行診斷時(shí),神經(jīng)網(wǎng)絡(luò)得到正確結(jié)果的樣本數(shù)以及誤判的樣本數(shù).例如,對于故障F3來說,10次診斷都獲得了正確的結(jié)果,對于故障F6和F7來說,10次診斷中均出現(xiàn)了一次誤判.
表3 基于微分進(jìn)化神經(jīng)網(wǎng)絡(luò)的故障診斷結(jié)果Tab.3 Fault diagnosis results with differential evolution neural network
從表3可知,基于微分進(jìn)化神經(jīng)網(wǎng)絡(luò)的故障診斷方法是有效的,并且表現(xiàn)出了優(yōu)異的性能.
本文提出了一種在搜索過程中基于混合變異策略的微分進(jìn)化改進(jìn)算法,該算法在保證種群多樣性的同時(shí)使得搜索速度有較大提高,同時(shí)本文利用改進(jìn)的微分進(jìn)化算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò)權(quán)值.利用微分進(jìn)化算法優(yōu)化神經(jīng)網(wǎng)絡(luò)時(shí),具有如下優(yōu)勢:①M(fèi)DE算法在適應(yīng)度函數(shù)的選取上沒有太多的限制,而BP算法要求適應(yīng)度函數(shù)是可微的;②基于微分進(jìn)化的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法能夠比較好的得到全局最優(yōu),且收斂時(shí)間相對較短,其綜合性能明顯優(yōu)于BP算法.
最后,將微分進(jìn)化神經(jīng)網(wǎng)絡(luò)用于模擬電路故障診斷,實(shí)驗(yàn)結(jié)果表明,基于微分進(jìn)化神經(jīng)網(wǎng)絡(luò)模擬電路故障診斷方法與BP神經(jīng)網(wǎng)絡(luò)相比具有訓(xùn)練時(shí)間短、故障診斷準(zhǔn)確率高的特點(diǎn),為模擬電路故障診斷提供了新的思路和方法.此外,基于微分進(jìn)化算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化也是有待進(jìn)一步深入研究的課題.
[1]葉笠,王厚軍,田書林,等.容差模擬電路軟故障診斷的一種方法[J].電工技術(shù)學(xué)報(bào),2011,26(5):119-125.
Ye Li,Wang Houjun,Tian Shulin,et al.An approach for soft fault diagnosis on analog circuits with tolerance[J].Transactions of China Electrotechnical Society,2011,26(5):119-125.(in Chinese)
[2]祝文姬,何怡剛,謝宏,等.基于遺傳BP網(wǎng)絡(luò)的模擬電路故障診斷[J].測試技術(shù)學(xué)報(bào),2007,21(5):460-467.
Zhu Wenji,He Yigang,Xie Hong,et al.Fault diagnosis based on GA-BPNN for analog circuits[J].Journal of Test and Measurement Technology,2007,21(5):460-467.(in Chinese)
[3]張彥斌,賀從林,張鵬.基于神經(jīng)網(wǎng)絡(luò)的某裝備電路單元故障診斷研究[J].測試技術(shù)學(xué)報(bào),2010,24(6):558-561.
Zhang Yanbin,He Conglin,Zhang Peng.ANN-based fault diagnosis method of circuit units for a certain weapon equipment[J].Journal of Test and Measurement Technology,2010,24(6):558-561.(in Chinese)
[4]Yin Shirong.Application of BP Neural Network in Analog Circuits Diagnosis[C].Shanxi University.2010 International Conference on Computer Application and System Modeling,Shanxi:IEEE Computer Society,2010,V11:1140-1143.
[5]Blanco A,Delgado M,Pegalajar M C.A genetic algorithm to obtain the optimal recurrent neural network[J].International Journal of Approximate Reasoning,2000,23(1):67-83.
[6]Tan Yanghong,He Yigang,CuiChun,et al.A novel method for analog fault diagnosisbasedon neural networks and genetic algorithms[J].IEEE Transactions on Instrumentation and Measurement,2008,57(11):2631-2639.
[7]He Wuming,Wang Peiliang.Analog Circuit Fault Diagnosis Based on RBF Neural Network optimized by PSO Algorithm[C].IEEE Intelligent Computation Society.2010 International Conference on Intelligent Computation Technology and Automation,Changsha:IEEE Computer Society,2010,628-631.
[8]高海兵,高亮,周馳,等.基于粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法研究[J].電子學(xué)報(bào),2004,32(9):1572-1574.
Gao Haibing,Gao Liang,Zhou Chi et al.Particle swarm optimization basedalgorithm for neural network learning[J].Acta Electronica Sinica,2004,32(9):1572-1574.(in Chinese)
[9]Rainer Storn,Kenneth Price.Differential evolution—a simple and efficient heuristic for global optimization over continuous spaces[J].Journal of Global Optimization,1997,11(4):341-359.
[10]Farzan Aminian,Mehran Aminian,CollinsH W.Analog fault diagnosisof actualcircuits using neural networks[J].IEEE Transactions on Instrumentation and Measurement,2002,51(3):544-550.