一种基于极限学习机的水力发电预测方法与流程

文档序号:22835726发布日期:2020-11-06 16:29阅读:160来源:国知局
一种基于极限学习机的水力发电预测方法与流程

本发明涉及电力能源技术领域,具体来说,涉及一种基于极限学习机的水力发电预测方法。



背景技术:

水利发电作为新能源的一种,主要是利用河流的落差,将高处的势能通过水轮机转换为电能。水利发电具有多种优势,是一种可再生能源,取之不尽用之不竭,同时节能环保,对环境影响较小,因此水利发电一直被大力推广。但同时,由于水利发电利用自然水流,对水流条件非常依赖,水流的流量不确定性,环境因素等都会导致水利发电的不稳定,影响发电效率,因此水利发电的预测研究尤为重要。

在实际运行中,由于水力系统存在不稳定性,且一般难以通过数据直接获取,目前很多专家学者采用了多种方法对水力发电进行预测。

时间序列法在短期的负荷预测中应用较为成熟,根据历史数据建立水电负荷的时序模型,对未来负荷进行预测,时间序列方法的优点是工作量小,计算速度较快,能反应负荷近期变换的连续性,但该方法的对序列的平稳性要求较高,且没有考虑影响负荷变化的因素,水资源系统本身存在自然上的嘈杂性,因此传统的时间序列方法在预测上的失误是无法避免的。

回归分析预测方法是根据历史数据的变化规律和影响负荷变化的因素,寻找自变量与因变量之间的相关关系及其回归方程式,确定模型参数,据此推断将来时刻的负荷值。回归分析法的优点是计算原理和结构形式简单,预测速度快,外推性能好,对于历史上没有出现的情况有较好的预测。存在的不足是对历史数据要求较高,采用线性方法描述比较复杂的问题,结构形式过于简单,精度较低;该模型无法详细描述各种影响负荷的因素,模型初始化难度较大,需要丰富的经验和较高的技巧。

支持向量机(svm)是一种基于统计学习理论提出的能实现在有限样本条件下满足vc维理论和结构风险最小原理的机器学习方法,具有泛化能力强,全局最优和计算速度快等突出优点。但其自选参数和核函数的选择,通常情况下主要靠经验确定,有较大的人为因素。同时,其缺乏对模糊现象的处理能力,模型误差会造成预测值和实际值的较大差距。

神经网络是目前较为先进的负荷预测方法,由于理论的不断完善和其在其他领域的成功应用,大量基于人工神经网络的预测模型被提出。神经网络法选取历史负荷作为训练样本,构建网络结构,用训练算法对网络进行训练,使其满足精度要求,此神经网络作为负荷预测模型,实践证明人工神经网络短期预测有较好的精度。然而即使是最先进的基于人工神经网络的预测方法,一些固有的缺点仍然是不可避免的,比如过多的训练,操作成本偏高,学习速度较慢,容易陷入局部最优解等难题。其中关键缺点是学习算法慢以及需要不断迭代调整参数,因此该预测方法是无法通过改变算法结构和不断训练来提高预测效果的。



技术实现要素:

针对相关技术中的上述技术问题,本发明提出一种基于极限学习机的水力发电预测方法,能够克服现有技术的上述不足。

为实现上述技术目的,本发明的技术方案是这样实现的:

一种基于极限学习机的水力发电预测方法,该方法包括以下步骤:

s1:从水利发电系统中获取参数数据信息,预处理数据;

s2:分割数据成互斥的两部分,一部分进行数据训练,一部分进行数据测试;

s3:获取训练数据,并采用训练数据建立模型;

s4:采用交叉验证、网格搜索、模型评估的方法,模型训练,获得最优模型;

s5:采用训练好的最优elm模型预测测试数据,获得并输出预测结果,其中,elm为极限学习机模型;

所述步骤s3进一步包括以下步骤:

