一种风能资源数据补偿方法与流程

文档序号:18871537发布日期:2019-10-14 19:40阅读:186来源:国知局
一种风能资源数据补偿方法与流程

本发明涉及一种风能资源数据补偿方法。



背景技术:

在风能资源的测量过程中,往往会出现数据缺失问题,相较于地面测风,海洋测风、高空测风、复杂山地测风等测风方式所测得的风能资源数据难以即时补充。而常用的预测算法,例如bp神经网络预测算法,由于其初始权值具有随机性,导致算法整体可靠性、时效性以及准确性较差,难以提供准确的数据保障。

如专利号为201210460427.0的中国发明专利,提供了一种基于bp神经网络的风电场短期功率预测方法,其核心思想为:将风速、风向、空气密度和相对湿度作为bp神经网络输入,风电场的发电输出功率作为bp神经网络输出,利用bp神经网络预测某一时间段的风电场的发电输出功率。具体工作步骤如下:a.获取风电场所在地的包括风速、风向和空气密度的气象要素数据的历史记录及与每一记录相对的风电场发电输出功率;b.其中,将风速、风向和空气密度修正为风电机组轮毂处的风速、风向和空气密度,从而生成修正后的气象要素数据;c.将修正后的气象要素数据作为输入数据输入bp神经网络,将与每一气象要素数据对应的风电场发电输出功率作为bp神经网络的输出对bp神经网络进行训练;d.根据数值天气预报获得风电场所在地在预测时间段的包括风速、风向和空气密度的气象要素数据,并将风速、风向和空气密度修正为风电机组轮毂处的风速、风向和空气密度,从而生成修正后的气象要素数据;e.将步骤d所得的修正后的气象要素数据输入经步骤c训练后的bp神经网络,bp神经网络输出的数据即为该预测时间段的风电场的发电输出功率。轮毂处的相对湿度,以作为输入数据输入bp神经网络。

整个技术方案仍旧是利用bp神经网络进行风电场的发电输出功率预测,其本质仍属于bp神经网络的范畴,将bp神经网络算法用在了风电场短期功率预测上,由于该方法存在易陷入局部最优解的问题,导致预测精度低、预测结果不可靠。基于此,本发明提出了一种风能资源数据补偿方法,旨在为风能资源缺失数据进行准确补偿。



技术实现要素:

本发明的目的是提出一种风能资源数据补偿方法,利用鲸鱼优化算法在搜索寻优方面收敛速度快、精度高、且易跳出局部最优的优势,通过bp神经网络更新权值阈值的同时进行鲸鱼寻优的方式,解决由于bp神经网络易陷入局部最优导致的预测精度低的问题。同时,针对bp神经网络中存在的收敛速度慢的问题,利用鲸鱼优化算法在全局寻优能力方面的优势,改进鲸鱼优化算法动态收敛因子,提高算法可靠性。

为此,本发明提供了一种风能资源数据补偿方法,通过基于鲸鱼优化算法的bp神经网络模型,构建数据补偿模型,以防止bp神经网络陷入局部最优,从而根据输入的气象要素模型,即可获得相对应的输出数据,以补偿观测期间的缺失数据。

本发明的优点是:利用鲸鱼优化算法在搜索寻优方面收敛速度快、精度高、且易跳出局部最优的优势,通过bp神经网络更新权值阈值的同时进行鲸鱼寻优的方式,解决由于bp神经网络易陷入局部最优导致的预测精度低的问题。同时,针对bp神经网络中存在的收敛速度慢的问题,利用鲸鱼优化算法在全局寻优能力方面的优势,改进鲸鱼优化算法动态收敛因子,提高了算法可靠性和精度。

以下将结合附图对本发明做进一步详细说明。

附图说明

图1是woa-bp算法流程图。

图2是woa-bp预测误差图。

图3是woa-bp风速训练和测试对比图。

图4是为典型三层bp神经网络结构图。

图5是bp神经网络算法流程图。

图6鲸鱼优化算法流程图。

图7收缩环绕机制。

图8螺旋位置更新机制。

具体实施方式

本实施例提供了一种风能资源数据补偿方法,通过实验仿真的方式,得出该方法具有可靠性强,预测结果准确等优点,且解决了bp神经网络局部极小化及算法的收敛速度慢的问题,实验数据如下。

