您现在的位置是:首页 > 电源

SVM与Fourier算法在电网短期负荷预测中的应用

2020-08-18 09:04:21

SVM与Fourier算法在电网短期负荷预测中的应用

本文将Fourier(傅立叶)算法与SVM(支持向量机)共同引入电网短期负荷预测。对于波动性较大的负荷,Fourier算法用于滤除高次谐波分量。SVM用于对滤除了高次分量的数据进行统计学习,它首先筛选与预测点相关的的历史数据构成训练样本,再将预测的平滑性和误差损失函数相结合构成问题的目标函数进行求解。编制了相应的软件,对某实际电网进行了短期负荷预测,取得了理想的结果。
  关键词:支持向量机,傅立叶,损失函数,短期负荷预测,核函数

ApplicaTIon of SVM 
to power system short-term load forecast


Yang Jingfei, Cheng Haozhong


(Department of Electrical Engineering, Shanghai Jiaotong University, 
Shanghai ,200030,China)

    Abstract: This paper introduces Fourier algorithm and SVM algorithm to short-term load forecasTIng of power system. Fourier method is applied to get rid of the high frequency harmonics. The data without high frequency harmonics are then uTIlized by the staTIstics learning method of SVM(support vector machines). Sample data are constituted by filtering the historical data through clustering method. The object function takes both the fatness of prediction and error loss function into consideration. Corresponding software was developed and used to forecast the short-term load of a practical power system, and the final forecast error is low.
    Key words: support vector machines, Fourier algorithm, loss function, short-term load forecasting, kernal function


0 引言
  电力系统负荷预测是电网能量管理系统的重要内容,通过精确的负荷预测,可以经济合理地安排机组启停,减少旋转备用容量,合理安排检修计划,降低发电成本,提高经济效益。常用的方法有非线性回归、神经网络法、时间序列法、模糊理论等。非线性回归和时间序列法在电网情况正常、生产和气象变化不大的时候预测效果良好,但不能考虑一些影响负荷的要素,如休息日、气象等,当这些因素发生突变时预测精度受到影响。神经网络和模糊理论考虑到了影响负荷的一些不确定因素,但没有彻底解决网络结构设计的难题,且需要较长的训练时间。
  SVM(支持向量机)是由Vapnik[1]最早提出的一种统计学习方法,近年来已经被成功地应用于语音识别、文字识别、时序数列预测等领域。研究显示,该统计学习方法具有学习速度快、全局最优和推广能力强的优点,其学习结果经常明显好于其它的模式识别和回归预测方法。本文将SVM理论应用于电力系统短期负荷预测,既考虑了影响负荷的诸因素,又建立了完善的数学模型。
  SVM算法对与预测负荷曲线较平滑的系统,能够取得较理想的效果。但是,对于惯性较小、随机波动性较强的中小型电网,其效果相对较差。改进的方法是,先采用Fourier算法将历史负荷曲线分解为平滑曲线和随机波动曲线两部分,只采用平滑部分作为SVM的历史训练数据,能够取得更好的效果。

1 SVM线性回归模型
  假设有一组训练数据,共有l个,其中第i个数据包含变量和与之相对应的变量xi∈Rn和与之相对应的变量yi∈R,SVM定义了一种机器(machine),用于确定x到y的映射关系x→f(X,a),a为可调参数,通过对已知数据的学习来确定它。在线性回归中,定义映射函数f(x)=<w,x>+b,w∈Rn, y∈R,并要求:1)找到最小的w以保证曲线的平滑性,一种常用的方法是使得w的欧氏二范数最小。2)映射的误差在允许的ε范围之内。可以写成下列数学模型:
 
  满足(2)式有时候会使问题的求解变得非常困难,可以通过在目标函数中增加损失函数来进行处理,损失函数有多种形式,本文中只考虑ε-intensive损失函数:
 
  式中C为常数,是回归精度超过允许值的惩罚因子。(4)为有条件约束的优化问题,根据非线性规划对偶性理论,对其建立没有约束条件的Lagrange方程,并将最小值问题它转化为对偶的最大值问题:
 
2 非线性回归模型及其核函数
  当然,现实中的大部分问题并不是简单的线性问题,对非线性问题进行回归,可以通过映射φ:X→τ把xi映射到特征空间τ,然后用核函数k(x,x′)=<φ(x),φ(x′)>来代替线性回归中的<x,x′>,根据文献[1],支持向量回归的算法就可以改写为:
 
  无论线性和非线性模型,都可采用内点法求解。

