一种梯级电站的上下游水位预测方法与流程

文档序号:15853605发布日期:2018-11-07 10:34阅读:303来源:国知局
一种梯级电站的上下游水位预测方法与流程

本发明涉及一种梯级电站的上下游水位预测方法,属于水位预测技术领域。

背景技术

水位预测是指提前一定时间对水电站上游或下游水位进行预测。准确的水位预测对水电站调度意义重大,然而,水电站在运行过程中受到诸多因素影响,导致水电站的水位变化预测通常偏差会较大,进而影响到调度方案的实施效果。特别是具有紧密水力联系的梯级水电站,其水位上涨、下落存在滞后性,涨水、平水、退水后的稳定水位也不相同,使得下游径流式电站水位的准确预测更难实现。

目前,水利水电行业大多采用出库流量来预测水位,或者将水位数据看成时间序列建立相应预测模型。如王蒙蒙等基于支持向量回归模型对洞庭湖水位进行了预测,其预测变量为三峡逐日出库流量、清江逐日流量及洞庭湖“四水”逐日入湖流量。李欣等建立基于时空序列的rbf神经网络预测模型,来预测金沙江下游向家坝水文站的水位情况。ashaary等采用bp神经网络来预测timahtasoh水库的水位变化,其采用窗处理的方式将前w个时刻的水位数据作为一个输入样本。但在梯级电站的水位预测方面,尤其是下游电站的水位,由于梯级电站之间的紧密联系,上游电站的运行情况会影响到下级电站的水位,并且因水流传播导致影响存在时间滞后性,而普通的前馈神经网络如bp神经网络或rbf神经网络难以捕捉这一特征。并且,若采用窗处理的方式将前多个时刻的水位和出力数据作为输入样本,会使输入层节点偏多,若进一步要连续预测多时刻的上下游水位,则输入层节点会随之增多,导致模型训练参数偏多,这无疑会加大模型训练的难度,降低学习效率。



技术实现要素:

本发明提供一种梯级电站的上下游水位预测方法,此预测方法基于长短时记忆网络(longshort-termmemory,lstm)。lstm是循环神经网络的一种成功变体,能够克服原始循环神经网络的不足,学习到数据之间的长期依赖关系,将lstm应用到水电站的水位预测中,可以保留有用的历史信息,将过去时刻的上下游水电站运行数据以及上游电站水位数据的影响反映到当前下游电站的水位预测之中。

为了实现上述的技术特征,本发明的目的是这样实现的:一种梯级电站的上下游水位预测方法,其特征在于,它包括以下步骤:

步骤1,选取输入变量与输出变量;

步骤2,对数据进行标准化处理,消除量纲的影响;

步骤3,确定输入向量维数、lstm层数、输出向量维数,以及时间步;

步骤4,lstm的前向传播过程和误差反向传播过程;前向传播过程按时间步依次输入lstm网络,得到相应的输出值;以输出值与真实值的误差平方和为损失函数,进行误差沿时间反向传播来更新参数;

步骤5,运用训练好的模型进行多时刻连续预测。

2、根据权利要求1所述的一种梯级电站的上下游水位预测方法,其特征在于:所述步骤1中的输入变量为上游电站和下游电站各分电厂的出力,上游电站的上游水位;所述输出变量为下游电站的上下游水位。

3、根据权利要求1所述的一种梯级电站的上下游水位预测方法,其特征在于:所述步骤2中标准化处理过程为:

采用min-max标准化的方法,将步骤1中原始值映射到[-1,1]区间,转换函数如下:

其中,x为原始数据,x′为标准化后的数据,min为样本的最小值,max为样本的最大值。

4、根据权利要求1所述的一种梯级电站的上下游水位预测方法,其特征在于:所述步骤3中输入向量维数是指输入变量的个数;输出向量维数是指输出变量的个数;lstm层数一般设置为1-3即可;时间步是指训练模型时每个子序列的时间数。时间步的确定采用网格搜索的方法,首先结合实际情况划分合理的范围,然后在此范围内依次进行模型训练,根据验证集损失函数最小的原则确定时间步。

