神经网络模式识别资料.docx

上传人:b****5 文档编号:11844390 上传时间:2023-04-05 格式:DOCX 页数:22 大小:208.47KB
下载 相关 举报
神经网络模式识别资料.docx_第1页
第1页 / 共22页
神经网络模式识别资料.docx_第2页
第2页 / 共22页
神经网络模式识别资料.docx_第3页
第3页 / 共22页
神经网络模式识别资料.docx_第4页
第4页 / 共22页
神经网络模式识别资料.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

神经网络模式识别资料.docx

《神经网络模式识别资料.docx》由会员分享,可在线阅读,更多相关《神经网络模式识别资料.docx(22页珍藏版)》请在冰豆网上搜索。

神经网络模式识别资料.docx

神经网络模式识别资料

基于PCA改进Elman神经网络方法的齿轮箱故障诊断技术研究

 

1绪论

1.1项目研究的背景

随着现代科学技术的迅速发展,系统设备日益朝着高度自动化的方向发展,但是,同时也造成了系统设备的日益复杂,零件数目也显著的增加,零、部件之间的联系更是愈加紧密.故而,只要是某部分部件发生了故障,就会引起整台设备的失效,更甚者造成巨大的经济损失或者人员伤亡事故,现代化系统设备所花的维修费用与停机损失,所占成本比例越加增大,设备故障或事故引起的损失更是不断的增加,设备维修的重要性成为了一个日益突出的同题.人们对系统设备的可用性、可靠性、可维修性、安全性与经济性提出了愈来愈高的要求;而且现代工业生产中,系统设备比以往更注重效率与能耗,环保的要求也是越来越高.因此,如何在设备运行时或者为拆卸的情况下,依靠或借助动态测试技术和传感器技术及计算机信号处理技术等,及时的掌握设备的运行状态,分析出设备中出现异常的部位与异常的原因,并且能够预测出设备未来的状态发展趋势.这些成为了世界各国的学者亟待解决之问题.

1.2项目研究的目的及意义

齿轮箱作为机械设备中一种必不可少的连接和传递动力的通用零部件,所以它的运行状态好坏,会直接影响整套设备的工作运行状态.随着设备的不断大型化、复杂化、自动化和连续化,齿轮箱的故障和失效给整个生产和社会造成的损失将越来越大,行驶中的汽车的齿轮箱发生故障,将导致车毁人亡;一些连续工作的设备,一旦齿轮箱发生故障,所造成的损失难以估计,如我国水泥行业,因齿轮箱故障每年减产200万吨以上.对齿轮箱进行状态监测与故障诊断,可实现齿轮箱由事后诊断、定期维修到实情维修的根本转变,这对减少一些不必要的经济损失,进而创造更大的经济利益,具有重大的意义.

齿轮箱故障诊断的作用是[1]:

(1)判断运行设备当前处于正常状态还是异常状态;

(2)若有故障,则判断故障的性质、类型和原因,例如是齿轮故障还是轴承故障或箱体故障,若是齿轮故障,则分辨断齿、磨损还是润滑类故障,断齿故障又是哪种类型的断齿等等;

(3)根据故障信息或者信息处理的结果,预测故障可能的发展,也就是对故障的严重程度,和发展趋势做出诊断;

(4)提出控制故障发生的措施、防止故障甚至消除故障的方法;

(5)提出设备维护的合理方法和相应的防止事故发生的措施;

(6)对设备设计、制造、装配等,需提出改进的意见.为设备现代化的管理提供科学的依据和有效的建议.

1.3国内外研究现状及发展趋势

故障诊断技术随着过程工业的发展,已经逐渐成为一个保证工业生产安全稳定时不可或缺的技术支持.基于神经元网络的智能控制系统也称作基于连接机制的智能控制系统,随着人工神经元网络研究的进展,神经元网络越来越多的应用于控制领域的各个方面.

2ELMAN神经网络简介

2.1Elman神经网络简介

Elman神经网络是一种动态的神经网络,它除了输入层、隐层和输出层以外,还有一个特殊的联系单元[2,3].该单元是用来记忆隐层单元前面时刻的输出值,可认为是一个时延算子,该网络的动态记忆的功能也是因它而来.Elman神经网络结构如图2-1所示.

