基于生成对抗网络的光伏出力区间预测方法

2021-05-21 04:47顾永涛徐泽禹盛庆博李知艺
哈尔滨理工大学学报 2021年2期
关键词:实测值置信度出力

顾永涛,徐泽禹,盛庆博,张 卫,李 炜,谭 嘉,李知艺

(1.中国石油化工股份有限公司胜利油田分公司 孤东采油厂,山东 东营 257051;2.国家电网有限公司华东分部,上海 200120;3.中国石油化工股份有限公司胜利油田分公司 技术检测中心,山东 东营 257062;4.中国石油化工股份有限公司胜利油田分公司 安全环保质量管理部,山东 东营 257062;5.浙江大学 电气工程学院,杭州 310007)

0 引 言

近年来,全球范围内能源转型趋势明显。作为最具前景的可再生能源利用形式之一,光伏发电在电力系统中的渗透率不断提高[1]。截止到2020年6月,我国光伏发电累计装机容量从2010年26万kW增至2.16亿kW,年均增幅达126%[2]。目前,全球光伏新增装机容量继续呈不断上涨的趋势,预计到2021年全球光伏累计装机容量将达到700GW[3]。然而,受太阳光照、云层、湿度等多种气象因素影响,光伏出力(即发电功率)具有很大的间歇性和不确定性。当光伏发电设备规模化并网后,光伏出力的不确定性将严重威胁电网的稳定性和安全性[4]。因此,准确的光伏出力预测是电网调度部门的重要决策依据,可保证其未雨绸缪,提前调配储能资源和备用机组,以保障电网的安全经济运行水平[5]。

目前,大多数的光伏出力预测方法是点预测,这类方法得到的预测结果一般是确定性的出力值预测,欠缺对光伏出力不确定性的考虑。因此提供给调度部门关于光伏出力可能的变化信息较少,难以表达预测结果的概率可信度[6-9]。基于点预测,调度部门只能依据确定性的预测值调配储能资源和备用机组。当实际出力与预测值存在较大差距时,会导致光伏发电消纳不足或备用容量不足,将严重威胁电网的稳定性和经济性[10]。因此,针对点预测的不足,有部分学者围绕光伏出力开展区间预测的研究。区间预测是研究光伏出力在给定置信度下的预测区间,它由预测结果的上、下界构成。相比于点预测,区间预测能够量化光伏出力的不确定性波动,为光伏并网提供更多有价值的决策信息。依据区间预测的信息,电网调度部门可以灵活调整调度策略,从而可以减少光伏发电损失或减少备用机组不足的窘况,提升光伏并网的经济性和安全性。

随着深度学习技术的发展,越来越多学者将深度学习应用于光伏发电预测,并且验证了深度学习的可行性与优越性。文[11]采用长短时记忆神经网络进行光伏的日前预测,将温度、云层数等气象条件和日前光伏发电值共同作为输入,训练历史数据得到较高精度的光伏预测结果。文[12]首先采用二维小波去噪方法将含噪声的数据预处理,然后基于k-means算法将预测模型分为4种模式,并应用粒子群优化神经网络算法对每个预测子模型进行训练,最后通过算例验证了模型的泛化能力和预测精度。文[13]使用深度置信网络和长短时记忆网络分别进行训练,对各个深度模型的训练结果动态组合,建立了一种动态组合光伏预测模型。文[14]使用有监督学习和无监督学习并存的训练方式,综合考虑模型的节点、层数和迭代次数的影响确定了最优参数,验证了深度学习模型的优越性。文[15]针对光伏出力预测精度依赖于天气状况的问题,以典型天气日数据作为训练样本,采用孤立森林和长短时记忆神经网络预测相似天气日的光伏发电功率,得到了较高精度的预测结果。

近年来,作为典型深度生成模型的生成对抗网络[16](generative adversarial nets,GAN)在可再生能源场景生成方面取得了较多成果。GAN的生成器能无监督学习可再生能源出力特征并生成符合数据分布规律的场景集,但现有研究缺少利用生成器输入变量和输出数据间的相关性和未知性关系进行研究。同时,利用GAN出色的生成能力能够生成多样化的场景,从而确定光伏出力可能发生的区间,这对于研究光伏出力区间预测具有较大的价值。

