基于LSTM的三峡水库短期上游水位预测方法研究

2022-11-23 03:04刘亚新孟庆社
水利水电快报 2022年10期
关键词:三峡水库凤凰山三峡

徐 杨,刘亚新,汪 涛,孟庆社

(1.三峡水利枢纽梯级调度通信中心,湖北 宜昌 443002; 2.智慧长江与水电科学湖北省重点实验室,湖北 宜昌 443002)

0 引 言

三峡工程是中国最大的水利枢纽工程,是治理和开发长江的关键性骨干工程,三峡主电站装机容量为22 400 MW,机组32台,单机容量700 MW,其中左岸、右岸、地下电站分别安装14,12和6台水轮发电机组,另外还有2台单机50 MW的电源机组;三峡水库调节库容165亿m3,防洪库容221.5亿m3,总库容450.11亿m3。三峡工程在防洪、航运及生态供水、发电等方面发挥了巨大的综合效益。

三峡水库上游水位代表站为凤凰山水位站。受电站短期(小时尺度)运行约束和调度计算体系的影响,其水库上游水位预测面临诸多技术难题,主要表现为以下方面。

(1) 三峡库区面积较大,采用反映水面线变化的动库容方法计算得出三峡入库流量,入库流量采用的计算点见图1。动库容入库流量与小时尺度内的水库上游水位存在不匹配的问题,利用水量平衡方程(通过时段初的上游水位以及该时段内入库流量和出库流量计算时段末的上游水位),计算误差较大。实际调度中,一般考虑三峡库尾水量传播时间为12~18 h,将动库容入库流量计算值后推估算静库容入库流量后,再采用水量平衡方程计算上游水位。

图1 三峡库区多算点水位示意Fig.1 Schematic diagram of multi-point water level in the Three Gorges Reservoir Area

(2) 当三峡水电站承担调峰、调频任务时,其出力和下泄流量可能发生剧烈变化,以致水库上游水位短时间大幅度波动,基于水量平衡原理的传统计算方法无法完全反映该状态下水位的动态变化过程,预测误差较大。

(3) 目前,三峡入库流量的计算频次为2 h,1 h尺度水库出入库计算流量数据的缺失,也导致基于水量平衡原理进行预测计算的传统方式失效。

为解决复杂情况下的水位预测问题,目前国内外学者对基于长短时记忆(LSTM)模型的水位预测方法进行了大量研究和应用。例如,刘亚新[1]利用LSTM模型实现葛洲坝下游水位连续6 h和上游水位连续3 h的准确预测;王亦斌[2]以南水北调工程某河流每隔1 h的瞬时流量、流速和水深监测数据为研究对象,采用EMD-LSTM模型进行建模,试验结果表明,该模型能够实现水位、水速和瞬时流量连续12 h和6 h的准确预测;唐鸣[3]将LSTM预测模型应用于南水北调中线京石段的闸前水位预测,与深度神经网络(DNN)预测结果进行了对比,结果显示LSTM预测结果具有较高精度等。考虑到传统基于水量平衡原理进行水位预测方法的弊端,本文提出基于LSTM的短期三峡上游水位预测方法来提高复杂情况下水位预测精度,为保障三峡工程综合效益的发挥和安全稳定运行提供重要技术支持。

1 基本思路

1.1 预测方法构建

水库水位数据为时间序列且呈非线性变化。时间序列的特点是不同时刻间的观测值在时间维度上相互联系,在预测方法构建时,应考虑这一特点并充分利用时间维的联系,使历史水位信息在时间维上连续传递。因此,本文认为理想的方式是将多元回归和时间序列的思想相结合,使水位预测更加准确和完善。而传统的多元回归建模方法未考虑时序联系,传统的时间序列分析法处理要素单一且对非线性数据处理效果不好,因而需要寻求一种方法,能够同时兼顾多元回归和时间序列的思想。机器学习方法中的深度学习方法有更高的抽象能力,更适合于检测数据中复杂、分散和细微的模式,为实现模型设计思想提供了可能性。根据数据特征和对深度学习网络的研究,预测模型适宜使用循环神经网络(RNN)类别中的LSTM网络模型来构建,具体原因如下。

(1) LSTM网络是一种具有普适性和前景的自适应序列处理方法,其潜在应用领域比其他循环神经网络更广。

(2) 对于研究目标,由于水位是在时间维度上连续变化的量,且与历史状态关系密切,采用LSTM网络,使水位信息在逐个时间步长上记忆并传递显得更为合理,实现了时间序列的思想。

(3) LSTM网络还具有较大的灵活性,可以有多个输入,于是可兼顾多元回归思想,将多个影响因素与水位变化建立联系。