图2-1Elman网络结果示意图

Elman神经网络的数学模型:

(2-1)

其中

为联系单元与隐层单元的连接权矩阵,

为输入单元与隐层单元的连接权矩阵,

为隐层单元与输出单元的连接权矩阵,

分别表示联系单元和隐层单元的输出,

表示输出单元的输出,

为自连接反馈增益因子.

多取为sigmoid函数,sigmoid函数如公式(2-2)所示.

(2-2)

2.2Elman神经网络简介学习方法

设第k步系统的实际输出表示为

,则Elman网络的目标函数也就是误差函数可表示为:

(2-3)

根据梯度下降法,分别计算

对权值的偏导数并使其为0,就可以得到Elman网络的学习算法:

(2-4)

(2-5)

(2-6)

(2-7)

,分别是

的学习步长.

3基于ELMAN网络的齿轮箱故障诊断

3.1基于ELMAN网络的齿轮箱故障诊断及其MATLAB实现

3.1.1工程描述

变速箱是减速的增仍部件,它收到扭转和拉压两种载荷综合作用,其受力过程非常的复杂.据统计,除发动机故障以外,以齿轮为代表的变速箱故障占据了的其他所有故障的50%-70%.在非拆卸的情况下,传统的诊断手段往往依赖于专家的经验判断,但由于齿轮箱的结构非常复杂,它的故障模式和特征量之间的关系不仅复杂而且还是非线性的,再加上一些在不同的工况下而产生的随机因素,所以专家的经验无法解决所有的诊断问题.而神经网络的应用可以有效地规避这个问题.神经网络的自适应、自学习和对非线性系统超强的分析能力决定了它可以在齿轮箱的故障诊断中得到非常好的使用.

3.1.2输入向量和目标向量设计

确定神经网络输入,实际上就是提取特征量,对于特征量的选用,主要考虑它是否与故障之间有比较确定的因果关系,无因果关系则不能建立其联系.据统计表明,齿轮箱故障中有60%左右的故障都是有齿轮故障导致的,所以在这里只研究齿轮故障的诊断.而对于齿轮的故障,这里选取了领域中的几个特征量.本文选取了在2、4、6档位时的信号作为特征量,在1、2、3轴的边频带族

处的幅值

,其中

是齿轮的啮合频率,

是轴的转频.i=2、4、6表示档位,j表示轴的序号,由于在2轴和3轴上有两对齿轮啮合,所以用1、2表示两个齿轮啮合频率.此上得到的数据有不同的单位和量级,所以在输入到神经网络之前要进行归一化处理.下面给出9组归一化处理后的输入向量.

表3-1齿轮样本数据表

数据序号

特征样本

齿轮状态

1

0.22860.12920.07200.15920.13350.07330.11590.09400.05220.13450.00900.12600.36190.06900.1828

无故障

2 

0.20900.09470.13930.13870.25580.09000.07710.08820.03930.14300.01260.16700.24500.05080.1328

无故障

3

0.04420.08800.11470.05630.33470.11500.14530.04290.18180.03780.00920.22510.15160.08580.0670

无故障

4

0.26030.17150.07020.27110.14910.13300.09680.19110.25450.08710.00600.17930.10020.07890.0909

齿根裂纹

5

0.36900.22220.05620.51570.18720.16140.14250.15060.13100.05000.00780.03480.04510.07070.0880

齿根裂纹

6

0.03590.11490.12300.54600.19770.12480.06240.08320.16400.10020.00590.15030.18370.12950.0700

齿根裂纹

7

0.17590.23470.18290.18110.29220.06550.07740.22730.20560.09250.00780.18520.35010.16800.2668

断齿

8

0.07240.19090.13400.24090.28420.04500.08240.10640.19090.15860.01160.16980.36440.27180.2494

断齿

9

0.26340.22580.11650.11540.10740.06570.06100.26230.25880.11550.00500.09780.15110.22730.3220

断齿

