首页 / 一种光伏发电预测方法及装置

一种光伏发电预测方法及装置有效专利 发明

技术领域

[0001] 本申请涉及光伏发电预测技术领域,尤其涉及一种光伏发电预测方法及装置。

相关背景技术

[0002] 光伏发电作为可再生能源的重要形式,凭借无污染、可再生等优势,广泛应用于电力生产。然而,其发电量受太阳辐射、天气及季节等多重因素影响,表现出高度波动性,对电力系统的稳定运行构成挑战。因此,精准的光伏发电预测对于优化电力调度、提升系统效能至关重要。
[0003] 目前光伏发电量预测技术主要分为物理方法和统计方法。物理方法基于气象数据与光伏电池参数构建物理模型,而统计与深度学习方法则更侧重于数据驱动。统计方法虽应用广泛,但面临预测精度有限、窗口过小的局限。
[0004] 现有技术难以充分处理光伏发电的长期依赖性,对于多模态信息的融合能力不足,未能有效利用天气、季节等外部因素提升预测精度,并且缺乏足够的灵活性和通用性,难以适应不同光伏发电站的特定需求与数据特性。
[0005] 因此,如何开发一种能够综合处理光伏发电量在时间序列上的长期依赖性、有效融合多模态信息且具备高度灵活性和通用性的光伏发电预测模型,成为待解决的问题。

具体实施方式

