毛冠通,洪流王景霖
1.武汉理工大学机电工程学院,湖北 武汉 430070
2.航空工业上海航空测试技术研究所 故障诊断与健康管理技术航空科技重点实验室,上海 201601
现代机械设备广泛应用在电力、航空、冶金、交通、生产生活等各个领域,机械设备正朝着复杂化、精密化、智能化方向发展,通常会在复杂、严峻的工作场景中使用。一旦发生故障损坏,所造成的后果可能是灾难性的,因此机械故障暗藏着巨大的经济损失和安全风险。为了避免和预防事故的发生,就必须建立科学、高效的故障诊断系统。由于可观的效益提升和安全保障,机械故障诊断技术逐渐成为提升设备工作效率和企业生产资料现代化管理的关键技术[1,2]。
传统机械故障检测技术是知识驱动的方法,其诊断过程侧重于通过数值计算或信号处理技术提取有效的信号特征,旨在通过数学建模分析、诊断、定位故障状态。虽然知识驱动的方法在机械故障诊断领域取得了一些研究成果,但这些方法需要依靠大量的知识储备以及专家的经验,很难做到普及应用。
近年来,深度学习技术蓬勃发展,其引发的人工智能热潮席卷各行各业,这也给故障诊断领域带来了新的曙光。基于深度学习的故障诊断技术已经在很多方面取得了比传统故障诊断技术更好的结果。因此传动设备故障诊断技术从侧重研究信号处理的技术,正逐渐过渡到侧重研究数据智能驱动方法。
卷积神经网络(CNN)[3]是有监督深度学习算法的一种,被广泛应用在故障诊断领域,它能从原始数据中提取出有效的特征。魏东等[4]提出了基于卷积神经网络的输电线路内外故障的模式识别方法。Lu 等[5]将卷积神经网络应用到滚动轴承的故障诊断中,并验证了该方法的有效性。
尽管深度学习在故障诊断研究中取得了实质性进展,对故障的分类达到了很高的准确率,但训练有效的深度学习模型既复杂又费时。此外,现有深度学习故障诊断方法大多都是直接使用采集到的一维信号进行截取和拼接,进而二维信号构建,此方法并不能有力地说明它们在空间上具有很强的结构特征。因此,开发一种数据驱动的在线故障诊断方法,能够消除建模的复杂性,表征数据中的空间结构,在有限的训练周期内达到预期的诊断精度,具有十分重要的意义。
本文提出了一种基于迁移学习的深度学习模型。首先使用短时傅里叶变换(Short-Time Fourier Transform,STFT)把采集到的一维时域信号转换为频域的二维信号,考虑了时域和频域信息,增加了数据输入的信息量,避免了传统数据拼接方法中空间结构没有关联的问题,可解释性更强。其次,结合迁移学习和集成学习,提出基于卷积神经网络的迁移融合方法,降低了建模的复杂性,提高了深度学习模型的训练速度和泛化能力。
时频分析得到的时频图表示的是时域和频域的联合分布信息,直观地反映了信号的各频率成分随时间变化的关系。时频图包含了丰富的设备状态信息。短时傅里叶变换是针对时变、非平稳信号的一种联合时频分析方法。短时傅里叶变换能将一维的振动信号变换成适应于卷积处理的特征图:一种包含时域和频域信息的特征谱。
短时傅里叶变换是通过给连续的时域信号x(t)加窗,将信号分成可以看成是短暂平稳的小段信号,对每一小段信号分别进行傅里叶变换。短时傅里叶变换的定义式为:
式中:x(t)为时域信号;w(t-τ)为加窗函数;τ为加窗函数的中心。由此可以看出,STFT 就是将信号x(t)乘以一个以τ为中心的窗函数w(t-τ)所做的傅里叶变换。本研究中使用海明窗作为窗函数,窗的长度为256。
一维的振动信号在经过短时傅里叶变换之后变为含有时频特征的时频图。虽然时频图包含了很多的信号特征,但是由于变换后二维图像的大小远大于一维数据的数据量,因此,图像压缩势在必行。在图像缩放处理中有很多方法,包括最邻近插值法、双线性内插法和双三次插值法等。最邻近插值法虽然计算量较小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状。双三次插值法虽然能够解决灰度变化后出现锯齿状的问题,但是需要进行大量计算。因此本研究使用双线性插值来计算图像压缩后的灰度值。
卷积神经网络作为深度学习算法中的一种,是一种多层的人工神经网络。它所采用的权值共享结构使得模型复杂度大大降低,减小了计算量。
卷积神经网络由输入层、交替连接的卷积层和降采样层、全连接层及输出层几部分组成。输入层为原始输入信号的二维图形;卷积层和降采样层均由多个二维平面组成,每个平面为卷积层或者降采样层处理后输出的特征图形,卷积层和降采样层的层数可根据实际需求来确定。
在卷积神经网络的卷积层,输入层图像作为输入,与卷积核进行卷积运算,然后经过非线性变换得到这一层卷积后的特征图,每一个卷积核对应一个特征图。随着卷积层数的增加,卷积核的数量也会随之增加。在通过卷积层的运算获得特征图之后,若直接使用这些获得的特征图去进行分类,将会面临巨大的计算量,对计算机硬件要求较高,而且还容易出现过拟合的现象。因此,有必要通过降采样层对上一个卷积层得到的特征图进行抽样,以降低特征图维度,减小计算复杂度。对特征图进行矩形划分,对每个矩形区域取最大值的运算称为最大池化,取均值的运算则称为均值池化。将通过降采样后得到的所有特征图的每个像素按一定顺序展开,排成一列,构成一个特征矢量。特征矢量与输出层之间进行全部连接,作为全连接层。全连接层位于卷积神经网络的尾端,用来计算整个网络的输出。使用卷积神经网络进行分类任务时,会在全连接层训练出一个分类器。分类器通常会选择关于权值可微的分类方式,使得卷积神经网络可以使用基于梯度的学习方法来进行训练。输出层输出的是一个矢量,其设置的节点数与所需类别数一致,每个节点的输出值表示该样本属于对应类别的概率。
迁移学习是机器学习的一个新分支,这里仅仅介绍迁移学习的基本概念。迁移学习是把已经训练好的模型参数迁移到新的模型来帮助新模型训练。考虑数据或任务是存在相关性的,所以通过迁移学习,可以将已经训练好的模型参数通过某种方式来分享给新模型从而加快并优化模型的学习效率。
迁移学习分为样本迁移、特征迁移、模型迁移、关系迁移等几种迁移方法。为了进一步提高深度学习模型在解决实际故障诊断问题时的实用性和灵活性。曹等[6]提出了一种基于CNN的深度迁移学习方法,用于齿轮的早期故障诊断,该方法所需的训练数据相对较少。温等[7]提出了一种基于稀疏自编码算法(SAE)的轴承故障诊断的迁移学习方法,该方法利用SAE提取原始数据的特征,并采用最大平均偏差来最小化特征空间的差异惩罚。综合考虑各种损失函数的优缺点,本文使用交叉熵函数来最小化特征空间的差异惩罚,并且采用的是CNN 的融合迁移,而不是简单地进行迁移学习。使用融合迁移提高了模型的性能和泛化能力,能够更好地适应所需解决的问题。
提出的在线故障诊断算法首先将采集到的原始信号进行STFT变换,接着把图像预处理为压缩的灰度图像,然后利用这些灰度图像来实现本研究提到的基于迁移学习的在线故障诊断方法。随着迁移学习的使用,所提出的方法能够及时地实现令人满意的诊断准确性。
从工业设备采集的状态监测数据一般包括图像数据和波形信号数据。图像数据通过图像处理技术直接用于故障诊断,波形信号数据也可以通过信号处理技术在图像中显示。本文采用数据预处理算法将采集到的信号数据通过STFT转换为灰度图像,同时通过图像压缩技术对图像进行压缩,来减少数据的存储量,压缩后的灰度图像数据是CNN的理想输入。
图1显示了所提出的数据预处理算法的处理过程。从原始信号中随机选取一段连续数据信号x(i),包含4096 个连续信号点。对所选择的4096 个连续信号点进行归一化处理,然后对归一化后的数据进行STFT转换为图像,其次对图像信号进行灰度化处理,最后把灰度图像进行压缩。
在本节中,提出了一种新的TCNN框架,该框架由基于Lenet-5 的在线CNN 和具有浅层结构的几个离线CNN 组成,如图2所示。一旦获得了包含足够故障信息的图像,则在线CNN被训练,然后通过对这些图像进行分类来诊断故障。以前的几项研究得出两个结论:(1)用从相关数据集或任务中学习到的迁移特征初始化深度神经网络,可以提高网络的泛化性能,提高网络的效率;(2)浅层的低级特征对于不同但相关的任务是适用的,而最后一层的高级特征提取通常是针对于特定任务的。在此基础上,为了提高在线CNN的实时性,还对多个离线CNN进行了相关任务或数据集的预训练,并将其浅层卷积层迁移到在线CNN。因此,在离线CNN 中使用相应卷积滤波器的权值和偏差直接初始化在线CNN的浅层。
图1 数据预处理过程Fig.1 Data preprocessing process
在线CNN:LeNet-5 是一种经典有效的卷积网络结构,已成功地应用于多种图像分类任务中。在线CNN 网络是在LeNet-5 基础上,设计并优化了网络CNN 模型。研究表明CNN中较小的卷积滤波器尺寸有利于提高模型性能,因此所有卷积滤波器尺寸为5×5或3×3,图3给出了在线CNN的结构。其中有一个输入层、4个卷积层、4个最大池化层、一个全连接层和一个Softmax[8]输出层。每一个卷积层都使用ReLU 函数[9]来激活以增加模型的非线性。可以根据不同情况下输入图像的大小来改变滤波器的数量和尺寸。此外,在线CNN模型中,采用零填充技术,使得特征映射的大小在每层中保持不变。
离线CNN:离线CNN首先被用来从相关任务或数据集中提取浅层的底层特征,然后将其中的浅层迁移到在线CNN 中进行初始化。通过从不同的离线CNN 中获取不同的浅层特征,可以提高在线CNN的可扩展性和效率。在本文中,为了简单起见,几个离线CNN 在相同情况下共享相同的结构和参数。然而,通过随机梯度下降的网络监督训练,也可以获得不同的离线CNN。
为了更有效地提取低层特征,离线CNN的结构应该比在线CNN的结构更浅,如图4所示。离线CNN中只有一个输入层、三个卷积层、三个池化层、一个全连接层和一个Softmax输出层。此外,在提出的TCNN框架设计过程中,还需要进一步考虑影响方法性能的两个重要因素。第一个是离线CNN的数量,它决定了网络CNN的浅层由多少个不同的离线CNN组成。第二种是用于训练离线CNN的数据集,这些数据集决定了传输给在线CNN获取的不同知识。
图2 TCNN框架结构Fig.2 TCNN frame structure
图3 在线CNN框架结构Fig.3 Online CNN frame structure
图4 离线CNN框架结构Fig.4 Offline CNN frame structure
在成功设计了在线和离线CNN 结构后,在算法1 中给出了TCNN 框架模型训练过程。在该框架中所有CNN 模型中训练所使用的损失函数Softmax交叉熵损失函数。定义如下:
当i为确定分类时,y为1,其他情况下y为0,p为概率,i属于某个具体的类别,N为训练集的数量。值得注意的是,微调和冻结传输层可以用来训练在线CNN 模型。在本文中,当训练集较大时,微调效果更好。
通过对电机轴承故障数据集的实例研究,对所提出的在线故障诊断方法进行了验证。检验所提出的在线故障诊断方法的准确性和有效性。所有的试验都是在Tensorflow框架下进行的,并运行在一个配有英特尔6 核2.9GHz CPU、GTX1080 GPU和16GB内存的深度学习工作站上。
在CWRU 轴承数据中心提供的轴承故障数据集上对所提出的在线故障诊断方法进行评估[10]。如图5 所示,试验台由2hp 的电机、扭矩传感器和测功机组成。采用电火花加工的方法,将单点故障引入到试验轴承中,轴承振动信号数据由安装在电机驱动端的扭矩传感器测量。采样频率为12kHz,负载范围为0~3。轴承数据集中有10 个运行状况,分别为内滚道故障(IF)、外滚道故障(OF)和滚珠故障(BF),均具有三种不同的损坏尺寸(0.18mm、0.36mm 和0.54mm)以及正常工况。
算法:TCNN框架训练过程TCNN框架训练算法。
图5 CWRU轴承数据集测试试验台Fig.5 CWRU bearing dataset test bench
输入:给定用于训练离线CNN 的数据集Xs{xs,ys},用于训练在线CNN的数据集Xt{xt,yt}。
输出:训练后的TCNN框架和诊断结果。
(1)建立TCNN 框架结构,首先建立在线CNN 和离线CNN的结构和超参数,同时给出了离线CNN的数量。
(2)初始化和预训练离线CNN,在给定的数据集Xs上对离线CNN进行随机初始化和预训练,用随机梯度下降法来求解Softmax 交叉熵的最小值,获得离线CNN 的权值W和偏置b。
(3)使用离线CNN 传输的层初始化在线CNN,在线CNN的浅层由传输层的卷积滤波器的权值W和偏置b来初始化,而其他层则有随机权值和偏差初始化。
(4)微调在线CNN,使用步骤(2)中相同的方法利用Xt数据集对在线CNN进行微调。
(5)输出经过训练的TCNN 框架和诊断结果,验证经过训练的TCNN框架的准确性和有效性,并输出诊断结果。
在每种负载条件下,随机选取2000个时域信号样本进行训练,随机选取400 个样本进行测试。在本次试验中生成并使用了5 个数据集,详情见表1。每个信号样本包含4096 个数据点,并通过数据预处理方法转换成100×100 灰度图像。图6中给出在0负载工况下10种运行状况的灰度图像。
使用所提出的CNN 模型对预处理后的灰度图像进行分类,可以对故障进行诊断。通过观察可以看出,图6中不同运行状况的灰度图像是有差别的,说明数据预处理方法的有效性。为了满足在线故障诊断应用的实时性要求,提高图像分类任务的效率是关键问题。
表1 5个数据集的详细描述Table 1 Detailed description of five datasets
图6 CWRU轴承数据集10种齿轮状态图像Fig.6 Converted images of ten health conditions
在此次试验研究中,在线CNN 模型和离线CNN 模型的两种结构都在表2 中进行说明。为了简单起见,所有的离线CNN 都使用相同的结构和参数。在这里,卷积层1(16@5×5)表示在卷积1层中有16个大小为5×5的卷积滤波器,而池化层1(2×2)表示在池化 1 层执行 2×2 的最大池化操作。所有CNN 模型的超参数,包括初始学习率、每批量大小和迭代次数都是以启发的方式选择的。
使用数据集Ⅴ对在线CNN 模型进行训练,初始学习率设置为0.0005,批量大小设置为100,并且迭代次数设置为20。
电机轴承数据是在4 种负载条件下采集的,因此离线CNN模型为4个。4个离线CNN分别使用数据集I~Ⅳ进行训练。由数据集在不同负载下训练的离线CNN 可以为在线CNN 提供不同的知识。对于离线CNN,初始学习率为0.001,批量大小为50,迭代次数为20。在这种情况下学习得到的离线CNN模型,其中的卷积1层被传输以初始化在线CNN的卷积1层,卷积2层被传输以初始化在线CNN的卷积2 层,而在线CNN 则被微调以使用数据集Ⅴ更新所有网络参数。
表2 在线和离线CNN模型的结构Table 2 Structure of online and offline CNN models
该方法的目的是在满足在线故障诊断应用准确性要求的同时,加快训练过程,提高TCNN模型的效率。
为了验证本文提出方法的有效性,本文还对传统机器学习、深度学习方法(SVM、ANN、CNN、PCA+SVM)的准确性进行了比较。TCNN框架和上述方法的训练和测试过程全部进行了10次,使用的数据集为数据集V,平均诊断精度比较结果显示在表3中。可以看出所提出的方法与传统机器学习相比至少高10%以上,比常规CNN 提高2%左右。所提出的方法准确率最高,验证了提出方法的有效性。
表3 各种方法准确率试验结果Table 3 Accuracy test results of various methods
本文提出了一种在线故障诊断方法。主要贡献包括:(1)引入一种简单而有效的方法,将测量的传感器信号转换为故障图像,这消除了对专家经验和信号处理知识的依赖;(2)提出了一种新的TCNN 框架,提高在线CNN 的效率和可扩展性,从多个离线CNN 中进行卷积层的迁移;(3)将TCNN 框架应用到在线故障诊断中,以改善所提出的方法的实时性。
为了验证所提出方法的有效性,在CWRU轴承数据中心提供的轴承故障数据集上进行了验证,准确率达到99.52%。结果表明,该方法能够有效满足数据驱动在线故障诊断领域的精度要求,加快在线故障诊断的训练过程。
虽然在线故障诊断方面取得了一定的成果,但今后仍有两个问题有待解决。首先,所提出的TCNN 框架只有离线CNN的浅层特征被传到在线CNN中;其次,利用GPU加速成功地训练所提出的TCNN框架仍然是耗时的。因此我们未来的工作将侧重两个方向:(1)在处理不同的故障诊断任务时,要验证离线网络的所有层中的特征的可转移性,以提高在线网络的性能;(2)将引入诸如MapReduce 和Spar的并行计算平台,以进一步提高训练效率。