针对上述研究现状,本文首次提出基于条件生成对抗网络的光伏出力区间预测模型。条件生成对抗网络不仅能够学习到光伏的出力特征,可以构造短期的历史测量数据与预测功率值间的映射关系,还能生成光伏出力可能发生的多个场景,从而有效地实现光伏出力的区间预测。本文将历史发电数据作为条件标签,将其与噪声向量拼接输入到生成器。通过生成器和判别器的对抗博弈,生成器可自动学习到光伏发电功率与条件标签的映射关系。算例结果表明,本文所提出的光伏出力区间预测模型不仅能够学习到上述条件映射,而且能够生成较高质量的光伏出力预测区间,为光伏并网的经济安全运行提供有价值的决策信息。

1 条件生成对抗网络(CGAN)

GAN是一种深度生成式模型,由Goodfellow在2014年首次提出。GAN由生成器和判别器两个重要部分组成,生成器将低维空间的噪声向量z映射至高维空间,生成尽可能接近真实数据的新样本,判别器则负责判断输入数据是否为真实数据。通常,生成器和判别器是两个结构对称的卷积神经网络,利用卷积网络较强的特征提取能力可以提升生成的数据质量[17]。通过两个网络的对抗训练,最终生成器学习到原始数据的分布特征,并且能生成符合真实规律的数据。GAN作为一种生成式模型,在图像生成和缺失数据重建等方面有着广泛应用[18],但目前却较少被用来作为时间序列预测模型。这是因为生成器虽然可以学习历史数据的分布规律,但由于输入为随机的噪声向量,使得用原始GAN难以精确预测未来某个时刻的数据。而条件生成对抗网络[19](conditional generative adversarial nets,CGAN)是在GAN基础上进行改进的一种生成式网络,模型的输入中添加了附加条件,可用于指导数据的生成过程,解决了传统GAN在有噪声的情况下无法控制生成数据模式的问题。CGAN的结构如图1所示,噪声向量z与条件标签c合并后输入到生成器G,产生生成样本。生成样本和真实样本分别和对应条件标签合并后又输入到判别器D,最终输出其输入样本在条件c下为真实样本的概率。在博弈训练过程中,生成器试图生成在条件c下接近真实数据的新样本,判别器则试图区分在条件c下的真实数据或生成数据,两者在这个过程中共同进步。本文把光伏发电历史数据作为训练集,在预测起点把样本划分为真实样本和条件标签,其中预测起点之前的时间序列作为条件,起点之后的数据作为真实样本。与原始GAN相比,CGAN由于在网络的输入中添加了条件,能够学习到历史测量数据与预测功率值间的映射关系,因此能够较好地适应光伏出力预测问题。

图1 CGAN基本结构Fig.1 Basic structure of CGAN

CGAN中生成器和判别器的损失函数如下:

LG=-Ez~pz(z)[D(G(z|c)|c)]

(1)

LD=-Ex~pr(x)[D(x|c)]+Ez~pz(z)[D(G(z|c)|c)]

(2)

式中:E表示计算期望;G(z|c)表示在条件c下的生成样本;D(·)表示判别器判定输入样本为真实数据的概率;z~pz(z)表示从高斯分布pz(z)中采样得噪声向量z;x~pr(x)表示从实际分布采样得一组真实样本x。

同时训练CGAN的生成器和判别器,总的训练过程目标函数为:

Ex~pr(x)[D(x|c)]-Ez~pz(z)[D(G(z|c)|c)]

(3)

构造该目标函数的原则是:当训练生成器时,生成器试图生成既符合条件c的映射又符合真实数据分布的数据,从而欺骗判别器,此时CGAN的训练目标是最小化上述目标函数。当训练判别器时,它试图区分在条件c下的真实数据或生成数据,因此训练判别器时需要最大化上述目标函数。CGAN训练过程本质上是一个极小极大值双方博弈,在博弈结束后,生成器即可学习到真实数据与条件c的映射关系,从而能在给定条件c下生成服从真实规律的数据。

为避免训练过程中梯度消失等问题,采用基于Wasserstein距离的损失函数来代替传统的JS散度,其定义如式(4)所示。Wasserstein距离可用来衡量两个分布的相似性,其值越小,表明两个分布相似性越高。

