杨凌帆,刘 倩,张雨金,周郅皓,周杭霞
(中国计量大学 信息工程学院,浙江 杭州 310018)
近年来,全世界电力能源消耗加剧,化石能源供应不足。太阳能作为一种重要的可再生能源,其转化为电能的用处得到了快速发展,正从独立的系统逐渐向大规模并网方向发展[1]。随着光伏发电并网数量的增加,光伏发电波动性和间歇性的特性势必会对并网系统的稳定性造成一定的影响[2]。尤其受太阳辐射强度、环境温度等因素影响,光伏发电的特性变得越发凸显,不利于电力系统的调度,给电网调度人员带来了困扰。为了减少光伏发电的接入对并网系统产生的不利影响,就需要对光伏发电进行预测,获得其未来输出功率的发展曲线[3],一方面利于电网调度人员的协调调度,提高电能资源使用率,另一方面提升电力系统运行的安全性和稳定性[4]。
目前国内外学者对光伏功率预测已有了一定程度的研究,研究的方法主要集中在时间序列法、回归模型法、灰色预测法[5]、人工神经网络法、支持向量机法、模糊预测方法[6]、小波分析法[7]等,最常用的三种方法是时间序列法、人工神经网络法和支持向量机法。大多国内外学者都会选用时间序列法作为光伏功率预测的主要核心思想,即根据时间序列所反映出来的发展过程、方向和趋势,进行类推或延伸,借以预测下一段时间可能达到的水平[8]。时间序列法在处理数据时间轴方面,工作量非常庞大,尤其是时间轴间隔没有规律的情况下,处理起来异常繁琐。更重要的是,输入数据受限制条件较多,预测某个时间点的功率,需要知道前一相同间隔时刻的数据。如文献[9]研究的是,根据网络流量时间序列具有时变、非特性的特征,导致传统时间序列预测方法预测精度比较低这一现象。该文献中的实验利用回声状态网络对网络流量进行预测,之后利用遗传算法对回声状态网络预测模型中的储备池参数进行优化。在光伏发电领域,庞大和凌乱的数据量中,想要得到相同时间间隔的数据,需要经过数据处理。目前深度学习(Deep neural network,DNN)在数据处理上,也是运用时间序列法,其中长短期记忆网络(Long short-term memory,LSTM)在时间序列上的运用最多。LSTM是根据前一段时刻的数据去预测一段时刻,里面包含了输入门、遗忘门和输出门。当一个信息进入LSTM的网络中,可以根据规则来判断是否有用。只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。另外,人工神经网络法(Artificial neural network,ANN)和支持向量机法(Support vector machine,SVM)是国内外学者使用较为频繁的两种研究方法,目前这两种方法的算法本质已经成熟,更多的是在人工神经网络法和支持向量机法与其他算法组合的混合模型上做研究,如最近出的一篇文献[10]针对LS-SVM(Least squares support vector machines,LSSVM)在处理大规模数据集难以得到最佳模型这一问题,提出了一种算法搜索步长和搜索的方向这两方面进行改进的人群搜索算法(Improved seeker optimization algorithm,ISOA)对LS-SVM建模过程中的模型参数进行优化选择参数,改进的人群搜索算法是一种混合迭代寻参算法。文献[11]研究的是不同的数据预处理技术应用于输入数据集的PV功率提前预测的准确性,首先应用小波分解和主成分分析来分解用作预测输入的气象数据,将最小二乘支持向量机(LS-SVM)和数据处理组方法(Group method of data handing,GMDH)相结合,组成的G-LS-SVM(数据处理组最小二乘支持向量机)的时间序列预测方法应用于预测当天的光伏发电功率。文献[12]研究的是,为了使无限传感器不受攻击者捕获和操控,提出了一种改进的支持向量机多分类算法,该方法将Hadamard算法和稀疏型随机编码算法的思想与支持向量机结合起来。文献[13]研究的是,用空气温度和太阳总辐射率作为输入数据,两组数据各自通过文献中的动态人工神经网络模型,预测得到后一个小时的空气温度和太阳总辐射率,将得到的这两组数据运用哈恩大学开发的基于人工神经网络的方法,得到光伏发电的输出功率。文献[14]利用BP网络预测辐照度、温度、云层覆盖,从而间接的预测光伏发电量。
本文提出了一种基于梯度提升决策树(Gradient boosting decision tree,GBDT)特征重要性选择的粒子群(Particle swarm optimization,PSO)和支持向量机结合的集成模型预测方法。首先采用梯度提升决策树算法分析影响光伏发电的多种因素及各因素之间的相互联系,其次采用天数作为单位,组成6个SVR弱学习器,每个回归支持向量机模型的参数利用自适应粒子群算法进行寻优,最后运用改进的粒子群算法优化集成方法中个体分类器的权重。本文采用实测数据进行算例分析,分别从多种误差比较和与传统方法做对比两个方面对本文模型进行验证,以体现本文混合模型的优势。
GBDT是一种基于Boosting框架的算法[15],但是与传统的Adaboost有很大的区别。GBDT弱学习器只能用分类回归树(Classification and regression tree,CART)模型,同时迭代的方法和Adaboost也所不同。该算法本质上是梯度下降算法(Gradient boosting,GB)和决策树(Decision tree,DT)混合构建的。
假设一颗决策树的叶子节点个数为T,该决策树是由所有叶子节点对应的值组成的向量w∈RT,和一个把特征向量映射到叶子节点索引的函数q:Rd→{1,2…,T}组成的。所以,决策树可以被定义为ft(x)=wq(x)。
决策树目标函数采用平方损失函数,可以写成
(1)
假设树的结构是固定的,即叶子节点索引函数q(x)确定,令函数Obj(t)的一阶导数等于0,即可求得叶子节点j对应的值为
(2)
特征j的全局重要度通过特征j在单颗树中的重要度的平均值来衡量:
(3)
其中,M是树的数量。特征j在单颗树中的重要度的如下:
(4)
粒子群算法是一种仿生学模拟鸟类运动规律的优化算法[16],其算法的本质是基于群体的迭代进化算法,根据鸟类个体对历史最佳位置的记忆,通过现有群体的空间位置改变下一次的群体的空间位置。
每次迭代速度的更新公式:
Vid=ωVid+C1random(0,1)(Pid-Xid)+
C2random(0,1)(Pgd-Xid)。
(5)
上述公式中,ω称为惯性因子,C1和C2称为加速常数,一般取常数;random(0,1)表示区间[0,1]上的随机数,Pid表示第i个变量的个体极值的第d维。
每次迭代位置的更新公式:
Xid=Xid+Vid。
(6)
Vid为式(11)的更新速度,每次更新的速度都必须限制在一定范围内。
支持向量机算法由Vapnik等人在1995年的时候提出的,其算法的目的是寻找一个超平面来对样本根据正例和反例进行分割。
在样本空间中,划分超平面可通过如下线性方程来描述:
g(x)=wTx+b=0。
(7)
SVR的问题形式化为
(8)
(9)
(10)
(11)
(12)
C=αi+μi,
(13)
(14)
将上述四式代入式(16),可以得到式(15)的对偶问题,得:
(15)
将式(17)代入式(13),得回归模型:
(16)
若数据非线性可分,引入核函数k(x,xi)代替内积计算,则回归模型可表示为
(17)
其中k(xi,xi)=φ(xi)Tφ(xj)是核函数。
本实验创新点为模型构建:第一,特征选择方面,采用GBDT算法得到不同训练数据中因素的特征重要性高低关系图,用特征重要性高的因素组合作为训练数据,排除了主观意识选择的发电影响因素;第二,在预测模型构建方面,采用国内外都没有采用过的方法处理训练数据去训练构建预测模型。
目前国内外研究把外界环境气象因素当作首要因素训练预测模型,普遍认为光伏电板组件接收到的光照强度是光伏发电的直接原因,是影响发电输出功率的重要因素[17]。许多实验结果表明,在一定光照强度范围内,发电输出功率随着光照强度的增加而增加。文献[18]实验得出,太阳高度角、太阳光照强度和天空云量是影响光伏发电的主要气象因素。太阳高度角由光伏电板组件所在的地区、光伏电板的倾斜角、时间,以及季节等因素决定。太阳光照强度是指在地面上单位面积所接收到的太阳辐射流量。天空云量能够决定到达地面的辐照强度。还有其他很多文献得出,温度、风力、湿度等也为光伏发电的影响因素。
上述众多文献实验得出的光伏发电影响因素,给后来的学者带来了一种固定的研究思维,其研究的实验数据但凡拥有这类光伏发电影响因素的数据,学者总会凭借前人的文献经验,将这类数据直接归为训练集;但是,将这些维度的数据一起归为训练集容易产生问题,这么多维度的数据一起作为训练集,不一定会得到较好的训练模型,并且其中一维或多维的数据有异常,会导致对最后精确性产生影响,更有可能的是,这些维度的数据与其他光伏发电因素组合反而会得到更精准的预测值。
光伏发电并网涉及到三相逆变器的使用[19],并且得到本实验数据的光伏电站,采用的是三相控制器。本文研究的实验数据包括温度,两路直流电流和直流电压的输入,三相交流电的电流、电压、频率和相位。本文排除经验法的引用,采用GBDT算法就多维度数据找出其因素数据与目标值的重要性关系。因素重要性最高的为百分之百,剩余因素的结果都采用百分比的形式展示。如图1。
图1 发电影响因素重要性Figure 1 Importance of PV power influence factor
由上述分析可知在本组实验数据中,温度这列数据与发电功率的相关性不大,按照经验法的做法,是会直接选择温度这一因素作为训练集,或者再选择其他数据相组合作为训练集训练模型;然而,通过事实证明本实验数据中的温度不是影响发电功率的重要因素,用温度这列数据作为训练集得到的预测误差很大,不适合作为训练集训练模型。而且通过实验还得出重要性结果值在70%以上的因素不同的组合生成的训练集训练的模型会有更好的精度。
本预测模型多次运用GBDT算法和PSO算法构建而成。GBDT-PSO-SVR集成预测模型框架如图2。
图2 GBDT-PSO-SVR集成预测模型框架Figure 2 GBDT-PSO-SVR ensemble prediction model framework
在得到光伏发电历史数据集后,首先将每天的数据分开,得到各天的光伏数据,通过GBDT算法找出影响各天的发电功率的因素;其次取每天数据的前90%作为训练集,数据的后10%作为测试集,运用SVM算法建立模型。建立模型完成之后,采用改进的PSO算法以MAPE误差指标作为适应度,寻找每个SVM模型的最优参数,再次提取出MAPE误差最小的一天的光伏数据,作为测试集,剩余各天天数的光伏数据作为训练集,运用SVM算法建立模型。建立模型完成之后,采用改进的PSO算法以MAPE误差指标作为适应度,寻找每个SVM模型的最优参数,得到各天的MAPE误差结果,以MAPE误差值0到1的相互组合,1到2的相互组合,2到3的相互组合。以此类推,此分类组合方法依据线性可分的数据集与线性可分的数据集组合得到的数据集更加趋向可线性分类;而线性不可分数据集组合得到的数据集,增加了数据维度和整体的数据量,可以更好的通过超平面找到高维数据切割面[20]。本实验数据用此组合方法,得到了6个PSO-SVM模型。然后因PSO算法在寻找6个弱学习器的权重时,无法使每次迭代后的权重和为1,所以对PSO算法做出改进,最后得到本研究的预测模型。
上述构建模型中,以MAPE误差值最小的一天的光伏数据作为测试集,剩余天数作为训练集,建立SVM模型,得出剩余天数的MAPE误差值的思想是认为MAPE误差值最小的那天一整天的光伏发电功率稳定,外界因素干扰最小,并认定那天为相对晴天。以相对晴天的数据作为测试集,得出的剩余天数的MAPE误差,可以通过MAPE大小判断出剩余天数中哪些天数受外界因素干扰严重,哪些天数受外界干扰小。上述构建模型过程中,MAPE误差值小的测试集数据可以认为是相对线性可分的,而MAPE误差值大的测试集数据可以认为是相对线性不可分的。以MAPE误差值大小为标准的数据组合方法的思想是线性可分的数据相互组合,同时相对线性不可分的数据也进行组合,以这种方法组合成的数据所建立的弱学习器[21],都含有不同的训练效果,具有集成学习中弱学习器多样性的特点。根据上述构建过程,以相对晴天的数据作为测试集,则MAPE误差值小的训练集数据也可以理解成是偏向晴天的数据;相反,MAPE误差值大的训练集数据可以理解成是偏向阴天或者雨天的数据。
本文采用平均绝对百分比误差MAPE、平均绝对误差MAE、均方误差MSE和拟合优度R2来评价模型的预测能力。
(18)
(19)
(20)
(21)
(22)
其中xmodel为模型预测值,xactual为实际值,
(23)
本文数据来自浙江绍兴地区某小型光伏电站的实测监控数据,该电站每6分钟记录温度,两路直流电流和直流电压的输入,三相交流电的电流、电压、频率和相位,由于本实验多次运用改进的PSO算法,造成实验运行时间过长,需要减少实验数据。本文选用2017年12月的光伏数据来训练预测模型,考察该模型与其他模型的优劣势。
本文寻SVM模型最优参数的改进PSO算法,是通过将定值的w参数(惯性权重)改成二次项不定值,每次迭代w的值都不同,当迭代越接近结束时,w的值越接近0,其作用防止PSO算法在迭代寻最优参数过程中,陷入局部最优,如图3。
图3 改进PSO算法与传统PSO算法对比Figure 3 Comparison between improved PSO algorithm and traditional PSO algorithm
以2017年12月的光伏数据作为实验数据,运用BP算法构建模型,PSO算法寻优BP模型的权重,相对晴天的数据为测试集。图4中纵坐标为功率,横坐标为一天间隔6分钟的次数。模型预测结果如图4。
图4 GBDT-PSO-BP模型发电功率预测曲线Figure 4 Prediction curves of GBDT-PSO-BP model
以2017年12月的光伏数据作为实验数据,采用GBDT找出发电因素的重要性,建立PSO-SVM模型。如图1,实验结果得到,当训练集为交流电流1与直流电流4两维数据时,得到的预测模型的预测效果最好,测试集为相对晴天。图5中纵坐标为功率,横坐标为一天间隔6分钟的次数。模型预测结果如图5。
图5 GBDT-PSO-SVR模型发电功率预测曲线Figure 5 Prediction curves of GBDT-PSO-SVR model
以2017年12月的光伏数据作为实验数据,运用本研究方法构建的GBDT-PSO-SVR集成模型,预测相对晴天的数据。模型预测结果如图6。
图6 GBDT-PSO-SVR集成模型发电功率预测曲线Figure 6 Prediction curves of GBDT-PSO-SVR ensemble model
三种模型预测的平均绝对百分比误差MAPE值和拟合优度R2值如表1。
表1 三种模型平均绝对百分比和拟合优度
由表1、图3、图4和图5可以看出本文提出的基于GBDT-PSO-SVR集成模型相较于其他2个模型来说预测精度提升显著,特别是R2系数这项,GBDT-PSO-SVR集成模型预测的曲线极度拟合测试集曲线。从RMSE和MSE两项误差指标可以看出,GBDT-PSO-SVR集成模型预测值中与测试集中的目标值相比异常值与其他两个模型来说少了很多,该模型更加接近预测曲线。因此由GBDT-PSO-SVR模型、GBDT-PSO-BP模型和GBDT-PSO-SVR集成模型的预测效果对比,可以得出,本实验构建模型的方法有助于提升预测效果。
光伏发电预测有助于解决随机发电与随机用电两组互不相关变量的实时平衡的问题,有利于帮助电网工作人员完成协调调度工作,从而更好的维护电网长久运作的安全和稳定。本文基于光伏实测数据,通过分析数据中多种因素对光伏系统发电量的影响,提出了一种基于GBDT-PSO-SVR集成的预测模型。仿真结果分析得到以下结论。
建立预测模型时,训练集无需考虑数据的天气类别,可通过上述构建模型方法中的数据组合方法归分数据。建立预测模型完成后,同样无需考虑测试集中的天气类别。
该模型以当前时刻,预测下一个6分钟时刻的发电功率数据,所得到的预测模型具有比较准确的预测能力和较强的适用性。