基于改进BP神经网络的模拟电路故障诊断研究

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第28卷第9期兵工自动化Vol.28,No.92009年9月OrdnanceIndustryAutomationSep.2009·71·doi:10.3969/j.issn.1006-1576.2009.09.025基于改进BP神经网络的模拟电路故障诊断研究张锐,杨宣访(海军工程大学电气与信息工程学院,湖北武汉430033)摘要:根据BP神经网络特点,提出对BP神经网络改进的方法,并以某负反馈放大器为例,采用改进后的BP网络进行故障诊断,步骤包括:故障特征向量提取、原始数据归一化处理、BP网络设计与训练。结果表明,在MATLAB7.1中运用神经网络工具箱中函数进行仿真,能有效进行故障识别、改善神经网络结构、提高故障诊断精度和速度。关键词:故障诊断;模拟电路;神经网络中图分类号:TP18;TP277文献标识码:AResearchofAnalogCircuitFaultDiagnosisBasedonModifiedBPNeuralNetworkZHANGRui,YANGXuan-fang(SchoolofElectric&InformationEngineering,NavyUniversityofEngineering,Wuhan430033,China)Abstract:PutforwardanimprovedmethodforBPneuralnetworkrelyingonitscharacter,andtakingacertainnegativeoffeedbackamplifierasanexample,usingimprovedBPnetworkprogressfaultdiagnosis,andthestepsincludes:faultfeaturevectorextracting,originaldatanormalizationdealing,BPnetworkdesignandtraining.Resultshowedthatitcandetectfaultdiagnosis,improvenetworkstructureandincreasefaultdiagnosisprecisionandvelocityusingfunctionofneuralnetworktoolboxinMATLAB7.1simulation.Keywords:Faultdiagnosis;Analogcircuit;Neuralnetwork0引言模拟电路故障诊断是根据测量数据判断电路状态故障的。由于BP神经网络具有并行计算、自我记忆和自我学习等特点,适用于模拟电路故障诊断。但存在着收敛速度慢,易陷入局部极小值,隐层节点选择上依靠经验公式等缺点,故对其改进,并利用改进后的BP神经网络对模拟电路进行故障诊断。1BP网络的改进标准的BP网络常具有收敛速度慢,易陷入局部极小值,隐层节点难以确定等缺点,在应用中,BP算法很难胜任。对BP算法改进的途径有2种:一是采用启发式学习算法,如有动量的梯度下降法,有自适应学习速率的梯度下降法等。二是基于数值最优理论的算法,如共轭梯度法,高斯—牛顿法以及Levenberg-Marquardt优化方法等。这些改进方法可通过MATLAB神经网络工具箱函数来实现。对于BP网络隐层神经元数目选择十分复杂。隐层神经元过少会导致网络精度差;节点过多会导致学习时间过长、误差不一定最佳,也会导致容错性差,不能识别新样本等问题。但如果BP网络隐含层的神经元数目可以随意调整,则一个三层的BP网络可以逼近任意的非线性映射。通过隐层神经元数目可变的BP网络的误差对比,可确定最佳的隐层神经元个数。该网络的输入层和输出层数目均为1,隐层数目采用经验公式1nnma=++,(n输入神经元数;m为输出神经元数;a为1-10之间的常数)进行估计,BP网络的设计及程序如下:P=-1:0.1:1;%输入T=[-0.9602-0.5770-0.07290.37710.64050.66000.46090.1336-0.2013-0.4344-0.4474…-0.5000-0.3930-0.16470.09880.30720.39600.34490.1816-0.0312-0.2189-0.3201];s=3:8;%设置隐层节点数res=1:6;fori=1:6;net=newff(minmax(P),[s(i),1],{'tansig','purelin'},'trainlm');%网络训练net.trainParam.epochs=2000;net.trainParam.goal=0.001;LP.lr=0.01;net=train(net,P,T);y=sim(net,P);error=y-T;res(i)=norm(error);end对于多输入、多输出的BP网络,在网络训练时,收稿日期:2009-03-10;修回日期:2009-04-10基金项目:国家自然科学基金资助(50677069)作者简介:张锐(1977-),男,湖北人,海军工程大学在读硕士研究生,从事电路故障诊断研究。兵工自动化·72·只需更改输出层数目即可。2BP网络应用于模拟电路的故障诊断BP网络应用于电路故障诊断是以一些电路的典型故障样本送入神经网络训练,使之有判断能力,而成为故障识别系统。其工作步骤如下:1)确定待测电路的故障集和确定待测电路的故障集和状态特征参量,采用电路仿真或实验的方法获取电路每一故障状态下的状态特征数据,经筛选和归一化处理后构造训练样本集。2)设计BP神经网络并训练。根据需要和经验设计神经网络的结构、参数和训练算法。然后用训练样本集中的样本训练好网络,即完成学习的过程。3)一般采用3层BP神经网络,输入层节点数与电路状态特征参量的维数相同,输出层节点数可与电路待测故障类别数相同,也可小于待测故障类别数(采用编码指示对应故障)。实际诊断时给被测电路加相同的测试激励,将测得的实际状态特征参量输入到训练好的BP神经网络,则其输出即可指示相应的故障状态。3诊断实例及仿真现以某负反馈放大器为例,采用改进后的BP网络进行故障诊断,电路如图1。500kΩ3.3μF5kΩR9VOFF=0VAMPL=0.1FREQ=50kHzR1V6C5VR89kΩ1nR71kΩR63kΩR21kΩR310kΩR42kΩ12Vdc0V1-+C31μFQ2N2222out2Q2N2222Q1out5out4R50.5kΩC11μFQ20Vout3VVout1C2图1故障诊断电路3.1故障特征向量提取对电路原理图分析,可发现R2、R3、R4、R8开路,Q1和Q2发生故障对电路危害程度较大,故在仿真时选取几种故障类型作为诊断对象。选取5个测试点的电压(out1~out5)为BP网络的输入信号,通过PSpice仿真,对电路进行直流扫描与蒙特卡洛分析。仅对Q1发射极与集电极短路进行仿真。对三极管的故障模型建立可参见文献[7]。最后,选择6种故障类型进行分析诊断,并将每种故障模式进行编码作为神经网络的输出。表1为测试数据。表1电路原始测试数据节点电压电路状态Vout1Vout2Vout3Vout4Vout5类别编码Y0(无故障)8.58412.74080.59232.07771.65840000Y1(R2开路)0.01502.74080.00392.07770.01100001Y2(R3开路)8.58415.916E-090.592313.96E-091.65840010Y3(R4开路)8.58411.31840.59230.62871.65840011Y4(R7开路)8.58412.76920.592311.95501.65840100Y5(R8开路)8.60402.74089.487E-242.07771.70760101Y6(Q1C-E极短路)3.91202.74081.39722.07773.912001103.2原始数据归一化处理由于系统是非线性的,BP网络的初始值对于训练能否达到局部最小和是否收敛影响很大,同时,各故障状态下的测量值与正常电路电压值之差变化范围较大,有必要对输入样本进行归一化处理。可采用正态分布函数2()()xafxe−−=对输入样本进行归一化,得到各故障状态下测试点实际测量电压Vout1~Vout5属于电路无故障状态下α隶属度。归一化处理后的数据如表2。3.3BP网络设计与训练表2归一化处理后数据序号Y0Y1Y2Y3Y4Y5Y6X11.00000.00001.00001.00001.00000.99960.0000X21.00001.00000.00050.13220.99921.00001.0000X31.00000.70741.00001.00001.00000.70410.5232X41.00001.00000.01330.12250.00001.00001.0000故障征兆X51.00000.06631.00001.00001.00000.99760.0062对于BP网络,任何在闭区间内的一个连续函数都可用单隐层的BP网络逼近,即一个三层BP网络可完成任意的n维到m维的映射。BP网络的输入层以归一化处理后数据X1~X5作为输入层,输出层选择4个神经元,隐层单元数依据BP网络改进方法,选择12个神经单元,代入BP网络训练。完整的MATLAB程序如下:p=[1.00001.00001.00001.00001.0000;张锐,等:基于改进BP神经网络的模拟电路故障诊断研究·73·01.00000.70741.00000.0663;1.00000.00051.00000.01331.0000;1.00000.13221.00000.12251.0000;1.00000.99921.000001.0000;0.99961.00000.70411.00000.9976;01.00000.52321.00000.0062;]';%输入样本:t=[0000;0001;0010;0011;0100;0101;0110;]';%期望输出为:net=newff(minmax(p),[12,4],{'tansig','logsig'},'trainlm');%BP网络建立net.trainParam.epochs=20000;%训练次数net.trainParam.goal=0.00001;%设置训练误差LP.lr=0.001;%设置学习速率net=train(net,p,t);%网络训练%测试数据ptest=[0.95810.99920.87420.01471.0000;0.99961.00000.70411.00000.9976;0.12780.98550.52320.87880.0062;]';Y1=sim(net,ptest);输入测试数据,利用BP网络进行故障诊断,结果如表3。表3测试结果测试样本实际输出期望输出0.95810.99920.87420.01471.00000.00020.99900.00010.010001000.99961.00000.70411.00000.99760.00000.99840.00080.996101010.12780.98550.52320.87880.00620.00010.99050.99570.00810110可以判定,经过训练后,网络是完全可以满足故障诊断的要求的。4结束语结果表明,该方法具有较强的学习、泛化和适应能力,能改善神经网络结构,提高故障诊断的精度和速度。改进BP算法的训练精度比BP方法有提高,对输入模式有容噪能力,健壮性也比较好。参考文献:[1]田景文,高美娟.人工神经网络算法研究及应用[M].北京:北京理工大学出版社,2006.[2]杨宣访,方华京.模拟电路故障诊断的神经网络方法综述[J].计算机测量与控制,2006,14(5):564-566.[3]宋晓娟,等.基于BP网络改进算法的模拟电路故障诊断[J].甘肃科学学报,2008,20(1):99-101.[4]VančoLitovski

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功