基于CNN的区域风功率预测方法

2021-11-17 07:09查雯婷李亚龙
计算机仿真 2021年5期
关键词:变化率卷积功率

查雯婷,杨 帆,陈 波,李亚龙

(1. 中国矿业大学(北京)机电与信息工程学院,北京 100083;2. 内蒙古电力科学研究院,内蒙古 呼和浩特 010020)

1 引言

随着能源结构的不断优化,以风力发电为主导的新能源占比呈现高增长发展趋势。由于自然风具有强随机波动性,因此风功率预测精度不高,给电力系统调度带来困难,如何提高预测精度成为研究的焦点问题[1-2]。

风电功率的预测方法主要有物理方法、统计方法和人工智能方法,目前应用最多的是统计方法和人工智能方法,物理方法一般和两者结合使用[3]。

一般来说,测量风电场实际地形、地貌条件下风电机组轮体高度的风速、风向等参数计算得出实际输出功率的方法称之为物理方法,物理方法只适用于单风电机组的预测且精度不高,也未考虑到历史数据中的规律,难以实现多步预测。

统计方法主要是在系统输入与风电功率两者之间建立映射关系实现预测[4-6],文献[4]采用灰色模型预测方法,通过构建微分方程和最小二乘法求解出下一点的预测值,最优预测百分误差为12.6%。文献[5]采用马尔可夫预测方法,使用最大期望值算法来估计预测误差所处的隐式状态,计算出预测区间,再通过区间滚动估计的方法得出最终预测结果,预测效果有近90%的区间覆盖率。统计方法有建模简单、运算速度快和数据量需求较小等优点,但模型结构较为简单,预测精度有很大提升空间。

人工智能方法是指将支持向量机[7-9]、人工神经网络[10-13]等机器学习[14-15]/深度学习[16-18]算法用于风功率预测过程,通过建立模型和精确调参,能更准确拟合非线性关系。文献[7]为支持向量机回归预测方法,文中将八种常见核函数进行了算例比较,得出指数径向基核函数预测准确性最高,在与引力搜索算法等优化方法结合后,最优模型平均百分误差为12.0%。文献[10]为BP神经网络预测方法,采用人工蜂群的优化算法,将平均相对误差控制在10%以内。人工智能方法对数据的需求量大、模型训练速度较慢,但预测精度较前两种方法一般更高。近几年,人工智能算法逐渐成为研究的热点,不断有新的模型和结构被提出,在预测精度和运算速度上有了一定的提高。

此外,根据电网运行的实际情况,单个风电场的风功率预测已经不能满足调度需要,区域风功率预测的重要性逐渐体现出来。区域风电功率预测是指将同一区域的各风电场视为整体进行风电总功率预测。区域预测方法强调风电总功率的规律性在预测过程中的作用,有效减少了需要的信息量和个别风电场局部随机因素的干扰,对电力部门优化电力系统调度、减少旋转备用容量、降低电力系统运行成本具有重要的现实意义。目前,针对区域风功率的预测问题还没有得到有效解决,由于无法获得整个区域内的各项物理参数,从而物理方法不再适用。统计方法和传统人工智能方法由于不能很好的挖掘出历史风功率的规律,预测效果不佳。

本文针对上述问题或不足,提出一种基于卷积神经网络(Convolutional Neural Networks, CNN)的区域风功率超短期预测方法。CNN属于深度学习范畴,利用多层神经网络结构,从大数据中挖掘数据特征,较统计方法和传统BP神经网络具有更加复杂的网络和数据结构,预测效果更佳。通过对十年历史数据的研究发现,风功率不仅一定程度上跟踪到了相邻日的曲线走向,还同时拥有季节性的特征。在CNN的基础上,引入风功率数据的季节性是本文的一大创新点,并利用华北某地区风电场数据对比验证该模型算法的优越性。

2 CNN的学习方法

2.1 风功率规律分析

风功率规律存在于预测日的相邻日和同季中其它日的风功率之中,充分挖掘历史风功率规律对于风功率的预测问题有着十分重要的意义。在气象信息不发生较大变化的条件下,相似的风功率规律出现在相邻日中,其中某年相似的相邻日如图1所示。

图1 相邻日近期规律

一般情况下,相似的相邻日规律表现于出现较大波峰、波谷和平稳段的时间区间相似,全日峰谷差变化较小。

