1. 引言
在电力市场交易中,电价作为电能交易的重要指标,一直受到人们的关注。电价预测是指运用数学工具,利用现有的电价数据,综合考虑供需、电价等影响因素,对未来电价进行分析和预测 [1] 。电价预测主要包括长期电价预测、中期电价预测和短期电价预测。中长期电价预测主要是对未来一段时间内的电价走势进行预测,其预测结果可为电网规划提供参考。短期电价预测主要是对未来几小时或几天的电价变化进行预测,预测结果可以为电力市场交易提供指导。本文主要研究短期电价预测方法的建立。
在短期电价预测的研究中,许多学者已经对各种短期电价预测方法进行了研究。这些方法可以分为两大类:一类方法是通过分析电力市场的动态有效参数直接预测未来电价,另一类方法是基于黑箱理论,根据电价统计数据预测电价 [2] 。在文献 [3] [4] [5] [6] [7] 中,学者们用人工神经网络来预测电价,在文献 [8] [9] [10] [11] [12] 中,将自回归积分滑动平均模型应用于电价预测。文献 [13] [14] 利用粒子群算法对电价进行预测。还有一些研究者通过引入数据挖掘,结合影响电价的因素来预测电价,如文献 [15] [16] [17] [18] [19] 。为了得到较好的预测结果,文献 [15] [20] [21] 提出了综合预测模型。然而,在目前的研究中,很少有研究基于信号处理来提高短期电价预测的准确性。
变分模态分解(Variational Mode Decomposition, VMD)是一种自适应的、准正交的、完全非递归的信号分解方法。VMD可以将由多个分量组成的信号分解为有限带宽的几种固有模式。VMD算法解决了传统经验模式分解(Empirical Mode Decomposition, EMD)算法中由于包络误差和噪声干扰引起的模式混叠问题,提高了信号处理的鲁棒性 [22] [23] [24] [25] 。本文针对VMD算法在处理信号上的优势,结合VMD和BP神经网络,提出了一种新的短期电价预测方法。该方法利用VMD对历史电价进行分解,得到多个模态函数。将VMD分解结果作为BP神经网络的输入数据,得到相应的模态预测值。对模型预测值进行重构,得到短期电价预测结果。为了验证该方法的正确性,利用美国PJM电力市场数据进行了仿真验证。
2. 原理和方法
2.1. 变分模态分解
VMD算法通过搜索约束变分模型最优解来实现信号的自适应分解 [26] [27] ,迭代求解变分模型,最终可以根据被分解信号的频域特性完成信号频带的自适应分解。对于原始信号f,其对应的约束变分模型表达式如公式(1)所示。
(1)
式中:
为分解得到的K个模态分量,
为各模态分量的中心频率。
引入增广Lagrange函数求解上述约束变分问题的最优解,如公式(2)所示。
(2)
式中:α为二次惩罚因子,可在高斯噪声存在的情况下保证信号的重构准确度;λ为Lagrange算子,用来保持约束条件的严格性。
利用交替方向乘子法求取上述增广Lagrange函数的鞍点,即通过交替更新
,
和
寻求式(2)的最优解,其中
由式(3)求得。
(3)
利用Parseval/Plancherel傅里叶等距变换将式(1)变换到频域,求得二次优化问题的解见式(4)。
(4)
同理为求解
的最小值问题,将中心频率更新问题转换到频域,如公式(5)所示。
(5)
中心频率的计算结果如式(6)所示。
(6)
式中:
为当前剩余量
的维纳滤波;
为当前模态函数功率谱的中心频率。
对
进行傅里叶逆变换,取实部即可得到时域模态分量
。Lagrange算子
按式(7)更新。
(7)
VMD算法的交替迭代过程如图1所示。
2.2. BP神经网络
BP神经网络是一种多层前馈神经网络,其结构主要由输入层、隐层和输出层三部分组成,BP网络的学习过程由前向计算和误差反向传播两部分组成 [28] 。假设在一个BP神经网络中有N个输入、K个隐层和M个输出。如果BP神经网络的输入是Xpn,期望输出是Tpm,隐藏层输出是Y1pk,输出层输出是Y2pm,输入层和隐藏层的连接权重是W1nk,隐层和输出层的连接权重是W2km,允许误差是ε,则BP神经网络的结构图如图2所示。