s31:elm的输入权值向量w和隐藏层节点b随机赋值,初始化参数,其中,在极限学习机中,给定任意q个不同样本(xi,ti),xi=[xi1,xi2,…,xin]t∈rn,ti=[ti1,ti2,…,tim]∈rm,一个任意区间无限可微的激活函数g:r→r,对与具有q个隐藏层神经元的slfn,slfn为单层前馈神经网络,在任意赋值wi∈rn和bi∈r的情况下,隐藏层输出矩阵h可逆具有‖hβ-t`‖=0,隐藏层与输出层的连接权值为β且给定任意小误差ε>0和一个任意区间无限可微的激活函数g:r→r,总存在一个含有k个隐藏层神经元的slfn,k<=q,任意赋值wi∈rn和bi∈r的情况下,有‖hn×mβm×n-t`‖<ε,隐藏层神经元个数与训练集样本个数相等时,对于任意的w和b,slfn以零误差逼近训练,计算公式为

当训练样本个数q较大时,隐藏层神经元个数k取值比q小,slfn的训练误误差逼近任一个ε>0,即

当激活函数g无限可微时,slfn的参数不需要全部调整,w和b在训练前随机选择,在训练过程中保持不变;

s32:计算隐藏层输出矩阵,其中,隐藏层和输出层的连接权值β通过求解以下方程组的最小二乘解获得,计算公式为

s33:计算并出权值矩阵,其中,结果为

h+为隐藏层输出矩阵h的moore-penrose广义阵;

所述步骤s4进一步包括以下步骤:

s41:交叉验证;

s42:网格搜索,预先设置模型参数范围,训练所有参数组合,获得若干模型,选择最优模型,其中,采用网格搜索模型的隐藏层数量和激活函数;

s43:模型评估;

所述步骤s43包括以下步骤:

s431:选取了平均绝对误差mae、平均绝对相对误差mape和均方根误差rmse三个指标作为模型评估标准,其中,rmse为主要评估标准;

s432:采用mae,表面预测值误差的实际情况,其中,公式为

s433:采用mape,表明测试结果的精密度,其中,公式为

s434:采用rmse,反映数据集的离散程度和稳定性,其中,公式为

s435:确定最佳的极限学习模型结构。

进一步的,所述步骤s1包括以下步骤:

s11:获取、整理不同的数据源数据,并加载到一个新的数据源,合成训练数据集,综合分析数据信息;

s12:依据数据点之间的时间步长,校正为规则的时间步长;

s13:判断数据缺失情况,获取最健康的近似数据,替换缺失数据;

s14:采用波浪去噪技术,去除极端天气下的尖峰数据;

s15:去除季节性因素。

进一步的,所述步骤s15包括以下步骤:

s151:依据四个季度的水力时间序列数据,计算水力时间序列数据的移动平均值,获得长期趋势t;

s152:依据乘法模型消除季节性因素对长期趋势的影响,其中,s代表季节成分,c代表周期成分,i代表不规则成分;

s153:获取计算结果数据,依据各个年份同季度数据计算各季度平均值;

s154:计算并获得季节比率si,其中,计算公式分子为各同季度平均数,分母为各季度算术平均数;

s155:计算t期的预测值,其中,公式为yt=tt×si。

进一步的,所述步骤s41包括以下步骤:

s411:将数据集d分为k个大小相似的互斥数据集,其中,每个子集都尽可能保持数据分布的一致性;

s412:每次采用用k-1个子集的并集作为训练集,剩余的子集作为测试集,k次训练和测试,获得k个测试结果的均值。

进一步的,所述步骤s1中,获取涵盖所有情况的数据,获取时间信息、流速信息、流量信息、运行效率数据。

进一步的,所述步骤s13中,最健康数据为最近几个小时的历史数据或同一时间点最近几天的历史数据或采用波动规则估算的数据。

