基于CatBoost机器学习模型的风电机组机舱温度异常预警研究
2023-02-09张惠强高娟娟任晓旭陶永刚赵禹茗黄剑锋
张惠强,高娟娟*,任晓旭,陶永刚,赵禹茗,黄剑锋
(1.国电电力内蒙古新能源开发有限公司,呼和浩特 010020;2. 华风数据(深圳)有限公司,深圳 518110)
0 引言
温度作为机械部件是否正常工作的重要标志,具有较大的研究意义。目前对于风电机组的研究多为小部件研究,缺少对于风电机组机舱环境的整体研究。机舱内部各个机械部件都会对整个机舱温度变化产生影响。机舱温度变化是风电机组运行正常与否的一个关键指标。
文献[1]提出采用非线性状态估计(nonlinear state estimation,NSET)技术结合反向传播神经网络 (back propagation neural network,BPNN)模型建立了风电机组发电机前轴承温度的预测模型,同时使用模糊综合评价判断风电机组的运行状态;文献[2]基于数据采集与监视控制(supervisory control and data acquisition,SCADA)系统获取数据融合稀疏自编码器及深度神经网络,提出了风电机组在线监测方法;文献[3]使用有限元分析,提出了自适应比例积分微分(proportional integral derivative,PID)算法,实现了对机舱内部的控制;文献[4]针对超温的故障模式、影响及重要度分析(failure mode,effects and criticality analysis,FMECA),提出了超温FMECA的分析表及危害性矩阵图,从而找出最严重的故障影响因素;文献[5]提出了基于最大信息系数 (maximal information coefficient,MIC)的变量筛选方法,基于长短时记忆网络(long short term memory,LSTM)建立了多变量的机舱温度预测模型;文献[6-7]基于计算流体动力学(computational fluid dynamics,CFD)分析方法,对机舱内部进行了分析;文献[8-9]通过建立风电机组机舱仿真模型,对机舱进行了模拟计算;文献[10]采用多项式回归拟合方法,使用时间滑动窗口,建立了数学模型,根据概率值来确定是否预警。
本文对风电机组机舱温度进行分析,选取正常运行状态下的机舱温度数据,使用Pearson相关系数和Spearman相关系数,以及轻型梯度增强学习器 (light gradient boosting machine,LightGBM)[11]、CatBoost(gradient boosting with categorical features support)算法[12]对特征重要性排序,筛选出对机舱温度影响较大的特征变量;然后采用LightGBM、CatBoost和随机森林(Random Forest)[13-14]算法分别建立模型,基于评价指标选取最优模型作为风电机组机舱温度异常预警模型[15-17]。该模型在机舱温度的预测值和真实值相差较大时,会发出预警,专业检修人员可以根据模型输出的特征变量重要性排序,优先检修相关性较高的部件。
1 方法体系
1.1 建模方法
CatBoost算法[18]是一种基于对称决策树(oblivious trees)的基学习器,从而实现参数较少、支持类别型变量和高准确性的梯度提升树(gradient boosting decision tree,GBDT)框架。该算法支持类别型变量,对于非数据型变量也可以进行预处理,主要考虑的是快速有效地处理类别型特征。此外,CatBoost算法还解决了梯度偏差(gradient bias)及预测偏移 (prediction shift)的问题,从而减少了过拟合的发生,提高了算法的准确性和泛化能力。
CatBoost算法原理包括以下5个方面:
1)处理类别型特征,统计某个或某些特征出现的频率值,通过对数据的随机排列生成树,并将类别型特征进行多组组合;
2)解决梯度偏差,采用梯度步长的无偏估计,使用传统的GBDT方案来解决梯度偏差;
3)将不同类别型特征的组合作为新的特征,以此来获得高阶依赖;
4)采用对称树作为基预测器,将所有浮点特征、统计信息和独热编码特征进行二值化,并使用二进制特征来计算模型的预测值;
5)搜索最佳分割方法,该算法采用了不依赖于原子操作的直方图计算法。
1.2 参数调优
网格搜索(GridSearchCV)[19]是在指定范围内寻找在验证集上精度最高的超参数组合,网格搜索会遍历给定范围内所有超参数组合,由于没有错过任何超参数,搜索效果很好。因此,本研究选用网格搜索方法确定最优参数组合。
1.3 评价指标
本文采用风电机组机舱温度的预测值与实测值之间的均方误差 (mean squared error,MSE)、均方根误差 (root mean square error,RMSE)、平均绝对误差 (mean absolute error,MAE)、判定系数R2,作为判断模型预测效果可靠性的评价指标。
MSE的计算式为:
式中:i为采样点;n为采样点个数;yi为风电机组机舱温度的实测值;为风电机组机舱温度的预测值。
RMSE的计算式为:
MAE的计算式为:
判定系数值越接近1,说明模型的预测效果越好。判定系数的计算式为:
2 模型预警实施
2.1 数据处理及特征工程
本文基于SCADA系统,采集了威海文登风电场中编号为A01的风电机组在2018年1月—2020年12月时间段内的分钟级历史数据[20],并使用控制状态列删除待机、检查、维修等不健康运行状态时间点的样本数据及故障前后24 h的样本数据后,剩余的正常运行状态的样本数据量中记录数为892794条,特征(测点)为73个。由于数据量较大,数据缺失的占比较小,直接删除缺失数据所在行,剩余数据量中记录数为876852条,特征(测点)为46个。
数据量过大,特征变量过多,往往会给机器学习算法带来维度灾难,并且在现实应用中,时间消耗也是需要考虑的重要因素。选择部分重要特征变量,在确保一定精度条件下降低学习任务的难度,从而提升模型的效率,减少算法学习时间,增加模型的可解释性,使模型泛化能力更强。
针对46列特征变量,首先,计算每一列特征变量自身方差,方差大表明该列特征变量的变化较大,含有可能影响机舱温度的信息;对于方差为零的列,说明该列数据为常数,不含对于机舱温度有价值的信息,因此直接删除。然后采用Pearson相关系数和Spearman相关系数、LightGBM算法[21]和CatBoost算法计算特征变量的重要性并排序。其中,相关系数法是根据特征变量自身属性(连续或离散)计算其与机舱温度相关系数,对于连续型特征变量使用Pearson相关系数,对于离散型特征变量使用Spearman相关系数;然后根据上述相关系数大小排序得到本算法的特征变量重要性排序。针对LightGBM和CatBoost算法重要性取值较大的问题,用各个特征变量的重要性数值与所有特征变量的重要性总和值相除,对得到的比值进行加权,得出综合排名,最终选择综合排名前20位的特征变量(如表1所示)作为最终风电机组机舱温度异常预警模型的输入特征变量,以减少数据冗余,降低时间消耗。
表1 综合排名前20位的特征变量Table 1 Characteristic variables of top 20 comprehensive ranking
(续表)
2.2 建模与参数调优
选择CatBoost、LightGBM和Random Forest[22]互为对照算法,使用表1得到的20个特征变量,分别建立了3个风电机组机舱温度模型(下文分别简称为“CatBoost模型”“LightGBM模型”“Random Forest模型”);然后使用网格搜索,查找出每个算法建立的风电机组机舱温度模型的最优超参数组合,具体如表2所示。对不同模型的评价指标值进行综合比较,结果如图1所示。
表2 采用不同算法建立的风电机组机舱温度模型的最优超参数组合Table 2 Optimal super parameter combination of wind turbine nacelle temperature models established by different algorithms
图1 不同模型的评价指标对比Fig. 1 Comparison of evaluation indicators of different models
从图1可以看出:3个模型的最佳模型得分(best score)均较高;而CatBoost模型的判定系数最大,达到了0.9989,且3个误差值均为最小,说明其评价指标值最优。因此,本文选择CatBoost模型作为风电机组机舱温度异常预警模型。
2.3 模型验证
为了验证风电机组机舱温度异常预警模型的预警效果,筛选威海文登风电场的故障记录,查找风电机组机舱温度异常故障,发现2018年1月15日的10:00~14:00机舱温度异常。筛选此故障时段及其前后一段时间内的数据记录,调用训练完成的CatBoost模型,利用风电机组机舱温度的预测值与真实值作图,对比结果如图2所示。图中:红色方框内为真实故障时段。
图2 风电机组机舱温度的预测值与真实值的对比Fig. 2 Comparison between predicted value and real value of nacelle temperature of wind turbine
从图2可以明显看出:在真实故障时段,风电机组机舱温度的预测值和真实值之间有较大的偏离趋势[22]。同时,由于采用的是分钟级数据,即在发生故障之前约18 h(即图中A点)时,机舱温度的预测值和真实值就已经产生了偏离,此时就可以对机舱温度进行温度异常预警。维修人员可以根据预警提示检修机舱内部的部件,但是由于机舱内部的机械部件较多,逐一检修会消耗大量时间,此时可以根据风电机组机舱温度异常预警模型输出的特征变量重要性排序,优先检修重要性排名靠前的部件,以节省检修消耗的时间,提高工作效率。风电机组机舱温度异常预警模型输出的特征变量重要性排序如图3所示。图中,特征变量名称为预警模型中标准名称,与表1对应。
图3 风电机组机舱温度异常预警模型输出的特征变量重要性排序Fig. 3 Importance ranking of characteristic variables output from early warning model of abnormal wind turbine nacelle temperature
3 结论
本文选取正常运行状态下的风电机组机舱温度数据,同时使用Pearson相关系数和Spearman相关系数,以及LightGBM、CatBoost算法的特征变量重要性等权重加权,筛选出对机舱温度影响较大的特征变量,得到综和排名前20位的特征变量作为风电机组机舱温度的特征变量集合;然后,选择CatBoost、LightGBM、Random Forest算法分别建立3个模型,根据评价指标选出最优模型作为风电机组机舱温度异常预警模型,并使用实际的风电机组机舱温度故障的历史数据进行了验证分析。该模型可以在风电机组机舱温度预测值与真实值之间偏离程度较大时发出预警,专业检修人员可以根据模型输出的特征变量重要性排序,优先检修相关性较高的部件,实用性较强。
实现风电机组故障预警可在故障发生前提醒工作人员检修关键部件,从而减少停机频率。目前风电机组的运行和维护还处于发展阶段,本文对于风电机组机舱温度异常预警的研究极具现实意义。