基于Matlab的BP神经网络的电控发动机故障研究

2015-11-24 11:51王书提巴寅亮
北京汽车 2015年1期
关键词:隐层电控神经网络

王书提,巴寅亮,史 勇

(新疆农业大学机械交通学院 新疆农业工程装备创新设计重点实验室,新疆 乌鲁木齐 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

猜你喜欢
隐层电控神经网络
基于RTD可编程逻辑门的n变量函数实现算法
基于神经网络的船舶电力系统故障诊断方法
一种自适应确定隐层节点数的增量半监督超限学习机算法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
卷积神经网络模型信息的深层安全控制方法及其优化
基于改进烟花算法的ELM 分类模型*
卷扬机电控系统变频技术的优化研究
基于神经网络的中小学生情感分析
浅析汽车电控技术教学的改革与创新