(4)

式中:x和x′分别表示真实样本和生成样本;Π(pr(x),pg(x′))是以实际分布pr(x)和生成分布pg(x′)为边缘分布的联合概率分布γ的集合;W(pr(x),pg(x′))表示γ(x′,x)期望的下确界。

一般地,直接求解Wasserstein距离比较困难,所以采用如下Kantorovich-Rubinstein对偶形式:

(5)

式中:‖D‖L≤K表明判别器需要满足K-Lipschitz连续条件,即约束判别器参数的梯度在一定范围内。

2 基于CGAN的光伏出力区间预测

2.1 光伏出力预测建模

为指导生成器预测光伏出力的过程,在给定历史数据c={x0,…,xt}下,使用CGAN建立x′={xt+1,…,xt+h}的光伏出力预测模型,其中h为预测的时间步长。这样一来,模型构建了历史数据与预测功率值间潜在的映射关系,然后通过生成器出色的生成能力得到多个有效的光伏出力预测场景,在给定置信度下即可得到预测区间的上、下界。

图2 生成器和判别器架构Fig.2 The structure of the generator and the discriminator

因此,基于条件c={x0,…,xt}的CGAN损失函数如下:

LG=-Ez~pz(z)[D(G(z|{x0,…,xt})|{x0,…,xt})]

(6)

(7)

2.2 预测区间生成方法

光伏出力区间预测是在给定置信度下计算出光伏出力的上界和下界,从而构成一个可能的区间范围。相比于点预测,区间预测能够量化光伏出力的不确定性波动,为光伏并网提供更多有价值的决策信息,因而区间预测正逐步受到研究学者的重视。目前常用的非参数区间预测方法有核密度估计[20]、分位数回归[21]等,但这些方法存在的问题是计算复杂、需要大量的样本。本文采用了Bootstrap法[22]来计算光伏出力预测区间,该方法无需预先假设分布,而且在数据波动明显时对于区间预测有着较高的准确率。基于Bootstrap法的预测步骤如图3所示。

图3 基于Bootstrap的区间预测流程图Fig.3 Flow chart of bootstrap-based interval forecast

(8)

然后,在1-α置信度下对(P1,P2,…,PN)进行区间估计,置信区间的上、下界分别为

(9)

2.3 预测区间评价指标

为了评估所提方法的预测性能,引入区间预测的评价指标来对预测结果进行分析。目前区间预测的评价指标主要有预测区间覆盖率[23]、预测区间平均宽度[24]、覆盖宽度[25]等,通常选取前两个指标进行综合评价。

1)预测区间覆盖率

覆盖率(coverage rate,CR)用来评价预测区间对实测值的覆盖情况,定义为实测值xi落在预测区间内的概率,即:

(10)

式中:εi为第i个测量点的布尔量,当xi落在预测区间内,εi取1,否则取0;n为采样点的总数。

2)预测区间平均宽度

预测区间平均宽度(predict interval width,PIW)是光伏出力不确定性变化的表征,定义为预测区间上、下界的平均差,即:

(11)

式中:Ui和Li分别是预测区间在第i个采样点的最大值和最小值;n为采样点总数。

覆盖率和预测区间平均宽度分别从两个角度反映预测性能,覆盖率越高说明预测结果越准确,预测区间宽度越小说明预测结果越有效、越具有参考价值。理想的区间预测应有较高的覆盖率和较小的区间宽度,但往往随着覆盖率的增加,预测区间宽度也随之增大。导致预测结果的不确定性增加,降低了预测结果对于系统决策的参考价值。

图4 光伏出力区间预测模型框架Fig.4 Framework of PV power output interval forecast model

2.4 光伏出力区间预测模型框架

光伏出力区间预测的整体算法流程框图如图4所示。首先对光伏出力实测数据预处理,确定预测的时间步长h,以长度为s的滑动窗口划分数据集。每组数据中历史数据部分作为条件标签c,而待预测部分作为真实样本x。将数据归一化并对数据集按9∶1的比例划分训练集和测试集后,基于训练集对用于光伏出力预测的CGAN模型进行训练。通过生成器和判别器的对抗博弈,生成器能够在给定历史数据下生成接近实测功率的光伏出力预测场景。另外,为构成含更多不确定性信息的预测区间,需要生成M个预测场景。采用Bootstrap法对这些场景进行重采样,用区间估计的方法,在给定置信度下计算这些生成场景的置信区间,最终得到区间预测的结果。

