基于BP神经网络的故障诊断方法(共15页).doc

上传人:飞****2 文档编号:14237411 上传时间:2022-05-03 格式:DOC 页数:15 大小:300.50KB
返回 下载 相关 举报
基于BP神经网络的故障诊断方法(共15页).doc_第1页
第1页 / 共15页
基于BP神经网络的故障诊断方法(共15页).doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《基于BP神经网络的故障诊断方法(共15页).doc》由会员分享,可在线阅读,更多相关《基于BP神经网络的故障诊断方法(共15页).doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上智能控制基础研究生课程设计报告题 目 基于BP神经网络的故障诊断方法 学 院 机械与汽车工程学院 专业班级 车辆工程 学 号 0 学生姓名 李跃轩 指导教师 武晓莉 完成日期 2016年12月10日 专心-专注-专业目录1 设计概述1.1研究对象介绍信息融合是多源信息综合处理的一项新技术,是将来自某一目标(或状态)的多源信息加以智能化合成,产生比单一信息源更精确、更完全的估计和判决。信息融合所处理的多传感器信息具有更为复杂的形式,可以在不同的信息层次上出现。多传感器信息融合的优点突出地表现在信息的冗余性、容错性、互补性、实时性和低成本性。神经网络是由大量互联的处理单元

2、连接而成,它是基于现代神经生物学以及认知科学在信息处理领域应用的研究成果。它具有大规模并行模拟处理、连续时间动力学和网络全局作用等特点,有很强的自适应学习和非线性拟合能力,从而可以替代复杂耗时的传统算法,使信号处理过程更接近人类思维活动。柴油机故障具有相似性,故障与征兆的关系不明确,具有较强的模糊性,故障特征相互交织,柴油机故障诊断是一个复杂的问题。综合柴油机故障的特点以及神经网络的优势,采用基于BP神经网络的多传感器信息融合技术对柴油机机械故障进行诊断。1.2设计内容及目标设计内容:针对传统故障诊断方法存在的诊断准确性不高的问题,提出了BP神经网络信息融合的方法,实现对柴油机的机械故障诊断。

3、由多个传感器采集信号,分别经过快速傅里叶变换后获得故障频域特征值,再经BP神经网络对柴油机进行故障局部诊断,能够对相应传感器的不同故障类型做出一个准确地分类,最终完成对汽轮机机械故障的准确诊断。实验结果表明,该方法克服了单个传感器的局限性和不确定性,是一种有效的故障诊断方法。采用方法:通过BP神经网络进行局部诊断,最终判定故障及故障类型。基于BP神经网络多传感器信息融合,故障诊断方法是特征层状态属性融合,并利用MATLAB仿真。2 设计原理、方法及步骤基于神经网络多传感器信息融合故障诊断方法是特征层状态属性融合,也就是特征层联合识别方法,多传感器检测系统为识别提供了比单传感器更多的有关目标(状

4、态)的特征信息,增大了特征空间维数。本文运用神经网络多传感器信息融合方法对机械设备运行状态进行诊断识别,是基于这样一种思想:设备运行状态与其各种征兆参数(温度、压力、电压、电流、振动信号等)之间存在着因果关系,而这种关系之复杂是难用公式表达的,由于神经网络所具有的信息分布式存储方式、大规模自适应并行处理、高度的容错能力等是其可用于模式识别的基础,特别是其学习能力、容错能力和高度的非线性映射能力对机械设备运行状态的不确定性模式识别具有独到之处。2.1基于BP算法的神经网络模型本文采用的是3层BP神经网络模型,由输入层、隐层和输出层构成,图1所示为一个典型的三层BP神经网络模型图1 一个简单的BP

5、神经网络模型网络的前馈意义在于每一层节点的输入仅来自前面一层节点的输出。对于输入信号,先前向传播到隐层节点,经过激活函数后,再把隐层节点的输出信息传播到输出节点,最后得到输出结果。(1)输入层节点其输出等于输入,将变量值传送到第二层。 (2)隐层节点其输入,输出分别为: (2-1) (2-2)式中,为隐层节点与输入层节点之间的权值,为隐层节点的偏置,为sigmoid函数,其表达式为: (2-3)(3)输出层节点其输入,输出分别为: (2-4) (2-5)式中,为输入层节点与隐层节点之间的连接权值,为输出层节点的偏置。对于给定的训练样本,为样本数,网络输出与训练目标之间的均方误差可表示为: (2

6、-6) (2-7)其中为样本数,为第个样本的第l个输出单元的目标输出结果,为第个样本的第l个输出单元的网络运算结果。BP网络训练的过程包括网络内部的前向计算和误差的反向传播,其目的就是通过调整网络内部连接权值使网络输出误差最小。对于多层前馈网络中输入层与隐层之间、隐层与输出层之间连接权值利用BP算法调整。2.2 神经网络信息融合故障诊断步骤神经网络知识表示是一种知识的隐式表示,知识表现为网络的拓扑结构和连接权值,采用神经网络技术的专家系统,由于神经网络是一种信息存储和处理统一的网络系统,因此,在采用神经网络技术的专家系统中,知识的存储与问题求解过程中的推理过程均在系统的神经网络模块中进行,是推

