基于改进SE-CNN的风电机组故障诊断方法研究

2023-08-04 07:18杨剀勋文孝强
吉林化工学院学报 2023年1期
关键词:故障诊断准确率机组

辛 鹏,杨剀勋**,文孝强

(1.吉林化工学院 信息与控制工程学院,吉林 吉林 132022;2.东北电力大学 自动化工程学院,吉林 吉林 132012)

随着石化能源的逐渐枯竭,发展新型的可再生能源成为发电领域重要的趋势。风能作为绿色、清洁的可再生能源,近年来得到了快速发展。为了获取最大的发电效益,风电机组通常都位于风力资源丰富的地区,然而这些地区大多处于近海或者远郊,工作环境十分恶劣,导致风电机组故障频发[1-2]。因此,为了降低风机故障所带来的经济损失,有必要对风电机组故障诊断问题进行深入研究。

当前,在风电机组故障诊断方面,大多使用数据驱动的方法。张振海[3]等人使用小波分析法和支持向量机进行故障诊断。Carroll J[4]等人采用机器学习的方法进行故障诊断。但这些方法普遍需要人工对数据进行特征提取,同时浅层网络不足以学习到更深的特征,这些原因影响着故障诊断的准确率。

深度学习方法可以省略人工提取故障特征的过程,因此大量的深度学习方法被应用于风电机组的故障诊断中。邓子豪[5]等人使用ReliefF、核密度均值法和BP神经网络进行风电机组偏航齿轮的故障诊断。Rezamand M[6]等人使用PCA和小波分析法对风电机组进行故障诊断。上述方法均需要对数据进行降维,但进行数据的降维会导致部分故障特征丢失,从而影响故障诊断的准确率。此外,上述方法均不能自适应地调整输入参数的权重。因此,本文首先使用滑动窗口对数据进行扩充,其次使用tanh函数对压缩激励网络(SEnet)进行改进以获取更全面的数据特征,并使用改进后的SEnet调整数据中各参数的权重,然后使用卷积神经网络(CNN)避免人为操作直接学习数据中的故障特征,同时在CNN中引入全局最大池化层提高网络的稀疏程度,最后使用全连接层输出诊断结果。与其他深度学习模型进行对比,实验结果表明,该模型的故障诊断效果均优于RNN、PCA-DNN、BiLSTM。

1 改进压缩激励网络与卷积神经网络结合的(SE-CNN)故障诊断方法

1.1 样本的扩充及标准化

在使用深度学习进行故障诊断时,样本数据量是影响故障诊断效果的关键因素,由于原始数据集数据量较少,因此需要使用滑动窗口对数据样本进行扩充[7]。滑动窗口方法如图1所示,通过设置窗口大小与滑动步长,使后一个样本的数据包含部分前一个样本的数据,在实现数据重复利用的同时达到扩充数据的目的。

图1 滑动窗口

由于原始数据集中不同参数之间的量纲不同,取值范围差异较大,直接作为网络的输入会影响网络的学习能力。因此,需要进行数据的标准化,标准化计算过程如式(1)所示。

(1)

1.2 改进SEnet原理

在进行故障特征学习时,一些无关的特征信息也会被网络所学习,这些无关的特征信息分散了网络的注意力,降低了故障诊断的准确率,而SEnet能够自适应地调整数据中不同参数的权重,同时降低无关特征信息对网络的影响[8-9]。由于故障数据量较少,为了更全面地获得故障特征,将SEnet中的relu函数调整为tanh函数,提高故障诊断的准确率,SEnet结构如图2所示,主要由Squeeze、Excitation和Scale三部分组成。

图2 SEnet结构图

首先,Squeeze通过全局平均池化计算将每个参数中的数据压缩为一个平均值,这些平均值能够概括对应参数的重要性;其次,Excitation通过两个全连接层提取数据特征,然后通过sigmoid函数给每个参数生成一个权重;最后,Scale将特征权重加入到原始特征中,实现特征重要性调整,提高网络注意力。Squeeze计算过程如式(2)所示,Excitation计算过程如式(3)所示,Scale计算过程如式(4)所示。

(2)

S=σ[W2δ(W1Z)] ,

(3)

(4)

1.3 改进CNN原理

通常,CNN分为输入层、隐藏层和输出层,隐藏层则包括卷积层和池化层,卷积计算如式(5)所示,池化计算如式(6)所示。

(5)

(6)

在传统CNN中一般使用Flatten层一维化卷积层输出的特征,但这样会增加网络的计算量和计算时间,为了加快网络的训练速度,缩短计算时间,提高网络的稀疏程度,将Flatten层更换为全局最大池化层,全局最大池化层的计算过程如式(7)所示。

(7)

式(7)中W为池化区域宽度;yi为上一层的输出;max表示取池化区域内特征的最大值;E为全局最大池化计算后的输出。

