基于机器学习的三峡水库小时尺度坝前水位预测
2023-03-06刘晓阳,姚华明,2,张海荣,2,夏燕,赵建华
刘 晓 阳,姚 华 明,2,张 海 荣,2,夏 燕,赵 建 华
(1.中国长江电力股份有限公司,湖北 宜昌 443133; 2.智慧长江与水电科学湖北省重点实验室,湖北 宜昌 443133; 3.中国长江三峡集团有限公司 流域枢纽运行管理中心,湖北 宜昌 443133)
0 引 言
机器学习方法可以从大量数据中挖掘变量间存在的复杂映射关系,与传统的既定关系曲线计算方法相比具有明显优势,可有效提高计算精度。许多学者尝试将机器学习模型应用于水位预测的研究,并取得了较为丰富的研究成果。在地下水位预测方面,人工神经网络方法有较多应用[1-4],例如魏光辉[4]利用BP神经网络和模糊神经(NF)网络两种方法对希尼尔水库周边地下水水位进行预测计算,结果表明模糊神经网络具有更加优秀的误差纠错和仿真性能,证明机器学习方法在长时间尺度的地下水位预测中具有良好效果。相较于影响因素较为单一的地下水位预测,机器学习方法在河湖水位预测中同样应用广泛[5-11]。例如涂月明等[6]采用互信息方法进行预测模型输入因子的筛选,并以西洞庭湖为例建立日水位预测模型,F检验显著,预测精度较高;刘艳等[9]提出了基于序列到序列(Seq2Seq)的短期水位预测模型,进行时域内连续水位预测,通过引入序列到序列结构,建立了未来 6,12 h 和 24 h 的逐小时水位预测模型,以西溪河历史水位数据为测试对象,预测模型的MAE均小于0.1 m,NSE均大于0.7,取得了较高的预测精度。从以上可见机器学习方法在边界条件更加复杂、时间尺度更小的预测模型中依然有效。机器学习方法在城市水位预测中也有良好表现,Assem等[12]采用了基于深度卷积神经网络的机器学习模型,对爱尔兰香农河两岸的3个水文测站 30 a 的水位和流量进行进行学习训练,并对2013~2080年的水位及流量进行了预测模拟,为当地水资源优化分配提供了较大技术支持。水库水位除受降雨产流等天然因素影响外,同时受发电、生活灌溉取水等人为因素影响,水位变化较为复杂,预测难度较高,相关研究证明机器学习方法在水库水位预测中依然可以取得良好预测效果[13-16]。例如刘亚新等[14]建立了基于长短时记忆网络(LSTM)的葛洲坝电站上下游水位预测模型,实现了葛洲坝上下游水位短期变化趋势的精准预测;刘威等[15]提出了一种基于长短期记忆网络的时间序列模型,以沂沐泗流域的石梁河水库为研究对象,实现水库水位的精准预测。上述研究成果主要在中小型水库中应用验证,在大型水库中缺乏相关预测效果证明。三峡水库因其库容大、回水长,具有更加复杂的水力条件,在调峰过程中出库流量变化会导致坝前水位的跌水和壅水,上游水位变化极其复杂,利用传统方法难以精确模拟,机器学习方法为三峡水库坝前水位预测提供了新的技术手段。基于此,本文选取3种机器学习方法(人工神经网络、支持向量机、随机森林)分别建立三峡水库小时尺度坝前水位预测模型,对模型预测效果进行精度评价,以期为三峡水库短期发电精准化调度提供技术支持。
1 坝前水位变化规律分析
三峡水库属于典型河道型水库,且具有库容大、回水长的特点,库区水面线并非呈水平状态,尤其是坝前水位受多方面因素影响,变化规律复杂。三峡电站枯水期调峰运行,出力增减过程中由于出库流量突变形成的壅跌水对坝前水位变化具有较大影响。因此计算中使用考虑壅跌水变化的动库容计算方法进行入库流量的计算,理论上较为接近真实入库流量。为定性分析出库流量的突变对坝前水位的影响,本文对三峡水库日内库容变化和水位变幅进行了对比分析,表1和图1选取的为三峡水库典型枯期调峰背景下2019年12月10日日内水位过程。06:00,12:00,16:00,22:00这4个时段流量变化较大,出入库流量差与水位变幅匹配性较差,利用水量平衡原理计算的静库容入库呈现负值。以06:00为例,在动库容入库与出库基本持平的情况下水位有明显下降,其原因是出库流量较前时段突然增加,导致了坝前跌水。12:00 入库流量小于出库流量,但坝前水位呈上升趋势,其原因是出库流量突然减少,导致了坝前壅水。
图1 三峡水库日内水位变化过程(2019年12月10日)Fig.1 Hourly water level change process of the Three Gorges Reservoir on December 10,2019
表1 三峡水库日内水位统计(2019年12月10日)Tab.1 Statistics of hourly water level of the Three Gorges Reservoir on December 10,2019
此外,由10:00,18:00,20:00几个时段可发现另一水位变化规律。以10:00为例,在动库容入库小于出库的情况下水位缓涨,且该时段出库流量并无明显突变,其原因是前面时段发生坝前跌水,后续时段该部分水量得到补充,水位回涨。对历史数据中大量日内过程进行分析,均具有该典型过程的水位变化规律,由此可见三峡水库坝前水位变化在小时尺度上具有以下规律:三峡水库坝前水位变化在水量平衡原理基础上受到出库流量变幅的影响较大,出库流量突然减少的时候,在一定程度上会导致坝前断面水位壅高,当出库流量突然增加的时候,在一定程度上会产生跌水现象,且坝前水位在发生壅水和跌水现象后会在后续时段有向正常水位回归的趋势。
2 坝前水位预测模型
本文选取3种不同原理的机器学习方法分别建立三峡水库小时尺度坝前水位预测模型,对模型预测效果进行精度评价,并选取训练集以外不同调峰量的典型日内过程对模型预测效果进行评估和较为直观的展示。
2.1 机器学习方法超参数设置
本研究以人工神经网络[17]、支持向量机[18]、随机森林[19]3个代表不同原理的机器学习方法为基础,建立预测模型,对3组预测因子组合分别进行训练及精度评价。3种方法超参数设置如下。
(1) 人工神经网络:隐藏层层数为15,隐藏层神经元个数为50,激活函数为修正非线性(relu),学习率为0.001,梯度下降方法为Adam。
(2) 支持向量机:核函数kernel为rbf,惩罚系数C为1.0,核函数参数degree为3,核函数参数gamma为scale。
(3) 随机森林:基评估器(树)的数量为100,树生成模式random_state为None。
2.2 预测因子选取
预测因子的选取在预测模型的构建及训练过程中起着尤为重要的作用,虽然机器学习方法在数据关系回归拟合方面相比于传统方法具有较大优势,但其核心依旧是通过对数据样本的训练学习,确定预测因子和预测目标间的映射关系。如果这种映射关系过于复杂和隐晦,机器学习方法的效果可能会低于期望。因此在进行模型构建时,对一些既定的隐层映射加以拆分,可提高模型的学习效率和预测精度。
三峡水库出入库流量差与水位变化有直接映射关系,将出库流量和入库流量两个预测因子综合为一个,可提高模型学习效率;当前时段与前一时段出库流量差值这一指标反映了出库流量的变化量,用来学习壅跌水过程;因为坝前水位在发生壅水和跌水现象后会在后续时段有向正常水位回归的趋势,前面多个时段出库流量差可作为衡量前面时段发生壅跌水的时段和壅跌水大小的指标。同时预测对象选取坝前水位变幅,可在减少预测因子的同时简化输入和输出之间的映射复杂度。综上,预测因子与预测对象选取如下。
(1) 预测因子。选择三峡水库动库容入库与三峡水库出库流量差(时段均值)、时段初末出库流量差值(时刻值)、前5个时段初末出库流量差值(即Qt-Qt-1、Qt-1-Qt-2、Qt-2-Qt-3、Qt-3-Qt-4、Qt-4-Qt-5,其中Qt为t时段出库流量),由于本研究是对未来时段的水位进行预测,因此所用入库流量为未来时段预报入库,出库流量为未来时段出力计划及耗水率求得。
(2) 预测对象。坝前时段初末水位差值(时刻值)。
2.3 预测精度评价
(1)
(2)
为更好体现预测模型对训练数据集泛化能力,评价时使用k折交叉验证。即将数据集等比例划分成k份,以其中的一份作为测试数据,其他的k-1份数据作为训练数据,进行k次测试后得到综合评价结果。本文研究所用数据集为三峡水库2017~2019年枯期实际运行数据,共8 750个样本,采用5折交叉验证,即7 000个样本作为训练集,1 750个样本作为测试集,3种机器学习方法的训练及测试评价结果见表2。
由表2可知,3种方法在测试集上均有较好表现,其中随机森林方法表现最优,均方误差为5.2,均方根误差为2.3 cm,R2平均值为0.82,预测精度较高,可见基于机器学习方法的预测模型可以在复杂因素影响下的大型水库坝前水位预测中具有良好表现。
表2 3种预测模型预测精度评估Tab.2 Prediction accuracy assessment results of three models
3 实例分析
为更加直观地展示预测结果,本文选取训练集以外的典型日内过程为独立测试对象,即2020年11月25日三峡水库运行数据进行模型预测结果的定量分析。为尽可能全面覆盖枯期运行工况,分别选取140万,480万,700万kW这3个不同调峰量的典型过程作为测试案例。随机森林模型在3个模型中表现最好,因此利用随机森林预测模型对典型日内水位过程进行模拟预测,由于构建模型时将水位变幅作为预测对象,首先对实际水位变幅、水量平衡计算水位变幅和预测水位变幅进行对比分析,对比结果如图2所示。相比水量平衡计算水位变幅,预测模型预测水位变幅能够更加贴近真实水位变幅,尤其是在发生壅跌水的时段,预测水位变幅与真实水位变幅较为一致。通过水位变幅累加将水位变幅过程转化为水位过程,其对比结果如图3所示。
图2 典型过程水位变幅预测结果对比(140万kW调峰,2020年11月25日)Fig.2 Comparison of predicted water level variation in typical processes(1 400 MW peak-regulation,November 25,2020)
图3 典型过程水位预测结果对比(140万kW调峰,2020年11月25日)Fig.3 Comparison of predicted water level in typical processes(1 400 MW peak-regulation,November 25,2020)
可见虽然预测水位能够较好地模拟真实水位的变化特性,但预测模型的预测水位过程较实际水位过程仍存在一定偏差,其原因是时段误差累计。由于从日尺度统计结果来看,水量平衡计算水位与实际水位偏差较小,因此本研究采取修正值线性增大的修正思路对预测水位过程进行偏差修正,技术路线如下:
(1) 在日尺度利用水量平衡原理计算日末水位Zwb,end。
(2) 计算机器学习方法预测日末水位与水量平衡原理计算日末水位Zml,end的差值ΔZ。
(3) 计算第i个时段的修正值,i倍的ΔZ和时段数timecount的比值。
(4) 计算第i个时段的修正水位Zi,fix,预测水位Zi叠加修正值。
修正策略公式为
(3)
修正后的曲线如图3所示,可以看到修正后水位过程与真实水位过程较为接近,其预测精度有明显提升。
同样地,预测模型在480万kW和700万kW调峰量算例中的预测结果如图4~7所示,可见在更加复杂的工况下,基于机器学习方法的预测模型同样具有较好表现,与传统水量平衡方法相比优势明显。
图4 典型过程水位变幅预测结果对比(480万kW调峰,2020年11月12日)Fig.4 Comparison of predicted water level variation in typical processes(4 800 MW peak-regulation,November 12,2020)
图5 典型过程水位预测结果对比(480万kW调峰,2020年11月12日)Fig.5 Comparison of predicted water level in typical processes(4 800 MW peak-regulation,November 12,2020)
图6 典型过程水位变幅预测结果对比(700万kW调峰,2020年12月30日)Fig.6 Comparison of predicted water level variation in typical processes(7 000 MW peak-regulation,December 30,2020)
图7 典型过程水位预测结果对比(700万kW调峰,2020年12月30日)Fig.7 Comparison of predicted water level in typical processes(7 000 MW peak-regulation,December 30,2020)
4 结 语
本文分析了三峡水库坝前水位变化规律,以人工神经网络、支持向量机、随机森林3种不同原理的机器学习方法为基础建立了小时尺度三峡水库坝前水位预测模型,并将水位变化规律启发式地加入预测模型框架。结果表明:3种模型均具有较高预测精度,通过不同调峰量的典型日内过程测试对比可以看到,基于机器学习方法的预测模型与传统水量平衡方法相比具有明显优势,可为水库精准化短期发电调度提供有效的技术支撑。