7、理机和知识库的统一。首先从已有的设备特征信号提取特征数据,经过数据预处理(归一化处理)后作为神经网络输入,从已知的故障结果提取数据作为神经网络输出,构建BP神经网络,利用已有的特征数据和已知的故障结果数据形成的训练样本集对构建的BP神经网络进行训练和网络自学习,使BP神经网络的权值、阀值与已知的故障结果之间存在对应关系达到期望的故障结果输出。当BP神经网络训练完毕后,就可以利用训练成功的BP神经网络进行故障诊断。故障诊断的过程如下:1)将故障样本输入给输入层各节点,同时它也是该层神经元的输出。2)由式(2-2)求出隐层神经元的输出,并将其作为输出层的输入。3)从式(2-5)求得输出层神经元的输

8、出。4)由阈值函数判定输出层神经元的最终输出结果。 柴油机的故障诊断首先从待诊断的故障信号中提取数据并进行数据预处理,而后将待诊断故障数据输入训练成功的神经网络。利用神经网络信息融合进行故障诊断步骤如图2所示:图2信息融合进行故障诊断步骤3 结果及分析3.1数据仿真以某种柴油机中的4个实际故障样本为例,每个故障样本有5个故障特征值,因此选取网络的输入节点为5。将样本输入到神经网络模型中,每个输出节点代表一种故障类型,则这4种故障类型和一个正常状态共需5个输出节点与之相对应,因此网络的输出节点为5。表3-1训练数据。表3-1 训练数据样本序号故障特征值X温度压力电压电流振动信号1234560.0

9、0000.00740.00430.00560.00630.00490.00000.03350.02230.03150.02050.03000.00130.00150.00000.00120.00200.00180.00000.00320.00470.00270.00330.00260.00000.01060.00530.00860.00660.00787891011120.55200.54520.55020.54060.56040.55250.31070.27930.24580.28620.30280.31250.25810.26110.27170.26450.28350.27780.3094

10、0.29880.31150.30090.31250.30050.23160.20360.23470.21450.22250.21641314151617180.24620.25350.26650.25560.26280.25620.15080.1061 0.0894 0.14650.14320.09990.09470.09680.09370.09880.308990.09000.09640.09710.09440.10000.09650.09990.09990.08100.09080.10000.08990.09981920212223 240.66150.67380.66650.66890.

11、67000.66230.52510.44130.47490.46520.47480.48320.51950.52250.52550.52000.52350.52680.47100.47320.47690.47560.48250.46691.0000.96670.97580.98991.00000.9887251.00001.00000.98121.00000.820626272829300.97970.98460.98000.99651.00000.97770.97270.98250.99340.99121.00000.98470.98350.98620.99380.99600.98570.9

12、8870.98990.99610.82060.76000.80000.78000.8014在表3-1 训练数据中,样本序号16是正常状态;样本序号712是故障1状态;样本序号1318是故障2状态;样本序号1924是故障3状态;样本序号2530是故障4状态。表3-2是测试数据。表3-2测试数据样本序号故障特征值X温度压力电压电流振动信号1234560.54930.00310.99200.67040.25720.98000.26260.02350.98990.49720.10060.98250.26590.00050.99790.52350.09580.98350.30880.00300.9937

13、0.47410.09810.98870.22210.00450.79790.97910.08900.8000根据故障诊断的特点建立BP神经网络模型,网络的输入层节点、隐层节点和输出层节点个数分别为5、60和5,设置系统误差为1e-3,学习率为1,最大迭代次数为1000次,其中输入层到隐层之间的激活函数为双曲正切函数,隐层到输出层之间的激活函数设置为logsig的S型传递函数,在输出端设置的阈值为0.85,即网络输出值大于0.85的置1,小于等于0.85的置0来处理,利用MATLAB神经网络工具箱建立BP神经网络模型。3.2 结果分析在本文中将正常状态设置为1 0 0 0 0 ,故障1设置为0

14、1 0 0 0 ,故障2设置为0 0 1 0 0 ,故障3设置为0 0 0 1 0 ,故障4设置为0 0 0 0 1 ,输出阈值设置为0.85,即在输出值大于0.85即为1,否则为0。根据输出数据的分析判断属于哪种故障,表3-3为仿真输出。表3-3仿真输出样本序号网络输出y正常故障1故障2故障3故障41234560.0006 1.0139 -0.0014 0.0410 -0.0014 -0.00021.0008 0.0007 -0.0019 -0.0090 -0.0020 0.00040.0021 -0.0115 0.0010 -0.0159 1.0039 0.0025-0.0096 0.00