风功率数据的季节性特征如表1所示,表中列举了不同季节同一时段间的平均值(AVG)、标准差(STD)、相邻点平均变化率(ACR)的指标。可以看出该年份中春季各项数据指标均较为平均;夏季的平均值和标准差指标都维持在最低的水平,但相邻点平均变化率最高;秋冬两季与夏季的特征相反。

表1 某年各季度每日0-4时数据指标

夏冬两季相邻点平均变化率趋势如图2所示,结合表1可以看出:不同季节间差异性较大,每个季节中不同日的相邻点平均变化率均在季平均值附近波动,反常天出现较少。因此,区域风功率数据在时间上不仅存在较强的近期规律,还存在一定的季节性规律,为规律的学习提供了保障。

图2 夏冬两季相邻点平均变化率趋势图

此外,不同年份间的差异性也主要通过其同季度数据指标的变化显示出来。将不同年份的相邻点平均变化率按表1中的时间段进行统计的结果如图3所示.

图3 各年份变化率趋势图

可见不同年份夏季风功率数据相邻点平均变化率最大且波动最小;春秋两季存在不同程度的波动现象,但变化率均小于夏季;冬季波动最为剧烈,其变化率甚至出现超过夏季的情况。由此可见,夏季的同季规律性最强,冬季的同季规律性最差。为了最好地挖掘出相邻日和同季节中数据的规律,本文将规律的寻找范围设置为近几年。合适的寻找范围可以在学习近期规律的同时也充分考虑到同季节的规律性,从而进一步提高预测精度。

2.2 CNN模型介绍及其适用性分析

CNN网络总结构如图4所示,其中卷积层可以看成对输入数据提取特征的过程,每次按式(1)计算出自身与感受野坐标值的加权和,生成一张特征图。一般来说,卷积层需要多个卷积核共同作用于输入数据,多角度提取输入数据的特征,然后将所有特征图作为下一层的输入。

图4 CNN结构图

(1)

式中:Mj为第j个卷积核的感受野,xi为感受野中的坐标值,kij为xi对应卷积核上的权重,bj为卷积核的偏置,yi为特征图上的输出值。一般来说,卷积层需要多个卷积核共同作用于输入数据,多角度提取输入数据的特征,然后将所有特征图作为下一层的输入。

池化层即下采样层,减小特征图的大小,不改变特征图的数量。经过多个卷积层和池化层的特征提取后,得到的特征图大小逐渐减小,数量增多。这时就需要通过Flatten处理,将高维数据排列成一维数组,输入进全连接层,最终输出一个预测值。

CNN擅长处理矩阵型数据,广泛应用于图片分类和视频识别等领域。有别于传统的人工智能算法,CNN不将输入看做一段前向序列,而是作为一个矩阵空间,不仅可以提取时间维度上的特征,还可以捕捉到空间维度上的特征。CNN横纵双方向捕捉规律的特点十分利于风功率预测问题,在应对阵风和非平稳风的问题上有独特的效果。因此,本文选择CNN作为风功率规律的学习算法。

但值得注意的是:输入矩阵数据源的优劣对算法的精度影响较大;卷积层和池化层的网络结构组合方式将直接影响预测效果。因此,本文在应用CNN时,重点考虑了数据的预处理和网络结构的确定。

3 CNN的区域风功率预测方法

3.1 数据的预处理

由于自然风具有波动性与间歇性的特点,多个风电场的总输出曲线会在不同点处产生抵消或加重波动的现象,导致风功率曲线存在一定的干扰点。若未经过预处理过程,直接作为训练集,会导致神经网络训练过程中出现学习效果差的现象。因此,需先对原始数据使用最小二乘法k阶曲线拟合,平滑处理后才能作为CNN的输入层的输入数据。k值得选取对于数据的处理效果有着重要的影响。若k值取值过小,会导致拟合曲线与真实曲线间隔变大,提高系统误差;反之,若k值取得过大,容易导致训练过拟合现象,提高学习误差。本文通过给定k的取值区间,利用误差寻优的方法确定k值。

此外,在输入之初还需要进行归一化处理,归一化不仅可以统一标量到(0,1)之间方便计算,还利于误差在反向传播时,通过梯度下降找到全局最优解。本文选用2015年由Google提出的批归一化算法(Batch Normalization,BN),有别于传统的最大最小归一化和标准归一化算法,BN算法在将输入数据转化为符合正太分布新数据的基础上,增加了可学习的平移参数和缩放参数,避免强行限制数据的分布规律使得网络的表达能力变弱。基本原理如下

(2)

3.2 输入数据的选取

