基于虚拟仪器和神经网络的轴承故障检测系统
2014-07-20宋玉倩赵军郭天太孔明李林峰
宋玉倩,赵军,郭天太,孔明,李林峰
(中国计量学院 计量测试工程学院, 杭州 310018)
轴承是旋转机械中最常用、最易磨损的部件,由其引起的机械故障约占30%,因此对轴承故障进行检测具有重要意义。
目前较成熟的故障信号提取方法有时域和频域2种,新研究集中在将时、频域方法相结合上,虽然精度有所提高,但损耗时间长,不能广泛应用于工程实践[1]。考虑到工程应用对实时性的要求,尝试采用时域特征值提取方法对信号进行处理,采用虚拟仪器技术[2-4]并利用神经网络实现对轴承故障的智能诊断[5]。
1 系统总体方案
开发的神经网络轴承故障检测系统总体思路如下:通过LabVIEW软件编程,实现信号时域特征值的提取及保存,然后结合神经网络技术,调用神经网络算法的MATLAB脚本公式[6],实现轴承的智能诊断功能。
试验获取的信号为文本格式的轴承工作台振动信号。系统的总体框架如图1所示。其中,数据分析模块将得到的特征值保存后,即完成了神经网络训练样本的建立,与之后的智能判断模块相互独立。运行智能诊断子程序,将被测信号进行特征提取,送入训练好的神经网络,即可对轴承状态进行检测。
图1 系统总体结构框图
2 神经网络的构建
在神经网络中,BP和RBF神经网络应用较为广泛[7-8],而BP网络可满足对故障进行快速、精确检测的要求,因此采用3层BP神经网络实现轴承故障诊断。
训练网络输出神经元为(1,0)时对应轴承的正常状态,故障状态则通过被测样本与目标输出间的偏离程度判断,用输出误差e表征为
e=(a-1)2+b2,
(1)
式中:(a,b)为被测样本的输出,实际输出误差e大于设定的阈值时,判断有故障发生,其他网络参数设置见表1。
表1 BP神经网络的参数设置
3 软件设计
3.1 主程序
主程序通过设置读取信号个数控制训练样本的大小,文中用10个正常状态的加速度振动信号作为样本信号进行处理。主程序框图如图2所示,通过对训练样本路径的自动引用,利用读取的训练样本个数控制循环,实现对样本文件的自动读取。
图2 轴承故障检测系统主程序图
3.2 数据分析子程序
数据分析子程序主要实现时域统计特征值的计算,将所求得的11个特征值进行捆绑,组成1个数组,该数组即为1个训练样本。选择样本数据的存储位置,进行训练样本的保存,该子程序执行完毕,即完成对训练样本库的建立,本试验的样本库为10×11的矩阵,其对应程序图如图3所示。
图3 数据分析子程序程序图
3.3 智能诊断子程序
数据分析子程序中,对正常轴承测量文件进行数据处理所保存的特征值即为神经网络的训练样本,被测样本为待诊断的信号,可以是正常信号,也可以是存在内、外圈或滚动体故障的信号。由于神经网络的起始阈值是随机的,所以在实际程序中,对神经网络的训练循环进行3次,通过(1)式求取3次输出误差的平均值,作为最终误差,当误差大于设定阈值时,判断有故障发生,出现报警提示。智能诊断子函数对应的程序图如图4所示。
图4 智能诊断子程序的程序图
3.4 MATLAB节点调用
LabVIEW专门提供了与MATLAB进行通信的MATLAB Script方式。程序在运行MATLAB Script时会自动启动MATLAB并在其中执行脚本内容,用户可以直接在MATLAB节点中编辑程序(即在脚本节点中输入函数);也可以载入已经存在的程序(通过鼠标右键单击脚本节点,选择Import将写好的程序载入)。通过在MATLAB节点中添加输入、输出变量并指定变量名称,进行LabVIEW和MATLAB间的参数传递,实现节点内MATLAB程序在LabVIEW环境下运行[9]。
如图4所示。先将经调试可运行的MATLAB神经网络程序载入节点,分别添加训练样本和测试样本作为输入参数,添加网络训练输出和测试结果输出作为输出参数,并与脚本内程序变量的名称进行匹配,即p为训练样本,pct为测试样本,b1为网络训练输出,a为测试结果输出,节点内的程序就是根据MATLAB神经网络工具包进行的网络创建、训练步数、学习率、目标精度等参数的设置,for循环是为了减小网络初始化时起始阈值的随机性带来的误差。
4 试验验证与分析
为验证所设计系统的有效性,采用如图5所示的QPZZ-II型旋转机械模拟试验台进行轴承故障试验。轴承型号为NU205EM,采用压电式加速度传感器采集电动机转速1 500 r/min时的轴承振动信号。裂纹故障是采用工业线切割技术加工的宽度为0.6 mm的裂缝,磨损故障通过非均匀磨损加工。
图5 滚动轴承故障试验台
试验时测点固定在轴承座的上表面,每种轴承状态分别测取15次,其中正常状态下的10组数据作为训练样本,5组作为被检测数据,其余状态下的15组数据均作为被测数据。
对比训练样本的输出与目标输出,发现最大偏差约0.2,故将2个输出的最大偏差均设为0.2,由(1)式计算误差为0.08,将其设定为阈值,即当被测样本的输出误差大于0.08时,认为有故障发生,弹出故障报警对话框,否则认为结果为可接受误差范围,归属于正常样本。
一些轴承状态的数据输出结果见表2,诊断的正确率达100%。其中正常1,2是任意抽取的10个训练样本中的正常数据,从其误差可以看出,远远小于设置的目标输出0.01;正常3,4为10个训练样本外的正常数据,其平均误差明显比训练样本误差大;其他故障状态均为各种故障状态下任取2个。结果表明,系统能正确判断出轴承是否存在故障,而且在外圈裂纹2的故障中,虽然输出误差只有0.584 79,但系统仍能判断出故障,既说明了BP初始阈值的随机性,又验证了系统所选取阈值的合理性。
表2 各种轴承状态的智能诊断输出结果
5 结束语
为了实现快速准确的在线故障检测,通过虚拟仪器平台,利用神经网络的自组织自学习性质,完成了轴承故障检测系统的设计。系统采用了最大值、有效值等11个特征值,通过增加输入神经元的个数,减少神经网络运行步数和时间,并且对神经网络进行循环求取平均误差,排除因随机性造成的错误判断,对在实验室条件下所测试的样本判断正确率达100%,大大提高了系统诊断准确性。下一步的工作是对轴承不同故障状态进行模式识别,从而进一步检测出不同故障类型。