15、21 -0.0019 0.9811 -0.0027 0.00090.0011 -0.0024 0.9923 -0.0144 0.0015 0.9970将表3-2中“样本序号1”的5个故障特征值输给网络的输入层节点,则网络输出层节点与其对应的输出为表3-3中“样本序号1”所在行的5个输出值,其中只有y2=1.00080.85,其他5个输出均远小于0.85,所以,网络故障诊断的结果为故障1;表3-2中“样本序号2”的5个故障特征值输给网络的输入层节点,则网络输出层节点与其对应的输出为表3-3中“样本序号2”所在行的5个输出值,其中只有y1=1.01390.85,其他5个输出均远小于0.85,所以,

16、网络故障诊断的结果为正常状态;表3-2中“样本序号3”的5个故障特征值输给网络的输入层节点,则网络输出层节点与其对应的输出为表3-3中“样本序号3”所在行的5个输出值,其中只有y4=0.99230.85,其他5个输出均远小于0.85,所以,网络故障诊断的结果为故障4,其他类型的故障诊断以此类推。4 设计小结因为学习的专业是车辆工程,因此选择了对柴油机故障诊断这一研究对象。此篇设计经过查阅文献资料,对BP神经网络的故障诊断及Matlab仿真有了一定的认识。柴油机故障诊断是一个非常复杂的过程,其故障与征兆关系不是很明确,存在一种非线性映射关系。BP神经网络具有良好的学习能力,利用BP网络信息融合方

17、法,能够在足够多的样本数目前提下网络保证良好的容错性和鲁棒性是比较好的。所以在故障诊断的过程中,神经网络信息融合发挥其联想记忆和分布并行处理能力,不仅能够诊断出已有的故障还能对故障进行一个预测,从而满足柴油机故障断的要求。人工神经网络信息融合为智能诊断提供了良好的方法,为自适应学习和决策高度智能化控制系统提供了强有力的基础,并具有广泛的应用潜力和发展前景。参考文献1 朱大奇,于盛林基于D-S证据理论的数据融合算法及其在电路故障诊断中的应用J.电子学报,2002, 30(2):221-223.2 王万良.人工智能及其应用(第3版)(附光盘)(BZ)M. 高等教育出版社, 2016.3 朱大奇,于

18、盛林电子电路故障诊断的神经网络数据融合算法J.东南大学学报(自然科学版),2001,31(2):87-90.4 何友,王国宏多传感器信息融合及应用M.北京:电子工业出版社,2000.5 张绪锦,谭剑波,韩江洪基于BP神经网络的故障诊断方法J.系统工程理论与实践,2002,22(6):61-66.6 Y.G. Lei, Z.J. He, Y.Y. Zi, Q. Hu, Fault diagnosis of rotating machinery based on multiple ANFIS combination with GasJ.Mech. Syst. Signal Process.2007

19、(21)22802294.7 V.T. Tran, F. AlThobiani, A. Ball, An approach to fault diagnosis of reciprocating compressor valves using TeagerKaiser energy operator and deep belief networksJ.Expert Syst.Appl.2014(41)41134122.附录程序clcclear%输入训练数据(包括正常数据和故障数据)%训练样本中,每一列分别代表:“温度”,“压力”,“电压”,“电流”和“振动信号”;每一行分别代表一个样本p11=

20、0.0000 0.0000 0.0013 0.0000 0.0000;p12=0.0074 0.0335 0.0015 0.0032 0.0106;p13=0.0043 0.0223 0.0000 0.0047 0.0053;p14=0.0056 0.0315 0.0012 0.0027 0.0086;p15=0.0063 0.0205 0.0020 0.0033 0.0066;p16=0.0049 0.0300 0.0018 0.0026 0.0078; %正常数据p21=0.5520 0.3107 0.2581 0.3094 0.2316;p22=0.5452 0.2793 0.2611

21、0.2988 0.2036;p23=0.5502 0.2458 0.2717 0.3115 0.2347;p24=0.5406 0.2862 0.2645 0.3009 0.2145;p25=0.5604 0.3028 0.2835 0.3125 0.2225;p26=0.5525 0.3125 0.2778 0.3005 0.2164; % 故障1p31=0.2462 0.1508 0.0947 0.0964 0.0999;p32=0.2535 0.1061 0.0968 0.0971 0.0810;p33=0.2665 0.0894 0.0937 0.0994 0.0908;p34=0.2

22、556 0.1465 0.0988 0.1000 0.1000;p35=0.2628 0.1432 0.0899 0.0965 0.0899;p36=0.2562 0.0999 0.0900 0.0999 0.0998; % 故障2p41=0.6615 0.5251 0.5195 0.4710 1.0000;p42=0.6738 0.4413 0.5225 0.4732 0.9667;p43=0.6665 0.4749 0.5255 0.4769 0.9758;p44=0.6689 0.4652 0.5200 0.4756 0.9899;p45=0.6700 0.4748 0.5235 0.4

