一种基于VMD-CNN-LSTM短期电力负荷预测方法

    专利查询2022-07-07  266


    一种基于vmd-cnn-lstm短期电力负荷预测方法
    (一)技术领域
    1.本发明属于智能电网大数据领域,具体涉及一种基于vmd-cnn-lstm短期电力负荷预测方法。
    (二)

    背景技术:

    2.随着经济的发展和社会的进步,电力应用于人们日常生活的各个方面,可以说电力系统的稳定是国民经济发展的基石。电能作为一种资源,由于其特殊属性,不能被大量存储,电能只在需要时生产,可减少不必要的电能损耗和降低成本,这就为电力系统提出了一定的挑战。一方面,电力系统要保证发电厂能够提供稳定的电能,另一方面,电力系统需要预测电力负荷的需求量,在两者之间寻求一种动态平衡,保证国计民生用电的同时,也能保证经济效益。快速且准确的电力负荷预测,通过对已有的电力负荷数据和与影响电力负荷的因素数据分析,对短期某一时刻或时间段的短期电力负荷进行预测,为电网运行制定发电计划提供可靠的依据,不仅可以节约大量的成本,还可以保证电力系统的稳定与经济效益。
    3.目前国内外学者提出的电力负荷预测方法主要有基于统计学的线性回归模型、基于机器学习模型和基于深度学习模型等,以上算法应用于电力负荷预测各有优点,但也存在一些问题。基于传统的统计学线性模型有自回归移动平均模型(arma)和差分自回归移动平均模型(arima)等,因为电力负荷数据存在诸多非线性因素,导致线性回归模型的预测效果有限;机器学习模型包括支持向量机(svm)、随机森林(rf)、极限学习机(elm)和k-means聚类算法等,以上算法没有考虑到数据的时序性,无法挖掘到电力负荷数据背后的隐藏特征,电力负荷预测的准确度低,近年来,随着深度学习的快速发展,相关学者将卷积神经网络(cnn)、循环神经网络(rnn)和长短期记忆网络(lstm)应用于电力负荷预测,由于单个神经网络提取电力负荷的特征存在模型欠拟合问题,电力预测的预测效果有待提高。
    4.针对上述问题,设计一种泛化程度好、准确度高的电力负荷预测模型是一个亟待解决的问题。
    (三)

    技术实现要素:

    5.为了克服现有技术的不足,本发明旨在提供一种基于vmd-cnn-lstm短期电力负荷预测方法,其中,变分模态分解(vmd)对原始数列进行分解成多个分量,卷积神经网络(cnn)提取分解后的数据特征,长短期记忆网络(lstm)提取分解后数据的时序特征,用于预测短期电力负荷数据。预测模型具有预测速度快,泛化能力好,预测结果准确度高的优点。
    6.本发明解决其技术问题所使用的技术方案是:
    7.一种基于vmd-cnn-lstm短期电力负荷预测方法,包括如下步骤:
    8.第一步:获取某地区电力负荷数据,保留其中的日期和每日电力消耗数据,构成原始数据集;
    9.第二步:数据集预处理。包括对异常数据集中的缺失数据进行补全,对异常数据中
    的偏差数据进行修正,经过异常处理后的数据通过vmd算法分解成多个分量,并进行归一化处理,按照一定的比例划分成训练集、验证集和测试集;
    10.(2.1)数据集中的异常数据处理
    11.(2.1.1)异常数据中的缺失数据
    12.对异常数据中的缺失数据采用均值法进行填充,填充缺失数据用前一天的数据和后一天的数据平均值,计算公式如公式(1)所示:
    13.yi=(y
    i-1-y
    i 1
    )/2
    ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
    (1)
    14.其中yi是缺失值,y
    i-1
    和y
    i 1
    对应缺失值的前一天和后一天的值;
    15.(2.1.2)异常数据中的偏差数据
    16.对识别到的异常数据中的偏差数据用一周前的数据代替;
    17.(2.2)通过vmd算法将电力负荷数据分解成k个不同的模态分量imf,提取不同时间的用电习惯,分解过程包括问题的建立和问题的求解两个过程;
    18.首先是电力负荷数据的分解问题的建立,从上述数据中提取k个模态分量,对每个模态确定其带宽,使用高斯平滑度的方法,限制条件是k个分解的信号量之和为原始电力负荷数据,目标函数如式(2):
    [0019][0020]
    其中,t是时刻,是对时刻t求微分,δ(t)单位冲击函数,μk(t)是t时刻第k个分解的信号量,ωk是t时刻第k个分解信号量的中心频率,|| ||2是二范式函数,约束中f是经过异常处理后的电力负荷数据;
    [0021]
    然后是电力负荷数据的分解的求解过程,对于每个模态确定其带宽的约束问题,引入增广拉格朗日函数,变成无约束问题并求解,计算公式如公式(3)所示:
    [0022][0023]
    电力负荷的k个模态分量的极小值计算公式如公式(4)所示:
    [0024][0025]
    电力负荷的k个模态分量中心频率的最小值计算公式如公式(5)所示:
    [0026][0027]
    由此,通过vmd分解出电力负荷数据的出k个模态的分量μk和中心频率ωk;
    [0028]
    (2.3)数据集归一化
    [0029]
    对多个模态分量进行预归一化处理,以含有其中一列的数据为例,按照时间顺序记为x={x1,x2,x3,...,xn},采用归一化min-max处理,使数据映射到0-1之间,序列变得平稳。计算公式如公式(6)所示:
    [0030][0031]
    其中,x
    min
    和x
    max
    分别是该列的最小值和最大值,得到新的序列记为y={y1,y2,y3,...,yn};
    [0032]
    (2.4)数据集划分
    [0033]
    数据集划分是将上述得到的归一化数据集按照8:1:1的比例划分为训练集、验证集和测试集;
    [0034]
    第三步:基于vmd-cnn-lstm短期电力负荷预测模型构建,基于vmd-cnn-lstm短期电力负荷预测模型包括输入层、卷积神经网络层、激活层、长短期记忆网络层、全连接层、输出层;
    [0035]
    (3.1)激活函数的选取,本模型采用relu,将电力模型的输出经过relu函数变成非线性,不改变数据的形状。计算公式如公式(7)所示:
    [0036]
    x=max(x,0)
    ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
    (7)
    [0037]
    其中,x是神经元中的数据;
    [0038]
    (3.2)超参数的设置,包括初始学习率,迭代次数和期望误差值;
    [0039]
    (3.3)使用dropout的正则化方法,对部分神经元丢失,避免模型过拟合,提升模型的泛化能力;
    [0040]
    (3.4)损失函数的选取:计算模型的预测值与真实值之间的误差,考虑到预测的结果是回归,这里采用均方误差,计算公式如公式(8)所示:
    [0041][0042]
    其中,原始数据集的真实值是y,电力负荷模型预测输出值为一共有m项;
    [0043]
    第四步:将第二步得到的训练集用于训练第三步构建的基于vmd-cnn-lstm短期电力负荷预测模型,得到一个适度拟合状态的短期电力负荷预测模型具体为:
    [0044]
    (4.1)划分的训练集用于训练基于vmd-cnn-lstm的电力负荷预测模型,并通过损失函数对模型计算损失,计算公式上述公式(8)所示;
    [0045]
    (4.2)判断当前模型损失是否达到期望损失。
    [0046]
    如果达到,停止训练,保存模型,到达步骤(4.4),避免模型过拟合情况;
    [0047]
    如果没有达到,说明当前模型欠拟合,继续判断;
    [0048]
    (4.3)判断模型训练的轮次是否达到预设的迭代次数。
    [0049]
    如果没有达到,对模型进行反向传播,梯度下降,更新模型各层的参数,重复步骤(4.1);
    [0050]
    如果达到预设的迭代次数,即停止训练,保存模型。
    [0051]
    (4.4)将划分的验证集用于验证已经训练完成的基于vmd-cnn-lstm的电力负荷预测模型;
    [0052]
    (4.5)判断当前模型在验证集上是否达到拟合状态。
    [0053]
    如果模型在训练集和测试集中表现差距较大,则说明模型达到过拟合状态,需要对神经网络模型参数进行调整,重复步骤(4.1)到(4.5);
    [0054]
    如果模型在训练集和测试集中表现结果相当,则说明模型达到适度拟合状态;
    [0055]
    (4.6)将划分的测试集用于验证步骤(4.5)已经训练完成的基于vmd-cnn-lstm的电力负荷预测模型的可靠性,并保存模型;
    [0056]
    第五步,将得到的电力负荷预测模型对短期电力负荷进行预测,使用前n天的数据x预测第n 1天的电力负荷
    [0057]
    其中其中是基于vmd-cnn-lstm的电力负荷预测模型的输出结果,将预测的电力负荷值存储到数据库。
    [0058]
    进一步,实现一种电力负荷预测系统,应用于电力负荷预测。该系统包括用户交互模块和神经网络模块,其中用户交互模块包含数据采集子模块、超参数设置子模块、数据可视化子模块和程序配置子模块;神经网络模块包括数据处理子模块、模型训练子模块和电力负荷预测子模块。
    [0059]
    其中数据采集子模块,对应上述第一步,获取某地区的历史电力负荷数据;超参数设置子模块,对就上述第三步基于vmd-cnn-lstm模型中参数的设置;数据可视化子模块用于展示每一步操作中的数据,便于观察;程序配置子模块用于配置网络,文件路径等;数据处理子模块,对应上述第二步,对获取到的数据集进行异常处理、分解成多个分量和归一化;模型训练子模块对应上述第四步的模型训练过程;电力负荷预测子模块对应上述第五步的短期电力负荷预测,将预测到的数据写入数据库。
    [0060]
    本发明的工作原理是:本发明提出一种基于vmd-cnn-lstm短期电力负荷预测方法。从电网公司获取电力负荷数据,进行数据集处理,构建基于vmd-cnn-lstm短期电力负荷预测模型,用数据集训练并验证构建的电力负荷预测模型,使其达到适度拟合状态,用于对短期电力负荷数据的预测。
    [0061]
    本发明的有益效果主要体现在:1、基于vmd-cnn-lstm短期电力负荷预测结果,为电网制定发电计划提供可靠依据。2、采用vmd-cnn-lstm短期电力负荷预测模型,变分模态分解(vmd)对原始数列进行分解成多个分量和残差,卷积神经网络(cnn)提取分解后的数据特征,长短期记忆网络(lstm)提取分解后数据的时序特征,提升模型的泛化能力。3、采用训练好的模型预测短期电力负荷数据,预测模型具有预测速度快,预测结果准确度高的优点。
    (四)附图说明
    [0062]
    为了使本发明便于理解,将具体实施步骤与附图结合:
    [0063]
    图1为本发明提供的短期电力负荷预测方法的流程图。
    [0064]
    图2为本发明提供的短期电力负荷预测方法的vmd-cnn-lstm模型训练的流程图。
    [0065]
    图3为本发明提供的短期电力负荷预测系统。
    [0066]
    (五)具体实施步骤
    [0067]
    为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述。
    [0068]
    参照图1,本发明提供的一种基于神经网络电力负荷预测方法流程图,该方法具体实施时包括如下步骤:
    [0069]
    第一步:获取某地区电力负荷数据,保留其中的日期和每日电力消耗数据,构成原始数据集;
    [0070]
    第二步:数据集预处理。包括对异常数据集中的缺失数据进行补全,对异常数据中的偏差数据进行修正,经过异常处理后的数据通过vmd算法分解成多个分量,并进行归一化处理,按照一定的比例划分成训练集、验证集和测试集;
    [0071]
    (2.1)异常数据中的缺失数据处理。检查原始数据集是否存在缺失值,若存在,该数据可能因为数据采集系统故障导致,为保证数据的连续性,这里采用均值法,填充该数据,用前一天的数据和后一天的数据平均值。计算公式如公式(1)所示:
    [0072]
    yi=(y
    i-1-y
    i 1
    )/2
    ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
    (1)
    [0073]
    其中yi是缺失值,y
    i-1
    和y
    i 1
    对应缺失值的前一天和后一天的值;
    [0074]
    (2.2)异常数据中的偏差数据处理。偏差数据是由于电力设备在工作时出现故障,导致该时间点或时间段数据出现明显偏差,对偏差数据用上周数据代替;
    [0075]
    (2.3)对异常数据处理后的数据集进行vmd分解成多个分量imf,分解过程包括问题的建立和问题的求解过程;
    [0076]
    (2.2)通过vmd算法将电力负荷数据分解成k个不同的模态分量imf,提取不同时间的用电习惯,分解过程包括问题的建立和问题的求解两个过程;
    [0077]
    首先是电力负荷数据的分解问题的建立,从上述数据中提取k个模态分量,对每个模态确定其带宽,使用高斯平滑度的方法,限制条件是k个分解的信号量之和为原始电力负荷数据,目标函数如式(2):
    [0078][0079]
    其中,t是时刻,是对时刻t求微分,δ(t)单位冲击函数,μk(t)是t时刻第k个分解的信号量,ωk是t时刻第k个分解信号量的中心频率,|| ||2是二范式函数,约束中f是经过异常处理后的电力负荷数据;
    [0080]
    然后是电力负荷数据的分解的求解过程,对于每个模态确定其带宽的约束问题,引入增广拉格朗日函数,变成无约束问题并求解,计算公式如公式(3)所示:
    [0081][0082]
    电力负荷的k个模态分量的极小值计算公式如公式(4)所示:
    [0083][0084]
    电力负荷的k个模态分量中心频率的最小值计算公式如公式(5)所示:
    [0085][0086]
    由此,通过vmd分解出电力负荷数据的出k个模态的分量μk和中心频率ωk;
    [0087]
    (2.4)数据集归一化。由于不同数据列的单位不同,数据量级也不同,为避免数据对模型影响过大,对原始数据集进行预处理,以含有其中一列的数据为例,按照时间顺序记为x={x1,x2,x3,...,xn},采用归一化min-max处理,使数据映射到0-1之间。计算公式如公式(6)所示:
    [0088][0089]
    其中,x
    min
    和x
    max
    是该数据列的最小值和最大值,每一项通过公式计算,得到新的序列为y={y1,y2,y3,...,yn};
    [0090]
    (2.5)数据集划分。将第二步预处理得到的数据集按照8:1:1的比例划分为,80%的数据作为训练集,10%的数据作为验证集,10%的数据作为测试集,同时,需要设置批量batch_size的大小,将数据变成小批量数据,提高训练速度,这里batch_size大小设置为32;
    [0091]
    第三步:基于vmd-cnn-lstm的神经网络模型构建,输入层的特征是6,卷积核的大小是16*3*3,长短期记忆网络的隐藏层为3,隐藏单元数为32、全连接层、输出层。激活函数采用relu,计算公式如公式(7)所示:
    [0092]
    x=max(x,0)
    ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
    (7)
    [0093]
    将lstm模型的输出经过relu函数变成非线性,不改变数据的形状。超参数的设置:设置初始学习率为0.01,迭代次数为50次和期望误差值为1e-4。正则化方法的选取:使用dropout的正则化方法,大小设置成0.2,提升模型的泛化能力。损失函数的选取:计算模型的预测值与真实值之间的误差,考虑到预测模型回归模型,这里采用均方误差,根据均方误差判断模型的拟合程度。均方误差计算公式如公式(8)所示
    [0094][0095]
    vmd-cnn-lstm的输出值为预测值,即真实值是y,根据上述公式计算mse,将模型的结果通过全连接层输出;
    [0096]
    第四步:训练第三步建立的基于vmd-cnn-lstm的电力负荷预测模型,训练的过程如图2所示:
    [0097]
    (4.1)划分的训练集用于训练基于vmd-cnn-lstm的电力负荷预测模型,并通过损失函数对模型计算损失,计算公式如上述公式(8);
    [0098]
    (4.2)判断当前模型损失是否达到期望损失。
    [0099]
    如果达到,停止训练,保存模型,到达步骤(4.4),避免模型过拟合情况;
    [0100]
    如果没有达到,说明当前模型欠拟合,继续判断;
    [0101]
    (4.3)判断模型训练的轮次是否达到预设的迭代次数。
    [0102]
    如果没有达到,对模型进行反向传播,梯度下降,更新模型各层的参数,重复步骤(4.1);
    [0103]
    如果达到预设的迭代次数,即停止训练,保存模型。
    [0104]
    (4.4)将划分的验证集用于验证已经训练完成的基于vmd-cnn-lstm的电力负荷预测模型,
    [0105]
    (4.5)判断当前模型在验证集上是否达到拟合状态。
    [0106]
    如果模型在训练集和测试集中表现差距较大,则说明模型达到过拟合状态,需要对神经网络模型参数进行调整,重复步骤(4.1)到(4.5);
    [0107]
    如果模型在训练集和测试集中表现结果相当,则说明模型达到适度拟合状态;
    [0108]
    (4.6)将划分的测试集用于验证步骤(4.5)已经训练完成的基于vmd-cnn-lstm的电力负荷预测模型的可靠性,并保存模型;
    [0109]
    第五步:基于上述得到的电力负荷预测模型,对短期电力负荷进行预测,并将预测的电力负荷数据预测值存储到数据库。
    [0110]
    需要说明的是,使用前n天的数据预测第n 1天的数据,对应前n天的数据集是一个模型输入,y是第n 1天的电力负荷数据,是基于vmd-cnn-lstm模型的电力负荷预测的输出结果,将预测的电力负荷值存储到数据库。
    [0111]
    图3是本发明提供的电力负荷预测方法的系统图。如图3所示,实现一种电力负荷预测的系统,应用于短期电力负荷预测。该系统包括用户交互模块和神经网络模块,其中用户交互模块包含数据采集子模块、超参数设置子模块、数据可视化子模块和程序配置子模块;神经网络模块包括数据处理子模块、模型训练子模块和电力负荷预测子模块。
    [0112]
    其中数据采集子模块,对应上述第一步,获取某地区的历史电力负荷数据;超参数设置子模块,对就上述第三步基于vmd-cnn-lstm模型中参数的设置;数据可视化子模块用于展示每一步操作中的数据,便于观察;程序配置子模块用于配置网络,文件路径等;数据处理子模块,对应上述第二步,对获取到的数据集进行异常处理、分解成多个分量和归一化;模型训练子模块对应上述第四步的模型训练过程;电力负荷预测子模块对应上述第五步的短期电力负荷预测,将预测到的数据写入数据库。
    [0113]
    根据本发明图1-3的实施例,本发明提出一种基于vmd-cnn-lstm的电力负荷预测的方法及系统。获取历史电力负荷数据,并对原始数据集处理,构建基于vmd-cnn-lstm的电力负荷预测模型,训练集训练电力负荷预测模型,测试集测试模型的拟合程度,最终使模型达到适度拟合状态,最后将模型预测的电力负荷的数据存储在数据库中。
    [0114]
    采用江苏省某地三个不同地区的电力负荷数据作为数据集,基于lstm模型的平均准确率是90.9477%,基于cnn-lstm模型的平均准确率是91.2877%,将电力负荷数据分解成6个分量时,基于vmd-lstm模型的平均准确率是92.0571%,基于vmd-cnn-lstm模型的短
    期电力负荷预测的平均准确率是93.2726%。通过与其他模型对比实验,验证了本发明提供的基于vmd-cnn-lstm的电力负荷预测方法的可靠性。
    [0115]
    本发明提出的预测方法与其他预测方法对比,具有较好的效果。1、基于vmd-cnn-lstm短期电力负荷预测,为电网制定发电计划提供可靠依据。2、采用vmd-cnn-lstm短期电力负荷预测模型,变分模态分解(vmd)对原始数列进行分解成多个分量,卷积神经网络(cnn)提取分解后的数据特征,长短期记忆网络(lstm)提取分解后数据的时序特征,提升模型的泛化能力。3、采用训练好的模型预测短期电力负荷数据,预测模型具有预测速度快,预测结果准确度高的优点。
    [0116]
    本说明书的实施例所述的内容仅仅是对发明构思的实现形式的列举,仅作说明用途。本发明的保护范围不应当被视为仅限于本实施例所陈述的具体形式,本发明的保护范围也及于本领域的普通技术人员根据本发明构思所能想到的等同技术手段。
    转载请注明原文地址:https://tc.8miu.com/read-905.html

    最新回复(0)