基于长短期记忆网络的风电功率短期预测方法与流程

文档序号:16631808发布日期:2019-01-16 06:38阅读:475来源:国知局
基于长短期记忆网络的风电功率短期预测方法与流程

本发明属于风力发电功率预测技术领域,具体涉及一种基于长短期记忆网络的风电功率短期预测方法。

该方法为:步骤1:建立用于风电功率预测的lstm网络模型;步骤2:建立用于风电功率预测值误差分布的gmm模型;步骤3:针对lstm预测模型和gmm模型的性能和效果评价。

本发明通过lstm建立的风电功率短期预测方法,对于大样本数据具有更好的预测效果,其预测和泛化能力更出色。



背景技术:

由于风能资源充足和清洁环保,使得风力发电在可再生能源发电形式中处于主导地位。截至2017年底,我国风电新装机容量为19.5gw,累计总装机容量达到170.9gw,连续7年新增装机和累计装机两项数据均居世界第一,预计到2050年,中国风电装机达到15亿kw到20亿kw。如今高比例可再生能源并网逐渐成为中国电力系统的发展趋势和未来电网的重要特征,但是可再生能源——风电的随机性和模糊性特点即风电功率的不确定性,使得大规模风电并网的电力系统面临增加备用负担、风电调度困难、弃风现象严重等问题。

风电功率预测技术是减轻风电场并网对电力系统造成不利影响、提高风电并网比例的有效途径之一,为电力系统及风电场的安全、稳定、经济运行提供了技术支持。任何预测都具有不确定性,由于风电功率曲线是非线性的且具有一定偏度,风电功率预测误差分布中存在有偏、重尾、多峰等现象,以上任何一种现象都会影响预测误差的正态性,而且风电功率置信区间并不是关于预测点对称的,如今更多的研究集中在确定性数值预测方法上,但对于风电场内发电调度决策人员而言,预测误差的评估和分析能提供更为充分的决策信息。如今规模化大型风电场并入电网,导致风电预测功率的绝对误差会是一个巨大的不确定量,必然会对电为系统运行调度带来问题;随着预测尺度加大,预测误差随之增加,要从技术和经济性上提高预测精度有难度,但我们可以利用现有技术,研究风电功率的误差规律,修正风电功率预测数据,是使之更具有科学和实用价值。

按照预测模型划分,风电功率确定性预测可分为物理方法、统计方法、学习方法。物理方法以风速预测为基础,利用风电机组的功率曲线转化为风电功率预测值,适用于中期和长期的风电功率预测,但是精确的物理模型计算复杂并且计算时长较长;统计方法则是以适当长度的历史风电功率数据为建模数据,构建相对应的函数估计形式,预测未来风电功率,适用于超短期和短期的风电功率预测,缺点是预测精度受限;学习方法采用人工智能方法提取输入量与输出量之间的关系,应用范围较广,特别是近年来人工智能的飞速发展,出现了众多的深度学习算法。

确定性预测误差的区间数和误差的概率分布统称为概率性预测方法。概率性预测方法主要有两种,一种是通过对确定性预测模型的输出结果分析得到各条件分为数,从而对估计值的概率分布进行估计,常用的方法有qr回归(quartileregression)等。另一种是获得预测值误差分布的概率密度函数,并通过计算分布函数得到预测风电功率区间,常用的方法有核密度估计法,gauss分布,beta分布等。



技术实现要素:

针对风电的随机性和模糊性特点造成的电力系统调度风电困难和弃风现象严重的问题,本发明提供一种基于长短期记忆网络的风电功率短期预测方法,以提高风电功率预测的准确率。

本发明解决其技术问题所采用的方案是:一种基于长短期记忆网络的风电功率短期预测方法,包括长短期记忆神经网络训练算法、短期风电预测误差分布算法和风电机组发电功率短期预测模型设计。

第一步:长短期记忆神经网络训练算法如下。

(1)设离散时间步长t=1,2……,输入门激活yin和输出门激活yout计算如下:

(2)通过将压缩的门控制输入添加到上一个时间步骤sc(t-1)(t>0)的状态来计算存储单元sc(t)的内部状态:

时,通过输出压缩函数h压缩内部状态sc,然后乘以(选通)输出门激活yout来计算单元输出yc

h是一个集中型函数,其范围为[-1,1]。在文中,netin和netout是输入和输出门的输入,j指针记忆块,是大于1的自然数;v索引块j中的存储单元,使得表示第j个存储块的第v个单元;wjm是从单元m到单元l的连接的权重。索引m范围在所有源单元上,如网络拓扑所指定。对于门部分,f是逻辑函数其范围为[0,1]。网络输入被g压缩,中心的逻辑s形函数的范围为[-2,2]。

