本发明属于轴承生产故障诊断技术领域,涉及一种基于一维数据增强和cnn的电机轴承故障诊断方法。
背景技术:
随着智能制造的快速发展,工业大数据背景下,智能化的故障诊断技术作为保障机械设备安全运行的重要工具,逐渐成为工业领域的热点问题,涌现出大量相关的研究。而电机的滚动轴承作为旋转机械的重要零部件,其运行状况对大型工业设备的生产安全和工作效率都有着直接的影响。滚动轴承的故障诊断也因此作为规避工业生产风险的重要手段成为研究的重点之一。
机器学习算法凭借它在自动提取数据特征方面的优势,在数据驱动的故障诊断算法中占据重要比重。支持向量机、主成分分析、随机森林等传统的机器学习算法都被逐一应用于故障诊断问题,且在特征提取和故障分类等方面都取得了良好的效果。但研究发现,各类机器学习算法中的重要参数的选择仍然很大程度上受制于研究人员的经验,且参数确定后的模型的泛化能力往往达不到要求。
而堆叠自编码器(sae)、循环神经网络、生成对抗网络和卷积神经网络等深度学习模型在故障诊断问题上的成功应用缓解了机器学习算法的不足。这些神经网络通过深入挖掘故障诊断数据的特征信息,避免了人工特征提取的片面性和不确定性,模型的泛化能力也得到了很大的提升。但深度学习算法往往需要大量的充足的数据来训练网络,当训练数据偏少或故障类型过多时,诊断精度会受到明显的影响。其中,cnn由于特殊的神经网络结构,对于二维图像的分类有着巨大的优势,但首先,轴承故障诊数据多为一维的振动数据集,需要先进行一维数据到二维数据的转换才能使用cnn做后续处理;其次,当训练数据集存在分类的类型复杂且各类型的数据不充足时,cnn的分类精度会出现明显的下滑。因此,针对故障类型复杂且收集数据不充足的情况,还未有过以cnn为基础的故障诊断模型优化及应用的实例。且现有的技术方案在解决此类情况时都存在较为明显的缺陷,例如:未经优化的单个神经网络的故障诊断精度较低,且不涉及池化操作的神经网络在分类时更易出现严重的过拟合问题;而数据增强上,大多使用gan等方法应用于事先转换后的二维的数据集,由于在数据增强阶段复杂的模型结构和大量的卷积运算,对整个模型的故障诊断效率影响较大。即无法做到效率和精度的平衡优化。
因此,研究一种能够兼顾效率和精度的轴承故障诊断方法的具有十分重要的意义。
技术实现要素:
为解决现有技术中存在的问题,本发明设计了一种基于一维数据增强和cnn的故障诊断方法,首先使用带softmax分类器的bp神经网络对传统的sae做了优化处理,并使用优化后的sae对一维振动信号直接做了数据增强;然后,将一维数据增强模块和cnn结合,提出了一种新的模型,并将其应用于故障诊断领域。本发明在故障类型多样且各类的样本数据不足的情况下,能显著提高故障诊断精度的同时兼顾诊断效率。该系统可应用于工业大数据环境下电机轴承的故障诊断。
为达到上述目的,本发明采用的方案如下:
一种基于一维数据增强的cnn的电机轴承故障诊断方法,先将预处理后的一维振动信号分为训练数据集和测试数据集,将测试数据集输入数据转化模块直接转化为二维图像测试数据,并输入至训练好的卷积神经网络模块进行故障诊断测试;所述故障诊断测试是指训练好的卷积神经网络模块的输出层输出分类结果为16×1的一维向量,所述一维向量有且仅有一个值为1,其余值为0,1所在的位置即为测试结果;
所述一维振动信号带有故障诊断类型标签;
所述训练好的卷积神经网络模块是以二维图像数据集为训练集训练得到;所述二维图像数据集是将增强数据集和训练数据集整合后,输入数据转化模块直接转化得到;
所述增强数据集是将训练数据集输入一维数据增强模块输出得到;所述一维数据增强模块包括用带softmax分类器的bp神经网络改良后的sae。
即,基于一维数据增强的cnn的电机轴承故障诊断方法包括如下步骤:
(1)将一维振动信号进行数据预处理后,分为训练数据集和测试数据集;
(2)将训练数据集输入一维数据增强模块输出增强数据集(所述增强数据集由sae的解码器输出得到);
(3)将增强数据集和训练数据集整合后,输入数据转化模块直接转化为二维图像数据集;
(4)将二维图像数据集输入卷积神经网络模块进行训练;
(5)将测试数据集输入数据转化模块直接转化为二维图像测试数据,对训练好的卷积神经网络模块进行故障诊断结果测试。
作为优选的技术方案:
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,所述一维数据增强模块的构建过程为:
(1)选择所述训练数据集;所述训练数据集的样本不多于100个;
(2)构建三层的sae和三层的带softmax分类器的bp神经网络,并初始化所述sae和所述bp神经网络的参数;
(3)选用均方差函数计算sae的重构误差(即解码器的输出和编码器的输入的误差),单个输入的误差函数l1为:
式中,w为超平面的法向量,初始化为维数与每组输入数据的故障特征参数数据个数相同的单位向量,b为超平面的截距,初始化为0,x为解码器输入数据,y为编码器输入数据,hw,b(x)为解码器输出,||·||为欧氏距离;
对于一组输入{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))},总的误差函数为:
式中,m为输入数据的个数;
(4)选择交叉熵函数计算bp神经网络的softmax层的故障诊断类别和所述训练数据集中标签的分类误差l2,具体的函数如下:
式中,k为分类的类别的数量;qis为一个分类参数,当类别s和第i个样本数据的类别相同时,qis取1,否则qis取0;pis为观测第i个样本属于类别s的预测概率;
(5)优化后的sae训练过程中的总误差l为:
l=l1(w,b)+l2;
(6)每次训练过程中,为了使l最小化,通过反向传播算法更新优化后的sae的网络参数,计算公式如下:
式中,
(7)判断是否达到预设训练次数,如果是,则停止训练;反之,则返回步骤(2),训练终止时每层神经网络的神经元的连接权值及偏差即为所述的各神经元的连接权值及偏差,得到训练完成的带softmax分类器的bp神经网络改良后的sae,并由其构成数据增强模块。
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,所述卷积神经网络模块包括卷积神经网络模型,所述卷积神经网络模型包含一个输入层,两个交替的卷积层和池化层,一个全连接层和一个输出层。
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,所述以二维图像数据集为训练集训练的过程为:将二维图像数据集输入卷积神经网络模型,以输入的二维图像对应的故障类型标签为理论输出,训练cnn模型,确定各神经元的连接权值及偏差,具体步骤为:
(1)初始化cnn模型的参数;
(2)选取所述二维图像数据集;
(3)输入二维图像数据集,使用adam优化器进行训练,在每一步迭代过程中调整每层神经网络的权值和偏差使得故障精度比本次迭代计算前更高;所述故障精度的计算方式为:经模型分类后赋给输出数据的故障诊断类型标签和采集的故障类型标签一致的数据个数和总样本数据个数的比值;
(4)判断训练次数是否达到预设值,如果是,则停止训练;反之,则返回步骤(3),训练终止时每层神经网络的神经元的连接权值及偏差即为所述的各神经元的连接权值及偏差。
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,所述卷积神经网络模块运行时,零值将自动填充卷积过程,设ε为输出尺寸,δ为输入尺寸,η为跨距,γ为滤波器宽度,左侧零填充数pl和右侧零填充数pr由此计算,填充公式如下:
pt=(ε-1)×η+γ-δ;
pr=pt--pl;
式中,ceil(·)是向上取整函数,floor(·)向下取整函数,pt为零填充数上限。
如果初始化的训练步长和输入的图像大小不匹配,即卷积核按步长逐行平移进行卷积计算的过程中卷积核发生越过图像边缘的情况时,应使用零填充方法防止图像转换的尺寸损失问题。
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,所述数据转化模块直接转化的过程为:
(1)从一维振动信号中随机截取一段长度为n2的信号,将信号值依次逐行填充入n×n的矩阵中,即每n个信号值填充为矩阵的一行;
(2)将获得的矩阵做标准化处理,并归一化到0~255,即灰度图像像素值的范围内,即可得到n×n的图像;转换的公式如下:
式中,d(e,f)是得到的图片的第e行第f列的像素点的值;s(i)是被截取的信号段中第i个样本点的值,max(·)是最大值函数,min(·)是最小值函数;round(·)是按照四舍五入原则保留整数部分的取整函数。
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,所述预处理是指对一维振动信号中每个信号点的故障特征参数组成的数据矩阵做归一化处理,处理的公式如下:
式中,x*为归一化处理后的数据,x为归一化处理前的数据,xmin为x的最小值,xmax为x的最大值。
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,所述故障诊断类型标签包括滚珠故障(rf)、外周故障(of)和内周故障(if)。
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,初始化所述sae和所述bp神经网络的参数是指:预设训练次数为800,初始化sae的学习率为0.0001,每批训练样本的数量为50;初始化三层的sae每层神经网络的神经元个数为1024、1000和1000,三层的bp神经网络中每层神经元个数分别为600、300和16;初始化每层神经网络的权值为维数和输入数据维数相同的单位向量,偏差为0;初始化隐藏层的激活函数为relu函数,输出层的激活函数为sigmoid函数。所述初始化的内容可以根据具体的应用场景自行修改,如初始化的预设训练次数根据训练数据集的大小,在单个类型的故障诊断样本数在10~1000时,一般可从100~3000中选定一个100的倍数。
如上所述的一种基于一维数据增强的cnn的电机轴承故障诊断方法,所述初始化cnn模型的参数是指:初始化学习率为0.0005、训练步长为1、训练次数为800,每批训练样本集的大小为256;初始化卷积层卷积核大小为5*5,池化层过滤器大小为2*2,全连接层神经元个数为2048;初始化每层神经网络的权值为维数和输入数据维数相同的单位向量,偏差为0。
本发明的原理是:
本发明首先使用带softmax分类器的bp神经网络对sae进行优化,再将优化后的sae作为一维数据增强模块直接对收集到的一维振动信号进行数据增强,最后将增强后的数据集转换为二维数据输入cnn做故障诊断。与现有技术相比,首先,优化的sae能同时使用有监督学习和无监督学习,充分利用了收集到的故障数据的数据特征和数据标签,使训练后的sae的解码器输出能更好地保留原始数据集的特性,提高了增强数据集和原始数据集的相似性,创造性地解决了训练数据不足的情况对故障诊断结果的影响。其次,充分发挥了卷积神经网络在图像分类上的显著优势,弥补了目前应用较多的sae、dbn等分类方法由于神经网络结构上的限制(即无池化层来减少过拟合问题的发生)而导致的精度上的不足,又降低了现有的gan等二维数据增强方法由于卷积运算过多而对故障诊断效率的影响,尤其针对故障类型复杂且样本数据不足的情况,优化效果明显。最后,由于在数据转换过程中采用了一种直接转换的方法,尽可能避免了转换过程中数据特征的损失,且相较于现有的小波包转换、傅里叶变换等方法,简化了复杂的计算过程,提升了模型整体的运行效率。
有益效果
(1)本发明的一种基于一维数据增强的cnn的电机轴承故障诊断方法,创新性地将优化后的sae用于一维数据增强,利用sae特殊的神经网络结构在数据增强时最大程度上保留数据原有的特征。它在故障分类上充分利用了卷积神经网络在图片处理上的优势,且不涉及多余的卷积运算,能便捷地对收集的大量振动信号做统一处理。它使用一种简单直接的数据转换方法,不涉及任何需要专家经验的参数选择,几乎保留了原数据的所有有效特征,提高了故障诊断的智能化和高效性。本发明针对现有研究的问题给出了很好的解决方式;
(2)本发明的一种基于一维数据增强的cnn的电机轴承故障诊断方法,将一维数据增强模块和cnn结合应用于故障诊断问题,着力于解决故障类型多样且各类的样本数据不足的情况下的故障诊断。现有的故障诊断算法大多针对数据集充足、故障类型简单(少于等于五种故障类型)的情况,而工业背景下的故障问题往往由于数据收集成本高、机械设备复杂等原因,出现样本数据不足且故障类型复杂的情况,本发明的优化方案尤其针对这类数据情况使模型表现优良,具有较高的实用价值。
附图说明
图1为一种基于一维数据增强和cnn的电机轴承故障诊断方法的流程图;
图2为一种基于一维数据增强和cnn的电机轴承故障诊断方法的流程图;
图3为一种基于一维数据增强和cnn的电机轴承故障诊断系统的结构示意图;
图4为使用带softmax分类器的bp神经网络优化后的sae的结构示意图;
图5为训练改良的sae的流程图;
图6为一维数据集转换为二维数据集的方法示意图;
图7为cnn模型的结构示意图。
具体实施方式
下面结合具体实施方式,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
一种基于一维数据增强的cnn的电机轴承故障诊断方法,流程图如图1和图2所示,诊断系统的结构示意图如图3所示,具体步骤如下:
(1)一维振动信号的预处理;
对一维振动信号中每个信号点的故障特征参数组成的数据矩阵做归一化处理,处理的公式如下:
式中,x*为归一化处理后的数据,x为归一化处理前的数据,xmin为x的最小值,xmax为x的最大值;
(2)将预处理后的一维振动信号分为训练数据集和测试数据集;其中一维振动信号带有故障诊断类型标签,故障诊断类型标签包括滚珠故障、外周故障和内周故障;
(3)一维数据增强模块的构建:
(3.1)选择所述训练数据集;所述训练数据集的样本不多于100个;
(3.2)构建三层的sae和三层的带softmax分类器的bp神经网络,结构图如图4所示,并初始化所述sae和所述bp神经网络的参数;
初始化所述sae和所述bp神经网络的参数是指:预设训练次数为800,初始化sae的学习率为0.0001,每批训练样本的数量为50;初始化三层的sae每层神经网络的神经元个数为1024、1000和1000,三层的bp神经网络中每层神经元个数分别为600、300和16;初始化每层神经网络的权值为维数和输入数据维数相同的单位向量,偏差为0;初始化隐藏层的激活函数为relu函数,输出层的激活函数为sigmoid函数;
(3.3)选用均方差函数计算sae的重构误差,单个输入的误差函数l1为:
式中,w为超平面的法向量,初始化为维数与每组输入数据的故障特征参数数据个数相同的单位向量,b为超平面的截距,初始化为0,x为解码器输入数据,y为编码器输入数据,hw,b(x)为解码器输出,||·||为欧氏距离;
对于一组输入{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))},总的误差函数为:
式中,m为输入数据的个数;
(3.4)选择交叉熵函数计算bp神经网络的softmax层的故障诊断类别和所述训练数据集中标签的分类误差l2,具体的函数如下:
式中,k为分类的类别的数量;qis为一个分类参数,当类别s和第i个样本数据的类别相同时,qis取1,否则qis取0;pis为观测第i个样本属于类别s的预测概率;
(3.5)优化后的sae训练过程中的总误差l为:
l=l1(w,b)+l2;
(3.6)每次训练过程中,为了使l最小化,通过反向传播算法更新优化后的sae的网络参数,计算公式如下:
式中,
(3.7)判断是否达到预设训练次数,如果是,则停止训练;反之,则返回步骤(3.2),训练终止时每层神经网络的神经元的连接权值及偏差即为所述的各神经元的连接权值及偏差,得到训练完成的带softmax分类器的bp神经网络改良后的sae,并由其构成数据增强模块,上述sae训练流程如图5所示;
(4)将训练数据集输入一维数据增强模块输出增强数据集;
(5)将增强数据集和训练数据集整合后,输入数据转化模块直接转化为二维图像数据集;
数据转化模块直接转化的过程为,转换方法示意图如图6所示:
(5.1)从一维振动信号中随机截取一段长度为n2的信号,将信号值依次逐行填充入n×n的矩阵中,即每n个信号值填充为矩阵的一行;
(5.2)将获得的矩阵做标准化处理,并归一化到0~255,即可得到n×n的图像;转换的公式如下:
式中,d(e,f)是得到的图片的第e行第f列的像素点的值;s(i)是被截取的信号段中第i个样本点的值,max(·)是最大值函数,min(·)是最小值函数;round(·)是按照四舍五入原则保留整数部分的取整函数;
(6)将二维图像数据集输入卷积神经网络模块进行训练,得到训练好的卷积神经网络模块;
卷积神经网络模块包括卷积神经网络模型,所述卷积神经网络模型包含一个输入层,两个交替的卷积层和池化层,一个全连接层和一个输出层,结构图如图7所示;
卷积神经网络模块运行时,零值将自动填充卷积过程,设ε为输出尺寸,δ为输入尺寸,η为跨距,γ为滤波器宽度,左侧零填充数pl和右侧零填充数pr由此计算,填充公式如下:
pt=(ε-1)×η+γ-δ;
pr=pt-pl;
式中,ceil(·)是向上取整函数,floor(·)向下取整函数,pt为零填充数上限;
以二维图像数据集为训练集训练的过程为:将二维图像数据集输入卷积神经网络模型,以输入的二维图像对应的故障类型标签为理论输出,训练cnn模型,确定各神经元的连接权值及偏差,具体步骤为:
(6.1)初始化cnn模型的参数;具体为:初始化学习率为0.0005、训练步长为1、训练次数为800,每批训练样本集的大小为256;初始化卷积层卷积核大小为5*5,池化层过滤器大小为2*2,全连接层神经元个数为2048;初始化每层神经网络的权值为维数和输入数据维数相同的单位向量,偏差为0;
(6.2)选取所述二维图像数据集;
(6.3)输入二维图像数据集,使用adam优化器进行训练,在每一步迭代过程中调整每层神经网络的权值和偏差使得故障精度比本次迭代计算前更高;所述故障精度的计算方式为:经模型分类后赋给输出数据的故障诊断类型标签和采集的故障类型标签一致的数据个数和总样本数据个数的比值;
(6.4)判断训练次数是否达到预设值,如果是,则停止训练;反之,则返回步骤(6.3),训练终止时每层神经网络的神经元的连接权值及偏差即为所述的各神经元的连接权值及偏差;
(7)将测试数据集输入数据转化模块直接转化为二维图像测试数据,并输入至训练好的卷积神经网络模块进行故障诊断测试;故障诊断测试是指训练好的卷积神经网络模块的输出层输出分类结果为16×1的一维向量,一维向量有且仅有一个值为1,其余值为0,1所在的位置即为测试结果。
具体案例如下:
选取采样频率为12khz、负载为0hp的凯斯西储大学电机实验平台收集的公开的电机驱动端轴承故障诊断数据作为实验数据。数据总共包含16种故障诊断类型,其中含15种故障环境和一种正常环境(no)。故障类型可大致分为滚动体故障(rf)、内圈故障(if)和外圈故障(of)。其中,由于轴承外圈发生故障的位置是相对固定的,且该位置的不同对电动机轴承系统的振动响应的影响较大。因此,收集数据时将轴承外圈的故障信号采集点分别放置在3点钟方向、6点钟方向、12点钟方向三个不同的位置,将这三个方向上发生的外圈故障视作不同的故障类型,每种故障类型有不同的损伤直径,不同的损伤直径也视作不同的故障环境。具体的,滚动体故障和内圈故障包含的损伤直径为0.007、0.014、0.021、0.028英寸,3点钟方向的外滚道包含的损伤直径为0.007、0.021英寸,6点钟方向的外滚道包含的损伤直径为0.007、0.014、0.021英寸,12点钟方向的外滚道引入的损伤直径为0.007、0.007、0.021英寸。实验中每组信号含1024个数据点。每种故障环境下的训练样本被选取了约89组信号,正常环境下的样本含354组信号,共计1682组信号构成训练样本数据集。测试样本按照不重复抽样的原则,随机抽取16种故障诊断环境下的信号共计568组。即,按上述选取原则选择的实验数据集有着故障类别繁多、样本数据较少且正常情况下的样本数据明显多于故障情况下的样本数据的特点。实验结果表明,本发明提出的模型虽然训练时间为691秒,比单一的神经网络只延长了约1/3,且测试时间仍然非常短暂,和其他神经网络模型一样仅为0.06s左右,训练精度为98.89%,测试精度为97.25%,都得到了有效的优化,即模型在保证运行效率的前提下提升了故障诊断的性能。