基于GA-PSO优化BP神经网络的压缩机气阀故障诊断
2018-10-18邵继业谢昭灵
邵继业,谢昭灵,杨 瑞
(电子科技大学机械电子工程学院 成都 611731)
往复机械结构复杂,其活塞、连杆、气阀等部件很容易发生故障,其中尤以气阀的故障多发且类型众多[1]。由于气阀振动信号具有非连续性、冲击性及不具备全局性的特点,采用传统的傅里叶变换、时频分析法往往难于找到故障特征。经历数十载的探索,故障诊断方法逐步经传统诊断方式朝人工智能诊断方式前进。这种发展本质就是模式识别方法的改变,通过提取采集数据的特征参数,采用智能算法来进行识别,以此判断状态类别。利用神经网络出色的并行数据处理、良好的容错性以及较好的自适应性用在故障诊断上得到大众的瞩目[2]。其中BP神经网络是各个领域中应用最广泛的一种[3-5],但存在要求足够多的训练样本,易陷入局部极小、学习效率低、收敛速度慢等问题。
一般BP神经网络模型的建立、学习以及诊断的效率都关乎于输入故障向量维数的高低,维数越高,需要更庞大的网络结构才可以让网络有效地逼近正确诊断结果,这不仅影响学习、诊断效率,还可能导致分类不准确。因此,有必要降低样本维数。主成分分析法(principal component analysis, PCA)常用来对数据向量进行降维,目前这种方法在故障诊断等相关领域都有相当广泛的应用。所以,本文在特征提取之后,利用主成分分析法对特征样本向量进行降维,对状态信息进行凝聚。
对于BP神经网络来说,它的收敛效率仍然需要提升。由于标准BP算法收敛速度慢且易陷入局部极小。利用智能优化算法代替传统算法来进行BP网络训练中的参数优化过程,从而达到提高网络训练效率的目的。这些优化算法中粒子群算法(PSO)简单好用,但它具有精度不高、易陷局部极小等缺点,有不能获得全局最优解的风险。为了解决该问题,文献[6]利用一种遗传-粒子群(GA-PSO)来解决粒子群算法中存在的早熟问题;文献[7]也提出一种杂交的粒子群算法依然利用了遗传算法的思维。GA-PSO算法在很多领域得到应用,如:生产过程优化[8]、流水线调度[9]和规划[10]等。本文提出一种GA-PSO算法对BP神经网络进行优化,提高BP网络的训练效率,从而用在气阀的故障诊断中。
图1 诊断过程
1 往复压缩机气阀故障分析
GA-PSO算法优化神经网络以实现气阀振动信号的故障诊断的总体过程如图1所示本文选取往复式压缩机的振动数据,有正常工作状态数据和常见的3种故障状态数据,包括阀片断裂、阀片缺口、少弹簧故障。数据采样频率为20 000Hz,选取一个完整采样周期(0.12s)的振动信号绘制原始时域波形图,如图2所示,由于振动信息经由气阀阀片薄板结构到阀盖的过程中会被其他振源产生的振动信号及周期性冲击力产生的气阀高频振动影响,出现了调制现象;而气阀闭合、开启的运行信息则在产生的低频噪音中被完全掩盖,可能会影响气阀特征信息的提取结果。图中可以看出,发生故障时的幅值要小于正常时的幅值,但对于不同故障之间如何区分,还需要进一步的处理。
图2 原始信号波形
2 基于小波包和PCA的特征提取
在故障诊断的3要素中特征提取这一环节尤为关键。本文利用小波包对气阀振动信号进行分解,在不同频段下重构得到各信号的分段波形,把信号不同的频率段的能量作为特征提取结果。再利用PCA对高维特征向量降维,提取有用特征,去除不相关特征,以此规避特征向量维数过大所产生的问题。
2.1 基于小波包的特征向量产生
由于压缩机气阀冲击信号具有非平稳性、冲击性的特点。所以在产生特征过程中应尽可能将信号的频率成分进行细分。其中,短时傅里叶变换一开始就确定了窗函数,不利于频率段的细分;多分辨分析理论上能够有效地进行信号的时频分析,但是它的尺度受二进制变换的限制在高频段不能得到较好的频率分辨率。而小波包是一种对于信号处理更为精细的方法,频带可以得到多层次分解,还能依据信号自身的变化特征,一定程度上自适应地选择相应频带,进而提高时频分辨率[11]。因此,首先对原始振动信号进行小波包分解以进行特征提取。
图3为阀片断裂故障时,一个采样周期其振动信号经4层小波包分解后16个频带(S(4,i),i=0,1,…,15)的重构信号,小波类型采用db5。对正常状态信号少弹簧和阀片有缺口两种故障信号可分别进行小波包分解。
图3 阀片断裂时小波包重构信号图
压缩机工作包括4个过程:吸气、压缩、膨胀、排气。如果工作过程中气阀发生故障则会致使缸内的压力降低,振动产生对气阀的作用力也会随之变小,使得整个过程产生能量泄露。因此各频段能量变化情况最能表征气阀工作状态,故提出一种通过计算各个频段的能量比值作为特征向量的方法,具体步骤如下:
2)计算总能量E,并用ej取代能量归一化后的能量特征:
3)构造能量特征矢量X1:
气阀4种工作状态的16个频率段能量比特征对比如图4所示。从图可看出,正常状态、阀片断裂、阀片有缺口的能量主要集中在5、6、7、8、13、14频段,缺少弹簧的能量主要集中在第1个频段。
图4 能量特征向量对比图
2.2 基于PCA特征提取
经过小波包分解得到16维的特征向量是完全等间隔频带划分的,不能得到频带特征更有利于模式识别,且向量维数较大,计算复杂耗时。因此,本文利用PCA对小波包分解后的特征向量进行降维,在仅有原始数据集情况下抽取最有价值的特征。降低了输入数据空间、减少神经网络训练和测试时间及噪声干扰,达到改善诊断能力的目的。
PCA是一种经典的统计数量统计方法[12]。该方法的构造理论是将数据从一个高维空间映射到另一个低维空间中的过程,利用线性的空间变换求得新的低维变量。该低维主成分变量能够反映原始数据变量的信息,而且主成分变量间是具有正交性的。
将得到的特征样本利用PCA降维,得前3个主元累计方差贡献率达到98.66%,因此完全可以将前3个主元作为新的特征向量。图5为经PCA降维后的三维训练样本分布图。由图可以观察出,降维操作之后气阀4种不同状态的样本能够明显地区分开。
图5 PCA降维后的三维训练样本
3 GA-PSO优化BP神经网络
3.1 GA-PSO算法
由于BP神经网络存在的参数设置、收敛速度、容易陷入局部极优等问题,本文提出用遗传算法(GA)和粒子群算法相结合的方法来优化BP神经网络。粒子群优化算法是由文献[13]提出的一种模拟自然界生物集群现象的优化算法。粒子群算法与遗传算法相似,都是基于群体与适应度这两个概念。粒子群算法在进化初期,收敛速度快,但是在进化后期收敛速度变慢且收敛精度时高时低,容易陷入局部极小;遗传算法具有良好的并行计算能力和较强的全局搜索能力。鉴于二者有着互补的优势将两种算法结合起来,但大多数的GA-PSO改进算法使得算法本身复杂化。于是,本文的GA-PSO算法通过遗传算法的交叉、变异思想,利用交叉、变异操作代替标准粒子群算法公式中的各项来进行粒子的更新。因此简化了算法,避免利用公式计算粒子位置;既利用了粒子群算法前期快速趋近最优解位置的特点,又发挥了遗传算法的全局搜索能力,有效地避免了种群的早熟现象。
PSO算法中任一粒子在更新过程中依据下面二式进行速度、位置更新:
式中,k为迭代次数;c1,c2为加速因子;ω为惯性系数;1r,r2为[0,1]之间的随机数。
由式(5)、式(6)可知,粒子的更新可表示为:
式中,等式右边第2项是粒子本来具有的惯性,相当于对上一时刻速度项进行GA中的变异操作;同理,第1、3、4项相当于粒子与个体极值粒子和全局极值粒子进行GA中的交叉操作。
因此,首先利用GA中的变异操作代替式(7)中的第2项:更新粒子的速度项不再利用惯性系数乘以原始速度,而是将粒子速度进行变异操作;然后用GA中的交叉操作代替式(7)中的第1,3,4项:将粒子先与其个体极值进行交叉操作,再与全局极值进行交叉操作;最后将完成交叉操作的粒子加上与之对应的速度项,完成粒子的更新。
3.2 GA-PSO算法优化BP神经网络过程
将上述GA-PSO算法代替传统BP算法的梯度下降法,用于BP神经网络的参数优化过程,搜索BP神经网络的全部权值和阈值,并将其作为粒子群个体的编码信息。这样不仅避免了梯度下降法求导造成的计算量大的问题,而且减小了陷入局部极小的风险。优化过程中,利用粒子群算法的记忆功能保留全局最优,使得各个粒子快速向全局最优解靠近,加快收敛速度。
图6为GA-PSO算法优化神经网络流程图。
BP神经网络以学习样本的最小均方差作为粒子群的适应度函数:
式中,a为网络的实际输出;假设t为对应的期望输出;N为样本总数。
在GA-PSO算法优化BP网络时的具体步骤为:
1)初始化BP神经网络。根据待输入量的向量维度和需要得到的输出量的向量维度确定输入、输出节点,并计算确定隐层节点数。
2)粒子群初始化。根据网络结构确定出粒子参数量,粒子个数N,粒子内编码选取使用实数随机编码,初始化粒子的位置p和速度v;设置最大训练次数mmax、求解的精度值E。
3)根据式(8)计算每个粒子适应度函数值,并判断是否满足目标条件,否则进行下一步。
4)确定出粒子的个体极值和群体极值。
5)对每一个粒子的速度进行变异操作,完成速度更新。每个速度粒子随机选择2/3的位置进行变异。
6)每一个粒子先后与相对应的个体极值粒子和全局极值粒子进行交叉操作,完成位置更新。每个粒子随机选择总维数2/3的位置与优秀粒子进行交叉。
7)将更新后的粒子位置和速度相加,完成粒子群的更新。
8)重复执行步骤3)~步骤7),并判断适应度函数的值是否优于前一代的值,更新最优适应度函数值与其对应的权值和阈值。
9)把测试数据代入最优的权值和阈值的BP神经网络训练并测试验证。
图6 算法流程图
4 气阀故障实验分析
对采集到的往复压缩机气阀阀盖位置的4种工作状态(正常、阀片断裂、阀片有缺口、缺少弹簧)振动信号,按前述方法进行特征产生和提取,构成三维输入样本。每种工作状态分别有33组样本,将其中的11组样本作为训练样本,剩余的22组样本作为测试样本。
4.1 参数设置及训练过程
将正常工况、阀片断裂故障、阀片缺口故障、缺少弹簧故障依次编码为(1,0,0,0)T、(0,1,0,0)T、(0,0,1,0)T、(0,0,0,1)T作为神经网络输出,将气阀的4种运行状态每种分成11组训练样本作为BP网络的输入,进行训练。将具有相同网络结构的3种BP神经网络进行对比,分别是标准BP算法、标准的PSO、GA-PSO算法进行对比。其中,神经网络的输入节点为3,输出节点为4,隐含层节点数则需要进一步确定;3种网络的最大训练次数mmax=1 000;梯度下降法的学习率l2=0.01;PSO参数为粒子个数N=100,c1=c2=2,并设置收敛精度E=0.001。
由于隐含层的节点数对神经网络起着重要的作用。本文设置隐含层区间[5,14],在这个区间中寻找最佳的隐含层节点数。图7是不同隐含层节点数下传统BP神经网络的训练精度值。由图可知隐含层节点选取7时,网络的训练精度最高。所以将隐含层节点数确定为7。
图7 不同隐含层的神经网络的训练精度
表1为3种神经网络训练性能比较。图8为3种训练方法下的误差变化曲线。可以看出,GA-PSO-BP收敛效率优于梯度下降法和PSO-BP,克服了PSO-BP后期陷入局部极小影响收敛速度的缺点。
表1 神经网络训练性能比较
图8 3种训练方法下的误差变化曲线
4.2 诊断结果测试
诊断网络训练完毕之后进行诊断效果测试。把气阀4种状态的测试样本,每种状态有22组,分别输入到训练好的3种网络中进行测试验证。表2列出了3种神经网络对测试样本的部分输出及分类正确率。可以看出GA-PSO-BP神经网络的诊断精度最高。可见PCA和GA-PSO-BP网络的诊断方法具有较好的效果。
表2 测试结果对比
5 结束语
本文提出了一种基于PCA和GA-PSO-BP神经网络的压缩机气阀故障诊断方法,对故障特征向量通过PCA降维,降低网络的规模和计算时间。将粒子群算法与遗传算法进行结合,将粒子群优化算法简单且全局寻优能力强的特点,以及遗传算法较好的并行计算能力相融合,防止BP神经网络在训练中陷入局部最优,提高了训练效率。最后结合实验数据对其进行了验证。验证结果表明,基于PCA和GA-PSO训练的BP神经网络对压缩机气阀故障诊断具有更好的快速性和准确性,满足压缩机气阀故障诊断的要求,在实际工程中有一定的应用价值。