(3)假设具有标准输入层的分层网络拓扑,由存储器块组成的隐藏层和标准输出层,输出单元k的等式为:

其中m为单元数,m范围在馈送输出单元(通常是隐藏层中的所有单元,输入单元,而不是存储器块门)的所有单元上。作为挤压函数fk,我们再次使用其范围为[0,1]的逻辑型s函数。除等式(3)之外的所有方程对于具有遗忘门的扩展lstm将仍然有效。

输入数据yin(t)中是数值天气预报的风速数据,输出数据yc(t)是单台风电机组的发电功率。

第二步:短期风电预测误差分布算法:包括建立高斯混合模型和em期望最大化算法。

(1)建立高斯混合模型如下。

高斯混合模型(gaussianmixedmodel)是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。每个gmm由k个高斯gaussian分布组成,每个gaussian称为一个组成部分component,这些component线性加成在一起就组成了gmm的概率密度函数:

其中k为gaussian的个数,πk为第k个高斯的权重,p(x|k)则为第k个高斯的概率密度函数,xi|uk为uk中的一个均值,σk为方差。

gmm通常使用最大期望(expectationmaximum,简称em)进行参数评估。最大似然法就是使样本点在估计的概率密度函数上的概率值最大。由于概率值一般都很小,n很大的时候这个连乘的结果非常小,容易造成浮点数下溢。所以我们通常取log,将目标改写成:

即为最大化对数似函数。

(2)em(expectationmaximization)期望最大化算法:

em算法将求解分为两步:第一步是假设我们知道各个高斯模型的参数(可以初始化一个,或者基于上一步迭代结果),去估计每个高斯模型的权值;第二步是基于估计的权值,回过头再去确定高斯模型的参数。重复这两个步骤,直到波动很小,近似达到极值。

具体步骤如下:

步骤1:算法初始化。

由k均值(k-means)聚类算法对样本进行聚类,利用各类的均值作为uk,并计算σk,πk取各类样本占样本总数的比例。

步骤2:估计步骤(e-step)。

计算后验概率:

步骤3:最大化步骤(m-step)。

设样本容量为n,属于k个分类的样本数量分别是n1,n2,...,nk。更新每个gaussian(高斯分布)参数:

步骤4:不断地迭代步骤和步骤2和步骤3,重复更新上面三个值,直到p(xi)的值收敛为止。

混合高斯模型中通过lstm训练集中预测数据和真实数据的误差分布,得到所研究数据的误差分布规律,并将误差分布规律应用到测试集中的预测数据,可得到预测数据的误差分布区间。

第三步:风电机组发电功率短期预测模型设计如下。

(1)模型训练和模型预测。模型训练步骤如下。

第一步:模型训练主要以隐藏层为研究对象。首先在输入层中,定义原始的nwp时间序列为v0={v1,v2,l,vn},则划分的nwp时间序列训练集和测试集可以分别表示为vtr={v1,v2,l,vm}和vte={vm+1,vm+2,l,vn},输出层风电功率时间序列p0={p1,p2,l,pn},则划分的风电功率时间序列训练集和测试集可以分别表示为ptr={p1,p2,l,pm}和pte={pm+1,pm+2,l,pn}。其中m<n,m,n∈n。对训练集和测试集的元素按照公式(16)和(17)进行归一化处理。归一化后的训练集可表示为vtr′={v1′,v2′,l,vm′}和ptr′={p1′,p2′,l,pm′}。训练数据里面包括输入数据和输出数据,输入数据是数值天气预报的风速数据,将其一维的时间序列数据构造为维度[采样(输入数据),时间步长,特征(1维)]的三维数据阵列。输出数据是一维的时间序列。

第二步:为了适应隐藏层输入的特点,应用数据分割的方法对vtr′进行处理。设定分割窗口长度取值为l(程序里的batchsize),则分割后的模型输入为x={x1,x2,l,xl},xp={vp′,vp+1′,l,vm-l+p-1′},其中1≤p≤l,p,l∈n。对应的理论输出为y={y1,y2,l,yl},yp={pp′,pp+1′,l,pm-l+p-1′}。

第三步:将x输入隐藏层,隐藏层包括l个按前后时刻连接的同构lstm神经元细胞,x经过隐藏层的输出为p={p1,p2,l,pl},pp=lstmforward(xp,scp-1,ycp-1)。式中scp-1,ycp-1分别为前一个lstm神经元细胞的状态和输出。按照式子(1)和(5)计算得到lstmforward。

第四步:反向计算每个lstm神经元细胞的误差项,包括时间和网络层的2个反向传播方向。

