2011年全国电工杯数学建模全国一等奖论文

答卷编号:论文题目:风电功率预测问题

指导教师:金海

参赛学校:北京理工大学

报名序号:1550

证书邮寄地址:北京理工大学中关村校区徐厚宝(学校统一组织的请填写负责人)

答卷编号:

风电功率预测问题

摘要:

本文着力研究了风电功率的预测问题。根据相关要求,本文中我们分别利用ARMA模型、卡尔曼滤波预测模型和小波神经网络预测模型对该风电场的风电功率进行预测。通过对预测结果各项评价指标的综合分析,发现:小波神经网络预测模型的精确度最高;单台风电机组预测误差与总机组预测误差成正相关性;多个风电机组的汇聚会使得总体的预测误差减小。另外,从神经网络的训练过程中,我们发现突加扰动是阻碍风电功率实时预测精度进一步改善的主要因素,风电功率的预测精度不可能无限提高。

对于问题一,我们分别建立了ARMA、卡尔曼滤波、小波神经网络三种预测模型对指定的发电机组的输出功率进行了预测,取得了较为理想的结果。ARMA 模型的预测精确度为75.4%—79.3%,卡尔曼滤波模型的预测精确度为

81.3%-95%,小波神经网络模型的预测精确度为92.1%—94.7%,故小波神经网络的预测效果最好。

对于问题二,我们分析比较了三种模型下单台机组和多机组5月21日至6月6日的平均相对预测误差,得知风电机组的汇聚会使得总体的预测误差减小。

针对问题三,我们在问题一小波神经网络模型的基础上建立了遗传神经网络模型。经过仿真,我们发现该模型能显著减小峰值误差,有力地抑制时间延迟现象,有效地提高了预测的精确度。对仿真误差进行分析,我们指出突加的扰动是阻碍风电功率实时预测精度进一步改善的主要因素,预测的精度不可能无限提高。

关键词:ARMA,卡尔曼滤波,小波神经网络,遗传神经网络

一、问题重述

随着科学技术的发展,风力发电技术也得到快速发展。因为风力具有波动性、间歇性、能量密度低等特点,风电功率也是波动的。大规模风电场接入电网运行时,大幅度地风电功率波动会对电网的功率平衡和频率调节带来不利影响。因此,如何对风电场的发电功率进行尽可能准确的预测是急需解决的问题。本文在某风电场58台风电机组输出功率数据的基础上,需解决以下问题:

(1)至少采用三种预测方法对给定的数据进行风电功率实时预测并检验预测结果是否满足预测精度的相关要求。

(2)比较单台风电机组功率的相对预测误差与多机总功率的相对预测误差,分析风电机组的汇聚对于预测结果误差的影响,并做出预期。

(3)在问题(1)的基础上,构建有更高预测精度的实时预测方法,并用预测结果说明其有效性。

(4)在以上问题的基础上,分析论证阻碍风电功率实时预测精度进一步改善的主要因素。判断风电预测精度能否无限提高。

二、问题分析

本题是一个预测类问题,它以风力发电为背景,主要考察对于风电发电功率进行预测的能力。

首先,被预测量是随时间变化的序列,被预测量随时间的变化规律具有很强的非线性,因此我们采用的算法不仅要能够对时间序列进行预测,还必须具备一定的非线性处理能力。

针对问题一,我们建立三种模型,可以得到模型的预测结果。我们根据所给定的考核要求,能够计算得到模型的准确性。我们以准确性作为主要的评判标准,给出我们推荐的模型。

在问题一中,我们已经得到了单台风电机组与多台发电机组功率的预测误差。进一步处理,我们可以给出单台发电机组与多台发电机组的相对误差。我们对所得相对误差数据进行统计分析,可以得到

三、模型假设

(1)观测数据真实可靠

(2)短期内不存在大的自然灾害,例如地震、海啸以及台风等等

(3)预测期间风电机组分布不变,发电机组性能不随时间发生变化