本文基于LSTM模型实现考虑动库容影响下的三峡水库上游水位预测,预测尺度以1 h为步长,预见期为未来24 h。模型基于水量传播、水位-出力之间相应关系等物理机制,构建预测因子,以水库调度运行数据多元回归的角度研究上游水位的预测,同时结合数据特征,将时间序列的思想融入其中,并借助深度学习方法,构建了三峡水库短期上游水位预测方法,并分析了模型预测精度。

1.2 RNN与LSTM网络模型

RNN是一种本身是包含循环的特殊网络,可以通过其特定结构,将过去时刻的影响反映到当前的预测之中;同时由于共享不同时刻的权值矩阵,减少了参数数目,大大提高训练效率,且可以处理任意长度时间序列数据,因此在时间序列预测方面具有独特优势。RNN结构示意见图2,xt为网络输入数据,ht为网络输出数据,A为循环神经网络。

图2 RNN结构示意Fig.2 RNN structure diagram

然而,普通RNN在实际应用过程中存在长期依赖问题,即信息经长时间或多阶段传递后,会出现梯度逐渐消失和爆炸的现象,网络无法保留所有历史时刻的信息,从而使模型丧失了学习到更早信息的能力。

为解决这一问题,1997年Hochreiter等[4]提出了一种改进RNN模型——LSTM网络,通过引入门的设置来决定控制信息的流动,取得成功。

LSTM有输入门、遗忘门和输出门3个门,其结构示意如图3所示。相比普通RNN只有一个传输状态,LSTM有两个传输状态ct和ht。ct表示隐含层的状态单元;ht表示隐含层的输出;σ和tanh表示激活函数。当前的LSTM接收来自上一个时刻的状态ct-1以及当前LSTM接收的输入xt,通过输入门、遗忘门、输出门操作之后,得到输出ht[5]。

图3 LSTM结构示意Fig.3 Schematic diagram of LSTM structure

2 基于LSTM的水库短期上游水位预测

2.1 总体设计

为确保准确预测三峡水库短期上游水位,将采用监督学习方法,并为模型提供“输入-目标”序对进行训练。监督学习可分为分类和回归两大类,由于水位是一个连续变量,且需获取其精确值,是一个回归问题。因此预测模型采用多元回归与时间序列相结合的设计思想,并通过LSTM网络模型实现该思想。

2.2 模型输入与输出数据

本文对2015年1月1日至2019年10月1日的白沙沱水位、忠县水位、石宝寨水位、万县水位、云阳水位、奉节水位、巫山水位、巴东水位、秭归水位、凤凰山水位、三峡入库流量及三峡弃水流量、三峡全厂出力数据进行分析。

考虑三峡库区水面线传播对三峡坝前水位的影响、水量平衡、机组NHQ关系等物理机制,模型的输入输出如表1所示。

表1 模型训练输入与输出数据Tab.1 Model training input and output data

在选择输入数据时,从出力-流量-库容-水位的传统计算思路,将基于水量平衡所需要的全部信息作为输入数据,保证LSTM模型信息的完备。

2.3 数据预处理

(1) 数据归一化。本文选用的原始数据中包含水位、流量以及出力等多种变量,具有不同的量纲和取值范围,数值在绝对值上相差较多。而LSTM网络对输入数据的范围格外敏感,尤其在使用激活函数时,如果不加处理直接放入模型中,将严重影响计算效果,因此采用最大-最小归一化(min-max normalization)方法对数据进行归一化处理,将原始数据压缩到[0,1]的区间,计算方法如下式(1)所示。

(1)

式中:Xmax为数据中的最大值,Xmin为数据中的最小值,Xi为归一化处理后的数据。

(2) 样本集的构建。采用滑动窗口方法构造“输入-目标”序对。由于模型构造选用前48 h的梯级电站运行状况预测当前时刻的梯级电站上下游水位,预测的时间跨度为24 h,因此在5 a水库调度运行数据中,用连续72 h长度时间序列的窗口来框住部分数据,然后将窗口在该数据集系列上每滑动一个单位构成一条样本数据,进而组成样本数据集。本文将上述样本数据集的75%作为模型训练集,25%作为模型验证集。

LSTM模型对输入的三维张量的格式要求是[数据样本(samples),时间步长(time steps),数据特征(features)]。根据样本集构造的特点,输入参数特征值分别为:时间步长24,数据特征13。

2.4 模型建立及评价

三峡水电站上游水位预测模型采用Python和深度学习框架Keras编写,以1层LSTM网络作为隐层(hidden layer),用全连接层(Dense Layer)作为输出层,与隐层直接相连。LSTM 层中的 batch size设置为64,epoch 设置为60,激活函数等按默认设置,模型参数更新方法选用 Adam 算法,损失函数采用均方误差(MSE)来衡量水位预测值和真实值之间的误差。模型预测采用滚动预测(rolling forecast)方法。

