APP下载

基于烟花算法优化BP神经网络的光伏功率预测

2021-10-28郝倩男

计算机技术与发展 2021年10期
关键词:烟花功率发电

张 洁,郝倩男

(南京邮电大学 计算机学院,江苏 南京 210023)

0 引 言

传统化石能源危机、环境压力和新能源技术的发展促使寻找新能源成为目前需要迫切解决的现实问题[1]。太阳能作为一种可再生能源,取之不尽用之不竭、分布范围广泛、便于开采、能源利用率高且无污染,相对于其他能源,有着明显的优势,因此作为最有利用价值的可再生能源,引起了国内外政府的广泛关注。光伏发电凭借其无噪声、无污染、不受地域限制、建设周期短等优点,成为太阳能利用的最有效途径,太阳能光伏技术也成为全球发展最快的高新技术之一。

光伏发电的间歇性、随机性和波动性,给电网的安全运行带来了一系列的问题,只有对光伏发电功率进行及时、准确的预测才能有效保证电网运行的安全性、稳定性和可靠性[2]。

光伏发电预测技术经历了几十年的发展,根据建立的数学模型的不同,将现有的预测方法分为物理法和统计法两类[3]。物理法需要气象数据、光伏电站所处地理信息以及光伏组件的参数,根据输出特性曲线计算得到光伏发电量[4]。物理法预测模型的抗干扰能力有限,鲁棒性不强。统计法是通过对历史数据进行统计分析,发现其内在规律,建立起太阳辐照度、温度、湿度等因素和光伏发电功率之间的映射关系并进行预测[5]。常用的预测方法有支持向量机、神经网络、时间序列法、马尔可夫链等。

文献[6]运用增加动量项以及自适应选取最佳隐含层的方法改进传统BP模型,根据不同天气类型进行预测,分析验证了该模型的可行性;文献[7]分别用时间序列模型和人工神经网络模型对未来一周内的光伏发电功率进行预测,分析结果表明神经网络模型在训练阶段表现较好,但在预测阶段其性能却比时间序列模型差;文献[8]提出了一种光伏功率短期预测模型,首先用聚类算法根据天气类型对训练数据进行处理,然后采用支持向量机(support vector machine,SVM)算法对不同天气类型下未来日间12小时的光伏发电功率进行预测,预测性能显著;文献[9]采用多元线性回归方法,用太阳辐照度等气象因素来预测发电功率,预测精度较差;文献[10]提出一种基于Stacking模型融合的光伏发电功率预测方法,选取温度、湿度、辐照度等数据作为研究对象,提高了预测精度;文献[11]建立了支持向量机预测模型,并采用改进粒子群算法(particle swarm optimization,PSO)来优化支持向量机的惩罚参数和核函数参数,结果表明预测精确度更高,误差更小;文献[12]使用遗传算法(genetic algorithm,GA)优化BP神经网络,建立了GA-BP光伏功率预测模型,通过训练仿真,得出了GA-BP预测模型比BP神经网络预测模型预测精度更高的结论;文献[13]提出了一种基于人工神经网络的短期功率预测模型,选择最优的输入变量、神经元数、学习算法和传递函数应用到模型中;文献[14]运用灰色模型对光伏发电量进行总体趋势预测,然后加入加权马尔可夫链预测理论,建立了灰色-马尔可夫链预测模型;文献[15]提出了一种基于最小二乘方法的短期光伏发电动态加权组合预测方法,并使用美国阿什兰光伏电站的数据验证了所提方法的有效性;文献[16]提出了一种基于K-means、灰色关联分析和支持向量机的短期光伏发电功率预测方法,先用K-means算法进行聚类,然后使用灰色关联分析选择预测日的相似日和最近邻日,用相似日和最近邻日的数据来训练支持向量机模型,实验证明该模型的性能比单一的支持向量机更优;文献[17]提出了一种反向传播(BP)神经网路模型,使用BP神经网络结构28-20-11获得最佳性能,对误差指标的分析表明,该模型对光伏发电系统的功率输出预测具有较高的准确性;考虑到RBF算法隐节点中心和参数对光伏发电功率的影响,文献[18]提出了一种基于改进粒子群算法优化径向基函数网络算法,将相似日的实际功率和气象数据作为输入,同时利用改进PSO优化RBF网络参数,建立预测模型;文献[19]运用灰色关联理论分析历史气象数据,筛选出与待测日天气数据关联度较高的历史数据组作为相似日集合,建立思维进化算法优化的BP神经网络预测模型,相比传统BP神经网络、RBF神经网络,结合相似日与思维进化算法优化的神经网络的预测模型具有更高的预测精度;文献[20]使用自适应映射算法和K最近邻算法对天气输入数据进行分类,然后通过前馈神经网络对每个类别建立预测模型,结果证实了所提模型在预测中的高精度;文献[21]提出了一种基于改进的灰色BP神经网络的光伏功率预测方法,利用灰色GM(1,1)预测模型得到预测数据,并将预测结果与相对应的日最高、最低温度作为BP神经网络的输入;针对无气象数据情况,文献[22]提出了一种结合变分模态分解、深度回声状态网络和稀疏高斯混合过程专家模型的超短期光伏功率预测方法,仿真结果表明,该方法在光伏功率时序预测中的效果比传统预测模型更好;除了选取与光伏功率正相关的因素,文献[23]还选取了与光伏发电功率负相关性较大的因素作为模糊神经网络预测模型的输入变量,预测精度比BP神经网络提高了10%;为解决因粒子群不能及时更新而使种群陷入局部极值的问题,文献[24]提出一种动态领域粒子群优化BP神经网络的光伏功率预测方法,利用动态领域对粒子群进行动态划分,通过改进后的粒子群算法优化BP神经网络的权值和阈值,得到更高的预测精度。

