李 雯 喻菲菲 杜灿谊 李 锋 龚永康
(1-广东技术师范大学机电学院 广东 广州 510635 2-广东技术师范大学汽车与交通工程学院)
随着汽车电控技术的快速发展,发动机电控单元(ECU)接收的传感器信号越来越多,在对发动机运行工况精确监测的基础上,可对发动机的运转进行精确的控制与调整。同时,发动机在线诊断系统(OBD)的监测与诊断功能也越来越强大,但是,OBD系统通常只能监测传感器等电气线路和信号相关故障信息,对诸如发动机机械故障、磨损冲击、性能退化等方面故障通常没有监测与诊断能力。因此,如何对发动机进行有效深入的诊断,目前也有专家学者作了大量的研究[1-2],提出了一系列基于人工神经网络的发动机故障智能诊断方法。
发动机运行状态通常能用转速、进气歧管绝对压力、节气门开度、进气流量、冷却液温度等主要参数共同来表征。通过采集主要传感器信号作为输入特征向量,建立BP 神经网络和PNN 神经网络模型对发动机的故障类型进行分类与识别,并进行试验来验证方法的可行性。BP 神经网络和PNN 神经网络都常用于故障检测和目标分类识别领域,其中BP神经网络采用误差逆传播的学习算法,通过循环迭代来优化连接权值与阈值,从而达到分类要求。PNN网络则能用线性学习算法实现非线性的学习,具备学习速度快、鲁棒性强、可以完成任意非线性逼近的优点[3];另外,其各层节点数较为固定,易于硬件实现。本文采用BP 神经网络与PNN 网络建立了诊断模型,并在准确率和计算速度上进行对比分析。
通过试验提取各种故障状态的样本数据,方案路线如图1 所示[4]。发动机故障设置方式如下:拔下第一缸喷油器电磁阀接线头,实现单缸失火;用布塞住排气管口,实现排气管堵塞;用布盖住进气管空气滤清器进气口,实现进气管堵塞;取下火花塞并调节间隙,实现火花塞间隙过大。首先,利用元征X-431解码器,在瞬态工况下,获取卡罗拉L15B 四缸发动机在4 种典型故障状态以及正常状态的3 种传感器信号数据:发动机转速(n)、进气歧管绝对压力(MAP)和节气门开度(TPS),它们与发动机运行状态紧密相关。然后,以采集的数据作为训练样本,建立基于发动机故障识别的BP 和PNN 神经网络模型。最后,进行网络的测试和实验,分析网络的效果和方法的可行性。
图1 方案路线
通过试验获取发动机4 种故障状态以及正常状态的n、MAP、TPS 传感器信号数据,从各状态数据中任意提取15 组,共以[75×3]矩阵数据作为神经网络的训练样本。再另取[15×3]矩阵数据作为测试样本,数据如表1、表2 所示。
表1 部分训练样本数据
续表
表2 测试样本数据
针对发动机的多个表征参数、多种故障类型诊断这一复杂问题,往往计算量大且容错性要求高[5],借助神经网络可以迅速地寻找出所期望的最优结果。通过特征样本的训练,建立的神经网络模型就能以发动机实测传感器数据来识别所属可能性最高的故障类型。
2.1.1 BP 神经网络的设计
构建3 层BP 神经网络足以满足模式自动处理和判读。第一,输入层节点数取决于输入向量的维数,即需要输入3 个特征量,分别为转速、进气歧管绝对压力和节气门开度。第二,在输出层则需要设定5 种输出的模式:正常状态:[1 0 0];故障一,单缸失火:[0 1 0];故障二,进气管堵塞:[0 0 1];故障三,排气管堵塞:[0 1 1];故障四,火花塞间隙过大:[1 0 1]。第三,隐含层神经元数目是BP 神经网络性能优劣的关键所在[6]。根据现有的经验公式,隐含层节点数约为输入层节点数的2 倍左右[7],事实上,输入、输出神经元数共同影响着隐含层神经元个数的选择,不能一概而论。通过试凑法,多次尝试增减隐含层节点数,最终确定最优方案:三层神经网络的结构为“3-7-3”,如图2 所示。
图2 BP 神经网络结构
2.1.2 PNN 网络的设计
在模式分类问题中,PNN 神经网络得到了广泛的应用,它以贝叶斯最小风险准则为基本原理。网络分为4 层:第1 层为输入层,主要是把发动机的n、TPS 和MAP 形成的三维矢量X={x1,x2,x3}输入到神经网络中去,其神经元个数与输入矢量长度相等。第2 层为模式层,它通过加权系数Wi与输入层相连接,75 组样本输入即对应75 个神经元,每个神经元节点都设有一个中心,此层测出输入特征向量与训练样本之间的欧式距离,并返回一个标量值,完成非线性操作。与BP 神经网络的S 型传递函数不同,PNN 网络对标准化后的X 进行径向基运算,传递函数为:
其中分布密度δ 决定了样本归类的灵敏度,这是PNN 网络性能的核心量[8]。第3 层为求和层,主要对同一类的模式层神经元的输出进行加权平均,即节点数应为5。它将输出与各类基于内核的概率密度的估计,且呈正比例。第4 层为输出层,从求和层接收各类所获得的概率密度函数,以竞争神经元进行阈值辨别,从所有输出层神经元中匹配出可能性最大的一个,以输出1 和0 来区别待识别模式类别与其它模式类别。建立的PNN 网络拓补结构如图3所示。
图3 PNN 网络结构
确定神经网络结构后,输入采集制备的样本数据,通过一定的算法来让网络进行记忆、联想、推测和容错,从而得到特定的模糊映射关系,实现发动机故障的判别。
2.2.1 BP 神经网络的训练
BP 神经网络通过输出值与目标值的误差计算,并将误差根据设定的准则反向逐层传递来修改权值,从而使网络的输出趋近稳定状态,满足实际应用的需要[9]。采用S 型正切函数tansig、对数函数logsig分别作为BP 网络模型隐含层、输出层的传递函数。图4 为训练误差性能检测结果,从图可知,经过55次迭代(约1 s),训练最优状态与目标状态基本重合,其中相关系数R 为0.987 17(越接近1 网络性能越优),网络训练效果合理[10]。
2.2.2 概率神经网络的训练
与BP 神经网络不同,概率神经网络不计算误差进行反向传播,网络中的每个神经元都是单输入、单输出,它的信息处理能力来自于非线性函数的多重组合,是一个完全的正向计算过程。依次定义正常、单缸失火、进气管堵塞、排气管堵塞、火花塞间隙过大5 种状态的输出标签为{1,2,3,4,5}。调整散布常数spread 为0.2 时训练效果最好[11]。如图5 所示,75组状态数据在训练中全部正确分类,准确率为100%,速度为0.036s,训练程度符合要求。
图4 训练误差性能
图5 网络训练后样本的分类结果与误差图
采用同一个测试样本对建立好的BP 神经网络和PNN 网络进行测试,测试样本见表2。从网络测试的结果分析:BP 神经网络故障识别的误差较大,其中误差最大的一组是[0.7639 0.0001 0.9943],期望输出为[0 1 1],进气管堵塞、排气管堵塞以及正常状态均出现错误,准确率只有66.7%,效果不理想,原因是训练样本涵盖面不足;PNN 网络输出的结果跟期望输出基本符合,15 组随机样本的测试结果中,只有一组进气管堵塞被判断为排气管堵塞,故障检测错误,准确率达93.3%。网络测试结果如表3 所示,由此可见,建立的PNN 网络在完成发动机故障类型的分类和识别的效果上更优。
表3 网络测试结果对比
建立网络并进行测试后,需要在实际应用中对网络的计算结果进行验证,保证其故障识别的稳定性。因此,重新制取本田卡罗拉发动机3 类传感器信号数据,5 种状态各取10 组,即验证样本为[50×3]矩阵,部分验证结果如表4 所示。其中BP 神经网络的准确率为94%;PNN 网络的准确率为98%。另外,BP神经网络与概率神经网络的收敛速度分别为1s 和0.03 s。因此,PNN 网络在识别准确率和收敛速度上均优于BP 神经网络。
表4 部分数据及网络验证结果
以汽车发动机转速、进气歧管压力和节气门开度传感器信号作为特征向量,分别建立BP 神经网络和PNN 神经网络模型,对发动机正常状态以及单缸失火、进气管堵塞、排气管堵塞、火花塞间隙过大4种故障状态进行识别,准确率高。通过网络的测试和验证结果表明:PNN 网络的故障识别精度比BP 神经网络高,效果稳定且速度更快,此方法在汽车发动机故障识别中应用效果更佳。