基于CNN-LSTM-XGBoost模型的超短期光伏功率预测
2022-09-29汤德清侯林超
汤德清,朱 武,侯林超
(上海电力大学电子与信息工程学院,上海 201300)
近年来,以光伏发电为代表的可再生能源发电得到迅猛发展,在电力系统装机容量中的占比逐步增加。随着光伏发电大规模并入电网,光伏发电的随机性与波动性,可能对主电网造成冲击,影响电力系统的稳定运行。对光伏发电功率进行预测有助于调度部门制定合理的发电计划,利于电网的调频、调压、备用等,进一步保证供电的安全性和经济性[1]。
现有的光伏发电功率预测方法主要分为物理建模法和统计法。统计法预测精度较高且不需要光伏发电组件的详细参数,运用统计法预测光伏发电功率成为主流趋势,常用的统计法包括支持向量机[2]、马尔可夫链[3]、极限学习机[4]、人工神经网络[5]、时间序列预测[6-7]等方法。
文献[8]通过改进的Kohonen 聚类模型进行天气聚类,将输入数据在季节维度上分为春、夏、秋、冬季,利用多种群果蝇优化广义回归神经网络模型(MFOA-GRNN)进行光伏发电预测,缩短了模型训练时间,提高了预测精度。随着预测技术发展,以小波分析和经验模态分解为代表的信号预处理方法逐渐应用在光伏功率序列预处理中,文献[9]将光伏输出功率时间序列在不同尺度上进行小波分解,最后将输出的预测结果叠加得到原始输出功率序列的预测值。此方案的弊端在于小波分解会产生谐波,因此求和重构之后存在不可避免的误差。
上述文献使用的方案往往采用单一预测模型,存在预测精度低、稳定性差的问题。针对上述问题,本文提出了基于CNN-LSTM-XGBoost 模型的超短期光伏发电功率预测方法,该方法综合了3 种模型的优势,解决了单一模型精度不高的缺点。为长短期记忆(long short term memory,LSTM)网络添加了卷积神经网络(convolutional neural network,CNN)作为局部特征预提取模块,采用误差倒数法将XGBoost 模型与其并行拼接,构成最终的光伏发电功率预测模型。使用Pearson 相关系数法筛选出与光伏发电功率相关系数较高的气象因素作为输入特征,通过实验确定模型的最佳超参数,最后通过算例分析证明本模型提高了预测精度。
1 CNN-LSTM-XGBoost模型
1.1 CNN-LSTM 网络结构
1.1.1 卷积神经网络
卷积神经网络是一种基于深度学习的神经网络,常用于处理具有已知网格状拓扑的数据,在时间序列分析、计算机视觉和自然语言处理等领域广泛应用[10]。CNN 的基本结构如图1 所示。
图1 卷积神经网络结构
卷积层是CNN 的核心组成部分,在卷积层中,采用滤波器对输入进行卷积操作,得到相应的特征图,从而捕捉数据的局部、细节信息。经过多层卷积层的计算,低级特征被逐步提取成为高级特征。卷积层的特征输出可以用式(1)、(2)表示:
式中:Ci、Ci-1为第i层与第i-1 层的特征输出;⊗为卷积运算;bi为第i层的偏移量;原始输入C0为I。
连续的卷积层之间常常需要插入池化层,池化层将卷积层特定位置的输出用附近数据的统计量代替,使之只保留主要特征,减小了下一层的计算量,并且能够有效防止过拟合。
1.1.2 长短期记忆网络
LSTM 是一种改良的循环神经网络(RNN),可以通过遗忘门、输入门和输出门去除或增加“细胞状态”信息,使其仅保留重要信息,从而避免了RNN 存在的梯度爆炸现象。长短期记忆网络如图2 所示。
图2 LSTM结构
遗忘门中,当前网络的输入xt、上一时刻网络的输出ht-1和上一状态的记忆单元St-1决定状态记忆单元中的遗忘部分,避免了上一时刻的无用信息继续向下传递。输入门中,当前网络的输入xt经函数变换后决定状态单元中的保留部分。输出门中,记忆单元的输出St和ot决定t时刻的输出ht。
1.1.3 CNN-LSTM 混合神经网络模型
本文提出的CNN-LSTM 混合神经网络结构如图3 所示。CNN 由两层一维卷积层(Conv1D)和两层最大池化层(MaxPooling1D)组成。Flatten 层对数据扁平化处理,将输入“压平”成一维向量,再经过RepeatVector 层处理成LSTM 网络要求的输入格式。LSTM 网络包含三层LSTM 层,并在每层之间加入Dropout 层以防止在训练时过拟合。最后通过全连接层(Dense)输出预测值。
图3 CNN-LSTM 网络结构
1.2 XGBoost 预测模型
XGBoost是在梯度提升树(GBDT)基础上改进的机器学习算法,其基本思想是通过不断向模型中加入新的树,来纠正上次预测的残差,最终把多个决策树加权求和得到预测结果。
XGBoost 采用增量训练方法,每一次训练在保留先前模型的基础上,向决策树函数空间加入新函数。XGBoost 的迭代过程如下:
XGBoost整体流程如图4 所示。
图4 XGBoost模型流程图
1.3 CNN-LSTM-XGBoost预测模型
本文采用了误差倒数法将两个模型并行拼接。通过并行CNN-LSTM 与XGBoost 结构,在CNN-LSTM 提取局部与时序特征的同时由XGBoost 实现统计角度的预测函数拟合,最大化利用模型训练时间,提升模型预测精度[11]。误差倒数法公式如下:
式中:ω1、ω2分别为CNN-LSTM 与XGBoost 的权重系数;f1t、f2t分别为这两个模型的预测值;ε1、ε2分别为这两个模型的误差。
2 数据预处理
2.1 数据归一化
(1)异常数据处理
异常数据会导致模型对特征的拟合能力变差,因此修正数据是预测研究的前提。
对异常数据处理包括检测和替换两部分。检测异常值基于3-sigma 原理:
式中:X为原始数据为平均值;σ为标准差。
由于气象数据具有不易突变的特点,因此本文采用前向替代法,使用前一采样时刻的值代替该异常值。
(2)标准化
不同特征数据的量纲差别很大,不利于模型训练,且影响拟合速度,因此需要对历史数据进行归一化。标准化公式为:
式中:xa、xb分别为标准化后与标准化前的数据;xmax、xmin分别为各气象因素原始数据的最大值和最小值。
2.2 特征选择
特征维数过多会引入冗余信息,拉长了训练时间还会提高建模难度。在选择输入特征时,应该选择与光伏发电功率关联性较强的因素。
Pearson 相关系数可以用来衡量不同气象因素与光伏发电功率之间的线性相关程度。二维Pearson 相关系数的计算公式为:
光伏发电历史功率与各气象因素之间的Pearson 相关系数如表1 所示。从表1 中分析得出,温度、湿度、总辐射强度、风速和散射辐射强度相关性较强,本文选择以上5 个气象因素作为特征。
表1 各气象因素的Pearson 相关系数
3 算例分析
本文采用澳大利亚爱丽丝泉光伏电站提供的2014 年1月1 日—2015 年12 月31 日的历史功率数据及气象数据进行仿真分析。数据的采样时间间隔为15 min,每天可采集96 组观测值。数据集共有70 077 组数据,选取前18 个月的数据作为训练集,后6 个月的数据作为测试集。
3.1 模型评估指标
采用三种误差指标评估模型,分别为平均绝对误差(MAE)、均方根误差(RMSE)和平均绝对误差率(MAPE)。三种评估指标的计算公式如下:
式中:Pn为光伏电站发电功率的实测值为光伏发电功率的预测值;N为测试样本数量。
3.2 确定输入时间步长
输入步长的选择要在保证预测精度的情况下尽量降低模型复杂度,因此计算某个时刻功率与12 个相邻历史时刻功率之间的Pearson 相关系数。输出功率的自相关系数如表2所示。
表2 输出功率自相关系数
由表2 可以看出,相关系数随时间步长的增加而逐步递?减,步长为1~10 时相关性较强。基于初步的时间步长范围,利用测试集进行输入步长实验,各项误差指标变化趋势如图5 所示。由图5 可以看出,步长为7~9 时各项误差指标较小,预测精度较高。随着步长的增加,训练时间也会增长,因此综合各项指标,将步长设为8。
图5 误差指标随时间步长的变化
3.3 仿真结果
基于多模型融合的光伏功率超短期预测算法流程如图6所示。将数据集划分为训练集、验证集和测试集,采用单步预测的方式,使用T-8 时刻到T-1 时刻共8 个时间点的数据预测T时刻的输出功率,即使用前两个小时的历史数据预测15 min 后的光伏功率,每15 min 滚动一次,进而完成对整日的预测。由于夜晚的光伏发电功率为0,因此只对7:00—18:00 共44 个时刻进行预测。预测流程如图6 所示。
图6 光伏功率预测流程
为直观展现本文所提出模型对预测精度的提升,选择2015-11-22(晴天)、2015-12-17(多云)和2015-12-21(雨天)作为待预测日,分别使用CNN-LSTM、XGBoost、支持向量机(SVM)和CNN-LSTM-XGBoost 模型对待预测日进行预测。各模型预测值与真实值的对比如图7 所示。
由图7(a)可知,晴天时光伏功率的波动幅度比较小,四个模型的预测曲线都能基本拟合光伏发电功率实际值曲线,表示各模型都能够较为准确地识别出功率输出特征。其中,在上午和下午拟合效果较好,但在功率高峰的中午各模型出现了不同程度的误差。在正午时间段,融合模型的预测精度明显高于其他三种算法,预测曲线在实际值曲线两端同步变化。
图7 各天气类型下预测结果对比
由图7(b)可知,多云天气下,云层受风速和风向的影响,其位置和厚度都会不断变化,导致太阳辐照强度产生波动。因此相较于晴天,光伏发电功率波动较大,各模型预测偏差较大。图中发电功率实际值存在多个峰值,在峰值处本文所提模型表现最佳,其他各模型预测误差较大。说明本文所提模型在天气变化时具有较强的抗干扰能力和泛化能力。
由图7(c)可知,雨天情况下太阳辐照度较小,导致光伏发电功率幅值较小。相较于多云天气,温度、湿度等气象因素变化更剧烈,存在更多不确定性与随机性,使得功率波动更加频繁,预测难度更高,无法对每个时间段都有很好的拟合效果。本文所提融合模型相较于其他三种模型,预测曲线拟合性最高,说明本文所提融合模型对输入特征的敏感度较高。
各预测模型在不同天气下的预测误差对比见表3,在三种天气情况下,本文所提模型的各项误差指标均为最小。这表明本文所提CNN-LSTM-XGBoost 模型在不同天气情况下都能够具有较高的预测精度。
表3 预测误差对比
本文所提融合模型的平均MAE、平均RMSE和平均MAPE分别为0.355 kW、0.422 kW 和9.297%。与CNN-LSTM相比,分别降低了26.04%、28.03%和23.75%;与XGBoost 相比,分别降低了23.71%、37.51%和19.75%。由此可知单一模型对光伏发电功率预测时效果较差,使用本文所提出的融合模型有效提高了预测精度。
4 结论
为充分利用历史数据提高预测精度,本文将多维气象数据作为输入特征,提出基于CNN-LSTM-XGBoost 融合模型的预测方法,得出以下结论:
(1)通过使用大量历史数据训练模型,能够得到较为理想的预测精度,充分利用气象数据及历史功率数据,避免了对其他外部信息的依赖。
(2)选择相关系数较高的因素作为输入特征能够提高模型精度,发挥算法优势。使用Pearson 相关系数法分析历史数据,去除相关系数低的气象因素,并且确定了输入数据的时间步长,降低了模型复杂度,缩短了计算时间。
(3)CNN-LSTM-XGBoost 融合模型能够综合各模型的优势,减小样本的偶然性对单一模型造成的波动,从而提高了光伏功率预测的精度与稳定性。仿真实验中可以尝试多种融合方式,寻找最优融合方式。
通过对比实验验证,本文所提出的光伏功率预测方法可以有效提高精确度,对于电网的运行与调度具有一定的指定意义。