汪時武
(中國人民解放軍蚌埠汽車士官學校裝備技術系,安徽 蚌埠 233000)
BP神經網絡是多層前饋神經網絡,它的名字源于網絡權值的調整規則,采用的是后向傳播學習算法,既BP算法。BP網絡是目前應用最廣的神經網絡之一,BP網絡是由一個輸人層,一個或多個隱層以及一個輸出層組成,如圖1所示,上下層之間實現全連接,而每層神經元之間無連接。網絡的學習過程包括正向傳播和反向傳播。在正向傳播進程中,輸入信息從輸入層經隱層加權處理傳向輸出層,經功能函數運算后得到的輸出值與期望值進行比較,若有誤差,則誤差反向傳播,沿原先的連接通道返回,通過逐層修改各層的權重系數,減小誤差。隨著這種誤差逆向傳播修正的不斷進行,網絡對輸入模式響應的正確率也不斷上升。
研究表明,帶有兩個隱層的BP網絡能形成任何形狀的決策區域。當BP網用作非線性映射時,允許網絡實現輸入到輸出之間的任意映射關系,即可建立故障征兆空間與故障空間的某種映射關系,每當給出一個實測的故障征兆矢量,網絡即能通過狀態演化(前傳和聯想)收斂到與其最相近的模式,從而診斷其故障原因。典型的基于神經網絡模式識別的故障診斷系統結構如圖2所示。
BP神經網絡模型雖然在各方面都具有重要意義,而且應用也很廣泛,但它也存在一些不足。從數學上看,它是一個非線性優化問題,不可避免的存在局部極小點,學習算法的收斂速度慢,網絡隱層單元數選取帶有很大的盲目性和經驗性,新加入的樣本要影響已學完的樣本等。
具體來說,BP算法對樣本進行逐個學習時,常會發生“學了新的,忘了舊的”的遺忘現象。故此值得對樣本不斷循環重復,這樣一來其學習時間必然延長。為了克服這個缺點,將逐個學習改為批量學習,即對所有樣本都進行學習后將其誤差相加,然后用這個誤差之和來對網絡的權系數進行調整。但是這樣一來,在誤差求和時,這些誤差有可能互相抵消,這就降低了算法的調整能力,也就是延長了學習的時間。所以,按批量學習其收斂速度也會很慢。同時,批量學習方法還有可能產生新的局部極小點。比如各誤差不為零,但其總和為零,這種情況發生后算法就穩定在這個狀態上,造成新的局部極小點。
為了提高神經網絡算法的學習效率及穩定性,在反向傳播(BP)算法中可以引入基于非線性最小二乘法的Levenberg-Marquart(LM)最優算法,替代原BP算法中的梯度下降法尋找最佳網絡連接權值。
LM算法是一種優良的非線性最小二乘優化方法,這種方法的一般模型為:
其中m為訓練樣本數,n相當于神經網絡兩層之間的權值個數。
令:
其目標函數還可寫為F(x)=fT(x)f(x)
則F(x)的梯度為:
常稱A為雅可比矩陣;fi(x)稱為殘量函數定義為:i(x)=di-yi(x)
其中d i為目標函數,y i為神經網絡輸出。其Hessian矩陣為:
LM算法是二階收斂的Newton算法的變形,又稱變尺度法。牛頓法的權值調整算法如下:
若高階項S可省略的話,則變為Gauss-Newton法:
在Gauss-Newton法中,我們要求A是滿秩的。遺憾的是在實際情況中,A為奇異的情況經常發生,使得算法常常收斂到非駐點。這樣造成的結果是線性搜索得不到進一步下降,從而無法找到最優點。LM算法通過引入一個可變因子μ,將一個對角陣μI加到ATA上去,改變了原矩陣的特征值結構□使其變成滿秩正定矩陣,從而確保線性搜索的方向為下降的方向。其權值調整規則為:
我們可以利用μ來控制迭代,μ可以在一較大的范圍內進行調整。μ較小時即為Gauss-Newton法;μ較大時即為最速下降法。μ參數的引入,以及在迭代過程中μ參數的可調節性,極大地改善了算法收斂的穩定性。
采用LM最優化算法訓練神經網絡,替代原BP算法中的梯度下降法尋找最佳網絡連接權值。仿真試驗證明,這種學習算法提高了BP網絡算法的學習效率及穩定性,并提高了網絡的收斂速度,更好的實現了對柴油機燃油壓力信號的故障診斷。
柴油機燃油系統的狀態信息主要體現在高壓油管的壓力波形中,當某處發生故障時,必然使原有供油狀態發生變化,燃油流動的壓力和流速等參數會有相應的改變,反映在壓力波形上將導致波形形態和波形參數值的變化。因此利用壓力傳感器測取高壓油管的燃油壓力波形,并對波形進行分析、提取出故障特征,再利用人工神經網絡模型對特征值進行模式識別就可達到故障診斷的目的。圖3、圖4分別為100%和25%供油量噴油壓力波形圖。
特征參數的提取是模式識別過程中的重要環節,它關系到模式識別效果的準確性。由于燃油壓力波形是一種規則波形,任一壓力波形都標志著柴油機燃油系統的一種工作狀態。壓力波形的狀態信息主要體現在波形的結構形態上,可以直接從其時域波形上提取波形的結構特征,并表示為便于計算的特征空間。根據分析和試驗,對于燃油壓力波形來說,最大壓力、起噴壓力、落座壓力、次最大壓力、波形幅度、上升沿寬度、波形寬度、最大余波寬度等特征最能表現出柴油機運行時的狀況。為了獲得最佳診斷效果,我們選用這八種參數構成特征向量空間,如圖5所示。
4.3.1 數據樣本采集
柴油機燃料系故障主要是供油量不足,主要表現為針閥卡死、針閥泄漏、出油閥失效等。在發動機800r/min時,用傳感器分別采集正常油量、針閥卡死、針閥泄漏、出油閥失效四種狀態的燃油壓力數據,繪制出不同狀態下的燃油壓力波形,對每個波形手動提取出最大壓力、啟噴壓力、落座壓力、次最大壓力、波形幅度、上升沿寬度、波形寬度、最大余波寬度這8個特征值。一般情況下,每個狀態至少采集提取5個實際樣本,每個樣本都包括以上8個特征值,用來建立網絡,訓練網絡,并進行故障診斷。
4.3.2 BP神經網絡的建立和訓練
新建BP神經網絡NewNet,如圖6所示,網絡設計采用三層BP網絡,網絡的輸入層個數為8個,輸出層的個數為4個,隱含層的個數并不是固定的,經過實際訓練的檢驗和不斷的調整,確定隱含層的個數近似遵循下列關系n2=2n1+1。其中n1為輸入層個數,n2為隱含層個數,因此隱含層個數為17個。
四種故障模式可以用如下形式表示輸出:
正常油量(1,0,0,0);針閥卡死(0,1,0,0);針閥泄漏(0,0,1,0);出油閥失效(0,0,0,1)。
輸入層至隱層的連接權Wij、隱層至輸出層的連接權Vjt、隱層各單元的輸出閾值 θj、輸出層各單元的輸出閾值 γj,都選取為(-1~1)之間的隨機數,然后按照BP網絡的學習步驟進行學習。網絡輸入層的傳遞函數采用雙曲正切S型傳遞函數Tansig,第二層傳遞函數采用S型對數函數Logsig,利用基于非線性最小二乘法的LM最優算法,替代原BP算法中的梯度下降法訓練神經網絡,求出最佳網絡連接權值和閾值。
利用所采集數據樣本,作為網絡訓練的原始樣本,確定初始連接值和閾值后利用Matlab編程,訓練的速度為0.1,訓練誤差精度為0.01,對網絡訓練9000次,得出最終的各個連接權值和閾值,訓練結束。

