王雅娟,張湧濤
(河北聯(lián)合大學(xué) 電氣工程學(xué)院,河北 唐山 063000)
近年來,各國專家都致力于變壓器故障診斷的人工智能方法的研究。人工神經(jīng)網(wǎng)絡(luò)以其獨特的容錯、聯(lián)想、推測、記憶、自適應(yīng)、自學(xué)習(xí)和處理復(fù)雜模式等優(yōu)點,在電力變壓器故障診斷中得到了應(yīng)用,效果較好[1]。本文利用MATLAB環(huán)境構(gòu)造了一個用于變壓器故障診斷的BP網(wǎng)絡(luò)模型,利用遺傳算法對BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行優(yōu)化,然后采用LM(Levenberg-Marquardt)優(yōu)化算法對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;仿真結(jié)果證明,此網(wǎng)絡(luò)模型精確度較高,可用于變壓器的故障診斷。
BP神經(jīng)網(wǎng)絡(luò)是一種采用了誤差反向傳播 (Error Back Propagation,簡稱BP)算法的單向傳播的多層前饋網(wǎng)絡(luò),它分為輸入層 (Input Layer)、 隱含層 (Hidden Layer) 和輸出層(Output Layer)。網(wǎng)絡(luò)除輸入層節(jié)點外,有一層或多層的隱含層節(jié)點,同層節(jié)點之間沒有任何連接[2]。輸入信號從輸入層節(jié)點依次傳過各隱含層節(jié)點,然后傳到輸出節(jié)點,每一層節(jié)點的輸出只影響下一層節(jié)點的輸出。BP網(wǎng)絡(luò)可以看作是一個從輸入空間到輸出空間的高度非線性映射。在多層前饋網(wǎng)的應(yīng)用中,單隱含層BP網(wǎng)絡(luò)的應(yīng)用最為廣泛,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 BP neural network structure
在 3 層的 BP 神經(jīng)網(wǎng)絡(luò)中,輸入向量為X=(x1,x2,…,xi,…,xn)T,如果加入xo=-1,可為隱含層神經(jīng)元引入閾值。隱含層輸出向量為Y= (y1,y2...,yj..,ym)T,如果加入y0=-1,可為輸出層神經(jīng)元引入閾值。輸出層的實際輸出向量為O=(o1,o2,...,ok,...,ol)T,期望輸出向量為d=(d1,d2...,dk...,dl)T。 輸入層到隱含層之間的權(quán)值矩陣用V表示,V=(v1,v2...,vj..,vm)T,其中列向量Vj稱為隱含層第j個神經(jīng)元對應(yīng)的權(quán)向量;隱含層到輸出層之間的權(quán)值矩陣用W表示,W=(w1,w2...,wk..,wl)T其中列向量wk稱為隱含層第k個神經(jīng)元對應(yīng)的權(quán)向量。各層信號之間的關(guān)系可用如下的表達(dá)式表示:
對于輸出層,有:
對于隱含層,有:
以上4式共同構(gòu)成了BP神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模型。
基于BP算法的神經(jīng)網(wǎng)絡(luò)通過多個具有簡單處理功能的神經(jīng)元的復(fù)合作用,使網(wǎng)絡(luò)具有非線性映射能力,由于BP算法的訓(xùn)練是基于誤差梯度下降的權(quán)重修改原則,其結(jié)果不可避免的存在局部極小,收斂速度慢和引起振蕩效應(yīng)等問題[3],因此用于變壓器故障診斷中尚存在一定缺陷。
遺傳算法是根據(jù)生物進(jìn)化思想而得到的一種全局優(yōu)化算法[4],在本質(zhì)上是一種不依賴具體問題的直接搜索方法,僅需給出目標(biāo)函數(shù)的描述,便可從一組隨機產(chǎn)生的稱為 “種群(population)”的初始解開始搜索,通過個體的“適應(yīng)值”來評價個體的好壞,被選擇的下一代染色體經(jīng)過交叉和變異等操作產(chǎn)生新的個體。經(jīng)過上述的反復(fù)迭代計算,最終會收斂到最好的個體,即問題的解。由于遺傳算法善于全局搜索,且能以較大的概率找到全局最優(yōu)解,故用它來完成前期搜索能較好的克服BP算法的局部極小的缺陷[5]。遺傳算法優(yōu)化BP網(wǎng)絡(luò)流程圖如圖2所示。
圖2 遺傳算法優(yōu)化BP網(wǎng)絡(luò)流程圖Fig.2 Flow chart of BP network optimization by genetic algorithm
遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)初始值的步驟如下:
1)編碼,遺傳算法先將解空間的解數(shù)據(jù)表示成遺傳空間的基因型串結(jié)構(gòu)數(shù)據(jù),他們的不同組合就構(gòu)成了不同的點,編碼方式有二進(jìn)制編碼和浮點編碼,因為浮點編碼計算精度較高故本文采用浮點編碼。
2)隨機產(chǎn)生初始種群。采用隨機的方式產(chǎn)生若干個初始串結(jié)構(gòu)數(shù)據(jù),每個串結(jié)構(gòu)數(shù)據(jù)代表一個個體,全體初始串結(jié)構(gòu)數(shù)據(jù)構(gòu)成了初始種群。種群的大小一般是20~100,這樣既可以提高遺傳算法的穩(wěn)定性,又能夠保證種群的多樣性,容易獲得全局最優(yōu)解。
3)確定適應(yīng)度函數(shù)。一般以誤差函數(shù)的倒數(shù)作為染色體的評價函數(shù),計算每條染色體的適應(yīng)度,誤差越大,適應(yīng)度值越小。誤差為式(5)所示:
適應(yīng)度取誤差的倒數(shù),即:
4)選擇若干適應(yīng)度函數(shù)值大的個體直接進(jìn)入下一代,適應(yīng)度值小的個體被淘汰。
5)利用交叉算子(pc)、變異算子(pm)等遺傳算子對當(dāng)前一代群體進(jìn)行處理,并產(chǎn)生下一代群體。
6)重復(fù)步驟 3)4)5),對新一代群體進(jìn)行新一輪迭代,直到訓(xùn)練目標(biāo)滿足終止條件為止。
由于標(biāo)準(zhǔn)BP算法的收斂速度慢,會浪費大量時間并且神經(jīng)網(wǎng)絡(luò)極易陷入局部極小,因此本文采用Levenberg-Marquardt算法,它是一種樹枝優(yōu)化算法,是高斯-牛頓法的改進(jìn),它可以提高BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速度,加快網(wǎng)絡(luò)的收斂,避免陷入局部極小[6]。對于3層前饋網(wǎng)絡(luò),假定r維向量x是包含所有權(quán)值w和偏差b的列向量,即:
式中:N、H、M分別為網(wǎng)絡(luò)輸入層、中間層和輸出層的神經(jīng)元數(shù)。若J為誤差對權(quán)值微分的Jacobin矩陣,則網(wǎng)絡(luò)對權(quán)值的修正率滿足式(8):
式中:u為自適應(yīng)調(diào)整參數(shù),是個常數(shù);I為單位陣。
神經(jīng)網(wǎng)絡(luò)工具箱是以人工神經(jīng)網(wǎng)絡(luò)理論為基礎(chǔ),在MATLAB環(huán)境下開發(fā)出來的眾多工具箱中的一種,神經(jīng)網(wǎng)絡(luò)工具箱提供了很多經(jīng)典的學(xué)習(xí)算法,調(diào)用工具箱能夠快速實現(xiàn)對實際問題的建模,網(wǎng)絡(luò)設(shè)計,網(wǎng)絡(luò)優(yōu)化和結(jié)果仿真等工作[7]。文中的BP建模過程如下:變壓器油中溶解氣體分析數(shù)據(jù)在一定程度上能反映故障的類型,文中將5種特征氣體 (氫氣H2,甲烷 CH4、乙烷 C2H6、乙烯 C2H4、乙炔 C2H2)在變壓器油中的實際含量作為神經(jīng)網(wǎng)絡(luò)的輸入向量,即神經(jīng)網(wǎng)絡(luò)輸入層包括5個神經(jīng)元;筆者對變壓器故障類型進(jìn)行分析以后,將輸出向量確定為5種:無故障,中低溫過熱(150~700℃),高溫過熱(一般高于700℃),低能量放電和高能量放電。對于有教師學(xué)習(xí)的BP網(wǎng)絡(luò),故障編碼如表1所示,若輸出為1,則表示有該類故障,若輸出為0,則表示沒有該類故障。若為低溫過熱高能量放電,則輸出為01001。
表1 故障類型編碼Tab.1 Encode of fault type
作者收集了已明確故障類型的樣本數(shù)據(jù)72組,隨機選取57組作為訓(xùn)練樣本集,剩下的15組作為檢測樣本集。在BP神經(jīng)網(wǎng)絡(luò)變壓器故障診斷中,一般要對數(shù)據(jù)進(jìn)行預(yù)處理。如果直接用原始數(shù)據(jù)作為網(wǎng)絡(luò)的輸入向量,則可能導(dǎo)致因數(shù)據(jù)誤差較大而導(dǎo)致收斂性下降,甚至不收斂。數(shù)據(jù)預(yù)處理是指通過變換處理將網(wǎng)絡(luò)的輸入、輸出數(shù)據(jù)限制在(0,1)或(-1,1)區(qū)間內(nèi)。本文MATLAB仿真中就是利用mapminmax()函數(shù)對所有數(shù)據(jù)樣本做了歸一化處理,使其變換到(0,1)區(qū)間內(nèi),其MATLAB編碼如下:
其中,p為原始輸入向量,P為數(shù)據(jù)歸一化后的輸入向量,規(guī)范化的映射記錄在結(jié)構(gòu)體PS中。
文中的BP網(wǎng)絡(luò)輸入層取5個節(jié)點,輸出層取5個節(jié)點,對于如何確定BP網(wǎng)絡(luò)隱含層中神經(jīng)元的個數(shù),往往需要根據(jù)設(shè)計者的經(jīng)驗和多次試驗來確定,因而不存在一個理想的解析式來表示。本研究中,筆者經(jīng)過多次嘗試,最后確定隱含層神經(jīng)元個數(shù)為11,即構(gòu)成了一個5-11-5的BP神經(jīng)網(wǎng)絡(luò)。將GA和BP結(jié)合起來,形成BP-GA混合算法,以GA優(yōu)化BP網(wǎng)絡(luò)的初始權(quán)值和閾值,再由BP算法按負(fù)梯度方向修正網(wǎng)絡(luò)權(quán)值和閾值,進(jìn)行網(wǎng)絡(luò)訓(xùn)練[8-9]。用遺傳算法對BP網(wǎng)絡(luò)的初始權(quán)值閾值進(jìn)行優(yōu)化的過程:過程中采用浮點型編碼,遺傳算法的種群中的個體數(shù)目為50,遺傳代數(shù)為100。采用遺傳算法工具箱函數(shù)編程如下:
[x,endPop,bPop,trace]=ga(aa,‘gabpEval’,[],initPpp,[1e-6 1 0],‘maxGenTerm’,gen,...
表2 不同訓(xùn)練函數(shù)訓(xùn)練效果比較Tab.2 The training effect comparison of different training function
圖3 采用不同訓(xùn)練函數(shù)的訓(xùn)練過程圖Fig.3 Chart of neural network training process for different training functions
遺傳編碼的長度為S=R×S1+S1×S2+S1+S2,其中R為輸入向量個數(shù),即R=5;S2為輸出向量個數(shù),即 S2=5;S1為隱含層節(jié)點數(shù),即S1=11。將S按此式做分配后分別成為BP網(wǎng)絡(luò)的輸入層和隱含層的初始權(quán)值與閾值。變壓器故障診斷的BP網(wǎng)絡(luò)的生成調(diào)用的主要函數(shù)如下:
[0 1;0 1;0 1;0 1;0 1] 分別定義了輸入層各神經(jīng)元的最小輸出值(為0)和最大輸出值(為1)。由于輸出模式為0-1,因此本網(wǎng)絡(luò)隱含層神經(jīng)元的傳遞函數(shù)采用S型正切函數(shù)tansig(),輸出層神經(jīng)元的傳遞函數(shù)采用S型對數(shù)函數(shù)logsig(),這樣正好滿足了網(wǎng)絡(luò)的輸出要求[9]。由于標(biāo)準(zhǔn)BP算法的收斂速度慢,會浪費大量時間并且神經(jīng)網(wǎng)絡(luò)極易陷入局部極小,梯度下降算法(())、動量及自適應(yīng)梯度遞減算法(())、梯度下降動量算法(())和算法(())分別對同一訓(xùn)練樣本進(jìn)行訓(xùn)練。訓(xùn)練結(jié)束后記錄訓(xùn)練時間()和訓(xùn)練誤差(),比較結(jié)果如表2所示。不同訓(xùn)練函數(shù)的網(wǎng)絡(luò)訓(xùn)練的過程圖如圖3所示。
網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置如下:
設(shè)置好網(wǎng)絡(luò)訓(xùn)練參數(shù)以后,開始調(diào)用神經(jīng)網(wǎng)絡(luò)工具箱中的train()函數(shù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,調(diào)用格式如下:
其中P為輸入向量,T為輸出向量。
將檢驗樣本數(shù)據(jù)進(jìn)行歸一化處理后開始做仿真處理,MATLAB代碼如下:
式中:P_test[]為待檢驗數(shù)據(jù)樣本集。最后,此遺傳神經(jīng)網(wǎng)絡(luò)的訓(xùn)練圖如圖4所示。
圖4 神經(jīng)網(wǎng)絡(luò)訓(xùn)練圖Fig.4 Chart of neural network training process
檢驗樣本的診斷結(jié)果如表3所示。
表3 檢驗樣本的診斷結(jié)果Tab.3 Diagnostic test results of samples
從上表可以看出,對于BP神經(jīng)網(wǎng)絡(luò)第7和12組數(shù)據(jù)同期望輸出之間出現(xiàn)了偏差,故障診斷率為73.3%;對于遺傳神經(jīng)網(wǎng)絡(luò)只有第7組數(shù)據(jù)統(tǒng)期望輸出之間出現(xiàn)了偏差,故障診斷率為93.3%。利用遺傳算法優(yōu)化避免了BP網(wǎng)絡(luò)易陷入局部極小的問題,達(dá)到了優(yōu)化網(wǎng)絡(luò)的目的,優(yōu)化后的BP網(wǎng)絡(luò)診斷模型故障診斷準(zhǔn)確率得到了很大的提高。
提出了一種基于遺傳神經(jīng)網(wǎng)絡(luò)的變壓器[10]故障診斷的方法。它采用3層BP神經(jīng)網(wǎng)絡(luò)作為診斷模型,利用遺傳算法優(yōu)化該神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,并采用L-M優(yōu)化方法對該神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最終加快了收斂速度,并提高了診斷識別的精度。從以上數(shù)據(jù)結(jié)果分析,該網(wǎng)絡(luò)模型能夠比較精確地達(dá)到目標(biāo)結(jié)果,使變壓器故障診斷準(zhǔn)確率提高到了93.3%,從而證實了此方法的正確性和有效性,證明利用遺傳神經(jīng)網(wǎng)絡(luò)與L-M算法的結(jié)合可以較好地解決變壓器故障診斷問題。
[1]飛思科技產(chǎn)品研發(fā)中心.Matlab6.5輔助神經(jīng)網(wǎng)絡(luò)分析與設(shè)計[M].北京:電子工業(yè)出版社,2003.
[2]楊海馬,劉瑾,張菁.BP神經(jīng)網(wǎng)絡(luò)在變壓器故障診斷中的應(yīng)用[J].變壓器,2009,46(1):67-70.
YANG Hai-ma,LIU Jin,ZHANG Jing.BP neural network for transformer fault diagnosis[J].Transformer,2009,46(1):67-70.
[3]魏本征,田質(zhì)廣.基于遺傳優(yōu)化BP網(wǎng)絡(luò)的汽輪發(fā)電機故障診斷[J].控制工程,2007,14:175-177.
WEI Ben-zheng,TIAN Zhi-guang.Diagnosis of steam turbine generatorbased on genetic BP network [J].Control Engineering,2007,14:175-177.
[4]符楊,藍(lán)之達(dá).遺傳算法與人工神經(jīng)網(wǎng)絡(luò)結(jié)合在變壓器故障診斷中的應(yīng)用[J].變壓器,2003,40(10):32-37.
YU Yang,LAN Zhi-da.Transformer fault diagnosis based on genetic algorithm and artificial neural network[J].Transformer,2003,40(10):32-37.
[5]楊凡,米根鎖.BP網(wǎng)絡(luò)結(jié)合遺傳算法在故障診斷中的應(yīng)用[J].控制理論與應(yīng)用,2006,25(11):4-6.
YANG Fan,MI Gen-suo.BP network and genetic algorithm in fault diagnosis[J].Control Theory and Applications, 2006,25(11):4-6.
[6]韋灼彬,吳森,高屹.應(yīng)用遺傳算法和L-M優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測機場道面使用性能[J].空軍工程大學(xué)學(xué)報:自然科版,2009,10(4):11-16.
WEI Zhuo-bian,WU Sen,GAO Yi.BP neural network prediction model for airport pavement performance based on L-M optimization and genetic algorithm[J].Air Force Engine-ering University:Natural Science Edition,2009,10(4):11-16.
[7]陳龍,于盛林.遺傳神經(jīng)網(wǎng)絡(luò)在模擬電路故障診斷中的應(yīng)用[J].計算機仿真,2007,24(9):293-296.
CHEN Long,YU Sheng-lin.Genetic neural network in analog circuit fault diagnosis[J].Computer Simulation,2007,24(9):293-296.
[8]儲誠山,張宏偉,郭軍.基于遺傳算法和BP神經(jīng)網(wǎng)絡(luò)的用水量預(yù)測[J].中國農(nóng)村水利水電,2006(4):36-39.
CHU Cheng-shan,ZHANG Hong-wei,GUO Jun.Water demand based on ggenetic algorithm and BP neural network[J].China Rural Water and Hydropower,2006(4):36-39.
[9]梁科,夏定純.MATLAB環(huán)境下的遺傳算法程序設(shè)計及優(yōu)化問題求解[J].開發(fā)研究與設(shè)計技術(shù),2010(1):1048-1050.
LIANG Ke,XIA Ding-chun.Genetic algorithm optimization program design and problem ssolving in matlab environment[J].Development and Design Techniques,2010(1):1048-1050.
[10]趙永雷,黃家棟,李配配.基于加權(quán)模糊C均值聚類算法的變壓器故障診斷[J].陜西電力,2011(9):39-41.
ZHAO Yong-lei,HUANG Jia-dong,LI Pei-pei.Fault diagnosis on transformer based on weighted fuzzy C-means clustering algorithm[J].Shaanxi Electric Power,2011(9):39-41.