5、根据权利要求1所述的一种梯级电站的上下游水位预测方法,其特征在于:所述步骤4中lstm的前向传播过程和误差反向传播过程的详细过程为:

ct-1表示t-1时刻隐含层的单元状态,根据历史信息和当前信息来更新,用于储存长期记忆;ht-1表示t-1时刻隐含层的输出;lstm中有三个门:输入门、遗忘门和输出门;其中it表示输入门,用以控制当前时刻的输入信息有多少会保存到单元状态中;ft表示遗忘门,用以控制前一时刻的单元状态会有多少保留到当前的状态中;ot表示输出门,用以控制新的单元状态会有多少输出到ht中;表示t时刻输入的单元状态,包含t时刻输入的信息;ct表示t时刻隐含层的单元状态,根据历史信息和当前信息来更新,用于储存长期记忆;ht表示t时刻隐含层的输出;σ表示sigmoid激活函数,tanh表示tanh激活函数。

前向传播过程的具体公式为:

遗忘门:

netf,t=wfhht-1+wfxxt+bf

ft=σ(netf,t)(2)

输入门:

neti,t=wihht-1+wixxt+bi

it=σ(neti,t)(3)

输出门:

neto,t=wohht-1+woxxt+bo

ot=σ(neto,t)(4)

当前输入的单元状态:

netc~,t=wchht-1+wcxxt+bc

隐含层的单元状态:

隐含层的输出:

输出层:

其中,表示对应元素相乘,wfh,wfx,wih,wix,woh,wox,wch,wcx,wy分别是对应的权重矩阵,bf,bi,bo,bc,by分别为对应的偏置项;

lstm的训练算法仍然是误差反向传播算法;由于lstm的前向传播过程是从左到右的有序传播,因此误差反向传播过程也是沿时间反向传递,称为bptt算法;要训练的参数包括权重矩阵wfh,wfx,wih,wix,woh,wox,wch,wcx,wy和偏置项bf,bi,bo,bc,by;将误差沿时间反向传播,需要计算每个时刻的误差项;设t时刻真实值dt与输出层估计值yt的误差为et,0到t时刻的总误差为e,即:

需要说明的是,其中:表示梯度,如表示e对nety,t的梯度;进一步可以计算各个梯度分别为:

可得:

进而得到权重矩阵和偏置项的梯度:

由以上梯度公式就可以采用梯度下降法来更新权重和偏置项,本发明将梯度下降法和拟牛顿法中的bfgs算法相结合,在初始阶段误差比较大时,采用下降梯度法,当总误差减小到一定程度后,采用bfgs法来训练,并通过wolfe-powell线搜索来搜索合适的步长,提高了迭代效率,wolfe-powell线搜索准则为:

其中,ω表示模型中的所有参数,e(·)表示损失函数,e′(·)表示损失函数的梯度,δω表示下降方向,α表示搜索步长。

6、根据权利要求1所述的一种梯级电站的上下游水位预测方法,其特征在于:所述步骤5中在预测时,输入样本按照训练时的标准化方法进行标准化,得到的模型输出再进行反标准化即为水位预测值,即:

其中,x′为模型输出,x为反标准化后的预测值,min为训练样本的最小值,max为训练样本的最大值。

本发明有如下有益效果:

1、随着大数据战略的全面推进,基于机器学习的数据挖掘技术不断延伸到各种研究领域,尤其是人工智能的发展,为数据挖掘提供了新的思路。在神经网络中,循环神经网络能够考虑到数据的时序性特点,对历史的信息进行记忆并应用于当前的计算当中,因此在处理序列数据方面具有独特的优势。长短时记忆网络作为循环神经网络的一种成功变体,能够克服原始循环神经网络中存在的梯度消失或梯度爆炸问题,学习到数据之间的长期依赖关系。将lstm应用到水电站的水位预测中,可以捕捉到上游电站对下游电站的滞后性影响信息,以及可以筛选出有用的信息,进一步提高预测精度。

