王書提,巴寅亮,史 勇
(新疆農業大學機械交通學院 新疆農業工程裝備創新設計重點實驗室,新疆 烏魯木齊 830052)
基于Matlab的BP神經網絡的電控發動機故障研究
王書提,巴寅亮,史 勇
Wang Shuti,Ba Yinliang,Shi Yong
(新疆農業大學機械交通學院 新疆農業工程裝備創新設計重點實驗室,新疆 烏魯木齊 830052)
基于Matlab的BP神經網絡,對電控發動機的故障進行研究。采集電控發動機故障數據,運用BP神經網絡建立了故障診斷模型,并對幾種常見故障進行了診斷,診斷結果表明BP神經網絡在電控發動機故障診斷研究方面具有一定的實用價值。
Matlab;BP神經網絡;故障診斷
隨著電子控制技術在發動機上的應用程度越來越高,比如怠速控制、點火控制、噴油控制等,電子控制系統在提高發動機性能的同時也帶來了一些問題。雖然電控發動機的故障率降低了,但是一旦出問題,維修人員必須具備更高的技術水平。隨著科技的發展,許多科技人員利用人工神經網絡來研究工程領域的故障,效果比較理想。
人工神經網絡(Artificial Neural Networks,ANNs)是一種模仿動物神經網絡行為特征,進行分布式并行信息處理的算法數學模型。這種網絡依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。人工神經網絡具有自學習和自適應的能力。
基于Matlab的BP神經網絡,采集發動機故障數據,對發動機故障進行研究,研究結果能夠給汽車維修人員提供參考價值。
BP網絡(Back Propagation),是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播算法訓練的多層前饋網絡,是目前應用最廣泛的神經網絡模型之一。BP網絡能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網絡的權值和閾值,使網絡的誤差平方和最小。BP神經網絡模型拓撲結構包括輸入層(input layer)、隱層(hide layer)和輸出層(output layer)。
以3層BP神經網絡的結構為例,如圖1所示。輸入層由L個神經元組成,xi(i=1,2,3,…,L)表示其輸入;隱層由q個神經元組成,zj(j=1,2,3,…,q)表示隱層的輸出;輸出層由N個神經元組成,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網絡的結構后,要通過輸入和輸出樣本集對網絡的權值和閥值進行學習和修正,從而使網絡實現給定的輸入輸出映射關系。
為了驗證BP神經網絡診斷模型的可行性,以桑塔納2000 GSi型轎車(AJR型電控發動機)為例,進行故障假設,利用金德KT 600電腦故障診斷儀采集數據。以發動機在水溫傳感器故障、空氣流量傳感器故障、噴油器故障和氧傳感器故障狀態時的數據為樣本,采集的樣本數據如表1~表4所示。由于采集的樣本數據的量綱不同,在進行訓練之前,應將樣本數據歸一化處理,歸一化處理后的數據如表5所示。文中采用3層BP神經網絡結構,輸入層的神經元數目為4,隱含層的神經元數目為9,輸出層的神經元數目為4。

表1 水溫傳感器故障時的樣本數據

表2 空氣流量傳感器故障時的樣本數據

表3 噴油器故障時的樣本數據

表4 氧傳感器故障時的樣本數據

表5 樣本歸一化處理數據
利用Matlab創建的程序代碼如下:
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');%創建BP網絡
net.trainParam.show=100;%設置訓練顯示間隔次數
net.trainParam.epochs=2000;%設置最大訓練循環次數
net.trainParam.goal=0.0001;%設置性能目標值
net.trainParam.lr=0.05;%設置學習系數
net = init(net);%網絡初始化
net=train(net,p,t);%訓練網絡
其中,p中的數據為樣本歸一化處理后的數據。t中,以1000表示電控發動機水溫傳感器故障時的狀態,以0100表示電控發動機空氣流量傳感器故障時的狀態,以0010表示電控發動機噴油器故障時的狀態,以0001表示電控發動機氧傳感器故障時的狀態。創建 BP網絡時,采用'trainlm'訓練,因為'trainlm'的訓練速度快,可以減少訓練時間。在程序代碼中設置網絡初始化 net = init (net),可以保證每次訓練網絡時,權值都是隨機的,這樣可以達到預期的訓練目的。
運行程序代碼,得到BP神經網絡訓練誤差曲線,如圖2所示。由圖2可看出,當網絡訓練到第79步時,訓練樣本時間僅為1 s,已達到期望誤差0.000 1,這充分說明BP神經網絡訓練次數少、訓練用時短和收斂速度快,運用BP神經網絡可以在較短時間內診斷出發動機故障。
U464.17:TP389.1
A
10.14175/j.issn.1002-4581.2015.01.007
1002-4581(2015)01-0023-03