预处理过程结束后,需要对数据集进行划分。人工神经网络的训练、验证和预测过程分别对应训练集Tr、验证集V和测试集Te,其中测试集不能和前两者存在数据交叉。过大和过小的数据集分别会导致过拟合和学习不到规律的现象,所以数据集的合理划分有利于提高训练质量和预测精度。

例如对第x年春季进行预测,选取x-2全年和x-1年(除春季)作为训练集,x-1年春季作为验证集,第x年春季作为测试集,数据集的划分结果如图5所示。按上述方法进行数据集的划分后,模型不仅可以学习到近期数据的规律,还可利用上一年同季节进行验证过程,捕捉风功率数据的季节性特征。

图5 数据集划分示意图

3.3 网络结构的确定

CNN网络拥有众多的模型参数,每一个参数都会对最终预测结果产生影响。首先是网络拓扑结构的确定,由于风功率数据的波动性,本文采用双卷积层和双池化层的拓扑结构,经预处理的数据依次通过卷积层conv1、池化层pool1、卷积层conv2、池化层pool2、全连接FC层、最终输出一个预测值。

接下来需要确定上述每层中的结构大小和运算方式,卷积层和池化层输入选择s×s正方形型矩阵;卷积核选择c×c大小,池化单元在输入数据不大的情况下,一般选择2×2大小;全连接FC层选用单隐藏层结构,输入节点数为池化层pool2的输出大小,隐藏层节点数设置为h,输出层节点数为1。运算方式包括步长的确定、padding边缘补0的设置、激活函数的选取等。

上述结构均确定完成后,还需要设置模型训练参数,才可将划分好的数据放入网络进行训练过程。训练参数包括迭代次数、误差计算间隔、误差函数选择、优化器选择等。

3.4 预测

根据确定好的网络结构,首先将训练集输入CNN模型进行训练。训练过程中将输出值与真实值之间的误差反向传播,通过梯度下降的方法不断修正模型中的权重和偏置。同时计算验证集的均方根误差,并保存均方根误差最小的模型权重和参数,作为最优模型。最后将测试集数据作为最优模型的输入,通过滚动预测的方法完成对未来超短期的预测,预测流程如图6所示。

图6 CNN预测流程图

预测过程中采用滚动预测的目的,在于不引入真实值的条件下对未来一段时间内进行预测。滚动预测需将第一个预测值看做真实值放入输入序列的最后,并去除掉第一个时间距离较远的数据,然后再放入最优网络中进行预测过程,不断重复上述步骤既可得到多步预测结果。

预测结束后,需要建立符合风电预测的评价指标,本文在传统均方根误差、百分误差的基础上引入了合格率的概念,计算方法见式(3)

(3)

其中m和n均是可调节的参数,根据电网实际调度情况确定。一般地,m选择范围为10%~20%。由于在无风或微风情况下,风功率输出接近于0,在一定的误差范围内不会对电网的运行造成影响,所以固定偏置n的存在十分必要。将所有预测值与真实值统计后,True所占比例即为合格率。

4 实例分析

根据上一章建立的CNN模型,利用某地区风电场兆瓦级总输出功率的十年历史数据(15min/dot, 350592dot),对2018年风功率进行超短期预测(4个小时),从不同时间尺度上(典型日、不同季节、全年)对预测效果进行分析,并将预测结果与现有方法进行对比,分析模型算法的优越性。

4.1 CNN预测模型的建立

本文选择python中的Keras深度学习框架进行CNN模型的构建。首先对数据进行最小二乘法拟合,令k值在区间[10,20]变化,按误差最小的方法寻找出最优k=15,曲线阶数k取10、15和20的拟合效果如图7所示。然后将最小二乘法拟合后的数据集进行BN归一化处理。

图7 最小二乘法拟合效果

预处理结束后,按照2.2节中的方法分别选出训练集、验证集和测试集,将划分好的数据集reshape成为8×8矩阵形式作为模型的输入,然后依次通过卷积层1、池化层1、卷积层2、池化层2、全连接层后输出一个预测点。两卷积层的卷积核大小和数量分别为(3×3,4)和(2×2,16);池化层的下采样面积均为2×2;卷积层和池化层中步长取1,padding=’valid’,均使用relu作为激活函数;全连接层节点数依次为128/64/1,其中最后一个节点为输出节点,实现64对1的预测结构,目标预测值为输入数据下一个点的风电输出值,将目标预测值与实际输出的差值作为训练误差。

