基于动态增添法的DBN 滚动轴承故障诊断
2021-08-31高庆生刘晓波
高庆生, 刘晓波, 梁 珊
(南昌航空大学 航空制造工程学院,南昌 330063)
引 言
滚动轴承广泛应用于旋转机械当中,由于其启动灵活、滚动摩擦阻力小、机械效率高等特点,使其对旋转机械的工作性能产生越来越重要的影响,但极易受到损坏,从而导致各类事故频发,造成重大人员伤亡和经济损失。并且滚动轴承多在强噪声背景下工作,致使其微弱的故障特征被埋没在噪声中难以提取[1],给滚动轴承的故障诊断增加了难度,因此,如何研究出更高效的滚动轴承故障诊断方法成为了当前亟待解决的问题。
国内外学者针对时域[2-3]、频域[4-5]、时频域[6-9]的诊断方法也做了许多研究。但是,所有的故障诊断都离不开故障特征提取这个过程,故障特征提取是滚动轴承故障诊断的关键环节。而深度学习在信号特征提取方面表现非常突出,在故障诊断当中的应用也越来越广泛。Tamilselvan 等[10]首次提出将深度信念网络(DBN)应用于旋转机械转子系统故障诊断领域,并在国内外引起了广泛关注。Haidong Shao 等[11]则在此基础上,提出一种混合DBN 模型,即将粒子群优化算法(PSO)与DBN 相结合,提高了旋转机械故障特征提取的准确度;同时,Shao 等[12]首次在轴承故障诊断中运用了集合深度自动编码器。Haidong Shao 等[13]则提出了一种连续深度信念网络(CDBN)新方法,并在故障诊断中取得了非常好的效果。深度信念网络虽然在故障诊断效果方面要比传统的故障诊断模型要好,但是深度信念网络层数的不确定性而引起的故障诊断精度不高的问题依然没有得到有效解决。
基于上述分析,提出一种基于动态增添算法的DBN 滚动轴承故障诊断方法,其主要思想是:首先通过动态增添算法确定隐含层层数,通过逐层递减原则,设置模型的隐含层神经元节点数目,保持深度信念网络最简结构的同时,并满足精度要求,且在提取信号特征的同时使信息更加简化和方便分类,最终实现滚动轴承故障的有效诊断。
1 DBN 模型结构优化
1.1 DBN 隐含层层数的优化
为了提高故障诊断精度,可以通过动态增添法确定合适的网络隐含层层数,首先计算输出结果的均方误差如下:
式中:E为均方误差,n为样本容量,x为网络输出层的总节点个数,y为理论情况下的输出值,a(x)为实际情况下的输出值。当进入反向传播训练时,DBN 的学习次数达到指定数量时就会计算一次E,同时也会计算一次均方误差下降率γ,其计算表达式如下:
式中:T0代表隐含层迭代时每次递增次数,E(T−T0)是迭代T−T0次时的均方误差,E(T)是迭代T次时的均方误差,动态增添法理论即以E与γ为监测参数,当E与γ均达不到指定条件,则在原有基础上增加一个隐层层数,重复此迭代过程,直至达到指定要求。总结如下:
式中:nR为隐含层层数,γ1与γ2分别为迭代T−T0与T次时的均方误差下降率,γg与γm为根据需求设置的最慢与最快误差下降率阈值。
基于动态增添算法的DBN 能以较快误差下降速度达到目标精度,并且可以针对样本类型来自适应优化本身结构,不仅提高了学习效率,而且也改善了容易导致局部最优的不足。
1.2 隐含层神经元节点设置
对DBN 的隐含层层数优化之后,神经元节点的合理选取成为DBN 模型训练的关键点。神经元节点数过低和过高,会导致网络拟合效果较差或者过拟合的问题,最终影响到故障诊断效果,实际应用中常选用数量较少的神经元节点构建DBN模型。
对于一致型的DBN 模型来说,其故障诊断的精度较高,但学习速度比较低,研究发现,DBN 模型隐含层神经元节点如果采用逐层递减的方式则能提升网络学习速度,并且取得很高的故障诊断精度,反之,则会导致故障诊断稳定性下降。因此,选择构建DBN 模型的方法为:首先根据较小值原则,在起始隐含层采用数量较少的神经元节点,然后再根据逐层递减的方式依此降低神经元节点数目。
针对模型不同隐含层神经元的设置数目,可由如下的近似表达式计算:式中:Z为神经元节点数目,nR为隐含层层数,q为一个可调节参数,其取值范围为[−20,20],可根据实验结果不断调整。图1 流程图为基于动态增添法的DBN 训练过程,其中batch 为数据批次,m为样本组数,迭代次数大于100 时转入有监督算法,通过动态增添法确定隐含层层数。
图1 基于动态增添法DBN 训练流程图
2 实 验
2.1 实验数据说明
实验采用美国凯斯西储大学轴承数据中心的数据集[14],实验平台如图2 所示,为了模拟实际故障情况,该实验在轴承各表面加工出了不同大小的故障点。并将传感器安装在3 个不同位置,包括电机壳体驱动端、风扇端及电机支撑底盘,最终获取7 种不同的工况类型组成实验样本。
图2 美国凯西斯西储大学滚动轴承实验平台
2.2 样本数据分组
在数据集中选取故障直径为0.007 英寸的单点故障样本和正常样本为例,根据其时域频域幅值图,分析在故障类型不同的情况下,滚动轴承故障的振动特性,并以此来对数据样本进行分组。
由图3 可知:在时域方面,不同故障类型对应的冲击幅值有很大差异,且故障冲击密集度也不一样;在频域方面,不同故障类型对应的故障特征频率范围也有很大差异,比如:轴承正常状态下时,其频率主要分布在1 kHz 以下,少部分分布在1~2 kHz 之间,说明正常状态下的滚动轴承其主要频率集中在低频段;轴承处在故障状态下时,其频率主要分布在2.5~4 kHz 之间,少部分分布在高频段和低频段。说明在故障类型不同的情况下,滚动轴承故障的振动特征都有很大不同,据此可以判断滚动轴承是否产生故障,但存在不能准确定位故障位置的问题,而DBN 模型在故障特征识别方面更有优势,因此,可以利用DBN模型对故障进行识别。
图3 原始振动信号幅值图
为了提高故障诊断的精度,训练样本的数量需要得到保证,因此,本实验将安装在三个不同位置的传感器所采集的信号组成了样本数据,因为同种故障类型范围内,其振动特性几乎相近,且反映到提取出来的特征频率中同样保持一致,因此,可以将其添加到相同故障类型下DBN 的训练样本集中。设置实验电机转速为1797 r/min,采样频率为12 kHz,不同故障类型各采样122 000 次左右,轴承转一圈共采集的样本点数为:
为了减少数据误差和信息漏采情况,保证采集数据的信息完整性,将每组样本设置为512 个采集点,在对故障信号处理与计算之时,需要去掉首尾两端的数据,也就是采用综合状态比较稳定的数据,并根据单组数据再进行截断分组处理。并用一个7 维数组标签标记样本的类别属性,分类情况如表1 所示。
表1 样本分组及标记情况
DE 表示传感器放置在驱动端; FE 在风扇端;BA 在支撑底盘位置。正常轴承在DE 处采集的样本组数为400,是故障状态组数的两倍,且由于正常状态下的振动信号比较简单且没有干扰成分,因此只需要在DE 处采集的信号即可。最后将采集的样本根据类别进行分配,即训练样本与测试样本两类,分配比例为3∶1,样本的类别标签则表示DBN 模型的理想输出结果,利用DBN 模型提高故障诊断精度的主要思想就是不断缩小DBN 模型输出结果与标签的差异。
3 结果与分析
训练DBN 之前需要初始化参数,初始化方式如下:
式中,m和n分别为受限玻尔兹曼机(RBM)的输入、输出层神经元数目,rand(wm,n)用于生成均值为1 方差为0.01 正态分布,无监督RBM 训练阶段及误差反向传播阶段学习率均设置为10%,由最长的样本长度及故障类型的数目可知RBM 输入、输出层的节点数分别为512 点和7 点,RBM 隐含层节点按照式(4)设置,并将可视层与隐含层偏置设置为0。
由于样本数目比较多,同时为了精简计算,选择对数据分批处理,将初始化后的DBN 参数导入到RBM 中进行训练,并结合CD-k(k= 1)算法和激活函数求取RBM 隐层输出,最终达到最大RBM 训练次数要求,最大训练次数为可设置的初始参数。
针对RBM 的训练目的是为了提取相关特征,并根据输出层进行预测和分类,。因此,输入数据x经过DBN 进行相关处理之后,可以根据提取的特征信息对相应输出值进行预测,从而判断x对应真实类别的可能性。而均方误差可以表明这种预测值与真实值的接近程度,因此,可以根据计算出的均方误差是否在设定精度范围内来判断是否满足精度要求,如果不在范围内,则根据动态增添算法增加深度信念网络层数,将上一个RBM 的输出重新作为输入,继续导入到RBM 中进行学习,重复这个过程,直到误差在设定范围之内,此时完成了对DBN 模型的初步构建任务,最后根据有监督算法优化该模型。
DBN 训练过程结束之后,最终输出如图4 所示的DBN 结构对应的训练均方误差曲线,由图4可知:在迭代初期阶段,均方误差快速下降,虽然中后期阶段,均方误差曲线开始平缓下降,但当迭代到100 次时,已经接近目标精度,迭代到155 次时达到最佳效果,此时均方差约为0.000 36,确定的隐含层层数为3 层,证明了基于动态增添法的DBN模型具有较高的故障诊断效率和诊断精度。
图4 DBN 模型训练样本均方误差曲线
为了更加直观说明DBN 在故障分离方面的优势,根据上述实验数据构造新的网络模型,并设置最大迭代次数为100 次,重复上述实验训练过程。模型经过训练后,针对训练样本及测试样本输出DBN 模型故障诊断结果,最终得到如图5 所示的分类错误率曲线,且分类错误率的计算公式为:
图5 训练集与测试集故障诊断结果对比图
式中,N为样本总数,DBN 根据输入的数据样本获取对应的预测值,如果预测值与真实值(标签值)不相等,则代表分类错误。
由图5 诊断结果可知:从首次迭代开始,训练集与测试集分类错误率均在10%以上,且测试集错误率相对训练集要高很多;随着迭代次数的增加,分类错误率开始快速下降;当迭代次数到达20 时,曲线开始平缓下降,迭代次数到达90 次时,训练集错误率为2.5%,而测试集为8.6%,均低于10%,证明了DBN 模型在故障分离方面效果较好。而之所以训练集的分类效果更好,是由于DBN 模型在训练过程中使用的是训练集样本,对这些数据比较“熟悉”。
为了验证基于动态增添法确定隐含层深度的优势,将不同隐含层深度的DBN 模型故障分类情况进行对比,其数据来源于训练集样本,并获取DBN 模型优化程度最高时的分类正确率曲线,结果如图6 所示。
图6 不同深度DBN 模型的故障分类正确率曲线
首先说明图中DBN(2)表示模型有2 层隐含层,其余类似,由图6 可知:3 种不同深度的模型诊断过程有所不同,在迭代起点,3 种模型分类正确率差异很大,DBN(2)分类准确率明显低于另外2 个模型。开始迭代之后,3 种模型分类正确率均迅速上升,但DBN(4)上升速度最快。当迭代20 次之后,曲线开始平缓上升并趋于稳定,但DBN(4)分类正确率最高。
通过对比上述结果可知,DBN(4)故障分类分离能力最强,DBN(2)相对最弱,说明增加隐含层可以提高故障诊断正确率。但对比DBN(2)到DBN(3)以及DBN(3)到DBN(4)之间的增幅可知,前者分类正确率的增加幅度比较大,说明在一定程度之后,增加隐层来提高诊断正确率的效果会越来越差。且随着隐层的不断增加会使DBN 结构复杂化,给模型的优化带来了难度,且容易导致在迭代初期产生振荡现象,综合以上分析可知,DBN(3)的综合性能相对较好。
为具体表现3 种模型在测试集中对不同故障类型的分类识别能力,从七种故障类型测试样本中各选取50 组数据组成验证集N1,将验证集N1输入到DBN 模型中测试,并对最终输出结果进行可视化处理。处理结果如图7、图8、图9 所示,图中散落的红色标记个数代表DBN 模型针对每种工况分类错误的数目。
由图7、图8 与图9 可知:3 种DBN 模型针对验证集N1错分个数分别为35、28、40,表明3 种DBN 模型均存在错分现象,且可计算出DBN(3)平均分类正确率最高,其正确率为92%,其次为DBN(2)的90%以及DBN(4)的88.6%,对比可知DBN(3)分类能力相对最强,DBN(4)最弱。再次验证DBN(3)对比另外两种模型在故障分离方面的优势。
图7 DBN(2)模型针对N1 的故障诊断结果
图8 DBN(3)模型针对N1 的故障诊断结果
图9 DBN(4)模型针对N1 的故障诊断结果
通过以上分析可知:为了提高故障诊断精度,可以适当增加隐含层,但到一定程度之后其带来的效果并不明显,且还会导致模型结构更加复杂,优化困难。本文采用动态增添法来确定隐含层层数,不仅能够在保持最佳精度的条件下寻找到最简网络结构,而且能适应在不同样本集中的故障诊断,获得很好的诊断效果,因此,本文所提方法对基于DBN 模型进行故障诊断具有一定意义。
4 结 论
提出一种基于动态增添算法的DBN 诊断方法。首先通过动态增添算法确定DBN 模型隐含层层数,然后按照逐层递减原则设置模型的隐含层神经元节点数目,实现了信息的压缩简化和便于分类;以滚动轴承数据样本为研究对象,将大量训练样本分组导入到DBN 模型中,得出DBN 模型训练样本均方误差曲线,通过对该曲线进行分析,证明了基于动态增添法的DBN 模型能提高故障诊断的精度和效率;通过对比不同深度的DBN 模型的故障分类正确率曲线,证明本文所提方法所确定的隐含层深度具有较好的综合性能,在简化网络结构的同时故障诊断精度较高,对不同样本集的故障诊断中均能获得较好的诊断效果。