四、参数说明

L ——滞后延迟算子

t y ——风电功率的时间序列

p ——自回归的阶数

t ε——零均值的系统白噪声

q ——移动平均的阶数

MSPE ——均方百分比误差 Cap ——风电场的开机容量

MAPE ——平均百分比误差

1r ——精确度

2r ——合格率

Mk P ——k 时段的实际平均功率 Pk P ——k 时段的预测平均功率 N ——日考核总时段数

m 1I -——状态空间模型的自回归系数 12,,,k X X X ——小波神经网络的输入参数

12,,,m Y Y Y ——小波神经网络的预测输出

ij ω、jk ω——小波神经网络权值

()h j ——隐含层第j 个节点输出值

ij ω——输入层和隐含层的连续权值

j b ——小波基函数的平移因子 j a ——小波基函数j h 的伸缩因子 j h ——小波基函数

()h i ——第i 个隐含层节点的输出

l ——隐含层节点数 m ——输出层节点数 ()yn k ——期望输出

()y k ——小波神经网络预测输出

η——学习效率

i y ——BP 神经网络第i 个节点的期望输出

i o ——BP 神经网络第i 个节点的预测输出

max a ——基因ij a 的上界

min a ——基因ij a 的下界

g ——当前迭代次数

max G ——最大进化次数

五、模型建立

1.风电功率实时预测及误差分析

目前,风电功率预测的方法主要有持续预测法、时间序列法(包括AR 、MA 、ARMA 、ARIMA 等)、神经网络法(ANN )、小波分析法、支持向量机法(SVM )等。综合考虑风电功率的随机性特征和各算法的优缺点,我们选择了ARMA 法、卡尔

曼滤波法和小波神经网络等三种方法对风电功率进行了预测。

1.1. ARMA 预测模型

1.1.1.ARMA 模型的基本原理

ARMA 模型是常用的时间序列模型,其基本的类型为: (1) 自回归(AR )模型。()AR p 为

j (L )y t =e t (1)

其中,L 为滞后延迟算子;t y 为风电功率的时间序列;1t t Ly y -=;p 为自回归的阶数;t ε为零均值的系统白噪声。

(2) 滑动平均(MA )模型。()MA q 为

()()t y t L θε= (2)

其中,q 为移动平均的阶数。 (3)ARMA 模型。(,)ARMA p q 为

()()t t L y L ?θε= (3)

由以上三式可见,AR 模型和MA 模型可视为ARMA 模型的特殊情况。ARMA 模型的平稳条件是滞后多项式()L ?的根在单位圆外,可逆条件为()L θ的根都在单位圆外。ARMA 模型对数据平稳性有要求,要在平稳时间序列的大前提下建模,所以要用ARMA 模型预测风电功率,首先要检验风电功率时间序列的平稳性。时间序列平稳性检验常用的方法为增广Dickey-Fuller (ADF )检验,ADF 检验包括一个回归方程:

111122112t t t p t p t yt y c y c y c y t

βεβ-----+?=+?+?++?++ (4)

上式左边为序列的一阶差分项,右边为序列的一阶滞后项、滞后差分项,有时还有常数项和时间趋势项。在进行ADF 检验时,需根据实际情况选择回归中是否包括常数项、线性时间趋势及回归中的滞后阶数p 的选择可根据保证t ε是白噪声过程的最小p 值的标准进行选择。在每种情况下,单位根检验都对回归式中1

t y -

的系数进行检验,如果系数显著不为零,那么t y 包含单位根的假设将被拒绝,t y 序列即是平稳的。

1.1.

2.平稳性检验

我们取该风电场2006年5月10日至6月6日共28天的风电功率实测数据作为研究对象,以其中前21天地风电功率数据建立模型。首先采用ADF 及ACF 检验来检验该时间序列的平稳性:如该风电功率时间序列是平稳的,则满足ARMA 模型前提;如该序列不平稳,则对差分后序列建立ARMA 模型,如仍不平稳,则继续做差分,直到差分后序列平稳,ARMA 建模前提满足为止。

