刘华新,刘红艳,韩中合,朱霄珣,侯栋楠
(1.华北电力大学 能源动力与机械工程学院,河北 保定 071003;2.河北软件职业技术学院,河北 保定 071000)
齿轮箱作为风电机组的关键设备,承受变速变载荷和恶劣的工作环境,一旦发生故障会造成风电机组停机,发电量损失较大。如果能够利用状态检测技术对机组SCADA 系统的数据进行监测和分析,评估机组齿轮箱运行状态并提前发现齿轮箱的异常征兆,能够有效地降低齿轮箱的故障时间,提高风电机组可靠性及风电场的经济效益。
文献[1]使用了线性调频小波分解对齿轮箱的振动信号进行处理,进而实现不同故障模式的识别。文献[2]运用变分模态分解(VMD)和深度置信网络提取风电机组易损部件故障信号的微弱特征,并进行故障有效识别。文献[3]通过计算出齿轮箱振动信号的状态参数,利用BP 神经网络对齿轮箱的状态进行判断。文献[4]通过提取齿轮箱振动信号提升小波包能量熵,再利用支持向量机(Support Vector Machine,SVM)对其进行分类,进而判断出齿轮箱的故障类别。文献[5]基于数据挖掘的思想对风电机组的SCADA 数据建立非线性状态估计诊断模型(NSET),并使用极限学习机对NSET 进行改进,提高了对风电机组齿轮箱的状态预测的准确性。文献[6]提出了一种基于风电机组SCADA 和振动信号的深度自编码网络,利用该网络从数据中学习出齿轮箱的状态特征。文献[7]对齿轮箱的油温和轴承温度构建过程记忆矩阵,通过温度的预测残差判断齿轮箱的状态特征。
近年来,随着深度学习技术,特别是其中的卷积神经网络(CNN)在图像识别、语音识别以及模式识别上的应用,使计算机能够快速、准确、自适应地学习到数据的内在特征,完成一系列复杂的分类任务[8],[9]。因此,将深度学习方式应用于齿轮箱的故障诊断和状态分析上也成为目前的研究热点。与传统故障诊断方法相比,深度学习算法能够自适应地从风电机组运行数据中学习状态特征,而与基于风电机组数据的状态预测方法相比,深度学习方法具有更强的泛化能力,可以通过迁移学习的方式推广到不同类型机组中。
本文以某1.5 MW 风电机组齿轮箱为研究对象,基于SCADA 数据和振动信号特征,设计了一种CNN 模型,对风电机组齿轮箱进行整体的状态评价。该模型能够自适应地学习输入信息所蕴含的特征,在齿轮箱发生运行异常时识别出其状态,从而提早发现齿轮箱潜在故障,避免故障造成更大的损失。
在深度学习领域中,CNN 是目前最经典、最具代表的算法之一。CNN 学习过程的实质是通过训练多个能够提取输入数据特征的特征过滤器(卷积核),利用这些特征过滤器对输入数据进行逐层卷积和池化操作,进而将隐藏在数据中的特征清晰地输出到新的空间中[10]。
本文首先构建了一个能够描述风电机组齿轮箱状态的矩阵D,然后利用CNN 提取矩阵D 所隐藏的机组齿轮箱状态特征。由于状态矩阵的数据量相对于CNN 通常处理的图片更小,为了提高计算效率,本文以一种优秀的 CNN 模型—VGGNet[10]为基础,设计了一个规模更小、训练速度更快的CNN 模型来学习风电机组齿轮箱信号中蕴含的状态特征(图1)。
图1 基于VGGNet 设计的CNN 模型Fig.1 CNN model based on VGGNet
由图1 可知,本文建立的CNN 模型在学习输入信息的特征中主要由3 种层级结构以及softmax 分类器对信息进行处理,不同种类的CNN模型间的区别则反映在这3 种层级结构参数的选择、排列的方式上,因此,这3 种层级结构是CNN的基本构成单元。
1)卷积层(convolution layer)
卷积层中每个节点的输入与上一层的局部感受野区域相连,通过卷积核对该局部感受野的区域进行计算。卷积层的输入为
在 VGGNet 模型中,卷积核大小为 3×3,因此,本文CNN 模型的卷积核大小也选用3×3。
卷积层的输出为
式中:f () 为激活函数,一般选取 ReLU,tanh,Sigmoid 等函数,本文所使用模型参考了VGGNet,确定激活函数为ReLU。
2)池化层(pooling layer)
池化层中利用池化函数来减少上一层输出的数据量。池化层的输出为
本文设计的CNN 模型参考VGGNet 设置为最大池化函数,但池化的范围与方式和VGGNet有一定区别。
3)全连接层(fully connected layer)
将所有经过卷积、 池化过程的数据特征由全连接层映射到新的特征空间上,以便进行样本的分类。全连阶层的输出可通过下式计算得到。
式中:ul为前一层输出特征xl-1进行加权和偏置后的结果;ωl为全连接层的权重;bl为全连接层l 的偏置项。
由于本文建立的CNN 模型输入的矩阵信息为 9×72,相对 VGGNet 的图片输入 224×224 更小。为了降低计算规模,本文CNN 模型是在去掉了前两层卷积层的VGGNet 上修改而来。
本文以某风电场1.5 MW 双反馈型风电机组的齿轮箱为研究对象。该机组的齿轮箱采用一级行星-两级平行的结构,SCADA 系统每10 min 记录一次期间的机组状态平均值。选择与齿轮箱状态密切相关的风速、 发电功率、 齿轮箱润滑油温度、齿轮箱主轴承温度、环境温度等参数组成齿轮箱状态矩阵。同时,增加一些振动传感器采集信号获得齿轮箱的振动状态[11]。考虑到振动信号会随着风速、风向等多种因素变化,因此,采用振动信号的峭度特征作为反映齿轮箱振动特征的输入值。由于振动传感器和SCADA 系统采用的频率差异较大,因此,对获得的振动信号每1 s 计算一次峭度特征值,取10 min 内特征值较大的前30%求平均作为特征变量输入。最终输入表1 所示参数对风电机组齿轮箱状态进行描述。
表1 风电机组齿轮箱的状态参数Table 1 State parameters of wind turbine gearbox
表1 中的齿轮箱状态参数均具有一定的物理意义,但各自数值和单位之间存在较大差异,需要进行归一化处理。参考文献[11]对风电机组状态参数进行归一化的方式,使用相对劣化度的方法将风电齿轮箱状态参数折算到[0,1]区间,对于本文所涉及的状态参数,主要涉及两种劣化度计算。
1)参数较小时齿轮箱的状态较好
如齿轮箱润滑油温度、轴承温度、振动信号的峭度等因素,其数值越小,齿轮箱的运行越平稳、健康。计算劣化度的公式为
式中:x 为所获得的参数;xmin,xmax分别为该参数在机组正常运行时的最小值、最大值。
2)参数值位于某一范围内齿轮箱状态较好
功率、风速等位于某一区域内时,齿轮箱的状态运行最佳,其计算劣化度的公式为
式中:[xa,xb]为该参数的最佳范围。
在使用CNN 模型对输入的参数进行训练的过程中,首先,需要对输入数据进行规范化。对于某一时刻i,齿轮箱的状态可以由表1 状态参数归一化后组成如下式所示向量X(i)。
由于齿轮箱的状态是一个发展的过程,为了让CNN 能够全面把握齿轮箱的状态,可以将m个历史观测向量X(i)组成状态矩阵(D)。
D 是由从时刻n 开始到n+m 时刻间的m 个齿轮箱状态向量组成,D 能够代表在这m 个时刻内设备的动态过程,CNN 对齿轮箱状态特征的评价就是通过对齿轮箱D 的学习并分类实现的。
本文D 的宽度m 表示状态矩阵含有多少时间长度的齿轮状态信息。由于临近时刻间的状态信息存在着关联,而且数值上也接近,因此,在CNN 学习过程中可以采用最大池化方式将相邻时刻间的信息进行下采样。而矩阵的高度上是并列关系的不同特征参数,之间缺乏关联性,因此,在卷积过程中不对矩阵高度方向上进行下采样。
本文选取某风电场3 号、23 号、34 号机组齿轮箱在 2016年1月2日-12月25日的 SCADA数据和振动特征数据建立风电机组齿轮箱状态特征数据集。其中,每个样本为9×72 大小的D,代表12 h 内齿轮箱的状态。去除部分并非由齿轮箱故障导致的预警,获得机组正常运行下的样本318个。再选取因齿轮箱故障造成的保护性停机状态下的26 个样本,将D 的最后时刻设置为选取发生故障前2 h~10 min,最终扩容出312 个故障样本。随机选取正常状态下和故障状态下的330 个样本作为训练集,剩下300 个样本作为测试集,在Caffe 框架下训练图1 所示的CNN 模型。由于本文的分类任务中只进行故障和正常的二分类,因此,CNN 模型中只保留一个全连接层,并将全连接层维度修改为32 个,降低了计算规模。
训练CNN 识别模拟齿轮箱D 时,采用随机梯度下降法训练CNN。通过多次试错实验选择最优的网络参数,最终CNN 在对齿轮箱状态的识别中最高达到了96.3%的准确率。图2 为训练过程中模型对测试集的分类识别准确率曲线。
由图2 可知,模型收敛速度较快,在迭代3 000 次之后准确率就达到了93%以上。为了进一步了解CNN 对齿轮箱D 的具体识别效果,本文选取第6 000 次迭代时的CNN 模型对300 个测试样本进行分类,输出结果如表2 所示。
图2 CNN 训练过程中识别率的变化Fig.2 Change of recognition rate in CNN training
表2 CNN 对齿轮箱状态矩阵的识别结果Table 2 Recognition result of state matrix of gearbox by CNN
由表2 可知,经过训练的CNN 模型能够相对准确地在故障发生前2 h 内识别出齿轮箱的故障状态,但随着距离SCADA 发出预警的时间越超前,识别的准确率越低,这和实际规律是相符合的。
由于CNN 的训练过程接近一个黑箱,本文使用流形学习方法中的T-SNE 工具对D 和CNN全连接输出进行降维与可视化,通过这种可视化的手段印证CNN 对齿轮箱D 的特征提取效果。
随机从数据集中选取200 个齿轮箱D 样本,利用训练完成的CNN 模型进行分类并输出识别过程中的全连接层向量。利用T-SNE 工具对原始D 和对应输出全连接层向量进行降维和分类,结果如图3 所示。由图3 可知,齿轮箱D 无法直接在低维上表现出良好的分类特征,这说明了简单的分类手段难以对齿轮箱D 进行识别。但是经过CNN 将D 处理为全连层接向量后,全连接层向量却具有很好的分类特征,可以用一个简单的分类器进行分类。据此可以判断CNN 能够从D 中提取齿轮箱状态特征,使得蕴含在状态特征中的分类信息清晰表示在全连接层输出向量中,进而完成对齿轮箱状态的定性。
图3 CNN 对D 处理前后数据的T-SNE 图像Fig.3 T-SNE image of data before and after CNN processing state matrix
在实际生产中,一个风电场中往往具有大量相同型号的风电机组设备,如果训练的CNN 模型不具有泛化性,那将大大降低其应用价值。因此,本文将同一风场的17 号机组作为测试样本,提取17号机机组在2016年2月期间正常、齿轮箱油温过高(供油故障)、齿轮箱油温过高(齿轮磨损)3种状态下的运行数据作为输入,验证本文建立的CNN 模型的应用效果。依照上文建立的齿轮箱D规则,选取了最后时刻为故障发生前10 min~7 h 的齿轮箱D 以及正常运行的齿轮箱D,然后使用本文所训练完成的CNN 模型进行识别,输出对应识别故障状态的概率值如图4 所示。
图4 CNN 识别齿轮箱状态为故障的概率Fig.4 Probability of CNN recognizing gearbox state as fault
由图4 可知,在距离故障发生时刻较超前时,CNN 判断齿轮箱状态为故障的概率小于0.5,这表示CNN 判断齿轮箱为正常状态的概率大于判断其为故障状态的概率。随着D 的时刻距离故障时间更近,CNN 判断齿轮箱为故障状态的概率开始增大,最终超过了0.5,因此,CNN 判断齿轮箱为故障状态。同时,可以发现,相比于齿轮箱供油故障,齿轮磨损故障被更早地识别出来。而在实地检查中发现,供油故障是由于齿轮润滑油粘度较大引起的油泵过载,这和当时环境温度密切相关,因此具有一定的突然性。而随后发生的齿轮磨损故障则能从振动信号特征和其他特征表现出来,因此,能更早地发出故障状态的判断。值得说明的是,在将该模型应用到对风电机组齿轮箱状态监测时,可以设置更高的故障概率阈值作为发出故障报警的条件,这样虽然降低了模型的超前预警能力,但是提高了模型发出故障报警的可信度,更适应对风电机组的实时监测。
针对风电机组状态检测和分析的需要,本文基于深度学习理论,首先,建立了反映齿轮箱状态的矩阵作为学习对象。然后,设计了一个基于VGGNet 结构的CNN 模型,并按照一些特定规则对D 进行深度学习,使CNN 学习到提取齿轮箱状态特征的能力。最后,将经过训练的CNN 模型应用于对其他同型号机组齿轮箱的状态检测和分析中,并取得了较为满意的结果。该方法兼顾了输入信息的物理意义,具有计算规模相对较小等优点,实现了对齿轮箱进行状态监测的目的。