周一至周五 | 9:00—22:00

基于BP网络的电机故障诊断

作者:未知

  摘要:介绍了BP神经网络以及电机故障诊断的发展和电动机故障诊断常见的技术方法,列举了电机故障征兆集。设计一个具有电机故障诊断功能的BP网络系统,给出了matlab关键程序和运行结果。
  关键词:BP神经网络 电机 故障诊断
  
  0 引言
  
  电机的正常工作对保证生产制造过程的正常进行意义非常重大。因此对电机故障的诊断要求十分迫切,通过对电机常见故障的诊断和分析,可以及早发现故障和预防故障的进一步恶化。随着芯片技术的发展及智能技术的应用,诊断技术已经进入了一个新的阶段,一种基于人工智能技术的诊断方法。该文用BP神经网络综合实现电机故障的诊断。
  
  1 BP神经网络
  
  人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。
  BP(Back Propagation)网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(outputlayer)。BP网络能学习和存贮大量的输入一输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
  BP算法理论具有依据可靠、推导过程严谨、精度较高、通用性较好等优点,但标准BP算法存在以下缺点:收敛速度缓慢,容易陷入局部极小值,难以确定隐层数和隐层节点个数。在实际应用中,BP算法很难胜任,因此出现了很多改进算法:①利用动量法改进BP算法:②自适应调整学习速率;⑧动量一自适应学习速率调整算法:④L―M学习规则。
  
  2 电机故障诊断
  
  由于人为的因素,仅依靠日常的“听、摸、看”难免会造成一定的判断失误,一方面造成电机抱轴等严重事故的发生,另一方面又可能对状态较好的电机进行停车检修,如此不仅不能保证装置的平稳运行,同时还造成了检修费用的大量浪费。
  故障诊断技术发展至今已经历了三个阶段第一阶段由于机器设备比较简单,故障诊断主要依靠专家或维修人员的感觉器官、个人经验及简单仪表就能胜任故障的诊断与排除工作;传感器技术、动态测试技术及信号分析技术的发展使得诊断技术进入了第二个阶段,并且在维修工程和可靠性工程中得到了广泛的应用;80年代初期,由于机器设备日趋复杂化、智能化及光机电一体化,传统的诊断技术已经不能适应了,随着计算机技术、人工智能技术特别是专家系统的发展,诊断技术进入第三个发展阶段一智能化阶段。
  电机故障诊断,尤其是多个故障特征信号相互交织叠加时,很难仅凭肉眼进行判断识别,而人工神经网络具有独特的非线性映射、联想记忆、自适应与自学习以及良好的容错性等优点,十分适用于复杂电机系统的故障诊断。
  各种类型的电机具有相同的基本原理,电机内部都有电路、磁路、绝缘和机械等独立而相互关联的系统,一般用于电动机故障诊断的技术方法有:①电流分析法。通过对电机电流幅值、波形的检测和频谱分析,诊断电机故障的原因和程度。例如通过检测交流电动机的电流,进行频谱分析来诊断电机是否存在转子绕组断条、气隙偏心、定子绕组故障、转子不平衡等缺陷。②振动诊断法。通过对电动机的振动检测,对信号进行各种处理和分析,诊断电机产生故障的原因和部位,并制定处理方案。⑧绝缘诊断。利用各种电气试验和特殊诊断技术,对电机的绝缘结构、工作性能和是否存在缺陷作出结论,并对绝缘剩余寿命作出预测。④温度诊断。用各种温度检测方法和红外测温技术,对电机各部分温度进行监测和故障诊断。⑤振声诊断技术。振声诊断技术是对诊断的对象同时采集振动信号和噪声信号,分别进行信号处理,然后综合诊断,因而可以大大提高诊断的准确率。
  
  3 系统总体方案
  
  表1为该系统列出了5种常见的电机故障征兆集和,在集合中,“1”表示有征兆存在,“0”表示征兆不存在。
  根据经验输出为电机的故障等级,范围从0~1表1的样本输入对应的样本输出如表2。
  
  4 软件实现
  
  BP网络在Matlab上的仿真程序设计主要包括:输入层、隐含层、输出层及各层之间的传输函数几个方面。输入和输出样本分别为表1和表2。利用Matlab在模式识别方面采用采用自适应学习率BP算法计算机进行仿真。这里用到matalab神经网络工具箱中的一个非常实用的函数newff。newff函数需要4个输入参数。第一个参数是一个RX2的矩阵以定义R个输入向量的最小值和最大值。第二个参数是一个设定每层神经元个数的数组。第三个参数是包含每层用到的传递函数名称的细胞数组。最后一个参数是用到的训练函数的名称。
  根据表1样本输入和表2样本输出,创建bp网络和定义训练函数,是为了方便而建立一个矩阵,用newff函数来训练BP网络。关键程序如下net=newff([0 1;0 1;0 1;0 1;0 1],[5 1]{logsig,pure-lin},trainlm);%这里要加入输出层的转移函数,一般是trainlm;net.trainParam.goal=0.001;net.trainPalm.epochs=5000;[net,tr]=train(net,p,t);%训练神经网络iw1=net.IW{1}:%输出训练后的权值和阈值:b1=net b{1};1w2=net LW{2}:b2=net.b{2};save net51 net。
  
  5 结束语
  
  神经网络是智能控制技术的主要分支之一,在神经网络系统中,BP网络有着广泛的应用,但各种算法在实际问题中都存在着一些具体的问题,使得BP网络的应用受到一定的限制,因此对这些算法还应进一步改进。利用Matlab神经网络工具箱可实现BP网络的程序设计、训练和仿真,要利用先进技术解决传统控制问题。BP网络运用于电机故障诊断可以提高工作的可靠性及其系统的灵活性。


常见问题解答