各风电机组的ACF 检验结果如下图所示:

图(1)a 时间段机组ACF 图 图(2)b 时间段机组ACF 图

各风电机组的ADF 检验结果见表1。

比较ADF 检验统计量与临界值大小,可判断时间序列是否平稳。由表1可见,以上六种情况的风电功率时间序列ADF 检验统计量均小于1%临界值的显著水平,所以,在95%置信水平下有理由拒绝原假设,即本序列是平稳的,满足ARMA 建模的前提条件,因此,可考虑将风电功率时间序列t y 识别为(,)ARMA p q 结构。

1.1.3.建立ARMA 模型

鉴于模型(,)ARMA p q 的识别具有很大的灵活性,为了得到最合理的模型,

本文采取了定阶步骤,根据时间序列的自相关、偏相关函数分析图,对多组可行阶数进行了参数估计,对所有备选模型进行模型诊断,筛选出备选模型集。由于许瓦兹信息准则SIC的强一致性,在理论层面上能够渐进地选择真实模型,所以计算备选模型集中所有模型的SIC。考虑模型的可逆性和稳定性条件,得到数据样本的ARMA模型的参数如表2。

依照经典时间序列分析的步骤,在完成模型阶数识别后,使用极大似然估计法获得模型的参数估计模型分别为:

P A :

1212 269.4057 1.88810.88844 1.27650.30239 t t t t t

y y yεε

∧∧∧∧∧

----=-+-+(5)

P B :

1212 231.7165 1.87620.87663 1.29530.32144 t t t t t

y y yεε

∧∧∧∧∧

----=-+-+(6)

P C :

1212 222.7115 1.88680.88712 1.28550.30922 t t t t t

y y yεε

∧∧∧∧∧

----=-+-+(7)

P D :

1212 236.1261 1.88180.88224 1.27820.30509 t t t t t

y y yεε

∧∧∧∧∧

----=-+-+(8)

P 4:

1212 959.9598 1.89370.89401 1.07670.10732 t t t t t

y y yεε

∧∧∧∧∧

----=-+-+(9)

P 58:

121

12265 1.90130.901620.9674

t t t t

y y yε

∧∧∧∧

---

=-+-(10)

1.1.4.预测结果及误差分析

运用ARMA模型分别对5月31日0时0分至5月31日23时45分(记a时

域)、5月31日0时0分至6月6日23时45分(记b时域)的P

A , P

B,

P

C,

P

D,

P

4,

P

58

进行预测,得到原始风电功率和预测风电功率。预测结果如下图所示。

图(3)a 时段P A 功率预测曲线

图(5)a 时段PB 功率预测曲线

图(7)a 时段PC 功率预测曲线

图(4)a 时段PD 功率预测曲线

图(6)a 时段P4功率预测曲线

图(8)a 时段P58功率预测曲线

图(9)b时段PA功率预测曲线

图(10)b时段PB功率预测曲线

图(11)b时段PC功率预测曲线

图(12)b时段PD功率预测曲线

图(13)b 时段P4功率预测曲线

图(14)b 时段P58功率预测曲线

为了对预测结果的精度和可靠性进行评价、分析,我们采用以下判断指标对预测结果进行分析。

(1)均方百分比误差:1

1N t t t MSPE y y N ∧

==-∑ (11)

(2)平均相对误差:1

1100%n

t

t t t

y y MAPE N

y ∧

=-=

?∑

(12)

(3

)精确度:11100%r ??=??? (13)

其中,Mk P 为k 时段的实际平均功率;Pk P 为 k 时段的预测平均功率;N 为日考核总时段数(取96点-免考核点数);Cap 为风电场的开机容量。

(4)合格率:21

1100%N

k k r B N ==?∑ (14)

其中