有关光伏发电功率预测的方法国内外学者一直在不断的探索中,已经取得了一定的研究成果,而BP神经网络作为经典的神经网络算法自适应能力以及容错性能非常强,近年来在光伏发电功率中得到了广泛应用,但是BP神经网络光伏发电功率预测模型存在预测精度低、可能产生过度拟合情况以及易陷入局部最优等问题。针对BP神经网络模型的缺点,文中通过分析光伏发电功率与辐照度、温度、湿度、风速等气象因子之间的相关性,建立基于烟花算法优化BP神经网络的光伏发电功率预测模型。利用烟花算法对BP神经网络的权值和阈值进行优化,使神经网络的寻优能力进一步提高,从而能够更精确地对光伏发电输出功率进行预测。

1 数据预处理

所获取的数据中影响光伏电站输出功率的主要气象因素有辐照度、温度、湿度、风速、压强等,它们的采集时间间隔是15 min,这些数据都是通过数据采集设备采集得到的。由于设备在数据采集和传输过程中可能存在失误,导致海量的原始数据中存在不完整、有异常的数据,历史数据的异常将会对光伏功率的预测效果产生较大影响。一方面,神经网络的训练依赖历史数据,数据的不准确性会干扰神经网络模型对光伏发电规律的正确训练,导致训练效果不佳,预测精度不准确;另一方面将异常数据作为校验神经网络模型预测结果的实际值,会造成对预测结果的错误估计,所以需要对数据进行预处理。数据预处理一方面是为了提高数据的质量,另一方面是为了让数据能更好地适应特定地挖掘算法或工具。

1.1 异常值处理

异常值是指样本中的个别值,其数值明显偏离其余的观测值。光伏功率及气象因素数据服从正态分布,所以文中选取3σ原则进行异常值检测。根据正态分布的定义可知,距离平均值3σ之外的概率为P(|X-μ|>3σ)<=0.003,这属于极小概率事件,在默认情况下可以认定,距离超过平均值3σ的样本是不存在的,因此当观测值与平均值的差别如果超过3倍标准差,那么可以将其视为异常值。

