APP下载

基于Cross-Validation的电机故障诊断振动数据处理方法

2018-04-17王惠中乔林翰贺珂珂

自动化仪表 2018年4期
关键词:降维交叉故障诊断

王惠中,乔林翰,贺珂珂,段 洁

(兰州理工大学电气工程与信息工程学院,甘肃 兰州 730050)

0 引言

牵引电机以其结构简单、维修方便、启动转矩大等特点而被广泛应用。对其进行早期状态监测,变传统定期维修为预知维修,具有较好的经济价值和社会价值。

目前,电机振动信号分析仍然是非电信号故障识别的主要方法。该方法大多采用安装加速度计的方式进行采样。一旦电机出现轴承内圈或外圈故障,将产生与正常运行状态不同的特征频率[1]。

人工神经网络(artificial neural network,ANN)以其良好的非线性映射、并行处理能力、泛化能力、容错性、自适应性等优点,被广泛应用于信息融合、故障诊断等领域。文献[2]采用小波神经网络进行故障诊断,并通过遗传算法优化网络参数,但该方法易陷入局部极优。文献[3]提出自适应模糊神经决策系统,但该方法需要监测三相电流,硬件消耗较大。文献[4]采用信息融合的径向基函数(radical basis function,RBF)神经网络进行电机故障诊断,但该方法数据集太小,仅止于理论研究。

本文提出采用一种K折交叉验证(K-fold cross validation,K-CV)的方法对特征样本集进行划分,避免了神经网络存在的过拟合问题。交叉验证算法从多方向学习样本,可有效避免局部极小。

1 K折交叉验证与神经网络优化

鉴于采集数据具有冗余性和和相关性,首先对数据进行降维处理,以期提高分类器的故障诊断能力。

1.1 主成分分析

主成分分析(principal component analyses,PCA)是一种常用的数据分析方法。它通过线性变换,使原始数据在各维度上线性无关,通常可用于提取数据主要特征分量以及高维数据降维[5]。

一般而言,机器学习中的数据集表示为向量。在实际工程应用中,通常需要处理高维数据,但机器学习的资源消耗太大,因此必须对数据进行降维。降维意味着信息丢失。鉴于实际数据本身存在相关性,在降维时应尽量降低信息的损失。PCA的本质是以方差最大的方向作为主要特征,并使数据在各方向“离相关”,使其在不同正交方向上不再具有相关性[6]。

1.2 K折交叉验证

在K折交叉验证中,初始采样后,将样本集分割为K个子样本。其中,(K-1)个样本用作训练数据,剩下的1个样本作为验证集。交叉验证重复K次,每个子样本验证一次,对K次结果取平均,得到单一估测值[7]。该方法的优势在于能同时重复运用子数据集进行训练和验证,以遍历每次的结果。其中,10折交叉验证(10-fold cross validation,10-CV)最为常用。

10-CV具体操作步骤如下。首先,将原始数据集按照K值大小划分为训练集与测试集。10-CV取数据集的十分之一作为测试集,其余为训练集。然后,将训练集划分为10等份,取其中随机9份用作训练,所剩1份作为验证集。重复以上步骤10次,使得验证集遍历所有训练集。此时,对每次测试集的表现结果进行综合分析,通常对其准确率取平均值。最后,以此平均值作为测试集的最终表现。

1.3 初始化权值的改进和随机梯度下降算法

1.3.1初始化权值的改进方法

传统神经网络从(0,1)正态分布中随机选取权值。三种最常用的激活函数分别是Logistic Sigmoid、Hyperbolic Tangent和Linear。其函数图像和导数图像如图1所示。在使用Sigmoid函数时,当输出接近0或1 的位置,权值的变化只能引起很小的更新量,学习速度慢,隐层容易出现饱和。对于隐层,无法通过cost函数进行改进。

图1 常用激活函数图像及其导数示意图Fig.1 Schematic diagram of common activation functions and their derivatives

在激活函数中:

z=∑jwjxj+b

1.3.2随机梯度下降算法

