杨 琪,王维庆,2*,王海云,2,高 敏
(1.新疆大学 电气工程学院,新疆 乌鲁木齐830047;2.教育部可再生能源发电与并网控制工程技术研究中心,新疆 乌鲁木齐830047;3.国网阿合奇县供电公司,新疆 阿合奇843500)
煤矿、石油等能源日益枯竭,生态环境不断恶化,太阳能作为可持续发展的清洁能源备受关注,太阳能发电是太阳能利用的主要方式之一.光伏发电系统的输出功率与太阳辐射量密切相关,准确预测光伏系统输出功率是电网安全稳定运行的关键,因此太阳辐射量的准确预测尤为重要[1-2].
研究人员对光伏出力和太阳辐射量的预测做了大量的研究,文献[3]分析影响光伏出力的因素,建立基于BP神经网络的光伏发电短期出力的预测模型,但模型缺乏对输入量的优选,影响预测精度.文献[4]设计了基于相似日理论和BP神经网络的光伏阵列输出功率的预测模型,改善了预测精度.文献[5]建立了具有超强泛化能力的小波神经网络短期发电量的预测模型,进一步提高了太阳辐射量的预测精度,但需要大量与预测日相似的数据.文献[6]建立了基于气象预测信息以及 BP 神经网络的光伏功率预测模型,但没有对气象数据进行合理的预处理.文献[7]提出了基于蚁群BP 神经网络的太阳辐射强度的改进预测方法,但也忽略了数据的预处理.文献[8]用模糊理论结合支持向量机预测光伏发电量,但模糊集合的划分需要庞大的数据和经验.文献[9]提出了基于模糊聚类的预测算法,对光伏出力进行短期预测.文献[10]提出了基于模糊神经网络的光伏功率控制方法.文献[11]基于测试水平面及不同倾角斜面上太阳辐射量,提出了针对直接辐射转换系数的修正方法.文献[12] 提出了基于小波包-神经网络的预测方法,利用小波包变换对辐射强度序列进行多尺度分解.文献[13]提出了一种基于GBDT(gradient boosting decision tree)算法的短期负荷预测模型,GBDT算法可应用于电力预测领域.文献[14]提出了改进的 GBDT 短期负荷预测算法,算法具有较高的预测精度.
综上所述,现有的太阳辐射量预测重在算法改进,忽略了对原始数据的修正,预测结果存在一定误差.GBDT算法已运用于电力负荷预测领域,笔者拟将GBDT算法运用于太阳辐射量预测,提出一种相关性分析和GBDT组合的太阳辐射量预测算法.
相关性分析是对两个或多个具备相关性的变量进行分析,衡量变量间的密切程度[15].相关性一般分为:正相关、负相关和无相关.Pearson相关系数[16]能较好地表示变量的相关性,其表达式为
(1)
其中:sim(X,Y)表示变量X、Y间的相似度,i表示某变量的第i个样本,n为样本总数.
当sim(X,Y)大于0表示两变量正相关、小于0表示两变量负相关.当0<|sim(X,Y)|<0.5时,表示两变量低度相关;当0.5≤|sim(X,Y)|<0.8时,表示两变量中度相关;当|sim(X,Y)|≥0.8时,表示两变量高度相关.笔者利用相关性分析各气象因素与太阳辐射量的相关性,根据具体的相关性和实际情况,选择高度相关和中度相关的变量作为预测算法的最优输入指标.
梯度提升决策树预测函数[17]的表达式为
(2)
其中:x为输入样本,ht为第t棵回归树,ωt为回归树参数,ρt为第t棵回归树的权重.
对于N个样本, 预测函数的最优值为
(3)
其中:L为损失函数.
梯度提升决策树算法的迭代过程如下:
(1) 定义
(4)
其中:fi为弱学习器.
(2) 构造基于回归树的训练样本、目标函数分别为
(5)
L(yi,F(xi))=(yi-F(xi))2,
(6)
其中:(yi,xi)∈R×RN.
(3) 基于梯度下降方向,训练决策树,得到的拟合数据为
(7)
其最佳拟合数据为
(8)
(4) 求得梯度下降方向的最佳步长为
(9)
其中:ρt0为第t颗回归树的初始权重.
(5) 求得第t棵回归树的弱学习器为
ft=ρ*ht(xi,ω*).
(10)
(6) 迭代后的预测函数为
Ft(x)=Ft-1(x)+ft,
(11)
若损失函数满足误差收敛条件或得到的回归树的t值达到预设值,则迭代终止;若不满足,则继续迭代.
影响太阳辐射量的因素众多,且太阳辐射量与气象数据的耦合关系复杂,数据庞大冗余,需要挑选出与太阳辐射相关性较强的因素.
3.1.1 输入指标选择
影响太阳辐射量的相关气象数据主要有:平均晴空太阳辐射量、晴空日照比、平均日照比、地表最高温度、地表平均温度、地表最低温度、距地10 m最高温度、距地10 m平均温度、距地10 m最低温度、距地50 m平均温度、距地10 m湿度、地表湿度、相对湿度、地表风速、距地50 m风速、大气压强、站点海拔.对乌鲁木齐某地2017年全年数据做相关性分析,分析结果如表1所示.
表1 太阳辐射量影响因素的相关性
由表1可知,各影响因素与太阳辐射量的相关性有大有小、正负不同.选择相关性高度相关和中度相关的指标,对于低度相关的因素不予考虑,故最终选择平均晴空太阳辐射量、晴空日照比、平均日照比、地表平均温度、距地10 m平均温度、相对湿度、站点海拔、大气压强为该文预测算法输入量.
3.1.2 数据矫正
原始数据中存在大量的畸形数据,将原始数据直接作为预测算法的输入量会严重影响算法训练精度和预测结果.为给预测算法提供良好的数据,设计程序剔除原始输入中的粗大误差数据,剔除之后的数据作为新的输入量,流程如图1所示.
图1 数据矫正流程图
由图1可知,首先,输入数据,根据精度设置拟合曲线的参考方差Rf,设置拟合次数n(n从0开始);然后,程序自动对数据做n+1次拟合,计算每次拟合曲线的方差R,当拟合曲线方差R符合参考方差Rf的要求时输出拟合值yn;最后,对原数据做误差矫正,输出矫正数据y0,将其作为预测算法输入值.
相关性分析和GBDT组合的太阳辐射量预测算法流程如图2所示.
图2 组合预测算法流程图
组合预测算法步骤如下:
(1) 选取历史数据,分析各因素与太阳辐射量的相关性,根据相关性大小选取合适的输入量;
(2) 对选取的输入量进行预处理,剔除粗大误差数据;
(3) 将矫正后的数据输入GBDT预测模型Fn,设置抽样次数N,训练预测算法直到满足要求,停止训练并输出预测结果;
(4) 利用均值法得到最终预测结果.
利用MATLAB软件对太阳辐射量的影响因素做相关性分析及数据矫正,利用相关性分析和GBDT组合的太阳辐射量预测算法预测太阳辐射量.训练样本和预测样本均来源于乌鲁木齐某地太阳辐射量数据和气象数据.
若原始数据直接用于预测算法,将严重影响预测算法的精准度,笔者使用数据矫正方法对其进行矫正,以提高预测精度.图3为2017年乌鲁木齐大气压强数据矫正前后的对比.由图3可知,矫正值与原始值的曲线基本相同,仅部分数据有所不同,表明矫正方法不会过多改变数据原有的信息,只会对原始数据中少数畸形数据进行矫正.
图3 大气压强矫正前后的对比
平均晴空太阳辐射量、晴空日照比、平均日照比、地表平均温度、距地10 m平均温度、相对湿度、站点海拔、大气压强和太阳辐射量作为实验数据.以乌鲁木齐某地2017年太阳能辐射量数据和气象数据做训练样本数据,以该地2018年1月1日到3月20日的80组数据为预测样本数据,利用该文组合预测算法进行预测,预测结果如图4所示.由图4可知,预测值与实际值基本吻合,部分数据有偏差,总体预测效果良好.图5是预测值与真实值的相对误差,误差多数在10%以内,少数大于10%,极少数超过15%,预测精度达到要求.
图4 太阳辐射量预测结果
图5 太阳辐射量预测结果的相对误差
为验证该文组合预测算法的优越性,将该文算法的预测结果与BP神经网络、模糊神经网络、小波神经网络算法进行对比,结果如图6所示.
图6 预测算法对比
由图6可知,4种算法的预测结果整体趋势基本相同,但在预测精度上有一定差别,该文算法预测精度最高, BP神经网络算法预测精度最差.为定量分析预测算法的精度,分别计算4种算法预测结果的平均相对误差和均方根误差,结果如表2所示.
表2 算法误差分析
由表2可知,该文算法的均方根误差和平均相对误差均小于其他算法,分别为0.547 6和8.04%,而BP神经网络算法的最大,分别为0.740 4和39.08%;模糊神经网络和小波神经网络算法的预测精度均略高于BP神经网络.
笔者提出一种相关性分析和GBDT组合的太阳辐射量预测算法.相关性分析和数据矫正方法能有效处理误差数据.预测实例分析结果表明,相比其他算法,该文组合算法的预测精度更高,为太阳辐射量的高精预测打下了坚实的基础.