对于神经网络的输出模式,由于齿轮包含三个故障模式(无故障、齿根裂纹和断齿),因此可以采用以下模式输出.

无故障:

(1,0,0);

齿根裂纹:

(0,1,0);

断齿:

(0,0,1).

3.1.3ELMAN神经网络设计

下面将采用matlab来仿真创建神经网络,并对神经网络进行训练,使用训练后的神经网络预测和诊断齿轮箱故障.

(1)神经网络的创建

网络的层数可以由映射存在定理确定.定理内容如下:

给定任一连续函数

,f可以精确地用一个三层感知器网络实现,这里U是闭单位区间[0,1].即任意连续函数均可由一个三层感知器网络逼近.

由于单隐层的Elman网络的功能已经非常强大[10],完全可以满足本次仿真需求,因此,这里采用单隐层的网络就足够了,即三层神经网络.

a.输入层.输入层神经元的个数对应测试点的个数,由于输入向量的维数是15,因此输入层神经元的个数应该是15.

b.输出层.输出层中的神经元的个数对应神经网络要识别的故障,这里输出向量的维数是3,因此输出神经元个数就是3.

c.隐含层.中间层中的神经元的个数根据经验公式:

为1~10),这里考虑网络的性能和速度,将隐含层的神经元的个数设定为14.

输入向量为:

p=[0.22860.12920.07200.15920.13350.07330.11590.09400.05220.13450.00900.12600.36190.06900.1828;

0.20900.09470.13930.13870.25580.09000.07710.08820.03930.14300.01260.16700.24500.05080.1328;

0.04420.08800.11470.05630.33470.11500.14530.04290.18180.03780.00920.22510.15160.08580.0670;

0.26030.17150.07020.27110.14910.13300.09680.19110.25450.08710.00600.17930.10020.07890.0909;

0.36900.22220.05620.51570.18720.16140.14250.15060.13100.05000.00780.03480.04510.07070.0880;

0.03590.11490.12300.54600.19770.12480.06240.08320.16400.10020.00590.15030.18370.12950.0700;

0.17590.23470.18290.18110.29220.06550.07740.22730.20560.09250.00780.18520.35010.16800.2668;

0.07240.19090.13400.24090.28420.04500.08240.10640.19090.15860.01160.16980.36440.27180.2494;

0.26340.22580.11650.11540.10740.06570.06100.26230.25880.11550.00500.09780.15110.22730.3220]';

目标向量为T:

T=[100;100;100;

010;010;010;

001;001;001]';

网络的输入向量范围为[0,1],隐含层的神经元的传递函数使用S型正切函数tansig,输出层神经元传递函数使用S型对数函数logsig.这是由于其输出模式为0-1,正好满足了网络的输出要求.

网络创建的代码如下:

threshold=[01;01;01;01];

net=newelm(minmax(p),[14,3],{'tansig','logsig'});

(2)网络训练及测试:

网络训练过程可以说是一个不断的修正权值和修正阈值的过程,通过调整,使网络输出偏差达到最小,满足实际应用的要求.

以下为网络训练的Matlab程序代码:

net.trainParam.goal=0.00001;

net.trainParam.epochs=500;

net=train(net,p,T);

其中,变量threshold定义了输入向量的最大值和最小值.

网络参数如下表所示:

表3-2网络参数表

学习函数

训练函数

性能函数

learngdm

Trainlm

mse

训练参数:

表3-3训练参数表

训练目标

训练次数

0.00001

500 

网络的训练结果为:

图3-1训练曲线图

可见,经过258次训练后,网络误差达到要求.如图3-1所示,网络的训练误差曲线比较平滑.接下来需要对训练好的网络进行测试.抽取3组新的数据作为网络的测试输入数据,如下表3-4所示.

表3-4测试样本数据

数据列号

特征样本

齿轮状态

10

0.21010.09500.12980.13590.26010.10010.07530.08900.03890.14510.01280.15900.24520.05120.1319

无故障

11

0.25930.18000.07110.28010.15010.12980.10010.18910.25310.08750.00580.18030.09920.08020.1002

齿纹裂痕

12