本发明的有益效果:通过该方法,产生了唯一的最优解;极限学习机及其变体应用在在一些回归和分类领域中的基准问题和工程,展示了更快的学习速度和更好的泛化能力;极限学习机可以随机选择多个迭代、输入权重和偏差,然后通过简单的矩阵计算确定输出权重,更准确有效地预测水力发电,降低了成本,提高了学习速率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例所述的一种基于极限学习机的水力发电预测方法的流程框图;

图2是根据本发明实施例所述的一种基于极限学习机的水力发电预测方法的去除季节性因素的流程框图;

图3是根据本发明实施例所述的一种基于极限学习机的水力发电预测方法的传统前馈神经网络结构图;

图4是根据本发明实施例所述的一种基于极限学习机的水力发电预测方法的极限学习机网络结构图;

图5是根据本发明实施例所述的一种基于极限学习机的水力发电预测方法的交叉验证的流程框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,根据本发明实施例所述的一种基于极限学习机的水力发电预测方法,包括以下步骤:

s1:从水利发电系统中获取参数数据信息,预处理数据;

s2:分割数据成互斥的两部分,一部分进行数据训练,一部分进行数据测试;

s3:获取训练数据,并采用训练数据建立模型;

s4:采用交叉验证、网格搜索、模型评估的方法,模型训练,获得最优模型;

s5:采用训练好的最优elm模型预测测试数据,获得并输出预测结果,其中,elm为极限学习机模型;

步骤s3进一步包括以下步骤:

s31:elm的输入权值向量w和隐藏层节点b随机赋值,初始化参数,其中,在极限学习机中,给定任意q个不同样本(xi,ti),xi=[xi1,xi2,…,xin]t∈rn,ti=[ti1,ti2,…,tim]∈rm,一个任意区间无限可微的激活函数g:r→r,对与具有q个隐藏层神经元的slfn,在任意赋值wi∈rn和bi∈r的情况下,隐藏层输出矩阵h可逆具有‖hβ-t`‖=0,隐藏层与输出层的连接权值为β且给定任意小误差ε>0和一个任意区间无限可微的激活函数g:r→r,总存在一个含有k个隐藏层神经元的slfn,k<=q,任意赋值wi∈rn和bi∈r的情况下,有‖hn×mβm×n-t`‖<ε,隐藏层神经元个数与训练集样本个数相等时,对于任意的w和b,slfn以零误差逼近训练,slfn为单层前馈神经网络,计算公式为

当训练样本个数q较大时,隐藏层神经元个数k取值比q小,slfn的训练误误差逼近任一个ε>0,即

当激活函数g无限可微时,slfn的参数不需要全部调整,w和b在训练前随机选择,在训练过程中保持不变;

s32:计算隐藏层输出矩阵,其中,隐藏层和输出层的连接权值β通过求解以下方程组的最小二乘解获得,计算公式为

s33:计算并出权值矩阵,其中,结果为

h+为隐藏层输出矩阵h的moore-penrose广义阵;

步骤s4进一步包括以下步骤:

s41:交叉验证;

s42:网格搜索,预先设置模型参数范围,训练所有参数组合,获得若干模型,选择最优模型,其中,采用网格搜索模型的隐藏层数量和激活函数;

s43:模型评估;

步骤s43包括以下步骤:

s431:选取了平均绝对误差mae、平均绝对相对误差mape和均方根误差rmse三个指标作为模型评估标准,其中,rmse为主要评估标准;

s432:采用mae,表面预测值误差的实际情况,其中,公式为

s433:采用mape,表明测试结果的精密度,其中,公式为

s434:采用rmse,反映数据集的离散程度和稳定性,其中,公式为

s435:确定最佳的极限学习模型结构。

步骤s1包括以下步骤:

s11:获取、整理不同的数据源数据,并加载到一个新的数据源,合成训练数据集,综合分析数据信息;

s12:依据数据点之间的时间步长,校正为规则的时间步长;

s13:判断数据缺失情况,获取最健康的近似数据,替换缺失数据;

s14:采用波浪去噪技术,去除极端天气下的尖峰数据;

s15:去除季节性因素。

