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