采用国家气象信息中心提供的中国国家级地面站小时值数据,采用四川省攀枝花市2019年3月16日至3月18日每隔3小时的大气压力、相对湿度、平均温度等13种数据作为模型输入,并同时获取该地区该时刻实际风速数据作为模型输出进行建模采用前128组数据训练模型。

将第20组数据的大气压力、相对湿度、平均温度等13种数据作为模型输入,补偿后10组数据的风速数据。实验所得数据如图2-3及表1所示。

表1woa-bp神经网络部分风速训练表

后10组数据的大气压力、相对湿度、平均温度等13种数据作为模型输入,输出对应的风速数据。实验数据表明,本发明数据补偿方法具有高可靠性,误差低,性能好,可为风电场的选址规划提供可靠数据基础。

该风能资源数据补偿方法,主要是通过基于鲸鱼优化算法的bp神经网络模型,构建数据补偿模型,以防止bp神经网络陷入局部最优,从而根据输入的气象要素模型,即可获得相对应的输出数据,以补偿观测期间的缺失数据。

为解决上述问题,本实施例提供了一种风能资源数据补偿方法,主要实现过程如图1所示,主要流程是:开始,初始化参数、建立元胞数组,计算适应度函数(误差),判断误差是否小于最优解,如果是,则将该误差作为当前最优解,并计算a、c、p等参数,如果不是,扔继续计算a、c、p等参数,之后进行w1、b1、w2、b2的遍历迭代;

判断p是否小于0.5,如果是,计算a的绝对值是否大于1,如果是,则环绕式搜索以扩大搜索范围,并输出当前最优权值阈值,如果a的绝对值是不大于1,则搜索捕食,向最优解更新搜索,直至输出当前最优解权值阈值;随后,将当前最优解存入元胞数组,重新计算当前最优解,利用梯度下降法更新w1、b1、w2、b2;此时判断是否满足最大迭代次数,如果是,则输出当前最优解及误差,结束;如果不是,则重新计算适应度函数,并顺次执行循环,直至结束;

若p是否不小于0.5,则螺旋泡泡网搜索模式,扩大局部搜索,直至输出当前最优权值阈值。

具体操作过程如下:

步骤1:数据归一化

采用premnmx归一化函数对大气压力、平均温度、相对湿度等气象数据进行归一化处理便于计算,例如,输入训练样本大气压力为761.7百帕,平均温度为-2.6摄氏度,相对湿度为65%,训练样本输出风速为0.7m/s,生成一组新的输入数据samin为[1,-1,-0.8231];对风速进行归一化处理,生成另一组新的输出数据tnout为[0.7]。其中samin和tnout会随着样本数量的变化而变化;

步骤2:依据归一化结果初始化神经网络参数,即图1中所示的初始化参数,建立元胞数组。

对归一化后的输出数据加入数值为0.01的噪声,目的是为了防止bp神经网络过拟合,具体方法如下:

a、将噪声与归一化输出数据相加,记为samout,如公式1所示;

samout=tnout+noise公式1

b、所述噪声noise由随机数与噪声强度相乘得到,如公式2所示;

noise=noisevar*y公式2

c、所述噪声强度noisevar通常为0.01;

d、所述随机数由公式3得到。

y=rand()公式3

依据步骤1初始化数据的个数建立bp神经网络模型,输入层节点的个数indim(本例为3),隐含层节点的个数hiddenunitnum(本例为8),输出层节点的个数outdim(本例为1);

依据前述建立的bp神经网络模型,初始化模型参数,具体包括:

所述bp神经网络模型学习率为动态学习率,如公式4所示。

lr=1-t/max_iteration公式4

bp神经网络模型所采用激活函数为sigmoid函数,如公式5所示。

步骤4:初始化鲸鱼优化算法参数

本发明针对数据补偿问题对鲸鱼优化算法的线性收敛因子进行改进,改进后的动态收敛因子如公式6所示。

t为当前迭代次数,max_iteration为最大迭代次数。

所述改进鲸鱼优化算法的收敛因子随着迭代次数变化如公式7所示。

t为当前迭代次数,max_iteration为最大迭代次数。

所述鲸鱼优化算法的权值阈值初始化方法,具体如下:

对所述鲸鱼优化算法权值和阈值的计算,采用如下公式更新输入层与隐含层之间的权值ω1、输入层与隐含层之间的阈值b1、输出层与隐含层之间的权值ω2、输出层与隐含层之间的阈值b2,分别采用如公式8-11所示公式进行初始化。