3 实际系统算例分析

3.1 数据获取及处理

选用2012年12月1日至2020年9月30日期间比利时全国范围内的光伏出力实测数据[26]作为算例样本,数据分辨率为15 min,原始数据集共有271680个采样点数据。虽然该数据集已经过相关专家的修正处理,但在数据清洗过程中我们仍发现数据中存在9个nan值,利用这些nan值前4个序列数据的平均值替代nan。考虑到生成器将低维空间映射至高维的独特优势,预测的时间步长不宜取得太小,而过大的步长又会降低预测精度。因此为实现良好的预测效果,算例将12 h作为预测的时间步长。同时用长度为48个点(窗口长度为12 h)的滑动窗口对数据集进行切片,共得到5659组数据,每组数据均包括条件标签c(48个点)和光伏出力实测值x(48个点)。为方便判别器卷积层参数的设计,本文将光伏出力实测值维度变换为(3, 4, 4)。对切片后的数据集按9∶1的比例划分训练集和测试集,所有数据都归一化为[0, 1]。

3.2 CGAN模型参数设置

在Python编程环境中搭建基于PyTorch深度学习框架的CGAN模型进行算例验证。其中,生成器和判别器均包含多层神经网络结构。生成器的输入由特征量为12的一维噪声向量与条件标签c横向拼接组成,其中噪声向量服从均值为0、标准差为1的高斯分布。通过一层全连接层和三层卷积层,生成器将输入数据映射至光伏出力实测数据x的相同维度(3, 4, 4)。除输出层以外的每一层后均添加了批归一化层,而且采用LeakyReLU作为激活函数,以避免训练过程中梯度消失的问题。判别器的结构与生成器基本对称,由三层卷积层和一层全连接层组成。同样地,除输出层以外的每一层后均添加了批归一化层,隐藏层采用LeakyReLU作为激活函数。但由于采用了基于Wasserstein距离的损失函数,因此输出层不添加任何激活函数[27]。

此外,采用每更新判别器4次,更新1次生成器的交替训练方式,以提高判别器的判别能力,进而促进生成器的收敛[28]。训练过程中,批处理数设为64,采用RMSProp优化算法更新网络模型权重参数,并将学习率设置为1×10-4。

3.3 结果分析

模型训练完成后,从均值为0、标准差为1的高斯分布中随机采样一组噪声向量z。将其与测试集数据中的条件标签c合并后输入到生成器,得到在条件c下的光伏出力预测结果。重复上述过程M次,即对每个测试样本采样M个噪声向量,并分别输入生成器后得到M个光伏出力预测场景。采用Bootstrap法(这里N取50)和区间估计法,计算这些生成场景在不同置信度下的置信区间。

图5给出了在M=100的情况下,随机选取的某测试样本分别在95%、90%和85%置信度下的预测区间。图中绿线表示已知的历史光伏出力情况,红线表示光伏出力实测值,蓝色区域为得到的预测区间。本文所有的算例结果图,横坐标均为时间。

图5 不同置信度下的光伏出力预测区间(M=100时)Fig.5 PV power output forecast intervals under different confidences when M=100

分辨率为15 min。从图上可以看出,在不同置信度下,预测区间都能有效覆盖实测值,说明模型对于光伏出力的预测精度较高。

为探究预测场景的个数M对于预测区间的影响,分别在M=10、M=100和M=1 000三种情况下进行实验,计算得到95%、90%和85%置信度下的预测区间,分别如图5、图6、图7所示。

图6 不同置信度下的光伏出力预测区间(M=10时)Fig.6 PV power output forecast intervals under different confidences when M=10

图7 不同置信度下的光伏出力预测区间(M=1 000时)Fig.7 PV power output forecast intervals under different confidences when M=1 000

