一种基于延时因子和PSORNNAttention模型的水库水位预测预警方法与流程

专利2024-08-20  57


一种基于延时因子和pso rnn attention模型的水库水位预测预警方法
技术领域
1.本发明涉及水库水位预测预警技术领域,具体涉及一种基于延时因子和pso rnn attention模型的水库水位预测预警方法。


背景技术:

2.水库在水资源管理调度中是十分重要的存在,水库对于抗洪及水资源的开发利用具有重要意义,将水库水位控制在一个合理的区间,是保证水库安全的重要工作之一。
3.现有的水库健康监测系统,采用传感器对水库的雨水情数据进行实时监测,再通过人工经验判断或简单的数学公式推导决定闸门开合程度。该方法不仅没有实现对未来水位的预测,而且耗费巨大资源采集到的数据直接存入数据库中,还需持续投入资源对数据库进行维护,并未充分挖掘水库雨水情数据中的价值,造成了资源的严重浪费。对于极端天气,只能通过天气预报得知,不稳定因素过多,在突发的洪涝气候时,往往为了不垮坝,而不得不往水库开闸放水,造成水库洪灾,严重时甚至会造成人员伤亡。
4.可见,现有的水库水位调度技术,大多是基于传感器采集的水库实时水位,结合天气预报,凭借人工经验及简单的数学推导公式判断未来水位,进行水库水位的实时调度。


技术实现要素:

5.本发明的目的在于提供一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,该方法充分利用水库与上游雨水情数据,实现对未来水位的预测,预测准确度高,结合kafka模块和预警模块可以实现对大坝的实时监测及预警。
6.为实现上述目的,本发明的技术方案是:一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,基于水库和上游相关测点雨水情数据,构造水位延时因子,建立rnn-attention水库水位预测模型,使用pso优化算法对rnn-attention水库水位预测模型超参数进行优化,进而实现对水库水位的预测预警。该方法实现步骤如下:
7.步骤1、计算水位延时因子;
8.步骤2、输入水位、泄洪量、降雨量数据;
9.步骤3、数据预处理;
10.步骤4、构造水位分量;
11.步骤5、消除数据间的量纲、数值差异;
12.步骤6、数据划分与重塑;
13.步骤7、构造上游相关测点延时特征;
14.步骤8、搭建rnn-attention水库水位预测模型;
15.步骤9、采用pso优化算法优化rnn-attention水库水位预测模型超参数,得到优化后的pso rnn-attention水库水位预测模型;
16.步骤10、对步骤9优化后的pso rnn-attention水库水位预测模型进行评估并存
储,而后利用优化后的pso rnn-attention水库水位预测模型,实现对水库水位的预测预警。
17.相较于现有技术,本发明具有以下有益效果:
18.1、提出的基于求解延时因子,计算上游相关水位(泄洪量)延时特征的方法,可以有效的得到上游相关测点水位(泄洪量)作用到水库的时间,大大提高了水位预测模型的准确度。
19.2、本方法以rnn-attention水库水位预测模型为核心,建立了水位预测模块,结合kafka模块和预警模块,实现对水库水位实时预测预警功能,解决了人工经验判断误差高与简单公式计算预测不准确的问题。
20.3、本方法使用适合时间序列预测的rnn算法预测水位,构建了两个rnn层,使模型具有非线性多维度预测能力,再引入attention机制完成注意力权重的分配,提高了预测的准确度。
21.4、使用改进的pso算法优化rnn-attention模型超参数,大大减少了rnn-attention模型寻找超参数的时间,与普通的pso寻优算法相比,有效提高了模型整体的预测准确度。
附图说明
22.图1为本发明方法流程图。
23.图2为水库、上游测点、水闸示意图。
24.图3为数据重塑示意图。
25.图4为本发明搭建的rnn-attention机制模型架构图。
26.图5为pso算法优化流程图。
27.图6为惯性权重ω变化曲线图。
28.图7为本发明方法具体应用实例的实时预测流程图。
29.图8为本发明一实例的pso迭代过程示意图。
30.图9为本发明一实施例测试集预测值与真实值拟合曲线图。
具体实施方式
31.下面结合附图,对本发明的技术方案进行具体说明。
32.本发明一种基于延时因子和pso rnnattention模型的水库水位预测预警方法,基于水库和上游相关测点雨水情数据,构造水位延时因子,建立rnn-attention水库水位预测模型,使用pso优化算法对rnn-attention水库水位预测模型超参数进行优化,进而实现对水库水位的预测预警。
33.以下为本发明具体实施过程。
34.基于现有的水库和上游相关测点雨水情数据,构造水位延时因子,建立rnn-attention水库水位预测模型,使用pso优化算法对模型超参数进行优化,整体流程如图1所示。
35.步骤1、计算水位延时因子
36.输入水库及其上游每个相关测点的水位、泄洪量数据,使用z-score标准化方式消
除不同值域、单位数据之间的量纲影响,再将数据按固定的监测时间间隔划分为多段数据,按水库水位的每段数据为单位分别构造延时因子,延时因子表示上游水位(泄洪量)经过多少个单位间隔监测时间作用到水库,需要对齐求解,将延时因子构造的上游延时水位特征作为自变量,水库水位数据作为因变量,搭建多元线性回归模型进行拟合,拟合误差越小说明两者越接近,延时因子越接近真实值,使用控制变量寻优法求解最接近真实值的延时因子,完成延时因子的构造。图2为水库、上游测点、水闸示意图。
37.步骤1.1、输入上游相关测点水位(泄洪量)、水库水位数据
38.输入数据为水库及其相关上游测点的水位、泄洪量数据,要求起始采集时间、采集间隔、结束采集时间都一致。具体数据格式如表1:
39.表1
[0040][0041]
步骤1.2、z-score标准化
[0042]
为消除不同值域、单位数据之间的量纲影响,对输入的数据进行z-score标准化处理。计算公式如下:
[0043][0044]
其中x表示数据的个体值,μ表示数据的均值,表示数据的标准差。
[0045]
步骤1.3、构造水位延时因子
[0046]
延时因子表示上游水位(泄洪量)经过多少个单位间隔监测时间作用到水库,需要对其求解。延时因子构造方式为:
[0047]
将水库数据按固定的时间间隔划分为多段数据,划分方式如下:
[0048][0049]
其中w
t
代表水库在t时间段的所有水位数据;代表水库在ti时刻的水位,i∈|1,a|;代表划分后的第j段的所有水位数据,j∈|1,n|;
[0050]
使用上游相关测点水位(泄洪量)数据构造延时因子,具体构造方式如下:
[0051][0052]
其中w代表水位,若上游相关测点为水坝或水闸则表示泄洪量,k代表与水库相关的k个上游测点,ti代表划分后的第i段监测时间,tk表示第k个上游测点的延时因子,即将第k个上游测点数据延时tk个监测单位时间;
[0053]
步骤1.4、搭建线性回归模型
[0054]
将延时因子构造的上游延时水位(泄洪量)特征作为自变量,水库水位数据作为因变量,搭建多元线性回归模型进行训练拟合,拟合误差越小说明两者越接近,延时因子越接近真实值。
[0055]
步骤1.5、使用pso算法最小化线性回归模型拟合误差
[0056]
基于步骤1.4的线性回归模型,使用pso算法,在不改变线性回归模型超参数的前提下,将时延因子作为寻优变量,拟合误差作为目标函数,进行迭代寻优。具体为:
[0057]
使用pso算法对水库每个相关上游测点的延时因子进行寻优,其中pso的目标函数设置为多元线性回归模型的mse,设置pso模型的参数,即惯性权重、学习因子、粒子个数、粒子群搜索维度。初始化粒子的位置为0,速度方向为正,对每个相关上游测点的延时因子进行寻优。粒子寻优的维度即为每个相关上游测点的延时因子。
[0058]
将多元线性回归模型模型嵌入pso模型中,同时将模型需要寻优的超参数设置为粒子群对应的维度,设置完成后进行迭代,在寻优迭代完成后选取mse最小的一组即是最接近真实值的延时因子。
[0059]
步骤2、输入水位、泄洪量、降雨量数据
[0060]
输入水库监测数据库中的水库水位、泄洪量、降雨量等数据及其采集时间。具体数据格式如表2:
[0061]
表2
[0062][0063]
其中m《n,i《j,tm代表waterlevel数据起始采集时间,tn代表waterlevel数据最终采集时间,wm代表tm时间对应的waterlevel采集数据,ri代表ti时间对应的rainfall采集数据。
[0064]
步骤3、数据预处理
[0065]
步骤3.1、时间对齐
[0066]
水库监测数据库数据为每个传感器分别采集,每条数据采集的时间点难以统一,甚至采集间隔也不统一,无法进行后续分析。故对数据进行重采样,统一数据的采集间隔与采集时间点。进行时间对齐后的数据如表3:
[0067]
表3
[0068][0069]
步骤3.2、缺失值处理
[0070]
使用缺失值前一个值或后一个值对数据进行填补。
[0071]
步骤4、构造水位分量
[0072]
水位特征变换:描述的是水库水位随着时间的推移与其历史水库水位之间的联系,是水库水位变化的前置因子,其反应了水位变化的趋势和速度。为挖掘不同水位序列之间的时序性,针对于水库水位特征进行的特征变换如下:
[0073][0074]
其中水库水位数据采集时间为t
t
(t=0,1,2,

,n),为t0~tn时段的水库水位,hi为的任意一个非空子集,w为水库水位;
[0075]
根据f(w)进行水库水位特征变换得w1、w2、w3分别为:
[0076][0077]
步骤5、消除数据间的量纲、数值差异
[0078]
若数据有偏离样本总体较大的样本,则使用z-score标准化,否则使用max-min标准化(具体的,若水库水位有趋向安全水位的特性,即水库水位数据比较平稳,使用max-min标准化对水库水位数据进行归一化处理)。
[0079]
z-score标准化公式:
[0080][0081]
其中x表示数据的个体值,μ表示数据的均值,表示数据的标准差。
[0082]
max-min归一化公式:
[0083][0084]
其中x为特征的观测值,x
min
为特征的最小值,x
max
为特征的最大值。
[0085]
步骤6、数据划分与重塑
[0086]
步骤6.1、数据划分
[0087]
将数据划分为训练集与测试集,前70%作为训练集,后30%作为测试集。
[0088]
步骤6.2、数据重塑
[0089]
将划分后的数据进行加窗处理,重塑为可以输入模型的3d格式。
[0090]
窗口宽度(width)为3,时间步长为1的重塑过程如图3所示,其中,窗口宽度被纳入pso寻优的超参数。重塑前的数据形状为(samples,features),重塑后的形状为(samples-width+1,width,features)。
[0091]
步骤7、构造上游相关测点延时特征
[0092]
根据步骤1求得的延时因子,构造上游相关测点延时特征。
[0093]
具体构造方式如下:
[0094]
设水库自变量xq的水位数据为:
[0095][0096]
则相关上游水位延时特征为:
[0097][0098]
其中w代表水位,若上游相关测点有闸门控制出库水量则可表示泄洪量,k代表与水库相关的k个上游测点,ti代表划分后的第i段监测时间,tk表示第k个上游监测点的延时因子,即将第k个上游监测点数据延时tk个监测单位时间。
[0099]
步骤8、搭建rnn-attention模型
[0100]
本方法中搭建的rnn-attention机制模型其架构图如图4所示。
[0101]
步骤8.1、输入层
[0102]
在输入层(inputs)将重塑好的3d数据转化为张量,其形状不变,每个x分别代表一个窗口内的数据,按时间排序x1,x2,x3,