(1)100%75100%,1Mk Pk

k P P B Cap --

?≥?= (15) (1)100%75100%,0Mk Pk

k P P B Cap --

?

通过Matlab 的计算,我们得到各项指标结果如表3,表4。

表3 ARMA 模型时段a 各项指标结果

表4 ARMA 模型时段b 的各项指标结果

通过分析,我们发现ARMA 模型对于风电功率短期预测的趋势是好的。比较

a 时段和

b 时段的预测结果,a 时段的预测精度相对高些,这是因为预测时间越长,风电功率波动性越强,因而建立的ARMA 模型更难以描述风电功率的变化规律。另外,比较ARMA 模型预测功率曲线和实际曲线,在变化规律发生改变时,预测曲线常常不能提前变化,而是存在一个“时滞”,所以,虽然ARMA 模型基本能捕捉到风电功率曲线的变化规律,但该预测存在明显的延时性,而且精度不高。 1.2. 卡尔曼滤波预测模型

1.2.1.模型建立

卡尔曼滤波法是采用状态方程和观测方程组成的线性随机系统的状态空间模型来描述滤波器,并利用状态方程的递推性,按线性无偏最小均方差估计准则,采用递推算法对滤波器的状态变量做最佳估计,从而求得滤掉噪声的有用信号的最佳估计。卡尔曼滤波算法可用于滤波、预测和平滑方面。本文利用卡尔曼滤波法对风电功率进行预测。

要实现卡尔曼滤波法预测风电功率,首先必须推到出正确的状态方程和测量方程。因已通过时间序列分析建立了风电功率时间序列的ARMA 模型,故可将ARMA 模型转换到状态空间,建立卡尔曼滤波的状态方程和测量方程。

对于一般的ARMA 模型,可设为(,)ARMA p q ,其方程为

1111t t p t p t t q t q

y u y u y v v εεε----=++++++ (17)

假定扰动项t ε都是关于t 的白噪声,为了更容易转换,首先将上式改写为

111111t t m t m t t m t m y u y u y v v εεε-----+=++++++ (18)

其中,max(,1)m p q =+。当i p >时,0i u =;当i q >时,0i v =。此时,t

y 是经过零均值化所得时间序列。式(17)、(18)为(,1)ARMA m m -模型,可写成状态空间模型为

1t t t

t t X UX VE Y CX -=+??

=? (19)

其中,11(,,,)'t t t t m X y y y ---= ,11(,,,)'t t t t m E εεε---= ,

(1,0,,0)C = ,m 1*I 0m m m u u U ?-??= ???,*0v V ??

= ???

且121*(,,,)m u u u u -= ,121*(,,,)m v v v v -= ;m 1I -为状态空间模型的自回归系数。

即状态方程为:

t t-1121112t-1t-211t-m 1y y 1y y 10000000**01000y 00100000t m m m m t t m t m u u u u v v v y εεε-----+-+??????

????????????????????

???

???????

????=+?????

????????????????????????

???????????

(20)

测量方程:

11(1,0,,0)*(,,,)'t t t t m y y y y --+= (21)

状态空间方程和测量方程已经确立,只要确定相关的初始状态(0)y 和(0)P ,就可以利用递推方程进行迭代预测,但在实践中很难准确掌握初始状态(0)y 和

(0)P 。卡尔曼预测在递推中不断用新的信息对状态进行修正,所以当预测时间

足够长,初始值(0)y 和(0)P 对预测的影响将会衰减为零。考虑到收敛的速度和参考工程习惯,取初始值(0)[10]y =和(0)10*P I =。取系统噪声和测量噪声的协方差矩阵为单位阵,应用Matlab 软件实现卡尔曼波预测风电功率。

1.2.2.卡尔曼滤波法预测结果

通过Matlab

程序实现卡尔曼波预测算法,我们得到预测结果。

图(15)a 时段P A 功率预测曲线

图(16)a 时段PB 功率预测曲线

