基于Matlab的BP神经网络的电控发动机故障研究
2015-11-24王书提巴寅亮
王书提,巴寅亮,史 勇
(新疆农业大学机械交通学院 新疆农业工程装备创新设计重点实验室,新疆 乌鲁木齐 830052)
基于Matlab的BP神经网络的电控发动机故障研究
王书提,巴寅亮,史 勇
Wang Shuti,Ba Yinliang,Shi Yong
(新疆农业大学机械交通学院 新疆农业工程装备创新设计重点实验室,新疆 乌鲁木齐 830052)
基于Matlab的BP神经网络,对电控发动机的故障进行研究。采集电控发动机故障数据,运用BP神经网络建立了故障诊断模型,并对几种常见故障进行了诊断,诊断结果表明BP神经网络在电控发动机故障诊断研究方面具有一定的实用价值。
Matlab;BP神经网络;故障诊断
0 引 言
随着电子控制技术在发动机上的应用程度越来越高,比如怠速控制、点火控制、喷油控制等,电子控制系统在提高发动机性能的同时也带来了一些问题。虽然电控发动机的故障率降低了,但是一旦出问题,维修人员必须具备更高的技术水平。随着科技的发展,许多科技人员利用人工神经网络来研究工程领域的故障,效果比较理想。
人工神经网络(Artificial Neural Networks,ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。人工神经网络具有自学习和自适应的能力。
基于Matlab的BP神经网络,采集发动机故障数据,对发动机故障进行研究,研究结果能够给汽车维修人员提供参考价值。
1 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网络的结构后,要通过输入和输出样本集对网络的权值和阀值进行学习和修正,从而使网络实现给定的输入输出映射关系。
2 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