23、825 1.0000;p46=0.6623 0.4832 0.5268 0.4669 0.9887; %故障3p51=1.000 1.0000 0.9812 1.0000 0.8206;p52=0.9797 0.9777 1.0000 0.9960 0.7759;p53=0.9846 0.9727 0.9847 0.9857 0.7600;p54=0.9800 0.9825 0.9835 0.9887 0.8000;p55=0.9965 0.9934 0.9862 0.9899 0.7800;p56=1.0000 0.9912 0.9938 0.9961 0.8014; %故障4p=p11 p

24、12 p13 p14 p15 p16 p21 p22 p23 p24 p25 p26 p31 p32 p33 p34 p35 p36 p41 p42 p43 p44 p45 p46 p51 p52 p53 p54 p55 p56; %将所有的数据:包括正常数据和异常数据放在一个数据集中,将该数据集设置为输入神经网络的特征值%对被检测对象类别进行编码(设置目标值,即标签,用二进制类型表示)t11=1 0 0 0 0;t12=1 0 0 0 0;t13=1 0 0 0 0;t14=1 0 0 0 0;t15=1 0 0 0 0;t16=1 0 0 0 0; % normalt21=0 1 0 0

25、0;t22=0 1 0 0 0;t23=0 1 0 0 0;t24=0 1 0 0 0;t25=0 1 0 0 0;t26=0 1 0 0 0; % fault1t31=0 0 1 0 0;t32=0 0 1 0 0;t33=0 0 1 0 0;t34=0 0 1 0 0;t35=0 0 1 0 0;t36=0 0 1 0 0;% fault2t41=0 0 0 1 0;t42=0 0 0 1 0;t43=0 0 0 1 0;t44=0 0 0 1 0;t45=0 0 0 1 0;t46=0 0 0 1 0;% fault3t51=0 0 0 0 1;t52=0 0 0 0 1;t53=0 0

26、 0 0 1;t54=0 0 0 0 1;t55=0 0 0 0 1;t56=0 0 0 0 1;% fault4t=t11 t12 t13 t14 t15 t16 t21 t22 t23 t24 t25 t26 t31 t32 t33 t34 t35 t36 t41 t42 t43 t44 t45 t46 t51 t52 t53 t54 t55 t56;p, s1 = mapminmax(p);%输入样本归一化 归一化的范围是(-1,1),s1 记录归一化的参数net=newff(minmax(p),60,5,tansig,purelin,trainlm);%新建BP网络,p为样本输入:p=

27、martric(5*30) 分别表示5个传感器,30个样本% 隐层神经元个数为60,根据输出目标t确定输出层神经元个数为5,% 从输入层到隐层的激励函数为双曲正切,隐层到输出层的激励函数为线性函数,训练方法利用LM(Levenberg-Marquardt)算法进行网络参数sita=W,b的更新%设置网络训练参数 net.trainParam.show=10; %设置数据显示刷新频率,学习次刷新一次图象net.trainParam.epochs=1000; %最大 训练次数net.trainParam.goal=1e-5; % 设置训练误差net=init(net);%网络初始化net tr=t

28、rain(net,p,t);%训练网络%testingp1=0.5493 0.2626 0.2659 0.3088 0.2221;p2=0.0031 0.0235 0.0005 0.0030 0.0045;p3=0.9920 0.9899 0.9979 0.9937 0.7979;p4=0.6704 0.4972 0.5235 0.4741 0.9791;p5=0.2572 0.1006 0.0958 0.0981 0.0890; p6=0.9800 0.9825 0.9835 0.9887 0.8000;%测试数据pp= p1 p2 p3 p4 p5 p6;pp = mapminmax(ap

29、ply,pp,s1);%测试样本归一化 result_test=sim(net,pp)%测试样本仿真 result_test( result_test0.85)=1; result_test( result_test=0.85)=0; disp(网络输出:) result_test pp_lab=2 1 5 4 3 5;% 测试样本标签(正确类别) res=vec2ind(result_test)%向量值变索引值 strr = cell(1,6);for i=1:6 if res(i) = pp_lab(i) strri = 正确; else strri = 错误; endenddiag = 正常,故障1, 故障2, 故障3, 故障4 ;disp(诊断结果:)fprintf( 样本序号 实际类别 判断类别 正/误 故障类型 n);for i =1:6 fprintf( %d %d %d %s %sn,. i, pp_lab(i), res(i), strri, diagres(i); endfigureplot(pp_lab,-g*);hold onplot(res,-ro)legend(期望类型,预测数出类型) xlabel(样本) ylabel(类型) title(故障类型)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com