劉建立,李業德,張 濤
(1.山東理工大學計算機科學與技術學院山東淄博255091;2.張店鋼鐵總廠山東淄博255000)
基于混沌PSO-DV優化BP神經網絡的汽車故障診斷
劉建立1,李業德1,張 濤2
(1.山東理工大學計算機科學與技術學院山東淄博255091;2.張店鋼鐵總廠山東淄博255000)
針對傳統的PSO優化BP網絡的局限性,提出了一種混沌PSO-DV算法和BP神經網絡的混合算法.該算法具有混沌算法的局部搜索遍歷性,DE算法的種群多樣性及BP神經網絡的快速搜索能力等優勢.仿真結果表明,混沌PSO-DV優化的BP神經網絡應用于汽車發動機故障診斷,使得故障診斷的效率和準確率得到了很大的提高.
混沌PSO-DV算法;BP神經網絡;汽車發動機;故障診斷
汽車發動機是汽車的心臟,對汽車發動機的高效及準確的故障診斷已成為目前研究熱點問題[1],發動機故障呈現多部位、多現象、復雜性、非線性等特點,而傳統的故障診斷專家系統具有實時性差,學習能力不強,且對知識庫的修改需人工干預等缺陷[1],因此對基于智能專家系統如神經網絡[2]、貝葉斯網絡[3]、模糊理論[4]等的故障診斷倍受關注.BP神經網絡較強的自學習、自適應、容錯、聯想記憶及非線性模式識別等特點,使得在處理多故障、多征兆的復雜系統具有明顯的優勢,是目前研究的熱點之一,同時在汽車發動機故障診斷方面也得到了廣泛的應用[2].
雖然BP神經網絡在故障診斷中有明顯的優勢,但由于其本質上為梯度下降法,導致了收斂速度慢的現象,且使用梯度下降法易導致陷入局部極小,從而無法收斂到全局最優.粒子群算法(PSO算法)有利于在全局范圍內產生很好的搜索能力,因此國內外許多學者利用PSO及其變體對神經網絡進行優化,取得了良好的效果.在傳統的PSO算法中,一旦目標到達局部極小值附近,可能會出現收斂速度慢,甚至在極小點附近振蕩的現象,陷入局部極小的問題.為解決以上不足,本文在粒子群算法的基礎上,結合差分進化算法和混沌的概念,提出了一種CPSO-DV算法進行BP神經網絡的訓練,可避免用標準PSO算法導致的易陷入局部極小的問題.同時較文獻[5]標準PSO訓練神經網絡收斂更快且誤差更小.文中以汽車發動機的點火系統為例進行故障診斷,得到了很好的效果.
1.1 PSO優化算法
PSO算法是一種基本群體智能的隨機尋優算法,它是模擬鳥群覓食行為的研究,當一群鳥在某個空間范圍內搜索一塊食物,且它們都不知道食物的具體位置,但知道其離食物的距離,因此每只鳥可以通過最近鳥的位置進行學習和優化自身位置從而最終找到食物[5].PSO算法是從這種模型中得到啟示并用于解決優化問題,在PSO中,一個粒子就是優化問題的一個解,類似于鳥類群體活動模型中存在于搜索空間的一只鳥,所有的粒子在一個確定搜索空間范圍內進行活動,通過對所有的粒子進行搜索尋找到最優粒子位置從而確定問題最優解.首先, PSO會產生一群隨機粒子,然后通過迭代找到個體極值pbest和一個全局極值gbest;在找到這兩個極值后,基本的PSO算法就會利用以下兩個公式來更新自己的速度和位置[6].

1.2 DE(差分進化)算法介紹
DE算法是基于實數編碼的高效進化算法,具有個體最優解記憶和共享種群信息的特點,它通過種群內部合作和競爭求解優化問題,是一種變異的擁有保優思想的貪婪遺傳算法[7].首先,算法在問題的可行性解空間上初始化種群,然后迭代,在每一次迭代過程中都進行變異和交叉操作來產生新的種群,然后在這兩個新的種群中選擇較優種群,從而產生一個新的種群.如圖1所示描述了DE算法的運行流程.

圖1 DE算法運行流程
1.3 混沌知識介紹
對于混沌目前尚無精確的定義,一般表現出一種無規律性、無固定周期循環的運動狀態則稱之為混沌.在混沌優化算法中,首先必須讓解空間中的元素處于混沌狀態,因此Logistic映射作為一種典型的混沌系統則被用來產生混沌變量,其公式如下,