ω1=0.5*rand(hiddenunitnum,indim))-0.1公式8

b1=0.5*rand(hiddenunitnum,1)-0.1公式9

ω2=0.5*rand(outdim,hiddenunitnum)-0.1公式10

b2=0.5*rand(outdim,1)-0.1公式11

步骤5:依据bp神经网络模型计算适应度函数(误差)及当前最佳搜索代理

适应度函数(误差函数)如公式11-14所示。

hiddenout=sigmoid(ω1*samin+repmat(b1,1,samnum))公式12

networkout=ω2*hiddenout+repmat(b2,1,samnum)公式13

error=samout-networkout公式14

sse=sumsqr(error)公式15

hiddenout为隐含层节点输出,networkout为输出层节点输出,error为网络输出值与测试数据之间的误差,sse为平方和误差。

步骤6:利用所述鲸鱼优化算法更新权值阈值

将所述bp神经网络中的一组权值和阈值记为一个搜索代理,即一头鲸鱼;

将所述误差平方和sse作为适应度函数,计算鲸鱼种群的最小适应度值;

将每头鲸鱼的适应度值与个体最优鲸鱼进行比较,得到当前最优鲸鱼位置;

根据收缩环绕机制和螺旋位置更新机制更新鲸鱼种群位置。

步骤6:利用梯度下降法更新权值阈值

利用梯度下降法(神经网络反向传播),更新当前最优鲸鱼位置的权值阈值,梯度下降法权值阈值更新公式如公式16-21所示。

δ2=error公式16

δ1=ω2t*δ2*hiddenout*(1-hiddenout)公式17

权值阈值更新公式中,ω1'为ω1更新过后的权值,ω2'为ω2更新过后的权值,b1'为b1更新过后的阈值,b2'为b2更新过后的阈值。

步骤5:训练结束判断

训练的结束条件如下:

目标误差达到预设值;

迭代次数达到指定次数。

若是,则模型训练强制结束。若否,则返回“步骤2计算适应度函数及当前最佳搜索代理”,继续训练

步骤6:输出训练模型进行数据补偿

在方法达到结束条件之后,生成预测补偿模型。

将任意大气压力、相对湿度、平均温度等数据作为所述预测补偿模型输入,即可获得相对应的风速数据输出,以补偿观测期间的缺失数据。

为便于理解以上各实施例提供的风能资源数据补偿方法,本实施例就相关基本知识结合附图进行介绍:

图4所示为典型三层bp神经网络结构图,其实质是一种求解最优化网络权值的算法。此时最优化问题的目标函数(代价函数)为网络输出与期望输出之间误差构成的误差函数,待优化的变量就是网络中的所有权值和阈值,而bp神经网络是利用梯度下降法求解能够使误差函数达到极小的网络权值和阈值的修正方法,bp神经网络算法流程图如图5所示。

步骤1:初始化权值阈值

每两个神经元之间的网络连接权重被初始化为一个很小的随机数,同时每个神经元有一个偏置值,也被初始化为一个随机数。对每个输入样本x,按照步骤2进行处理。

步骤2:向前传播输入(计算隐含层、输出层各神经元的输入输出)

根据训练样本x提供网络的输入层,通过计算得到每个神经元的输出,如公式22所示。

注:ωij是由上一层的单元i到本单元j的网络权重;oi是上一层的单元i的输出;a为本单元的偏置,用来充当阈值,可以改变单元的活性。

从上面的公式可以看到,神经元j的输出取决于其总输入sj=∑ωij*oi+ai,然后通过激活函数得到最终输出,这个激活函数称为sigmoid函数,能够将较大的输入值映射为区间0~1之间的一个值,由于该函数是非线性的和可微的,因此也使得bp神经网络算法可以对线性不可分的分类问题进行建模,大大拓展了其应用范围。

步骤3:反向误差传播

由步骤2,最终在输出层得到实际输出,可以通过与预期输出相比较得到每个输出单元的误差:(tj是输出单元的预期输出),如公式23所示。

ej=oj(1-oj)(tj-oj)公式23

得到的误差需要从后往前传播,前一层单元的误差可以通过和它连接的后面一层的所有单元的误差计算所得,如公式24所示。

ej=oj(1-oj)∑kωjkek公式24

依次得到最后一个隐含层到第一个隐含层每个神经元的误差。

步骤4:网络权重与神经元偏置调整(修正隐含层、输出层的权值阈值)

