本发明涉及电力系统预测相关技术领域,具体地说,涉及一种基于频域分解及人工智能算法的短期负荷预测方法。
背景技术:
负荷预测可根据预测期限分为长期预测(年度预测)、中期预测(月度预测)、短期预测(日度预测)和超短期预测(时分预测)。短期负荷预测对如何安排调度计划、联络线交换功率、机组优化组合等有着重要意义。电力负荷在短期内具有高度波动性和随机性,因此短期负荷预测更加困难。随着我国节能减排政策的逐步实施,提高负荷预测的精度已成为一个日益重要的研究课题。
近年来,出现了各种各样的负荷预测方法,如基于统计分析理论的时间序列法;根据逻辑规则进行推理的神经网络法;建立在统计学习理论和结构风险最小原理基础上的支持向量机法;采用变换分位数回归和高斯核函数的组合预测方法;随机森林作为比较新的机器学习算法,广泛应用于负荷预测研究中。
其中一个现有技术应用了elman神经网络,该网络通过将承接层作为延迟算子添加到前馈网络的隐藏层,以实现记忆的目的并提高网络稳定性。另一现有技术提出随机森林法,该方法所需调节参数少,具有较强的泛化能力,且收敛速度快,预测精度高。
由于负荷的随机因素过多,非线性极强,传统方法的理论基础也有限。近年来,对负荷序列进行先分解再预测的方法成为研究热点。有现有技术提出了经验模态分解法,然后结合不同预测方法估算短期负荷。也有现有技术提出了一种基于小波-原子稀疏分解的超短期负荷预测模型,结合粒子群优化算法和正交匹配追踪算法,提高了原子稀疏分解能力,更有利于提升负荷的预测精度。其他现有技术也公开了使用akima插值法代替滑动平均值法来处理局域函数以改进局域均值分解(localmeandecomposition,lmd)算法,然后使用广义回归神经网络,预测每个分量的趋势,叠加各个分量得到负荷序列的总趋势。
但现有的短期负荷预测方法都存在预测方法较为单一,预测精度不高的问题,急需一种具有更高精度的短期负荷预测方法。
技术实现要素:
本发明针对现有的短期负荷预测方法都存在预测方法较为单一,预测精度不高的问题,提供一种基于频域分解及人工智能算法的短期负荷预测方法。
本发明所需要解决的技术问题,可以通过以下技术方案来实现:
一种基于频域分解及人工智能算法的短期负荷预测方法,其特征在于,包括:
用频域分解算法对原始负荷数据的负荷时间序列进行分解,获得日周期分量、周周期分量、低频分量和高频分量;
采用神经网络算法对日周期和周周期进行预测;
采用随机森林算法对低频分量进行预测;
对高频分量进行二次分解,对分解后的低频部分采用神经网络算法进行预测。
本发明中,用频域分解算法对原始负荷数据的负荷时间序列进行分解,获得日周期分量、周周期分量、低频分量和高频分量,包括如下步骤:
1)采用傅里叶变换对原始负荷数据的负荷时间序列进行分解,得到了彼此正交的谐波信号;
2)利用负荷变化周期性的特性对步骤1)分解后的负荷时间序列进行重构;
3)通过傅立叶变换结合欧拉公式获得日周期分量、周周期分量、低频分量和高频分量。
本发明中,所述步骤1)中,对原始负荷数据的负荷时间序列p(t)作如下分解:
其中,n为历史负荷数据个数,ai和bi为系数。
本发明中,所述步骤2)中,把p(t)分解为角频率为wi=2π×i÷n,(i=1,2,…,n-1)的分量,将p(t)重构如下式:
p(t)=a0+d(t)+w(t)+l(t)+h(t),
其中,a0+d(t)是日周期分量,w(t)是周周期分量,l(t)是低频分量,h(t)是高频分量。
本发明中,所述步骤3),包括:
对负荷序列进行离散傅立叶变换,通过频谱值获得系数ai,bi;
利用傅里叶逆变换结合欧拉公式еjθ=cosθ+jsinθ,求得分解后的负荷时间序列。
本发明中,所述神经网络算法为elman神经网络算法。
本发明中,所述随机森林算法,包括:
使用自举法从原始低频分量数据中随机提取i个样本数据集作为每个决策树的子样本集,每个样本大小与原始低频分量数据集相同,并且每次未被取样的数据构成袋外数据;
对各个子样本集分别建立分类回归树,构建i棵决策树,在构建过程中,对于决策树的各个节点,随机采样原始低频分量数据变量集,获得变量子集,根据基尼指数最小准则从变量子集中选取最优特征进行分裂;
每棵分类回归树从顶部到底部递归分枝生长,达到设置叶节点的最小尺寸后决策树停止生长,所有的决策树组合成为随机森林;
在随机森林模型中输入测试数据,利用i棵决策树分别对子测试样本集预测,取每个决策树预测结果的平均值为预测值。
本发明中,对高频分量采用mallat算法进行二次分解。
本发明的基于频域分解及人工智能算法的短期负荷预测方法,采用频域分解算法对负荷数据分解,得到了日周期、周周期、低频和高频四个分量。分析不同分量的特点,有针对性的选用不同预测方法。对规律性很强的日周期、周周期分量,采用elman预测;低频分量样本较少,则使用随机森林预测;对波动比较大的高频分量先利用mallat算法二次分解,再取较平稳的分量做样本结合elman神经网络预测。本发明所提的基于频域分解的短期负荷预测模型,预测结果与elman神经网络、随机森林预测结果相比具有更高的预测精度。
附图说明
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明的负荷预测模型。
图2为随机森林计算流程图。
图3为mallat算法的分解。
图4为原始负荷序列。
图5为频域分解后的四个分量。
图6为日周期分量的预测结果。
图7为周周期分量的预测结果。
图8为低频分量的预测结果。
图9为高频分量经mallat分解后的对比。
图10为高频分量的预测结果。
图11为频域分解模型预测结果。
具体实施方式
为了使本发明的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
本发明的主旨在于,通过对现短期负荷预测的方法和实际需求的分析,发现现有短期负荷预测方法都存在预测方法较为单一,预测精度不高的问题,通过本发明提供一种基于频域分解及人工智能算法的短期负荷预测方法以解决上述问题。
参见图1,负荷序列本质上具有不稳性,在频域分解之后,部分负荷序列表现出一定的规律性。为提升预测精度,根据不同的特征,使用不同的预测方法,本发明预测步骤的核心部分如下:
用频域分解算法对原始负荷数据的负荷时间序列进行分解,获得日周期分量、周周期分量、低频分量和高频分量;
采用神经网络算法对日周期和周周期进行预测;
采用随机森林算法对低频分量进行预测;
对高频分量进行二次分解,对分解后的低频部分采用神经网络算法进行预测。
即通过适当的组合和负荷变化周期性的特点,将按固定周期变化的负荷分量,在预测时可以直接外推的负荷分量分为日周期、周周期分量;将各分量周期大于24h,气象因素等慢变相关因素影响的负荷分为低频分量;将随机变化的负荷分量,无法建立模型进行预测的部分分为高频分量。由于日周期、周周期分量是按固定周期变化的负荷分量,因此,采用很多方法都可以达到很好的预测效果,所以,在频域分解后对剩余分量的预测才是主要问题,以下将详细对本发明的方案进行说明。
这里,使用频域分析方法分析负荷数据,对频域分解算法对原始负荷数据的负荷时间序列进行分解,首先利用傅里叶变换对负荷时间序列p(t)作如下分解:
式中,n为历史负荷数据个数,ai和bi为系数。对p(t)作傅立叶分解后,得到了彼此正交的谐波信号。同上,把p(t)分解为角频率为wi=2π×i÷n,(i=1,2,…,n-1)的分量。利用负荷变化周期性的特性,可以将p(t)重构如下式:
p(t)=a0+d(t)+w(t)+l(t)+h(t)(2)
式中,a0+d(t)构成日周期分量,w(t)则是周周期分量,且日周期、周周期分量都是按固定的周期变化。l(t)、h(t)分别是低频分量和高频分量。
下式是离散傅里叶变换(discretefouriertran-sform,dft)与离散傅里叶反变换(inversediscretefouriertransform,idft):
x(wi)=n(ai-jbi)(5)
因此,经过离散傅立叶变换之后的负荷序列,可以从频谱值获得系数ai,bi。为达到分解原始序列,得到a0+d(t),w(t),l(t),h(t)四个分量的序列的目的;在获得系数ai,bi之后之,继续进行分解计算。
傅里叶逆变换结合欧拉公式еjθ=cosθ+jsinθ,求得分解后的序列:
根据上述公式推导,可以使用逆傅立叶变换算子来获得分解序列。
引入求余运算,用mod(x,y)表示x除以y的余数。本文以电力负荷日采样96点为例。
(1)d(t)的周期为96且是以1天为周期变化的负荷分量。a0+d(t)的角频率集合:
(2)w(t)的周期为7×96且是以7天为周期变化的负荷分量。w(t)的角频率集合为:
(3)扣除a0+d(t),w(t)之后,将剩下的部分分为l(t)和h(t)。由于一些缓慢变化的相关因素对负荷造成了影响,即低频分量l(t);h(t)则很大程度体现了负荷的随机性。二者的角频率集合如下式(9)所示。
需要计算的目标是式(1)中的傅里叶分解系数ai,bi,并建立与傅里叶变换后的频谱x(wi)之间的关系。
日周期分量和周周期分量的预测,通过频域分解获得的日周期分量和周期分量规律性是很明显。本发明使用elman神经网络算法对其预测,tansig隐藏层含有11个神经元和purelin输出层含有一个神经元。隐含层的输出由承接层滞后与记忆,并且输入衔接到隐含层,这种衔接的方法使其对历史数据敏感,网络中还加入了内部反馈,从而增加了其分析和处理一系列动态信息的能力。因此,可以精确的描述日周期、周周期分量。
可以理解的是,除了elman神经网络算法,本发明还可以采用了bp和lstm神经网络,不过预测精度都不如elman神经网络算法。主要理由是,elman神经网络结构优于bp神经网络结构,更适合做负荷预测;lstm神经网络则适合处理序列数据且需要更多数据训练精度才能更高;此外,还存在其他神经网络的预测适用于本发明,此处不一一进行阐述。
低频分量的预测,傅里叶分解后得到的低频分量序列样本很少,不适合使用神经网络算法。考虑自举采样方法可以使用相对较小的训练样本,本发明应用随机森林预测低频分量。如图2所示,算法流程如下:
步骤1使用自举法从原始数据中随机提取i个样本数据集作为每个决策树的子样本集,每个样本大小与原始数据集相同,并且每次未被取样的数据构成袋外数据。
步骤2对各个子样本集分别建立分类回归树,构建i棵决策树,在构建过程中,对于决策树的各个节点,随机采样原始数据变量集,获得变量子集,根据基尼指数最小准则从子集中选取最优特征进行分裂。
步骤3每棵分类回归树从顶部到底部递归分枝生长,达到设置叶节点的最小尺寸后决策树停止生长,所有的决策树组合成为随机森林。
步骤4在随机森林模型中输入测试数据,利用i棵决策树分别对子测试样本集预测,取每个决策树预测结果的平均值为预测值。
高频分量的预测,傅里叶分解后得到的高频分量规律性不强,而本发明选的原始负荷序列分解结果大部分为高频,所以高频分量预测结果直接决定频域分解预测模型的好坏。考虑到高频负荷序列有较高随机性且波动比较大,直接建模预测难度较大;经分析,选用mallat算法对高频分量进行二次分解。选取分解后较平缓的低频部分,结合elman神经网络对原高频负荷序列预测,很大程度提高了预测精度。
对于mallat算法,初始序列
式中,φ0n是离散后的正交小波基。
被扩展为
式中,φ1n、ψ1n是每个分支分别对应正交基。序列c1是原数据列c0的下降形式,c0和c1之间的信息差异用d1,φ1k是经一级分解后的低频子空间的正交基,有
还可以写作
简化为
c1=hc0(15)
类似有
对此过程进行迭代,有
因此,可以得到
显然,可以看到迭代的每一步都有
式中cj=hcj-1,dj=gcj-1。
以上是mallat算法的分解过程。cj是c0的迭代下降分解的形式,采样点每次比它前一步骤减半,算法在l步分解后终止,即在l步c0分解为d1,…,dl和cl,分解过程如图3所示。
以下,通过一具体实例来进一步说明本发明。
本实例使用安徽省某市统调口径负荷数据,2017年4月1日-2017年5月5日共22天数据,采样周期15min,共计3360个点。使用前面28天数据作为训练集来预测接下来7天的负荷。图4显示了原始负荷序列。
使用前28天2688个点作为样本进行频域分解。在图5中,日周期分量和周周期分量规律很明显,低频分量是光滑的曲线,高频分量波动很大,但是比原始负荷序列平缓。
根据本文提出的基于频域分解负荷预测模型,应用不同的方法来训练和预测分解后的序列,然后利用后7天的672个点作为测试样本。分别获得预测结果如图6~图10和表1所示。
表1四个分量的预测结果
结合上面表1,可以看出四个部分预测效果都很好,各部分预测结果组合在一起就是最终的预测结果,如图11所示,每个预测日的平均相对误差对比见表2。
表2预测日的平均相对误差
由图11表2可以看出,先通过频域分解,再采用不同预测模型预测短期电力负荷,最后将结果组合起来比elman神经网络、随机森林方法具有更高的精度,结果表明,本发明的方法适用于短期电力负荷预测。
以上仅就本发明较佳的实施例作了说明,但不能理解为是对权利要求的限制。本发明不仅局限于以上实施例,其具体结构允许有变化。总之,凡在本发明独立权利要求的保护范围内所作的各种变化均在本发明的保护范围内。