表1 噴油壓力故障測試數據
4.3.3 故障診斷過程及結果
網絡訓練結束后,將表1中的測試數據輸入訓練好地BP網絡。
經過運算后,網絡輸出層得出如下的診斷結果:
從測試結果可以看出,診斷結果與實測值具有良好的一致性,診斷誤差分別為0.0043、0.0005、0.0035和0.0380可見診斷誤差非常小,因此可以判定,該BP神經網絡完全可以滿足柴油機燃油系常見故障的診斷要求。
仿真試驗表明,基于優化的BP神經網絡的故障診斷結果與實測值具有良好的一致性,只要選擇足夠典型的原始故障樣本訓練BP神經網絡,網絡的容錯性和穩定性就較好。針對設備運行的復雜性,僅選用單一的診斷參數往往會做出錯誤的判斷,而基于神經網絡的故障模式識別方法能充分利用信息特征,實現輸人與輸出之間的映射關系,得出準確的診斷結果。
[1]黃麗.BP 神經網絡算法改進及應用研究[D].重慶師范大學,2008:6-15.
[2]孫即祥.現代模式識別[M].國防科技大學出版社,2001,5.
[3]李國勇.智能控制及其 MATLAB 實現[M].電子工業出版社,2005,5.
[4]李煥良,等.基于BP神經網絡的電氣系統故障診斷[J].起重運輸機械,2005,6:55-56.
[5]王俊生.柴油發動機燃油系統的故障分析研究[J].山西建筑,2003,4:250.
[6]董學剛.燃油壓力波檢測在機車柴油機故障判斷上的應用[J].內燃機車,2002,7:25-27.
[7]飛思科技產品研發中心.神經網絡理論與MATLAB7實現[M].電子工業出版社,2005,3.