选取绝对平均误差(MAE)和最大误差(MAXE)两个统计量作为模型的评价指标,计算方法如下式(2)~(3)所示。

(2)

(3)

上述式中:y实测(i)为水位实测值;y预测(i)为水位预测值。绝对平均误差(MAE)衡量模型的稳定性,最大误差(MAXE)衡量模型的预测精度。

3 计算结果分析

3.1 总体分析

以2018年三峡水库运行数据为例,三峡上游水位(凤凰山)预见期24 h水位连续变化过程计算水位与实测水位对比结果见图4,其中,图4(a)是凤凰山水位预测值与实测值的散点图,图4(b)是2018年整年的预测水位过程与实测水位误差过程的对比。

图4 凤凰山全年计算水位与实测水位对比Fig.4 Comparison of annual calculated water level and measured water level in Fenghuang Mountain

图4显示凤凰山水位预测效果整体较好,滚动预测2018年整年水位均方根误差为0.067 m。分别选取三峡水库的消落期、汛期、蓄水期与高水位运行期的局部预测效果如图5所示。

图5 凤凰山不同调度期水位预测效果Fig.5 Prediction effect of water level in different dispatching periods of Fenghuang Mountain

从2018年三峡消落期、汛期、蓄水期与高水位运行期的凤凰山水位预测结果来看,从模型可以获取各个调度期的水位变化特征,在消落期的水位降低过程和汛期的电站调峰过程中表现出良好的拟合精度;在蓄水期和高水位运行期也体现了水位变化的主要趋势,但是呈现出明显的锯齿波动特征,这是下一步模型改进的方向。

3.2 不同预见期误差分析

三峡水库承担着重要的综合利用任务,保障梯级电站的安全稳定运行至关重要,因此不但要评估模型计算结果的误差均值,更要评估模型的最大误差。通过不同预见期的最大误差判断模型在几个小时内的预测结果是可信的、水库调度为此要预留出多大的水位空间。

为直观反映不同预见期水位预测误差的分布,绘制了水位预测误差的箱型图,如图6所示。具体步骤为:① 将预见期相同的水位预测误差从大到小排列,分别计算该系列上四分位数,中位数,下四分位数;② 计算得到四分位距;③ 上下极限分别取1.5倍四分位距值;④ 上下极限之外的数值被定义为异常值,用箱体外部的圆点表示;⑤ 中位数在箱体中间用短线表示;⑥ 均值在箱体内部用圆点表示。

图6 箱型图示意Fig.6 Schematic diagram of box type

不同预见期水位预测误差分散情况和分布特征如图7所示,2018年整年凤凰山水位,预测误差上四分位数在24 h预测期内均低于0.2 m,最大误差低于0.4 m,预测效果较好。

图7 凤凰山水位1 h尺度预测误差分布箱型Fig.7 Box diagram of 1-hour scale prediction error distribution of Fenghuangshan water level

3.3 误差年内分布分析

为了分析模型在各个调度期的预测效果,按照三峡调度规程将1 a划分为4个调度期,分别为:消落期(1月1日至6月10日)、汛期(6月10日至9月10日)、蓄水期(9月10日至10月31日)和高水运行期(10月31日至12月31日)。凤凰山水位预测误差各调度期分布饼状图见图8。

图8 凤凰山水位预测误差分布饼状图Fig.8 Pie chart of water level prediction error distribution in Fenghuang Mountain

由图8可知,凤凰山水位高于0.2 m的预测误差主要发生在汛期,此时三峡上游水位受动库容影响较大,容易造成上游水位预测误差。

4 结 语

准确预测水位是保障三峡工程综合效益发挥的重要支撑。本文分析了三峡水库短期上游水位预测面临的技术难题和现有水位预测方法的弊端,根据水库的水位数据为时间序列且呈非线性变化的特性,考虑三峡动库容、调峰及流量计算密度不够等影响,提出基于LSTM算法的水位预测方法思路,构建了三峡水库短期上游水位预测模型,并采用2018年三峡水库实际运行数据进行了模拟计算。结果表明:该方法全年水位预测误差上四分位数在24 h预测期内均低于0.2 m,最大误差低于0.4 m,预测效果较好,复杂情况下较传统方法水位过程预测精度提升较多,可在三峡水库实时调度中得到应用。后期可进一步加强LSTM等深度学习模型的应用,优化模型输入输出,改善目前模型蓄水期和高水位运行期水位预测呈现明显锯齿波动特征的计算结果。

猜你喜欢
三峡水库凤凰山三峡
原来你是李白的三峡
在凤凰山上
神奇美丽的三峡大瀑布
凤凰山歌
三字歌
人民三峡人民建,建好三峡_____
凤凰山
北京重庆三峡酒楼创新菜选(一)