相比于传统的梯度下降算法,随机梯度下降法(stochastic gradient descent,SGD)引入了mini-batch的概念,即每次更新参数时选取n个样本(n一般为10),从而在样本数量较大时提高训练速度[8]。但由于该算法本身迭代次数较多,且每次迭代并非向着整体最优化的方向,因此其解空间搜索过程比较盲目。而通过K折交叉验证的方法,恰好弥补了其准确度差、非全局最优的缺陷[9]。

式(2)和式(3)分别表示传统梯度下降算法的实现过程与随机梯度下降算法的实现过程。

(1)

假设:

Δv=-ηC

则有:

ΔC≈-ηCc=-ηk≤0

因此,C是逐渐减小的。

在神经网络中,C为因变量,权重和偏向为自变量。

(2)

随机梯度下降算法如式(3)所示。观察式(3)可以发现,该方法每次投入的是一组数据集,因此能提高训练速度。

(3)

2 仿真试验分析

本文利用Eclipse+Anaconda,在Pydev环境下,对所提出的方法进行仿真。仿真所采用的数据来自美国凯斯西楚大学轴承实验室网站。仿真过程如下。

通过电火花加工(electrical discharge machining,EDM)对电机轴承的内圈、外圈故障进行模拟。 分别在内滚道和外滚道处引入直径为0.177 8 mm的故障。 故障轴承重新安装到测试电机中,并记录电机空载(电机速度为1 797 r/min)的振动数据。

使用加速度计收集振动数据。将加速度计放置在电机壳体的驱动端和风扇端的12点钟位置,并连接到具有磁性底座的壳体。使用16通道DAT记录仪收集振动信号,并在Matlab环境中进行后处理。所有数据文件采用Matlab(* .mat)格式。选用电机牵引端12点钟位置,以1 200次/s进行数据采样。选取每组数据的前100 000个采样点,一共3组,组成样本集。

对样本集进行归一化等预处理及PCA降维,得到特征向量;将每100 000点数据重新排列,构造(1 000,100)的矩阵,并将3个矩阵组合成(3 000,100)矩阵,对该矩阵进行降维操作。由于数据预处理时已经进行归一化,此时不再需要进行白化处理。为简便起见,直接采用sklearn中所包含的mode,在sklearn中载入decomposition。为使得每一个主成分的贡献率达到最高,此处设置n_comnents为mle,即自动选择所保留的特征个数。采用sklearn方法进行PCA降维前后的效果对比,如图2所示。

图2 PCA数据集示意图Fig.2 Schematic diagram of PCA data set

由图2可以看出,该方法对100维数据的降维操作有效、可行。此时所得数据为之前100维数据降维后的87维数据,则(3 000,87)矩阵的每1 000行表示一种状态,共有3种状态。由此可得整理数据集的方法如下。

①构造矩阵y(3 000,1)作为x的标记。其中每1 000行为一种标记,表示电机的一种运行状态,共三种状态(3 000行):正常运行(0.0),内圈故障(1.0),外圈故障(2.0)。

②将x和y合并成新矩阵,然后将每一行作为一个样本去除顺序干扰,即洗牌(shuffle)操作。

③此时,相当于已经对x作好标记,则重新拆分x和y。

④以x作为样本集,对x进行K折交叉验证,划分训练集和测试集。可以将每一列作为一个样本,则有3 000个样本,每个样本包含88个数据。定义一个函数splitdataset切分样本集,若10折交叉,则split_size取10。

2.1 优化神经网络与传统神经网络比较

取得带标记的训练集和测试集后,将其输入已训练好的神经网络,即可完成故障分类[10]。

通过多次试验,设定神经网络结构为(87,91,3)。Pydev环境下,优化后的神经网络与传统反向转播(back propagation,BP)神经网络的电机故障诊断仿真结果对比如表1所示。从表1可以看出,优化后的神经网络在各方面均优于传统BP神经网络。其中,传统BP神经网络算法的总体精确度为67%;优化后神经网络算法的总体精确度为73%。

