python萤火虫算法_一种萤火虫算法优化神经网络的短期负荷预测方法与流程

本发明涉及电网调度通信领域,特别涉及一种萤火虫算法优化神经网络 的短期负荷预测方法及装置。

背景技术:

电能是目前世界上最重要的能量来源,但由于电能难以储存的缺点尚未 得到有效解决,这就要求发电计划与负荷需求达到动态平衡,因此高精度的 负荷预测是电力系统的正常安全运行以及高供电质量的重要保证。目前,随 着新能源发电发展迅速,负荷波动也越来越大,主要原因是新能源随机性强, 大量分布式新能源的接入对地区电网负荷的冲击性强,同时为地区电网负荷 预测带来巨大挑战,故高精度且实用性强的负荷预测技术对地区电网稳定和 安全运行尤为重要。

目前的负荷预测主要集中在短期预测方法的研究,常用的短期电力负荷 预测方法主要有:时间序列法、灰色预测法、模糊预测法、神经网络法、支持 向量机等。其中,BP神经网络在信息处理方面表现突出,可以实现从输入到 输出的任意非线性映射,在负荷预测领域逐步得到了广泛应用。但传统BP神 经网络在预测过程中存在局部最小值的问题,泛化能力也不理想。因此,上 述缺陷是亟需解决的问题。

技术实现要素:

本发明的主要目的是提出一种萤火虫算法优化神经网络的短期负荷预测 方法,旨在克服以上问题。

为实现上述目的,一种萤火虫算法优化神经网络的短期负荷预测方法, 包括如下步骤:

S1获取历史负荷数据和天气数据,对所获取的数据进行预处理生成训练 样本集和测试样本;

S2选择训练样本集建立神经网络预测模型;

S3采用训练样本集对神经网络进行训练,训练过程中采用萤火虫算法对 神经网络的权值和阀值进行优化调整;

S4将测试样本输入S3中训练好的神经网络中进行预测,得到短期负荷预 测结果。

优选地,所述S1的构建训练样本集和测试样本具体步骤为:

训练样本集Trn包含模型的输入样本Xn和输出样本Yn,输入样本是对历史 负荷数据和天气数据连续采集而来,可表示为其 中m为历史负荷数据个数,a为考虑历史天气因素个数,m+a为预测模型输入 个数;输出样本是对历史负荷数据连续采集而来,可表示为 l的取值由预测模型输出个数决定;n为样本集中第n 个样本,测试样本Ten的选取方式与训练样本集Trn的选取方式相同。

优选地,所述S22的建立神经网络预测模型的具体步骤为:

输入层节点数m设为32个,隐含层节点数s设为6个,输出层节点数个 数l设为24个,选择Tansig函数和logsig函数作为隐藏层和输出层的传输 函数。,

神经网络需要优化的变量个数为:

num=m×s+s×l+s+l。

优选地,所述所述S3的采用萤火虫算法对神经网络的权值和阈值进行优 化调整的具体步骤为:

S31参数初始化。萤火虫算法(FA)种群大小M设为60,最大迭代次数Tmax取500,光强吸收因子γ设为1,最大吸引度β0设为1;

S32随机生成初始种群X=[x1,x2,...,xM]T。

其中,IW为输入权值,有m×s个;Ib为隐含层阈值,有s个;LW为输出权值, 有s×l个;Lb为隐含层阈值,有l个;M为种群大小,共M个粒子,迭代次 数k置1,将FA初始种群粒子转换成神经网络的权值和阈值,进行训练,由 下式计算训练误差,即为粒子的适应度值:

式中:pt、分别是实负荷输出和目标负荷输出,T为训练样本数;

S33这些粒子探索目标空间,在目标空间的k次迭代中,由I表示粒子荧 光亮度:

I=I0e-γr

I0为萤火虫的最大荧光亮度,即为处的自身荧光亮度,rij表示两 萤火虫之间的空间距离,

由β表示吸引度:

计算粒子xi(k)和粒子xj(k)的荧光亮度Ii和Ij,若Ij>Ii,则粒子xi(k)的位 置更新公式如下:

xi(k+1)=xi(k)+β(xj(k)-xi(t))+(rand-0.5)

粒子更新完成后,计算更新位置后的粒子适应度值,最优个体Xbest;

S34当迭代次数t

本发明的一种萤火虫算法优化神经网络的短期负荷预测方法,首先针对 历史负荷数据和天气进行处理,建立训练样本集和测试样本,然后对测试样 本集建立神经网络的预测模型,同时采用萤火虫算法对神经网络的权值和阈 值进行寻优,提高模型的泛化能力和预测精度;最后将测试样本输入训练好 的神经网络中得到负荷预测结果;本方法能获得较高精度的短期负荷预测结 果。