检测出异常值之后需要根据某种选择标准选择合适的备选值替换异常值。分析光伏功率数据和气象数据,每一时间点的光伏发电功率数据都有其作用,所以删除法不适合。光伏发电功率数据与气象数据都有很强的连续性,即相邻几个时刻的数据变化不是很大,所以文中采用插补法中的K近邻法来补全异常值。

在给定一个数据样本中,算法根据异常值附近k个最近邻的数据得到这k个数据的平均值,然后将这个平均值填入异常值处,算法如公式(1)所示。

(1)

其中,xi-k是异常值前面第k个数据,xi+k是异常值后面第k个数据。

1.2 数据归一化

不同评价指标往往具有不同的量纲和量纲单位,这样会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。其中,最典型的就是数据归一化处理。

光伏功率和气象数据的单位不同,数值的大小也有差别,把它们直接作为功率预测模型的输入数据会影响预测精度,不能保证实验结果的有效性;另一方面,人工神经网络使用非线性激活函数,其输出限于[0,1]或[-1,1],为了防止使用原始数据导致的神经元饱和,也需要对数据进行归一化处理,将多种变量的数据统一缩放到[0,1]范围内,本模型使用公式(2)对数据进行标准化处理。

(2)

其中,max为原始序列数据的最大值,min为原始序列数据的最小值,x为当前点的值,x*为归一化转换计算的数值。

在数据进行神经网络训练后,神经网络输出数据仍为[0,1]范围内,此时还需要对输出数据进行反归一化处理,使其重新变为有量纲数据,反归一化公式如公式(3)所示。

y'=y×(max-min)+min

(3)

其中,y表示神经网络输出序列数据,max与min分别表示原始序列数据的最大值和最小值,y'表示反归一化处理后的数据。

将所有的输入数据特征进行数据标准化,消除了不同量纲对预测模型准确性造成的影响,有利于加快模型的收敛速度,提升模型的精度。

1.3 相关性分析

相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。皮尔逊积矩相关系数最常用来衡量两变量之间的相互关系,Pearson相关系数计算公式如下:

(4)

(1)若r>0,表明两个变量之间是正相关,即当一个变量值增大时另一个变量值也会增大;

(2)若r<0,则表明两个变量之间是负相关,即当一个变量值增大时另一个变量值会减小;

(3)若r=0,则表明两个变量之间不是线性相关。

此外,r绝对值的大小反映了相关性的强弱, 绝对值数越大,相关性就越强。

影响光伏发电功率的因素众多,而且各因素之间又有耦合性,在实际的光伏发电预测时如果考虑所有的影响因素,会增加光伏电站功率预测的难度,因此使用Pearson相关系数来分析光伏电站输出功率数据和各个影响因素的相关性,相关性分析结果如表1所示。

表1 输出功率与影响因素相关性分析结果

从表1可知,在影响光伏发电功率的各个因素中,辐照度的相关系数最高,而压强的相关系数最低。实验数据分析选取前两个相关系数最高的特征变量(辐照度、温度)作为下一步算法模型的输入变量。通过筛选,减少了特征数量,有助于降低计算时间和成本,另一方面,选择相关系数更高的特征量也有利于提高功率预测模型的精度。

2 算法模型

BP(back propagation,BP)神经网络一般是指由误差反向传播计算理论训练生成的多层前馈神经网络。神经网络具有自学习、自适应能力和高速寻找优化解的能力,不需建立复杂的数学物理模型,只需提供历史数据,可以得到较好的预测效果,因此广泛应用于预测领域。烟花算法产生正常火星的过程为算法提供了搜索能力,产生特殊火星的过程和选择过程为算法提供了跳出局部最优的能力。由于光伏阵列输出功率是一个非平稳随机过程,进入BP神经网络训练的初始值不规律,利用烟花算法优化BP神经网络的初始权值和阈值,可以使得BP神经网络能够更好地对数据进行训练和预测。