步骤s15包括以下步骤:

s151:依据四个季度的水力时间序列数据,计算水力时间序列数据的移动平均值,获得长期趋势t;

s152:依据乘法模型消除季节性因素对长期趋势的影响,其中,s代表季节成分,c代表周期成分,i代表不规则成分;

s153:获取计算结果数据,依据各个年份同季度数据计算各季度平均值;

s154:计算并获得季节比率si,其中,计算公式分子为各同季度平均数,分母为各季度算术平均数;

s155:计算t期的预测值,其中,公式为yt=tt×si。

步骤s41包括以下步骤:

s411:将数据集d分为k个大小相似的互斥数据集,其中,每个子集都尽可能保持数据分布的一致性;

s412:每次采用用k-1个子集的并集作为训练集,剩余的子集作为测试集,k次训练和测试,获得k个测试结果的均值。

在本发明的一个具体实施例中,所述步骤s1中,获取涵盖所有情况的数据,获取时间信息、流速信息、流量信息、运行效率数据。

在本发明的一个具体实施例中,所述步骤s13中,最健康数据为最近几个小时的历史数据或同一时间点最近几天的历史数据或采用波动规则估算的数据。

为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。

1:数据预处理

从水力发电系统中提取相关参数,收集数据时应尽可能谨慎,尽量使用涵盖所有情况的数据。包括时间,水流速度,水的流量、运行效率等。并对这些数据进行预处理。预处理中包括:

a.数据合并

把不同数据源数据收集整理加载到一个新的数据源,形成一个训练数据集,进行综合分析。

b.调整时间

针对数据点之间的时间步长不一致,则应将其校正为规则的时间步长。

c.填补缺失数据

如果有任何数据缺失,则用最健康的近似数据进行数据替换。可以根据过去几小时的历史水流速度,或同一时间点近几天内的历史水流速度以及波动规则来估计当前水流速度。

d.去除尖峰数据

运算时应将极端天气下的尖峰数据作为噪声去除,否则预测算法的结果会出现较大误差。但是尖峰值会对风速时间序列分析产生显著的影响,因此采用波浪去噪技术处理采集的数据样本。

e.去除季节性因素

通过观察收集到的关于水力的时间序列数据集发现其中包含非常明显的季节性因素,呈现一定规律性的波动,这种重复的循环可能会掩盖数据本身的客观变化规律,因此为了消除季节性因素对数据波动的影响,我们对收集到的数据集进行一定的去季节性处理。如图2所示,具体步骤如下:

首先按照四个季度来计算收集到的水力时间序列数据的移动平均值,获得长期趋势t。然后根据乘法模型其中s代表季节成分,c代表周期成分,i代表不规则成分,以此消除季节性因素对于长期趋势的影响。接着将所得值按照各个年份同季度来计算各季度平均值,再以各同季度平均数作为分子,各季度算术平均数作为分母,获得季节比率si。最后对应t期的预测值即yt=tt×si。

2:数据分割

把数据切割成互斥的两部分,一部分用于训练,一部分用于测试,利用训练数据进行建模,由于测试数据并未参与模型训练,因此训练出的模型泛化能力更强。

3:建立模型

参数初始化

对elm的输入权值向量w和隐藏层节点b进行随机赋值,进行参数初始化。elm从神经网络发展而来,传统前馈神经网络结构图,如图3所示。

传统的单隐含层前馈神经网络结构由输入层,隐含层和输出层组成,输入层与隐含层,隐含层与输出层神经元间全连接。其中,输入层有n个神经元,对应n个输入变量;隐含层有l个神经元;输出层有m个神经元,对应m个输出变量。在不失一般性的情况下,设输入层与隐含层间的连接权值w为

其中,wji表示输入层第i个神经元和隐藏层第j个神经元的连接权值。

隐藏层与输出层的连接权值为

其中,βjk表示隐藏层第j个神经元和输出层第k个神经元的连接权值。

