基于机器学习的光伏发电功率预测
——以金华市为例
2022-03-24王晓晨陈志华王剑强
张 波,王晓晨,周 旺,陈志华,王剑强
(国家电网金华供电公司,浙江 金华 321017)
1 研究背景
随着社会的快速发展,电力需求量越来越大。当前我国主要依靠火力发电,火力发电主要来源于煤、天然气和石油等化石燃料燃烧,但大量使用这些化石燃料已经造成了化石燃料的巨大消耗和环境污染问题[1-2]。鉴于这些事实,人们已经深入探索使用替代能源来满足电力需求,其中可再生能源(如太阳风、风能等)在全球范围内得到了极大关注。与传统能源相比,可再生能源具有温室气体排放极低、使用寿命长、成本低等优点,是一种环境友好型能源[3-4]。尽管近年来我国大力推进可再生能源,如太阳能和风能,但是发电量非常少[5-6],2020年国家更是出台了关于“碳中和碳达峰”的政策,目的是控制碳的排放量并大力发展新能源[7]。
太阳能发电主要分为太阳能热发电和光伏发电,其中光伏发电每年以较快的速度增长。然而,光伏发电依赖于各种因素,如气候条件、风压、湿度、太阳辐射、环境温度和组件温度。由于光照的随机性和昼夜的周期性,光伏电站发电具有典型的波动性和间歇性特征[8]。太阳能输出功率的突变会对电力系统的可靠性、稳定性和规划产生影响。为了避免这种情况的发生,需要对光伏发电功率进行准确预测。
光伏发电功率预测方法主要有3类。第一类是基于物理模型;第二类是传统的时间系列分析方法;第三类是机器学习算法。物理方法是根据光伏发电原理建立的数学模型,利用数值天气预报获得的太阳辐射、温度、湿度、云量、气压和风速,结合光伏系统安装角度、光伏阵列转换效率建立物理模型,然后直接计算光伏发电功率。物理预测模型不需要历史数据,仅依赖于详细的站点地理信息、准确的气象数据和完整的数据光伏电池的信息[9]。由于认知程度的关系,所建立的物理相关模型存在一定的误差,且模型需要依赖经验参数(阈值),而不同区域之间的经验参数不同,导致局部抗干扰能力差、鲁棒性弱[10]。
常用的统计预测方法有时间序列法[11]、回归分析法[12]、灰色理论[13]、模糊理论[14]、时空相关法[15]。统计方法是通过对处理过的太阳辐射、光伏发电出力等历史数据进行曲线拟合、参数估计和相关分析,建立投入产出数据之间的相关映射关系,从而实现对未来光伏发电产量的预测。与物理方法不同,统计建模不需要对复杂的光电转换关系有清晰完整的认识,对光伏系统进行初步的了解,仅通过数据分析技术实现。
然而,这种技术通常产生低精度的预测,也不能很好地处理非线性数据。鉴于机器学习具有高效提取高维复杂非线性特征并将其直接映射到输出的能力,因此已成为最常用的时间序列预测方法之一。Antonanzas等学者使用支持向量机(SVM)和随机森林(RandFore)机器学习技术预测光伏发电功率[16]。Leva等学者利用人工神经网络(ANN)基于天气预报数据预测每日的PV输出功率[17]。Wang等学者比较了深度学习模型,包括卷积神经网络、长短期记忆网络以及它们的组合,用于光伏发电功率预测[18]。文献[19]提出了一种基于ANN的太阳能发电预测模型,并在研究中选择气象数据作为模型的输入。结果表明,基于人工神经网络预测模型的预测性能优于一些典型的物理和统计预测模型。深度神经网络具有比浅层神经网络更高的特征提取能力,能显著改善浅层神经网络的梯度消失问题,已经被证明是时间序列预测的非常强大的工具。常见的深度神经网络(DNN)主要有卷积神经网络网络(CNN)、深度信念网络(DBN)、堆叠去噪自动编码器(SDAE)和长短期记忆神经网络(LSTM)、门控循环单元(GRU)、一维卷积神经网络(CNN1D)和其他混合架构[20]。Gensler等学者采用编码器和LSTM对光伏发电功率进行预测。结果表明,与众所周知的多层感知器网络(MLP)相比,Auto-LSTM具有较好的效果[21]。De团队提出了基于循环神经网络的LSTM算法进行光伏发电功率预测[22]。Mellit等学者对比了多种深度学习算法的光伏发电功率预测结果,这些算法包括长短期记忆(LSTM)、双向LSTM (BiLSTM)、门控循环单元(GRU)、双向GRU (BiGRU)以及混合一维卷积神经网络。结果表明,这些深度神经网络算法预测结果都很准,当预测时间窗口非常短时,预测更准确[23]。
本文将采用机器学习算法,包括4个传统机器学习算法和2个深度学习算法,预测金华市3个地区(万里扬发电站、领跑发电站、蒙牛乳业发电站)的光伏发电功率。因为光伏发电功率数据中没有天气信息,本文拟首先通过网络爬虫获取对应时间的天气数据,将这些天气信息作为输入,对不同类型天气预测光伏发电功率。
2 数据分析与预处理
2.1 数据概述
国家电网金华供电公司有浙江省金华市3个光伏发电站数据,分别是万里扬光伏发电站、零跑光伏发电站和蒙牛乳业发电站。时间段:2020年1月1日—2020年1月25日和2021年5月1日—2021年5月20日,以每5分钟记录的数据,其中2021年5月8日—2021年5月11日四天的数据缺失,因此一共有57 d以每5分钟记录的光伏发电功率数据。
由于光伏发电功率主要受天气影响,本文首先分析不同天气下光伏发电功率(MW)。不妨将晴天、晴天转多云设为“晴天”,将多云、多云转阴、晴转阴设为“多云”,将阴、晴转小雨、多云转小雨设为“阴”,将其他天气如阴转小雨、雷阵雨、大中小雨和其他恶劣天气设为“雨雪等天气”。从2020年1月1日—2020年1月25日和从2021年5月1日—2021年5月20日金华市这4类天气的天数分别为7 d、8 d、10 d和40 d。
为了预测4类天气光伏发电功率,本文分析4类天气的发电功率与时间的变化关系。不妨从数据集中随机选择5 d四种天气类型(见图1),可以发现晴朗的天气光伏发电较为稳定,而阴天和雨雪等天气光伏发电功率的波动性很大,表明光伏发电功率受天气影响非常大。从图1中可以看出一般6:00以后光伏发电站才能收集到发电数据,19:00以后几乎收集不到发电数据,表明光伏发电时间段集中于6:00—19:00。
图1 四类天气的每5分钟的光伏发电功率(MW)(随机选择5 d数据)
为了更准确地预测光伏发电功率,本位期望预测出每5分钟的光伏发电功率。通过网络爬虫,获取了每小时的天气信息,包括湿度(humidity)、AQI(空气质量指数)、weather(天气)、wind(风向)、winp(风速)、temp(温度:摄氏度)。前5行数据如表1所示。
表1 爬取的金华市2020年1月1日前5小时的天气数据
本文仅仅能爬取每小时的天气信息,同时假设每小时内天气变化不大,为了能匹配光伏发电站以每5分钟收集的数据,将爬取的天气数据复制12次,即每小时内的天气信息相同。理论上光伏发电与光照强度非常相关,但是笔者爬取不到光照强度数据。因此拟通过上述特征作为输入,预测每5分钟的光伏发电功率。
2.2 数据预处理
1)数值类型Z-score标准化方法。
(1)
2)字符类型特征数值化方法。基于某个特征,找出所有不同的字符串及个数,将不同字符串用整数标号,最后再对这一特征进行Z-score标准化处理。
3 光伏发电预测研究
本文采用6种算法预测网络异常行为和预测安全威胁等级,分别为贝叶斯算法(Byes),K最近邻算法(KNN),支持向量机(SVM),随机森林(RandFore)以及2个深度学习算法,即多层人工神经网络(BP)和双向循环神经网络(Bi-LSTM)。
这些算法可以从Python中的第三方库直接调用。对于贝叶斯算法(Byes),K最近邻算法(KNN),支持向量机(SVM),随机森林(RandFore)4种算法,本文直接用默认参数,对于BP和Bi-LSTM算法,采用3个隐藏层,每层神经元数量为64个,最后一层采用全连接层。为了减少或避免进入局部最优解和过拟合,dropout设为0.2,即随机将20%的神经元当作遗忘。运算批量大小batch_size为200。
为了研究预测效果,给出3种预测准确度的评价指标,分别为均方根误差RMSE,平均绝对误差MAE,R2分数。
均方根误差(RMSE):用于刻画预测值存在多大的误差。其计算公式如下:
(2)
平均绝对误差(MAE):用于评估预测值与真实值之间的平均绝对误差,与RMSE一样,MAE值越小越好。其计算公式如下:
(3)
R2分数(R-Squre score):反映预测结果大概有多准。其定义如下:
(4)
其中,R2≤1,其值越大预测得越准。当R2小于0时,表示预测结果非常差。
基于上述算法和评估指标,对4类天气以每5分钟为单位的光伏发电进行预测。不妨选择2020年1月8日(“晴天”)、2020年1月20日(“多云”)、2020年1月22日(“阴”)、2021年5月17日(“雨雪等”)四天作为测试集进行预测,其他数据作为训练集。如表2所示,从3个指标的结果揭示Bi-LSTM算法占据绝对优势,除了2020年1月22日中的BP算法在MAE指标高于Bi-LSTM外,其他所有数据都显示Bi-LSTM更好。其他4个传统机器学习算法中随机森林预测结果更准,之后是最近邻KNN算法,贝叶斯Byes和支持向量机SVM两个算法预测结果较差。此外,笔者还发现,“晴天”和“多云”2类天气预测得更准,而“阴”和“雨雪等”2类天气预测结果相对较差,R2指标甚至出现负数,表明预测结果很差。
表2 基于不同光伏功率预测算法下的3种评估指标结果
为了更好地显示和对比各类算法的预测结果,笔者给出上述各类天气的可视化预测结果和真实结果对照图,这里仅仅展示“多云”和“雨雪等天气”的预测结果,如图2和图3所示。从图2中可以明显看出BP和Bi-LSTM两种算法的预测结果明显好于其他4种,尤其是Bi-LSTM算法的预测结果显示在光伏发电功率的最高值时有点偏差,其他时刻预测非常准确。Byes算法和SVM算法预测结果非常差。
图2 六种算法对2020年1月8日(“多云”)光伏发电功率P(MW)预测结果
图3 六种算法对2021年5月17日(“雨雪等”)光伏发电P(MW)预测结果
2021年5月17日“雨雪等天气”各算法光伏发电功率的预测结果(见图3),明显可以看出,除了Bi-LSTM算法预测结果与真实值比较吻合外,其他算法预测的结果都非常糟糕,虽然BP算法在前面的例子中展现了较高的预测准确度,但是在本例子中预测也非常差,其主要原因可能是没有捕捉到时间系列特征,而Bi-LSTM算法能很好地对前和后2个序列的特征进行捕捉,因此Bi-LSTM算法预测得更准。
4 结语
光伏发电系统的出力受天气、气候等因素影响较大。这些特点给高比例光伏接入后的电力系统带来了新的挑战,如增加了电网调度的难度和复杂性。本文利用4个传统的机器学习算法和2个深度学习算法研究对金华市3个光伏发电站的光伏发电功率进行预测。发现“晴天”和“多云”2种类型天气的光伏发电功率随着时间呈现较为稳定的正态分布,而“阴”天和“雨雪等天气”波动较大。针对这种情况,笔者爬取了天气数据,将天气数据作为输入特征,基于6种机器学习算法预测各类型天气的每5分钟光伏发电功率,模拟结果揭示,双向循环神经网络(Bi-LSTM)算法的预测结果最好,也最稳定,此外,“晴天”和“多云”2种类型天气的预测结果比“阴”天和“雨雪等天气”预测结果更准。
已有研究发现光伏发电功率与光照强度非常相关[24]。本文并没有爬取到光照信息,如果有光照信息,预测结果很可能会进一步提高。不少研究结果揭示采用混合算法,可能会得到更好的预测结果[25]。如Liu等学者提出了基于变分模态分解、奇异谱分析、LSTM网络和ELM的混合模型,用于提高预测精度和鲁棒性[26]。Wang等学者提出了一种小波变换和CNN相结合的混合预测模型,实现了对确定性和概率光伏功率的直接预测[27]。未来将尝试采用混合算法预测光伏发电功率,找出预测结果更准确的算法。