2、本方法的应用,可以准确预测下游水电站连续多个时刻的上、下游水位,改善了梯级水电站多时刻水位预测能力,为科学的调度决策提供了更加可靠的理论支撑。

附图说明

下面结合附图和实施例对本发明作进一步说明。

图1为水位预测的输入变量和输出变量。

图2为lstm的隐层单元结构图。

图3为lstm神经网络的基本结构图。

图4为基于lstm的上下游水位预测模型框架。

图5为b电站上游水位连续6小时水位预测误差直方图。

图6为b电站下游游水位连续6小时水位预测误差直方图。

图7为gd-bfgs算法与adam算法在优化性能上的差异对比图。

附表说明

表1为梯度下降法与bfgs算法相结合的参数更新算法。

表2为b水库连续6小时上游水位预测结果表。

表3为b水库连续6小时下游水位预测结果表。

附表说明

表1为梯度下降法与bfgs算法相结合的参数更新算法。

表2为gd-bfgs算法训练模型得到的b水库连续6小时上游水位预测结果表。

表3为gd-bfgs算法训练模型得到的b水库连续6小时下游水位预测结果表。

表4为adam算法训练模型得到的b水库连续6小时下游水位预测结果表。

表5为adam算法训练模型得到的b水库连续6小时下游水位预测结果表。

具体实施方式

下面通过实施例,结合图表,对本发明的技术方案做进一步说明。

实施例1:

步骤1,选取输入变量与输出变量。输入变量为上游电站和下游电站各个分电厂出力,以及上游电站的上游水位。由于电站的流量数据均是估算得到的,本身含有一定的偏差,因此没有考虑流量的数据,而是通过水位和有功等实时监测数据来间接反映流量的隐含变化。输出变量为下游电站的上下游水位。具体见图1。

步骤2,对数据进行标准化处理,消除量纲的影响。采用min-max标准化的方法,将步骤1中的原始值映射到[-1,1]区间,转换函数如下:

其中,x为原始数据,x′为标准化后的数据,min为样本的最小值,max为样本的最大值。

步骤3,确定输入向量维数、lstm层数、输出向量维数,以及时间步。输入向量维数是指输入变量的个数;输出向量维数是指输出变量的个数;lstm层数一般设置为1-3即可;时间步是指训练模型时每个子序列的时间数。时间步的确定采用网格搜索的方法,首先结合实际情况划分合理的范围,然后在此范围内依次进行模型训练,根据验证集损失函数最小的原则确定时间步。

步骤4,lstm的前向传播过程和误差反向传播过程。lstm的隐层单元结构图见图2,lstm神经网络的基本结构图见图3。在图2中,ct-1表示t-1时刻隐含层的单元状态,根据历史信息和当前信息来更新,用于储存长期记忆;ht-1表示t-1时刻隐含层的输出;lstm中有三个门:输入门、遗忘门和输出门,其中it表示输入门,用以控制当前时刻的输入信息有多少会保存到单元状态中;ft表示遗忘门,用以控制前一时刻的单元状态会有多少保留到当前的状态中;ot表示输出门,用以控制新的单元状态会有多少输出到ht中;表示t时刻输入的单元状态,包含t时刻输入的信息;ct表示t时刻隐含层的单元状态,根据历史信息和当前信息来更新,用于储存长期记忆;ht表示t时刻隐含层的输出;σ表示sigmoid激活函数,tanh表示tanh激活函数。

前向传播过程的具体公式为:

遗忘门:

netf,t=wfhht-1+wfxxt+bf

ft=σ(netf,t)(2)

输入门:

neti,t=wihht-1+wixxt+bi

it=σ(neti,t)(3)

输出门:

