基于LSTM网络的光伏发电功率短期预测方法的研究
2021-05-27宋绍剑李博涵
宋绍剑,李博涵
(广西大学 电气工程学院,广西 南宁530004)
0 引言
由于光伏发电功率具有随机性和波动性等特性,因此,大规模光伏发电并网会造成电网功率剧烈波动,严重影响了电网系统的安全稳定运行以及调度规划[1]。精准预测光伏发电功率有利于电网调度人员合理调整发电计划、维护电力系统的稳定运行。
目前,光伏发电功率预测方法有两种,分别为基于物理模型的直接预测方法和基于历史数据的间接预测方法[2],[3]。直接预测方法主要依托天气数值或气象云图等信息预测发电功率,所用的模型有天气数值模型[4]、地基云图模型[5]以及天气数值与云量图像相结合的预测模型[6]等。直接预测方法需要准确的天气预报信息、电站地理信息和大量的天空图像信息,且对采集设备和采集方式有较高的要求,导致该预测方法的鲁棒性较差。同时,直接预测方法所用模型具有无法获取时间相关性信息、缺少对历史数据的记忆能力等缺点。间接预测方法包括时间序列法[7]、回归分析法[8]等统计方法和人工神经网络[9]、支持向量机[10]等人工智能方法。间接预测方法能够克服直接预测方法对物理机理掌握不足等困难,适用于光伏短期、超短期功率预测。长短期记忆(Long Short-term Memory,LSTM)网络是一种具有时序记忆功能的递归神经网络(Recurrent Neural Networks,RNN),将其应用到光伏发电功率预测领域成为当前的研究热点。文献[11]首次将LSTM网络应用到光伏发电功率预测中,分析结果表明,加入具有记忆能力的神经网络能够有效提高预测精度。但由于此类研究尚处于起步阶段,相关的研究较少,因此,基于LSTM网络的预测方法仍然须要进一步优化研究。
本文建立了一种基于LSTM网络的光伏发电功率短期预测模型(以下简称为LSTM网络预测模型),利用LSTM网络的历史记忆能力和人工智能算法的自学能力,进一步提高该模型的预测精度和适应性能。在原始数据预处理过程中,本文依据日照晴朗指数将天气类型量化为[0,1]内的数值;然后,依据光伏电站当地气候特点将样本数据进行季节标识;接着,为了降低输入数据序列维度和模型复杂度,本文采用主成分分析法(Principal Component Analysis,PCA)对多元影响因素数据进行处理、分析,并筛选出累计贡献率排名前8位的主成分作为本文模型的输入,并结合历史发电数据对LSTM网络预测模型进行训练和测试;最后,将本文模型的预测结果与基于误差反向传播(Back Propagation,BP)的短期预测模型(以下简称为BP网络预测模型)和不带记忆能力的RNN网络短期预测模型(以下简称为RNN网络预测模型)进行对比分析。分析结果表明,本文方法对时序数据预测具有较强的鲁棒性、预测结果更加准确,为电力调度部门调整发电计划提供更有力的保障。
1 光伏发电功率的主成分分析
1.1 影响光伏功率输出的关键因素
光伏发电功率的随机性、波动性等特征大大增加了预测难度。影响光伏发电功率的因素较多且复杂,主要分为两类:一类是由电气零件老化、参数设置、内部损耗和安装角度等光伏电站内部因素导致的;另一类是由太阳辐射强度、温度、风速、季节特性等外部气象因素导致的。由于光伏电池在出厂时已进行了各项检测,安装角度和使用年限也是依据国家规定标准执行的,因此,转换效率等参数差别不大,于是本文将光伏电站内部因素作为可控常量,仅把环境温度、太阳辐射强度、天气类型等外部气象因素作为光伏发电功率预测的主要影响因素。为保证模型预测结果的准确性,在建立光伏发电功率预测模型的过程中,应全面考虑有关气象因素的影响,但因这些气象因素影响强度不同,过多输入影响强度较低的气象因素反而会增加数据冗余,对预测结果不利。另外,有些气象因素之间存在一定的耦合性,而另一些气象因素之间相互独立,单纯将某一气象因素与光伏发电功率做相关性分析和筛选,会在一定程度上造成该气象因素的隐含价值信息疏漏。综上可知,采用PCA对主要影响因素进行处理,既能提取有价值的信息、保证预测精度,又能降低输入变量维度、节省运算时间。
1.2 主成分分析
PCA将m维空间内的因素群投影到p维空间上(p<m),在包含原始数据信息的同时,将各因素整合重组构成新的、维度较少的主成分数据,计算步骤如下[12]。
①定义元素矩阵X=(x1,x2,…,xm)由m个因素,n组样本数组成,则X的原始矩阵可表示为
②原始矩阵中变量xi与xj的相关系数rij(i,j=1,2,…,m)和相关系数矩阵R的计算式分别为
式中:I为单位向量。
累计贡献率阈值的表达式为
式中:λj为特征根。
④将初始样本数据序列投影到p个特征向量构成的新序列,该新序列的主成分表达式为
式中:Yij为降维后的p维主成分;ej为特征向量。
累计贡献率阈值a的取值根据原始数据维数和降维后试验精度的要求确定,由于降维后的数据矩阵既要包含原始数据的大部分有效信息,又要具有降维作用,因此,本文选取累计贡献率在85%~95%的维度作为PCA的降维参考维度。主成分表征数据转换到新维度中的维度信息,并不对应初始各维度中原始变量的物理含义[13]。
2 长短期记忆神经网络
2.1 LSTM网络结构
LSTM是一种以循环神经网络RNN为基础并加以改进的深度学习算法,其核心思想是将数值为小数的梯度由连乘形式变为累加形式,该方法可使LSTM在处理长期时序信息时解决梯度消失的问题。LSTM神经网络结构与RNN相似,均由输入层、隐藏层和输出层组成。LSTM神经网络结构示意图如图1所示。图中:xt-1,xt,xt+1分别为t-1,t,t+1时刻的网络输入变量;ht-1,ht,ht+1分别为t-1,t,t+1时刻输出的短期状态;ct-1,ct分别为t-1,t时刻的网络记忆状态;ft,it,ot分别为遗忘门、输入门和输出门;σ为sigmoid激活函数;gt为更新t时刻输入状态的控制门。
图1 LSTM神经网络结构示意图Fig.1 Schematic of LSTM neural network structure
由图1可知,LSTM中模块A读取输入xt,并输出ht,信息从上一个步骤传递到当前步骤进行计算。与RNN不同的是,LSTM的模块A中添加了由3个“控制门”单元和时间记忆“传送带”组成的记忆模块。3个“控制门”分别为遗忘门ft、输入门it和输出门ot。遗忘门负责筛掉须要丢弃的信息;输入门负责决定输入新信息的数量;输出门负责输出状态信息的位置。3个“控制门”是由sigmoid激活函数σ和一个逐点相乘的连接,实现对信息的控制。在信息传输过程中,ct-1通过遗忘门和输入门的信息处理更新自身状态变为ct;然后,由tanh函数对ct进行处理,处理结果与ot输出项相乘,确定LSTM中模块A须要输出的结果,该结果与ct一同输送到下一模块中。网络运算过程中,ct与输入信息共同决定输出信息的同时,ct自身状态也在不断更新。携带记忆信号的ct,解决了RNN网络梯度消失的问题,使得LSTM神经网络能够真正有效地利用时序信息,各隐藏层之间的相互联系使ct在时序数据分析中有很强的适应能力,LSTM记忆模块如图2所示。
图2 LSTM记忆模块Fig.2 Memorymodule of LSTM
2.2 LSTM网络的训练算法
LSTM神经网络的训练算法是一种随时间展开的反向传播算法 (Back Propagation Trough Time,BPTT)。LSTM神经网络的训练算法的具体步骤如下:首先,前向计算每个LSTM单元的输出值;然后,反向计算每个单元的误差项,利用相应的误差项计算每个权重的梯度;最后,权重通过梯度下降算法更新。LSTM训练流程图如图3所示。
3 光伏发电预测模型设计
3.1 数据处理
图3 LSTM训练流程图Fig.3 Process of LSTM network training
在实际预测过程中,存在由于设备故障、人为失误、极端天气等因素导致数据样本出现信息异常或缺失,以及由于物理意义和单位量纲不同导致变量之间存在较大数量级差距的问题。为了解决上述问题,本文对原始数据样本进行缺失信息补充、归一化等预处理,该做法在提高模型预测精度的同时减少了运算步骤、提高了模型的训练效率。本文以2017年3月1日-2018年2月28日广西某额定装机容量为20MW的光伏电站的历史发电数据作为实验依据。发电功率采样时间间隔为30min。气象因素采用中国气象网和美国国家航空航天局(National Aeronautics and Space Administration,NASA)获取的太阳辐射强度、地表温度、天气晴朗指数等。
缺失信息分为数值型数据和非数值型数据。当缺失信息为数值型数据时,以该数据对应的气象因素的其他所有样本数据的平均值来补充缺失信息;若缺失信息为非数值型数据时,可根据统计学中的众数概念,以该缺失信息对应的气象因素中出现次数最多的信息补充缺失信息。将电站实测发电数据和对应日气象数据匹配后,通过归一化处理,可使各维特征限定在一定的范围内,以降低运算陷入局部最优化的概率,归一化公式为
式中:Xnorm为归一化后的数据;X为原始数据;Xmax,Xmin分别为原始数据集中的最大值和最小值。
由于天气类型属于描述性词汇,无法直接带入模型,而日照晴朗指数是受天气影响的一种无量纲量,不能完全替代天气类型带入模型,因此,本文以日照晴朗指数作为量化天气类型的依据。随机选取晴朗、多云、阴天、雨(雪)4种天气类型各50 d的光伏电站的日发电量数据组成样本集,利用该样本集和对应日的日照晴朗指数输出散点图如图4所示。
图4 各天气类型样本点与对应日的日照晴朗指数的关系散点图Fig.4 Relationship between weather types and insolation clearness index
以雨(雪)天气为例,由图4可知,散点分布对应的日照晴朗指数集中在[0.1,0.3],日照晴朗指数为0.15处的散点分布最为密集。4种天气类型对应的日照晴朗指数由小到大依次为雨(雪)<阴天<多云<晴朗。本文将天气类型按日照晴朗指数的平均值量化为[0,1]的离散数值。天气类型量化结果如表1所示。
表1 天气类型量化结果Table 1 Quantitative chartofweather type
除受气象因素影响外,光伏电站发电功率也会随季节更替发生变化。同种天气类型出现在不同季节,光伏电站发电功率也会不同。以多云天气为例,从数据样本中抽取不同季节多云天气时的光伏电站发电功率组成4组样本,每组样本取样时间均为15 d。不同季节多云天气类型光伏电站发电功率如图5所示。
由图5可知:夏季,光伏电站的发电功率高于其它季节;冬季,光伏电站的发电功率低于其它季节。为了进一步提高本文模型的预测能力,将光伏电站的历史发电功率与气象因素对应后,按季节对光伏电站的历史发电功率进行划分,基于日照时间夏长冬短,雨、旱季节分明等气候特点,以及光伏电站历史发电功率的分析结果,将本文预测模型对四季时长的定义进行了重新划分。
图5 不同季节多云天气类型光伏电站发电功率Fig.5 Power generation of cloudyweather types in different seasons
图6为广西1981-2010年各月平均环境温度曲线图。
图6 广西1981-2010年各月平均环境温度曲线图Fig.6 Historical temperature curve of eachmonth in sampling area
由图6可知,广西全年历史最低温度出现在1月和12月,4-10月温度偏高,2,3,11月为气温过渡月。根据中国气象局统计的广西气候特征显示,广西气候干湿分明,其中,4-9月为雨季,10月-次年3月为干季。结合气候特征和候温季节划分法,将预测模型定义的春季设置为2-3月、夏季设置为4-9月、秋季设置为10-11月、冬季设置为12月-次年1月,其中,夏季标识时长为6个月,其余3个季节标识时长均缩短为2个月。
3.2 模型参数设置
LSTM网络预测模型的输入层为多元数据序列,根据实际采集到的信息相关性分析,输入变量初始序列包含06:30-18:00时段,时间间隔为30 min的24个采样点发电功率(春季选取时段为06:30-18:00,其它季节时段选取稍有不同,但每天采样点数不变),结合采样日对应的地表温度、距地面2m处的温度、当日最高温度、当日最低温度、红外线辐射量、霜点、湿度、风速、天气类型以及季节标识信息,共计34维数据构成一天的输入变量初始序列。采用PCA对预处理后的输入变量初始序列进行分析,计算出序列中各主成分协方差矩阵特征值、方差贡献率和累计贡献率见表2。
表2 各主成分协方差矩阵特征值、方差贡献率和累计贡献率Table 2 Covariancematrix eigenvalues and variance contribution rate and accumulated contribution rate
由表2可知,前8个主成分累计贡献率为94.983%,前8个主成分可以涵盖原始样本数据序列的绝大部分信息,主成分个数继续增加后对应的累计贡献率增幅不大,因此,主成分数量设置为8个。将34维初始输入序列矩阵降维至新的8维矩阵中,输入层节点数设置为8。模型的隐藏层层数越多,其非线性拟合能力越强,但训练时间也随模型复杂度的提高而增长。经过多次训练可知,LSTM隐含层节点数为14的结构可以取得较好的预测效果,因此模型隐含层节点数设置为14。预测结果为待预测日06:30-18:00时间间隔为30min的发电功率,因此,预测模型输出层的神经节点数设置为24。
3.3 模型评价指标
由于决定预测模型精确性的评价指标较多,采取单一的评价指标容易受到计算误差的影响,因此,本文采用平均绝对误差MAE、均方根误差RMSE和相关系数R这3种误差标准分别对预测结果进行分析。MAE和RMSE值越小,R值越大表明预测效果越好。MAE,RMSE和R的计算式分别为
4 算例分析
为了检验LSTM网络预测模型的预测性能,从样本中根据不同季度随机抽取连续3 d的发电数据作为测试样本,其余作为训练样本。将LSTM网络预测模型反归一化的预测结果与基于BP和RNN网络搭建的预测模型预测结果进行比较,3种预测模型均采用同一数据集进行训练和测试。BP网络预测模型输入层节点数为PCA降维后的8个输入变量,输出层节点数与LSTM网络预测模型输出层均为24个,隐含层节点数依据经验公式计算得出合理范围,经过多次试验验证,最终设置为16个。RNN网络预测模型结构同理,输入层节点数为8个,输出层节点数为24个,经过反复试验将其隐含层节点数设置为11个。3组预测模型学习速率均设为0.01,训练的目标误差为1×10-4,最大训练次数为1×103次。图7为4个季节连续3 d测试样本的发电功率预测结果对比。
图7 不同季节下,3种模型连续3 d预测结果对比Fig.7 Comparison of threemodels for three consecutive days in different seasons
通过对比MAE,RMSE和R三者的结果分析预测模型的精度,3种预测模型预测四个季节的预测结果如表3所示。
以春季为例,BP,RNN网络预测模型预测结果的MAE分别为4.771和3.216,而LSTM网络预测模型的MAE降低到了1.657;BP,RNN网络预测模型预测结果的RMSE分别为7.34,5.29,LSTM网络预测模型的RMSE降低到了4.1。
为进一步验证LSTM网络预测模型在不同天气类型下预测光伏发电功率的准确性,在相同季节(春季)的样本中,再次随机选取4种天气类型各一天的发电功率作为测试样本,剩余样本数据作为训练样本。不同天气类型下3种网络预测模型的预测结果与实测发电功率数据如图8所示。
表3 3种预测模型四季的预测结果Table 3 Error results of three predictionmodels in four seasons
图8 3种模型在不同天气类型下的预测结果对比Fig.8 Comparison of threemodels in differentweather types
由图8可知,晴朗与多云天气条件下LSTM网络预测模型的预测结果明显优于BP与RNN网络预测模型,而阴天和雨天的预测结果相对稍差,故再次计算了4种天气类型中3组预测模型的MAE,RMSE,R进行比较,计算结果见表4。
表4 3种预测模型不同天气类型的预测结果Table 4 Error results of three predictionmodels in differentweather types
由表4可知,在晴朗和多云天气下,LSTM网络预测模型的预测误差明显低于其他两种预测模型;阴天和雨天的MAE小于4,RMSE小于5.5,R值为0.966,均优于BP和RNN网络预测模型的预测结果。
在光伏发电功率预测方面,本文基于LSTM网络搭建的预测模型的预测误差明显低于BP、RNN网络预测模型的预测误差,在不同季节的预测结果都具有良好的预测精度,由此证明了本文方法在时序预测方面的准确性,以及预测模型在恶劣天气条件下运算的鲁棒性,在光伏发电预测方面具有较为明显的优势。
5 结论
由于光伏发电功率数据具有时序性和非线性的特点,而传统的机器学习模型和物理模型无法同时兼顾这两个问题,使得预测精度较低。本文基于LSTM网络搭建的预测模型在训练和预测时,可以有效地保留或剔除历史训练产生的影响因素,使预测结果能够更好地体现数据信息的时序性。在预处理阶段按季节划分样本数据,经过对冗余信息处理后输入到预测模型中,提高预测模型的数据处理效率。将LSTM,RNN和BP网络预测模型均在划分好的数据集中比较试验,试验结果证明LSTM在预测光伏发电功率时具有更好的鲁棒性和泛化能力。