CPSO-DV算法是在最初的PSO-DV算法中引入了混沌的概念,它是通過把由原來的PSO-DV優化產生的解空間映射到Logistic方程的定義域上,迭代產生混沌變量序列,再把產生的混沌序列逆映射到原解空間的一個過程.PSO-DV算法與標準的PSO有著本質的區別,在速度更新公式(1)中,把有關pbest的一項替換掉,即我們所說的認知部分被替換,取而代之的是在粒子群中隨機選擇的兩個不同被權值化了的粒子的位置向量差,這個向量差分算子作為新的認知項來更新速度,由于這個速度差分項是通過DE算法的變異方法產生,稱之為PSO-DV算法.在PSO-DV中,每個粒子k,可以隨機選取兩個粒子i和j(i≠j≠k),用他們的差分向量來作為粒子群算法中的認知項來更新粒子.公式為

則第k個粒子的第d個元素可以用以下公式來更新,


通過適應度函數去判斷新的位置的適應度值,如果新的位置的適應度值更好,則粒子的位置將會由新的位置取代,否則保持當前位置不變.如公式(8)用網絡輸出與期望值的方差作為適應度函數,如果新位置的適應度值比當前位置的適應度值要小,則更新粒子的位置.

CPSO-DV算法在運行時會用公式(5)來更新自己的速度和公式(7)來更新自己的位置,然后在進行混沌優化,依次循環,直至最優或達到最大迭代次數.其運行可按如下的步驟進行.
第一步:初始化粒子群,包括算法的參數,迭代次數,混沌尋優次數等.
第二步:根據PSO-DV的算法依式(5)和式(7),當隨機因子小于交叉概率時更新速度,否則保持不變,同時用適應度函數去評價由式(6)所生成的新位置的適應度值,如果滿足新位置的適應度值小于當前位置的適應度值,則改變粒子的位置,否則不變.
第三步:對全局最優解gbest進行混沌優化,根據Logistic混沌模型,將gbest中的元素映射到其定義域上,用式(3)進行迭代產生混沌變量序列,把產生的混沌變量序列逆映射到原解空間,得gbest(m),然后對每一個可行解計算適應度值,保留適應度值最好的gbest′.
第四步:在粒子群中任意選取一個粒子,用gbest′替代.
第五步:若達到最大迭代數或得到滿意解,則終止,否則轉到第2步.
用CPSO-DV算法訓練神經網絡,首先建立合理的神經網絡模型和粒子的模型,如確定神經網絡各層之間的權值和閾值,粒子的適應度函數和搜索空間范圍等,本文對模型的建立步驟如下:
①參數編碼:構造一個三層的BP網絡,調整參數由權重和偏差組成,假設N1、N2和N3分別表示輸入、隱含和輸出層的神經元數,從而可將CPSO-DV算法中每個粒子的維度定為D,D=N1× (N2+1)+N2×(N3+1).參照文獻[5]汽車發動機點火系統相關數據,構造一個三層神經網絡,網絡的輸入層為5個節點,分別表示不同的故障現象,正常為0,異常為1,不確定為0.5;輸出層為3個節點,表示點火系統中的三類故障原因,分別為高壓電路故障、低壓電路故障和高低壓電路故障,同樣正常為0,異常為1;隱含層的個數可由公式α計算.n為輸入層的個數,m為輸出層的個數,a為[1,10]的整數,可設隱含層個數為6.
②適應度函數的設計:本文用網絡輸出與期望值的方差作為種群的適應度函數.

式中:N表示樣本容量;?y(t)表示迭代t次時第i個訓練樣本輸入的實際輸出值;(t)表示期望輸出值.
③參數設置:種群規模大小,粒子維度,慣性權重,加速常數和最大迭代次數.文中所設中群規模大小為30,慣性權重,加速常數=2,最大迭代次數t=300,粒子維度D=59,從而種群中第K個粒子的位置向量可表示為

式中:w、υ表示連接輸入層和隱含層以及隱含層和輸出層的權值;θ、γ為判斷隱含層和輸出層的閾值.
當模型建立好之后就可以進行樣本的學習和訓練了,以下情況為點火系統的故障現象和導致故障的原因[9].
故障現象:
I1電流動態情況.
I2高壓分火線試火.
I3分火線火花情況.
I4高壓總火線試火
I5發動征兆.
故障原因:
Y1低壓電路故障.
Y2高壓電路故障.
Y3高低壓電路故障.
選取樣本數據進行實驗.分別用CPSO-DV和標準PSO優化的PB神經網絡進行訓練,達到要求的最大迭代次數或收斂精度結束神經網絡的訓練.
如圖2為標準PSO算法和CPSO-DV算法在同一條件下訓練出來的BP網絡收斂曲線,其中縱坐標為誤差,即公式(8)中的方差值,橫坐標為迭代次數,達到300次停止訓練.

