XGBoost算法在风电机组发电机故障监测预警中的应用研究
2021-09-30苏国梁汪健冬付恩强赵娟娟黄文广刘广臣
苏国梁,汪健冬,付恩强,赵娟娟,黄文广,刘广臣 *
(1.国电电力内蒙古新能源开发有限公司,呼和浩特 010020;2.鲁东大学 数学与统计科学学院,烟台 264000;3.华风数据(深圳)有限公司,深圳 518110)
0 引言
风能是一种清洁而且可待续的新能源,在生态问题日益严重、温室气体排放量逐年增加的大环境下,风电成为全球认可的安全、低碳、可再生电源,并且利用风电减缓气候变化的方案引起了各国政府、企业和机构等的高度关注。随着风电机组装机规模的不断增大,以及由于相关技术不断进步使现有风电机组的运行年限随之增加,风电机组的安全运行受到广泛关注。在长时间的运行过程中,风电机组易发生诸如起火、倒塔、叶片断裂等事故。然而,由于风电机组零部件的多样性和复杂性,其运行维护困难重重[1]。传统的人工检修方法一般是在风电机组事故发生后进行检修,而且由于运维人员的技术水平存在差异,导致检修的耗时各不相同,这不但会给风电场带来一定程度的损失,还会影响电网的稳定性。近年来,大数据和人工智能技术的不断发展为智能化的故障预警和故障诊断提供了可能,通过基于风电机组数据采集与监控(SCADA)系统的大数据,利用人工智能算法判断风电机组的健康状况并诊断潜在性故障[2]已成为风电行业解决故障预警及故障诊断技术问题的重要途径。
在风电机组发电机的故障预警和故障诊断方面,国内外学者开展了大量研究并取得了丰富的成果。CHEN等[3]利用迁移学习算法进行了叶片结冰和齿轮齿形带断裂的故障诊断。ZARE等[4]建立了一个多通道卷积神经网络模型,可用于7种常见的风电机组故障诊断。REN等[5]提出了一种基于变分模态分解(VMD)多尺度排列熵(MPE)和基于特征的迁移学习(FTL)的故障诊断方法,用于识别齿轮箱故障。王挺韶等[6]针对风电机组发电机在发生不同故障时相应的传感器数据会发生变化这一特点,提出了一种基于自动降噪编码器与一维卷积网络的故障诊断模型。褚景春等[7]建立了故障树结构的风电机组传动链故障信息知识库,可根据实时检测的故障特征信息在该知识库中进行检索并定位相应的故障树,然后根据该知识库中预设的数据和贝叶斯网络推理该故障树下所有触发的底事件,形成故障原因诊断集合。郭梅[8]探究了不同故障模式下风电机组发电机传动系统振动信号的特点,从时域、频域、时频3个方面验证了该研究采用的信号处理分析算法,提出了将基于互信息的最大相关最小冗余方法用于发电机故障信号的特征提取,并结合反向传播(BP)神经网络分析了发电机的分布式控制系统(DCS)的温度信号特点。针对风电机组发电机故障的敏感性,赵洪山等[9]提出了一种基于风电机组发电机正常状态下SCADA系统中样本数据的堆叠自编码网络深度学习方法,用于进行风电机组的异常检测分析。庄哲民等[10]首次利用改进的局域判别基(LDB)算法提取了风电机组的初始故障特征,进一步提高了类间可分离度。该方法是将风电机组的初始故障特征通过自组织特征映射(SOM)网络映射到一个类别可分性更高的特征空间,最后利用BP神经网络,根据映射后的特征实现故障特征的非线性分类,从而完成故障诊断与故障定位。任孝儒[11]采用定子电流信号分析法,对风电机组发电机的齿轮和转子进行了故障诊断研究。赵洪山等[12]提出了基于深度自编码(DAE)网络和梯度提升(Exterme Gradient Boosting,XGBoost)算法的风电机组发电机故障诊断算法,先采用DAE故障检测算法获取SCADA数据的重构值,以分离正常和故障时段数据,再用贝叶斯优化搜索XGBoost算法的最优超参数,并建立XGBoost算法多分类故障识别模型。
综合以上研究者的经验,本文以发电机轴承A的温度和发电机轴承B的温度为研究对象,利用XGBoost算法进行风电机组发电机故障监测预警研究。本研究的主要内容包括:1)特征工程方面:结合运维专家经验,同时运用Pearson相关系数、XGBoost算法等筛选出与2个研究对象相关性较强的18个关键特征变量,并进行重要性排序。2)模型构建方面:利用筛选出的关键特征变量,分别建立发电机轴承A温度(在模型中表示为“generator_bearing_temperature_a”)和发电机轴承B温度(在模型中表示为“generator_bearing_temperature_b”)的风电机组发电工机故障监测预警模型[13],用于发电机轴承A、B温度的预测,并与随机森林算法模型和CatBoost算法模型进行性能比较。3)故障监测预警方面:基于模型预测温度与实测温度残差大小及持续波动趋势,在残差波动明显且持续时间长时进行故障预警,可以在风电机组停机前预知其随后的运行状态,使风电机组在故障发生前停止工作,同时按照关键特征变量的重要性进行故障诊断与维护。
1 数据处理与特征工程
1.1 数据获取及预处理
本研究数据来源于山东省威海市文登区某风电场的SCADA系统的数据库,选择其中某台1.5 MW风电机组的数据,时间跨度为2018-2019年,采样间隔时间为1 min,数据总量为97万条。
由风电机组运维专家对数据进行变量初筛,依据控制状态筛选出风电机组在并网状态下正常运行的数据行,去除缺失数据行,并删除风电机组在待机、维修等非正常运行时的记录数据,最终得到的有效样本数据为665667条。
1.2 特征工程
将发电机轴承A的温度与发电机轴承B的温度作为2个被解释变量,其余的变量测点作为解释变量,然后建立回归模型。为建立简洁高效的机器学习模型,需要选择关键解释变量(测点),即特征工程的关键特征变量,该环节可有效降低模型存在共线性的可能性,也能为后期故障诊断与故障部位的定点维修提供一定的参考价值,可有效降低维修时间。
首先采用Pearson相关系数、XGBoost算法等方法独立排序,然后对相同权重的特征变量进行加权;将初始32个特征变量进行排名,此排名对于模型报警后的运维检修测点顺序具有一定的指导意义;最后结合风电场运维专家的经验,选取排名前18位的关键特征变量。最终模型的输入测点名称及关键特征变量的重要性排序如表1所示。
表1 模型的输入测点名称及关键特征变量的重要性排序Table 1 Name of input measuring points of model and ranking of key characteristic variables importance
2 采用XGBoost算法建立风电机组发电机故障监测预警模型
2.1 模型介绍
XGBoost算法是一种加强版的梯度提升算法,其运用集成思想,利用加法模型和前向分布的算法将多个分类与回归树(classification and regression trees,CART)基学习器构成集成树模型,并对决策树进行打分,以“分高者胜”为原则,实现目标值预测。目前,XGBoost算法已成为大数据竞赛、基因工程、信贷金融等领域的重要算法。
相较于传统的梯度提升决策树( gradient boosting decision tree,GBDT)算法,XGBoost算法的优点更多,比如:1)加入了正则项,使用列抽样,可防止过拟合的发生,使其具有更好的推广能力;2)可以自主定义目标函数,提高了模型的精确度;3)用近似算法改进贪心算法,同时使用多个CPU并行训练,提高了训练速度,可使训练结果更快达到最优。
采用XGBoost算法建立风电机组发电机故障监测预警模型,进行风电机组发电机故障预警、诊断和定位,所建模型的工作流程如图1所示。
图1 风电机组发电机故障监测预警模型的工作流程图Fig.1 Workflow diagram of fault monitoring and early warning model of wind turbine generator
由图1可知,风电机组发电机故障监测预警模型的工作流程为:
1)提取原始数据并进行清洗后,结合运维专家经验,利用Pearson相关系数和XGBoost算法筛选关键特征变量并对其进行排序。
2)利用XGBoost算法分别建立关键特征变量与发电机轴承A温度、发电机轴承B温度这2个研究对象的函数关系,经过模型训练和参数调整,可得到2个最优风电机组发电机故障监测预警模型。
3)将得到的2个风电机组发电机故障监测预警模型嵌套入实时风电机组监测系统,根据这2个模型各自预测的发电机轴承A、B的温度曲线与2个轴承的实测温度曲线之间的变化趋势进行对比分析,从而进行发电机的故障预警。通常,当发电机的2个轴承正常工作时,模型的预测温度曲线与实测温度曲线应几乎吻合;而当这2个轴承出现故障征兆时(即故障发生前的某时段),预测温度曲线与实测温度曲线一般会有偏离趋势,根据偏离趋势对风电机组发电机运行状态进行故障监测预警。当风电机组发电机故障监测预警模型判断发电机处于故障状态(预警)时,可继续诊断故障产生的原因,并确定故障产生的位置。针对这一目标,结合运维人员的技术经验与模型关键特征变量的重要性大小排序,逐个检查发电机可疑部位的相关部件并对其进行维护,从而实现风电机组发电机的故障维护。
2.2 模型参数调整
在风电机组发电机故障监测预警模型的训练过程中,需综合考虑训练模型过程的时效性、模型预测的准确性,以及后期更新模型的简便性。为此,采取如下策略进行模型训练。1)在模型参数调整的过程中,需要关注的主要参数包括:树的个数(当该参数取值适当大时,可以提升模型的鲁棒性)、树的最大深度(该参数设定适当时,可防止模型的过拟合)、学习速率,以及最小叶子节点样本权重和等。2)采用网格搜索方法(GridSearchCV)和3折交叉验证,可有效避免随机划分训练集带来的偶然性。
最终的风电机组发电机故障监测预警模型采用的参数的最优值如表2所示。
表2 风电机组发电机故障预测预警模型中参数的最优值Table 2 Optimal value of parameters in wind turbine generator fault monitoring and early warning model
2.3 评价指标
为客观评价所建立的风电机组发电机故障监测预警模型的预测效果,计算预测温度与实测温度的均方误差(mean squared error,MSE)、平均绝对误差(mean absolute error,MAE)、平均相对误差绝对值(mean absolute percent error,MAPE)、调整的拟合优度(adjustedRsquared),以及训练时长(单位为s)等5项评价指标,用于评估该模型的准确率及稳健性。
各评价指标中,MSE的计算式为:
式中:yi为发电机轴承的实测温度;为发电机轴承的预测温度;i为采集点;m为采样点个数。
MAE的计算式为:
拟合优度R2的计算式为:
值越接近1,说明模型预测值对实际值的拟合程度越好。的计算式为:
式中:(n–1)为总体平方和的自由度;(n–k–1)为残差平方和的自由度。
3 模型验证
3.1 模型对比
为客观评价XGBoost算法在预测风电机组发电机轴承温度方面的能力,在硬件配置相同的情况下,另外采用随机森林算法、CatBoost算法建立相应模型对相同训练集和检验集进行比较。采用与前文XGBoost算法相同的参数调整策略,对建立的随机森林算法模型、CatBoost算法模型进行参数调整和训练,得到的不同评价指标结果如表3所示。将表3得到的指标结果绘制成对比图,如图2所示。
表3 不同算法模型的评价指标结果Table 3 Results of evaluation indexes of different algorithm models
图2 不同算法模型的评价指标结果比较Fig.2 Comparison of evaluation indexes results of different algorithm models
在3种算法模型硬件配置均相同的条件下,从表3和图2的结果可以看出:1)在模型误差方面,XGBoost算法模型的MSE、MAE和MAPE这几项评价指标的值均小于随机森林算法模型和CatBoost算法模型的值;2)在拟合效果方面,XGBoost算法模型的值最高;3)在训练时长方面,随机森林算法模型的训练时长最短,XGBoost算法模型的训练时长最长。综上所述,XGBoost算法在发电机轴承温度预测方面的能力显著优于随机森林算法和CatBoost算法,且其预测的准确率高、时效性强、稳健性好。
将训练好的采用XGBoost算法建立的风电机组发电机故障监测预警模型部署到风电场的SCADA系统的大数据平台,即可实现发电机轴承A温度和发电机轴承B温度的实时预测。
3.2 模型实证
为了验证所训练的风电机组发电机故障监测预警模型的准确性及适用性,选取了位于山东省日照市莒县的风电场中同为1.5 MW型号的5号风电机组进行实证分析。以2020年1-6月时该风电机组的实测数据为输入值,根据风电场的实况故障记录表,将记录中故障前、后各一段时间的数据输入训练好的风电机组发电机故障监测预警模型,对该风电机组的发电机轴承A、B的温度进行预测。若模型预测的温度曲线与风电场实测温度曲线出现持续偏离状态,则可认为该风电机组运行状态异常。
以发电机轴承B的温度为例,选择其中1条故障记录进行分析。该风电机组的发电机于2020年3月18日09:43:00这一时间点发生了故障,取其故障前、后各一段时间的数据进行分析,共约400个样本数据(发生故障的时间点在样本编号200附近)。发电机轴承B的温度趋势图如图3所示。
图3 发电机轴承B的温度趋势图Fig.3 Temperature trend diagram of generator bearing B
在图3中标出的a点附近,发电机部件出现了故障,导致实测温度与预测温度出现偏差,而在风电场故障表中确实有该时间点发电机部位的故障记录(发电机碳刷故障),表明本文提出的风电机组发电机故障监测预警模型能够有效监测到发电机故障。
发电机轴承B的温度残差(即实测温度与预测温度之差)图如图4所示。
图4 发电机轴承B的温度残差图Fig.4 Temperature residuals diagram of generator bearing B
由图4可以看出,发电机轴承B的温度残差曲线在持续波动。虽然起初波动幅度较小,但仍可明显看出,在红框范围内温度残差曲线的波动幅度巨大,这是由于发电机故障发生后,故障数据导致的结果。因此,风电场的维修人员可根据故障前温度残差曲线的持续波动信号,结合关键特征变量重要性排序表(即表1),对风电机组发电机进行提前定点维修检查,从而可避免风电机组发电机后期出现较大的故障导致部件损坏。
4 结论
本文在特征工程中融合运维专家经验和Pearson相关系数、 XGBoost算法对特征集进行综合筛选,并在此基础上利用SCADA系统的数据库建立了集成机器学习模型,经过参数调整后得到了最优风电机组发电机故障监测预警模型。随后,在相同配置硬件情况下,对XGBoost算法模型与采用随机森林算法、CatBoost算法建立的模型进行了对比,结果显示:XGBoost算法模型的精度高、可并行计算且综合效果最好。将训练好的风电机组发电机故障监测预警模型部署完成后,可利用模型态势分析(即实测温度曲线与模型预测温度曲线)、温度残差对比判断出风电机组发电机的运行状态。若风电机组发电机发生故障,运维人员结合自身经验,按模型关键特征变量相关性大小诊断故障产生的原因,并定位故障部件,从而可实现故障状态监测和故障原因诊断,降低风电机组的故障损失,最终提高风电场的经济效益。