1.4 激活函数

使用tanh作为故障诊断模型的激活函数。tanh导数如式(8)所示[10]。

(8)

从式(8)中可以看出tanh导数的取值范围在0到1之间,在一定程度上降低了梯度消失的问题,并且tanh的变化敏感区较宽,能够延迟饱和期,同时tanh能够更加全面地获取数据特征,可以提高故障诊断的准确率。

1.5 改进SE-CNN风电机组故障诊断流程

故障诊断流程如图3所示,主要步骤如下:

图3 故障诊断流程图

1)数据预处理:对各故障类别的数据进行标签,删除方差为0的参数和错误数据;

2)样本扩充:使用滑动窗口对预处理后的数据进行样本扩充,然后进行数据的标准化;

3)模型的建立:构建改进的SEnet,使用样本扩充后的数据作为改进SEnet的输入,构建改进的CNN,将改进SEnet的输出作为改进CNN的输入,构建改进SE-CNN故障诊断模型;

2 实验验证

2.1 数据来源

实验数据源自吉林省某风场的风电机组,利用SCADA系统收集各传感器数据,每隔10秒记录一次。风电机组各传感器参数如下:发电机转速(P1)、电网电压L1(P2)、风向1秒平均值(P3)……电网频率(P45)、发电机功率1秒平均值(P46)和发电机转速1秒平均值(P47),等47个参数。部分实验数据属性如表1所示。

表1 部分实验数据属性

本文所诊断的风电机组常见故障分别为:变桨系统故障、传动系统故障、桨叶故障和液压系统故障。将滑动窗口的窗口大小设置为60,为最大程度利用有限的数据集将滑动步长设置为1,然后对数据进行扩充并生成样本。一共生成22 205个样本,每个类别包括4 441个样本,每个样本则包括47个参数,每个参数拥有60个数据。

2.2 激活函数的选择

常见的激活函数有sigmoid、tanh、relu,当激活函数选择不当时,模型的准确率会下降,甚至会出现梯度消失的现象。3个激活函数的比较如图4所示,可以看出在使用sigmoid时模型的准确率为97.41%,是最低的,训练时间为229 s,是最长的。在使用relu时,模型中部分神经元的参数无法更新,降低了模型的计算量,因此模型的训练时间为111 s,训练时间大幅度减小了,但这样会导致模型学习不到足够的故障特征,所以在使用relu时模型的故障诊断准确率为98.60%,仍然较低。在使用tanh时,模型的训练时间最短为107 s,此时故障诊断准确率为98.67%,是最高的。分析其原因,这是因为tanh与relu和sigmoid相比能够获得更全面的故障特征。因此,本文选择tanh作为改进SE-CNN模型的激活函数。

激活函数名称图4 不同激活函数的比较

2.3 优化算法的选择

常见的优化算法有RMSprop、Adagrad、Adadelta和Adam等。当优化算法选择不当时,模型的准确率和训练时间会在一定程度上受到影响。各优化算法的比较如图5所示,可以看出在使用Adadelta时模型的准确率为91.38%,优化效果最差。在使用Adagrad时,模型的准确率为97.39%,显然得到了大幅度提升,然而,Adagrad的训练时间为232 s,是最长的,优化效果仍不够好。在使用Adam时,模型的训练时间为107 s,是最短的,与此同时,故障诊断准确率为98.67%,也是最高的,很显然,此时的故障诊断效果最好。因此,本文选择Adam作为改进SE-CNN模型的优化算法。

优化算法名称图5 不同优化算法的比较

2.4 隐藏层与神经元个数的讨论

在神经网络中,隐藏层数和神经元的设置也会影响故障诊断结果。当隐藏层和神经元太少时,很容易导致学习能力不足,而隐藏层和神经元过多时,网络就会过拟合。本文采用网格搜索方法对这些超参数进行讨论[11]。隐藏层的讨论如图6所示,可以看出当隐藏层为3时,模型的准确率为97.70%,随着隐藏层的增加,模型的准确率也在增加。当隐藏层为5时模型的准确率达到了最高。之后,当隐藏层继续增加时,模型出现了退化导致准确率降低。

隐藏层数/层图6 不同隐藏层的比较

神经元的讨论如图7所示,可以看出当神经元为64时,模型的准确率为97.48%,随着神经元个数的增加模型的准确率也随之增加。

当神经元为128时模型的准确率达到了最高。当神经元继续增加时,模型的准确率反而降低了。综上,当改进SE-CNN的隐藏层数为5,神经元个数为128时,模型的准确率为98.67%,达到了最高。改进SE-CNN的详细参数如表2所示。

表2 模型详细参数

2.5 改进方法的对比

