基于组序列多分支CNN-LSTM的风机轴承和齿轮箱故障诊断研究*
2022-08-25许启发程启亮蒋翠侠汪湘湘
许启发,程启亮,蒋翠侠*,汪湘湘
(1.合肥工业大学 管理学院,安徽 合肥 230009;2.合肥工业大学 过程优化与智能决策教育部重点实验室,安徽 合肥 230009)
0 引 言
风力发电机大部分都部署在海上或者较为偏远的地区,由于环境恶劣,其故障率较高。在风力发电机中,最常见的故障往往发生在机组的轴承和齿轮箱中[1]。
定期对轴承和齿轮箱进行检查会造成较大的损失,同时,机组过于频繁启停会大大降低风机关键部件的使用寿命。因此,如何有效地对风机(主要是其中的轴承和齿轮箱)进行状态监测和故障诊断,已成为业界普遍关注的问题[2,3]。
在风力发电机的故障诊断方法中,振动监测方法得到了广泛的应用[4]。基于振动监测的故障诊断方法主要有:基于规则的方法和数据驱动的方法[5]。其中,基于规则的方法建立在专家经验和机理分析之上,通过模型分析预设一些统计指标,并基于阈值规则来识别故障信号,该方法在很大程度上依赖于所建立的数学模型的准确性[6]。
数据驱动方法包括特征提取、特征选择和故障分类3个部分[7]。
特征提取的目的是为了将与故障特征相关的特征提取出来,常用的方法有短时傅里叶变换、经验模态分解、包络谱分析、S变换等[8,9]。然而,不是所有提取出来的特征都可以用于诊断,因此,需要通过特征选择降低所提取特征的维数,保留更为重要的特征。目前,比较流行的特征选择方法有主成分分析[10]、独立成分分析[11]和流形学习[12]。
在特征选择后,可将过滤后的特征作为输入训练分类器进行故障诊断。张建忠等人[13]提出了一种基于多类模糊支持向量机(support vector machine, SVM)分类器的风电机组故障诊断方法。曹玲玲等人[14]采用集合经验模态分解和快速谱峭度方法,实现了对轴承的故障诊断。这些方法在不同的数据集上都有很好的表现,有些方法已经在工业领域得到了应用。
近年来,深度学习理论[15]得到了快速发展,其在目标检测方面已经能够达到较高的精度[16,17]。深度学习的优势也使其能够成功应用于故障诊断[18,19]。
刘伟等人[20]提出了一种基于并行1D-CNN的滚动轴承故障诊断方法,该方法具有较高的诊断准确率。朱永生等人[21]提出了一种考虑准周期性的,基于LSTM的滚动轴承弱故障诊断方法,实验结果表明,该方法具有较好的故障诊断性能。
随着研究的深入,将CNN和LSTM结合进行故障诊断的方法受到业界的广泛关注[22],原因在于其在处理时间序列数据方面具有较高的准确率。
向玲等人[23]利用SCADA数据和具有注意力机制(attention mechanism, AM)的CNN-LSTM模型,对风力机进行了故障检测。为了提高风电轴承在复杂工作和测试环境下的泛化能力,徐子菲等人[24]开发了一种基于双向LSTM和加权多数投票的多传感器多尺度CNN故障诊断模型。
上述模型和方法虽然都取得了满意的效果。但在其工程实践中还存在需要改进的地方:
(1)大多数模型只关注当前点的数据。只将当前时刻采集的时间序列数据作为模型的输入,进行故障诊断,这并不符合实际诊断逻辑,因为单点采集时间通常只需要几秒,不能以如此短时间内的数据性能,来判断设备是否出现故障。现场的诊断专家不仅需要考虑当前点的数据,还需要考虑附近时刻的数据;
(2)数据资源相对匮乏。大部分训练数据主要来自几台设备或单个风电场或实验室数据,因此,其训练后模型的泛化效果需要进一步验证;
(3)诸多模型方法都充分利用了特征提取,但一般都没有考虑到不同类型的误分类代价不同问题。在故障诊断中,如果将故障信号误判为正常信号,可能会导致灾难性事故的发生。相反,当将正常信号误判为故障信号时,这种误分类代价相对较小。
针对上述问题,笔者提出一种具有注意力机制的组序列多分支CNN-LSTM模型,即GSMBCLAM模型(group sequence and multi-branch CNN-LSTM model with attention mechanism)。
首先,笔者将具有相同采样间隔的连续多个采样波形作为一个组序列样本,同时将这两个组序列样本分别输入两个核大小不同的1D-CNN中提取每个时间点的特征,从而得到两个具有连续多个时间点特征的二维矩阵;其次,将提取的特征和具有领域知识的人工特征分别通过注意力机制进行特征重要性加权融合,将融合后的特征输入LSTM中;最后,通过全连接层和SoftMax函数进行故障分类,并采用焦点损失函数(focal loss,FL)代替传统的交叉熵损失函数(cross entropy, CE),以解决故障诊断中不同类型的误分类代价问题。
1 深度学习理论
1.1 卷积神经网络
卷积神经网络(CNN)是应用最广泛的深度学习模型之一。每个CNN的隐藏层通常都包含一个卷积层和一个池化层。由于振动信号和频谱都是一维时间序列,因此,笔者在此采用一维卷积,其表达式如下:
(1)
Relu函数的表达式如下:
f(x)=x+=max(0,x)
(2)
在卷积层之后,可以运用一个池化层来筛选和过滤特征。最大池化的表达式如下:
(3)
1.2 长短期记忆网络
长短期记忆网络(LSTM)非常适用于处理时序数据。其结构包括遗忘门、输入门和输出门。废弃信息通过遗忘门实现,其表达式如下:
ft=σ(Wf[ht-1,xt]+bf),
(4)
式中:ht-1—前一个LSTM单元的输出;xt—当前输入;σ—sigmoid激活函数;Wf,bf—权重矩阵和偏置。
it=σ(Wi[ht-1,xt]+bi),
(5)
(6)
式中:Wi,bi—输入门的权重矩阵和偏置;Wc,bc—状态的权重矩阵和偏置。
之后通过输出门ot决定当前输出的信息(Ct表示长期状态);同时,根据更新后的单元状态来获得LSTM单元的输出ht,即:
(7)
ot=σ(Wo[ht-1,xt]+bo),
(8)
ht=ot*Relu(Ct),
(9)
式中:Wo,bo—输出门的权重矩阵和偏置。
1.3 注意力机制
为了加强重要信息的权重,此处引入注意力机制(AM)。AM是计算序列中元素之间对齐分数的一种方法,其计算方法如下:
ei=utanh(whi+b)
(10)
(11)
C=∑αihi
(12)
式中:hi—AM输入的第i个特征;u,w—权重系数;b—偏置;ei—通过打分函数得到的注意力分布,与hi一一对应;C—加权特征。
2 故障诊断问题与模型构建
2.1 问题描述
笔者将故障诊断分类问题定义如下:
给定3个多元时间序列段:
(13)
式中:R1,R2,R3—传感器采集的波形、频谱及人工提取特征的集合;l1,l2,l3—采集到的单条波形长度、单条频谱长度及单条特征长度;n—具有相同采样间隔的连续n个采集点。
笔者将基于波形、频谱及特征的组序列数据作为一个独立样本输入到GSMBCLAM模型中,以识别各类型故障及正常数据y(y来自预定义的条件标签集合C)。
2.2 GSMBCLAM模型
2.2.1 模型结构
笔者提出一种GSMBCLAM模型的结构,如图1所示。
图1 GSMBCLAM模型结构
在图1中,输入的波形和频谱利用1D-CNN的多并行得到连续多个点的低维度特征,然后将经过1D-CNN得到的组序列波形和频谱特征与人工提取的组序列特征,通过注意力机制进行特征加权,从而给予更为重要的特征以更大的权重;并将加权后的3类特征进行融合,进而输入LSTM中;并通过SoftMax函数将LSTM输出的特征转换为6种状态下的概率分布(轴承内圈故障、轴承外圈故障、轴承保持架故障、轴承滚动体故障、齿轮故障和正常状态),实现对该样本的故障分类。
2.2.2 FL函数
在现实故障诊断中,将故障信号误判为正常信号的代价非常巨大,为此,笔者在此处采用何恺明等人[25]提出的FL函数(FL函数使模型能够更多地关注在训练过程中难以分类的样本,并能够有效地解决不同的误分类成本问题)。
一般地,在一个多分类问题中,CE损失函数定义如下:
(14)
通过改进CE函数,可以得到FL函数定义如下:
(15)
式中:αi—第i类赋予的权重;γ—固定正值的调制因子。
通过加入参数αi,可以调整各类别样本之间的平衡性,从而解决各类别误分类代价不同的问题。γ用于调整样本的减重率,从而使分类器关注于错误分类和难以分类的样本。
2.2.3 模型训练
笔者采用反向传播算法,对GSMBCLAM模型进行训练(在算法1中提供了优化GSMBCLAM模型的详细方法)。其中:θ为需要训练的权重。
算法1:GSMBCLAM模型的优化过程输入:权重初始值:θ。输出:权重优化值:θt。设置参数:学习率ε,矩估计的指数衰减率ρ1,ρ2,最小常数δ,数据集(x,y)。初始化一阶矩向量:s0←0初始化二阶矩向量:r0←1初始化时间步:t←0当参数没有收敛时:t←t+1 gt←▽θFL(ft(x;θt-1),y) st←ρ1st-1+(1-ρ1)gtrt←ρ2rt-1+(1-ρ2)gt☉gt st(←st/(1-ρt1)rt(←rt/(1-ρt2) θt←θt-1-εst(/(rt(+δ)直到参数收敛时结束返回θt
3 实验与结果分析
笔者利用某公司的振动数据,将所提出的模型应用于风力发电机轴承和齿轮箱的故障诊断中,从3个方面验证GSMBCLAM模型的有效性,具体为:首先,该模型性能明显优于基于单点数据的模型;其次,该模型在故障诊断分类方面优于其他竞争性模型;最后,FL函数可以显著降低误分类的代价成本,提高了GSMBCLAM模型解决多故障分类问题的效率。
3.1 实验数据集
3.1.1 数据集描述
笔者对某公司20多个风电场双馈机组的振动数据进行整理和筛选。
该数据集由波形、频谱和人工特征组成,包括5类单一故障(轴承外圈故障、轴承内圈故障、轴承保持架故障、轴承滚动体故障、齿轮故障)和1类正常状态的数据,如表1所示。
表1 数据集的详细信息
由表1可知:数据集包含54 000个单点原始波形、频谱和人工特征。其中,5类故障和正常数据的数量均为9 000个,每一个原始波形的数据长度均为128 K,即一个原始波形数据包含131 072个振动点;每一个频谱的数据长度均为64 K,即一个频谱数据包含65 536个振动点。
波形、频谱、手工特征相应的时刻点能够一一对应.所有数据的采样间隔均为2 h,将6个具有时间连续性的单点数据作为一个组序列样本,组序列样本内的6个单点数据,按照时间先后进行排序。因此,一个组序列样本包含12 h的数据。
同时,由于数据库中数据样本较为丰富,笔者选取的各类型单一故障样本均取自于此类单一故障发生的时间段内。此外,一个故障期间内可能有少数个别点不具有相应的故障特征,但其他单点依然具有故障特征,在现实诊断中也属于故障状态,因此,此类样本也要被训练。
从每个风电场收集到的数据数量必须是6的倍数,以此来保证最后处理得到的组序列样本内部不会乱序。
其他数据集信息如下:所有数据均来自双馈机组,采样频率为51.2 kHz,转速在1 700 r/min~1 900 r/min之间,每个数据的采样时间为2.56 s。
同时,为突出各类故障和正常状态下的数据表现,笔者绘制了各种类型典型数据的表现。5类故障及正常状态下典型的原始振动信号和频谱表现,如图2所示(图2左边为故障初期的波形和频谱的典型表现,右边为故障后期的波形和频谱的典型表现)。
图2 5种故障和正常状态的典型原始振动信号和频谱
在劣化过程中,振动持续增加,振动幅值不断变大,频谱中的故障特征谱线也逐渐显著。另外,人工制作的特征分别由8个指标组成,分别为RMS值、峰峰值、峭度指标、峰值指标、歪度指标、脉冲指标、波形指标和裕度指标[26-27]。
3.1.2 数据集处理
笔者对数据进行预处理,步骤如下:
(1)分别将6个具有时间连续性的单点数据作为一个组序列样本;处理后每个样本包含一个组序列波形、一个组序列频谱和一个组序列人工提取的特征;样本数量从54 000个变为9 000个,每个类别包含1 500个组序列数据(波形、频谱、手工特征);
(2)由于单个数据的长度太长(一个原始波形有131 072个振动点,一个频谱有65 536个振动点),会导致模型难以收敛。为此,笔者对输入数据进行降采样处理,即对每一个波形和每一条频谱,在其内部每32个振动点中,随机抽取一个振动点。降采样后,每个波形由131 072个振动点降低为4 096个振动点,每个频谱由65 536个振动点降低为2 048个振动点。降采样后的数据仍然保留了原始数据的特征;
(3)将正常信号标记为0,外圈故障标记为1,内圈故障标记为2,保持架故障标记为3,滚动体故障标记为4,齿轮故障标记为5;
(4)笔者随机选取50%的数据作为训练数据,20%作为验证数据,其余30%作为测试数据。因此,此处共有4 500个训练样本、1 800个验证样本和2 700个测试样本(训练样本、验证样本、测试样本均来自于同一数据集,都包含五类单一故障和正常状态的数据)。
3.2 实验设计
3.2.1 模型参数
GSMBCLAM模型参数如表2所示。
表2 GSMBCLAM模型的参数
在表2中,每一个卷积块(Conv_blocks)中都包含一个卷积层、一个BN层和一个池化层。
由于初始权重会影响深度神经网络的结果,笔者进行了10次独立的实验。
此外,通过多次实验比较,模型其他超参数设置如下:优化器为Adam优化器,学习率设置为0.001,最小批处理数目为32,迭代次数为100。
100次迭代训练集和验证集精度和损失的收敛情况,如图3所示。
图3 训练集和验证集的准确率与损失曲线
图3结果表明,100次迭代收敛情况良好。
3.2.2 评估标准与对比模型
为了对比模型效果,笔者选择了5个基准模型,即基于波形组序列的CNN-LSTM、基于频谱组序列的CNN-LSTM、基于单点数据多分支注意力机制的CNN-LSTM、基于单波形的CNN-LSTM、基于单频谱的CNN-LSTM;选择了2个竞争模型,即基于组序列多分支和注意力机制的CNN(GSMBCAM)、基于组序列多分支和注意力机制的LSTM(GSMBLAM)。
同时,为了评价模型性能,笔者选取了4个评价指标,即准确率(accuracy)、精确率(precision)、召回率(recall)、F1分数(F1-socre)。
3.3 实验结果
3.3.1 与基准模型的比较
笔者对5种基准模型及该模型分别进行了10次独立实验,其结果如表3所示。
表3 GSMBCLAM模型与各基准模型的性能表现
表3中的结果清楚地证明了笔者GSMBCLAM模型的优越性,具体表现如下:
首先,使用组序列数据在波形、频谱、多分支模型中均显著优于基于单点数据的模型。组序列数据相较于单点数据,针对于波形,其准确率、精确率、召回率、F1分数升了近7个百分点;针对于频谱,提升了近4个百分点;针对于多分支,提升了5个百分点。这表明,GSMBCLAM模型可以更加准确地判断出设备在该时间段内是否处于故障状态,以及属于哪种故障;
其次,相较于只使用波形或频谱的单分支模型,笔者使用的多分支模型在效果上也有提升。GSMBCLAM模型的准确率、精确率、召回率、F1分数分别为97.75%、97.91%、97.70%、97.80%;
相较于其他模型,由于GSMBCLAM模型采用了组序列多分支数据,其参数量较多,模型实际诊断所需时间较长,但该模型的诊断准确率更高,也更符合现实诊断的逻辑。
众所周知,深度学习模型是一个黑盒子,很难理解其内部机制。因此,笔者对GSMBCLAM的内部结构进行了可视化处理。
典型的轴承保持架故障数据的各输出层特征图,如图4所示。
图4 GSMBCLAM模型隐藏层可视化
图4中,亮色代表相关区域内的神经元被激活,深色代表未被激活。可以看出,当数据输入网络中时,无论是波形还是频谱都首先学习了其中显著的特征;随着网络层数不断加深,特征逐渐清晰;最后,输出结果中第4个区域的神经元被激活,代表该数据经过网络输出后,被判定为保持架故障。
3.3.2 与其他模型的比较
为了进一步体现GSMBCLAM模型的优越性,笔者将其与2个竞争模型(GSMBCAM、GSMBLAM)进行比较。
该模型与各竞争模型的性能表现,如图5所示。
图5 GSMBCLAM模型与各竞争模型的性能表现
图5结果表明:GSMBCLAM模型在准确率、精确率、召回率、F1分数上都明显优于GSMBCAM和GSMBLAM。
同时,GSMBCLAM与GSMBCAM、GSMBLAM模型的受试者操作特性曲线(ROC),如图6所示(图中附带了ROC曲线下方的面积大小值)。
图6 GSMBCLAM模型与各竞争模型的ROC曲线
由图6可以看出,GSMBCLAM模型要明显优于其他2个竞争模型。
为了研究不同深度学习特征提取方法之间的差异,笔者在二维空间中使用t-分布随机邻域嵌入(t-SNE),以此来对上述3种模型的特征进行可视化处理,其结果如图7所示。
由图7可知:GSMBCLAM模型学习到的特征表达式分布显示出的边界最为清晰,因此,提取的特征更容易被分割,也意味着其更容易对各故障类别进行分类;GSMBCAM中特征错分的数据较多,GSMBLAM中部分特征较难以分开。
图7 GSMBCLAM模型与各竞争模型特征的可视化结果
3.3.3 代价敏感问题
在现实故障诊断中,误分类代价不同的问题难以忽视。如果将故障信号误判为正常信号,误分类的代价非常巨大。此外,不同故障的严重程度也各有差别。例如,保持架故障属于快速劣化故障,通常只需要几天就可能导致严重的安全事故,而一些内圈、外圈、滚动体的点蚀、磨碰等故障周期较长,造成的损失相对较少。
为解决上述问题,在考虑误分类代价不同后,笔者将FL损失函数引入建模工作。
笔者对FL函数的超参数分别设置了两种配置:配置一α=[0.5,0.1,0.1,0.1,0.1,0.1],γ=2;配置二α=[0.35,0.15,0.15,0.05,0.15,0.15],γ=2。
配置一调高了正常类别的α值,以此来区分误判正常类别和误判故障类别带来的代价不同问题;配置二调高了正常类别的α值,同时调低保持架故障类别的α值,以此来应对保持架故障劣化快、不同故障的误分类代价也不同的问题。
同时,笔者定义了以下成本矩阵:
c3j=10w,forj≠3,
(16)
ci0=4w,fori≠0,3,
(17)
cij=w,fori≠3,j;j≠0,
(18)
式中:w—最小误分类成本单位。
笔者将保持架故障误判为其他类的代价为10w,将除保持架故障外的其他故障判断为正常信号的代价为4w,其他的误分类代价为w,正确分类的代价为0,以突出保持架故障漏判的危险和严重性,以及其他故障被漏判的严重性。
基于FL和CE损失函数的GSMBCLAM模型性能比较结果,如表4所示(表中T-cost代表错误分类成本的总和)。
表4 基于FL和CE损失函数的GSMBCLAM模型的性能表现
表4结果表明:采用FL损失函数的GSMBCLAM模型优于采用CE损失函数的GSMBCLAM模型;不管是使用参数配置一的FL损失函数,还是使用参数配置二的FL损失函数,其准确率、精确率、召回率、F1分数都达到了98.5%左右;
对于使用参数配置一的FL损失函数而言,T-cost从186.3降到137,说明FL损失函数可以降低故障信号被判断为正常信号的风险,从而降低了漏判的风险;对于使用参数配置二的FL损失函数而言,T-cost降为61.7,相较于CE损失函数下降了近3倍,说明其能够有效降低保持架这种快速劣化故障被判断为其他类别的概率,大大降低了现实工业环境中突发灾难性事故的风险。为了更清晰地描述FL损失函数对于现实故障诊断的重要性,笔者绘制了上述3种情况下的混淆矩阵,如图8所示。
图8(a)代表使用CE作为损失函数的模型效果,图8(b)代表使用参数配置一的FL作为损失函数的模型效果,图8(c)代表使用参数配置二的FL作为损失函数的模型效果。
由图8可以看出:基于参数配置一的FL损失函数模型,将故障信号误判为正常信号即漏判的数量仅为3个,相较于使用CE损失函数的模型有着较大的提升;基于参数配置二的FL损失函数的模型保持架故障判断为其他类别的数量为0个,相较于其他模型有着非常显著的提升,有效地避免了保持架故障被误判的概率。
图8 基于FL和CE损失函数的GSMBCLAM模型的混淆矩阵
上述结果再次验证了GSMBCLAM模型的优越性。
4 结束语
针对单点数据采集时间较短而无法准确判断出设备是否处于故障状态的问题,笔者提出了一种改进的故障诊断分类算法,将组序列、多分支、注意力机制引入到CNN-LSTM的框架中,构建了GSMBCLAM模型。
为了验证笔者所提模型的有效性,选取了一个真实数据集,考虑该模型在风机轴承和齿轮故障诊断中的效果。研究结果表明:
(1)GSMBCLAM模型通过使用组序列数据,并结合了波形、频谱、人工特征3个分支的特征,来对故障进行分类,挖掘了更多有用信息,在性能上优于各种基准模型,也更符合诊断实际;
(2)GSMBCLAM模型借助于CNN-LSTM在识别分类问题上的优越性,从而在效果上优于其他深度学习模型;
(3)GSMBCLAM模型运用FL损失函数代替CE损失函数,并通过调整2个超参数来灵活地考虑决策偏好,可以有效地降低总误分类成本(T-cost),以解决实际故障诊断中误分类代价不同的问题。
笔者提出的模型在真实数据集中取得了良好的结果,但该结果目前只适应于单一故障类型。在实际工业环境中,设备既存在单一故障的情况,也存在多种故障同时发生的情况。
因此,在后续的工作中,笔者将进一步对多种故障同时发生的状况进行诊断研究,以提高该模型在现实诊断过程中的适用性。