3 短期负荷预测的SVM与Fourier方法
3.1 样本及其输入输出量的选择
  本文采用SVM方法来解决短期负荷预测问题。对于训练样本,首先通过聚类找出和预测点在星期属性、节假日属性、预测时段都相同的数据作为SVM中的y值,相应的x值(即样本输入量)分为如下几类:
  1)A={a1,a2,...,an} ,预测日之前n日内的在预测时段的负荷数据
  2)B={b1,b2,...,bm},预测日前一日预测时段之前m个时段的负荷数据
  3)C={c1,c2,...,cs},预测日的气象预报,共s个数据,包含平均气温、最高气温、最低气温、风力、湿度等
  4)D={d1,d2,...,dn} ,预测日之前日内的每日气象数据,其中任何一个元素di包含s个如上所述的气象数据
  5)E={e1,e2,...,e7} ,预测日的周属性,代表周一到周日,每个变量用1或0来表示
  6)F ,一些从已知变量中通过某种计算演化而来的、对负荷的结果可能影响较大的数据(例如前一日温度与该日预测温度的差值、前二日与前一日在预测时段的负荷差值、该日前一周每天在预测时段的负荷平均值等)。
3.2 负荷预测的支持向量机模型
    为了选择合适的核函数,本文使用线性函数、多项式函数、径向基函数、对数S型等多种核函数进行测试,发现径向基函数的模型对于负荷预测问题精度最高,因此本文选用径向基函数作为核函数。
    假设按照上述样本及其输入输出量的选择构造的l个样本集合为{(xi,yi),i=1,2,...,l},则负荷预测的支持向量机模型可写为式(6)的形式,其中为径向基函数。
3.3 Fourier算法对历史数据进行平滑处理
    经数字实验证明,上述短期负荷预测的SVM方法对于负荷惯性较大的大型电网有较理想的效果,但是,如果将它应用于具有较多冲击性负荷(如轧钢厂),其误差较大。为了改进算法的预测效果,本文提出用Fourier算法对每日历史负荷曲线进行Fourier变换,分解为平滑曲线和随机波动曲线两部分,只采用平滑部分作为历史训练数据,方法如下。
    1) 对欲进行处理的一日负荷数据,检验其初始点负荷f(0)与终点负荷f(24)的差值是否小于给定的阈值δ。如果是, 说明该曲线基本满足Fourier分解的基本条件f(0)=f(T);否则,进行时间轴的旋转变换,使得f(0)=f(T);
 
    如果未经坐标轴变换,T取24(小时);否则,取坐标变换后的时间轴对应初始负荷点与终点的坐标差值。
    k的取值视电网负荷曲线的波动情况而定。取值应越大,拟合效果越好,但是其滤波作用越差。经过数字实验发现,k取15对波动性较大的地区性电网能有较理想的滤波效果且与原曲线拟合较好。
    3) 如果经过了坐标轴变换,将数据再还原到原始时间坐标轴。

4 计算结果与误差
    本文采用的算例是根据由常州电力公司提供的2003年3月1日至4月24日的每天气温数据和每天288点的负荷数据,预测4月25日全天96点的数据。为了考察本文所使用的方法的精度,还采用BP神经网络法和SVM算法(无Fourier分解)进行了预测。图1到图3分别示出三种方法的该日的预测情况。



  本文所提出的算法计算的该日的最大相对误差(绝对值)为5.2%,平均误差为2.4%。对比神经网络法(平均误差4.1%,最大相对误差11.9%)和单纯SVM算法(平均误差3.7%,最大误差10.1%)的误差结果,该法具有较高的精度。本文所提算法对每个点进行预测,训练程序运行时间都在400毫秒到1500毫秒之间(含滤波时间),测试时间则小于20毫秒,具有较快的速度。

5 结论
  本文介绍了SVM和Fourier算法及其在电力系统短期负荷预测中的应用。算法考虑到影响负荷的要素,对历史数据聚类,找出与预测点属同一类的数据进行训练。Fourier算法将负荷曲线平滑化,防止了随机波动对预测的干扰。算例证明,该方法结果合理,运行速度快,精度很高,是一种很有应用价值的新兴算法。