Figure 2. The structure diagram of the BP neural network
图2. BP神经网络结构图
在BP神经网络的学习过程中,迭代次数从1开始。在前向计算过程中,输入Xpn经过输入层输入到神经网络中,并通过隐层逐层计算,最终从输出层输出,其计算公式如式(8)所示。
(8)
式中:f为激励函数,一般认为
。
经过前向计算,得到输出Y2pm,计算Y2pm与期望输出Tpm之间的均方误差E,并于允许误差ε对比,如果E ≤ ε,则计算终止,若E > ε,则进入误差反向传播过程。
误差信号通过反向传播过程,修改隐藏层到输出层的连接权重,以及输入层到隐藏层的连接权重。它的校正方程如式(9)所示。
(9)
修正权重后,进行前向计算和误差反向传播过程。在连续调整各层权重后,当BP神经网络的输出和期望输出满足误差要求时,学习过程结束。
2.3. 短期电价预测方法
短期历史电价数据是典型的非平稳随机信号。利用BP神经网络直接预测短期电价,预测结果难以满足精度要求。VMD算法在变分框架内完成信号筛选过程,通过求解约束变分模型的最优解,实现信号的自适应分解。经过VMD算法处理,能够获得信号的局部特征,而不需要平稳性假设和其他先验条件。故考虑用VMD算法处理历史电价数据。
为了提高短期电价预测的精度,提出了一种基于VMD与BP神经网络的短期电价预测方法。短期电价预测方法的流程图如图3所示。该方法的建立过程如下:
1) 利用VMD算法将历史电价数据分解为K个模态函数。
2) 将得到的K个模态函数分别作为BP神经网络输入层的输入量,经BP神经网络计算,BP神经网络输出层输出每个模态函数的预测值。
3) 将各模态函数的预测值叠加,得到短期电价的预测值。

Figure 3. The flowchart of the short-term electricity price forecasting
图3. 短期电价预测方法流程图
3. 算例分析
本节利用美国PJM电力市场的实际电价数据进行仿真分析,验证所提出方法的有效性。分析了各种信号处理算法在处理历史电价信号时的特点,指出了VMD算法相比于EMD和LMD算法的优越性,将基于VMD和BP神经网络的短期电价预测仿真结果与基于BP神经网络的直接电价预测仿真结果进行了比较,证明了所提方法的优越性。
3.1. 历史电价信号模态分解
短期电价预测是基于历史电价数据来预测未来短期电价的。本文选取美国PJM电力市场从2018年2月22日到2018年3月17日的实际电价数据作为历史电价数据。利用过去24天的电价数据预测第25天的电价数据。历史电价的变化趋势如图4所示。

