基于BP神经网络的齿轮箱故障诊断.docx
《基于BP神经网络的齿轮箱故障诊断.docx》由会员分享,可在线阅读,更多相关《基于BP神经网络的齿轮箱故障诊断.docx(17页珍藏版)》请在冰豆网上搜索。
基于BP神经网络的齿轮箱故障诊断
《人工智能导论》课程研究报告
题目:
基于BP神经网络的齿轮箱故障诊断
班级:
自动化1302
姓名:
孙思远
学号:
1310410221
2016年01月05日
目录
1绪论1
1.1BP神经网络简介1
1.2研究课题2
2设计过程4
2.1故障模型及故障诊断问题的表示形式4
2.2常用算法5
2.3流程图6
2.4matlab程序代码分析7
3运行结果分析8
3.1参数规则及总体进度8
3.2训练过程曲线图9
3.3分析结果10
参考文献10
附录11
基于BP神经网络的齿轮箱故障诊断
1绪论
思维学普遍认为,人类大脑的思维分为抽象(逻辑)思维、形象(直观)思维和灵感(顿悟)思维三种基本方式。
逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。
然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。
这种思维方式的根本之点在于以下两点:
1.信息是通过神经元上的兴奋模式分布储在网络上;2.信息处理是通过神经元之间同时相互作用的动态过程来完成的。
人工神经网络就是模拟人思维的第二种方式。
这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。
虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。
1.1BP神经网络简介
人工神经网络首先要以一定的学习准则进行学习,然后才能工作。
现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。
所以网络学习的准则应该是:
如果网络作出错误的的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。
首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。
在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。
这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。
如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。
如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。
这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。
当网络再次遇到其中任何一个模式时,能够作出迅速、准确的判断和识别。
一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。
在人工神经网络发展历史中,很长一段时间里没有找到隐层的连接权值调整问题的有效算法。
直到误差反向传播算法(BP算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。
神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。
输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。
当实际输出与期望输出不符时,进入误差的反向传播阶段。
误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。
周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。
BP神经网络模型BP网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。
1.2研究课题
以某型拖拉机的齿轮箱为工程背景,介绍使用基于遗传算法的BP神经网络进行齿轮箱故障的诊断。
统计表明,齿轮箱故障中60%左右都是由齿轮故障导致的,而对于齿轮的故障,选取频域中几个特征向量。
频域中齿轮故障比较明显的是在啮合频率处的边缘带上。
所以在频域特征信号的提取中选取了在2,4,6档时,在1,2,3轴的边聘带族
处的幅值
,
和
,其中
为齿轮的啮合频率,
为轴的转频,n=1,2,3;i=2,4,6表示挡位,j=1,2,3表示轴的序号。
由于在2轴和3轴上有两对齿轮啮合,所以1,2分别表示两个啮合频率。
这样网络的输入就是一个15维的向量。
因为这些数据具有不同的量纲和量级,所以在输入神经网络之前首先进行归一化处理,表3-1和3-2列出了归一化后的齿轮箱状态样本数据。
从表中可以看出齿轮有3种故障模式,故输出变量有三维:
无故障:
(1,0,0);齿根裂纹(0,1,0);断齿(0,0,1)
为了对训练好的网络进行测试,另外再给出三组新的数据作为网络的测试数据,如表3-2所示。
要求:
(1)写出解题思路及步骤,包括:
算法流程,神经网络的算法实现步骤(网络创建、网络训练和测试),遗传算法的实现(种群初始化、适应度函数、选择算子、交叉算子和变异算子等)。
(2)写出所用的matlab程序代码,并按照上述步骤分段说明,并列举出每一段中用到的主要函数。
提示,本题遗传算法部分使用sheffield遗传算法工具箱,BP神经网络部分采用matlab自带的神经网络工具箱。
(3)写出程序运行的中间结果及最后结果,包括遗传算法和神经网络的每段,如神经网络的输入/输出设置,初始化,网络创建,训练和测试结果等。
作出结果分析并绘制相应的仿真曲线。
2设计过程
2.1故障模型及故障诊断问题的表示形式
2.1.1故障模型的一般性描述
系统的故障表现为系统的失效,即妨碍系统完成或保持其应有的性能和功能系统运行时,故障以差错和失效的形式表现出来,因此,理想的故障诊断方法是在系统尚未运行时,就将故障诊断出来但事实上,相当数量的故障直到系统运行到出现差错、失效以至于崩溃时,人们才会意识到它们的存在因而,故障诊断更多的是根据系统早期的状态信息和已出现的故障现象来进行的。
故障诊断的首要问题就是故障的表示,我们将某一故障的属性组成一个固定的属性集Ζ令FS是系统S的故障集,则具体描述为:
FS={f0,f1,f2,…,fn}
式中f0表示系统正常,即无故障,在此将无故障作为一种特殊的故障类型;f1,f2,…,fn表示各种故障。
ΖASi={AiAi属性作为S的动态属性,表示由故障fi导致的差错}
IN-AS={AkAk属性作为S的输入属性,决定S的动态特性}
AS′=∪ni=0ASi
AS=AS′∪IN-AS由此得到系统S的故障集FS对应的属性集AS,不妨设AS={A1,A2,…,Am}Ζt时刻诊断出系统S的故障fi即可表示为,ϖ5使得下式成立:
(A1(t),A2(t),…,Am(t))=fi,i=0,1,…,n
式中Aj(t)表示属性Aj在时刻t的取值,j=1,…,m
也就代表具体的故障诊断方法Ζ若把
看作是系统专家进行的诊断,则其自变量的取值应是属性集AS在0-t时间段上的所有取值,而诊断结果则可能不仅仅是某个fi,而且是FS中若干个故障的逻辑运算Ζ因此,本质上,故障诊断就是寻找故障的表现形式(差错)到故障本身的映射,把故障诊断问题形式化表示的过程。
2.1.2故障诊断问题的形式化表示
故障诊断过程其实就是根据诊断对象出现的异常征兆来查明被诊对象发生了什么故障和引起这些故障的可能原因的过程,对于一个诊断问题我们可以将其形式化为以下的四元式:
DP=(X,Y,E,X+)
其中X=(x1,x2,…,xn)T,为一个非空的征兆集合;Y=(y1,y2,…,yn)T,为一个非空的故障集合;X+ΑX为X的一个子集,表示目前已经观测到存在的征兆集合;EΑX×Y为定义在X×Y上的关系子集,即有关故障与征兆间因果关系方面的知识Ζ在传统的专家诊断系统中E可以是故障引起的征兆的概率,也可以是定义在X×Y上的因果二元有序模糊关系的隶属函数Ζ在神经网络诊断系统中,E最终表现为神经网络输入层与输出层之间的连接权值和阈值Ζ
2.2常用算法
1.最小均方误差
算法标准误差定义为各测量值误差的平方和的平均值的平方根。
设n个测量值的误差为ε1、ε2……εn,则这组测量值的标准误差σ等于:
数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。
MSE是衡量"平均误差"的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
2.Hebb学习算法
赫布认为神经网络的学习过程最终是发生在神经元之间的突触部位,突触的联结强度随着突触前后神经元的活动而变化,变化的量与两个神经元的活性之和成正比。
Hebb学习规则是一个无监督学习规则,这种学习的结果是使网络能够提取训练集的统计特性,从而把输入信息按照它们的相似性程度划分为若干类。
这一点与人类观察和认识世界的过程非常吻合,人类观察和认识世界在相当程度上就是在根据事物的统计特征进行分类。
3.BP算法
BP神经网络算法是在BP神经网络现有算法的基础上提出的,是通过任意选定一组权值,将给定的目标输出直接作为线性方程的代数和来建立线性方程组的算法。
如图所示。
BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输入层传人,经各隐层逐层处理后,传向输出层。
若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。
误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。
这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。
权值不断调整的过程,也就是网络的学习训练过程。
此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。
2.3流程图
N
Y
Y
N
2.4matlab程序代码分析
clear;
clc;
P=[0.22860.12920.07200.15920.13350.07330.11590.09400.05220.13450.00900.1260...
0.36190.06900.1828;
0.20900.09470.13930.13870.25580.09000.07710.08820.03930.14300.01260.16700.2450...
0.05080.1328;
0.04420.08800.11470.05630.33470.11500.14530.04290.18180.03780.00920.22510.1516...
0.08580.0670;
0.26030.17150.07020.27110.14910.13300.09680.19110.25450.08710.00600.17930.1002...
0.07890.0909;
0.36900.22220.05620.51570.18720.16140.14250.15060.13100.05000.00780.03480.0451...
0.07070.0880;
0.03590.11490.12300.54600.19770.12480.06240.08320.16400.10020.00590.15030.1837...
0.12950.0700;
0.17590.23470.18290.18110.29220.06550.07740.22730.20560.09250.00780.18520.3501...
0.16800.2668;
0.07240.19090.13400.24090.28420.04500.08240.10640.19090.15860.01160.16980.3644...
0.27180.2494;
0.26340.22580.11650.11540.10740.06570.06100.26230.25880.11550.00500.09780.1511...
0.22730.3220]';
%清空工作空间(初始化),输入齿轮状态样本数据为P15x9double
T=[100;100;100;
100;100;100;
100;100;100;]
%网络输出三种模式,即无故障、齿轮断纹、断齿。
3x9double
threshold=[01;01;01;01;01;01;01;01;01;01;01;01;01;01;01];
%当前输入层权值和阈值,最大值与最小值15x2double
net=newff(threshold,[31,3],{'tansig','logsig'},'trainlm');
%创建神经网络,隐含层神经传递元函数采用S型正切函数tansig,输出
%层神经传递元函数采用S型对数函数logsig。
1x1network
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
net.trainParam.lr=0.1;
[net,tr]=train(net,P,T);
%训练次数为1000,训练目标为0.01,学习速率为0.1
P_test=[0.21010.09500.12980.13590.26010.10010.07530.08900.03890.14510.01280.1590...
0.24520.05120.1319;
0.25930.18000.07110.28010.15010.12980.10010.18910.25310.08750.00580.1803...
0.09920.08020.1002;
0.25990.22350.12010.11710.11020.06830.06210.25970.26020.11670.00480.1002...
0.15210.22810.3205]';
%利用训练好的神经网络进行测试,特征样本为P_test,分别对应无故障、齿轮
%断纹、断齿。
15x3double
T_result=sim(net,P_test)
%利用BP神经网络工具箱进行仿真并输出测试结果T_result3x3double
3运行结果分析
3.1参数规则及总体进度
迭代次数:
7
用时:
2s
性能:
0.00186
梯度:
0.0181
权值误差调范围:
1.00
校验参数:
0
训练规则:
伯格-马夸特反向传播算法
误差形式:
均方误差
单位制:
默认
3.2训练过程曲线图
测试结果
在第七次迭代训练后达到最佳指标,用时0.0018637秒
训练过程
在达到最佳指标过程中,梯度最终达到0.018053,最大误差在初期,为
,报错0次
3.3分析结果
输出结果T_result
数据分析结果
将T_result绘制在坐标系中,并将理论值与训练值拟合后得出本次测试数据结论:
Output=0.95*target+0.024
参考文献
[1]林香,姜青山,熊腾科,一种基于遗传BP神经网路的预测模型[D],厦门:
厦门大学软件学院,2006.
[2]张德丰,matlab神经网络应用设计[M]。
北京:
机械工业出版社,2009.
[3]吴仕勇,基于数值计算方法的BP神经网路及遗传算法的优化研究[D],昆明:
云南师范大学,2006.
[4]李明,基于遗传算法改进的BP神经网络的城市人居环境质量评价研究[D],沈阳:
辽宁师范大学,2007.
[5]王学会,遗传算法和BP网络在发酵模型中的应用[D],天津:
天津大学,2007。
[6]李华,基于一种改进遗传算法的神经网络[D]。
天津:
天津大学,2007.
[7]侯林波,基于遗传神经网络算法的基坑工程优化反馈分析[D],大连:
大连海事大学,2009.
[8]吴建生,基于遗传算法的BP神经网络气象预测建模[D],桂林:
广西师范大学,2004.
[9]黄继红,基于改进PSO的BP网路的研究及应用[D],长沙:
长沙理工大学,2008.
[10]段侯峰,基于遗传算法优化BP神经网络的变压器故障诊断[D],北京:
北京交通大学,2008.
附录
程序代码
clear;
clc;
P=[0.22860.12920.07200.15920.13350.07330.11590.09400.05220.13450.00900.1260...
0.36190.06900.1828;
0.20900.09470.13930.13870.25580.09000.07710.08820.03930.14300.01260.16700.2450...
0.05080.1328;
0.04420.08800.11470.05630.33470.11500.14530.04290.18180.03780.00920.22510.1516...
0.08580.0670;
0.26030.17150.07020.27110.14910.13300.09680.19110.25450.08710.00600.17930.1002...
0.07890.0909;
0.36900.22220.05620.51570.18720.16140.14250.15060.13100.05000.00780.03480.0451...
0.07070.0880;
0.03590.11490.12300.54600.19770.12480.06240.08320.16400.10020.00590.15030.1837...
0.12950.0700;
0.17590.23470.18290.18110.29220.06550.07740.22730.20560.09250.00780.18520.3501...
0.16800.2668;
0.07240.19090.13400.24090.28420.04500.08240.10640.19090.15860.01160.16980.3644...
0.27180.2494;
0.26340.22580.11650.11540.10740.06570.06100.26230.25880.11550.00500.09780.1511...
0.22730.3220]';
T=[100;100;100;
010;010;010;
001;001;001]';
threshold=[01;01;01;01;01;01;01;01;01;01;01;01;01;01;01];
net=newff(threshold,[31,3],{'tansig','logsig'},'trainlm');
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
net.trainParam.lr=0.1;
[net,tr]=train(net,P,T);
P_test=[0.21010.09500.12980.13590.26010.10010.07530.08900.03890.14510.01280.1590...
0.24520.05120.1319;
0.25930.18000.07110.28010.15010.12980.10010.18910.25310.08750.00580.1803...
0.09920.08020.1002;
0.25990.22350.12010.11710.11020.06830.06210.25970.26020.11670.00480.1002...
0.15210.22810.3205]';
T_result=sim(net,P_test)
工作空间一览