技术领域本发明涉及一种基于遗传算法的BP神经网络光伏电站发电量预测方法,属于光伏电站发电量预测技术领域
背景技术:
21世纪,科学技术日新月异,光伏产业也得到迅速发展,如今光伏系统正走向自动化、网络化、智能化,对于光伏系统进行发电量的预测极大地契合了这一主题。众所周知,光伏发电容易受到外界因素的影响,而且影响因素诸多,存在很大的不稳定性,并网型光伏发电系统对在向电网输电过程中具有冲击性和波动性,会让电网不稳定,安全性降低,在光伏发电量在整个电网中所占比较较小时,可能上述影响不很明显,一旦光伏发电在整个电网所占的比较超过一定范围时,并网的光伏电站将会对电力系统产生很大的冲击,对电网的安全、稳定运行会带来很大的影响,对光伏电站进行发电量预测这一技术应运而生。然而目前国内光伏电站发电量预测技术并不成熟,预测误差较大,部分高达30%以上,普遍存在预测精度不高,可信度不高这一亟待解决的问题。BP神经网络是一种多层前馈神经网络,是目前最流行的算法之一,BP算法其实质是求解误差函数的最小值问题,采用非线性规划中的最速下降法,按误差函数负梯度方向修正权值阈值,具有简单、易行、计算量小、并行性强等特点,光伏电站发电量预测系统是一个非线性系统,影响因素多变,该预测方法对进行光伏电站的发电量预测十分适用,然而BP算法的初始权值阈值一般均为系统赋予(-1,1)区间的随机值,BP算法学习过程中是否达到局部最小、训练时间长短、训练是否收敛、最终预测精度等与权值阈值调整有很大关系,初始权值阈值适应度不够将会导致预测精度偏低。
技术实现要素:
目的:针对上述问题,本发明提出一种基于遗传算法的BP神经网络光伏电站发电量预测方法,引入遗传算法来对BP神经网络进行优化,使网络得到最优初始权值阈值,从而提高最终预测精度。本发明的主要技术内容如下:一种基于遗传算法的BP神经网络光伏电站发电量预测方法,包含以下步骤:(1)、选取数据样本:选取某月12天内每日6:00—18:00时段影响光伏发电量的主要因素,包括太阳辐照度、瞬时风速、背板温度、环境温度和环境湿度,并采集这些光伏发电量的影响因素以及相应发电量功率的实时数据,以5分钟为时间尺度,将五个影响因素与发电功率按照时间序列一一对应,确定数据样本集,所述数据样本共1728组数据,采集的样本集中前11天作为BP神经网络训练样本集,最后一天则作为测试样本集;(2)、数据预处理:采用最大最小法对步骤(1)中采集的数据样本集进行归一化预处理,得到经处理后的训练样本集和测试样本集,所述最大最小法公式如下:xk=(xk-xmin)/(xmax-xmin)式中,xmin为数据序列的最小数,xmax为数据序列的最大数;(3)、网络拓扑结构确定:BP神经网络结构包括输入层、隐含层和输出层,输入层:包括6个节点,输入向量组的每个向量元素是由历史发电功率和当前时间节点的太阳辐照度、瞬时风速、背板温度、环境温度、环境湿度构成,共1440组数据;输出层:包括1个节点,即与之对应的电站当前发电功率;隐含层:节点数可根据公式:n1=n+m+a,]]>并结合网络实际训练过程来适当增减,通过训练结果的对比,确定合适的隐层节点数目,式中,n1为隐含层节点数,n为输入层节点数,m为输出层节点数,a为[1,10]之间的常数;(4)、确定BP神经网络的初始权值阈值,随机给各个权值阈值赋予(-1,1)内的随机值;(5)、BP神经网络网络初始权值阈值寻优:将步骤(2)中的数据样本用遗传算法进行优化,具体实施步骤如下:5a)、种群初始化:根据步骤(2)中的数据样本初始权值阈值长度进行种群的初始化,采用个体实数编码进行初始值编码,即遗传算法中的种群初始化,每个个体均为一实数串;5b)、个体适应度值:根据步骤5a)中所述个体得到BP神经网络的初始权值阈值,并采用步骤(2)中的训练数据样本训练BP神经网络,将BP神经网络预测系统输出的预测输出和期望输出之间的误差绝对值和作为个体适应度值F,个体适应度值计算公式为:F=k(Σi=1mabs(yi-oi))]]>式中,k为系数,m为网络输出节点数,yi为网络第i个节点的期望输出,oi为网络第i个节点的预测输出;5c)、选择操作:从种群中选择适应度好的个体作为新种群,采用轮盘赌法,每个个体i的选择概率pi为:fi=k/Fi,式中,Fi为个体i的适应度值,由于适应度值越小越好,故在个体选择前对适应度值求倒数为fi,k为系数,N为种群个体数目;5d)、交叉操作:从种群中选择两个个体按照一定概率进行交叉得到新的个体,采用实数交叉法:akj=akj(1-b)+aljbalj=alj(1-b)+akjb式中,表示染色体ak和al在j位进行交叉,b为[0,1]间随机数;5e)、变异操作:从种群中随机选择一个个体,按一定概率变异得到新个体,选取第i个个体的第j个基因aij进行变异:aij=aij+(aij-amax)*f(g),r>0.5aij=aij+(amin-aij)*f(g),r≤0.5式中,amin、amax分别为基因aij的上下界,fg=r2(1-g/Gmax)2,r2为随机数,g为当前迭代次数,Gmax为最大进化次数,r为[0,1]间随机数;5f)、计算适应度值:根据步骤5b)中所述的个体适应度值计算公式,变异后新种群中所有个体的适应度值,寻找出最优个体;6)、BP网络预测:包括以下步骤:6a)、将步骤5f)得到的最优个体赋值给BP神经网络的初始权值阈值;6b)、将步骤(2)归一化处理后的训练样本输入BP网络,输入向量为第1天到第10天的历史发电功率和第2天到第10天对应时间节点的太阳辐照度、瞬时风速、背板温度、环境温度、环境湿度;目标向量为第2天到第11天的实时发电功率;6c)、利用训练样本输入向量、最优初始权值阈值计算中间层各单元输出,然后通过传递函数计算输出层各单元响应,据此计算出输出层各单元一般化误差,接着可求出中间层各单元一般化误差;6d)、利用步骤6c)中计算出的输出层各单元一般化误差、中间层各单元输出、中间层一般化误差以及输入层各单元输入,分别对网络各层权值阈值进行更新修正,以实现网络误差的逆向传播,直到达到网络所需精度或者达到最大迭代次数,至此,网络学习过程结束;6e)、将步骤(2)中的测试样本中的测试输入向量和测试目标向量分别输入训练好的BP神经网络进行预测得出预测输出,即第12天的预测发电功率,将预测输出结果进行反归一化处理后与测试目标向量作差并拟合曲线,检测网络预测精度。优选地,步骤(3)中所述的隐含层的节点数为5个。优选地,所述步骤5a)中初始编码长度为41,且在步骤6a)中最优个体前30个实数依次为BP神经网络输入层到隐含层的权值,第31到35个依次为输入层到隐含层的阈值,第36到40个依次为隐含层到输出层权值,第41个为隐含层到输出层阈值;优选地,步骤6e)中所述的测试输入向量为第11天的历史发电功率和第12天对应时间节点的太阳辐照度、瞬时风速、背板温度、环境温度、环境湿度,所述测试目标向量为第12天的实时发电功率。有益效果:本发明提出一种基于遗传算法的BP神经网络光伏电站发电量预测方法,通过遗传算法中的选择、交叉、变异操作方法来寻找最优个体,使网络得到最优初始权值阈值,从而提高最终预测精度。附图说明图1是本发明的发电量预测系统的流程图;图2是BP神经网络流程图。具体实施方式一种基于遗传算法的BP神经网络光伏电站发电量预测方法,包含以下步骤:(1)、选取数据样本:选取某月12天内每日6:00—18:00时段影响光伏发电量的主要因素,包括太阳辐照度、瞬时风速、背板温度、环境温度和环境湿度,并采集这些光伏发电量的影响因素以及相应发电量功率的实时数据,以5分钟为时间尺度,将五个影响因素与发电功率按照时间序列一一对应,确定数据样本集,所述数据样本共1728组数据,采集的样本集中前11天作为BP神经网络训练样本集,最后一天则作为测试样本集;(2)、数据预处理:为消除各维数据之间数量级差别,减小误差,采用最大最小法对步骤(1)中采集的数据样本集进行归一化预处理,得到经处理后的训练样本集和测试样本集,所述最大最小法公式如下:xk=(xk-xmin)/(xmax-xmin)式中,xmin为数据序列的最小数,xmax为数据序列的最大数;(3)、网络拓扑结构确定:BP神经网络结构包括输入层、隐含层和输出层,输入层:包括6个节点,输入向量组的每个向量元素是由历史发电功率和当前时间节点的太阳辐照度、瞬时风速、背板温度、环境温度、环境湿度构成,输入向量组的每个向量元素是由历史(昨天)发电功率和当前(今天)时间节点的太阳辐照度、瞬时风速、背板温度、环境温度、环境湿度构成,共1440组数据;输出层:包括1个节点,即与之对应的电站当前发电功率;隐含层:节点数可根据公式:n1=n+m+a,]]>并结合网络实际训练过程来适当增减,通过训练结果的对比,确定合适的隐层节点数目,式中,n1为隐含层节点数,n为输入层节点数,m为输出层节点数,a为[1,10]之间的常数;(4)、确定BP神经网络的初始权值阈值,随机给各个权值阈值赋予(-1,1)内的随机值;(5)、BP神经网络网络初始权值阈值寻优:将步骤(2)中的数据样本用遗传算法进行优化,具体实施步骤如下:5a)、种群初始化:根据步骤(2)中的数据样本初始权值阈值长度进行种群的初始化,采用个体实数编码进行初始值编码,即遗传算法中的种群初始化,每个个体均为一实数串,由网络各层权值阈值组成;5b)、个体适应度值:根据步骤5a)中所述个体得到BP神经网络的初始权值阈值,并采用步骤(2)中的训练数据样本训练BP神经网络,将BP神经网络预测系统输出的预测输出和期望输出之间的误差绝对值和作为个体适应度值F,个体适应度值计算公式为:F=k(Σi=1mabs(yi-oi))]]>式中,k为系数,m为网络输出节点数,yi为网络第i个节点的期望输出,oi为网络第i个节点的预测输出;5c)、选择操作:从种群中选择适应度好的个体作为新种群,采用轮盘赌法,每个个体i的选择概率pi为:fi=k/Fi,式中,Fi为个体i的适应度值,由于适应度值越小越好,故在个体选择前对适应度值求倒数为fi,k为系数,N为种群个体数目;5d)、交叉操作:从种群中选择两个个体按照一定概率(为仿真中根据需要自定义的交叉概率)进行交叉得到新的个体,采用实数交叉法:akj=akj(1-b)+aljbalj=alj(1-b)+akjb式中,表示染色体ak和al在j位进行交叉,b为[0,1]间随机数;5e)、变异操作:从种群中随机选择一个个体,按一定概率(为仿真中根据需要自定义的交叉概率)变异得到新个体,选取第i个个体的第j个基因aij进行变异:aij=aij+(aij-amax)*f(g),r>0.5aij=aij+(amin-aij)*f(g),r≤0.5式中,amin、amax分别为基因aij的上下界,fg=r2(1-g/Gmax)2,r2为随机数,g为当前迭代次数,Gmax为最大进化次数,r为[0,1]间随机数;5f)、计算适应度值:根据步骤5b)中所述的个体适应度值计算公式,计算变异后新种群中所有个体的适应度值,寻找出最优个体,适应值越小越好,即个体更优;6)、BP网络预测:包括以下步骤:6a)、将步骤5f)得到的最优个体赋值给BP神经网络的初始权值阈值;6b)、将步骤(2)归一化处理后的训练样本输入BP网络,输入向量为第1天到第10天的历史发电功率和第2天到第10天对应时间节点的太阳辐照度、瞬时风速、背板温度、环境温度、环境湿度;目标向量为第2天到第11天的实时发电功率;6c)、利用训练样本输入向量、最优初始权值阈值计算中间层各单元输出,然后通过传递函数计算输出层各单元响应,据此计算出输出层各单元一般化误差,接着可求出中间层各单元一般化误差;6d)、利用步骤6c)中计算出的输出层各单元一般化误差、中间层各单元输出、中间层一般化误差以及输入层各单元输入,分别对网络各层权值阈值进行更新修正,以实现网络误差的逆向传播,直到达到网络所需精度或者达到最大迭代次数,至此,网络学习过程结束;6e)、将步骤(2)中的测试样本中的测试输入向量和测试目标向量分别输入训练好的BP神经网络进行预测得出预测输出,即第12天的预测发电功率,将预测输出结果进行反归一化处理后与测试目标向量作差并拟合曲线,检测网络预测精度。优选地,步骤(3)中所述的隐含层的节点数为5个。优选地,由步骤(3)可知网络输入层节点数为6,隐含层节点数为5,输出层节点数为1,共有权值35个,阈值6个,故初始编码长度为41,故所述步骤5a)中初始编码长度为41,且在步骤6a)中最优个体前30个实数依次为BP神经网络输入层到隐含层的权值,第31到35个依次为输入层到隐含层的阈值,第36到40个依次为隐含层到输出层权值,第41个为隐含层到输出层阈值;优选地,步骤6e)中所述的测试输入向量为第11天的历史发电功率和第12天对应时间节点的太阳辐照度、瞬时风速、背板温度、环境温度、环境湿度,所述测试目标向量为第12天的实时发电功率。本发明中未详细阐述的函数及计算过程均为本领域技术人员所掌握的常规技术手段。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。