基于气象因素充分挖掘的BiLSTM光伏发电短期功率预测①
2020-07-25徐先峰刘阿慧陈雨露蔡路路
徐先峰,刘阿慧,陈雨露,蔡路路
(长安大学 电子与控制工程学院,西安 710064)
引言
太阳能作为环境友好型的可再生能源,应用前景一片明朗[1].因此,利用太阳能发电的光伏技术已成为我国应对世界能源危机和经济发展新形势的战略新兴产业.据统计,2018年,光伏发电跃居成为我国第四大主力电源,共发电1775亿千瓦时,同比增长50%,居世界首位[2].然而,光伏发电的输出功率受多种气象因素影响,表现出明显的间歇性、随机性和波动性,进而严重影响与其连接的电网稳定性[3].为确保光伏功率预测系统的预测精度,有效的光伏发电功率预测方法在电力生产方面占有举足轻重的地位[4].
现存的光伏发电功率预测方法,总体可归纳为两类[5]:基于物理模型的间接预测法和基于历史数据的直接预测法.后者因无需预测光照幅度,建模简单、预测成本较低,而得到大量应用.主要包括多元线性回归[6]、支持向量机[7](Support Vector Machine,SVM)和人工神经网络法 (Artificial Neural Network,ANN)[8].相对于传统的预测算法,人工神经网络具有良好的容错性,泛化能力好,适于拟合复杂的非线性关系,应用领域广泛.其中,文献[9]运用LSTM 单一模型预测,模型简单,精度一般;文献[10]建立基于DBN的短期光伏出力预测模型,达到较高精度的预测效果,但其输入变量的遴选是直接选取的,即未考虑除光照强度、温度等相关性较强因素以外的气象因子对输出功率的影响;文献[11]对不同发电站的输出功率进行预测时采用主成分分析法,预测准确度因气象因素的进一步利用得到了提高,但是只是主观上突出主要矛盾,规避次要因素的影响,相对缺乏客观实验结果支持.可见,现有方法抑或不考虑气象因素对光伏出力的影响;抑或主观采用仅反映预测对象某一或某几方面显著特征的方法进行预测,导致未能对多元气象因素进行充分挖掘、有效利用;再者因气象因素充分挖掘工作复杂等原因而将所有影响因素未加选择地全部作为预测模型的输入,未剔除相关性极小、甚至不相关因素,使得训练时间过长、预测精度不高.
为了充分挖掘气象因素对光伏出力的影响,有效利用深度学习技术在非线性拟合方面的优势,并稳定发挥复合模型强大的建模能力和显著的预测能力,本文提出一种基于气象因素充分挖掘的BiLSTM网络的光伏发电短期功率预测方法.在KNN算法的遴选机制下,采用马氏距离衡量各因素与发电数据之间的相关性,筛选出与输出相关性最强的K个气象因素,按序排列,优化样本.将重新构建的气象因素数据序列与历史发电功率作为BiLSTM预测模型的输入,训练并建立与出力值之间的映射关系,并以误差最小时对应的K值的预测结果作为最终的预测值.从而达到气象因素的充分挖掘,高效利用,进而提高预测精度的目的.基于实测数据的实验结果及对比结果表明,该方法具有高效的气象因素利用率、优渥的预测准确率,是一种有效的光伏发电功率预测途径.
1 KNN-BiLSTM光伏发电短期功率预测方法
本文所提的KNN-BiLSTM光伏短期功率预测方法,先利用KNN算法对原始气象数据进行相关性筛选,生成按与光伏发电功率相关性强弱排列的全新数据集;然后,将此数据集与历史发电功率一同作为BiLSTM的输入,依据评价指标,得出最佳K值的预测结果.图1为模型图.其中,拟采用的理论知识介绍如下.
图1 预测方法模型图
1.1 基于KNN的关键气象因素遴选模块
为充分挖掘气象因素对光伏功率的影响程度,因KNN算法具备强大的相似度问题处理能力,故采用KNN 构建关键气象因素遴选模块.其核心思想为:对于由气象数据及历史发电量构成的测试样本,从中选取目标光伏发电功率为参照样本,基于距离度量找出训练集中与参照样本最靠近的k个样本,然后综合参照样本及这k个“邻居”信息来进行预测.结合影响光伏发电气象因素的特点,在众多距离度量方法中,鉴于马氏距离具有独立于测量尺度,不受坐标之间量纲影响的特性,采用马氏距离来衡量待选取特征与发电功率之间的相关程度.其具体计算公式为:
式中,x0为光伏发电输出功率值,xi为数据集中第i个气象因素的检测值.
1.2 BiLSTM模块
BiLSTM,即双向长短期记忆神经网络,用其构建的预测模型具有良好的适应性,可以高效快速利用气象因素和历史发电功率数据,表现出卓越的光伏发电功率预测能力[12].
BiLSTM由正、反向LSTM结合形成,可对时间序列实现向前和向后两次LSTM训练,进一步提高特征提取的全局性和完整性.LSTM,即长短期记忆网络,在普通循环神经网络的基础上,通过加入的“门”结构(即遗忘门、输入门和输出门),显著改善了传统RNN存在的梯度消失、梯度爆炸以及长期记忆不足等问题,从而有效控制信息的流动量,学习到准确的长期依赖关系.因此,在处理时间序列的预测和分类问题中被广泛应用[13].其结构如图2所示.
LSTM中信息的传递须经过以下3个过程.
图2 LSTM模型结构
(1)信号的取舍.遗忘门将LSTM在上一时刻隐藏层的输出h(t-1)和当前的输入x(t)连接,在激励函数Sigmoid的激励下使输出值在[0,1]之间,决定是否让上一时刻所学信息C(t-1)通过或部分通过.0表示全部舍弃,1表示全部保留.具体公式如下:
式中,Wf为权重,ft为隐含层的输出.
(2)信号的更新.该环节包括3部分:首先是输入门通过Sigmoid层决定用于更新的信息o(t),然后利用tanh生成新的候选值i(t),最后将这两部分产生的值结合后进行信息的更新.具体公式如下:
(3)信号的输出.首先通过Sigmoid层得到一个初始输出o(t),然后使用tanh 将其值缩放,再将处理后的值与Sigmoid层的输出逐对相乘,最终得到模型的输出h(t).具体表达式如下:
若记t时刻正向LSTM输出的隐藏状态为ht1,反向LSTM输出的隐藏状态为ht2,则BiLSTM输出的隐藏状态ht:ht=ht1⊕ht2.
1.3 可能影响光伏输出功率的气象因素
光伏输出功率与太阳辐射强度、温度、湿度和风况等因素息息相关,但影响程度存在差异[14].然而实际中影响光伏发电功率的气象因素不止于此.列举本文中研究的可能影响光伏出力的气象因素如表1所示.
表1 气象因素列表
1.4 预测算法实现流程
依据BiLSTM神经网络在时序数据分析中强大的适应性,与KNN算法相结合,构建光伏出力短期预测模型,确定参数并进行训练测试,得出预测结果.预测流程图如图3所示.
图3 预测模型流程图
2 算例分析
为验证本算法的科学性和实用性,本文实验在Tensorflow1.8.0、Python3.6的运行环境下,并以某地区2010年1月1日到2010年12月31日的525 576光伏发电功率和气象数据为依托进行验证.数据采集周期为1分钟,除记录发电功率值外,每条历史数据还包括时刻、气温、湿度等信息.最后与经典的KNN预测模型[15]、BiLSTM网络模型、DBN预测模型[10]、以及PCA-LSTM预测结果[11]进行对比分析.
2.1 训练集和测试集划分
以2010年1月1日至2010年11月30日光伏发电数据及气象数据为训练集,以2010年12月1日至31日数据作为测试数据集用于验证模型的有效性.
2.2 性能评测指标
为了准确评估各类模型的预测效果,本文选用了3个评价指标,分别为:均方误差(MSE)、均方根误差(RMSE)、决定系数R2.各评价指标的表达式如下:
式中,yi实际光伏发电功率,为预测发电功率,为真实发光功率的平均值,N为测试集的大小.其中,MSE、RMSE的值越小,R2越接近1,表征模型的预测能力越好.
2.3 BiLSTM超参数确定
本文所提预测方法依附于BiLSTM模型强大的“记忆”功能,故该模型参数的设置是实现高预测准确度的前提.文献[16]指出,LSTM 主要由以下参数确定:输入层维数、输出层维数、输入层时间步长、模型的层数以及每层维数,BiLSTM亦然.其中,输入层维数即输入变量的个数,则该值等于每次输入BiLSTM模型的气象因素个数加1;输出层数值为1.输入层时间步长、模型的层数以及每层维数3项参数将通过控制变量法进行逐步调优,得出相应数值.
(1)输入层时间步长
输入层时间步长即用于预测当前时刻光伏出力的输入参数的长度.若该值过小,则不能充分发挥BiLSTM在解决时间序列长期依赖问题中的优势;反之,则因隐含层信息容量有限导致训练时间过长,准确率降低.图4为输入层时间步长对预测准确度的影响.由RMSE及R2结果可得,当输入时间步长为6时,预测效果最好.其含义为该分钟的光伏出力由前6分钟的气象数据和发电数据预测得出.
图4 不同时间步长下的预测结果
(2)模型的层数以及每层维数
模型的层数以及每层维数的选取对于最终的预测精度有直接影响.模型的层数越多,非线性拟合能力越强,但复杂度也会随之增加.确定模型的层数及其维数时,按以下实验步骤进行:第1步,确定单层模型时维数的最佳值并将其固定;第2步,增加一层隐藏层,并在第一步基础之上确定该层最佳维数;以此类推,预测误差最小时所对应的层数及其维数为模型最终参数.实验结果如图5所示.
图5 不同层参数下的预测结果
实验表明:模型的层数为2,维数分别为50、40时,BiLSTM模型预测性能最佳.最终BiLSTM模型相关参数设置如表2所示.
表2 相关参数设置
2.4 实验结果及分析
采用KNN方法实现影响光伏出力气象因素的遴选,达到高效利用相关因子提高预测准确度的目的.K值不同即选取的相关气象因素个数不同,将不同K值下选取的因子及训练结果记录如下.表3为不同K值遴选出的气象因素,表4给出了不同K值时的预测误差.
表3 不同K值遴选出的气象因素
表4 不同K值所得实验结果
由以上结果可得,当K=1时,选取的气象因素为THSW指数,即温度、湿度、辐射、风4个参数综合起来的参数.在该数据集所有的气象因素中,仅此特征含有与光伏发电功率相关性最强的因素——太阳辐射强度,则实验结果与1.3 中进行的理论分析完全吻合,再次验证该算法的准确性;当K=2时,选取的气象因素为THSW指数和Temp_Out(外界温度)项,可见温度是影响光伏发电的另一个重要因素;当K=10时,预测效果最佳,此时R2的值可高达0.981 37,说明合理高效利用气象因素对光伏出力的影响,有助于预测精度的提高:遴选出影响光伏发电功率相关性较强的气象因素作为输入,剔除相关性较弱的因子,实现光伏发电功率与气象影响因子关联关系研究的基础上,预测准确度也因此得以提高.结果显示,是否降雨、降雨量大小、以及气压与光伏出力相关性较弱,加入上述因素作为输入结果未升反降,为得到最佳预测结果,最终确定除此之外的10项气象因素为影响光伏出力的关键因素.
同时,本文利用KNN-BiLSTM方法得到的预测值与其实际值进行对比,如图6所示.图中,红色实线为预测功率,蓝色实线为实际功率.
图6 KNN-BiLSTM 仿真结果
2.5 对比试验
为了验证KNN-BiLSTM的有效性,与KNN、DBN、BiLSTM、PCA-LSTM相比,以完成对模型的评估工作,性能指标对比如表5,预测结果如图7.可见,采用任一指标衡量,本文提出的算法均具有最佳性能.再结合图7,可以看出DBN、KNN预测精度一般,在发电量峰值谷值均有较大偏差.而BiLSTM、PCALSTM 虽预测精度有所提高,但输出功率出现波动时偏差较大.所以,各项误差均有明显改善,优于其他模型.
表5 各算法性能指标对比表
图7 各算法仿真结果对比图
3 结论
本文采用KNN-BiLSTM方法通过历史光伏发电功率、气象因素作为输入,预测光伏出力,可得结论:
1)该方法有效解决了气象因素挖掘不深入、利用率不高等问题,实现了充分挖掘气象因素对光伏出力的影响,达到提高预测精度的目的.2)该方法考虑发电数据的时序性,选择BiLSTM作为模型的核心算法,结果表明,与KNN、BiLSTM预测模型相比,预测效果有较大提升;与DBN 及PCA-LSTM相比,具有更好的预测性能,预测误差更小,准确度更高.