附图说明

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

图1是本发明实施例的萤火虫算法优化神经网络的短期负荷预测方法流 程图;

图2是发明实施例的FA优化神经网络流程图;

图3是发明实施例的FA-NN模型预测效果图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步 说明。

具体实施方式

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

需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、 前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下 各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则 该方向性指示也相应地随之改变。

另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第 一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重 要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二” 的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的 技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础, 当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合 不存在,也不在本发明要求的保护范围之内。

本发明的一种萤火虫算法优化神经网络的短期负荷预测方法实施例,包 括以下步骤:

S1、获取历史负荷数据和天气数据,对所述历史数据进行预处理生成训 练样本集和测试样本;

具体步骤为:

训练样本集Trn包含模型的输入样本Xn和输出样本Yn,输入样本是对历 史负荷数据和天气数据连续采集而来,可表示为其中m为历史负荷数据个数,a为考虑历史天气因素个数,m+a为预测模型输 入个数;输出样本是对历史负荷数据连续采集而来,可表示为 l的取值由预测模型输出个数决定;n为样本集中第n 个样本。

测试样本Ten的选取方式与训练样本集Trn的选取方式相同。

S2、选择训练样本集建立神经网络预测模型;

具体为:

输入层节点数m设为32个,隐含层节点数s设为6个,输出层节点数个 数l设为24个,选择Tansig函数和logsig函数作为隐藏层和输出层的传输 函数。

神经网络需要优化的变量个数为:

num=m×s+s×l+s+l

S3、采用训练样本集对神经网络进行训练,训练过程中采用萤火虫算法 对神经网络的权值和阈值进行优化调整;

具体为:

(1)参数初始化。萤火虫算法(FA)种群大小M设为60,最大迭代次数 Tmax取500,光强吸收因子γ设为1,最大吸引度β0设为1。

(2)随机生成初始种群X=[x1,x2,...,xM]T。

其中,IW为输入权值,有m×s个;Ib为隐含层阈值,有s个;LW为输出 权值,有s×l个;Lb为隐含层阈值,有l个;M为种群大小,共M个粒子。

迭代次数k置1。将FA初始种群粒子转换成神经网络的权值和阈值,进行 训练,由下式计算训练误差,即为粒子的适应度值。

式中:pt、分别是实负荷输出和目标负荷输出;T为训练样本数。

(3)这些粒子探索目标空间,在目标空间的k次迭代中,由I表示粒子 荧光亮度:

I=I0e-γr

I0为萤火虫的最大荧光亮度,即为处的自身荧光亮度,rij表示两 只萤火虫之间的空间距离。

由β表示吸引度:

计算粒子xi(k)和粒子xj(k)的荧光亮度Ii和Ij,若Ij>Ii,则粒子xi(k)的位 置更新公式如下:

xi(k+1)=xi(k)+β(xj(k)-xi(t))+(rand-0.5)

粒子更新完成后,计算更新位置后的粒子适应度值,最优个体Xbest。

(4)当迭代次数t

萤火虫算法优化神经网络的流程图如图2所示。

S4、将测试样本输入S3中训练好的神经网络中进行预测,得到短期负荷 预测结果。

实验验证:一种萤火虫算法优化神经网络的短期负荷预测方法实验

本实验首先对训练样本集建立FA-NN预测模型进行模型训练,然后将测 试样本输入到训练好的模型中进行预测,得到负荷预测结果,并与单独的神 经网络(BP-NN)模型进行对比。图3为FA-NN的预测效果图。

将单独的神经网络模型(BP-NN)和本发明预测模型(FA-NN)做误差对 比分析,误差对比如表1所示。

表1 风电功率预测误差对比

从表1可以看出,本发明预测模型(FA-NN)的预测精度较传统神经网络 (BP-NN)大幅度提高。

综上所述,本发明提出了一种萤火虫算法优化神经网络的短期负荷预测 方法,该方法首先获取历史负荷数据和天气数据,对所述历史数据和天气数 据进行预处理生成训练样本集和测试样本;然后选择训练样本集建立神经网 络预测模型;接着采用训练样本集对神经网络进行训练,训练过程中采用萤 火虫算法对神经网络的权值和阈值进行优化调整;最后将测试样本输入到训 练好的神经网络中进行预测,得到短期负荷预测结果,本发明为提高短期负 荷预测精度提供了一个新的方法。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围, 采用其他预测方法同样能实现负荷预测目的,不排除存在其他优质算法可以 解决神经网络的局部最优问题,利用本发明说明书及附图内容所作的等效结 构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护 范围内。

你可能感兴趣的:(python萤火虫算法)