基于概率神经网络(PNN)的故障诊断
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于概率神经网络(PNN)的故障诊断
概率神经网络PNN是一种结构简单、训练简洁、应用相当广泛的人工神经网络,在实际应用中,尤其是在解决分类问题的应用中,它的优势在于线性学习算法来完成以往非线性学习算法所做的工作,同时又能保持非线性算法的高精度等特性。基于概率神经网络的故障诊断方法实质上是利用概率神经网络模型的强大的非线性分类能力,将故障样本空间映射到故障模式空间中,从而形成一个具有较强容错能力和结构自适应能力的诊断网络系统。
1 概述
概率神经网络是一种可以用于模式分类的神经网络,其实只是基于贝叶斯最小风险准则发展而来的一种并行算法,目前已经在雷达、心电图仪等电子设备中获得了广泛的应用。PNN与BP网络相比较,其主要优点为:
快速训练,其训练时间仅仅大于读取数据的时间。
无论分类问题多么复杂,只要有足够多的训练数据,就可以保证获得贝叶斯准则下的最优解。
允许增加或减少训练数据而无需重新进行长时间的训练。
PNN层次模型是Specht根据贝叶斯分类规则与Parzen的概率密度函数提出的。在进行故障诊断的过程中,求和层对模式层中间同一模式的输出求和,并乘以代价因子;决策层则选择求和层中输出最大者对应的故障模式为诊断结果。当故障样本的数量增加时,模式层的神经元将随之增加。而当故障模式多余两种时,则求和层神经元将增加。所以,随着故障经验知识的积累,概率神经网络可以不断横向扩展,故障诊断的能力也将不断提高。
2基于PNN的故障诊断
1.问题描述
发动机运行过程中,油路和气路出现故障是最多的。由于发动机结构复杂,很难分清故障产生的原因,所以接下来尝试利用PNN来实现对发动机的故障诊断。
在发动机运行中常选用的6种特征参数:AI、MA、DI、MD、TR和PR。其中,AI为最大加速度指标;MA为平均加速度指标;DI为最大减速度指标;MD为平均减速度指标;TR为扭矩谐波分量比;PR为燃爆时的上升速度。
进行诊断时,首先要提取有关的特征参数,然后利用PNN进行诊断,诊断模型如图1所示。
2.PNN的创建和应用
图1基于PNN的发动机诊断模型
由图1可见,设计了两个PNN进行故障诊断。PNN-1的输入层有两个结点,对应TR和正常状态,样本模式层有两个结点,分别对应正常和故障两个模式;输出层有两个结点,分别对应正常和故障两种状态。
PNN-2的输入层有5个结点,分别对应5个特征参数:AI、MA、DI、MD 和PR;模式层有10个结点,对应每个结点的正常和故障中的10组模式;输出层有4个结点,分别对应油路故障、气门漏气、气缸漏气和正常4种状态。所谓信息处理就是通过输出的4种状态综合判定实际输出究竟是单故障还是复合故障。
选用发动机中的1号气缸进行分析。经过分析,该气缸一共出现了3种故障,分别为油量少、气门漏气、气缸漏气,再加上正常状态,可以认为有4种故障模式。利用二进制数格式描述这4种故障模式,见表1。这4种故障模式通过现场试验和对历史资料的收集分析,可以得到4组故障样本数据,见表2。
表1 故障模式分类
故障模式对应描述
正常 1 0 0 0
油量少0 1 0 0
气门漏气0 0 1 0
气缸漏气0 0 0 1
由于这些数据之间相差都不大,因此,不需要进行归一化处理就可以直接应用了。利用这些故障信息作为网络的训练样本,从而创建一个概率神经网络用于故障诊断。PNN的创建方法和RBF网络的创建方法非常相似,代码为net=newpnn(P,T,SPREAD)
表2 故障样本数据
其中,P和T分别为输入向量和目标向量,SPRESD为径向基函数的分布密度,默认为0.1。为了更好地分析SPREAD对网络性能的影响,这里将SPREAD 设置为5个值,分别为0.1、0.2、0.3、0.4和0.5。
函数newpnn( )已经创建了一个准确的概率神经网络,可以利用该网络进行故障诊断和分析。
首先,检验网络对训练数据的分类:
temp=sim(net,P)
yc=vec2ind(temp)
不同懂得SPREAD值对应的概率神经网络的输出结果都是一样的,即
yc =
1 2 3 4
由此可见,网络成功的将故障模式分为了4类。为了检验网络的外推性能,接下来给出一组测试样本数据,见表3。这组数据都源于真实的故障信息,可以有效地检验网络的性能。
表3 测试样本数据
利用表3中的测试样本对网络进行测试,代码为
y_test=sim(net,P_test);
yc_test=vec2ind(y_test);
输出结果为
yc_test=
1 2 3 4
由此可见,网络的分类结果是正确的。也就是说,网络成功地诊断出了这4种故障,因此,网络用于故障诊断是有效的。
3结论
基于概率神经网络的故障诊断方法可以最大程度地利用故障经验知识,在贝叶斯最小风险准则下对发动机的单故障进行定性诊断。概率神经网络训练速度快,在工程上易于实现,而且对样本噪声具有较强的鲁棒性,可以达到较高的诊断准确率。随着故障知识的逐渐积累,网络可以不断扩张从而进一步提高诊断准确率。
本实例的完整MATLAB代码如图2:
图2 发动机故障诊断的MATLAB代码
运行结果如下:
temp =
(1,1) 1
(2,2) 1
(3,3) 1
(4,4) 1
yc =
1 2 3 4
temp =
(1,1) 1
(2,2) 1
(3,3) 1
(4,4) 1
yc =
1 2 3 4
temp =
(1,1) 1
(2,2) 1
(3,3) 1
(4,4) 1
yc =
1 2 3 4
temp =
(1,1) 1
(2,2) 1
(3,3) 1
(4,4) 1