第五步:根据相应的误差项,计算每个权重的梯度。选用均方误差作为误差计算公式,训练过程的损失函数为设定损失函数最小为优化目标,给定模型初始化的随机种子数seed,确定学习效率,训练步数epoch,应用基于梯度的优化算法-adam更新权重。

模型预测步骤如下。

应用训练好的lstm网络(表示为lstm*net)进行预测。预测过程采用迭代的方法。

首先,理论输出y的最后一行数据为yf={pm-l+1′,pm-l+2′,l,pm′}。将xf={vm-l+1′,vm-l+2′,l,vm′}输入lstm*net,输出结果表示为

第六步:下一个预测点的数据为yf+1={pm-l+2′,pm-l+3′,l,pm+1′},则m+1点的预测值为pm+1′。以此类推,得到预测的时间序列为p0′={pm+1′,pm+2′,l,pn′},对其进行反归一化,最终得到与测试集pte={pm+1,pm+2,l,pn}对应的预测时间序列p0*={pm+1*,pm+2*,l,pn*}。

第七步:通过模型计算可到到训练和预测的均方根误差即预测精度。

(2)预测评价指标。

最常用的风电场风电功率预测误差指标主要是均方根误差(rootmeansquareerror,rmse)和平均绝对误差(meanabsoluteerror,mae)

均方根误差

ermse分别代表风电场风电功率预测的均方根误差,

平均绝对误差

ptact——在t时刻风电场或单台机组输出功率实测值(kw或mw);

ptpred——在t时刻风电场或单台机组输出功率预测值(kw或mw);

pcap——风电场装机容量(kw或mw);

n——样本总数。

(3)预测不确定性评价指标。

验证预测不确定性分析模型的评价体系包括三个评价指标:可靠性、锐度、技术分数。

1)可靠性是从概率角度测试正确性,即有效数据点所占比例与预设的置信水平之间的差值。若实际风电场出力曲线落于预测区间内,表示结果有效;若有效结果的比例大于或等于设定的置信水平,表示结果可靠。可靠性指标是风电场实际功率落于预测区间内的概率与预设概率水平之间的差值,所以可靠性指标越趋近于零,则模型可靠性越接近算法理论值;若r(τ)大于零,说明模型运算产生正偏差,可靠值高于理论水平,是有利偏差;反之,模型产生负偏差,可靠值低于理论水平,是有害偏差。

2)锐度是指预测区间在何种程度趋近于实际的出力曲线。在保证可靠性的前提下,区间范围越窄、越靠近实际曲线,则不确定性分析模型性能越优。

3)技术分数是综合评估可靠性和锐度的指标,数值越高表示概率预测模型的综合性能越强,零代表最优秀的模型。如果模型满足可靠性评价要求,那么技术分数也可作为评判锐度的指标。因此,本章专利选择可靠性指标和技术分数作为评估不确定性分析模型的标准。

置信水平为τ时,可靠性指标r(τ)和技术分数sc(τ)定义如下:

式中τ——预先设定的置信水平或概率水平,即名义可靠比例;

sc(τ)——τ置信水平时的技术分数。

(4)数据预处理。

1)数据筛选是在风电功率预测研究中删除较大或较小的风速数据。因为这些数据通常不在风电机组发电功率的合理范围内。还需去除含有停机状态的点。当实际风速小于风机的启动风速时,风机的发电量为0,但是由于风机本身消耗一部分功率,在数据统计的过程中,会出现功率为负值的情况,此时可将负值赋为0。当风速较大时,若功率输出系统响应滞后,则输出功率较低,测量系统的误差或风机的尾流效应都可能造成这种情况,此时,该点的输出功率可以用风机正常运行下的额定值代替。例如0级风速,由于风速过小,风机无法启动,并且在风速大的情况下,例如飓风,风机会停止运行,以避免损坏风力涡轮机。

2)数据分析需要根据一定的统计指标,对采集到的大量风速数据进行统计分析。由于风速是根据采样周期(15min)来采集的,所以在进行数据分析时可以从数据的惯性、周期性等方面综合考虑。本文主要的考虑对象是数值天气预报的风速,通过对风速自相关性的分析,提取风速的特征。预测模型和建模方法都是依据数据分析来选择和设计的。

3)数据归一化过程是简化复杂数据的有效措施之一。将上述数据进行归一化处理:

其中max=1.0,min=0。

在所述第一步长短期记忆神经网络训练算法过程中,还包括训练lstm网络:

lstm(longshort-termmemorynetwork长短记忆网络)网络的训练算法是反向误差传播算法(bp),因为lstm处理的是序列数据,所以训练网络时需要将整个时间序列上的误差反向传播。所以bptt(back-propagationthroughtime)是指在lstm带有循环的图结构上使用误差反向传播。