隐藏层神经元的阈值b为

具有q个样本的训练集输入居中x和输出居中y分别为

设隐藏层神经元的激活函数为g,网络的输出t为

t=[t1,t2,…,tq]m×q(5)

其中,

wi=[wil,wi2,…,win]xj=[x1j,x2j,…,xnj]t

公式(5)可表示为

hβ=t`(6),

其中,t表示矩阵t的转置,h为神经网络的隐藏层输出矩阵,具体形式为:

而极限学习机网络结构图,如图4所示。

在极限学习机中,给定任意q个不同样本(xi,ti),其中xi=[xi1,xi2,…,xin]t∈rn,ti=[ti1,ti2,…,tim]∈rm。一个任意区间无限可微的激活函数g:r→r,则对与具有q个隐藏层神经元的slfn,在任意赋值wi∈rn和bi∈r的情况下,其隐藏层输出矩阵h可逆具有‖hβ-t`‖=0。

且给定任意小误差ε>0,和一个任意区间无限可微的激活函数g:r→r,则总存在一个含有k(k<=q)个隐藏层神经元的slfn,在任意赋值wi∈rn和bi∈r的情况下,有‖hn×mβm×n-t`‖<ε。

若隐藏层神经元个数与训练集样本个数相等,则对于任意的w和b,slfn都可以零误差逼近训练相比,即

其中,yj=[y1j,y2j,…,ymj]t(j=1,2,…,q);

当训练样本个数q较大时,为了减小计算量,隐藏层神经元个数k取值比q小,slfn的训练误差逼近任一个ε>0,即

因此,当激活函数g无限可微时,slfn的参数不需要全部调整,w和b在训练前可以随机选择,在训练过程中保持不变。

a.计算隐藏层输出矩阵

隐藏层和输出层的连接权值β可以通过求解以下方程组的最小二乘解获得:

minβ‖hβ-t`‖(10);

b.计算输出权值矩阵,其中,(10)式解为

其中,h+为隐藏层输出矩阵h的moore-penrose广义阵。

4:模型训练

为得到最优模型,在模型训练过程中采用了交叉验证、网格搜索、模型评估的方法。

a.交叉验证

在模型训练中,采用交叉验证法来提高模型的性能,如图5所示,交叉验证即将数据集d分为k个大小相似的互斥数据集,每个子集都尽可能保持数据分布的一致性,然后,每次用k-1个子集的并集作为训练集,剩余的子集作为测试集,因此可以进行k次训练和测试,返回k个测试结果的均值。交叉验证可以有效利用训练数据的信息,避免模型陷入“过拟合”状态,从而提高模型的泛化能力。

b.网格搜索

在模型训练中,预先设置模型参数范围,对于所有参数组合进行训练,得到多个模型,再从中选择最优模型,模型参数的网格搜索能够提高模型的准确率,在极限学习机训练过程中,对于模型的隐藏层数量和激活函数采用网格搜索。

c.模型评估

在模型训练中,训练的目标一般是最小化损失函数,损失函数的值作为模型评估的结果,在本次发明中,为了从训练模型中选出最优预测模型,选取了平均绝对误差(mae)、平均绝对相对误差(mape)和均方根误差(rmse)这三个指标作为模型评估标准,其中rmse为主要标准。mae能表面预测值误差的实际情况,mape表明测试结果的精密度,rmse能反映数据集的离散程度和稳定性。

5:模型预测

将训练好的最优elm模型对测试数据进行预测,输出预测结果,预测结果可以用于水利系统的短时优化调度,提高发电效率。

综上所述,借助于本发明的上述技术方案,通过该方法,产生了唯一的最优解;极限学习机及其变体应用在在一些回归和分类领域中的基准问题和工程,展示了更快的学习速度和更好的泛化能力;极限学习机可以随机选择多个迭代、输入权重和偏差,然后通过简单的矩阵计算确定输出权重,更准确有效地预测水力发电,降低了成本,提高了学习速率。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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