Figure 4. Historical electricity price data
图4. 历史电价数据
在短期电价预测之前,需要对历史电价信号进行分解,并将分解得到的一些模态函数作为BP神经网络的输入,以得到各模态函数的预测值。为了体现VMD分解的优越性,将历史电价信号分别用EMD、LMD和VMD进行分解,并将VMD分解结果与EMD、LMD分解结果进行比较。
将历史价格数据由EMD分解为6个模态函数:IMF1、IMF2、IMF3、IMF4、IMF5和IMF6,如图5所示。分解得到的各个模态分量包括了历史电价信号在不同时间下的局部特征。
将历史电价数据经LMD分解为6个模态函数:IMF1、IMF2、IMF3、IMF4、IMF5和IMF6,如图6所示。
利用VMD对历史电价进行分解。经过大量的仿真实验,当选择模态数K的个数为6时,分解结果是最优的。历史价格数据分解为6个模态函数:IMF1、IMF2、IMF3、IMF4、IMF5和IMF6,如图7所示。
电价波动是由负荷变化决定的,当电力负荷增加时,电价上升,当电力负荷降低时,电价下降。在电力负荷中,日常的民用负荷、工业负荷和商业负荷相对稳定,这类负荷有规律地变化,具有较低的变化频率,占据了日常负荷的很大一部分。根据历史电价数据的模态分解结果,稳定负荷产生的电价变化如图5(d)~图5(f),图6(d)~图6(f)和图7(a)~图7(c)所示,可见这些模态函数值大,且变化频率不高,模态函数变化相对平稳。
在日常电力负荷中,除了民用负荷和工业负荷等稳定负荷外,还存在大量的随机负荷。随机负荷变化主要是由用户需求、气象条件、重大政治和经济活动等高度不确定的随机因素引起的。随机负荷的变化一般比较复杂,没有明确的规律,变化频率也比较大。随机负荷在日负荷中只占很小的一部分,因此它所产生的电价在日电价中只占很小的一部分。但随机负荷变化的不确定性导致了日电价变化的随机性。根据历史电价的模态分解结果,由随机负荷产生的电价变化如图5(a)~图5(c)、图6(a)~图6(c)和图7(d)~图7(f)所示,可见这些模态函数值小,但变化频率高。
3.2. 模态函数预测
利用信号分解算法将历史电价信号分解为多个模态函数,将得到的模态函数作为BP神经网络的输入,分别进行预测,可以得到各模态函数的预测值。同时,利用相应的信号分解算法对第25天的实际电价进行分解,并与各模态函数的预测值进行比较,可以观察各模态函数的预测精度。
将历史电价信号的分解结果输入BP神经网络,分别对模态函数进行预测。BP神经网络输出预测值为F_IMF1、F_IMF2、F_IMF3、F_IMF4、F_IMF5和F_IMF6。EMD算法得到的模态函数的预测结果如图8所示。由LMD算法得到的模态函数的预测结果如图9所示。VMD算法得到的模态函数的预测结果如图10所示。
通过EMD、LMD和VMD对历史电价信号进行分解得到的低频模态函数具有低的变化频率、平稳的信号变化和明显的变化趋势。从图8(d)~图8(f),图9(d)~图9(f)和图10(a)~图10(c)中可以看出,当这些低频模态函数被用作BP神经网络的输入时,得到的模态函数预测结果是准确的。因此,这些低频模态函数的预测结果对短期电价预测的准确性影响不大。
利用EMD和LMD对历史电价信号进行分解得到的高频模态函数与通过VMD分解得到的高频模态函数不同。从图5(a)~图5(c)和图6(a)~图6(c)可以看出,EMD和LMD分解得到的高频模态函数包含了原始历史电价信号的不同时间尺度的局部特征,模态函数具有高频、不规则、大波动等特点。因此,将其作为BP神经网络的输入,其预测结果如图8(a)~图8(c)和图9(a)~图9(c)所示,预测结果与真实值之间存在较大误差,直接影响短期电价预测的精度。
利用VMD对历史电价信号进行分解,得到高频模态函数,如图7(d)~图7(f)所示。可以看出,由VMD分解得到的高频模态函数呈现规律性变化,不反映历史电价信号的随机性和波动性。将其作为BP神经网络的输入,其预测结果如图10(d)~图10(f)所示,预测结果与真实值相差不大。因此,由VMD得到的高频模态函数的预测值并不影响短期电价预测的精度。
通过以上分析,利用VMD对历史电价信号进行分解得到的高频模态函数的预测精度优于EMD和LMD分解得到的高频模态函数的预测精度。因此,本文选择VMD作为历史电价信号预处理算法。
3.3. 短期电价预测
选择VMD作为历史电价预处理算法,得到各模态函数,并利用各模态函数作为BP神经网络的输入,得到各模态函数的预测值。未来24小时的预测电价可以通过叠加每个模态函数的预测值来获得。
利用历史电价数据直接作为BP神经网络的输入层数据,对未来24小时内的电价进行预测,预测结果称为直接预测结果。将本文所提方法得到的预测电价与实际电价和直接预测结果进行比较,如图11所示,可以看出,本文所提预测方法的预测结果反映了未来24小时电价的变化趋势,且预测结果优于直接预测结果。
从图11可以看出,用BP神经网络直接预测短期电价的误差较大,其原因可以归纳如下:
1) 影响短期电价的因素很多,不同的因素对短期电价有不同的影响。因此,仅使用BP神经网络进行电价预测会产生误差。
2) 由于电价的采样时间间隔为一小时,历史电价数据波动较大,历史电价数据中存在许多尖点,导致直接预测结果不准确。
利用本文建立的方法对短期电价进行预测,与直接预测相比,该方法具有以下优点:
1) 通过对历史电价进行VMD分解,可以得到多个模态函数,并且通过分解得到的每个模态函数表示不同因素对电价的影响。因此,利用各模态函数对电价进行预测,可以提高预测精度。
2) VMD分解结果既保持了原电价的趋势,又具有相对平滑的波形,克服了数据波动大的问题。
通过以上分析,可以看出本文所建立的短期电价预测方法优于基于BP神经网络的直接预测方法。基于VMD和BP神经网络的短期电价预测方法的预测结果反映了短期内未来电价的走势,可以为电力市场提供价格指引。
4. 结论
电价作为电力市场重要的参考指标之一,获得准确电价的预测结果至关重要。为了提高短期电价预测的精度,本文提出了一种基于VMD和BP神经网络的短期电价预测方法。通过对比EMD、LMD和VMD三种不同信号处理算法在处理历史电价数据的结果,验证了VMD作为历史电价信号预处理算法的优越性。将历史价格数据进行VMD分解得到固有的模态函数,将每个模态函数分别作为BP神经网络的输入,得到各模态函数的预测值。通过叠加各模态函数的预测值,得到短期电价的预测值。同时,将该方法的预测结果与直接预测结果进行了比较,表明了该方法的优越性和实用性。