在计算误差反向传播时,yc(t)的误差不仅包含当前时刻t的误差,也包括t时刻之后所有时刻的误差,这样每个时刻的误差都可以经由yc(t)和sc(t+1)迭代计算。

lstm的正向传播和反向传播关系如图2所示:

sc表示遗忘门限,it表示输入门限,前一时刻单元的输出yc(t-1)的误差由当前单元输出yc(t)决定,且要对所有的gatelayer传播回来的梯度求和,前一时刻cell状态sc(t-1)由cell状态sc(t)决定,而sc(t)的误差包含两部分,一部分是yc(t),另一部分是sc(t+1)。所以计算sc(t)反向传播误差时需要传入yc(t)和sc(t+1),而yc(t)在更新的时候需要加上yc(t+1)。这样就可以从时刻t向后计算任一时刻的梯度,利用随机梯度下降完成权重系数的更新。

在所述第二步短期风电预测误差分布算法过程中,还包括k-means算法。

k-均值是最普及的聚类算法,算法接受一个未标记的数据集,然后将数据聚集成不同的类。k-均值是一个迭代算法,假设我们想要将数据聚类成k个类,其方法为:

步骤1:首先选择k个随机的点,称为聚类中心(clustercentroids);

步骤2:对于数据集中的每一个数据,按照距离k个中心点的距离,将其与距离最近的中心点关联起来,与同一个中心点关联的所有点聚成一类;

步骤3:计算每一个类里面数据的平均值,将该类所关联的中心点移到平均值的位置;

步骤4:重复步骤2-步骤3直至中心点不再变化。