调整权重从输入层与第一隐含层的连接权重开始,依次向后进行,每个连接权重按以下公式进行调整,如公式25所示。

ωij=ωij+δωij=ωij+(lr)oiej公式25

注:其中lr为动态学习率,如公式4所示。

lr=1-t/max_iteration公式4

神经元偏置的调整方法是对每个神经元进行如公式26所示的更新。

θj=θj+δθj=θj+(lr)ej公式26

步骤5:判断结束

对于每个样本,如果最终的输出误差小于可以接受的范围或迭代次数达到了一定的阈值,则选取下一个样本,转到步骤2重新继续执行;否则,迭代次数加1,然后转向步骤2继续使用当前样本进行训练。

bp神经网络具有很好地自学习和自适应能力、容错能力及非线性映射能力。但同样该算法具有一定缺陷,其中主要缺陷包含以下两点:

1、局部极小化问题:从数学角度看,传统的bp神经网络为一种局部搜索的优化方法,它要解决的是一个复杂非线性化问题,网络的权值是通过沿局部改善的方向逐渐进行调整的,这样会使算法陷入局部极值,权值收敛到局部极小点,从而导致网络训练失败。加上bp神经网络对初始网络权重非常敏感,以不同的权重初始化网络,其往往会收敛于不同的局部极小,这也是每次训练得到不同结果的根本原因。

2、算法的收敛速度慢:由于bp神经网络算法本质上为梯度下降法,它所要优化的目标函数是非常复杂的,因此,必然会出现“锯齿形现象”,这使得bp算法低效;又由于优化的目标函数很复杂,必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值改变很小,使训练过程几乎停顿;bp神经网络模型中,为了使网络执行bp算法,不能使用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法也会引起算法低效。以上种种,导致了bp神经网络算法收敛速度慢的现象。

(2)鲸鱼优化算法

鲸鱼优化算法是自然启发算法,模仿座头鲸的捕食行为,座头鲸从大约海底深处作螺旋形姿势向上游动并吐出气泡,当最后吐出的气泡与第一个吐出的气泡同时上升到水面时,形成一种泡泡网,像巨大的网一样把猎物紧紧地包围起来,并将猎物逼向网中心,它便在气泡圈内几乎直立地张开大嘴,吞下网集的猎物。算法流程图如图6所示。

具体而言:

采用个体的适应度函数计算当前最小误差,并将最小误差的权值阈值(最好的鲸鱼)作为本轮迭代最佳搜索代理,利用鲸鱼优化算法进行搜索代理个体位置更新,更新方法如下:

a.包围猎物阶段:

座头鲸可以识别猎物的位置并包围它们。由于搜索空间中的最优设计的位置不是先验已知的,因此woa算法假设当前最佳候选解是目标猎物或接近最优。在定义了最佳搜索代理之后,其他搜索代理将尝试更新其对最佳搜索代理的位置。此行为如公式27、28所示。

等式中,为搜索代理距最佳搜索代理的距离,t为当前迭代次数,为系数,x*为目前得到的最佳解的位置向量,x为位置向量,||为取绝对值。这里值得一提的是,如果有更优解,那么x*将会在每次迭代中更新。向量的计算公式如公式29、30所示。

b.泡泡网攻击阶段:

对于座头鲸的泡泡网攻击猎物的行为进行了数学模拟,设计了两种方法:

收缩环绕机制:

在迭代过程中将会逐步减小到0。因此在[-a,a]之间中为a设置随机值,搜索代理的新位置可以在代理的原始位置和当前最佳代理的位置之间的任何位置定义。图7显示了由(x,y)到在二维空间中0≤a≤1得到的可能位置。

螺旋位置更新机制

螺旋位置更新过程首先计算位于(x,y)的鲸鱼与位于(x*,y*)的猎物之间的距离。然后在鲸鱼和猎物的位置之间建立一个螺旋位置更新方程,如图8所示,模拟座头鲸的螺旋形运动如公式31所示。

运动过程中,表示第i条鲸鱼与猎物之间的距离(当前最佳搜索代理),b为定义对数螺旋形状的常数,l为[-1,1]中的随机数。

收缩环绕机制与螺旋位置更新在循环迭代的过程中,分别以0.5的概率进行,如公式32所示。

通过包围猎物阶段以及泡泡网攻击阶段完成代理搜索位置更新后,重新计算适应度函数,更新当前最佳搜索代理。

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