[0019] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0020] 以下对本申请实施例涉及的部分技术做出说明,以助于理解,应当将它们认为仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了部分对公知功能和结构的描述。
[0021] 本申请实施例提供了一种光伏发电预测方法,如图1所示,该方法包括步骤S101至步骤S107。其中,图1仅为本申请实施例示出的一种执行顺序,并不代表一种光伏发电预测方法的唯一执行顺序,在可实现最终结果的情况下,图1所示出的步骤可以被并列或颠倒执行。
[0022] S101:以相同的预设时间间隔同步采集过去预设时间段内的光伏发电量和影响光伏发电的气象因素数据,分别形成光伏发电数据集和气象因素数据集。其中,每个时间间隔构成不同的数据点,气象因素数据集包括多个气象因素的观测值。
[0023] 具体地,需要明确一个具体的时间范围作为预设时间段。这个预设时间段可以根据研究或应用需求来设定,比如一个月、一个季度或一年等。在预设时间段内,以相同的时间间隔(如每小时、每半小时或每15分钟)进行数据采集。时间间隔的选择应基于数据的可用性、分析需求以及计算资源的考虑。记录每个预设时间间隔内光伏发电量,这些数据来源于光伏电站的监控系统或数据采集系统。同时采集多个影响光伏发电的气象因素数据,包括但不限于太阳辐射强度、环境温度、光伏板温度、风速、风向、湿度、气压以及云量等。这些数据可以来源于气象站、卫星遥感或专门的气象监测设备。
[0024] 需要进行说明的是,对于光伏发电数据集,每个预设时间间隔构成的数据点包括该时间间隔内的光伏发电量。气象因素数据集包括多个气象因素的观测值,每个时间间隔的数据点将包括多个数据项,每个数据项对应一个气象因素的观测值。因此,在本申请的气象因素数据集中,每个时间间隔的构成的数据点实际上是一个包括多个数据项(或观测值)的记录。在进行数据分析时可以根据需要选择性地使用这些数据项中的一部分或全部。
[0025] 形成光伏发电数据集和气象因素数据集之前,还包括:对所采集的光伏发电量和所采集的影响光伏发电的气象因素数据进行预处理。预处理包括缺失值处理和异常值检测。
[0026] 具体地,可以使用STL分解(一种时间序列分析方法)与插值技术相结合来进行缺失值处理,对缺失值前后的数据进行STL分解,在缺失值处,可以利用STL分解得到的趋势成分和季节性成分来进行插值。插值方法包括季节性插值、趋势插值和综合插值。季节性插值为:使用缺失值所在季节的季节性成分进行插值。如果缺失值发生在某个特定季节的固定时间点,则可以使用过去几年中该时间点的季节性成分的平均值或中位数作为插值。如果季节性模式随时间变化(如趋势性季节性),可以考虑趋势对季节性成分的影响,并相应地调整插值。趋势插值为:使用缺失值前后的趋势成分进行插值,可以通过线性插值、多项式插值等方法来完成。综合插值为:将季节性插值和趋势插值的结果相加,得到缺失值的插值估计。
[0027] 具体地,异常值检测方法为:计算每个数据点与其最近预设数量个邻居之间的平均距离(局部密度),将所有数据点的局部密度收集到一个集合中,形成局部密度集合,然后根据局部密度集合的局部密度分布,动态设定一个异常值阈值来识别异常值。异常值阈值可以设置为局部密度分布的某个分位数(如0.25或0.5),将局部密度分布低于该分位数的数据点视为异常值。处理异常值的方法可以根据具体情况进行选择,可以选择删除异常值,也可以替换为平均值或中位数或众数。
[0028] 具体地,假设 为所有数据点的局部密度集合,n为数据点的总数。定义异常值阈值T为 ,其中,q是选定的分位数, 表
示局部密度集合D的第q分位数。具体来说,第q分位数是指将一组数据从小到大排序后,位于q位置的数据点的局部密度。对于任意数据点k,如果 ,则数据点k被视为异常值。需要进行说明的是,最近预设数量个邻居可以基于距离度量(如欧氏距离)在特征空间中确定。
[0029] S102:分析每个数据点中每个气象因素数据与光伏发电量之间的相关度,并将相关度大于预设阈值的气象因素数据所对应的气象因素作为关键特征变量。需要进行说明的是,预设阈值的取值可以设定为0.25,当然,还可以设定为其他数值,本申请不以此数值为限制。
[0030] 分析每个数据点中每个气象因素数据与光伏发电量之间的相关度,计算公式如下: 。其中, 为度量指标,反映气象因素数据与光伏发电量之间的相关度,n为数据点的总数量,i为气象因素数据集的标识符,o为光伏发电因素数据集的标识符,k为数据点索引,用于遍历每一个数据点,在每个数据点上计算光伏发电量与气象因素数据之间的绝对差值, 为光伏发电数据集中第k个数据点的值, 为气象因素数据集中第k个数据点的值,为分辨系数。
[0031] S103:将光伏发电数据集和关键特征变量按时间序列组织成输入序列。其中,输入序列中的每个数据点均包括光伏发电量和关键特征变量的值。
[0032] S104:构建并行预测模型,并使用输入序列进行特征提取,获得特征增强融合的结果。其中,并行预测模型包括Transformer编码器层和BIGRU网络。
[0033] 图2为本申请实施例提供的使用输入序列进行特征提取,获得特征增强融合的结果的具体流程图,如图2所示,包括步骤S201至步骤S203。
[0034] S201:在Transformer编码器层中构建多头注意力机制,处理输入序列并生成多头注意力输出。
[0035] 具体地,Transformer编码器层是一种基于自注意力机制的深度学习模型,它擅长于处理序列数据,如文本、时间序列等。通过自注意力机制,Transformer编码器层能够建模输入序列中任意两个位置之间的依赖关系,从而获得上下文向量,捕捉上下文信息。同时残差连接将输入直接加到该层的输出上,缓解深层网络中的梯度消失问题,并且促进了信息的流动,使得模型能够更有效地训练。层归一化的目的是将每层的输出进行标准化,保持均值为0,方差为1。它有助于加快训练收敛速度,提升模型稳定性,防止过拟合。前馈神经网络对每个位置的表示进行非线性变换,从而增强模型的表达能力,它在每个Transformer编码器层中独立处理每个位置的信息,不同于自注意力机制对全局信息的处理。在本申请中将Transformer编码器层批量大小设置为64,表示每次训练时同时处理的样本数量。将输入特征维度设置为7,即每个输入样本的特征向量长度。将输出特征维度设置为1。将注意力维度即键向量的维度设置为128。将编码器层数设置为2,表示Transformer编码器由两个相同的层堆叠而成。将多头注意力头数量设置为4,意味着自注意力机制被拆分成4个并行的注意力头,每个注意力头独立地计算加权值向量,然后将它们的输出拼接起来,并通过一个线性变换恢复到原始的注意力维度,以获得多头注意力输出。
[0036] 具体地,在Transformer编码器层中构建多头注意力机制,处理输入序列并生成多头注意力输出,包括:对输入序列中的每个数据点进行第二预设数量组不同的线性变换,分别生成第二预设数量组三个不同向量,并根据三个不同向量分别计算当前注意力头的加权值向量。其中,第二预设数量为多头注意力机制中的注意力头的数量,三个不同向量为查询向量、键向量和值向量。将每个注意力头的加权值向量进行拼接操作和线性变换,生成多头注意力输出。
[0037] 图3为本申请实施例提供的根据三个不同向量分别计算当前注意力头的加权值向量的具体流程图,如图3所示,包括步骤S301至步骤S304。
[0038] 具体地,根据三个不同向量分别计算当前注意力头的加权值向量的计算公式为:。其中, 为第 个注意力头的注意力权重, 为查询向量, 为
键向量, 为值向量, 为键向量的维度, 用于对相似度矩阵 进行归一化。
[0039] S301:通过点积操作计算查询向量与键向量的转置矩阵之间的点积,获得相似度矩阵。
[0040] 具体地,相似度矩阵中的每个元素表示了查询向量中每个元素与键向量中每个元素的相似度。
[0041] S302:将相似度矩阵中的每个元素除以键向量维度的平方根,以进行缩放操作,获得缩放后的相似度矩阵。
[0042] 具体地,进行缩放操作,以避免因点积结果过大而导致梯度消失或梯度爆炸的问题。
[0043] S303:使用softmax函数对缩放后的相似度矩阵进行归一化处理,获得注意力权重矩阵。
[0044] 具体地,进行归一化处理可以确保相似度矩阵每行的元素和为1。
[0045] S304:使用注意力权重矩阵对值向量进行加权求和,得到当前注意力头的加权值向量。
[0046] 进一步地,将每个注意力头的加权值向量进行拼接操作和线性变换,生成多头注意力输出的计算公式为: 。其中, 为第 个注意力头的注意力权重, 为拼接操作, 为权重矩阵,用于对拼接后的输出进行线性变换, 为多头注意力机制的函数表示,其接收输入序列X,并返回经过多
头注意力输出。
[0047] S202:使用BIGRU网络处理输入序列的正向信息和反向信息,通过全局注意力机制生成上下文向量,以获得增强输出。
[0048] 图4为本申请实施例提供的使用BIGRU网络处理输入序列的正向信息和反向信息,通过全局注意力机制生成上下文向量,以获得增强输出的具体流程图,如图4所示,包括步骤S401至步骤S403。
[0049] S401:使用两个GRU单元分别处理输入序列的正向信息和反向信息,并在每一个数据点生成一个正向隐藏状态和一个反向隐藏状态。
[0050] 具体地,BIGRU网络为循环神经网络的一种变体。GRU单元为门控循环单元。因此,本申请所使用的BIGRU网络为基于全局注意力机制优化的双向门控循环单元网络。这种网络结构通过结合BIGRU网络的双向处理能力和全局注意力机制的聚焦能力,有效提升了模型对输入序列中重要特征的感知和捕捉能力。
[0051] 具体地,BIGRU网络通过两个并行的GRU单元分别处理输入序列的正向信息和反向信息,每个GRU单元都具备捕捉序列中长距离依赖关系的能力,并通过其内部的门控机制(如重置门和更新门)来控制信息的流动。一个GRU单元用于处理输入序列的正向信息(从左到右),另一个GRU单元用于处理输入序列的反向信息(从右到左)。每个GRU单元都会遍历整个输入序列,并在每个数据点生成一个隐藏状态。这些隐藏状态捕捉了到当前数据点为止的序列信息。
[0052] 进一步地,在BIGRU网络中设置32个堆叠双向GRU层,每层包含64个隐藏单元,意味着在每个数据点,BIGRU网络能够生成一个64维的隐藏状态序列,其包含了丰富的序列信息。GRU单元的激活函数采用tanh函数,它能够将任意实值映射到(‑1,1)区间内,有助于学习复杂的非线性关系。为了防止过拟合,在堆叠双向GRU层之间引入dropout机制,设置dropout率为0.2,意味着在训练过程中,每个隐藏单元都有20%的概率被随机丢弃,从而迫使模型学习到更加鲁棒的特征表示。
[0053] S402:合并正向隐藏状态和反向隐藏状态以形成双向隐藏状态序列。
[0054] 具体地,可以通过拼接操作将每个数据点的正向隐藏状态和反向隐藏状态合并以形成双向隐藏状态序列。
[0055] S403:在BIGRU网络中构建全局注意力机制,生成全局上下文向量,并将全局上下文向量与双向隐藏状态序列的输出进行拼接操作,以获得增强输出。
[0056] 具体地,生成全局上下文向量的计算公式为: 。其中, 为全局上下文向量,T为输入序列的长度, 为输入序列中第s个数据点的双向隐藏状态的注意力权重, 为第s个数据点的双向隐藏状态。
[0057] 进一步地,增强输出不仅包含了输入序列中每个数据点的局部信息,还融入了整个序列的全局信息。其中,输入序列中每个数据点的局部信息通过双向隐藏状态捕获,整个序列的全局信息通过全局注意力机制生成的全局上下文向量获取。
[0058] S203:通过交叉注意力机制融合多头注意力输出和增强输出,以获得特征增强融合的结果。
[0059] 具体地,通过交叉注意力机制融合多头注意力输出和增强输出是一个有效的特征融合策略,它能够结合两者的优势来生成更加全面和强大的特征表示。
[0060] S105:通过全连接层将获得的特征增强融合的结果映射为光伏发电量预测值。
[0061] 具体地,全连接层的作用是将特征空间中的高维表示转换为最终的预测目标(即光伏发电量)。通过训练全连接层的权重和偏置,并行预测模型能够学习到从特征表示到预测值之间的映射关系。全连接层的输入维度大小为7,表示特征增强融合的结果为一个7维的向量。全连接层的输出维度大小为1,因为本申请的目标是预测一个单一的光伏发电量值,全连接层的输出值是一个连续的实数,表示光伏发电量预测值。
[0062] S106:使用第一预设数量的数据点中的数据作为训练集对并行预测模型进行训练,将输出的光伏发电量预测值与真实的光伏发电量数据进行比较,根据比较结果对并行预测模型中的参数进行调整,获得完成训练的并行预测模型。
[0063] 具体地,将并行预测模型输出的光伏发电量预测值与真实的光伏发电量数据进行比较,计算损失值(如均方误差MSE、平均绝对误差MAE等),以衡量预测的准确性。根据损失值,通过反向传播算法计算并行预测模型参数的梯度,并使用优化算法(如SGD、Adam等)更新模型参数,以减小损失值并优化并行预测模型性能。需要进行说明的是,第一预设数量的数据点可以为数据集的前80%数据点。
[0064] S107:将新的输入序列输入至完成训练的并行预测模型中,通过单步预测模式和/或多步预测模式生成连续的光伏发电量序列。其中,新的输入序列包括气象因素数据。
[0065] 将新的输入序列输入至完成训练的并行预测模型中,通过单步预测模式和/或多步预测模式生成连续的光伏发电量序列,包括:在单步预测模式下,完成训练的并行预测模型每次预测未来一个预设时间步长的光伏发电量。在多步预测模式下,完成训练的并行预测模型每次预测未来多个预设时间步长的光伏发电量。
[0066] 具体地,为了进行单步预测,本申请采用了历史36小时的光伏发电量,这些数据以30分钟的采样间隔进行记录。同时,还结合了关键特征变量作为输入序列进行输入。这些关键特征变量可以包括太阳辐射强度、环境温度、湿度、风速等,它们对光伏发电量有显著影响。在单步预测模式下,完成训练的并行预测模型的输出序列大小也为30分钟,即完成训练的并行预测模型预测的是未来30分钟内的光伏发电量。这种预测方式适用于需要实时或近实时光伏发电量预测的场景。
[0067] 进一步地,为了进行多步预测,本申请考虑了光伏发电的明显周期性,并使用了过去72个时间步长的数据作为输入序列。与单步预测类似,多步预测的输入序列同样包含光伏发电量并结合了关键特征变量作为输入序列进行输入。这些数据同样以30分钟的采样间隔进行记录,因此输入序列的总时间跨度为36小时。在多步(三步)预测模式下,完成训练的并行预测模型的输出序列大小为3个30分钟的时间段,即总共1.5小时。这意味着完成训练的并行预测模型一次性预测了未来1.5小时内的光伏发电量,分为三个连续的30分钟时间段进行预测。这种预测方式适用于需要较长时间范围内光伏发电量预测的场景,有助于电网调度和能源管理等方面的决策。
[0068] 需要进行说明的是,上述具体的时间设置均可以根据实际情况进行选择,本申请不以上述时间设置为限制。
[0069] 图5为本申请实施例提供的用于光伏发电预测的并行预测模型整体架构的示意图,如图5所示,并行预测模型包括多头注意力Transformer编码器层和BIGRU网络。其中,BIGRU网络为使用Global Attention(全局注意力机制)优化的BIGRU网络。编码器层旨在提取时间序列数据中的长期依赖特征,多头注意力机制通过在不同的子空间上计算注意力权重,允许模型在处理数据时关注不同的特征子集,从而捕获时间序列数据中的复杂依赖关系;BIGRU网络用于提取时间序列数据中的全局空间特征。本申请有效地将不同来源的信息整合起来,提高了模型处理多模态或复杂数据的能力,使得BIGRU网络能够更好地捕捉全局信息,从而改进特征提取的效果。交叉注意力机制用于将Transformer编码器层和BIGRU网络的特征进行融合。本申请通过计算来自两个不同模块即Transformer编码器层和Global Attention优化的BIGRU网络的特征的注意力权重,分别对数据进行Transformer的特征提取(Ftrans)和Global Attention优化的BIGRU网络的特征提取(Fbigru‑att),将不同的特征进行不同的权重计算,输入序列分别通过不同的线性变换得到 、 和 ,并通过训练优化这些权重矩阵,使得模型在特定任务中能更好地捕捉输入序列之间的关系,从而实现有效的特征融合,其中,权重矩阵 、 和 是可学习的参数。
[0070] 本申请实施例还提供了一种光伏发电预测装置600,如图6所示,该装置包括:采集模块601、分析模块602、组织模块603、构建模块604、映射模块605、训练模块606和生成模块607。
[0071] 采集模块601用于以相同的预设时间间隔同步采集过去预设时间段内的光伏发电量和影响光伏发电的气象因素数据,分别形成光伏发电数据集和气象因素数据集。其中,每个时间间隔构成不同的数据点,气象因素数据集包括多个气象因素的观测值。
[0072] 分析模块602用于分析每个数据点中每个气象因素数据与光伏发电量之间的相关度,并将相关度大于预设阈值的气象因素数据所对应的气象因素作为关键特征变量。
[0073] 组织模块603用于将光伏发电数据集和关键特征变量按时间序列组织成输入序列。其中,输入序列中的每个数据点均包括光伏发电量和关键特征变量的值。
[0074] 构建模块604用于构建并行预测模型,并使用输入序列进行特征提取,获得特征增强融合的结果。其中,并行预测模型包括Transformer编码器层和BIGRU网络。
[0075] 映射模块605用于通过全连接层将获得的特征增强融合的结果映射为光伏发电量预测值。
[0076] 训练模块606用于使用第一预设数量的数据点中的数据作为训练集对并行预测模型进行训练,将输出的光伏发电量预测值与真实的光伏发电量数据进行比较,根据比较结果对并行预测模型中的参数进行调整,获得完成训练的并行预测模型。
[0077] 生成模块607用于将新的输入序列输入至完成训练的并行预测模型中,通过单步预测模式和/或多步预测模式生成连续的光伏发电量序列。其中,新的输入序列包括气象因素数据。
[0078] 本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0079] 上述申请实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
[0080] 本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0081] 如图7所示,本申请实施例还提供了一种光伏发电预测服务器,包括存储器701和处理器702;存储器701用于存储计算机可执行指令;处理器702用于执行计算机可执行指令,以实现本申请实施例以上所述的一种光伏发电预测方法。
[0082] 本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有可执行指令,计算机执行所述可执行指令时能够实现本申请实施例以上所述的一种光伏发电预测方法。
[0083] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请实施例所述的方法。
[0084] 本说明书中的各个实施方式采用递进的方式描述,各个实施方式之间相同或相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。
[0085] 以上实施例仅用以说明本申请的技术方案,而非对本申请限制;尽管参照前述实施例对本申请进行了详细的说明,本领域普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请技术方案的范围。

当前第1页 第1页 第2页 第3页