本发明的有益效果:本发明从深度学习网络出发,建立基于长短期记忆网络算法(lstm)风电功率预测模型,以高斯混合模型(gmm)分析短期风电功率预测的误差分布特点。依据某风电场二台机组nwp((numericalweatherprediction数值天气预报)数据和历史发电功率数据,采用lstm算法预测功率及其不确定性的对比分析得到训练样本较多的机组预测精度最高;对其中一台机组分别采用lstm与rbf(径向基函数radialbasisfunction)算法和小波分析算法(wavelet)预测风电功率并进行对比,lstm在预测精度上有较大的提高;本发明通过gmm模型可以得到二台机组不同的置信区间。证明了lstm方法具有更高的精确度和更快的收敛速度,gmm方法对于风电调度具有实际应用价值。

附图说明:

图1是标准lstm单元。

图2是lstm网络示意图。

图3是风电场2010年第一季度风电功率曲线图。

图4是风速数据的自相关性曲线图。

图5a是10号机组的风功率预测图。

图5b是16号机组的风功率预测图。

图6a是10号机组的风功率预测计算均方根误差图。

图6b是16号机组的风功率预测计算均方根误差图。

图7是lstm、rbf和wavlete中16号机组的风功率预测图。

图8a是10号机组预测风功率95%可信图。

图8b是16号机组预测风功率95%可信图。

图9a是10号机组预测风功率90%可信图。

图9b是16号机组预测风功率90%可信图。

图10a是10号机组预测风功率85%可信图。

图10b是16号机组预测风功率85%可信图。

图11是整体预测过程图。

具体实施方式:

风力发电在可再生能源发展中处于主导地位,但是风电的随机性和模糊性特点是的电力系统调度风电困难,弃风现象严重。提高风电功率预测的准确率是解决该问题的有效措施。下面结合附图和实施例对本发明进一步说明。

1长短期记忆神经网络

1.1lstm神经网络原理

循环神经网络(recurrentneuralnetwork,rnn)构成了一个非常强大的计算模型,能够实例化几乎任意的动态。然而,这种潜力可以利用的程度受到所采用的训练程序有效性的限制。基于梯度的方法-通过时间或实时循环学习及其组合的反向传播-共享一个重要的限制。在所有“时间流回”的误差信号上,其路径积分的时间演变依赖于权重的大小。这意味着反向传播的误差很快就会消失或爆炸。因此,在相关输入信号和目标信号之间的时间滞后大于5-10个离散时间步长的情况下,标准rnn无法学习。消失的误差问题使人们怀疑,是否标准的rnns可以显示出基于时间窗的前馈网络具有显著的实际优势。一个最新的模型,即长短期记忆网络算法(lstm)(hochreiter&schmidhuber,1997)不受上述这个问题的影响。

lstm可以通过在称为单元格的特殊单位内实施恒定误差转盘(cecs)来学习桥接超过1000个离散时间步长的最小时间滞后。乘法门单元学习打开和关闭对单元格的访问。lstm的学习算法在空间和时间上是局部的;其每个时间步长和权重的计算复杂度为o(1)。它解决了以前的rnn算法从未被解决的复杂的长时间任务。(见hochreiter&schmidhuber,1997年,lstm算法与其他替代方法的比较。)

lstm网络的隐层中的基本单元是存储块,其包含一个或多个存储器单元和一对自适应乘法门控制单元,其对输入和输出到块中的所有单元进行输入和输出。每个存储单元的核心都是一个称为恒定错误转盘(cec)的循环自连接线性单元,其激活称为单元状态。cec解决了误差消失的问题:在没有新的输入或误差信号给入单元的情况下,cec的局部误差回流保持不变,既不增长也不衰减。cec分别由输入门和输出门分别保护正向流动启动和反向流动误差。当门关闭(激活约零时),不相关的输入和噪声不会进入单元,单元状态不会扰乱网络的其余部分。图1显示了具有单个单元的存储器块。基于其当前状态和三个输入源来更新单元状态sc,netc被输入到单元本身,而netin和netout是输入和输出门的输入。

考虑离散时间步长t=1,2……。单步涉及所有单位的更新(正向通过)和所有权重(后向通过)的误差信号的计算。输入门激活yin和输出门激活yout计算如下:

在文中,j指针记忆块;v索引块j中的存储单元,使得表示第j个存储块的第v个单元;wjm是从单元m到单元l的连接的权重。索引m范围在所有源单元上,如网络拓扑所指定。对于门部分,f是逻辑函数其范围为[0,1]。网络输入被g压缩,中心的逻辑s形函数的范围为[-2,2]。

通过将压缩的门控制输入添加到上一个时间步骤sc(t-1)(t>0)的状态来计算存储单元sc(t)的内部状态:

时,通过输出压缩函数h压缩内部状态sc,然后乘以(选通)输出门激活yout来计算单元输出yc

h是一个集中型函数,其范围为[-1,1]。

最后,假设具有标准输入层的分层网络拓扑,由存储器块组成的隐藏层和标准输出层,输出单元k的等式为:

其中m范围在馈送输出单元(通常是隐藏层中的所有单元,输入单元,而不是存储器块门)的所有单元上。作为挤压函数fk,我们再次使用其范围为[0,1]的逻辑型s函数。除等式(3)之外的所有方程对于具有遗忘门的扩展lstm将仍然有效。

1.2训练lstm网络

lstm网络的训练算法是反向误差传播算法(bp),因为lstm处理的是序列数据,所以训练网络时需要将整个时间序列上的误差反向传播。所以bptt(back-propagationthroughtime)是指在lstm带有循环的图结构上使用误差反向传播。

从图2中lstm的结构可以看到,当前cell的状态会受到前一个cell状态的影响,这体现了lstm的recurrent特性。同时在计算误差反向传播时,yc(t)的误差不仅包含当前时刻t的误差,也包括t时刻之后所有时刻的误差,这样每个时刻的误差都可以经由yc(t)和sc(t+1)迭代计算。

lstm的forwardpropagation和backpropagation过程如图所示,ft表示遗忘门限,it表示输入门限,前一时刻单元的输出yc(t-1)的误差由当前单元输出yc(t)决定,且要对所有的gatelayer传播回来的梯度求和,前一时刻cell状态sc(t-1)由cell状态sc(t)决定,而sc(t)的误差包含两部分,一部分是yc(t),另一部分是sc(t+1)。所以计算sc(t)反向传播误差时需要传入yc(t)和sc(t+1),而yc(t)在更新的时候需要加上yc(t+1)。这样就可以从时刻t向后计算任一时刻的梯度,利用随机梯度下降完成权重系数的更新。

可以分为以下步骤:

(1)按照前向计算方法(式(1)-式(5))计算lstm神经元细胞(cell)的输出值;

(2)反向计算每个lstm神经元细胞(cell)的均方根误差;

(3)根据相应的误差项,计算每个权重的梯度;

(4)应用基于梯度的优化算法更新权重。

2短期风电预测误差分布特性

2.1高斯混合模型

高斯混合模型(gaussianmixedmodel)是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。每个gmm由k个gaussian分布组成,每个gaussian称为一个component,这些component线性加成在一起就组成了gmm的概率密度函数:

其中k为gaussian的个数,πk为第k个高斯的权重,p(x|k)则为第k个高斯的概率密度函数xi|uk为uk中的一个均值(预测值与真实值的误差均值),σk为方差(预测值与真实值的误差分布的方差)。

gmm通常使用最大期望(expectationmaximum,简称em)进行参数评估。最大似然法就是使样本点在估计的概率密度函数上的概率值最大。由于概率值一般都很小,n很大的时候这个连乘的结果非常小,容易造成浮点数下溢。所以我们通常取log,将目标改写成:

即最大化log-likelihoodfunction。

2.2em(expectationmaximization)期望最大化算法

em算法将求解分为两步:第一步是假设我们知道各个高斯模型的参数(可以初始化一个,或者基于上一步迭代结果),去估计每个高斯模型的权值;第二步是基于估计的权值,回过头再去确定高斯模型的参数。重复这两个步骤,直到波动很小,近似达到极值。

具体步骤如下:

step1:算法初始化

由k均值(k-means)聚类算法对样本进行聚类,利用各类的均值作为uk,并计算σk,πk取各类样本占样本总数的比例。

step2:估计步骤(e-step)。

计算后验概率:

step3:最大化步骤(m-step)。

设样本容量为n,属于k个分类的样本数量分别是n1,n2,...,nk。更新每个gaussian参数:

step4:不断地迭代步骤和step2和step3,重复更新上面三个值,直到p(xi)的值收敛为止。

2.3k-means算法

k-均值是最普及的聚类算法,算法接受一个未标记的数据集,然后将数据聚集成不同的类。k-均值是一个迭代算法,假设我们想要将数据聚类成k个类,其方法为:

step1:首先选择k个随机的点,称为聚类中心(clustercentroids);

step2:对于数据集中的每一个数据,按照距离k个中心点的距离,将其与距离最近的中心点关联起来,与同一个中心点关联的所有点聚成一类;

step3:计算每一个类里面数据的平均值,将该类所关联的中心点移到平均值的位置;

step4:重复步骤step2-step3直至中心点不再变化。

3风电机组发电功率短期预测模型设计

3.1lstm预测模型参数

建立用于风电功率短期预测的lstm网络需要确定以下参数:

输入数据必须构造模式为维度[采样,时间步长,特征]的三维数据阵列;batch_input_shape,表示每批量(batch)需要读取的数据格式(batch_size为每批量读的数据行数,步长,属性数);epochs表示确定网络学习数据快慢,循环次数;neurons为神经元个数,即记忆单元个数,一般取1~5;输出层是单一的神经元,用线性激活函数来预测下一时间步的数据;损失函数用mse(均方误差);优化算法用adam(adaptivemomentestimation),其优化算法中参数配置:alpha:同样也称为学习率或步长因子,它控制了权重的更新比率(如0.001);较大的值(如0.3)在学习率更新前会有更快的初始学习,而较小的值(如1.0e-5)会令训练收敛到更好的性能。beta1:一阶矩估计的指数衰减率(如0.9)。beta2:二阶矩估计的指数衰减率(如0.999)。该超参数在稀疏梯度中应该设置为接近1的数。epsilon:该参数是非常小的数,其为了防止在实现中除以零(如10e-8))隐藏层数目即lstm层的个数,针对风电功率预测,本文仅考虑lstm层的预测模型,因此该参数设为1;输出变量为一维数据。

