陈德余,张 玮*,王 辉,房 栋
1.齐鲁工业大学(山东省科学院) 信息与自动化学院,山东 济南 250353;2.山东大学 电气工程学院,山东 济南 250061;3.济南市水利工程服务中心,山东 济南 250013
近年来,受我国相关政策扶持并且在全球能源发展趋势影响下,风电装机容量获得快速增长。截至2022年4月底,我国风电装机容量约3.4亿千瓦,同比增长17.7%[1]。而由于风电出力的随机性和波动性,大量的风电并网对电力系统的安全稳定运行提出了挑战,对风电功率预测的相关技术研究也具有了更为重要的现实意义。对风电未来一段时间的输出功率进行预测,然后根据预测结果预留一定消纳空间是有效的技术手段。若预测精度低,为了保障电力系统运行安全,火电等常规电源备用增大,新能源消纳空间相应减少,从而造成弃风量的增加。反之,提高对风电功率的预测精度可有效提升风电的消纳率。
因此,如何创建一个高准确率预测系统,并能够根据结果制定科学调度计划,一直是学者关注的重要问题[2]。
风力发电预测的研究方法主要有物理方法、统计方法和人工智能方法[3]。其中,人工智能方法又包含机器学习、深度学习和组合模型。物理方法主要是构建物理模型进行计算,而建模相对困难。统计方法主要是时间序列法[4],它将历史功率数据作为训练样本,适用于平稳时间序列且数据样本量较少的情况。机器学习主要有随机森林[5]和支持向量机[6],深度学习主要有卷积神经网络(convolution neural network,CNN)、LSTM和GRU,组合模型是将不同算法进行优缺互补,变权重系数组合在一起。由于传统算法仅使用单个样本的特征,而忽略了多个按照时间序列组织在一起的样本间具有很强的关联性,具有丢失序列信息的问题,而LSTM和GRU网络包含循环计算层,可以提取时序数据中的时间特征,所以适合于处理输入数据为时序数据的风电功率预测[7]。但是当输入数据为长时序列时,LSTM和GRU网络容易丢失序列的信息,从而使模型的准确率降低[8]。针对此问题,文献[9-10]提出了一种基于CNN和LSTM相结合的预测方法,文献[11-13]在CNN-LSTM的基础上,分别使用主成分分析和离散小波变换对原始数据进行分解,对不同数据分量结合算法单独建立子模型,再对子模型的预测结果进行分量叠加。但是,多数实验结果表明,加入CNN的效果反而更差。
Attention机制不同于LSTM和GRU网络只采用最后一个时刻的状态输出,而是给每个时刻的状态输出分配一个自适应的权重系数,使得重要的状态输出不会随时间的增长而消失,进而突显重要信息的作用[14]。GRU在LSTM网络的基础上作了改进,比LSTM网络在大多数的预测中效果更好。PCC在数据预处理中可以提取出高度相关性的特征,能有效提高预测准确率。因此,使用PCC进行数据预处理,将GRU应用到风电功率时间序列预测中,在此基础上加入Attention机制,提出一种基于PCC-GRU-Attention的风电功率超短期预测模型。与LSTM、GRU和CNN-LSTM相比,模型泛化误差显著减小。
PCC是一种相关系数,主要用来衡量2个变量之间相似度大小的一种方法,通常在数据预处理过程中用来提取高度相关性的特征[15]。其计算公式如下。
式中:cov(a,b)为变量a与变量b之间的协方差;m为变量长度;σa和σb分别为变量a与变量b的标准差。当|ρab|≤0.3时,变量a与变量b不存在相关性;当0.3<|ρab|≤0.5时,变量a与变量b低度相关;当0.5<|ρab|≤0.8时,变量a与变量b显著相关;当0.8<|ρab|≤1时,变量a与变量b高度相关。
LSTM在循环神经网络的基础上增加了3个逻辑门控单元:遗忘门ft、输入门it、输出门ot,有效地克服了传统循环神经网络所普遍存在的梯度消失问题[16]。LSTM网络加入了细胞记忆单元,包括当前候选细胞状态Ct-1和t时刻细胞状态Ct,实现在多个时间步长上稳定学习,保存数据状态为隐层输出ht。LSTM网络结构如图1所示。具体计算公式分别为(2)~(7)。
图1 LSTM结构图
ft=σ(Wf[ht-1,xt]+bf),
(2)
it=σ(Wi[ht-1,xt]+bi),
(3)
ot=σ(Wo[ht-1,xt]+bo),
(4)
Ct=tanh(Wc[ht-1,xt]+bc),
(5)
Ct=ft⊗Ct-1+it⊗Ct,
(6)
ht=ot⊗tanh(Ct),
(7)
式中:Wf、Wi、Wo、Wc为权重矩阵;bf、bi、bo、bc为对应的偏置向量;tanh为双曲正切函数;σ为sigmoid函数;⊗为向量点乘。
GRU在LSTM网络的基础上作了改进,将LSTM中的逻辑门控单元遗忘门和输入门改进为更新门,使得在结构上只有重置门和更新门,简化了网络结构、减少了训练参数、降低了学习训练时间[17]。因此,本文将GRU应用到风电功率时间序列预测中。GRU的网络结构如图2所示,其计算公式如下。
图2 GRU网络结构
rt=σ(Wrht-1+Urxt+br),
(8)
zt=σ(Wzht-1+Uzxt+bz),
(9)
ht=tanh(Whxt+Uh(rt⊗ht-1)+bh),
(10)
ht=(1-zt)⊗ht-1+zt⊗ht。
(11)
式中:Wr、Ur、Wz、Uz、Wh、Uh为权重矩阵;br、bz、bh为对应的偏置向量;tanh为双曲正切函数;σ为sigmoid函数;⊗为向量点乘。
当人们的大脑处理大量复杂信息时,通常会把注意力集中在主要信息上,从而减少对次要信息的关注,以便得到更有价值的信息,减少其他无关信息,这就是大脑的注意力机制。通过模仿人脑处理这种信息过载的方式,在深度学习领域,人们提出了Attention机制。当时间序列过长时,传统LSTM网络可能会因此丢失重要信息,而与传统LSTM网络直接采用最后一个时刻的隐层状态输出不同,Attention机制会为每个时刻的隐层状态输出分配一个自适应权重系数,再通过概率分布函数使其满足概率分布,其结果称为注意力分数,最后与每个时刻的隐层状态输出线性加权得到最终特征向量。注意力机制模型如图3所示,其计算公式为(12)~(13)。
图3 注意力机制模型
at=σ(Waht+ba),
(12)
式中:Wa为权重矩阵;ba为偏置向量;σ为sigmoid函数;⊙为Hadamard乘积,即矩阵对应元素乘积;at为注意力分数;st为注意力层t时刻的输出。
本文所提预测模型结构如图4所示,主要包含GRU模块处理时间序列以及Attention模块优化输出权重,分别为输入层、GRU层、Dropout层、批标准化层、Attention层和输出层。
图4 基于PCC-GRU-Attention风电功率预测模型结构
(1)输入层。将原始数据归一化并转变为时间序列数据,使其作为该模型的输入,表示如下。
X=[x1,x2,…,xT]=[x(1),x(2),…,x(n)]T。
(14)
展开后可表示为T×n矩阵形式:
(2)GRU层。设置两层GRU层以获取时间序列数据不同时刻的状态信息。
(3)Dropout层。在神经网络反向传播训练过程中,根据相应的概率舍弃一部分的神经元,作用是防止模型过拟合,提高模型泛化能力。
(4)批标准化层。在神经网络训练中,虽然对输入数据进行了归一化处理,但是输入数据在前向传播过程中经过参数矩阵乘法以及激活函数的非线性运算之后,数据分布情况发生变化,尤其是在深层网络结构中,数据分布的变化程度会随着每层运算而越来越大。如果能在网络的中间层也进行归一化处理,将对网络的训练效果起到积极作用。假设上一层网络输出结果为X=[x1,x2,…,xm],则可用公式(16)~(19)对其进行批标准化。
式中:μ为上一层输出数据的均值;m为此次训练样本batch的大小;σ为上一层输出数据的标准差;ε是防止标准差为0而设置的无限趋近于0的正数;γ、β分别是作为可训练参数的缩放因子和偏移因子。
(5)Attention层。根据本文1.4节计算公式(12)、(13)优化输出权重。
(6)输出层。其输入是Attention层的输出,经由一层全连接层输出下一时刻的风电功率。
(1)相关性分析。风电功率的大小与多种气象特征参数有关,利用PCC法分析不同参数与风电功率的相关程度,根据实验结果,进一步确定与风电功率高度相关的气象特征作为模型输入。
(2)数据归一化与反归一化。由于风电气象特征数据度量单位不同,此外在数据集中可能存在异常数据,引起神经网络训练时间增加,甚至可能使网络无法收敛,为了避免出现这种情况以及处理数据的方便,可以对输入数据进行归一化处理[17]。采用公式(20)对历史功率数据和气象特征数据进行归一化处理。同时模型输出的风电功率结果是归一化后的结果,为了使其具有物理意义,可以采用公式(21)对结果进行反归一化处理。
x=(xmax-xmin)x′+xmin,
(21)
式中:x′为归一化数值;x为实际值;xmax、xmin分别为x的最大值和最小值。
(3)确定时间序列长度T,重构输入数据。根据风电功率数据的自相关函数(autocorrelation function,ACF)图,确定时间序列长度T的大小,按单位长度的滑动窗口逐步向后滚动将数据集重构成式(15)的形式[18]。
(4)训练最优模型。为了获取最优模型,需要选取合适的超参数,例如神经网络层数和每层的神经元个数,此外还要考虑学习率、优化器、激活函数等的选取。通过多次实验,利用评价指标比较每次实验结果,选出误差最低的参数组合。
(5)使用最优模型完成预测。导入最优模型,完成某时刻的风电功率预测,使用评价指标和可视化图形分析。
采用某风电场的全年历史数据对所提组合预测模型的预测精度进行分析研究,此风电场的额定容量为99 MW,样本数据选取2019年全年实测数据,包括实际场站风电输出功率以及距地面10 m位置处风速风向、30 m处风速风向、50 m处风速风向、70 m处风速风向、风机轮毂位置处风速风向、气温气压相对湿度等数据,时间分辨率为15 min。为了根据前T个时刻数据,实现下一个15 min风电功率的超短期预测,将2019年前11个月的数据当作训练集,最后一个月的数据当作测试集。
3.1.1 相关性分析实验结果
利用PCC法对风电功率数据和上述气象特征数据共计14个变量进行相关性分析实验,实验结果如图5所示。根据所述PCC法可知,图中数值的绝对值越接近1,代表相应两变量的相关性越大,并且当数值结果大于0.8时,其对应的两变量具有高度相关性。由图5可知,与风电功率高度相关的气象特征为30 m以上高度处风速。
(a)图一 (b)图二图5 相关性分析热力图
3.1.2 自相关性分析实验结果
根据ACF图对风电功率时间序列数据进行自相关性分析实验,实验结果如图6所示。其中横轴数值代表延迟阶数,纵轴数值代表原功率序列与延迟不同阶数后的功率序列的相关性系数。根据图6所示结果和超参数选择实验验证,最终确定输入数据的时间序列长度T为30。因此,模型的输入为前30个时刻的特征为风电历史功率、距地面30 m位置处风速、50 m处风速、70 m处风速、风机轮毂位置处风速的时间序列数据,输出为下一时刻的风电功率。同时,在训练集和测试集分别按单位长度的滑动窗口逐步向后滚动建立时间序列数据集。
图6 风电功率ACF
选用均方根误差(root mean square error,σRMSE)、平均绝对误差(mean absolute error,σMAE)与决定系数(r-square,R2)3个指标评估模型预测性能[19]。σRMSE和σMAE评估预测值与实际值之间的偏差,其值越小预测结果越准确。R2反映实际数据与训练模型拟合的程度,其值越近1预测效果越好[20]。具体计算公式如下:
实验所用程序是在tensorflow2.0深度学习框架下采用Python语言编写,其内置许多封装性强的库,方便调用。多次进行实验优化模型超参数,最终确定模型最佳参数为表1所示。
表1 模型结构与参数设置
为验证PCC-GRU-Attention预测模型的可行性,将其分别与CNN-LSTM、LSTM和GRU模型的预测效果进行对比,结果如表2所示。
表2 各个模型某日预测结果
从表中可以看出,所提模型相比于CNN-LSTM、LSTM和GRU模型,σRMSE分别降低了57.48%、22.28%、10.43%;σMAE分别降低了48.99%、37.87%、17.24%;R2分别提高了12.37%、1.27%、0.53%。综合各指标,可以看出所提模型有效减小了泛化误差。
为了直观地展示所提模型与其它模型的预测效果对比,以15 min为间隔,对某日96个时刻风电功率分别用不同模型进行了预测,其预测对比曲线如图7所示。从图7中可看出,所提模型相比于实际值误差最小,CNN-LSTM相比于实际值误差最大。
图7 不同模型某日风电功率预测曲线对比
针对LSTM网络和GRU网络处理长时序列易丢失序列信息的问题,同时为了提高预测精度,提出一种基于PCC-GRU-Attention组合风电功率超短期预测方法。所提组合模型的特点为:
1)使用PCC对气象特征数据进行相关性分析,根据数值结果选出高度相关性的特征参数作为输入。
2)应用注意力机制能够极大优化输出权重占比,有效减小模型泛化误差。
3)所提模型与CNN-LSTM、LSTM和GRU模型相比,有效提高了模型预测精度。
组合模型可以弥补单一模型的不足之处,在后面的研究过程中,会考虑更多有效的方法。同时,目前的研究只是局限于预测结果的确定性预测,为了提高结果的置信度,可以考虑不确定性预测,包括概率预测和区间预测。