基于数值天气预报的光伏电站天气类型预测方法
2020-12-28牛继涛肖海涛
牛继涛,肖海涛
(1.国网河南省电力公司电力调度控制中心,河南 郑州 450018;2.北京东润环能科技股份有限公司,北京 100089)
0 引言
太阳能是理想的可再生能源之一,近些年来我国光伏电站装机容量也在不断增加[1]。但是现代储能技术不能储存大量电力,从发电企业到电网再到用户都是即发即用的模式。光伏发电存在间歇性,随机性和波动性,对电网冲击大,随着光伏电站大规模并网[2],大量不稳定的电量涌入电网有可能导致电网瘫痪。为了电网安全稳定运行,提高光伏功率预测精度具有重要的意义[3]。相似日在光伏短期预测上是光伏功率预测研究者热议的话题[4]。基于数值天气预报数据做无监督学习的一些传统方法,缺乏主动性、没有考虑到数值天气预报其本身的准确性、无法对每个气象类型进行有效识别、对于大量历史数据中存在的低质量数据无法剔除,很难保证算法在工业上能够长期高精度的运行。且在光伏短期预测[5-11]的实际应用中,国内许多光功率预测厂商在阴天预测误差很大,预测未来一天的天气是一种迫在眉睫的需求。本文通过分析人类判断天气类型方法,以24 h为时间分辨率对实际功率数据进行聚类,得到晴天、多云或阴天两个标签;使用两种天气标签与数值天气预报相结合,建立基于遗传算法优化的卷积神经网络模型,把相似日无监督问题接入了有监督问题,避开了算法一开始就陷入了天气预报不精准,而又无法主动处理数据的被动局面。使得不同的算法在实际应用上对光伏电站数据在天气类型上主动处理成为了现实。
1 光伏天气分类模型
本次实验的数据为我国某地一个装机容量为20 MW光伏场站的2017-2018年的历史数据,数据的采样间隔为15 min,。数据特征包括了该场站实际功率、实际辐照度与单个气象厂商的数值天气预报(辐照度、温度、湿度、风速、风向、压强)。经过数据清洗以后,剩下了175天的历史数据,本次实验的训练数据为清洗后数据的前155天,测试数据为清洗后数据的后20天。图1是训练集两种天气类型的占比,类别0为阴天,类别1为晴天或多云。从图中可以看出,该场站一年阴天占比较多。
图1 训练集类别统计图
1.1 天气分类算法流程
图2是算法的流程图。光伏场站常年运行,设备故障、限电等原因会导致数据集存在大量的异常数据,需要对这些数据集中的异常数据进行清洗。在数据清洗后,对气象数据进行数据归一化处理,使用变分模态分解对清洗后的实际功率进行分解,去除噪声所在的模态位置的模态。使用聚类算法对去噪后的光伏实际功率进行聚类,获取天气类型标签。再设计神经网络拓扑结构。使用设计好的神经网络架构与遗传算法结合,产生第二天天气类型的预测结果。下面会对每个模块进行详细介绍。
图2 天气分类算法流程图
1.2 变分模态分解
设备测量、大气运动的不确定性、数据传输过程中会产生的噪声,导致光伏日发电功率在特殊的天气或者场站看起来毫无规律,大量的随机噪声会导致光伏日功率曲线凹凸不平,无法很好的归类。且光伏日功率曲线异常的高频段或者低频段影响聚类算法的效果。为提高聚类算法的精准度,文中尝试通过信号分解[12]的角度去处理这些误差和噪声,希望找到一种方法能够分离噪声与真实信号,去除噪声所在的频段,得到较为光滑的功率曲线集合。
实际功率可以表示为噪声信号和实际功率信号的累加和:
式中R为实际功率;V表示所有分解信号序列集合,假设当f=0时Vf为噪声,用字母e表示。
基于式(1),文中使用了变分模态分解的方法。变分模态分解是一种非递归,自适应的信号处理方法,可以把信号分解为指定个数的具有不同中心频率的有限带宽分量。为了使带宽最小,可以构造一个约束变分问题的目标函数:
式中:k为变分模态分量数;uk为分解后信号的第k个模态分量;t表示时间;ωk为第k个分量的中心频率;∂t为t的偏导数;σ(t)为 Dirac函数;*为卷积运算符。约束条件为所有的分解信号之和需要等于原始信号f。将(1)式与约束条件引入Lagrange乘法算子,得到Extend-Lagrange表达式为:
式中:α作为二次惩罚因子,用来减少信号噪声的干扰,保证信号重构的精准度。通过乘法算子交替方向法(ADMM)求解拓展拉格朗日表达式,式中γ是拉格朗日乘数,⊗表示卷积算子。
具体步骤为:
Step1 初始化{μk},{ωk},γ和最大迭代次数N;
Step2 通过(4)式和(5)式更新μk和ωk;
Step3通过(6)更新γ;
Step4停止条件判定:
且n 算法的去噪效果如图3所示,从图中可以明显看出去噪后的信号明显比原始信号平滑,且保留了原始信号的趋势。 图3 去噪后的功率信号与原始功率信号 我国的光伏发电领域起步相对于国外较晚,缺乏科学系统的数据管理知识,积累的大量数据没有天气类型标注,由于时间太长等原因重新使用人工标注已经无从下手,只能由无监督学习算法代替人工对场站历史数据进行标注。层次聚类是无监督学习算法的一种通过计算不同数据点间的距离来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。 式中,x1,x2为数据中的两个样本点。 具体计算过程如下: 1)将每一个样本单独归为一类; 2)循环:每一次都合并距离(dist)最小的类,形成树状图; 3)直到所有的元素都归为同一类停止循环。 如图4所示,卷积神经网络主要由输入层、卷积层、池化层、全连接层、输出层等组成。卷积层(C层)与池化层(M层)不断交替重复,上一层的输出作为本层的输入,形成一个复合的特征提取层,更为准确的实现对数据的分级表达。 图4 卷积神经网络拓扑图 CNN的C层能够对上一层的输入进行局部特征的提取,每个C层由多个矩阵组成,可以并行学习特征,每个C层具有多个卷积核,使得网络对数据特征的提取更为充分。M层是一个降采样的过程,能够减少数据冗余的信息、计算量等。全连接层使用其很强的非线性拟合能力来学习复合特征提取层提取到的信息,增强了网络的学习能力。 关于卷积神经网络在时间序列预测应用的详细介绍见文献[8]。 深度神经网络存在大量参数需要调整,且单个参数可选范围大,人工调整很难找到最合适这个任务的超参数。所以,需要通过遗传算法[13-14]对卷积神经网络进行优化。 具体计算过程如下: 1)确定神经网络的拓扑结构,确定需要优化的超参数及其值域,把每一个种群作为深度神经网络超参数选择的可行解,从一个种群开始,对每个种群的个体基因编码,设置变异率,设定最大进化次数N; 2)设置适应度函数,对种群的每个个体进行评价,评价分数越低,适合度越低。且每一代的个体由适应度函数选择进化、交叉、变异等方式产生新的参数,逐渐找到越来越好的近似解; 3)进化N代后,通过适应度函数评价,选出所有个体中表现最优的超参数组合,可以作为问题的近似最优解; 4)输出最优超参数组合,结束。 现代高校在推广图书馆“互联网+”阅读教育时,需要对学生的学习动机进行改善,针对上述分析的问题,校方应当在课堂教育等途径当中,让学生了解到未来自身将面临怎样的压力,使学生了解到其中的利害关系,有助于激发学生自主学习的欲望,而为了深化改善此点,校方还可以推出一系列的有奖竞赛,鼓励学生自主学习,在奖励的引导之下可以使学生重视阅读学习。此外,在选择有奖竞赛中的奖励的时候,应当奖励对学生的吸引力,可以选择一些具有教育意义的奖励,例如助学基金、野炊等。 数据归一化属于数据处理的一种,把各个特征数据进行缩放,将其映射到0到1之间。数据归一化处理可以减少程序执行时间成本,同时为预测模型提供了标准同一的训练数据,使模型的预测结果更为准确和有效。计算公式为: 式中x为训练数据,xmin为x的最小值,xmax为x的最大值。 在工业生产中,光伏场站的天气类型一般划分为多云,晴天,阴天和雨天。晴天和多云光伏出力的峰值往往表现比较高,而阴天和雨天光伏出力的峰值比较低。所以文中在光伏发电出力中将天气类型分为两种:①晴天和多云;②阴天。 算法的具体流程如下: 1)首先对实际功率数据进行清洗,异常数据包括超出1.1倍装机的值,不正常的负值以及连续重复8个或8个以上的值等,并且剔除异常值所在的那一天所有的数据,包括不足一天的数据,通过辐照度-实际功率散点图,剔除训练集的异常点所在的一天的数据; 2)把训练集的实际功率使用变分模态分解,确定变分模态分解的模态数和噪声所在的模态位置,本文把实际功率分解成了4个模态。通过实验,确定了其中的第2个模态和第3个模态为噪声,然后只保留第1个和第4个模态,把第1个和第4个模态相加得到去噪后的功率数据; 3)数据采样的时间间隔为15 min,每天有96个数据点。把2)获取的去噪后的N个长度的一维功率序列转换为以天为单位的数据矩阵(行为训练数据的天数,列为一天的数据); 图5 两个不同标签的实际功率数据 由于光伏电站环境复杂,直接进行聚类的结果没有使用VMD再进行聚类的效果显著。图6显示了这两种方法在数据集上的表现,本文将光伏日功率曲线使用PCA[15]降维成两个维度描述不同类别之间的关系,很明显能够看出直接聚类的两类的类与类之间的边界不够明显,但是分解后再聚类就没有出现这个问题。 图6 直接聚类与分解后再聚类结果对比 算法通过多次实验最终的拓扑结构包含了:三个卷积层,三个池化层和一个全连接层(全连接层为一个隐藏层与一个输出层)。算法的输入为一天的预报气象数据(包括辐照度,温度等),算法的输出为这一天的天气类型。 首先把数据集分割成训练集和测试集,数据集的前70%部分划分为训练集,后30%部分划分为验证集。超参数选取步骤为: 1)设置遗传算法参数:种群大小S置为10,最大进化次数为10,交叉概率为PC=0.8,变异概率Pb=0.5。 2)卷积神经网络参数优化:为卷积的窗口大小、移动步长、池化的窗口大小与隐藏层的神经元个数设置可行域(卷积窗口大小设置为[60,400],移动步长设置为[1,5],池化窗口大小设置为2到10,隐藏层神经元个数可行域设置为[300,500],输出层神经元个数为1个),损失函数选择MSE。 3)每一代的每一个种群为神经网络预选参数。将每一个选择该预选参数的卷积神经网络的预测值与真实值比较,使用式(9)作为适应度函数,对每个种群的每一代进行评价,选择表现力最好的那一个种群作为卷积神经网络的超参数。 式(9)中: TP:预测正例,实际为正例 FP:预测正例,实际为负例 TN:预测负例,实际为负例 FN:预测负例,实际为正例 图7画出了分类算法在测试集上的分类结果,在20天中,第1天,第6天和第分类错误,图8画出了这两天与其他两种类型的日功率曲线。 图7 光伏卷积神经算法分类结果 图8 日功率曲线对比 光伏场站历史数据转换为以天为单位的数据集后,数据量较小。SVM[16]是一种有监督学习方法,在少量数据集上是机器学习最好的算法之一,所以使用SVM与卷积神经网络算法比较(其中SVM通过网格搜索优化了惩罚参数C,核函数与gamma值,CNN使用遗传算法优化了卷积核大小,全连接层神经元个数)。算法的输入与精度(使用式(10)计算)如表1、表2所示,可以看出,使用遗传算法优化后的CNN是效果是最好的。 式中,M为预测的天数,yreal是真实标签,ypre是预测标签。 表1 单变量SVM与CNN天气分类精度表 表2 单变量CNN与多变量CNN天气分类精度表 提高光伏功率预测精度是加大太阳能发电占总体发电量比重的前提,天气类型是影响光伏发电功率效率的关键。文中从光伏功率预测的工业实际应用问题出发,应用人工智能算法模拟人类判断光伏实际功率数据日天气类型的经验法则,提出了变分模态分解-遗传算法-卷积神经网络的光伏日天气分类模型。通过仿真分析,可知,文中提出的算法模型相对于传统的机器学习方可以在光伏发电站常年未标注天气类型的情况下,为光伏场站标注历史天的日天气类型;能够较为准确的预测未来一天的日天气类型;提升了光伏场站数据的使用灵活度与利用价值。但是光伏场站地理环境错综复杂,气象预报也具有误差,仅仅依赖气象因素可能无法很好的对每一个场站做出高精度的日天气类型预报。如何结合卫星云图等技术提高模型的普适性是下一步值得去深究的问题。1.3 层次聚类算法
1.4 卷积神经网络
1.5 遗传算法
2 变分模态分解-遗传算法-卷积神经网络算法仿真分析
2.1 数据归一化
2.2 层次聚类算法模型
2.3 分类算法模型
3 结语