训练数据里面包括输入数据和输出数据,输入数据是数值天气预报的风速数据,将其一维的时间序列数据构造为维度[采样(输入数据),时间步长(一般为3),特征(1维)]的三维数据阵列,输出数据是单台风电机组的发电功率。这两组数据都对lstm模型进行输入和输出训练,得到适合该台风电机组的预测模型,然后用于测试数据。风电场内每一台机组都需要建立自己的单独预测模型。

测试数据中只有输入数据是需要读取nwp中的风速数据,会通过lstm预测模型得到输出的预测数据,然后预测数据与真实数据作评价分析,而且训练数据和测试数据取自时间序列数据的不同的时间。

具体整个预测过程如图11所示。

3.1.1模型训练步骤

(1)模型训练主要以隐藏层为研究对象。首先在输入层中,定义原始的nwp时间序列为v0={v1,v2,l,vn},则划分的nwp时间序列训练集和测试集可以分别表示为vtr={v1,v2,l,vm}和vte={vm+1,vm+2,l,vn},输出层风电功率时间序列p0={p1,p2,l,pn},则划分的风电功率时间序列训练集和测试集可以分别表示为ptr={p1,p2,l,pm}和pte={pm+1,pm+2,l,pn}。其中m<n,m,n∈n。对训练集和测试集的元素按照公式(16)和(17)进行归一化处理。归一化后的训练集可表示为vtr′={v1′,v2′,l,vm′}和ptr′={p1′,p2′,l,pm′}。训练数据里面包括输入数据和输出数据,输入数据是数值天气预报的风速数据,将其一维的时间序列数据构造为维度[采样(输入数据),时间步长,特征(1维)]的三维数据阵列。输出数据是一维的时间序列。

(2)为了适应隐藏层输入的特点,应用数据分割的方法对vtr′进行处理。设定分割窗口长度取值为l(程序里的batchsize),则分割后的模型输入为x={x1,x2,l,xl},xp={vp′,vp+1′,l,vm-l+p-1′},其中1≤p≤l,p,l∈n。对应的理论输出为y={y1,y2,l,yl},yp={pp′,pp+1′,l,pm-l+p-1′}.