2.1 BP神经网络

输入层、隐藏层和输出层为BP神经网络的基本组成结构。文中BP神经网络的输入变量为预测日前两天的功率、辐照度、温度、预测日当天的辐照度和温度,也就是说BP神经网络的输入节点数为8个,输出节点数1个,为预测日某一时刻的光伏输出功率。对于隐含层节点数的确定,首先通过经验公式(5)得到隐含层节点数的范围,然后经过反复测试,将隐含层节点数设为4个。

(5)

其中,m和n分别表示神经网络的输入层节点数和输出层节点数,a为0~10之间的常数。

在神经网络的预测模型中,输入层、输出层的激活函数都采用sigmoid函数,神经网络的训练主要采用梯度下降法。

网络学习率是神经网络的关键参数之一,学习率越低,损失函数的变化速度就越慢,收敛时间就越长,而且容易陷入局部最优;学习率过大,在算法优化的前期可以加速学习,使得模型更容易接近局部或全局最优解,但是在后期会有较大的波动,甚至会出现损失函数的值在最优解附近徘徊的情况。动量因子主要是为了加快网络的收敛速度,本研究中网络学习率和动量因子的选取是多次调试出来的。迭代次数主要考虑到运行时间和网络是否充分迭代更新,迭代次数过大会导致运行时间过长,迭代次数过小,运行快但会导致迭代不充分,网络还有优化的空间,迭代次数一般取100~500,视运行情况而定。

参数设置具体情况如表2所示。

表2 神经网络关键参数

2.2 烟花算法

烟花算法是受到夜空中烟花爆炸的启发而提出的一种群体智能算法,主要由爆炸算子、变异操作、映射规则和选择策略四大部分组成。

烟花算法的具体步骤如下:

Step1 种群初始化。在特定解空间中随机产生一些烟花,每一个烟花个体xi代表解空间的一个解。

Step2 计算适应度。对初始种群中的每一个烟花个体xi,根据适应度函数f(x)计算适应度值f(xi),并根据公式(6)~(7)计算每个烟花爆炸产生烟花的个数Si和爆炸半径Ai。

(6)

(7)

Step3 生成火花。随机选取烟花个体中xi的z个维度z=rand(1,d×rand(0,Ri)),组成集合Z,其中,rand(0,Ri)为爆炸半径Ai内生成的随机数。在集合Z中,对于烟花个体中xi的每个维度k,用公式(8)-(9)进行爆炸变异操作,通过公式(10)中的高斯变异映射规则对超出边界的火花进行映射处理并保存在火花种群中。

h=Ai×rand(1,-1)

(8)

exik=xik+h

(9)

mxik=xik×e

(10)

其中,h为位置偏移量,xik为种群中的i个烟花个体的第k维,exik为第i个烟花个体爆炸后的火花,mxik为xik经过高斯变异后的高斯变异火花,其中e为服从均值为1,方差为1的高斯分布的随机数,则有e~N(1,1)。

Step4 选择下一代群体。应用策略选择得到下一代烟花群体,即从烟花、爆炸火花及高斯变异火花种群中选择N个烟花个体形成候选种群。对于候选烟花种群K,选择策略如下:选择适应度值最小的min(f(xi))个体xk直接为下一代烟花种群个体,其余的N-1个烟花个体采取轮盘赌方式,对于候选个体xi其被选择的概率如式(11):

(11)

其中,R(xi)表示烟花个体xi与其他个体的距离之和,具体公式如式(12):

(12)

Step5 判断终止条件。若满足终止条件,则停止迭代,否则继续执行Step2。