从图6可以看出,当M= 10时,预测区间无法对全部实测值进行有效覆盖,即覆盖率较低。而且相比于图5的结果,在同一置信度下,图6的预测区间宽度更小。这是由于当M是一个很小的值时,预测场景样本不够丰富,导致所构建的预测区间窄。其中包含的光伏出力不确定性信息太少,因而对实测值的覆盖率低。当M=100或M=1 000时,如图5和图7所示,在同一置信度下,对同一测试样本预测得到的区间几乎相同。这说明当M增加到一定值时,预测区间不会再有较大改变,此时预测场景的个数M对于预测区间几乎无影响。这为M的选取提供了指导:M不能选的太小,否则预测区间无法有效覆盖实测值;M也不必选的过大,以减少计算时间。

表1给出了当M=10、M=100和M=1 000时,在95%、90%和85%三种置信度下,针对所有测试样本计算的区间预测性能指标。从表中数据可以看出,在同一置信度下,M=100与M=1 000时的覆盖率和预测区间平均宽度几乎相同。这进一步佐证了当M达到一定值时,区间预测性能几乎不会再改变。并且当M一定时,随着置信度的增大,覆盖率逐渐变大,说明预测精度在不断提高。但同时预测区间平均宽度也在增大,较大的区间宽度增加了预测结果的不确定性,使得预测结果对于系统调度的指导性降低,其具有的参考价值和有效性减小。但总的来说,预测区间平均宽度远小于光伏发电的总监测容量(2 915.88 MW-4 037.14 MW),因此在这三种置信度下,预测结果的准确性和有效性都得到了保证。

表1 模型的区间预测评价指标Tab.1 Interval prediction evaluation indicators of the model

为进一步验证所提方法对于光伏出力连续预测的性能,选取连续3天的某测试样本进行90%置信度下的区间预测。这里M取100,预测结果如图8所示。图中,实线表示光伏出力实测值,阴影区域表示使用所提方法得到的预测区间。图中,预测区间对实测值实现了大范围的覆盖,表明预测精度较高。并且通过连续输入3天的历史测量数据,得到的预测区间上、下界变化趋势均与实测值一致,说明模型的生成器学习到了光伏出力的变化规律以及历史测量数据与预测功率值间的映射关系。通过这种映射关系,只需给定光伏出力历史测量数据就可以生成有效的预测场景,从而实现光伏出力区间的准确预测。

图8 90%置信度下连续3天的区间预测(M=100时)Fig.8 Interval forecast for 3 consecutive days with 90% confidence when M=100

综上所述,算例结果表明所提方法在三种置信度下得到的预测区间均对实测值有着较高的覆盖率,且区间上、下界符合实际光伏出力的波动趋势,区间平均宽度远小于光伏发电的总监测容量,在可接受范围内。因此从设置预测时间步长为12 h的条件来看,模型在短期光伏出力预测中具有良好的准确性和适用性。

6 结 论

本文应用CGAN实现了短期光伏出力区间预测。该方法不涉及任何显式的建模,依靠纯数据驱动的方式描述光伏出力可能的波动范围,为电网储能资源和备用机组的配置提供决策支持。将历史发电数据作为网络的条件标签,与噪声向量拼接输入到生成器中。通过生成器和判别器的对抗博弈,CGAN能自动学习到光伏的出力特征,构造短期的历史测量数据与预测功率值间的映射关系。然后通过改变与条件标签拼接的噪声向量,输入到生成器中可生成多个有效场景。在此基础上,采用Bootstrap和区间估计得到不同置信度下的预测区间。预测结果表明,模型在短期光伏出力预测中具有较高的准确性和有效性,而且可用于光伏出力连续预测。在后续研究中,可围绕预测时间步长的选取对模型预测性能的影响展开。

猜你喜欢
实测值置信度出力
6NOC2022年6月6月CERNET2国内互联互通总流量降50G
基于数据置信度衰减的多传感器区间估计融合方法
一种基于定位置信度预测的二阶段目标检测方法
基于Ansys屋盖不同单元类型下的模态分析
一种基于实测值理论计算的导航台电磁干扰分析方法
正负关联规则两级置信度阈值设置方法
浅析比重瓶法实测土粒比重
校核、验证与确认在红外辐射特性测量中的应用
“出力”就要做为人民“出彩”的事
基于实测数据的风电场出力特性研究