本发明涉及风电功率预测领域,具体是一种集成深度学习和数据去噪的短期风速预测方法。
背景技术:
在当今能源危机的背景下,可再生能源的开发和利用已成为政府和研究机构关注的焦点。截至2017年底,全球可再生能源装机容量已连续三年保持年均8%的增长率,装机容量已达2179gw。其中,风电装机容量是可再生能源的重要组成部分,占据第二大份额(23.59%)。同时,2017年风电装机容量增加94gw,同比增长10%。与水力、化石燃料、核能等其他能源相比,风力的大小主要取决于风速、风向、大气压等自然条件。而风速具有随机性、波动性和不可预测性,因此,风速的预测值难以准确获取。风速预测不佳,导致我国等一些国家采用了风力限电政策,这是对可再生能源的巨大浪费,大大降低了风电场业主的利润,从而极大地抑制了风电产业的发展。为了灵活地控制风力输出,为电力调度员提供方便,需要开发出有效的风速预测方法。
风速预测方法一般分为两大类:统计学习方法和物理方法。物理预报模型通过建立风的气动模型(例如方程组)来计算未来的风速值,从而能够在长期预报中得到准确的风速预报。统计学习方法通过风速的历史数据来预测风速值,在短期风速预测中效果较好。统计学习方法可分为两类:单一预测方法和整体预测方法(即预测模型与数据预处理技术相结合)。单一预测方法本身存在局限性,而整体预测方法可以更好地从数据中提取特征,因此,单一预测方法普遍不如整体预测方法。所以,整体预测方法被广泛地用于风速预测中,这也是本专利研究的重点。
但是,传统的机器学习方法缺乏深度提取能力,无法从数据中有效地提取时间序列信息。一种可行的解决方案便是采用深度学习方法。近年来,随着计算能力的提高和大数据技术的进步,深度学习方法得到了快速发展。深度学习的优势之一在于,与其他机器学习方法相比,它可以在每个计算步骤上自动构造更复杂的特征。在风速预测中,深度学习是提高风速预测精度的有效方法。但是,cnn或lstm的模型参数通常很大,使得模型训练困难,容易被过度拟合。一种新型循环神经网络(rnn)方法门控循环单元(gru),专门用于解决上述问题。在lstm的基础上,对gru的结构进行优化、集成和升级,有效地提高了gru的预测速度。而有关于用于风速预测的gru的研究报道很少。而且,以往的许多研究只关注了预测精度,忽略了预测效率和结果波动性的重要性,这是需要改进的。因此,便选择gru作为预测方法。结果的波动性表明,如果重复执行预测过程,则每个预测过程获得的结果的大小都会变化。
一方面,模型的预测速度很重要。模型的预测速度越快,风电企业可以更快地得到预测风速值,并根据最新获得的数据更新预测结果,从而制定出更好的风力发电调度方案。另一方面,结果的小波动性也很重要,它反映了一个算法在一个预测时间内获得的预测结果的可信度和可靠性。从实践的角度看,一个好的预测模型必须具备对不同地点良好的适应性,而关于风场预测模型适应性的研究报道较少。
除了预测算法之外,集成模型的另一个关键技术在于数据预处理。目前,广泛应用的数据预处理方法是基于分解的方法(如经验模式分解,emd)。然而,新获得的数据将极大地影响初始分解子序列的值,因此基于emd的预测方法在实际预测中很难使用,这导致在通过逆变换将结果的子序列转换回实际值之后,最终预测的精度降低。
技术实现要素:
本发明的目的是解决现有技术中存在的问题。
为实现本发明目的而采用的技术方案是这样的,一种集成深度学习和数据去噪的短期风速预测方法,主要包括以下步骤:
1)获取原始风速序列,并对所述原始风速序列进行预处理,得到风速序列a:{α1,α2,…,αl}。l为数据序列的长度。所述预处理包括线性插值和归一化。
2)利用离散小波变换对风速序列a进行分解,得到包含低频信息的比例系数cm,n和包含高频信息的小波系数dm,n。
利用离散小波变换对风速序列a进行分解的主要步骤如下:
2.1)设置小波函数为二进小波,即令a=2m,b=n2m,m,n∈z。a为尺度因子,b为时移因子,m为尺度,n是与时移有关的参数。
2.2)利用尺度因子a、时移因子b对母小波ψ(·)进行伸缩和时移变换,得到小波序列ψm,n(t),即:
2.3)基于公式(1)和小波序列定义公式,计算离散小波变换系数wx,即:
式中,wx为表示小波变换系数。<x(t),ψm,n(t)>表示离散小波变换系数wx与输入x(t)和小波序列ψm,n(t)相关。
2.4)利用mallat算法对输入x(t)进行多级离散小波变换分解,得到包含低频信息的比例系数cm,n和包含高频信息的小波系数dm,n。
分解公式如下:
式中,φ(·)为小波函数。
比例系数cm,n和小波系数dm,n分别如下所示:
3)设置阈值λ,并利用小波软阈值去噪方法区分离散小波变换后的噪声信号和有效信号。
区分离散小波变换后的噪声信号和有效信号的方法为:判断信号的小波变换系数绝对值|wx|≥λ是否成立,若成立,则对应信号为有效信号,若不成立,则对应信号为噪声信号。区分后,将噪声信号的小波变换系数设为0,即:
式中,wx表示小波变换系数。sign(·)表示符号函数。
4)将噪声信号的小波变换系数设为零,并重建风速时间序列,得到去噪后的风速序列b:{b1,b2,...,bl}。
5)利用风速序列b训练门控循环单元神经网络,得到风速预测模型,主要步骤如下:
5.1)建立风速序列矩阵x:{x1,x2,...,xl},即:
式中,n为预测次数,m为预测器的输入次数。l=n m-1。xi=bi,i=1,2,…,l。
5.2)提取风速序列矩阵x的第i行作为输入向量xi,即:
xi={xi,xi 1,…,xi m-1}1×m。(8)
式中,i初始值为1。
5.3)基于门控循环单元神经网络,建立预测函数f(·)。预测函数f(·)的更新门zt、复位门(即重置门)rt如下所示:
zt=σ(wxzxt whzht-1 bz)。(9)
rt=σ(wxrxt whrht-1 br)。(10)
式中,当前神经元的输入xt为当前t时刻的输入向量xi。wxz为当前神经元输入与更新门之间的权值。whz为隐藏状态与更新门之间的权值。ht-1表示前一个神经元的输出。bz是更新门的偏置。σ为sigmoid函数。wxr为当前神经元输入与复位门之间的权值。whr为隐藏状态与复位门之间的权值。br是复位门的偏置。
当前神经元的输出ht如下所示:
式中,
5.4)将输入向量xi输入到预测函数f(·)中,得到输出状态yt,即:
yt=σ(whoht bh)。(12)
式中,who为隐藏状态与最终输出状态之间的权值。bh是隐态的偏置。
5.5)将输出状态yt赋值给第i个预测时刻的预测输出yi m,得到:
yi m=f(xi)=f({xi,...,xi m-1}),i=1,2,…,n。(13)
5.6)令i=i 1,重复步骤5.2至5.4,直至风速序列矩阵每行向量均预测完毕,输出单步风速预测结果youtput:{y1 m,y2 m,…,yn m}1×n。
5.7)基于单步时间序列预测,进行多步时间序列的预测。
预测器f(xi,c)的单轮输出,即第i次预测时第c步预测结果yi m (c-1)如下所示:
yi m (c-1)=f(xi,c)=f({xi (c-1),xi c,…,xm,yi m,…yi m (c-2)})。(14)
式中,c为预测超前步骤。xi,c为第i次预测时第c步时预测器的输入向量。
5.8)利用公式(10)对风速序列矩阵每行向量进行预测,整合得到风速预测结果youtput:{y1 m (c-1),y2 m (c-1)…,yn m (c-1)}1×n。
6)将实时风速输入到风速预测模型中,完成未来多步风速预测。
本发明的技术效果是毋庸置疑的。本发明在预测精度、预测效率、结果波动性和适应性等方面的综合研究具有创新性和时效性。
本发明采用小波阈值降噪可以滤除冗余的高频信号,为预测提供高质量的数据。本发明利用wstd方法进行风速预测,解决了针对电力系统的短期风速预测的基于分解的预处理方法会收到最新获取的数据会极大地影响从而在实际的预测中仍很难使用的问题,实现短期风速高质量的预测,以确保电力系统的经济调度和安全运行。
附图说明
图1算法流程图;
图2基于mallat算法的多层次离散小波分解;
图3循环神经网络的结构。
具体实施方式
下面结合实施例对本发明作进一步说明,但不应该理解为本发明上述主题范围仅限于下述实施例。在不脱离本发明上述技术思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的保护范围内。
实施例1:
参见图1至图3,一种集成深度学习和数据去噪的短期风速预测方法,主要包括以下步骤:
1)获取原始风速序列,并对所述原始风速序列进行预处理,得到风速序列a:{α1,α2,…,αl}。l为数据序列的长度。所述预处理包括线性插值和归一化。αl为风速。
2)利用离散小波变换对风速序列a进行分解,得到包含低频信息的比例系数cm,n和包含高频信息的小波系数dm,n。
利用离散小波变换对风速序列a进行分解的主要步骤如下:
2.1)设置小波函数为二进小波,即令a=2m,b=n2m,m,n∈z。a为尺度因子,b为时移因子,m为尺度,n是与时移有关的参数。
2.2)利用尺度因子a、时移因子b对母小波ψ(·)进行伸缩和时移变换,得到小波序列ψm,n(t),即:
2.3)基于公式(1)和小波序列定义公式,计算离散小波变换系数wx,即:
式中,wx为表示小波变换系数。<x(t),ψm,n(t)>表示离散小波变换系数wx与输入x(t)和小波序列ψm,n(t)相关。
2.4)利用mallat算法对输入x(t)进行多级离散小波变换分解,得到包含低频信息的比例系数cm,n和包含高频信息的小波系数dm,n。
分解公式如下:
式中,φ(·)为小波函数。
比例系数cm,n和小波系数dm,n分别如下所示:
3)设置阈值λ,并利用小波软阈值去噪方法区分离散小波变换后的噪声信号和有效信号。
区分离散小波变换后的噪声信号和有效信号的方法为:判断信号的小波变换系数绝对值|wx|≥λ是否成立,若成立,则对应信号为有效信号,若不成立,则对应信号为噪声信号。区分后,将噪声信号的小波变换系数设为0,即:
式中,wx表示小波变换系数。sign(·)表示符号函数。
4)将噪声信号的小波变换系数设为零,并重建风速时间序列,得到去噪后的风速序列b:{b1,b2,…,bl}。
5)利用风速序列b训练门控循环单元神经网络,得到风速预测模型,主要步骤如下:
5.1)建立风速序列矩阵x:{x1,x2,...,xl},即:
式中,n为预测次数,m为预测器的输入次数。l=n m-1。xi=bi,i=1,2,…,l。
5.2)提取风速序列矩阵x的第i行作为输入向量xi,即:
xi={xi,xi 1,…,xi m-1}1×m。(8)
式中,i初始值为1。
5.3)基于门控循环单元神经网络,建立预测函数f(·),实现原理如下:
zt=σ(wxzxt whzht-1 bz)(9)
式中,当前神经元的输入xt为当前t时刻的输入向量xi。wxz为当前神经元输入与更新门之间的权值。whz为隐藏状态与更新门之间的权值。ht-1表示前一个神经元的输出。bz是更新门的偏置。σ为sigmoid函数。wxr为当前神经元输入与复位门之间的权值。whr为隐藏状态与复位门之间的权值。br是复位门的偏置。
首先,当前t时刻的输入向量xi作为当前神经元的输入xt。xt先通过更新门zt的计算。对于更新门,当它的值较大时,当前神经元需要保留更多的信息,前一个神经元需要保留较少的信息。
此外,复位门rt代表先前隐藏状态的信息被遗忘的程度,其中wxr为当前神经元输入与复位门之间的权值;whr为隐藏状态与复位门之间的权值;br是复位门的偏置。
σ表示sigmoid函数可计算为:
候选隐藏状态
之后就可以计算该神经元的隐藏状态ht。
最后确定最终输出状态yt为:
yt=σ(whoht bh)(14)
其中who为隐藏状态与最终输出状态之间的权值;bh是隐态的偏置。
5.5)输出状态yt即可赋值给下一步骤中的预测输出yi m,得到:
yi m=f(xi)=f({xi,...,xi m-1}),i=1,2,…,n。(15)
5.6)令i=i 1,重复步骤5.2至5.4,直至风速序列矩阵每行向量均预测完毕,输出单步风速预测结果youtput:{y1 m,y2 m,…,yn m}1×n。
5.7)基于单步时间序列预测,进行多步时间序列的预测。
预测器f(xi,c)的单轮输出,即第i次预测时第c步预测结果yi m (c-1)如下所示:
yi m (c-1)=f(xi,c)=f({xi (c-1),xi c,…,xm,yi m,…yi m (c-2)})。(16)
式中,c为预测超前步骤。xi,c为第i次预测时第c步时预测器的输入向量。
5.8)利用公式(10)对风速序列矩阵每行向量进行预测,整合得到风速预测结果youtput:{y1 m (c-1),y2 m (c-1)…,yn m (c-1)}1×n。
6)将实时风速输入到风速预测模型中,完成未来多步风速预测。
实施例2:
一种验证集成深度学习和数据去噪的短期风速预测方法的实验,主要包括以下步骤:
1)获取原始风速序列;通过数据预处理对收集的原始风速序列进行缺失值的线性插值和数据的归一化,得到整理后的风速序列a:{α1,α2,…,αl}(l为数据序列的长度)。
由于风速原始数据存在许多丢失和错误的值,因此使用线性插值技术对数据进行预处理:首先,将缺失的点和错误的点替换为名为“非数字(nan)”的标志。然后,采用线性插值方法对nan位置进行修补。同样,将分辨率为几分钟的原始数据序列转换为分辨率为小时的数据。此外,这些时间序列被归一化至-1到1的区间内。
2)利用离散小波变换对风速原始时间序列进行分解;用二进小波作为小波函数进行离散小波变换,则有a=2m,b=n2m,m,n∈z;其中,a为尺度因子,b为时移因子,m为尺度,n是与时移有关的参数;
3)将a、b分别放入母小波的伸缩和时移得到的小波序列中,则有:
4)利用小波变换对采样信号进行分解,根据母小波的连续小波变换的定义,将a和b代入定义公式,得到离散小波变换,即,
其中,wx为表示小波变换系数;“<·>”为小波序列定义公式中的一个数学符号,表示此公式与此符号中的两项有关;
5)通过mallat算法进行多级离散小波变换分解,分解后得到相应的包含低频信息的比例系数和包含高频信息的小波系数,如图2所示,即,
6)通过计算阈值λ,利用小波软阈值去噪(wstd),从而区分噪声信号和有效信号;即,
其中,wx表示小波变换系数;λ表示阈值;sign(·)表示符号函数;
7)将噪声的小波变换系数设为零,重建风速时间序列得到去噪后的风速序列b:{b1,b2,…,bl};
8)衡量wstd的降噪效果:采用duffing混沌系统来获得包含1000个数据点的时间序列。该系统的公式为:
采用runge-kutta法求解,分别设定参数σ,a,f,δ和时间步长h。变量x作为实验值。为了消除暂态点对系统的影响,放弃了前30000个暂态点。从而得到了以下1000个数据点的时间序列。
信号噪声比(snr)用于评估数字降噪的效果。snr值越大,意味着信号中会有更多有用的信息(即更少的无用噪声)。snr值越大,也意味着相应的降噪方法更有可能在风速预测中有更大的精度改进。snr的定义可以表示为:
其中,h1和h2分别为:
其中,sp为无噪声的纯信号,sn为有高斯噪声的信号。
在duffing系统的x值中加入一定的高斯噪声,分别采用低通滤波技术、whtd技术和wstd技术对高斯噪声信号进行降噪。降噪效果对比如表1所示。数值结果表明,该方法具有较好的降噪效果。
表1去噪效果的比较
9)利用降噪时间序列训练门控循环单元(gru)神经网络,如图3所示,得到一步预测未来多步预测模型;图3中a部分是rnn结构的三维示意图;b部分是单隐层rnn的二维示意图;c部分是rnn在时域上的扩展示意图;d部分是gru块(作为rnn的一种类型)的结构示意图。
单步时间序列预测:已知现有输入风速系列x:{x1,x2,…,xl}且xi=bi,i=1,2,…,l,则:
其中,n为预测次数,m为预测器的输入次数,满足l=n m-1;风速系列的测试数据并不包含在训练数据集中。
提出矩阵的一行,得到输入向量:
xi={xi,xi 1,…,xi m-1}1×m;
假设预测器是“f(·)”,则:
yi m=f(xi)=f({xi,…,xi m-1}),i=1,2,…,n
其中,yi m为第i个预测时刻的预测输出;
得到风速预测的最终输出向量:
youtput:{y1 m,y2 m,…,yn m}1×n
则单步时间序列的预测完成。
基于单步时间序列预测,进行多步时间序列的预测;采用递推公式可知预测器的输出表示为:
yi m (c-1)=f(xi,c)=f({xi (c-1),xi c,…,xm,yi m,…yi m (c-2)})
其中,c为预测超前步骤(如本文实验中c={1,2,3});yi m (c-1)为第i次预测实验第c步的预测结果,为预测器的单轮输出;xi,c为第i个预测实验第c步时预测器的输入向量;
最后汇总所有的yi m (c-1),得到风速预测的最终结果向量为:
youtput:{y1 m (c-1),y2 m (c-1)…,yn m (c-1)}1×n。
10)此外,为了评价结果的波动性,将所有预测方法的过程重复20次,以获得标准的平均值和标准的标准偏差。预测实验精度的量化有三个最常用的标准:平均绝对百分比误差(mape)、平均绝对误差(mae)和均方根误差(rmse)。
结果如表2所示。因此,与其他八种常用的预测模型相比,wstd-gru方法具有较高的多步预测精度,并且能够在美国从不同经度获得的所有数据集中实现出良好的效果。尤其是通过与wstd结合,gru具有更好的预测性能。
表2多步预测结果精度的比较
9)采用训练后的wstd-gru模型(即风速预测模型),进行未来多步风速预测。
1.一种集成深度学习和数据去噪的短期风速预测方法,其特征在于,主要包括以下步骤:
1)获取所述原始风速序列,并对所述原始风速序列进行预处理,得到风速序列a:{α1,α2,…,αl};l为数据序列的长度。
2)利用离散小波变换对风速序列a进行分解,得到包含低频信息的比例系数cm,n和包含高频信息的小波系数dm,n。
3)设置阈值λ,并利用小波软阈值去噪方法区分离散小波变换后的噪声信号和有效信号;
4)将噪声信号的小波变换系数设为零,并重建风速时间序列,得到去噪后的风速序列b:{b1,b2,…,bl};
5)利用风速序列b训练门控循环单元神经网络,得到风速预测模型;
6)将实时风速输入到风速预测模型中,完成未来多步风速预测。
2.根据权利要求1或2所述的一种集成深度学习和数据去噪的短期风速预测方法,其特征在于:所述预处理包括线性插值和归一化。
3.根据权利要求1或2所述的一种集成深度学习和数据去噪的短期风速预测方法,其特征在于,利用离散小波变换对风速序列a进行分解的主要步骤如下:
1)设置小波函数为二进小波,即令a=2m,b=n2m,m,n∈z;a为尺度因子,b为时移因子,m为尺度,n是与时移有关的参数;
2)利用尺度因子a、时移因子b对母小波ψ(·)进行伸缩和时移变换,得到小波序列ψm,n(t),即:
3)基于公式(1)和小波序列定义公式,计算离散小波变换系数wx,即:
式中,wx为表示小波变换系数;<x(t),ψm,n(t)>表示离散小波变换系数wx与输入x(t)和小波序列ψm,n(t)相关;
4)利用mallat算法对输入x(t)进行多级离散小波变换分解,得到包含低频信息的比例系数cm,n和包含高频信息的小波系数dm,n;
分解公式如下:
式中,φ(·)为小波函数;
比例系数cm,n和小波系数dm,n分别如下所示:
4.根据权利要求1所述的一种集成深度学习和数据去噪的短期风速预测方法,其特征在于,区分离散小波变换后的噪声信号和有效信号的方法为:判断信号的小波变换系数绝对值|wx|≥λ是否成立,若成立,则对应信号为有效信号,若不成立,则对应信号为噪声信号;区分后,将噪声信号的小波变换系数设为0,即:
式中,wx表示小波变换系数;sign(·)表示符号函数;
5.根据权利要求1所述的一种集成深度学习和数据去噪的短期风速预测方法,其特征在于,建立风速预测模型的主要步骤如下:
1)建立风速序列矩阵x:{x1,x2,…,xl},即:
式中,n为预测次数,m为预测器的输入次数;l=n m-1;xi=bi,i=1,2,…,l;
2)提取风速序列矩阵x的第i行作为输入向量xi,即:
xi={xi,xi 1,…,xi m-1}1×m;(8)
式中,i初始值为1;
3)基于门控循环单元神经网络,建立预测函数f(·);预测函数f(·)的更新门zt、复位门rt如下所示:
zt=σ(wxzxt whzht-1 bz);(9)
rt=σ(wxrxt whrht-1 br);(10)
式中,当前神经元的输入xt为当前t时刻的输入向量xi;wxz为当前神经元输入与更新门之间的权值;whz为隐藏状态与更新门之间的权值;ht-1表示前一个神经元的输出;bz是更新门的偏置;σ为sigmoid函数;wxr为当前神经元输入与复位门之间的权值;whr为隐藏状态与复位门之间的权值;br是复位门的偏置;
当前神经元的输出ht如下所示:
式中,
4)将输入向量xi输入到预测函数f(·)中,得到输出状态yt,即:
yt=σ(whoht bh);(12)
式中,who为隐藏状态与最终输出状态之间的权值;bh是隐态的偏置;
5)将输出状态yt赋值给第i个预测时刻的预测输出yi m,得到:
yi m=f(xi)=f({xi,…,xi m-1}),i=1,2,…,n;(13)
6)令i=i 1,重复步骤2至4,直至风速序列矩阵每行向量均预测完毕,输出单步风速预测结果youtput:{y1 m,y2 m,…,yn m}1×n;
7)基于单步时间序列预测,进行多步时间序列的预测;
预测器f(xi,c)的单轮输出,即第i次预测时第c步预测结果yi m (c-1)如下所示:
yi m (c-1)=f(xi,c)=f({xi (c-1),xi c,…,xm,yi m,...yi m (c-2)});(14)
式中,c为预测超前步骤;xi,c为第i次预测时第c步时预测器的输入向量;
8)利用公式(10)对风速序列矩阵每行向量进行预测,整合得到风速预测结果youtput:{y1 m (c-1),y2 m (c-1)...,yn m (c-1)}1×n。
技术总结