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