本发明属于光伏发电技术领域,尤其涉及基于afsa-elman的新型光伏功率预测方法。
背景技术:
太阳能属于间歇性能源,使得光伏电站的发电功率呈现出波动性和间歇性特征。当并网光伏电站装机容量较大时,电力系统的安全性与稳定性将受到影响。研究表明,当光伏电站装机容量在电力系统中所占比例超过15%时,其波动可能会引起电力系统瘫痪,带来不可估量的损失。因此,需要准确预测光伏电站的发电功率以配合电力部门进行合理的计划和调度。
准确预测发电功率,配合电力调度部门合理调度用电、安排备用容量,不仅能够提升电能质量、增强电网稳定性,而且可以大幅度减少电力系统的运行维护成本。对此,国家电网在光伏电站并网验收规范中对装机容量超过10mw的并网光伏电站提出了明确的功率预测要求。并网电站需要以15min为预测步长,向电力调度部门提供未来4h的发电功率预测值,每天还需要提供次日24h的功率预测。
人工鱼群算法(artificialfishswarmalgorithm,afsa)作为一种新型的智能算法,具有对初值要求不高、全局收敛性要求好、对参数设置要求不高等优势被运用在工业控制领域。
技术实现要素:
本发明充分利用小波分解来挖掘光伏输出功率与外部天气因素存在的内在联系,同时将具有全局寻优的afsa和局部精确寻优的elman神经网络结合起来,克服了elman神经网络初始权值与阈值的随机性、易陷入局部最优的缺点,在预测模型加速收敛的前提下,进一步提高预测精度。
本发明方法的技术方案如下:
基于afsa-elman的新型光伏功率预测方法,包括以下步骤:
步骤1:数据采集得到光伏站的历史输出功率以及对应的天气情况,对采集到的数据作预处理,对功率分解得到功率的高频细节分量和低频趋势分量,建立样本集;采集到的数据包括功率p、光照强度q、温度t、湿度h、光照强度g、风速s,预处理的具体过程为:剔除功率小于等于零的功率点,剔除与邻近数据偏差很大的异常点,将处理后的数据归一化处理,将归一化后的历史发电量序列进行小波分解,将信号分解为高频细节信号di和低频趋势分量an,i=1,2,3,…n,n为最大分解层数。
步骤2:确定神经网络输入参数,分别对高频细节分量和低频趋势分量建立elman神经网络模型,预测下一时刻的高、低频分量;
确定神经网络输入参数:采用皮尔逊相关系数来权衡不同变量间的线性依附程度,计算各分量与天气情况之间的相关因数ρ:
式中n为训练集的样本个数,xi为某待选定预测模型的输入参数,
步骤3:通过人工鱼群算法afsa对elman神经网络参数进行优化
步骤3.1:以elman神经网络的连接权值ω1、ω2、ω3,阈值b1、b2作为待优化参数,构建五维向量作为一条人工鱼个体,初始化鱼群;
步骤3.2:将elman神经网络的预测值和期望输出值之间的差值e作为人工鱼的适应度目标函数,并将目标函数值最小的记录为最优个体并记录在公告板中;
步骤3.3:当前鱼群分别执行觅食行为、群聚行为、追尾行为;执行觅食行为、群聚行为、追尾行为前,人工鱼探索当前所处的环境,再尝试聚群和追尾两种行为,计算目标函数适应度值是否改善,实际选择执行适应度值较小的行为,缺省行为为觅食;
步骤3.4:每一轮完毕,计算每个人工鱼的适应度目标函数值即e,并对比于公告板将最优值存放在公告板中;
步骤3.5:判断是否满足最大迭代次数终止条件,若满足则输出最优参数,否则,迭代次数k=k+1,返回步骤3.3;每一轮迭代寻优结束后都会计算目标函数值e,找到e值最小的个体,与上一轮的公告板中保存的最优个体行进比较,将目标函数值e小的记为最优个体保存在公告板,并继续下一轮迭代,避免寻优过程中陷入局部最优,使人工鱼向全局最优靠近;
步骤3.6:寻优结束后,将输出的最优权值和阈值作为elman神经网络的最优参数,并建立高、低频分量对应的elman神经网络预测模型;
步骤3.7:对优化好的模型进行测试分析,重构得到下一时刻功率的预测值,如果达到误差要求,那么保存该组权值和阈值,同时输出下一时刻功率的预测结果,否则转步骤3.1,重新开始优化;
下一时刻功率的预测值,通过优化好的elman神经网络分别预测下一时刻高频分量di,i=1,2,3,…n,n为最大分解层数,低频分量an,将高、低频分量的预测值进行重构,得到下一时刻功率的预测值pt+1:
与现有技术相比,本发明的有益效果是:
1.算法简明易实现。不需要运用众多复杂繁琐的物理公式建立精确的光伏发电数学模型,更不要求确定数学模型的相关参数,在只有给定初始状态条件下,寻找历史数据中存在的自相关性(电池板面积、使用损耗、积灰等因素都能够在历史发电功率中体现)。
2.采用小波分解法,将历史数据中的细节分量和趋势分量分别加以分析,进一步挖掘出数据中存在的特征信息,提高预测精度。
3.传统的elman神经网络梯度下降法求解,易陷入局部最优值、后期收敛速度慢等缺陷。人工鱼群算法中包含追尾算子,加快人工鱼向更优的位置游动,使陷入局部最优的人工鱼向全局最优的人工鱼方向移动而逃离局部最优,提高网络的收敛速度,降低elman陷入局部最优的风险。
附图说明
图1为基于afsa-elman的新型光伏功率预测方法的流程图;
图2为小波分解示意图;
图3为elman神经网络的映射图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
下面结合附图1流程图和具体实施方式对本发明作进一步详细说明,但本发明的保护范围并不限于此。
以下结合附图所示,对本发明实施例做出详细描述:
如图1所示,基于afsa-elman的新型光伏功率预测方法,包括如下步骤:
步骤1:通过光伏站安装的scada(supervisorycontrolanddataacquisition)系统,采集得到光伏站的历史输出功率以及对应天气情况,包括:光照强度q、功率p、温度t、湿度h、风速s;scada系统是通过各类传感器采集原始数据并传输到监控端,由于实际数据采集过程中,传感器异常、误操作、传输误差等会导致极端数据的出现,因此,需要对数据作进一步的预处理,剔除异常数据;接着对功率作3级小波分解,得到功率的3个高频细节分量和1个低频趋势分量,建立样本集。
对采集的原始数据作预处理,具体包括以下步骤:
步骤1.1,剔除功率小于等于零的功率点,剔除与邻近数据偏差很大的异常点,将处理后的数据归一化处理;
每一个属性输入参数都存在特定的物理意义、具有不同单位量纲,不同属性之间可能存在数量级的差距。通过归一化处理将各个属性的输入参数限定在一定范围内,提升训练速度的同时,又减少了神经网络陷入局部最优的概率。限定区间的选取也会影响到神经网络的使用性能,经过测试,得到当模型输入限定在[0,1]之间时达到最佳预测效果,限定公式由下式给出:
式中,zi为归一化之前的值;zmin为本属性数据中的最小值;zmax为本属性数据中的最大值;
步骤1.2,将处理后的光伏发电的历史功率进行3级小波分解,得到功率序列的子频率序列低频段的趋势分量a3(t)以及高频段的随机分量di(t)(i=1,2,3),第t时刻的功率可表示为:
将处理后的样本数据随机分为训练集和测试集。训练数据集用来训练elman神经网络,测试数据集不参与训练elman神经网络,而是用于测试经过优化的elman神经网络预测模型的准确性。
步骤2:分别计算不同天气情况与高、低频分量之间的相关因数ρ,选取相关因数值较大的作为elman神经网络的输入参数,分别对高频细节分量和低频趋势分量建立elman神经网络模型,预测下一时刻的高频、低频分量;
步骤2.1,采用皮尔逊相关系数来权衡不同变量间的线性依附程度,计算各分量与天气情况之间的相关因数ρ,从而确定神经网络的输入参数:
式中n为训练集的样本个数;xi为某待选定预测模型的输入参数;
将与功率分量相关因数高的天气变量作为模型的输入,无需将全部的影响因素输入模型,大大降低了模型输入的维数,降低算法的复杂度,提高运行速度。
步骤2.2,搭建elman神经网络的方法:低频分量逼近原始功率,反映了正常光照情况下功率主要变化趋势,与光照强度q、温度t之间的相关系数较大,因此建立模型时仅将t时刻的q、t、a3(t)以及t+1时刻的q’、t’作为模型输入,建立低频分量的elman神经网络预测模型;高频分量为细节分量,反映了功率变化的随机性,也是影响功率预测精度的部分,但该部分并不是干扰参数,反映出了天气变化以及硬件设备等因素的影响。因此在预测高频分量的时候,将t时刻的功率高频分量di(t)(i=1,2,3)、a3(t)、光照强度q、温度t、湿度h、风速s作为网络的输入。同理,t+1时刻的q’、温度t’、湿度h’、风速s’也作为模型的输入,训练出3个高频分量的elman神经网络预测模型。
elman神经网络的数学模型如下式:
式中t为当前时刻,x(t)为隐含层的输出值,u(t-1)为前一刻网络的输出值,xc(t)为承接层的输出,y(t)为预测网络的输出值,ω1是连接承接层和隐含层之间的权值,ω2是连接隐含层和输出层的权值,ω3是输入层和隐含层之间的连接权值,b1,b2是隐含、输出层中的阈值。f(x)是中间层神经元函数,取sigmoid函数,即:
g(x)取线性函数,elman神经网络模型的拓补结构如附图3。
步骤3:利用人工鱼群算法分别对高、低频分量建立的elman神经网络进行参数优化,以elman神经网络的连接权值ω1、ω2、ω3,阈值b1、b2作为待优化参数,构建五维向量[ω1,ω2,ω3,b1,b2]作为一条人工鱼个体,ω1、ω2、ω3、b1、b2∈(0,1),初始化鱼群;
对人工鱼群进行初始化,实现包括:确定人工鱼个数n、步长step、视野visual、拥挤度因子δ、试探次数try-number、最大迭代次数k,记k为当前迭代次数(k=0,1,2,…)。
步骤4:将elman神经网络的预测值和期望输出值之间的差值e,作为鱼群算法的适应度目标函数,并将目标函数值最小的记录为最优个体并记录在公告板中;
步骤5:当前鱼群分别执行觅食行为、群聚行为、追尾行为,即为一轮;
执行觅食行为具体包括步骤:
在当前人工鱼的感知范围内随机选择一个状态xj[ω1,ω2,ω3,b1,b2]
xj=xi+visual·rand()
式中,xi[ω1,ω2,ω3,b1,b2]是人工鱼的当前状态,rand()是介于0和1之间的随机数,visual为每条人工鱼的视野范围,判断当前跟踪误差ei与目标跟踪误差值ej的大小,若满足ej<ei,则向该方向前进一步,也即使:
step为人工鱼每前进一次的步长。
执行群聚行为具体包括步骤:
设人工鱼群的中心位置:xcenter[ω1c,ω2c,ω3c,b1c,b2c],其中
其中m为以自身位置为中心,其感知范围内的人工鱼的数目。
计算该中心位置xcenter对应的误差值ecenter,判断是否满足条件ecenter<ei,且ecenterm<δ×ei,其中δ为拥挤因子(0<δ<1),ei为第条人工鱼的适应度值,若是,则向着人工鱼群中心位置前进一步,也即:
执行追尾行为具体包括步骤:
设人工鱼当前状态xi[ω1,ω2,ω3,b1,b2],探索当前邻域内的伙伴中对应误差值e最小值的伙伴xj。若ej/n<δ×ei,则向xj前进一步,n为感知范围内的人工鱼群数,δ为拥挤因子(0<δ<1);
步骤6:每一轮完毕,计算每个人工鱼的适应度目标函数值即e,并对比公告板中保存的最优个体,将较小值及其对应的个体存放在公告板中;
步骤7:判断是否满足最大迭代次数终止条件,若满足则输出最优参数,否则,迭代次数k=k+1,返回步骤5;
步骤8:寻优结束后,将输出的最优权值和阈值作为elman神经网络的最优参数,并建立高、低频分量对应的elman神经网络预测模型;
步骤9:对优化好的4组elman神经网络进行测试分析,将高、低频分量预测值进行小波重构得到最终的功率预测值,同时与该时刻实际光伏功率输出值比较,如果达到误差要求,那么保存该组权值和阈值,否则转步骤3,重新开始优化;
步骤9.1:对调整到最优参数的4个预测模型测试,分别预测下一时刻的高、低频分量,再将4个网络预测出的高频细节分量di(i=1,2,3)和低频分量a3通过小波重构,获得的下一时刻光伏站的输出功率预测值pt+1:
步骤9.2:采用均方根误差指标来分析预测结果,如果误差较大,则重新进行训练,如果误差在允许的范围内,则elman神经网络训练合格;
σmse为均方根误差,n为预测样本数,y(i)为序列的真实值,
实施例:
首先采集原始数据,建立数据样本集:本实验使用的原始数据集来自浙江某光伏电站2015年3月1日至8月31日,采集分辨率为5秒的scada数据,分为电气数据和气象数据两类。电气数据为逆变器输出的电流和电压值,气象数据来源于光伏电站中安装的气象站,包含了光照强度q、功率p、温度t、湿度h、风速s等。再对数据作进一步的预处理,剔除异常数据,再将处理好的数据由公式(1)做归一化处理,将模型输入值限制在[0,1]之间:
对处理后的功率序列采用正交变换的mallet快速算法,将功率信号分解为高频细节信号di(i=1,2,3,…n)和低频趋势分量an,n为最大分解层数,如图2所示采用db3小波基进行3级分解。原始数据中的第t时刻的功率可以表示为公式(2)。
接着确定elman神经网络的输入参数,建立预测模型:先计算各分量与天气情况之间的相关因数,将相关因数高的变量作为模型(公式(3))的输入。
将t时刻的q、t、a3(t)以及t+1时刻的q’、t’作为模型输入,建立低频分量的elman神经网络预测模型;将t时刻的功率高频分量di(t)(i=1,2,3)、a3(t)、光照强度q、温度t、湿度h、风速s作为网络的输入,同理,t+1时刻的q’、温度t’、湿度h’、风速s’也作为模型的输入,训练出3个高频分量的elman神经网络预测模型。
在建立好elman神经网络预测模型后,将网络的连接权值ω1、ω2、ω3,阈值b1、b2作为待优化参数构建五维向量作为一条人工鱼个体,初始化鱼群:设置鱼人工鱼个数n=100、步长步长step1=0.45、step2=0.4、step3=0.68、step4=0.5、step5=0.56、视野visual=0.62、拥挤度因子δ=0.618、试探次数try-number=40、最大迭代次数k=100;
将预测值和期望输出值之间的差值e作为全部人工鱼的适应度目标函数,并将目标函数值最小的记录为最优个体,同时将最小值和对应的个体记入公告板;
设置当前迭次数k=1,对随机产生的100条人工鱼执行觅食行为、群聚行为、追尾行为:人工鱼探索当前的所处的环境,分别尝试聚群和追尾两种行为,计算目标函数适应度值是否改善,选择执行适应度值较小的行为,缺省行为为觅食。若某条人工鱼试探聚群和追尾行为后,适应度值均没有改善,则这条人工鱼执行觅食行为,若这条人工鱼在达到觅食行为的最大尝试次数后,适应度值仍没有改善,则执行随机行为,即这条人工鱼在自己的周围环境中随机游动到一个新的位置。
由于每一条人工鱼都会向其周围局部最优值靠近,都过对比所有的人工鱼目标函数值e,得到本轮寻优过程目标函数值e最小的个体,并对比于公告板中上一轮最优个体,若本轮寻优得到最优个体的目标函数值e较小,则取代上轮的最优个体放在公告板中,在进行下一轮寻优,促使鱼群向全局最优靠近;
寻优一段时间后判断是否达到终止条件即最大迭代次数k,若满足则输出最优参数,否则令迭代次数加1,再一次通过鱼群算法进行寻优;
当达到最大迭代次数后,将寻优得到的最优权值和阈值作为elman神经网络的最优参数,并建立高、低频分量对应的elman神经网络预测模型;
最后使用测试集数据对4个预测模型分析,分别预测下一时刻功率的高频细节分量di(i=1,2,3)和低频分量a3,代入公式(5)重构得到下一时刻的功率预测值pt+1。
采用均方根误差指标σmse来分析预测误差(公式(6)),如果达到误差要求,那么保存该组权值和阈值,否则初始化鱼群重新开始优化。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。