基于某BP神经网络的故障诊断方法Word文档下载推荐.docx
- 文档编号:17595221
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:14
- 大小:144.82KB
基于某BP神经网络的故障诊断方法Word文档下载推荐.docx
《基于某BP神经网络的故障诊断方法Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于某BP神经网络的故障诊断方法Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
网络的前馈意义在于每一层节点的输入仅来自前面一层节点的输出。
对于输入信号,先前向传播到隐层节点,经过激活函数后,再把隐层节点的输出信息传播到输出节点,最后得到输出结果。
(1)输入层节点
其输出
等于输入
,将变量值传送到第二层。
(2)隐层节点
其输入
,输出
分别为:
(2-1)
(2-2)
式中,
为隐层节点
与输入层节点
之间的权值,
的偏置,
为sigmoid函数,其表达式为:
(2-3)
(3)输出层节点
(2-4)
(2-5)
为输入层节点
与隐层节点
之间的连接权值,
为输出层节点
的偏置。
对于给定的训练样本
,
为样本数
,网络输出与训练目标之间的均方误差可表示为:
(2-6)
(2-7)
其中
为样本数,
为第
个样本的第l个输出单元的目标输出结果,
个样本的第l个输出单元的网络运算结果。
BP网络训练的过程包括网络内部的前向计算和误差的反向传播,其目的就是通过调整网络内部连接权值使网络输出误差最小。
对于多层前馈网络中输入层与隐层之间、隐层与输出层之间连接权值利用BP算法调整。
2.2神经网络信息融合故障诊断步骤
神经网络知识表示是一种知识的隐式表示,知识表现为网络的拓扑结构和连接权值,采用神经网络技术的专家系统,由于神经网络是一种信息存储和处理统一的网络系统,因此,在采用神经网络技术的专家系统中,知识的存储与问题求解过程中的推理过程均在系统的神经网络模块中进行,是推理机和知识库的统一。
首先从已有的设备特征信号提取特征数据,经过数据预处理(归一化处理)后作为神经网络输入,从已知的故障结果提取数据作为神经网络输出,构建BP神经网络,利用已有的特征数据和已知的故障结果数据形成的训练样本集对构建的BP神经网络进行训练和网络自学习,使BP神经网络的权值、阀值与已知的故障结果之间存在对应关系达到期望的故障结果输出。
当BP神经网络训练完毕后,就可以利用训练成功的BP神经网络进行故障诊断。
故障诊断的过程如下:
1)将故障样本输入给输入层各节点,同时它也是该层神经元的输出。
2)由式(2-2)求出隐层神经元的输出,并将其作为输出层的输入。
3)从式(2-5)求得输出层神经元的输出。
4)由阈值函数判定输出层神经元的最终输出结果。
柴油机的故障诊断首先从待诊断的故障信号中提取数据并进行数据预处理,而后将待诊断故障数据输入训练成功的神经网络。
利用神经网络信息融合进行故障诊断步骤如图2所示:
图2信息融合进行故障诊断步骤
3结果及分析
3.1数据仿真
以某种柴油机中的4个实际故障样本为例,每个故障样本有5个故障特征值,因此选取网络的输入节点为5。
将样本输入到神经网络模型中,每个输出节点代表一种故障类型,则这4种故障类型和一个正常状态共需5个输出节点与之相对应,因此网络的输出节点为5。
表3-1训练数据。
表3-1训练数据
样本序号
故障特征值X
温度
压力
电压
电流
振动信号
1
2
3
4
5
6
0.0000
0.0074
0.0043
0.0056
0.0063
0.0049
0.0335
0.0223
0.0315
0.0205
0.0300
0.0013
0.0015
0.0012
0.0020
0.0018
0.0032
0.0047
0.0027
0.0033
0.0026
0.0106
0.0053
0.0086
0.0066
0.0078
7
8
9
10
11
12
0.5520
0.5452
0.5502
0.5406
0.5604
0.5525
0.3107
0.2793
0.2458
0.2862
0.3028
0.3125
0.2581
0.2611
0.2717
0.2645
0.2835
0.2778
0.3094
0.2988
0.3115
0.3009
0.3005
0.2316
0.2036
0.2347
0.2145
0.2225
0.2164
13
14
15
16
17
18
0.2462
0.2535
0.2665
0.2556
0.2628
0.2562
0.1508
0.1061
0.0894
0.1465
0.1432
0.0999
0.0947
0.0968
0.0937
0.0988
0.30899
0.0900
0.0964
0.0971
0.0944
0.1000
0.0965
0.0810
0.0908
0.0899
0.0998
19
20
21
22
23
24
0.6615
0.6738
0.6665
0.6689
0.6700
0.6623
0.5251
0.4413
0.4749
0.4652
0.4748
0.4832
0.5195
0.5225
0.5255
0.5200
0.5235
0.5268
0.4710
0.4732
0.4769
0.4756
0.4825
0.4669
1.000
0.9667
0.9758
0.9899
1.0000
0.9887
25
0.9812
0.8206
26
27
28
29
30
0.9797
0.9846
0.9800
0.9965
0.9777
0.9727
0.9825
0.9934
0.9912
0.9847
0.9835
0.9862
0.9938
0.9960
0.9857
0.9961
0.7600
0.8000
0.7800
0.8014
在表3-1训练数据中,样本序号1~6是正常状态;
样本序号7~12是故障1状态;
样本序号13~18是故障2状态;
样本序号19~24是故障3状态;
样本序号25~30是故障4状态。
表3-2是测试数据。
表3-2测试数据
0.5493
0.0031
0.9920
0.6704
0.2572
0.2626
0.0235
0.4972
0.1006
0.2659
0.0005
0.9979
0.0958
0.3088
0.0030
0.9937
0.4741
0.0981
0.2221
0.0045
0.7979
0.9791
0.0890
根据故障诊断的特点建立BP神经网络模型,网络的输入层节点、隐层节点和输出层节点个数分别为5、60和5,设置系统误差为1e-3,学习率为1,最大迭代次数为1000次,其中输入层到隐层之间的激活函数为双曲正切函数,隐层到输出层之间的激活函数设置为logsig的S型传递函数,在输出端设置的阈值为0.85,即网络输出值大于0.85的置1,小于等于0.85的置0来处理,利用MATLAB神经网络工具箱建立BP神经网络模型。
3.2结果分析
在本文中将正常状态设置为[10000],故障1设置为[01000],故障2设置为[00100],故障3设置为[00010],故障4设置为[00001],输出阈值设置为0.85,即在输出值大于0.85即为1,否则为0。
根据输出数据的分析判断属于哪种故障,表3-3为仿真输出。
表3-3仿真输出
网络输出y
正常
故障1
故障2
故障3
故障4
0.00061.0139-0.00140.0410-0.0014-0.0002
1.00080.0007-0.0019-0.0090-0.00200.0004
0.0021-0.01150.0010-0.01591.00390.0025
-0.00960.0021-0.00190.9811-0.00270.0009
0.0011-0.00240.9923-0.01440.00150.9970
将表3-2中“样本序号1”的5个故障特征值输给网络的输入层节点,则网络输出层节点与其对应的输出为表3-3中“样本序号1”所在行的5个输出值,其中只有y2=1.0008>
0.85,其他5个输出均远小于0.85,所以,网络故障诊断的结果为故障1;
表3-2中“样本序号2”的5个故障特征值输给网络的输入层节点,则网络输出层节点与其对应的输出为表3-3中“样本序号2”所在行的5个输出值,其中只有y1=1.0139>
0.85,其他5个输出均远小于0.85,所以,网络故障诊断的结果为正常状态;
表3-2中“样本序号3”的5个故障特征值输给网络的输入层节点,则网络输出层节点与其对应的输出为表3-3中“样本序号3”所在行的5个输出值,其中只有y4=0.9923>
0.85,其他5个输出均远小于0.85,所以,网络故障诊断的结果为故障4,其他类型的故障诊断以此类推。
4设计小结
因为学习的专业是车辆工程,因此选择了对柴油机故障诊断这一研究对象。
此篇设计经过查阅文献资料,对BP神经网络的故障诊断及Matlab仿真有了一定的认识。
柴油机故障诊断是一个非常复杂的过程,其故障与征兆关系不是很明确,存在一种非线性映射关系。
BP神经网络具有良好的学习能力,利用BP网络信息融合方法,能够在足够多的样本数目前提下网络保证良好的容错性和鲁棒性是比较好的。
所以在故障诊断的过程中,神经网络信息融合发挥其联想记忆和分布并行处理能力,不仅能够诊断出已有的故障还能对故障进行一个预测,从而满足柴油机故障断的要求。
人工神经网络信息融合为智能诊断提供了良好的方法,为自适应学习和决策高度智能化控制系统提供了强有力的基础,并具有广泛的应用潜力和发展前景。
参考文献
[1]朱大奇,于盛林.基于D-S证据理论的数据融合算法及其在电路故障诊断中的应用[J].电子学报,2002,30
(2):
221-223.
[2]王万良.人工智能及其应用(第3版)(附光盘)(BZ)[M].高等教育出版社,2016.
[3]朱大奇,于盛林.电子电路故障诊断的神经网络数据融合算法[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,FaultdiagnosisofrotatingmachinerybasedonmultipleANFIScombinationwithGas[J].Mech.Syst.SignalProcess.2007(21)2280–2294.
[7]V.T.Tran,F.AlThobiani,A.Ball,AnapproachtofaultdiagnosisofreciprocatingcompressorvalvesusingTeager–Kaiserenergyoperatoranddeepbeliefnetworks[J].ExpertSyst.Appl.2014(41)4113–4122.
附录程序
clc
clear
%%输入训练数据(包括正常数据和故障数据)
%%训练样本中,每一列分别代表:
“温度”,“压力”,“电压”,“电流”和“振动信号”;
每一行分别代表一个样本
p11=[0.00000.00000.00130.00000.0000]'
;
p12=[0.00740.03350.00150.00320.0106]'
p13=[0.00430.02230.00000.00470.0053]'
p14=[0.00560.03150.00120.00270.0086]'
p15=[0.00630.02050.00200.00330.0066]'
p16=[0.00490.03000.00180.00260.0078]'
%正常数据
p21=[0.55200.31070.25810.30940.2316]'
p22=[0.54520.27930.26110.29880.2036]'
p23=[0.55020.24580.27170.31150.2347]'
p24=[0.54060.28620.26450.30090.2145]'
p25=[0.56040.30280.28350.31250.2225]'
p26=[0.55250.31250.27780.30050.2164]'
%故障1
p31=[0.24620.15080.09470.09640.0999]'
p32=[0.25350.10610.09680.09710.0810]'
p33=[0.26650.08940.09370.09940.0908]'
p34=[0.25560.14650.09880.10000.1000]'
p35=[0.26280.14320.08990.09650.0899]'
p36=[0.25620.09990.09000.09990.0998]'
%故障2
p41=[0.66150.52510.51950.47101.0000]'
p42=[0.67380.44130.52250.47320.9667]'
p43=[0.66650.47490.52550.47690.9758]'
p44=[0.66890.46520.52000.47560.9899]'
p45=[0.67000.47480.52350.48251.0000]'
p46=[0.66230.48320.52680.46690.9887]'
%故障3
p51=[1.0001.00000.98121.00000.8206]'
p52=[0.97970.97771.00000.99600.7759]'
p53=[0.98460.97270.98470.98570.7600]'
p54=[0.98000.98250.98350.98870.8000]'
p55=[0.99650.99340.98620.98990.7800]'
p56=[1.00000.99120.99380.99610.8014]'
%故障4
p=[p11p12p13p14p15p16p21p22p23p24p25p26p31p32p33p34p35p36p41p42p43p44p45p46p51p52p53p54p55p56];
%将所有的数据:
包括正常数据和异常数据放在一个数据集中,将该数据集设置为输入神经网络的特征值
%%对被检测对象类别进行编码(设置目标值,即标签,用二进制类型表示)
t11=[10000]'
t12=[10000]'
t13=[10000]'
t14=[10000]'
t15=[10000]'
t16=[10000]'
%normal
t21=[01000]'
t22=[01000]'
t23=[01000]'
t24=[01000]'
t25=[01000]'
t26=[01000]'
%fault1
t31=[00100]'
t32=[00100]'
t33=[00100]'
t34=[00100]'
t35=[00100]'
t36=[00100]'
%fault2
t41=[00010]'
t42=[00010]'
t43=[00010]'
t44=[00010]'
t45=[00010]'
t46=[00010]'
%fault3
t51=[00001]'
t52=[00001]'
t53=[00001]'
t54=[00001]'
t55=[00001]'
t56=[00001]'
%fault4
t=[t11t12t13t14t15t16t21t22t23t24t25t26t31t32t33t34t35t36t41t42t43t44t45t46t51t52t53t54t55t56];
[p,s1]=mapminmax(p);
%输入样本归一化归一化的范围是(-1,1),s1记录归一化的参数
net=newff(minmax(p),[60,5],{'
tansig'
'
purelin'
},'
trainlm'
);
%新建BP网络,p为样本输入:
p=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);
%网络初始化
[nettr]=train(net,p,t);
%训练网络
%%testing
p1=[0.54930.26260.26590.30880.2221]'
p2=[0.00310.02350.00050.00300.0045]'
p3=[0.99200.98990.99790.99370.7979]'
p4=[0.67040.49720.52350.47410.9791]'
p5=[0.25720.10060.09580.09810.0890]'
p6=[0.98000.98250.98350.98870.8000]'
%测试数据
pp=[p1p2p3p4p5p6];
pp=mapminmax('
apply'
pp,s1);
%测试样本归一化
result_test=sim(net,pp)%测试样本仿真
result_test(result_test>
0.85)=1;
result_test(result_test<
=0.85)=0;
disp('
网络输出:
'
)
result_test
pp_lab=[215435];
%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BP 神经网络 故障诊断 方法
![提示](https://static.bdocx.com/images/bang_tan.gif)