0.25990.22350.12010.11710.11020.06830.06210.25970.26020.11670.00480.10020.15210.22810.3205

断齿

利用测试数据p_test对网络进行仿真:

p_test=[0.21010.09500.12980.13590.26010.10010.07530.08900.03890.14510.01280.15900.24520.05120.1319;

0.25930.18000.07110.28010.15010.12980.10010.18910.25310.08750.00580.18030.09920.08020.1002;

0.25990.22350.12010.11710.11020.06830.06210.25970.26020.11670.00480.10020.15210.22810.3205]';

Y=sim(net,p_test)

结果为:

Y=0.99960.00090.0000

0.00210.99390.0041

0.00180.00340.9972

按照欧式范数理论,这3次测试的误差分别是0.0004、0.0061、0.0028,可以看出,通过Elman网络识别的结果虽然有一定的误差,但是并不影响实际应用.另外,由于在网络中引入了反馈,所以网络的训练误差曲线比较平滑.因此,可以判定,经过训练后,网络是完全可以满足齿轮箱故障诊断的要求的.

3.2主元分析法

3.2.1主元分析法概述

实际课题中,为了全面分析问题,往往提出很多与此有关的因素,因为每个因素都在不同程度上反映这个课题的某些信息,这些因素也称为指标.而主元分析法的核心就是通过分析该组数据,找出数据的变化趋势,以便对数据进行压缩,在保留原数据主要信息的情况下实现降维[4].降维是将原始数据按照一定的规则分成若干个分量(即主元),在筛选出主要分量进行重构,并用重构后的数据代替原始数据,重构后数据的维数小于原始数据,且重构后的数据各元素之间是相互独立的,没有相关性.从而可以看出主元分析技术除了数据降维的作用外,其另一个重要特点便是可以消除变量之间的相关性[5].如图3-2所示,二维坐标图中的数据点的变化趋势,可由一个矢量方向表示,然后选择另一个与之线性无关的矢量方向.在该图中,两个矢量方向互相垂直.

图3-2主元成分示意图

3.2.2主元分析原理

主元分析是将数据看成一个整体,而不是单独地对某一个或几个数据进行分析,所以在PCA建模以前,要首先将数据进行归一化处理,以消除不同量纲上的影响,这样建立起来的PCA模型就包括了系统的完整信息,当然也会保留各检测数据之间的相关性.

假设

表示正常工况下采集到的m个变量的数据,且每个变量都有n个独立的样本.从而构成了一个数据矩阵

其中每一行表示一个样本,每一列表示一个变量.下面将A的数据预处理,也成为标准化,即A的各列都处理成均值为0标准差为1的变量.具体的方法是将A的每一列减去该列变量的均值再除以该列的标准差.

预处理公式如式(3-1)

(3-1)

由此可将矩阵A标准化为矩阵X.式中,

分别表示矩阵X和矩阵A中的元素,

分别表示矩阵A的列均值和列标准差.

下面,将得到的标准数据集分解成m个向量的外积之和,即:

(3-2)

是由得分向量

(也叫得分主元)组成的得分矩阵.

是由负荷向量

组成的负荷矩阵,其中,各个得分向量之间都是正交的,而且每个负荷向量的模都是单位1,即:

(3-3)

将式(3-2)的等号两侧同时右乘一个负荷向量

,并代入式(3-3),可以得到下式

(4-4)

式(3-4)表明每一个得分向量

是原始数据矩阵在与X是一个投影向量,对应于负荷向量

方向.得分向量

的模反映了数据矩阵在与此相应的负荷向量

方向上的覆盖程度.,数据矩阵X负荷向量

方向上的覆盖的程度或变化的范围就越大,则ti的长度越长.

若按覆盖范围长度大小排列如下:

(3-5)

将代表X变化最大的方向,

代表X变化的第二大方向,

将代表X变化最小的方向.当原数据阵X中的变量之间具有一定程度的相关性时,X的变化将主要体现在

等排列在前面的几个负荷向量的方向上,那么,X在几最后面的几个负荷向量上的投影将会很小,可以认为它们是由于测量噪声的干扰引起的.