(3)将x输入隐藏层,隐藏层包括l个按前后时刻连接的同构lstm神经元细胞,x经过隐藏层的输出为p={p1,p2,l,pl},pp=lstmforward(xp,scp-1,ycp-1)。式中scp-1,ycp-1分别为前一个lstm神经元细胞的状态和输出。按照式子(1)和(5)计算得到lstmforward。

(4)反向计算每个lstm神经元细胞的误差项,包括时间和网络层的2个反向传播方向。

(5)根据相应的误差项,计算每个权重的梯度。选用均方误差作为误差计算公式,训练过程的损失函数为设定损失函数最小为优化目标,给定模型初始化的随机种子数seed,确定学习效率,训练步数epoch,应用基于梯度的优化算法-adam更新权重。

3.1.2模型预测步骤

应用训练好的lstm网络(表示为lstm*net)进行预测。预测过程采用迭代的方法。

首先,理论输出y的最后一行数据为yf={pm-l+1′,pm-l+2′,l,pm′}。将xf={vm-l+1′,vm-l+2′,l,vm′}输入lstm*net,输出结果表示为pf=lstm*net(xf)={pm-l+1′,pm-l+2′,l,pm′};

然后,下一个预测点的数据为yf+1={pm-l+2′,pm-l+3′,l,pm+1′},则m+1点的预测值为pm+1′。以此类推,得到预测的时间序列为p0′={pm+1′,pm+2′,l,pn′},对其进行反归一化,最终得到与测试集pte={pm+1,pm+2,l,pn}对应的预测时间序列p0*={pm+1*,pm+2*,l,pn*}。

最后,通过模型计算可到到训练和预测的均方根误差即预测精度。

3.2预测评价指标

最常用的风电场风电功率预测误差指标主要是均方根误差(rootmeansquareerror,rmse)和平均绝对误差(meanabsoluteerror,mae)

均方根误差

ermse分别代表风电场风电功率预测的均方根误差,

平均绝对误差

ptact——在t时刻风电场或单台机组输出功率实测值(kw或mw);

ptpred——在t时刻风电场或单台机组输出功率预测值(kw或mw);

pcap——风电场装机容量(kw或mw);

n——样本总数。

3.3预测不确定性评价指标

验证预测不确定性分析模型的评价体系包括三个评价指标:可靠性、锐度、技术分数。

(1)可靠性是从概率角度测试正确性,即有效数据点所占比例与预设的置信水平之间的差值。若实际风电场出力曲线落于预测区间内,表示结果有效;若有效结果的比例大于或等于设定的置信水平,表示结果可靠。可靠性指标是风电场实际功率落于预测区间内的概率与预设概率水平之间的差值,所以可靠性指标越趋近于零,则模型可靠性越接近算法理论值;若r(τ)大于零,说明模型运算产生正偏差,可靠值高于理论水平,是有利偏差;反之,模型产生负偏差,可靠值低于理论水平,是有害偏差。

(2)锐度是指预测区间在何种程度趋近于实际的出力曲线。在保证可靠性的前提下,区间范围越窄、越靠近实际曲线,则不确定性分析模型性能越优。

(3)技术分数是综合评估可靠性和锐度的指标,数值越高表示概率预测模型的综合性能越强,零代表最优秀的模型。如果模型满足可靠性评价要求,那么技术分数也可作为评判锐度的指标。因此,本章专利选择可靠性指标和技术分数作为评估不确定性分析模型的标准。

置信水平为τ时,可靠性指标r(τ)和技术分数sc(τ)定义如下:

式中τ——预先设定的置信水平或概率水平,即名义可靠比例;

sc(τ)——τ置信水平时的技术分数。

3.3数据预处理

1)数据筛选是在风电功率预测研究中删除较大或较小的风速数据。因为这些数据通常不在风电机组发电功率的合理范围内。还需去除含有停机状态的点。当实际风速小于风机的启动风速时,风机的发电量为0,但是由于风机本身消耗一部分功率,在数据统计的过程中,会出现功率为负值的情况,此时可将负值赋为0。当风速较大时,若功率输出系统响应滞后,则输出功率较低,测量系统的误差或风机的尾流效应都可能造成这种情况,此时,该点的输出功率可以用风机正常运行下的额定值代替。例如0级风速,由于风速过小,风机无法启动,并且在风速大的情况下,例如飓风,风机会停止运行,以避免损坏风力涡轮机。