为了验证SEnet的有效性,对使用SEnet前后的特征图进行对比,原始特征图如图8所示。SEnet输出的特征图如图9所示。在图8和图9中横坐标表示参数的个数,纵坐标表示数据的个数。对比图8和图9可以看出:原始特征经过SEnet后第10个参数的颜色明显变浅了,第24个参数的颜色明显加深了。这说明SEnet赋予第10个参数的权值较小,赋予第24个参数的权值较大。这证明了SEnet能够自适应地调整不同参数的特征权重。

图8 原始特征图

图9 SEnet输出的特征图

接下来,以CNN为基础使用不同的改进方法来提高故障诊断的准确率。不同改进方法的准确率与训练时间的比较如图10所示,可以看出CNN的准确率为96.26%,训练时间为160 s,其故障诊断效果最差。在CNN前加入SEnet构建SE-CNN后,模型的准确率提高到了97.95%,训练时间减少到了115 s。将SEnet中的激活函数进行调整并与CNN结合构建SE(tanh)-CNN后,由于获得的特征更加全面,模型的准确率提高到了98.33%,但训练时间也增加到了211 s,故障诊断性能仍不够好。在SE(tanh)-CNN中引入全局最大池化层构建改进SE-CNN后,模型的准确率提高到了98.67%,训练时间被缩短到了107 s,模型的故障诊断效果变得更好了。不同改进方法loss曲线的比较如图11所示,可以看出CNN的loss曲线最不稳定,收敛速度最慢,改进SE-CNN的loss曲线最稳定。综上证明了本文所提出的改进SE-CNN模型的有效性。

模型名称图10 不同改进方法准确率和训练时间的比较

迭代次数图11 不同改进方法loss曲线的比较

2.6 实验结果对比分析

分别建立主成分分析与多层感知机结合的模型(PCA-DNN)、循环神经网络(RNN)、双向长短期记忆网络(BiLSTM)、与本文所提出的改进SE-CNN进行对比,以验证模型故障诊断的有效性。如图12所示为不同模型准确率与训练时间的比较,可以看出RNN的训练时间为4 100 s,准确率为93.83%,故障诊断效果最差。

模型名称图12 不同模型准确率和训练时间的比较

PCA-DNN模型的训练时间最短,准确率也相对较低,训练时间和准确率分别106 s和96.92%。BiLSTM是RNN的改进模型,与PCA-DNN相比BiLSTM的故障诊断效果更优,但准确率为97.93%仍不够高。在所有模型中改进SE-CNN的准确率为98.67%,是最高的,故障诊断效果最好。

如图13所示为不同模型评价指标的比较,可以看出改进SE-CNN的precision、recall和f1-score分别为98.76%、98.67%和98.67%,优于对比模型。如表3所示为不同模型评价指标比较的汇总,可以看出改进SE-CNN的故障诊断性能优于其他对比模型。因此,改进SE-CNN具有良好的故障诊断效果。

表3 不同模型评价指标汇总

评价指标名称图13 不同模型评价指标的比较

2.7 模型泛化能力验证

使用两台不同风电机组的数据来验证模型的泛化能力。如图14所示为上述各种对比方法在不同数据集上的准确率。

数据集名称图14 不同模型在不同数据集上故障诊断性能的比较

3号风机的数据量少于2号风机,因此各模型在3号风机上的故障诊断准确率都有所下降。在2号风机上改进SE-CNN模型的故障诊断准确率为98.67%,在所有对比模型中是最高的。对3号风机而言,改进SE-CNN模型的故障诊断准确率为95.86%,同样是最高的。因此,改进SE-CNN模型在不同数据集上具有一定的泛化能力。

3 结 论

本文针对风电机组发生故障时难以有效地提取故障特征,故障诊断准确率不高等问题进行了深入研究,得到如下结论:

(1)构造了一个SEnet网络以自适应地调整了各参数的重要性,有效解决了网络注意力分散的问题。调整SEnet中的激活函数使网络能够学习到更多的故障特征,提高模型的故障诊断准确率;

(2)对CNN进行了改进,引入了全局最大池化层,缩短了模型的训练时间并进一步提高了模型的故障诊断准确率;

(3)对改进SE-CNN中的超参数、优化算法、激活函数进行讨论,最后确定优化算法为Adam,激活函数为tanh,隐藏层数为5,神经元个数为128,此时的故障诊断准确率为98.67%,高于其他模型;

(4) 对改进SE-CNN的泛化能力进行了验证,在不同数据集上改进SE-CNN的准确率均高于对比模型,因此改进SE-CNN模型具有一定的泛化能力。

猜你喜欢
故障诊断准确率机组
660MW亚临界机组清洁疏水系统节能改造
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
高速公路车牌识别标识站准确率验证法
因果图定性分析法及其在故障诊断中的应用
基于LCD和排列熵的滚动轴承故障诊断
350MW机组DEH控制系统的优化
基于WPD-HHT的滚动轴承故障诊断
TNG系列多功能提取浓缩回收机组