圖2 兩種優化算法在相同條件下訓練神經網絡的收斂曲線
表1為隨機抽取的5組訓練樣本和1組測試樣本,經過訓練之后的神經網絡,對測試樣本進行驗證,得出低壓電路故障與預期結果相符合.

表1 隨機抽取的故障樣本及數據
圖2中基于標準PSO算法優化的神經網絡在達到所要求的最大迭代次數后,仍然沒收斂到所要求的誤差精度(要求誤差精度為2×10―2),且迭代到59次之后誤差基本不再變化,陷入了局部最優;基于CPSO-DV算法在迭代相同的次數能收斂到所要求的誤差,且效果要明顯好于要求誤差,同時, CPSO-DV算法的收斂曲線有明顯的抖動現象,說明其具有更好的跳出局部極值的能力.表1的6組數據標準PSO訓練網絡得到的結果為Y=[1.0044 0. 0091 0.0099],CPSO-DV訓練BP神經網絡診斷的結果為Y=[1.0012 0.0037 0.0069],較PSO有更好的診斷能力.
利用CPSO-DV算法對BP神經網絡進行訓練,通過綜合混沌算法、PSO算法及DE算法的優勢能避免標準PSO算法中易陷入局部極值的問題,同時收斂效果顯著提高.將其應用于汽車發動機點火系統故障診斷中,通過故障樣本訓練網絡并進行測試,實驗結果表明,該算法較標準的PSO優化神經網絡提高了收斂精度,減少了誤差,提高了故障診斷的效率和準確性,對于實際應用有著非常重要意義.
[1]劉麗芳.汽車發動機故障診斷系統[D].太原市:太原理工大學, 2012.
[2]張建軍,張利,穆海芳,等.基于改進粒子群優化BP網絡的發動機故障診斷方法[J].農業機械學報,2011,42(1):198-203.
[3]李錦,黃長征.基于bayes判別法的內燃機氣門間隙故障診斷[J].韶關學院學報,2010,31(12):43-46.
[4]王禮軍.模糊神經網絡專家系統在故障診斷中的應用[J].重慶交通大學學報,2012,31(3):469-472.
[5]柴長松,張欣,牛奔,等.基于粒子群神經網絡的發動機故障診斷[J].微計算機信息,2007,23(8-1):186-194.
[6]Eberchart R,Kenndy J.A new optimizer using particle swarm theory[C]//Micro Machine and Human Science,1995,MHS′95, Proceedings of the six International Symposium.USA,Indianapolis Purdue Sch of Eng.&Technol,1995:39-43.
[7]周艷平,顧幸生.差分進化算法研究和發展[J].化工自動化及儀表,2007,34(3):1-5.
[8]Liu B,Wang L,Jin Y H,et al.Improved particle swarm optimization combined with chaos[J].Chaos Solitons&Fractals, 2004,25:1 261-1 271.
[9]Wu Z Y,Han Y,Zhang J J.Research on auto-production line fault Diagnosis based on FNN[J].China Mechanical Engineering,2008,19(9):1 072-1 075.
(編輯:劉寶江)
Automotive engine fault diagnosis based on BP neural network optimized by chaos PSO-DV
LIU Jian-li1,LI Ye-de,ZHANG Tao2
(1.School of Computer Science and Technology,Shandong University of Technology,Zibo 255091,China;2.Zhangdian Iron and Steel,Zibo 255000,China)
Aimed at the limitation of BP neural network optimazed by traditional PSO,a novel chaos PSO-DV algorithm was proposed.This algorithm has the advantages of the local search ergodicity of chaos algorithm,the population diversity of the DE algorithm and fast search ability of BP neural network.The simulation results showed that when BP neural network which optimized by chaos PSO-DV was applied on the automotive engine fault diagnosis,the efficiency and accuracy of fault diagnosis was higher improved.
chaos PSO-DV algorithm;BP neural network;automotive engine;fault diagnosis
1672―6197(2013)01―0067―04
TP311
A
2012- 12- 18
劉建立,男,liujianli523@sina.com;通信作者:李業德,男,liyede@sdut.edu.cn