BP神经网络与粒子群优化结合在异步电机故障中的应用

(整期优先)网络出版时间:2020-06-02
/ 2

BP神经网络与粒子群优化结合在异步电机故障中的应用

张磊 崔健 李显斌

中车青岛四方机车车辆股份有限公司 山东 266111

摘要:在电机的故障诊断中应用BP神经网络建立起异步电机的BP神经网络诊断模型。由于BP神经网络学习算法容易陷入局部最优,我们引入粒子群算法来优化BP神经网络径向基函数、隐含层层数以及隐含层节点数量、以获得最优的网络模型。仿真结果表明优化后的BP神经网络的泛化能力和诊断精度都得到了大幅度提高。

关键词: 异步电机、故障诊断、BP基神经网络、粒子群算法

引言

本文将BP神经网络应用到电机的故障诊断中。BP神经网络具有较快的学习速度以及较好的分类能力,可以实现电机的故障诊断和状态识别。但其参数确定比较困难,因此,文中引入了粒子群算法,来优化BP神经网络基函数,隐含层层数以及隐含层节点数量。最后,对本文所设计的诊断系统进行了仿真,用训练样本对粒子群算法的BP神经网络进行训练,网络训练完成后,建立了基于BP神经网络的异步电机故障诊断系统。

1 BP神经网络与差分进化算法

BP神经网络

BP神经网络是一种具有多隐含层的反向回传网络。第1层为输入层由许多信号源节点构成;第2层以及后续若干层为隐含层,隐单元的作用函数为径向基函数;最后一层为输出层,主要对输入作出响应。隐含层单元作用函数对输入将会产生响应,该响应乘以本隐含层节点的权重,与别的隐含层节点的输出进行线性相加。即为输出的结果。输出结果会与设定结果进行对比,产生的差值将会反向回传,修正隐含层节点的权值。

粒子群优化

粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解来调整自己的速度和位置。

通过多次的迭代计算,可以在待定参数模型中通过多次的寻优计算找到结果最优情况下的对应的参数值。

PSO算法优化的BP神经网络

在BP神经网络的学习过程中,需要确定的参数有:隐单元基函数的中心ci、隐含层层数,各层的节点个数。在学习过程中,这3个参数若设置不当会造成BP神经网络容易进入局部最优。本文将PSO算法与BP神经网络进行融合,用PSO算法来优化BP神经网络的层数、隐单元基函数的中心ci和隐含层各层节点数,以获得网络的全局最优参数。用PSO算法训练BP神经网络的步骤如下:

编码:个体编码的长度就是变量的个数。本文对BP神经网络的参数进行统一编码即将隐单元基函数的中心ci和隐含层层数m以及各隐含层节点数n. 3个参数编到一个个体中,每个个体就代表一个BP网络结构。在训练过程中不断各网络结构的参数值直至精度不再提高。

初始化种群及算法的参数:随机生成初始种群包含有NP个个体,这些个体就是第一代的个体,给出缩放因子F以及交叉概率因子CR的初始值,设定算法的最大迭代次数g;

确定适应度函数:适应度是用来描述种群中个体优劣程度的重要指标。BP神经网络的训练目标就是要使网络的精度达到最小,而精度是由网络的均方误差决定的,因此这里将均方误差作为适应度函数,表达式为:

5ed5b574e87c6_html_f7b344dcb4bd5d48.gif (1)

式中,N为训练样本总数;tp是第p个样本的期望输出;yp是第p个样本的实际输出。计算每个个体的适应度值,保留适应度值最小的个体;

利用PSO对BP神经网络的三个参数:隐单元基函数的中心ci、隐含层层数m,各隐含层节点数n进行优化。记录每次优化后的Ji。

在选定的的PSO参数下,将得到最小值的Ji对应的隐单元基函数的中心ci、隐含层层数m,各隐含层节点数n作为RBK神经网络的参数。

异步电机故障诊断仿真

本节将运用BP神经网络对异步电机进行故障诊断,并在Matlab软件平台上对故障诊断系统进行了仿真。分别采用广义BP神经网络(中心、宽度及网络的连接权值均采用监督学习)和PSO算法优化后的BP神经网络对异步电机的故障类型进行识别,并对识别结果进行对比分析。

2.1广义BP神经网络的应用

(1)输入层单元数的确定:分别采集电机正常运行、定子绕组故障、转子断条故障、轴承故障这4种运行状态下电机的信号。对这些信号进行小波消噪处理后再进行特征提取来构造特征向量,这些特征向量就是BP神经网络的训练样本和测试样本。本文提供10个特征向量,此时RBF神经网络的输入层单元数为10;

(2)输出层单元数的确定:本文共模拟了异步电机正常运行、定子绕组故障、转子断条故障、轴承故障4种运行状态,所以输出层单元数为4。

利用函数newrb创建BP神经网络,在网络的建立过程中,隐单元的个数会自动增加直到网络的误差达到所设定的误差精度。针对每种故障选用20组数据作为训练样本对网络进行训练,4种故障总共有80组数据。实验可知,径向基函数(RBF)网络训练速度比较快,收敛性好,不存在平坦区。训练结果如图1所示。

从图1可知,径向基函数(RBF)网络训练速度比较快,收敛性好,不存在平坦区。

2.2采用PSO算法优化RBF神经网络的应用

本节将采用PSO算法对BP神经网络进行训练,输入层单元数为10,输出层单元数为4。隐层层数以及单元的个数在训练过程中由PSO算法根据网络的精度不断进行调整,直至满足网络精度要求或者精度不再提高。文中确定隐层层数为2,各单元的个数为4。根据PSO算法优化结果,最终确定差分进化算法的参数为:种群规模NP=100,缩放因子F=0.6,交叉概率因子CR=0.7,迭代次数g=150。参数设置好后就开始对网络进行训练,为了避免偶然性结果的出现将程序总共运行了30次。图2为网络训练过程中均方误差的变化曲线:

5ed5b574e87c6_html_82b48c5749e35521.png

图(1) RBF神经网络训练结果 图(2) 均方误差曲线

实验可知,随着迭代次数的增加,误差不断减小,当迭代至30次左右时,误差的变化已趋于平缓;当种群迭代到150次时,此时就可以判断差分进化算法收敛。同时,由网络的结构对比可以看出,优化后的BP神经网络的泛化能力要比未优化的BP神经网络的泛化能力好。

用一组样本对网络进行测试时,如果网络所有节点的输出都满足公式:

5ed5b574e87c6_html_65b27c24e4b079ca.gif (2)

即网络的期望输出与实际输出的误差在规定的阈值T内就认为网络成功的识别了该故障,否则识别错误。本文仿真中T=0.5。

通过实验的对比可以看出,针对本文所设的阈值(T=0.5)用两种算法训练的网络都有效地成功地诊断出了电机的不同故障状态,而差分进化算法优化的BP神经网络的诊断结果更接近于目标输出向量识别准确度明显要高于未经优化RBF神经网络。

结论

本文将BP神经网络应用到异步电机故障诊断中。针对BP神经网络的参数确定比较困难等不足,提出了用PSO算法来优化BP神经网络的参数,最后用PSO算法优化的BP神经网络对异步电机的运行状态进行识别。在仿真中提供10个特征向量作为训练样本对优化前后的神经网络分别进行训练,采用相同的测试样本对训练好的网络进行测试,结果表明经PSO算法优化的BP神经网络能更好地识别电机的运行状态,诊断精确度更高。