在训练过程中迭代70轮之后,误差逐渐趋于稳定,因此相关网络训练参数设置如下:迭代次数epoch=100,批处理参数batch_size=128;误差函数选择均方根误差计算损失;优化器选择adam,实现学习率的自动调节;节点丢弃率Dropout=0.05。此外,合格率评价指标中m和n分别取15%和350。

4.2 预测效果分析

4.2.1 超短期预测的数值效果分析

按照3.1节中建立的CNN模型,对2018年12月6日0-4时的风电功率进行超短期预测。由于典型日处于冬季,因此将2016年12月1日至2017年11月30日和2018年3月1日至2018年12月5日的数据作为训练集;将2017年12月1日至2018年2月28日作为验证集;2018年12月6日0-4时作为测试集。典型日预测曲线如图8所示。

图8 2018年12月6日预测效果图

由图8可以看出:前8个点的预测精度很高,后8个点近预测精度虽有所下降,但较现有水平更贴近于真实曲线。通过分析表明CNN模型可以充分学习风功率数据中的规律,成功跟踪上了风功率曲线波动下降的趋势,然而在小的波峰波谷处跟踪效果有待提升。为了更好显示预测误差,对绝对误差进行分段统计,统计结果如图9所示。

图9 2018年0-4时误差分布曲线

统计结果显示,CNN模型60%的误差均分布在400兆瓦以内,并误差曲线下降较快;而现有水平误差在400兆瓦内的只有不到50%,且误差曲线下降缓慢。由此可见,CNN模型比现有水平预测效果更佳,同时验证了方法的可行性和有效性。

4.2.2 超短期预测的统计规律分析

对典型日0-4时的数值进行分析后,为了更好地探究季节性规律,对2018年每天0-4时的风功率数据进行预测,并对预测数据进行统计分析。根据3.1节中建立的CNN模型对春季进行预测时,选择2016年3月1日至2017年2月28日和2017年6月1日至2018年2月28日作为训练集;选择2017年3月1日至2017年5月31日作为验证集;2018年3月1日至2018年5月31日作为测试集。其余三个季度的数据集依次按照春季预测的划分结果向后移动一个季度。全年0-4时分季预测数据评价指标如表2所示。

表2 2018年0-4时分季预测数据评价指标

由表1和表2可以看出:合格率与数据本身的相邻点平均变化率关系最为紧密,而数据本身的平均值和标准差影响较为次要。四季中夏季的平均变化率最大,但由于平均值和标准差低且同季规律性强的缘故,预测效果处于居中水平;与之相反,秋冬两季虽然平均值和标准差较高且同季规律性差,但该年份平均变化率很低,导致预测效果良好。

综上可见,近期的数据指标对预测效果起主导作用,其中相邻点平均变化率关联最大;同季规律性对预测效果起辅助作用,避免了较大相邻点平均变化率对预测结果造成的影响。

4.2.3 全年预测效果分析

对2018年分季预测结果进行统计整合,得到2018全年的预测结果,与现有水平和统计方法(ARMA)的对比结果如表3所示。

表3 2018年0-4时不同模型预测数据评价指标对比

由表3可以看出:CNN模型各指标在现有水平上均有所提高,且比传统统计方法提升较大,均方根误差、百分误差和合格率比现有水平分别提高了10.3%、16.4%和13.5%,比传统统计方法(ARMA)分别提高了19.2%、31.7%和29.7%。

实验结果表明,CNN模型应用于区域风功率预测领域上具有良好的效果,验证了方法的优越性。

5 结论

本文建立了区域风功率超短期预测的CNN模型,并利用某地区风电场的十年历史数据进行实验分析。实验结果表明,在均方根误差、百分误差和合格率的评价指标中,CNN模型在比现有水平和传统统计方法有着更好的预测精度,且具有以下特点:

1)通过设置特定的训练集和验证集,提高了模型对风功率数据本身季节性规律的捕捉能力,一定程度上消除了季节差异性造成的影响,对高平均变化率的季节也有很好的预测效果。

2)由于CNN网络矩阵化输入和双维度提取特征的特点,加强了模型学习近期规律的能力,在应对阵风和非平稳风的问题上有一定效果,能及时跟踪上风功率曲线的变化趋势。

3)风功率曲线小波动处的预测效果有待提升。在模型结构和优化算法的选取上,仍有一定进步空间。

猜你喜欢
变化率卷积功率
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
破冰船推进功率与破冰能力的匹配性分析
例谈中考题中的变化率问题
导数在经济学中“边际分析”的应用
“功率”练习
功和功率的常用计算方法
化解功和功率疑问