2)数据分析需要根据一定的统计指标,对采集到的大量风速数据进行统计分析。由于风速是根据采样周期(15min)来采集的,所以在进行数据分析时可以从数据的惯性、周期性等方面综合考虑。本文主要的考虑对象是数值天气预报的风速,通过对风速自相关性的分析,提取风速的特征。预测模型和建模方法都是依据数据分析来选择和设计的。

3)数据归一化过程是简化复杂数据的有效措施之一。将上述数据进行归一化处理:

其中max=1.0,min=0。

3.4预测要求

根据国家电网公司的《风电功率预测系统功能规范》中性能要求第四条:单个风电场短期预测月均方根误差应小于20%。超短期预测第4h预测值月均方根误差应小于15%。

4算例分析

4.1数据来源

以华北某风电场2010年第一季度的实测风电机组数据对预测模型进行训练和测试,数据包括:风速的实测值、风电机组输出功率实测值、nwp数据。风机的额定容量为1500kw,采样周期为15min,由于机器故障等原因,在采集风速数据的过程中不免会有遗漏的情况,第一季度采集到了7393个风速数据点。通过对数据的分析,确定了风速数据的筛选规则,通过筛选,对第一季度的风速数据进行了筛选,共选择了3072个数据点,其中最后的192个数据作为测试样本。图3是一个季度的风电功率曲线图,从图中可以看出,风电场的输出功率分布是不均匀的,但风电场的输出功率并不是时刻都在大幅波动。

对风电场的风速数据进行自相关分析,如图4所示。由图4可知:①相关系数越接近于1,数据的相关性越高。这反映了风速的惯性;②在上图曲线中有多个凸起,这反映了风速的日周期性,其时间间隔为24h,48h,72h,此时,数据的相关程度略高于周围数据;③在6小时之前,惯性占主导地位;6小时后,周期性和随机性占优势,因此,统计方法多用于低于6小时的短期预测;④整个曲线的抖动情况反映了风速的随机性。

4.2基于lstm的风电功率预测结果分析

10#机组的训练样本为2175个数据,未来192个预测数据值的均方根误差为12.1%,时间544s;16#机组的训练样本为1149个数据,未来192个预测数据值均方根误差为6.5%,时间550s;二台机组的均方根误差和运行时间结果如表1所示:

表1二台机组5次预测运算的结果对比

从表1分析得到,样本数据越多,程序运行时间越长,10#机组是550s,16#机组是544s;如图7和表2所示10#机组数据lstm方法得到的风电功率预测值的均方根误差为12.1%,16#机组数据lstm方法得到的风电功率预测值的均方根误差为6.6%,远远满足《风电功率预测系统功能规范》的要求短期20%的均方根误差,而且预测精度有了较大的提高。

表2三种预测方法的性能比较

4.3基于gmm分析风电功率预测结果不确定性

风电场的周围环境信息、机组运行状态、历史数据和nwp数据等都会对预测精度产生影响。通过预测模型的建立,即使是同一个预测系统,如果选取的风电场不同、风电场内机组不同、输入数据的准确性等不同,预测的误差也是不同的。有必要通过了解影响预测误差的因素,来研究不确定性。影响预测误差的因素包括:①输入数据的准确性;②风机输出功率的分散性;③机组故障的不确定性;④预测模型的误差。根据风电场机组的训练数据,利用gmm算法建立风电功率真实值与预测值的误差分布函数,如图7-9所示。

表3二台机组预测结果不同置信区间的对比

得到每台机组未来预测值95%的置信区间为:10#机组±366.188kw,16#机组±262.148kw;每台机组未来预测值90%的置信区间为:10#机组±364.469kw,16#机组±259.145kw;每台机组未来预测值85%的置信区间为:10#机组±361.990kw,16#机组±257.188kw。各台机组的值区间大小与该机组的均方根误差以及nwp数据有关。

表4二台机组不同置信区间的评价指标值

z_up是指定置信水平时实际风电功率落于预测区间上限内的数据个数;

z_low是指定置信水平时实际风电功率落于预测区间下限内的数据个数;

z是指定置信水平时实际风电功率落于预测区间上下限内的数据个数。

r_up是指定置信水平时上限的可靠性指标;

r_low是指定置信水平时下限的可靠性指标;

r是指定置信水平时上下限双边的可靠性指标。

本发明采用lstm实现风电功率预测,通过置信区间描述不确定性,反映输出功率的波动范围。通过算例分析得出以下结论:

1)lstm对于大样本数据具有更好的预测效果,其预测和泛化能力更出色。

2)分析了影响风电机组功率预测不确定性的因素,如输入数据、预测模型等,进行误差的分析评估。

3)gmm具有不确定性分析能力,通过置信区间反映输出功率的波动性。95%置信区间的波动范围是最大的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1