图(17)a 时段PC 功率预测曲线

图(19)a 时段PD 功率预测曲线

图(18)a 时段P4功率预测曲线

图(20)a 时段P58功率预测曲线

图(21)b 时段PA 功率预测曲线

图(22)b时段PB功率预测曲线

图(23)b时段PC功率预测曲线

图(24)b时段PD功率预测曲线

图(25)b时段P4功率预测曲线

卡尔曼滤波模型得到的各项评价指标结果如表5,表6。

表5卡尔曼滤波模型a时段各项指标结果

表6卡尔曼滤波模型b 时段各项指标结果

通过分析该模型得到的功率预测曲线图及相关数据,我们发现该模型的预测结果曲线和实际功率曲线在形状上比ARMA 预测结果更为接近,在风电功率变化规律改变时,卡尔曼滤波有时能捕捉到变化信息,模型给出的预测值t y 滞后于实际值的概率相对降低,使“时滞”问题较为缓和,所以,应用卡尔曼滤波法预测风电功率不仅提高了预测精度,而且在一定程度上解决了时间序列分析法的预测时延问题。但由于卡尔曼滤波方法受到ARMA 方程的限制,使得在预测效果上仍有上升的空间。

1.3. 小波神经网络预测模型

上文的ARMA 模型和卡尔曼滤波模型都属于线性模型,都必须先对模型结构做出假设,然后对模型参数的估计得到预测值。因此,模型结构的合理与否,直接影响到最终预测的精度。由于风电场功率具有高度的不确定性,因而单一的线性预测模型不足以挖掘风电功率数据中的所有信息。而神经网络具有自学习、自组织和自适应性,可以充分逼近任意复杂的非线性关系,所以本文选择小波神经网络方法对风电功率进行非线性预测研究。

1.3.1.小波神经网络法基本原理

小波神经网络是一种以BP神经网络拓扑结构为基础,把小波基函数作为隐含层节点的传递函数,信号前向传播的同时误差反向传播的神经网络。小波神经网络的拓扑结构如图(27)。

输入层

隐含层预测输出

图(27)小神经网络拓扑结构

图(15)中,12,,,k X X X

是小波神经网络的输入参数,12,,,m Y Y Y 是小波神经网络的预测输出,ij ω和jk ω为小波神经网络权值。

在输入信号序列为(1,2,,)i x i k =

时,隐含层输出计算公式为

1

()1,2,,k ij i j i j j

x b h j h j l

a ω=??

-???

?==??????

∑ (22)

其中,()h j 为隐含层第j 个节点输出值;ij ω为输入层和隐含层的连续权值;j b 为小波基函数的平移因子;j a 为小波基函数j h 的伸缩因子;j h 为小波基函数。

该模型中采用的小波基函数为Morlet 母小波基函数,数学公式为:

2

/2cos(1.75)x y x e -= (23)

小波神经网络输出层计算公式为:

1()()

1,2,,l

ik i y k h i k m

ω===∑ (24)

其中,ik ω为隐含层到输出层权值;()h i 为第i 个隐含层节点的输出;l 为隐含层节点数;m 为输出层节点数。

小波神经网络权值参数修正算法采用梯度修正法修正网络的权值和小波基

函数参数,从而使小波神经网络预测输出不断逼近期望输出。小波神经网络修正过程如下。

(1) 计算网络预测误差

1()()

m

k e yn k y k ==-∑ (25)

其中,()yn k 为期望输出;()y k 为小波神经网络预测输出。 (2) 根据预测误差e 修正小波神经网络权值和小波基函数系数

(1)(1),,,i i i n k n k n k

ωωω++=+ (26)

(1)(1)

i i i k k k

a a a ++=+ (27)

(1)(1)i i

i k k k b b b ++=+ (28)

其中,(1),i n k ω+ 、(1)

i k

a + 、(1)i k

b + 是根据网络预测误差计算得到:

相关文档
最新文档