,xn。
[0103]
步骤8.2、rnn层(1)
[0104]
将输入层数据按时间顺序输进rnn层(1)的每个隐藏神经元进行训练,激活函数设置为leakyrelu。
[0105]
步骤8.3、dropout层(1)
[0106]
使rnn层(1)的隐藏神经元概率性失活,防止过拟合,输出向量矩阵集合
[0107]
步骤8.4、rnn层(2)
[0108]
使模型可以处理非线性问题,将步骤8.3中的向量矩阵集合输入rnn层(2)的隐藏神经元中进行训练,激活函数仍为leakyrelu。
[0109]
步骤8.5、dropout层(2)
[0110]
使rnn层(2)的隐藏神经元概率性失活,输出向量矩阵集合
[0111]
步骤8.6、attention层
[0112]
获取步骤8.5中的向量矩阵集合使用激活函数为softmax的dense层计算权重,通过multiply层将权重分配给向量矩阵集合得到含有注意力权重的向量矩阵集合
[0113]
步骤8.7、flatten层
[0114]
获取步骤8.6中的向量矩阵集合将其拆解拼接为多个一维向量fn。
[0115]
步骤8.8、dense层
[0116]
获取步骤8.7中的向量fn作为dense层神经元的输入,设置激活函数为linear,最终输出预测值序列y(y1,y2,y3,

)。
[0117]
步骤9、pso优化rnn-attention模型超参数
[0118]
使用pso算法优化rnn-attention模型的超参数,其具体优化流程图5所示。
[0119]
步骤9.1、使用变量替换rnn-attention模型部分超参数
[0120]
将rnn-attention模型中的窗口宽度、rnn层(1)神经元个数、dropout层(1)、rnn层(2)神经元个数、dropout层(2)、学习率、batch_size替换为变量。
[0121]
步骤9.2、设定粒子取值范围
[0122]
设定七个粒子的取值范围:
[0123]
窗口宽度:最低为1,最高不超过数据总量。
[0124]
神经元个数:最低为1,一般最高不超过1024。
[0125]
dropout率:最低为0,最高为0.5。
[0126]
学习率:最低为大于0,最高为0.5。
[0127]
batch_size:最低为1,最高不超过数据总量。
[0128]
步骤9.3、初始化粒子位置、速度
[0129]
在粒子取值范围内随机初始化粒子位置,粒子速度的初始化范围为[-(取值范围最大值-最小值),(取值范围最大值-最小值)]。
[0130]
步骤9.4、将粒子的位置输入rnn-attention模型,返回mse
[0131]
使用粒子位置替换rnn-attention模型中变量,使用训练集训练模型,再用测试集数据验证模型,计算测试集预测值与真实值的mse并输出。
[0132]
步骤9.5、初始化全局最优位置、粒子历史最优位置
[0133]
记录mse最低的粒子位置为全局最优位置,将所有粒子当前位置记录为该粒子历史最优位置。
[0134]
步骤9.6更新惯性权重,粒子速度、位置
[0135]
本方法基于sigmoid函数的变种,结合三角函数,改进了pso全局搜索和局部搜索策略。使用该策略在迭代过程中,可有效的平衡pso全局搜索能力和局部搜索能力,其权重更新表达式为:
[0136][0137]
其中,iter为当前迭代次数,iter
max
为最终迭代次数,ω
max
为最大惯性权重,ω
min
为最小惯性权重,σ为伸缩系数,取值范围(0,+∞),一般设为5,θ为变形系数,取值范围(-1,+∞),一般设置为0。
[0138]
σ=5、θ=0时,形成的惯性权重ω变化曲线如图6所示.
[0139]
pso初始化为一群随机粒子即随机解,通过迭代找到最优解;在每一次的迭代中,粒子通过跟踪两个“极值”即pbesti和gbesti来更新自己;在找到这两个最优值后,根据上述公式更新每个粒子的速度,再使用更新后的速度更新粒子的位置:
[0140]
vi=ω
×
vi+c1×
rand()
×
(pbest
i-xi)+c2×
rand()
×
(gbest
i-xi)
[0141]
xi=xi+vi[0142]
其中,i=1,2,3,
……
,n,n是随机粒子群中粒子的总数;vi是粒子的速度,最大值为v
max
,v
max
为大于0的值,vi大于v
max
,则vi=v
max
;rand()是介于(0,1)之间的随机数;xi为粒子当前的位置;c1、c2为学习因子,通常都取2;ω为惯性因子,其值非负,其值较大,则全局寻优能力强、局部寻优能力弱,其值较小,则全局寻优能力弱、局部寻优能力强;
[0143]
步骤9.7、计算更新后粒子在模型中的mse
[0144]
同9.4,使用粒子位置替换rnn-attention模型中变量,使用训练集训练模型,再用测试集数据验证模型,计算测试集预测值与真实值的mse并输出。
[0145]
步骤9.8、更新全局最优位置、粒子历史最优位置
[0146]
若当前粒子比该粒子历史最优位置的mse更小,则更新该个体最优位置;若当前种群最优个体比全局最优位置的mse更小,则更新全局最优位置。
[0147]
步骤9.9、判断是否达到最大迭代次数
[0148]
判断是否达到最大迭代次数,是则输出全局最优位置;否则执行步骤9.10。
[0149]
步骤9.10、变异种群最优粒子位置
[0150]
判断当前ω是否小于0.9ω
max
+0.1ω
min
,若小于则变异种群中loss函数值最优的粒子位置,否则进入步骤9.11。变异方式如下:
[0151][0152]
其中,为[0,1]区间内的随机数,iter
max
为最大迭代次数,iter为当前迭代次数,g
iter
为迭代iter次时的全局历史最优位置。
[0153]
步骤9.11变异种群最劣粒子位置
[0154]
判断当前ω是否小于0.1ω
max
+0.9ω
min
,若小于则变异种群中loss函数值最差的粒子位置,否则进入步骤9.11。变异方式如下:
[0155][0156]
其中,为[0,1]区间内的随机数,iter
max
为最大迭代次数,iter为当前迭代次数,为迭代iter次时的粒子历史最优位置。
[0157]
步骤9.12、重复执行步骤9.6-9.10
[0158]
重复执行步骤9.6-9.10,直到达到最大迭代次数,输出寻到的全局最优参数。
[0159]
步骤10、基于rnn-attention算法的水库水位预测模型
[0160]
将步骤9pso寻得的全局最优参数组合输入rnn-attention模型,使用训练集数据训练rnn-attention模型,得到基于rnn-attention算法的水库水位预测模型。
[0161]
步骤11、模型评估
[0162]
将测试集数据输入步骤10得到的基于rnn-attention算法的水库水位预测模型,得到预测值,使用mse、mae、rmse、r2等指标对模型进行评估。
[0163]
步骤12、模型应用
[0164]
将评估后满足应用标准的基于rnn-attention算法的水库水位预测模型储存到云端或本地,使后续项目中可以直接调用该模型。运用该模型进行实时预测的流程如图7所示。
[0165]
步骤12.1、kafka模块
[0166]
使用kafka读入传感器采集到的水库雨水情数据。
[0167]
生产者通过调用kafka相关的pythonapi,将从流数据中读取出来的消息,生产并push到broker中。
[0168]
消费者则通过相应的分区分配策略,通过pull操作将流数据从broker拉取出来,并传入水位预测模块中。
[0169]
步骤12.2、水位预测模块
[0170]
将步骤12.1输出的实时数据进行预处理,输入到水库水位预测模型中,得到实时预测数据,将预测预测数据存入水库监测数据库中。
[0171]
步骤12.3、预警模块
[0172]
根据步骤12.2的实时预测数据,判断水位状况,在安全区间内则为不预警,超过或低于安全区间则预警,根据预警情况调整水库闸门的开合程度。
[0173]
成果展示
[0174]
1、最优参数
[0175]
本实例使用粒子群算法(pso)对rnn-attention复合模型的7个超参数进行寻优,最优参数如下表4所示:
[0176]
表4
[0177][0178]
2、迭代图像
[0179]
本实例使用粒子群算法(pso)对基于rnn-attention复合模型的7个超参数进行寻优。以基于rnn-attention复合模型的mse作为评价指标,即mse收敛于0,在迭代过程中loss越来小,表示该超参数越优。迭代过程如图8所示。
[0180]
图8是使用25个粒子进行80次迭代的结果,可见其fitness越来越小,即mse越来越接近于0,说明pso寻到的超参数越好。在进行41次迭代后,pso搜寻到最优超参数。
[0181]
3、测试集拟合图
[0182]
使用基于pso-rnn-attention复合模型进行水库水位预测,其测试集拟合如图9所示。
[0183]
4、评价指标
[0184]
使用mae(平均绝对误差)、mse(均方误差)、rmse(均方根误差)、r2(决定系数)评估
模型,评估结果如表5:
[0185]
表5
[0186][0187][0188]
使用基于pso-rnn-attention复合模型进行水库水位预测,由表可知r2=0.968570,接近于1,表示模型有较好的预测效果;mse=0.524703,该值越接近于0说明模型拟合的越好。mae=0.297870,该值说明进行n(n=1,2,3

)次预测,模型产生的误差稳定在0.297870米左右。
[0189]
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

