王書提,巴寅亮,史 勇
(新疆農業(yè)大學機械交通學院 新疆農業(yè)工程裝備創(chuàng)新設計重點實驗室,新疆 烏魯木齊 830052)
基于Matlab的BP神經(jīng)網(wǎng)絡的電控發(fā)動機故障研究
王書提,巴寅亮,史 勇
Wang Shuti,Ba Yinliang,Shi Yong
(新疆農業(yè)大學機械交通學院 新疆農業(yè)工程裝備創(chuàng)新設計重點實驗室,新疆 烏魯木齊 830052)
基于Matlab的BP神經(jīng)網(wǎng)絡,對電控發(fā)動機的故障進行研究。采集電控發(fā)動機故障數(shù)據(jù),運用BP神經(jīng)網(wǎng)絡建立了故障診斷模型,并對幾種常見故障進行了診斷,診斷結果表明BP神經(jīng)網(wǎng)絡在電控發(fā)動機故障診斷研究方面具有一定的實用價值。
Matlab;BP神經(jīng)網(wǎng)絡;故障診斷
隨著電子控制技術在發(fā)動機上的應用程度越來越高,比如怠速控制、點火控制、噴油控制等,電子控制系統(tǒng)在提高發(fā)動機性能的同時也帶來了一些問題。雖然電控發(fā)動機的故障率降低了,但是一旦出問題,維修人員必須具備更高的技術水平。隨著科技的發(fā)展,許多科技人員利用人工神經(jīng)網(wǎng)絡來研究工程領域的故障,效果比較理想。
人工神經(jīng)網(wǎng)絡(Artificial Neural Networks,ANNs)是一種模仿動物神經(jīng)網(wǎng)絡行為特征,進行分布式并行信息處理的算法數(shù)學模型。這種網(wǎng)絡依靠系統(tǒng)的復雜程度,通過調整內部大量節(jié)點之間相互連接的關系,從而達到處理信息的目的。人工神經(jīng)網(wǎng)絡具有自學習和自適應的能力。
基于Matlab的BP神經(jīng)網(wǎng)絡,采集發(fā)動機故障數(shù)據(jù),對發(fā)動機故障進行研究,研究結果能夠給汽車維修人員提供參考價值。
BP網(wǎng)絡(Back Propagation),是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伨W(wǎng)絡,是目前應用最廣泛的神經(jīng)網(wǎng)絡模型之一。BP網(wǎng)絡能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數(shù)學方程。它的學習規(guī)則是使用最速下降法,通過反向傳播來不斷調整網(wǎng)絡的權值和閾值,使網(wǎng)絡的誤差平方和最小。BP神經(jīng)網(wǎng)絡模型拓撲結構包括輸入層(input layer)、隱層(hide layer)和輸出層(output layer)。
以3層BP神經(jīng)網(wǎng)絡的結構為例,如圖1所示。輸入層由L個神經(jīng)元組成,xi(i=1,2,3,…,L)表示其輸入;隱層由q個神經(jīng)元組成,zj(j=1,2,3,…,q)表示隱層的輸出;輸出層由N個神經(jīng)元組成,yk(k=1,2,3,…,N)表示其輸出;用 wij(i=1,2,3,…,L;j=1,2,3,…,q)表示從輸入層到隱層的權值;用vjk(j=1,2,3,…,q;k=1,2,3,…,N)表示從隱層到輸出層的權值。隱層輸入為,輸出為zk=f(rk);輸出層的輸入為,輸出為yk=f(sk),其中bk為閥值。
在確定了BP網(wǎng)絡的結構后,要通過輸入和輸出樣本集對網(wǎng)絡的權值和閥值進行學習和修正,從而使網(wǎng)絡實現(xiàn)給定的輸入輸出映射關系。
為了驗證BP神經(jīng)網(wǎng)絡診斷模型的可行性,以桑塔納2000 GSi型轎車(AJR型電控發(fā)動機)為例,進行故障假設,利用金德KT 600電腦故障診斷儀采集數(shù)據(jù)。以發(fā)動機在水溫傳感器故障、空氣流量傳感器故障、噴油器故障和氧傳感器故障狀態(tài)時的數(shù)據(jù)為樣本,采集的樣本數(shù)據(jù)如表1~表4所示。由于采集的樣本數(shù)據(jù)的量綱不同,在進行訓練之前,應將樣本數(shù)據(jù)歸一化處理,歸一化處理后的數(shù)據(jù)如表5所示。文中采用3層BP神經(jīng)網(wǎng)絡結構,輸入層的神經(jīng)元數(shù)目為4,隱含層的神經(jīng)元數(shù)目為9,輸出層的神經(jīng)元數(shù)目為4。
表1 水溫傳感器故障時的樣本數(shù)據(jù)
表2 空氣流量傳感器故障時的樣本數(shù)據(jù)
表3 噴油器故障時的樣本數(shù)據(jù)
表4 氧傳感器故障時的樣本數(shù)據(jù)
表5 樣本歸一化處理數(shù)據(jù)
利用Matlab創(chuàng)建的程序代碼如下:
p=[1.0000 0 0.0822 0.0327;1.0000 0 0.0028 0.0021;1.0000 0 0.0033 0.0021;0 0.4500 0.0300 1.0000]';%樣本輸入
t=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1 ]';%目標輸出
net = newff(minmax(p),[9 4],{'tansig''logsig'},'trainlm','learngdm');%創(chuàng)建BP網(wǎng)絡
net.trainParam.show=100;%設置訓練顯示間隔次數(shù)
net.trainParam.epochs=2000;%設置最大訓練循環(huán)次數(shù)
net.trainParam.goal=0.0001;%設置性能目標值
net.trainParam.lr=0.05;%設置學習系數(shù)
net = init(net);%網(wǎng)絡初始化
net=train(net,p,t);%訓練網(wǎng)絡
其中,p中的數(shù)據(jù)為樣本歸一化處理后的數(shù)據(jù)。t中,以1000表示電控發(fā)動機水溫傳感器故障時的狀態(tài),以0100表示電控發(fā)動機空氣流量傳感器故障時的狀態(tài),以0010表示電控發(fā)動機噴油器故障時的狀態(tài),以0001表示電控發(fā)動機氧傳感器故障時的狀態(tài)。創(chuàng)建 BP網(wǎng)絡時,采用'trainlm'訓練,因為'trainlm'的訓練速度快,可以減少訓練時間。在程序代碼中設置網(wǎng)絡初始化 net = init (net),可以保證每次訓練網(wǎng)絡時,權值都是隨機的,這樣可以達到預期的訓練目的。
運行程序代碼,得到BP神經(jīng)網(wǎng)絡訓練誤差曲線,如圖2所示。由圖2可看出,當網(wǎng)絡訓練到第79步時,訓練樣本時間僅為1 s,已達到期望誤差0.000 1,這充分說明BP神經(jīng)網(wǎng)絡訓練次數(shù)少、訓練用時短和收斂速度快,運用BP神經(jīng)網(wǎng)絡可以在較短時間內診斷出發(fā)動機故障。
U464.17:TP389.1
A
10.14175/j.issn.1002-4581.2015.01.007
1002-4581(2015)01-0023-03