譚檢平+劉輝+楊岳飛
摘 要 針對(duì)BP神經(jīng)網(wǎng)絡(luò)在模擬電路故障診斷中的缺陷,BP神經(jīng)網(wǎng)絡(luò)采用的是沿梯度下降的搜索求解算法,因而收斂速度慢,而且容易陷入局部極小等問(wèn)題。本文提出用遺傳算法來(lái)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的診斷方法,并以心電放大模擬電路為診斷實(shí)例,驗(yàn)證采用遺傳算法優(yōu)化的BP網(wǎng)絡(luò)在診斷實(shí)例中的效果。結(jié)果表明,和傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)診斷方法相比,遺傳神經(jīng)網(wǎng)絡(luò)算法既提高了網(wǎng)絡(luò)收斂速度,又提高了診斷的準(zhǔn)確度。
關(guān)鍵詞 遺傳算法 BP神經(jīng)網(wǎng)絡(luò) 模擬電路 故障診斷
中圖分類(lèi)號(hào):TP183 文獻(xiàn)標(biāo)識(shí)碼:A
0 引言
自20世紀(jì)60年代以來(lái),模擬電路故障診斷研究取得了很大的成績(jī),但由于模擬電路的輸入輸出關(guān)系及測(cè)試方法都比較復(fù)雜,而且模擬電路的元件有容差性,從而使得模擬電路故障診斷進(jìn)展比較緩慢。①②目前,BP神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于模擬電路的故障診斷中。雖然BP算法具有精確性,卻存在容易陷入局部極小值,造成收斂速度慢等問(wèn)題。遺傳算法有較強(qiáng)的宏觀搜索能力,還可以克服BP神經(jīng)網(wǎng)絡(luò)容易陷入局部極小值的問(wèn)題,本文將二者結(jié)合而給出一種新的算法:遺傳神經(jīng)算法,從而達(dá)到理想的診斷效果。
1 BP神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷方法
1.1 模擬電路故障診斷原理
模擬電路故障的模式識(shí)別診斷原理是先對(duì)模擬電路故障數(shù)據(jù)進(jìn)行采集,再通過(guò)一定的算法對(duì)電路故障進(jìn)行分類(lèi),以達(dá)到電路故障定位的目的。主要包括電路測(cè)試,特征提取和故障診斷三個(gè)階段,用圖1所示來(lái)表示模擬電路的故障診斷過(guò)程。
圖1 模擬電路故障診斷框圖
模擬電路故障診斷是一種模式識(shí)別問(wèn)題,電路故障與模擬元器件存在非線性問(wèn)題,輸入和輸出間的關(guān)系復(fù)雜并且難以用精確的數(shù)學(xué)模型刻畫(huà),由于模擬電路的非線性,導(dǎo)致傳統(tǒng)故障分類(lèi)方法無(wú)法識(shí)別其非線性,故障診斷率低。
1.2 BP神經(jīng)網(wǎng)絡(luò)算法
1986年Rumelhart和McClelland等科學(xué)家提出了BP神經(jīng)網(wǎng)絡(luò),是一種按誤差反傳算法訓(xùn)練的多層前向網(wǎng)絡(luò),③是當(dāng)前使用最廣泛的神經(jīng)網(wǎng)絡(luò)模型,無(wú)需事前知道輸入和輸出之間的映射關(guān)系,能夠進(jìn)行自學(xué)習(xí),BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖
2 遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)
遺傳算法(Genetic Algorithm,GA)是以自然選擇和生物進(jìn)化為基礎(chǔ),將生物進(jìn)化過(guò)程中適者生存規(guī)則與群體內(nèi)部染色體的隨機(jī)信息交換機(jī)制相結(jié)合的高效全局尋優(yōu)搜索算法。④⑤⑥遺傳算法不是從一個(gè)點(diǎn)而是從多個(gè)點(diǎn)開(kāi)始搜索,這樣就可以避免搜索過(guò)程在局部最優(yōu)解處收斂,從而有可能從解的空間尋優(yōu)得到全局最優(yōu)解。該算法是通過(guò)適應(yīng)度函數(shù)來(lái)尋優(yōu)的,不要求目標(biāo)函數(shù)的連續(xù)性、可微性。本文將遺傳算法和神經(jīng)網(wǎng)絡(luò)算法結(jié)合起來(lái)用于模擬電路故障診斷中。
2.1 編碼
二進(jìn)制編碼被傳統(tǒng)的GA所采用,雖然二進(jìn)制編碼簡(jiǎn)單和通用,編碼、解碼操作簡(jiǎn)單易行,但是二進(jìn)制編碼對(duì)處理復(fù)雜問(wèn)題而言,自變量較多,而且編碼長(zhǎng)度較長(zhǎng),從而導(dǎo)致染色體的長(zhǎng)度非常長(zhǎng)進(jìn)而使搜索空間增大,進(jìn)化速度很慢,降低了搜索效率。本文采用實(shí)數(shù)編碼的GA,對(duì)二進(jìn)制編碼加以改進(jìn),縮短了編碼長(zhǎng)度,提升了處理復(fù)雜的決策變量約束條件能力,提高了運(yùn)算的精度和高度,也縮小了搜索空間,提高了搜索效率。
2.2 計(jì)算適應(yīng)度
采用訓(xùn)練樣本對(duì)種群中的個(gè)體所代表的神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)訓(xùn)練,計(jì)算每個(gè)個(gè)體所代表網(wǎng)絡(luò)的學(xué)習(xí)誤差,從而確定適應(yīng)度的值,誤差與適應(yīng)度成反相關(guān)。訓(xùn)練誤差為:
= [( )] (1)
定義式中,表示訓(xùn)練樣本個(gè)數(shù),表示輸出單元個(gè)數(shù),為第個(gè)樣本時(shí)第個(gè)輸出單元,為第個(gè)樣本時(shí)第個(gè)期望單元。計(jì)算初始種群中每一個(gè)個(gè)體的適應(yīng)度值,我們把個(gè)體適應(yīng)度函數(shù)定義為:
() = (2)
式中,對(duì)于輸入樣本集: = (,,…),輸出樣本集為: = (,,…)。
2.3 選擇
通常的選擇算子有很多,建立在對(duì)個(gè)體的適應(yīng)度進(jìn)行評(píng)價(jià)的基礎(chǔ)上,根據(jù)優(yōu)勝劣汰原則本文采用確定式采樣選擇方法,具體操作步驟如下:
①計(jì)算適應(yīng)度的期望值:
= (3)
②計(jì)算群體中每個(gè)個(gè)體在下一代生存的期望生存數(shù):
= (4)
③對(duì)進(jìn)行取整運(yùn)算得到[],則可以確定出下一代群體中的[]個(gè)個(gè)體;對(duì)的小數(shù)部分進(jìn)行降序排列,順序排在前[]個(gè)加入到下一代群體中,后面的就淘汰掉了。這樣下一代群體中的個(gè)個(gè)體就確定了。
2.4 交叉
單點(diǎn)交叉或多點(diǎn)交叉在二進(jìn)制的編碼中常被采用,雖然單點(diǎn)交叉或多點(diǎn)交叉操作簡(jiǎn)單,但是不利于產(chǎn)生新的優(yōu)良的個(gè)體。在實(shí)數(shù)編碼中,采用算術(shù)交叉的方法,對(duì)個(gè)體進(jìn)行線性組合而產(chǎn)生新的個(gè)體。隨機(jī)從第一代個(gè)體中選擇兩個(gè)個(gè)體、作為交叉的父本,通過(guò)線性組合而產(chǎn)生出兩個(gè)新的子代、,它們由(5)、(6)式確定。
= + () (5)
= () + (6)
其中為一個(gè)0~1之間的隨機(jī)數(shù)。
2.5 變異
為了使遺傳算法維持種群的多樣性,就必須采用變異算子。這樣不但可以增加局部所搜能力,而且能防止出現(xiàn)過(guò)早成熟,針對(duì)實(shí)數(shù)編碼遺傳算法,本文采用非均勻變異算法。設(shè)群體中的一個(gè)個(gè)體為 = (,,…,…),假定在變異點(diǎn)處的基因值取值范圍為[],則新的基因值由(7)式確定:
(7)
其中,表示一個(gè)0~1范圍內(nèi)的隨機(jī)數(shù),€HU(代表或)表示[0,]內(nèi)符合非均勻分布的一個(gè)隨機(jī)數(shù),本文定義€HU如(8)式:
€HU = ·() (8)
其中,為種群的最大進(jìn)化代數(shù),為0~1內(nèi)符合均勻概率分布的一個(gè)隨機(jī)數(shù),為系統(tǒng)固有的參數(shù)。不斷重復(fù)計(jì)算適應(yīng)度、選擇、交換及變異操作產(chǎn)生新的群體,使得權(quán)值和閾值得到不斷修正,直到總的迭代次數(shù)或是誤差達(dá)到預(yù)設(shè)訓(xùn)練標(biāo)準(zhǔn)。其流程圖如圖3所示。endprint
圖3 診斷流程圖
圖4 心電放大圖
3 電路診斷仿真實(shí)例
3.1 模擬電路
以心電放大電路為例來(lái)驗(yàn)證本文提出的對(duì)BP神經(jīng)網(wǎng)絡(luò)算法改進(jìn)的有效性。電路如圖4所示,其中電阻R1~R12,其電阻允許容差范圍為5%,電容C1~C2,其電容容差范圍為10%,運(yùn)放采用LF411,單位正弦激勵(lì)為輸入,頻率為100Hz。在仿真過(guò)程中,根據(jù)靈敏度分析得出R8,R9,C1最易受容差影響,所以我們僅考慮三種故障R8負(fù)偏50%,R12正偏50%,C1正偏50%,共三種單軟故障。
3.2 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型參數(shù)設(shè)定
建立BP神經(jīng)網(wǎng)絡(luò)為三層網(wǎng)絡(luò)模型,神經(jīng)網(wǎng)絡(luò)輸入層和隱層函數(shù)為tansig,神經(jīng)網(wǎng)絡(luò)輸出層函數(shù)取logsig。參數(shù)設(shè)定輸入層單元數(shù)r = 15,根據(jù)經(jīng)驗(yàn)規(guī)律得出隱層單位數(shù)h = 2*r+1即h = 31,輸出層單元數(shù)為電路故障的種類(lèi)即q = 3,神經(jīng)網(wǎng)絡(luò)的初始學(xué)習(xí)速率為0.1,遺傳算法染色體的編碼長(zhǎng)度為l = r*h + q*h + h + q即l = 592,初始種群大小設(shè)為40,迭代次數(shù)為50,評(píng)判誤差為0.01。
圖5 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線圖
圖6 傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線圖
3.3 訓(xùn)練和測(cè)試結(jié)果分析
BP算法的訓(xùn)練目標(biāo)為error_goal = 0.01,學(xué)習(xí)速率為lr = 0.1,經(jīng)過(guò)GA優(yōu)化后的權(quán)值和閾值賦給BP網(wǎng)絡(luò)作為初始值,經(jīng)過(guò)訓(xùn)練達(dá)到要求,訓(xùn)練過(guò)程如圖5所示。
同樣建立傳統(tǒng)的BP神經(jīng)網(wǎng)路,其參數(shù)設(shè)定跟用遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)參數(shù)一樣。在相同的預(yù)測(cè)誤差下,其訓(xùn)練過(guò)程如圖6所示。通過(guò)圖5和圖6,觀察分析可得:在相同的預(yù)測(cè)誤差下,優(yōu)化的BP神經(jīng)網(wǎng)路算法的迭代次數(shù)要少,而且其全局搜索能力強(qiáng),不易陷入局部極值。
經(jīng)過(guò)網(wǎng)絡(luò)訓(xùn)練后,分別隨機(jī)選取的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試分析,測(cè)試結(jié)果、期望輸出以及診斷誤差分別如表1和表2所示。
表1 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)測(cè)試數(shù)據(jù)表
表2 傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)測(cè)試數(shù)據(jù)表
4 結(jié)論
本文采用GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,能使BP網(wǎng)絡(luò)在較小的范圍發(fā)揮高精度的搜索優(yōu)勢(shì),而不必靠經(jīng)驗(yàn)和試驗(yàn)來(lái)確定這些參數(shù),從而提高故障診斷的精度和速度;同時(shí),克服BP算法陷入局部最小點(diǎn)、收斂速度慢等問(wèn)題,結(jié)合這兩方面的優(yōu)點(diǎn),遺傳算法優(yōu)化的BP網(wǎng)絡(luò)用于模擬電路故障診斷是有效且實(shí)用的,為模擬電路故障診斷智能化提供了方法。
注釋
① 譚陽(yáng)紅,何怡剛.模擬電路故障診斷技術(shù)的發(fā)展[J].測(cè)控技術(shù),2003(7):1-3.
② 何怡剛.非線性容差模擬電阻電路故障診斷的神經(jīng)網(wǎng)絡(luò)方法[J].固體電子學(xué)研究與進(jìn)展,2002.22(3):297-299.
③ 虞和濟(jì),陳長(zhǎng)征.基于神經(jīng)網(wǎng)絡(luò)的智能診斷[M].北京:冶金工業(yè)出版社,2000.
④ 范睿,李國(guó)斌.基于實(shí)數(shù)編碼遺傳算法的混合神經(jīng)網(wǎng)絡(luò)[J].計(jì)算機(jī)仿真,2006.23(1).
⑤ 陳國(guó)良.遺傳算法及其應(yīng)用[M].北京:人民郵電出版社,1996.
⑥ Herrera F.Lozano M. Gradual distributed real-coded genetic algorithms [J].IEEETra- nsactions on Evolutionary Computation,2004.4(1):43-63.endprint