技术特征:
1.一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,基于水库和上游相关测点雨水情数据,构造水位延时因子,建立rnn-attention水库水位预测模型,使用pso优化算法对rnn-attention水库水位预测模型超参数进行优化,进而实现对水库水位的预测预警。2.根据权利要求1所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,该方法实现步骤如下:步骤1、计算水位延时因子;步骤2、输入水位、泄洪量、降雨量数据;步骤3、数据预处理;步骤4、构造水位分量;步骤5、消除数据间的量纲、数值差异;步骤6、数据划分与重塑;步骤7、构造上游相关测点延时特征;步骤8、搭建rnn-attention水库水位预测模型;步骤9、采用pso优化算法优化rnn-attention水库水位预测模型超参数,得到优化后的pso rnn-attention水库水位预测模型;步骤10、对步骤9优化后的pso rnn-attention水库水位预测模型进行评估并存储,而后利用优化后的pso rnn-attention水库水位预测模型,实现对水库水位的预测预警。3.根据权利要求2所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,所述步骤1具体实现如下:步骤1.1、输入水库水位数据、水库上游相关测点水位数据;步骤1.2、z-score标准化:对输入的水位数据进行z-score标准化处理,计算公式如下:其中x表示水位数据的个体值,μ表示水位数据的均值,表示水位数据的标准差;步骤1.3、构造水位延时因子:将水库水位数据按固定的时间间隔划分为多段数据,划分方式如下:其中w
t
代表水库在t时间段的所有水位数据;代表水库在t
i
时刻的水位,i∈|1,a|;代表划分后的第j段的所有水位数据,j∈|1,n|;使用水库上游相关测点水位数据构造延时因子,具体构造方式如下:
其中w代表水位,若上游相关测点为水坝或水闸则表示泄洪量,k代表与水库相关的k个上游测点,t
i
代表划分后的第i段监测时间,t
k
表示第k个上游测点的延时因子,即将第k个上游测点数据延时t
k
个监测单位时间;步骤1.4、搭建线性回归模型:将延时因子构造的上游延时水位特征作为自变量,水库水位数据作为因变量,搭建多元线性回归模型进行训练拟合,拟合误差越小说明两者越接近,延时因子越接近真实值;步骤1.5、使用pso算法最小化线性回归模型拟合误差:基于步骤1.4的多元线性回归模型,使用pso算法,在不改变多元线性回归模型超参数的前提下,将延时因子作为寻优变量,拟合误差作为目标函数,进行迭代寻优;具体为:使用pso算法对水库每个相关上游测点的延时因子进行寻优,其中pso模型的目标函数设置为多元线性回归模型的mse,设置pso模型的参数,即惯性权重、学习因子、粒子个数、粒子群搜索维度;初始化粒子的位置为0,速度方向为正,对每个相关上游测点的延时因子进行寻优;粒子寻优的维度即为每个相关上游测点的延时因子;将多元线性回归模型模型嵌入pso模型中,同时将模型需要寻优的超参数设置为粒子群对应的维度,设置完成后进行迭代,在寻优迭代完成后选取mse最小的一组即是最接近真实值的延时因子。4.根据权利要求2所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,所述步骤3具体实现如下:步骤3.1、时间对齐:对步骤2输入的水库监测数据库中水位、泄洪量、降雨量数据及其采集时间进行重采样,统一数据的采集间隔与采集时间点;步骤3.2、缺失值处理:使用缺失值前一个值或后一个值对数据进行填补。5.根据权利要求2所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,所述步骤4具体实现如下:水位特征变换:描述的是水库水位随着时间的推移与其历史水库水位之间的联系,是水库水位变化的前置因子,其反应了水位变化的趋势和速度;为挖掘不同水位序列之间的时序性,针对于水库水位特征进行的特征变换如下:其中水库水位数据采集时间为t
t
(t=0,1,2,

,n),为t0~t
n
时段的水库水位,h
i
为的任意一个非空子集,w为水库水位;根据f(w)进行水库水位特征变换得w1、w2、w3分别为:
6.根据权利要求2所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,所述步骤5具体实现如下:若水库水位有趋向安全水位的特性,即水库水位数据比较平稳,使用max-min标准化对水库水位数据进行归一化处理;max-min归一化公式:其中x为特征的观测值,x
min
为特征的最小值,x
max
为特征的最大值。7.根据权利要求2所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,所述步骤6具体实现如下:步骤6.1、数据划分:将数据划分为训练集与测试集,前70%作为训练集,后30%作为测试集;步骤6.2、数据重塑:将划分后的数据进行加窗处理,重塑为可以输入rnn-attention水库水位预测模型的3d格式。8.根据权利要求3所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,所述步骤7具体实现如下:根据步骤1求得的延时因子,构造上游相关测点延时特征;具体构造方式如下:设水库自变量x
q
的水位数据为:则相关上游水位延时特征为:其中w代表水位,k代表与水库相关的k个上游测点,t
i
代表划分后的第i段监测时间,t
k
表示第k个上游测点的延时因子,即将第k个上游测点数据延时t
k
个监测单位时间。9.根据权利要求2所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,步骤8中,搭建的rnn-attention水库水位预测模型架构依次包括输入层、rnn层1、dropout层1、rnn层2、dropout层2、attention层、flatten层、dense层。10.根据权利要求9所述的一种基于延时因子和pso rnn attention模型的水库水位预测预警方法,其特征在于,所述步骤9具体实现如下:步骤9.1、使用变量替换rnn-attention水库水位预测模型部分超参数:将rnn-attention水库水位预测模型中的窗口宽度、rnn层1神经元个数、dropout层1、rnn层2神经元个数、dropout层2、学习率、batch_size替换为变量;步骤9.2、设定七个粒子的取值范围:窗口宽度:最低为1,最高不超过数据总量;神经元个数:最低为1,最高不超过1024;dropout率:最低为0,最高为0.5;学习率:最低为大于0,最高为0.5;batch_size:最低为1,最高不超过数据总量;
步骤9.3、初始化粒子位置、速度:在粒子取值范围内随机初始化粒子位置,粒子速度的初始化范围为[-(取值范围最大值-最小值),(取值范围最大值-最小值)];步骤9.4、将粒子的位置输入rnn-attention水库水位预测模型,返回mse:使用粒子位置替换rnn-attention水库水位预测模型中变量,使用训练集训练模型,再用测试集数据验证模型,计算测试集预测值与真实值的mse并输出。步骤9.5、初始化全局最优位置、粒子历史最优位置:记录mse最低的粒子位置为全局最优位置,将所有粒子当前位置记录为该粒子历史最优位置;步骤9.6、更新惯性权重,粒子速度、位置:基于sigmoid函数的变种,结合三角函数,改进pso优化算法全局搜索和局部搜索策略,改进pso优化算法的权重更新表达式为:其中,iter为当前迭代次数,iter
max
为最终迭代次数,t
max
为iter
max
时的时间,ω
max
为最大惯性权重,ω
min
为最小惯性权重,σ为伸缩系数,取值范围(0,+∞),θ为变形系数,取值范围(-1,+∞);pso初始化为一群随机粒子即随机解,通过迭代找到最优解;在每一次的迭代中,粒子通过跟踪两个“极值”即pbest
i
和gbest
i
来更新自己;在找到这两个最优值后,根据上述公式更新每个粒子的速度,再使用更新后的速度更新粒子的位置:v
i
=ω
×
v
i
+c1×
rand()
×
(pbest
i-x
i
)+c2×
rand()
×
(gbest
i-x
i
)x
i
=x
i
+v
i
其中,i=1,2,3,
……
,n,n是随机粒子群中粒子的总数;v
i
是粒子的速度;rand()是介于(0,1)之间的随机数;x
i
为粒子当前的位置;c1、c2为学习因子;ω为惯性因子,其值非负,其值较大,则全局寻优能力强、局部寻优能力弱,其值较小,则全局寻优能力弱、局部寻优能力强;步骤9.7、计算更新后粒子在模型中的mse:同9.4,使用粒子位置替换rnn-attention水库水位预测模型中变量,使用训练集训练模型,再用测试集数据验证模型,计算测试集预测值与真实值的mse并输出;步骤9.8、更新全局最优位置、粒子历史最优位置:若当前粒子比该粒子历史最优位置的mse更小,则更新该个体最优位置;若当前种群最优个体比全局最优位置的mse更小,则更新全局最优位置;步骤9.9、判断是否达到最大迭代次数:判断是否达到最大迭代次数,是则输出全局最优位置;否则执行步骤9.10;
步骤9.10、变异种群最优粒子位置:判断当前ω是否小于0.9ω
max
+0.1ω
min
,若小于则变异种群中loss函数值最优的粒子位置,否则进入步骤9.11;变异方式如下:其中,为[0,1]区间内的随机数,iter
max
为最大迭代次数,iter为当前迭代次数,g
iter
为迭代iter次时的全局历史最优位置;步骤9.11、变异种群最劣粒子位置:判断当前ω是否小于0.1ω
max
+0.9ω
min
,若小于则变异种群中loss函数值最差的粒子位置,否则进入步骤9.11;变异方式如下:其中,为[0,1]区间内的随机数,iter
max
为最大迭代次数,iter为当前迭代次数,p
itier
为迭代iter次时的粒子历史最优位置;步骤9.12、重复执行步骤9.6-9.10:重复执行步骤9.6-9.10,直到达到最大迭代次数,输出寻到的全局最优参数。

技术总结
本发明涉及一种基于延时因子和PSO RNN Attention模型的水库水位预测预警方法。该方法基于上水库水位之间的数值关系,计算延时因子,进而构造上有延时水位特征,有效的将上游水位(泄洪量)对水库水位的影响输入模型。基于RNN(循环神经网络)与Attention(注意力)机制复合模型,使用历史水位数据、降雨量、泄洪量训练该模型,运用PSO优化算法优化RNN-Attention模型超参数。该模型充分利用水库与上游雨水情数据,实现对未来水位的预测,预测准确度高,结合Kafka模块和预警模块可以实现对大坝的实时监测及预警。监测及预警。监测及预警。


技术研发人员:马森标 黄正鹏 陈宇龙 陈友武 黄祖海
受保护的技术使用者:福建中锐网络股份有限公司
技术研发日:2022.07.18
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-9497.html

最新回复(0)