表1 故障诊断仿真结果对比(Pydev)Tab.1 Comparison of the fault diagnosis simulation results(Pydev) %

2.2 支持向量机比较

在Matlab环境下,使用核函数为Gaussian的支持向量机(support vector machine,SVM)进行分类。该方法首先设置贡献率为95%,对数据进行降维,然后分别使用10折交叉验证的方法与随机划分的方法划分训练集,最后分别对使用10折交叉验证与未使用交叉验证所得的结果进行比较。在Matlab环境下,SVM采用交叉验证前后的故障分析仿真结果对比如表2所示。对比结果表明,交叉验证法在一定程度上会消耗更多时间,但能大大提高故障诊断准确率。

表2 故障诊断仿真结果对比(Matlab)Tab.2 Comparison of fault diagnosis simulation results(Matlab)

3 结束语

本文针对牵引电机内圈、外圈故障分类问题,引用了K折交叉验证与随机梯度下降相结合的神经网络方法,进行电机故障诊断。通过仿真发现:交叉验证会在一定程度上影响训练速度,但能够避免陷入局部最小,并增强模型的泛化能力。随机梯度下降搜寻解空间比较盲目,有可能导致结果陷入局部极小,存在过拟合风险,但是能大大提高大样本的训练速度。仿真结果证明,两种算法的结合可以互相取长补短:通过交叉验证,解决了SGD带来的局部极小与过拟合的问题;通过SGD,弥补了交叉验证造成的硬件消耗与时间消耗。与电机机械故障诊断的传统分类方法相比,本文所采用的方法效果更好,对工程应用有一定指导意义。

参考文献:

[1] 沈标正.电机故障诊断技术[M].北京:机械工业出版社,2001.

[2] 钱华明,王雯升.遗传小波神经网络及在电机故障诊断中的应用[J].电子测量与仪器学报,2009,23(3):81-86.

[3] BALLAL M S,KHAH Z J,SURYAWANSHI H M,et al.Adaptive neural fuzzy inference system for the detection of inter-turn insulation and bearing wear faults induction motor[J].IEEE Transactions on Industrial Electronics,2007,54(1):250-258.

[4] DING S,CHANG X H,WU Q H.Fault diagnosis of induction motors based on RBF neural network[J].Applied Mechanics and Materials,2014(11):85-88.

[5] 许凡,方彦军,张荣.基于EEMD模糊熵的PCA-GG滚动轴承聚类故障诊断[J].计算机集成制造系统,2016,22(11):2631-2642.

[6] ARAKI T,IKEDA N,SHUKLA D,et al.PCA-based polling strategy in machine learning framework for coronary artery disease risk assessment in intravascular ultrasound:a link between carotid and coronary grayscale plaque morphology[J].Computer Methods & Programs in Biomedicine,2016,128(22):137-158.

[7] WONG T T.Parametric methods for comparing the performance of two classification algorithms evaluated by K-fold Cross Validation on multiple data sets[J].Pattern Recognition,2017,65(11):97.

[8] 陈振宏,兰艳艳,郭嘉丰,等.基于差异合并的分布式随机梯度下降算法[J].计算机学报,2015,38(10):2054-2063.

[9] BOTTOU L.Large-scale machine learning with stochastic gradient descent[M]//Proceeding of COMPSTAT’2010.New York:Physica-Verlag HD,2010.

[10]LIU Y,GAO J,LIU D.Design of software system of mobile robot with mixed programming based on eclipse+pydev[J].Communications in Computer & Information Science,2011(164):231-238.

猜你喜欢

降维交叉故障诊断
混动成为降维打击的实力 东风风神皓极
基于包络解调原理的低转速滚动轴承故障诊断
菌类蔬菜交叉种植一地双收
Helicobacter pylori-induced inflammation masks the underlying presence of low-grade dysplasia on gastric lesions
降维打击
“六法”巧解分式方程
数控机床电气系统的故障诊断与维修
基于量子万有引力搜索的SVM自驾故障诊断
连数
连一连