根据烟花算法的步骤对其关键参数进行如下设置:种群大小决定了火花的多样性,种群越大,火花种类越多,但运行时间也会越长,种群大小一般选5;半径调节参数决定了火花爆炸的范围和震动幅度,半径调节常数越大则全局探索能力越强,但局部搜索能力会减弱,一般取20;火花数决定了爆炸新生的火花个数,个数越多,找到最优解可能性越大,但需要的时间越长,为了减少运行时间,所以火花数取值较小;火花上下限用于限制火花数量,使每一个火花都能爆炸出新的火花数,其取值与火花调节常数有关;变异火花数主要用于增强全局探索能力;迭代次数一般取100~500,迭代次数大则运行速度慢,本次实验迭代次数设置为100。

具体的参数设置如表3所示。

表3 烟花算法关键参数

为了验证烟花算法优化BP神经网络的有效性,本实验将所提算法与单一BP神经网络和GA-BP神经网络进行对比,其中BP神经网络的参数设置保持一致,GA-BP神经网络预测模型中遗传算法的关键参数值如表4所示。

表4 遗传算法关键参数

2.3 FWA-BP神经网络模型

BP神经网络有两个明显的缺点:一是容易陷入局部极小值,二是收敛速度慢。烟花算法具有机理简单和寻优能力强的优点,文中将烟花算法引入神经网络模型中对神经网络的权重和阈值进行优化实现神经网络的最有效学习和预测。

基于FWA优化BP神经网络的算法流程如图1所示。

图1 FWA-BP神经网络算法流程

3 评价指标

在衡量模型的性能时,通常选取以下四个误差指标:均方根误差(root mean square error,RMSE)、平均绝对误差(mean absolute error,MAE)、均方误差(mean square error,MSE)以及平均绝对百分比误差(mean absolute percentage error,MAPE)。

RMSE是先对误差进行平方的累加然后再开方,对异常值比较敏感,在衡量中使RMSE的值越小其意义越大,因为它的值能反映出其最大误差也是较小的;MAE是一种基础性的考察误差的指标,是绝对误差的平均值,反映的就是真实的误差;MSE作为平方效果后的误差,侧重放大方法偏差较大的误差,可以用来评估一个模型的稳定性;MAPE不仅考虑预测值与真实值的误差,同时更能显现出误差与真实值的比率。

假定预测值为x={x1,x2,…,xn},真实值为y={y1,y2,…,yn},四种指标的计算公式分别为:

(13)

(14)

(15)

(16)

除了以上四种评价模型的指标,还有训练误差和测试误差也是用来做模型评价的指标。训练误差是模型在训练集上的误差平均值,它用来度量模型对训练集拟合的情况。训练误差大说明对训练集特性学习得不够,训练集太小则说明过度学习了训练集特性,容易发生过拟合;测试误差是模型在测试集上的误差平均值,它用来度量模型得泛化能力,测试误差越小越好。

4 算例分析

为了验证基于FWA-BP神经网络模型在光伏发电功率预测方面的预测性能,在选取相同的训练参数、采用相同的数据集的条件下,分别对BP神经网络、FWA-BP神经网络以及GA-BP神经网络的光伏发电功率预测模型进行训练和测试。

4.1 算例设计

本研究采用DC竞赛光伏发电输出功率预测数据,截取其中2018年全年数据作分析。数据集包括一天中8:00-17:00每15 min的辐照度、温度以及对应的光伏电站每15 min的历史发电功率。选取数据集中的前80%的数据作为训练数据集,对预测模型进行训练,选取数据集中后20%的数据作为测试数据集,用来对模型进行测试和验证。

4.2 算例仿真

运用FWA+BP算法训练的光伏发电功率预测模型的测试结果如图2所示。从图的预测曲线和实际曲线的重合程度来看,FWA优化BP神经网络模型的曲线重合程度较高,说明预测值是非常接近于实际值的。

为了验证文中提出的FWA-BP神经网络预测模型的优越性,实验还对单一的BP神经网络和GA-BP神经网络这两种模型进行预测,得到如图3所示的不同算法功率预测结果对比图和图4所示的预测误差对比图。