neto,t=wohht-1+woxxt+bo

ot=σ(neto,t)(4)

当前输入的单元状态:

netc~,t=wchht-1+wcxxt+bc

隐含层的单元状态:

隐含层的输出:

输出层:

其中,表示对应元素相乘,wfh,wfx,wih,wix,woh,wox,wch,wcx,wy分别是对应的权重矩阵,bf,bi,bo,bc,by分别为对应的偏置项,yt为输出层估计值;

lstm的训练算法仍然是误差反向传播算法。由于lstm的前向传播过程是从左到右的有序传播,因此误差反向传播过程也是沿时间反向传递,称为bptt算法。要训练的参数包括权重矩阵wfh,wfx,wih,wix,woh,wox,wch,wcx,wy和偏置项bf,bi,bo,bc,by。将误差沿时间反向传播,需要计算每个时刻的误差项。设t时刻真实值dt与输出层估计值yt的误差为et,0到t时刻的总误差为e,即:

需要说明的是,其中:表示梯度,如表示e对nety,t的梯度;进一步可以计算各个梯度分别为:

可得:

进而得到权重矩阵和偏置项的梯度:

由以上梯度公式就可以采用梯度下降法来更新权重和偏置项。本发明将梯度下降法和拟牛顿法中的bfgs算法相结合(gd-bfgs),在初始阶段误差比较大时,采用下降梯度法,当总误差减小到一定程度后,采用bfgs法来训练,并通过wolfe-powell线搜索来搜索合适的步长,提高了迭代效率。wolfe-powell线搜索准则为:

其中,ω表示模型中的所有参数,e(·)表示损失函数,e′(·)表示损失函数的梯度,δω表示下降方向,α表示搜索步长。

这个搜索准则是为了保证α足够的小以使目标函数下降,同时又足够的大以保证新的迭代点远离当前点。参数更新算法过程见表1,模型框架见图4。

步骤5,运用训练好的模型进行预测。在预测时,输入样本按照训练时的标准化方法进行标准化,得到的模型输出再进行反标准化即为水位预测值,即

其中,x′为模型输出,x为反标准化后的预测值,min为训练样本的最小值,max为训练样本的最大值。

表1gd-bfgs的参数更新算法

实施例2

以a电站和b电站构成的梯级电站为例进行说明,其中a电站表示上游水电站,b电站表示下游水电站。输入向量维数为8维,输出向量维数为2维,lstm层数为1层,lstm层单元数为20,时间步为60。采用本发明设计的算法进行训练,得到b电站上游水位连续6小时水位预测误差直方图见图5,b电站下游游水位连续6小时水位预测误差直方图见图6,b水库上游水位连续6小时水位预测误差结果表见表2,b水库下游水位连续6小时水位预测误差结果表见表3。

表2b水库上游水位连续6小时水位预测误差结果表(gd-bfgs)

表3b水库下游水位连续6小时水位预测误差结果表(gd-bfgs)

说明:

(1)平均绝对误差(mae)和均方根误差(rmse)的计算公式为:

其中,yi表示真实值,表示预测值,n表示预测样本的个数。

(2)表中的时刻列表示根据当前时刻连续预测下6个时刻的水位。

(3)表中的均值、标准差、90%区间、mae和rmse均是根据水位预测的误差数据来计算。

对比分析

表4和表5分别为采用神经网络中应用较广泛的adam算法训练得到的b水库上游水位连续6小时水位预测误差结果表和b水库下游水位连续6小时水位预测误差结果表。对比表2和表3可以发现gd-bfgs算法训练模型得到的误差结果的各项评价指标都优于adam算法。图7为gd-bfgs算法与adam算法在优化性能上的差异对比图,可以看出gd-bfgs算法相比于adam算法具有快速收敛的特征。

表4b水库上游水位连续6小时水位预测误差结果表(adam)

表5b水库下游水位连续6小时水位预测误差结果表(adam)

上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。

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