模糊神经网络在发动机故障诊断中的应用研究 |
摘要:本文对模糊逻辑和神经网络故障诊断方法做了研究据这两种方法各自的优缺点,采用串联方法将二者相结合,用模糊信息处理方法对输入信号进行预处理,然后利用神经网络的逼近能力来实现对故障的诊断.将该方法构建的推理系统应用于汽油发动机偶发性疑难故障诊断.利用Matlab进行软件仿真,仿真结果表明该方法可以给出较高精度的诊断结果,与单纯使用模糊逻辑方法或神经网络方法都有较大改进,尤其对于单一系统的复杂故障具有很好的识别能力,有良好的应用前景. 关键词:模糊,预处理,神经网络,故障诊断.
神经网络具有强大的非线性映射能力、并行处理能力、良好的学习能力和容错性、独特的联想记忆能力等优点。广泛应用于工业生产的各个领域,基于神经网络的故障诊断已经成为较通用的故障诊断解决方案.但由于该故障诊断系统需要大量的学习样本且训练时间长,而训练好的网络连接权值表示知识,在知识获取表示方面也存在不足,会导致推理的脆弱。 模糊诊断通过研究故障与征兆之间的关系来判断设备状态。由于实际因素的复杂性,故障与征兆之间的关系很难用精确的数学模型来表示,随着某些故障状态模糊性的出现,就不能用“是否有故障”的简易诊断结果来表达,而要求给出故障产生的可能性及故障位置和程度如何.模糊故障诊断方法,就是利用模糊数学方法对待诊断系统的故障不确定性进行量化处理,再根据一定的判断阀值来识别故障。 基于模糊规则的故障诊断方法是首先将经验知识转化为模糊关系,然后运用模糊逻辑对模糊量进行推理,输出模糊量,最后将这些模糊控制量转换成精确量输出,指明故障类型.而正确地选择隶属函数,是运用模糊集合理论解决实际问题的基础.隶属函数是对模糊概念的定量描述,隶属函数的选择在很大程序上影响最终结果,但如何选择准确反映模糊概念的模糊集合的隶属函数,却无法找到统一的模式 .基于模糊理论的故障诊断也有自身的一些弱点:模糊诊断的知识获取比较困难;故障与征兆的模糊关系较难确定;系统的诊断能力依赖于模糊知识库,学习能力差,容易发生漏诊和误诊;故障诊断时,推理速度慢、效率低、能力弱;难以处理故障诊断中的不确定性问题。 鉴于神经网络故障诊断和模糊故障诊断各自的特点,本文提出一种基于模糊预处理的模糊神经网络故障诊断方法力图使两者的优点结合起来,克服彼此弱点,并将该方法应用于汽油发动机偶发性疑难故障诊断。 1.故障诊断方法 基于模糊预处理的模糊神经网络故障诊断系统如图1所示.首先,对通过对采集到的信号进行模糊预处理,然后利用神经网络对系统故障进行诊断. 多数故障诊断系统都包括图1所示的被诊断系统,信号采集,和决策执行系统模块.采集到的信号要求能实时地反映被测点当前所处的状态,诊断系统就是通过采集到的参数来判断系统所处状态,为决策执行系统提供依据判断依据. 1.1信号的模糊预处理 对于采集到的数值信号,首先要确定其模糊隶属度.模糊隶属度是对各模式特征的不确定性和不精确性进行刻划.正确地确定隶属函数,是运用模糊集合理论解决实际问题的基础。 确定模糊集隶属函数的方法很多,本文采用 函数作隶属函数求隶属度[4]. 函数的定义如下: 1.2神经网络故障诊断 神经网络是模拟生物的神经系统(特别是脑)功能的网络.人脑大约由150亿个神经细胞组成,每个细胞同数千,数万个神经细胞相联系,形成网络。这样,神经细胞模型可以看作是n输入单输出的信息处理单元.某个输入xi对神经细胞的影响以影响度表示,称为细胞的结合权重或效率wi,这个细胞模型如图2所示: 细胞的输入有强有弱,当其总和超过某一阈值θ,则细胞进入兴奋状态,产生输出;当其总和低于阈值时,细胞进入抑制状态,没有输出.这一输入输出关系可以写成 神经细胞之间可以有不同的联结方式,目前已经提出了许多神经网络模型.其中,BP学习算法是目前神经网络技术中应用最广也最为成功的学习算法。BP网络由输入层、输出层以及一个或多个隐含层所构成的神经网络,网络是按有教师示教的方式进行学习,它的学习过程就是不断修正网络权值和阈值使得实际输出与期望输出之间误差逐渐减小以至达到期望误差的过程. 如一个三层BP神经网络,设其有n个输入,m个输出,一个隐含层。从输入信号x,由内部单元经非线性变换,最终得到输出y。对于输入x,期望的输出设为yd,而实际的输出为y,一般二者不一致;输入-输出的函数与网络内部细胞的结合权重有关。由期望输出与实际输出的误差信号: BP算法是一个非线性优化问题,目前,这一学习法以输出的二乘误差为评价函数,普遍采用梯度下降法反向修正各层结合权和阈值.其权值xij修正公式为: BP神经网络的训练精度高, 且泛化结果令人满意, 而且理论上三层前馈神经网络可以任意期望精度逼近任意函数。但是,在学习过程中,标准BP算法随着误差值越来越小导致梯度下降调整的幅度也越来越小,从而使网络学习训练时间长,收敛速度慢;此外网络有可能陷于局部极小值。 鉴于以上几点,本文采用一种三层神经网络,采用改进的BP算法.网络如图: 本文针对基本BP算法的改进包括两个部分:一是给待训练参数的调整量加动量项,即: 2.系统仿真 将该方法应用于汽油发动机偶发性疑难故障诊断.由于发动机各零部件间相互耦合,因此发动机故障具有多层次性、模糊性、相似性等特点,故障的征兆与故障之间的对应关系往往呈现高度的非线性和耦合性,故障信息往往呈现高度的不精确性和不确定性。 令y1-y5分别代表故障原因:y1:进气岐管漏气;y2:上游氧传感器失效;y3:发动机电脑故障;y4:气流量传感器故障;y5:喷油嘴堵塞.怠速状态下,发动机运行参数分别由A,B,C,D,E,F,G表示:A.发动机转速(r/min);B.气缸压力(Mpa);C.节气门开度(%);D.上游氧传感器输出电压(mv);E.燃油压力(Mpa);F.喷油脉宽(ms);G.燃油修正值(%);其正常运行时值分别为:700,0.91,4.6,0.5,0.05,2.2,4.1。 根据本文介绍的方法需要设计三层BP神经网络.由于需要采集7个信号,经模糊预处理,则神经网络的共有21个输入,5个输出。 对于隐层单元设计,1947年,Kolmogorov给出了一个定理。此定理提及输入层n个单元,隐含层2n+1个单元,组成的神经网络可以精确实现任何一个连续函数.随着隐含层单元数的增加,神经网络学习的速率缩短。但不能无谓的增大隐含层单元数,因为过大的隐含层单元数将增加计算的复杂度,也就增加了训练时间,同时它还会产生其它问题.因此一般选择在解决问题的情况下再增加一到两个隐层单元.据此,本系统选择43个隐层单元。 运用MATLAB仿真工具对网络进行训练学习.设定误差允许范围为0.001,训练次数设为500次.训练结果如下: 由上图可见,网络通过219次的迭代学习即可收敛到误差允许范围内。 3.实验 随机抽取两组故障数据,对系统进行验证.表2和表3分别为系统输入和输出数据. 通过输出结果可知两组数据分别对应y1和y3,与专家推理结果相符.可见系统可以有效对汽油发动机一些故障进行识别. 4.结论 通过系统介绍核试验证实,该系统具有较好的故障识别能力.不但可以对不确定性知识及模棱两可的数据进行很好的处理,而且可以提高故障的诊断精度.因此,此方法可推广应用于具有大惯性,滞后,非线性,故障与征兆关系不易确定的故障诊断系统,有良好的应用前景。 |