从图3可以看出,和单一的BP神经网络和GA优化BP神经网络相比,提出的FWA优化BP神经网络模型对光伏发电功率的预测结果更接近于实际值,能够较好地实现对光伏发电功率的预测。

图2 FWA-BP神经网络模型功率预测图

图3 不同算法功率预测结果对比图

在误差方面,分析图4可知,虽然不同的模型对于发电功率预测结果的误差均存在波动,但基于FWA-BP神经网络的预测模型误差波动较小,传统BP神经网络模型对于光伏发电功率预测的误差波动较大,基于遗传算法优化的BP神经网络模型对于发电功率预测的精度高于传统BP神经网络模型,同时低于FWA-BP神经网络功率预测模型。

进一步通过具体的预测误差指标分析,如表5所列,可以看出FWA-BP神经网络光伏发电功率预测模型性能最好。特别是在MAPE指标下,传统的BP神经网络预测模型对于光伏发电功率预测结果的平均绝对百分比误差为118.14%,GA-BP神经网络预测模型对于光伏发电功率预测结果的平均绝对百分比误差为33.80,而文中提出的FWA-BP神经网络预测模型对于光伏发电功率预测结果的平均绝对百分比误差为6.01%。与BP神经网络和GA-BP神经网络模型相比,文中提出的基于FWA-BP神经网络预测模型对于光伏功率预测的误差率分别下降了94.92%、81.82%。同时,FWA-BP神经网络模型的RMSE值为0.59,相较于其他模型更低,说明其最大误差也是比较小的。另外,FWA-BP神经网络的另一误差指标MSE值也最低,为0.35,说明相较于其他两个模型,FWA-BP神经网络光伏功率预测模型稳定性更好。

表5 模型预测误差指标对比

此外,BP神经网络的平均误差在0.012 5左右,在神经网络更新50次以后,更新权值,误差在逐步变大,说明BP神经网络优化已经达到了极值点,而遗传算法的训练集误差可以达到0.009,这说明神经网络在训练集上并没有达到最优,只局限于局部极值;烟花算法的测试误差和训练误差非常接近,都为0.013左右,说明烟花算法基本不存在过拟合的情况,这点使得基于烟花算法优化的BP神经网络的预测数据与真实数据之间的平均绝对百分比误差较小;遗传算法得到的训练误差为0.012 5,测试误差为0.015 8,与BP神经网络相比,测试误差较大,但遗传算法的平均绝对百分比误差比单独BP神经网络小,说明其误差分布比较均衡。相比于单独BP神经网络,遗传算法与神经网络的结合可以跳出局部最优解,但由于是在训练集上最优的解,在测试集上不一定最优。相比烟花算法,遗传算法的训练误差较小但测试误差较大,有过拟合的倾向。

5 结束语

为了保证光伏发电与电网电力供需的平衡,进一步提高光伏发电功率预测的精确度,文中提出了基于烟花算法优化的BP神经网络预测模型,通过数据处理和算法模型实验分析表明:

(1)通过数据归一化和相关性的计算分析,降低了数据的维度,从而减少了计算成本,而且为后期提高模型精度做了相关准备;

(2)通过引入烟花算法对BP神经网络的权重和阈值进行优化,解决了BP神经网络容易陷入极小值以及收敛速度慢的缺点,提高了预测精度;

(3)实验将FWA-BP神经网络模型与传统BP神经网络、GA-BP神经网络模型进行比较,结果表明,FWA-BP神经网络的预测结果更接近实际值,误差更小,模型更稳定。

猜你喜欢

烟花功率发电
“发电”
含风光发电的互联电力系统自动发电控制论述
破冰船推进功率与破冰能力的匹配性分析
放烟花
放烟花
“功率”练习
功和功率的常用计算方法
化解功和功率疑问
找只老鼠来发电