这样,进行主元分解之后的数据阵X就可以写成下式:

(3-6)

这里E表示残差矩阵,代表着X在负荷向量

方向上的变化,有了它,就有了解释测量噪声和模型误差因素的理论依据.实际取值k要远远小于m,如果要用所保留的k个主元(k<

和残差矩阵E如下所示:

(3-7)

3.2.3主元分析法原理

在线性代数上主元是m个随机变量,即

的线性组合,而在几何上是一个新的坐标系,该坐标系有数据变量旋转后获得,新的坐标系也可以用原来的数据线性表示,各坐标代表了数据变异最大的方向.随机变量

的如下线性组合:

(3-8)

(3-9)

其中

即为主元,k为主元个数,定义第一主元

为满足如下性质的线组合

.第i个主元

满足以下的性质:

3.2.4主元个数的确定

由于系统变化主要在主元子空间得到反映而随机噪声主要由残差子空间描述,那么通过某些方法适当的选取主元个数就可以将两类变化区别开,从而可以对系统变化和随机变化进行分开监测,从而达到故障检测的目的.如何适当的确定主元个数是建立主元模型的关键因素之一.若选取的主元数过多,则会将测量噪声过多地引入到主元模型中;若选取的主元数过少,则对过程数据的解释力度就会不足,让过程数据丢失较多有用信息.比较常用的主元个数选取法有累计贡献率法(CumulativePercentVariance,CPV)、交叉检验法(CrossValidation)、能量百分比(EnergyPercent)法等[39],而较为常用的为累计贡献率法.现简单介绍一下采用主元贡献率法来确定主元数的方法.主元贡献率的定义可用下式表示:

(3-10)

式中

——为主元贡献率,表明了第k个主元所包含的系统信息所占全部信息的比例,以百分比表示.应用主元分析法对数据进行压缩和特征提取时,为了不使舍弃的原有数据信息量影响对系统的分析,必须要求l个主元的累积贡献率必须大于某一阈值,即:

(3-11)

式中CL——人为设定的控制上限,一般取85%.可见该方法所确定的主元数与CL的选取密切相关,因此,具有较大的主观性.

3.3PCA改进后ELMAN网络的齿轮箱故障诊断及其Matlab实现

上面实验神经网络的输入为齿轮不同运行状态下的15维数据,这里为了简化网络的训练,提高训练质量,利用上文所述的PCA技术对输入的数据进行简化降维,然后把最后所得数据作为神经网络的输入.以下为降维的matlab程序:

[n,m]=size(p);%取维数

pt=p';

I=ones(n,1);%取n维全1向量

EP=pt*I./n;%求数组p的平均值

stdr=std(p);%求标准差

Ep=EP';

sr=(p-repmat(Ep,n,1))./repmat(stdr,n,1);%repmat为铺放模块数组

%将数据标准化

[pcs,golg,variances,T1]=princomp(sr);%主元分析法处理数据并的出最终数据

%psc为最终数据

%golg为得分矩阵

%variances为方差值

percent_explained=100*variances/sum(variances);

%求各组数据方差比重

%据所得方差比重,选出总比重不低于85%的前几维数据

forl=1:

m

pnew=percent_explained(1:

l,1);

ifsum(pnew)>=85

break

end

end

f=pcs(:

1:

l);%取降维后数据

p=f';%更新输入数据

降维后所得数据如下:

表3-5经PCA降维后的训练样本数据

数据序号

特征样本

齿轮状态

1

-0.39100.1564-0.11540.5888

无故障

2

-0.39710.19950.19040.4019

无故障

3

-0.22150.27990.4566-0.5085

无故障

4

-0.2843-0.5059-0.0536-0.2110

齿根裂纹

5

-0.2273-0.60350.07530.1684

齿根裂纹

6

-0.2872-0.35590.4023-0.0934

齿根裂纹

7

-0.45590.2118-0.2000-0.1856

断齿

8

-0.41160.24510.0048-0.2030

断齿

9

-0.2192-0.0753-0.7291-0.2757

断齿

现在采用经PCA处理后的齿轮

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1