楊 勇,王立志,樊 發表於 2011-06-08 09:43:54
本文應用一種自適應遞階遺傳算法同時優化神經網絡結構和連接權重進行三相橋式全控整流電路故障診斷。利用自適應遞階遺傳算法同時優化神經網絡結構和連接權重,很好地解決了以往利用神經網絡進行故障診斷的不足,並用三相橋式全控整流電路故障診斷仿真實例證明了該方法的正確性和有效性。
1 基於改進遞階遺傳算法BP網絡分類器的設計
1.1 遞階遺傳算法
K.F.Man等根據染色體中的基因結構存在遞階形式,即一些基因控制另一些基因的活動,提出了遞階遺傳算法(Hierarchical Genetic Algorithm,HGA)。
為了簡要說明控制基因的活動,用整數「1」表示每一個正在激活的控制基因;用整數「0」表示每一個沒有激活的控制基因。當控制基因用整數「1」標識時,表示其相連的下級結構的基因處於活動狀態;當控制基因用整數「0」標識時,表示其相連的下級結構的基因處於不活動狀態。這種遞階結構意味著染色體比普通遺傳算法中的染色體包含的信息多,從而能夠處理更為複雜的問題。因此,稱編碼為遞階結構染色體的遺傳算法為遞階遺傳算法。
如圖1所示,兩條染色體各是由5個控制基因和5個整數表示的參數基因組成。
其表示分別為:
從圖1可以看出,XA,XB表示染色體的長度分別為3和2,這意味著在遞階染色體結構中,雖然兩條染色體的長度相同,而其表示的長度可能不同。因此,遞階遺傳算法能夠搜索出所有參數中適合最終目標函數的參數的長度。而且,根據具體問題,染色體可以設計為多級遞階結構,從而形成多層的染色體結構。
本文採用二級遞階結構染色體描述BP網絡結構和參數,其中,控制基因串表示隱節點,參數基因串表示網絡的權重和相應的閾值。遞階遺傳算法在操作過程中,不僅改變控制基因串的狀況,而且改變參數基因串的取值。因此,訓練過程中網絡參數和拓撲結構可同時優化。
1.2 編碼結構
染色體遞階結構及編碼如圖2所示,其中,控制基因按設定的比較大的初始隱節點數(可以根據經驗公式得到,其中,d為輸入神經元個數,n為輸出神經元個數,a為1~10之間的常數)由遺傳算法隨機生成0,1編碼,1的個數即為有效的隱節點個數,參數基因為隱節點對應的權值及閾值,由遺傳算法隨機生成實數編碼。另外,在參數基因串的最後附加上不受控制基因控制的輸出節點的閾值參數。當達到訓練代數或停止準則時,控制基因串中1的個數即為最佳隱節點個數,1所對應的參數基因串即為該隱節點對應的最優結構參數。
1.3 適應值函數
訓練神經網絡的目標是使神經網絡的精確度和複雜度都達到最小,這是一個雙目標優化問題。BP網絡的複雜度由隱層節點數決定,精度由網絡輸出與期望輸出之間的誤差決定,考慮到訓練的目標,建立適值函數如下:
式中:m為隱節點數;d為網絡輸入節點數;a,b和c為待定係數;表示第i個輸入樣本對應的網絡輸出;yi為期望輸出;N為樣本數。根據大量實驗結果,適值函數的係數分別如下取值效果是比較好的,即a=0.95,b=0.05,c=3。神經網絡訓練誤差為:
1.4 無回放餘數隨機選擇
無回放餘數隨機選擇法結合了基於概率的選擇方法和確定方式的選擇方法,可確保適應度比平均適應度大的一些個體一定能被遺傳到下一代群體,選擇誤差比較小。其具體步驟如下:
(1)計算群體中每個個體在下一代群體中的生存期望數目(N為種群規模,fiti為個體i的適應值):
(2)取Ni的整數部分int Ni為對應個體在下一代群體中的生存數目。這樣共可確定出下一代群體中的個個體
(3)以為各個個體的新的適應度,再用基本的比例選擇方法來隨機確定下一代群體中還未確定的個個體。
1.5 交叉和變異算子
由前述介紹可知遞階遺傳算法染色體的結構是固定的,所以與常規遺傳算法的操作運算相比沒有多大差異。因此,標準的交叉和變異算子同樣分別適用於染色體中不同級別的染色體串,即對不同級別的染色體串,交叉和變異遺傳算法中的交叉概率和變異概率是兩個極為重要的控制參數,它們的選擇是影響遺傳算法行為和性能的關鍵所在。選取固定的交叉概率和變異概率易使遺傳算法產生早熟收斂,陷入局部極值。
Srinivas等提出了自適應遺傳算法(Adaptive GA,AGA):
式中:fmax表示種群個體的最大適應度;favg表示種群的平均適應度;f』表示參與交叉的兩個個體中較大的適應度;f表示變異個體的適應度。
調整思想是,當群體適應度比較集中時,使交叉概率pc和變異概率pm增大;當群體適應度比較分散時,使pc和pm減小,同時,適應度值高於群體平均值的個體對應於較低的pc和pm,使該解得以保護從而進入下一代;低於群體平均值的個體,對應於較高的pc和pm,使該解被淘汰。因此,交叉、變異概率的自適應調整能夠提供給某個解較佳的pc和pm組合。自適應遞階遺傳算法在保持群體多樣性的同時,保證算法的收斂性,提高算法的收斂速度。
2 三相橋式全控整流電路建模與仿真
研究分析表明,整流輸出電壓包含了電路的故障信息,是一個關鍵的測試點,通過適當的變換可以實現故障診斷。運用Matlab 7.1軟體中的Simulink構建三相橋式全控整流主電路故障模型如圖3所示。並對幾種常見故障進行了仿真研究,其部分仿真結果如圖4(a)~(e)所示,分別為正常工作時負載電壓,單管VT5斷路,兩隻管子同時斷路故障包括同一支路不同橋臂(VT1和VT4)、不同支路不同橋臂(VT4和VT5)和不同支路同一橋臂(VT1和VT5)的斷路故障仿真波形。
3 三相橋式全控整流電路的故障診斷
圖5所示為三相橋式全控整流電路原理圖。考慮到實際系統運行時出現故障的情況,同時為簡化分析過程,假定整流電路晶閘管故障分為單管故障或兩支管子同時故障共22種,要使神經網絡能區分所有的故障,必須對這些故障類型進行編碼,用六位編碼表示,也就是神經網絡的輸出。每位編碼對應一個晶閘管,所有晶閘管均正常時對應編碼為000000。
以A相電壓正向過零處為基準,對控制角從0~120°每隔7.5°依次對22種故障狀態下的輸出電壓ud進行一個周期(20 ms)的數據採集,採集到的數據個數為50個,以此組成訓練樣本,共有22×17=374個樣本。用同樣的方法對控制角從6.5~113.5°每隔10.7°對ud進行採樣,以獲得測試樣本。根據主成分分析特徵提取的算法對訓練和測試樣本進行故障特徵提取,獲取的新樣本從50維降為10維,大大減少了神經網絡的計算量,改善了網絡的複雜程度。
本文運用Matlab工具箱,採用自適應遞階遺傳算法對神經網絡進行了優化。得到了神經網絡的最簡結構(隱含層神經元個數m=14)和最優的權值、閾值。優化後的神經網絡訓練誤差曲線如圖6所示。
採用測試樣本數據對所訓練好的BP神經網絡進行仿真驗證,分別選用負載變化、輸入電壓變化得到的特徵向量數據去驗證已建立的BP神經網絡,故障診斷正確率達到97.67%,並且故障診斷有誤都發生在負載和輸入電壓同時變化時。
4 結論
本文將一種自適應遞階遺傳算法應用於神經網絡的優化,解決了以往神經網絡結構、權值、閾值同時優化效率不高的難題。通過仿真實驗,證明了算法的準確性和實用性,並將優化的神經網絡用於三相橋式全控整流電路的故障診斷,得到了令人滿意的結果。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