当前位置:首页 >> 理学 >> 2011年电工杯数学建模优秀论文

2011年电工杯数学建模优秀论文

风电功率预测问题
摘 要
随着大规模的风电接入电网,风电功率的不确定性和波动性将会对电力系统调度和 安全稳定运行带来很大影响。为了合理地利用风电,提高电力系统经济性,需要对风电 功率进行预测。 对于问题一:为实时预测 5 月 31 日之后 PA、PB、PC、PD、P4、P58 的风电功率, 我们利用各机组之前已知的风电功率序列,分别采用多元二项式回归模型、反向传播的 BP 神经网络模型、时间序列中的自回归移动平均模型(ARMA)对风电功率进行预测,并 对各预测模型的误差进行了分析。预测结果与真实值相比表明:多元二项式回归预测的 准确率最低,ARMA 模型预测的准确率最高。以 PA 机组为例,用 5 月 31 至 6 月 6 日的平 均准确率来衡量,二项式回归模型的准确率为 67.8%,神经网络模型的准确率为 70.3%, ARMA 模型的准确率为 74.1%。所以,为对风电功率进行准确的预测,ARMA 模型是最好的 预测方法。 对于问题二:我们利用了问题一中 ARMA 模型的风电功率预测结果, 计算得出 PA、 PB、PC、PD 单机组以及 P4 和 P58 多机组 5 月 31 至 6 月 6 日功率的平均相对预测误差, 其分别为:23.72%、22.70%、20.37%、17.76%,P4 为 17.59%,P58 为 15.93%。对比结 果表明: 风电机组汇聚使得其风电功率相对预测误差与单台风电机组风电功率相对预测 相比减小,风电机组的汇聚有利于风电功率的预测。 对于问题三:为进一步提高风电功率实时预测的精确性,考虑到机组的发电功率不 仅与风速有关,还与空气密度有关。由此,把各机组 5 月 31 之前的风电功率序列分成 两个时间序列,分别为邻近时间段的发电功率和邻近几天中同一时刻的发电功率。分别 利用 ARMA 模型进行风电功率预测,再把各自的预测结果作为 BP 神经网络的输入,得到 最后的风电功率。 仍以 PA 机组为例, 月 31 至 6 月 6 日的 7 日的平均准确率为: 5 78.6%。 结果表明,利用该方法可以进一步提高风电功率预测的精确性,与第一问中采用神经网 络模型相比提高了 8.3%,与第一问中采用 ARMA 模型相比提高了 4.5%。 由于风电功率实时预测受所给历史发电功率、风速、风向、气温、气压及机组自身 特性等数据信息的准确性及众多随机因素的影响,阻碍了风电功率实时预测精度,且预 测精度不可能到达 100%。 关键词:风电功率预测;汇聚;多元二项式回归;BP 神经网络模型;ARMA

1

1. 问题重述
根据百度百科,“风”是“跟地面大致平行的空气流动,是由于冷热气压分布不均 匀而产生的空气流动现象”。 风能是一种可再生、清洁的能源,风力发电是最具大规模开发技术经济条件的非水 电再生能源。现今风力发电主要利用的是近地风能。 近地风具有波动性、间歇性、低能量密度等特点,因而风电功率也是波动的。 大规模风电场接入电网运行时, 大幅度地风电功率波动会对电网的功率平衡和频率 调节带来不利影响。 如果可以对风电场的发电功率进行预测, 电力调度部门就能够根据风电功率变化预 先安排调度计划,保证电网的功率平衡和运行安全。 因此,如何对风电场的发电功率进行尽可能准确地预测,是急需解决的问题。 根据电力调度部门安排运行方式的不同需求, 风电功率预测分为日前预测和实时预 测。日前预测是预测明日 24 小时 96 个时点(每 15 分钟一个时点)的风电功率数值。 实时预测是滚动地预测每个时点未来 4 小时内的 16 个时点(每 15 分钟一个时点)的风 电功率数值。 在附件 1 国家能源局颁布的风电场功率预测预报管理暂行办法中给出了误 差统计的相应指标。 某风电场由 58 台风电机组构成, 每台机组的额定输出功率为 850kW。 附件 2 中给出 了 2006 年 5 月 10 日至 2006 年 6 月 6 日时间段内该风电场中指定的四台风电机组(A、 B、C、D)输出功率数据(分别记为 PA,PB,PC,PD;另设该四台机组总输出功率为 P4) 及全场 58 台机组总输出功率数据(记为 P58)。 问题 1:风电功率实时预测及误差分析。 请对给定数据进行风电功率实时预测并检验预测结果是否满足附件 1 中的关于预测 精度的相关要求。具体要求: 1)采用不少于三种预测方法(至少选择一种时间序列分析类的预测方法); 2)预测量: a.PA, a. b. PB, PC, PD; b.P4; c.P58。 3)预测时间范围分别为(预测用的历史数据范围可自行选定): 5 月 31 日 0 时 0 分至 5 月 31 日 23 时 45 分; 5 月 31 日 0 时 0 分至 6 月 6 日 23 时 45 分。

4)试根据附件 1 中关于实时预测的考核要求分析你所采用方法的准确性; 5)你推荐哪种方法? 问题 2:试分析风电机组的汇聚对于预测结果误差的影响。 在我国主要采用集中开发的方式开发风电, 各风电机组功率汇聚通过风电场或风电 场群(多个风电场汇聚而成)接入电网。众多风电机组的汇聚会改变风电功率波动的属
2

性,从而可能影响预测的误差。 在问题 1 的预测结果中,试比较单台风电机组功率(PA,PB,PC,PD)的相对预测 误差与多机总功率(P4,P58)预测的相对误差,其中有什么带有普遍性的规律吗?从 中你能对风电机组汇聚给风电功率预测误差带来的影响做出什么样的预期? 问题 3:进一步提高风电功率实时预测精度的探索。 提高风电功率实时预测的准确程度对改善风电联网运行性能有重要意义。 请你在问 题 1 的基础上,构建有更高预测精度的实时预测方法(方法类型不限),并用预测结果 说明其有效性。

2. 模型的假设与符号说明
2.1 模型的假设 假设 1:题目所给数据是合理、正确的 假设 2:假设所有的风电机组都在正常的运行,忽略其故障及修理时间。 假设 3:假设所有的风电机组运行的外部条件相同。 假设 4:假设风电场的开机容量为 850。 假设 5:假设所做的预测具有普遍适用性。 2.2 符号说明 符号 符号说明 PA、PB、PC、PD 分别为四台风电机组的输出功率 P4 分别为 PA、PB、PC、PD 四台风电机组输出功率之和 P58 全场 58 台机组总输出功率
Pr 、 Pp

分别为机组真实功率和预测功率 相对预测误差 回归系数 自回归参数 滑动平均参数 风电场的开机容量

R

?0 , ?1 ,?, ? m
?i
?j

Cap

3. 问题分析
现今风力发电主要利用的是近地风能,近地风具有波动性、间歇性、低能量密度等 特点,因而风电功率也是波动的。当大规模的风电场接入电网运行时,大幅度地风电功 率波动会对电网的功率平衡和频率调节带来不利影响。 如果我们可以对风电场的发电功 率进行实时预测,电力调度部门就能够根据预测的风电发电功率预先安排调度计划,保 证电网的功率平衡和运行安全。为此,对风电场的发电功率进行尽可能准确地预测,是 急需解决的问题。本文主要根据已有的各机组历史发电功率数据,对各机组发电功率进 行实时预测。 针对问题一:为实时预测 5 月 31 日之后 PA、PB、PC、PD、P4、P58 的风电功率,

3

我们根据各机组 5 月 31 日之前的风电功率数据序列的信息,根据现有的预测方法和各 预测方法的使用条件,最后选择了多元二项式回归模型,反向传播的 BP 神经网络模型 和时间序列中的自回归移动平均模型(ARMA)对风电功率进行预测。 对于多元二项式回归模型, 利用预测时间段的前 N 各时间段的风电功率作为自变量, 预测时间段的风电功率作为因变量,根据已知数据采用最小二乘法得到回归系数,回归 方程求得后即可进行风电功率预测;对于反向传播的 BP 神经网络模型,首先建立一个 神经网络结构,同样把预测时间段的前 N 各时间段的风电功率作为输入量,预测时间段 的风电功率作为输出量,根据已知数据训练神经网络,该过程不断调整网络结构,直到 到达满意为止,而后利用该训练好的网络进行预测;对于自回归移动平均模型(ARMA), 主要问题是模型的定阶和参数的确定, 这个主要通过 MATLAB 实现, 选择对应 FPE 和 AIC 最小时的各参数值,然后根据已确定的模型,滚动地预测未来 16 个时点的风电功率数 值。 针对问题二:题目要求分析风电机组的汇聚对于预测结果误差的影响,我们可以根 据问题一的自回归移动平均模型(ARMA)预测结果,得知单台风电机组功率的相对预测 误差和多机总功率预测的相对误差,从结果中找出它们之间的关系,得到带有普遍性的 规律。 针对问题三:为了进一步提高风电功率实时预测精度的探索,提高风电功率实时预 测的准确程度。我们首先分析了影响风电功率的各影响因素,主要有风速和风向,空气 密度等因素,再结合给出的数据信息,从数据中我们可以得到风速和风向信息,即邻近 时间段的发电功率序列, 也可以挖掘到空气密度信息, 因为空气密度与温度和气压有关, 而邻近几天中同一时刻的温度和气压很接近,即邻近几天中同一时刻的发电功率序列。 分别利用这两个时间序列,采用自回归移动平均模型(ARMA)进行预测,得到两个预测 结果,再把这两个预测的风电功率作为 BP 神经网络模型的输入,神经网络最后输出的 结果即为最后的预测值, 这之前都是利用已给出的风电功率信息确定自回归移动平均模 型和神经网络的参数和结构。

4. 问题一的解答
问题一主要是根据已有的各机组历史发电功率数据, 对各机组发电功率进行实时预 测,为此我们建立三种预测模型。 4.1 用回归分析法对风电功率的预测 4.1.1 用多元线性回归对风电功率的预测 (1) 模型的建立 多元线性回归分析的模型为

? y ? ?0 ? ?1 x1 ? ? ? ? m xm ? ? ? ? 2 ?? ~ N ? 0, ? ? ?



式中 ?0 , ?1 , ? m , ? 2 都是与 x1 , x2 ,?, xm 无关的未知参数,其中 ?0 , ?1 ,?, ? m 称为回归系 数。 现得到 n 个独立观测数据 ? yi , xi1 , ?, xim ? , i ? 1,?, n, n ? m ,由上式得

? yi ? ?0 ? ?1 xi1 ? ? ? ?m xim ? ? i ? ? 2 ?? i ~ N ? 0, ? ? , i ? 1,?, n ?
4




?1 x11 ? x1m ? X ? ?? ? ? ? ? , ? ? ?1 xn1 ? xnm ? ? ?
T

? y1 ? Y ?? ? ? ? ? ? yn ? ? ?



? ? ?? 1 ? ? n ? , ? ? ? ? 0
整理为

?1 ? ? m ?

T

?Y ? X ? ? ? ? ? 2 ?? ~ N ? 0, ? En ? ?
其中 En 为 n 阶单位矩阵。



(2)模型的求解 根据上述理论知识, 结合 2006 年 5 月 10 日到 2006 年 5 月 30 日所给的风电功 率数据,把这些数据按照时间段先后顺序组成 N 个向量,取每个向量的列数都为 33,以向量的前 32 列的数值作为自变量,第 33 列的数值作为因变量,在 MATLAB 中编程求得各个参数值。 (由于公式太长,此处未列出,回归系数有 33 个,见附件) 其中,stats=[0.9351 13.5071 9e-11 1006],即 R2=0.9376,作残插图如下图 1 所 示:

图 1 残差图

5

图 2 修正后的残差图 从图中可以看出,除了几个点数据点外,其余各数据点的残差距离零点较近, 且残差置信区间均包含零点,这说明回归模型与实际值数据吻合得较好。现将这几 个数据点剔除掉,然后再在 MATLAB 中计算,最后得到修正后的回归方程。 利用修正后的回归模型进行预测,此处仅预测了 PA 机组 2006 年 5 月 31 日的 风电发电功率,如下表 1 所示: 表 1 时间段 1 2 3 ? 95 96 预测值 438 290 282 ? 1.1E12 1.4E12

从预测数据可以看出,该模型预测准确性极差,继而不选用多元线性回归分析 的模型。 4.1.2 用多元二项式回归对风电功率的预测 (1) 模型的建立 多元二项式回归交叉式的模型为
y ? ? 0 ? ?1 x1 ? ??? ? ? m xm ?

1? j ? k ? m

?

? jk x j xk

其中 ?0 , ?1 ,?, ? m 称为回归系数。 (2)模型的求解 同样利用 2006 年 5 月 10 日到 2006 年 5 月 30 日所给的风电功率数据, 把这些 数据按照时间段先后顺序组成 N 个向量,取每个向量的列数都为 m,以向量的前 m-1 列的数值作为自变量,第 m 列的数值作为因变量,在 MATLAB 中编程求解, 经过多次改变所取向量的列数 m 值,最后当 m=9 列时,剩余标准差最小,即为 rmse=118.1081,拟合的交互式界面如图 3 所示。 (由于公式太长,此处未列出,回 归系数有 37 个,见附件)

6

图 3 拟合的交互式界面 利用拟合好后的交叉多元二项式回归模型分别对 PA、PB、PC、PD、P4、P58 机组
5 月 30 日之后的风电功率进行预测。 (预测结果见附近)

4.2 用 BP 神经网络模型对风电功率的预测 4.2.1 模型的建立
xt ?13 ? sim(net ,[ xt ?1 , xt ?2 , ???, xt ?12 ])

其中,net 为一个网络结构,[ xt ?1 , xt ? 2 , ???, xt ?12 ] 为按照时间段先后顺序的机组发 电功率。 4.2.2 模型的求解 (1) 神经网络模型的简单介绍 BP 神经网络属于多层 ANN,可看做一个从输入到输出的高度非线性映射, 由输入层、输出层和一个或若干个隐含层构成,每一层包含若干神经元,层与层之 间的神经元通过连接权重及阈值相连、 每层神经元的状态只影响下一层的神经元状 态、同层的神经元之间没有联系。 BP 算法是基于信息正向传播和误差 BP 算法,对于输入信号,先向前传播到 隐含层,经作用函数后再把隐含层的输出信息传播到输出层,如果在输出层得不到 期望的输出, 则转入 BP 将误差信号沿原来通路返回, 通过修改各层神经元的权值, 使误差信号最小。作用函数通常采用 S 型函数,常用的激活作用函数 f? x ? 为可导的 sigmoid 函数:
f? x ? ? 1 1 ? e? x

(2) BP 神经网络的实现 ① 文中建立的结构图如图 4 所示:

7

隐含层

隐含层

输入层 Xt+1时的功率

Xt+2时的功率 . . . Xt+11时的功率

输出层

Xt+13时的 功率

Xt+12时的功率

图 4 BP 神经网络结构图 ② 利用 2006 年 5 月 10 日到 2006 年 5 月 30 日各机组所给的风电功率数据训 练该网络。 ③ BP 网络训练效果检验 为了验证所建立的 BP 神经网络模型的准确性,把已知所给出的风电功率和由 神经网络预测的值进行比较,并在 MATLAB 中作出图 5。

图 5 神经网络预测值与真实值比较
8

由图 5 可以发现,此时 BP 神经网络训练效果已经很好,可以采用该训练好的 网络对各机组风电功率进行实时预测(预测结果见附件) 。 4.3 自回归滑动平均模型对风电功率的预测 4.3.1 模型的建立 ⑴ 模型说明:由于时间序列同时蕴含着数据顺序和数据大小,表现出客观世界的 某一动态过程,能反映出客观世界及其变化的信息,又由于风电场发电功率的数据具有 按时间排序和离散性,因此可以采用时间序列分析方法对风电场的发电功率进行预测。 在选定模型后,进行模型参数估计和模型定阶,确定适当阶数模型并计算出该阶模型的 参数后应用该模型进行风电场的发电功率预测。 ⑵ 功率时间序列模型的建立:对风电机组输出功率数据建立自回归滑动平均模型 ARMA(n,m)如下:
xt ? ? ?i xt ?i ? ? t ? ?? j? t ? j
i ?1 j ?1 n m



式中 ? i (i=1,2,?,n)为自回归参数; ? j (j=1,2,?,n)为滑动平均参数; ?? t ? 是
2 一零均值﹑方差为 ? a 的正态白噪声过程。

对风电机组原始输出功率序列,当其值过大或过小时,为保证计算精度﹑减小舍入
0 误差﹑避免溢出,可以对原始功率序列进行标准化处理。记 xt? ? 为原始输出功率序列, 0 对 xt? ? 中各数据进行如下标准化处理:

? ?

? ?

xt ?

xt? ? ? ? x
0

?x



0 式中 ? x 与 ? x2 分别为 xt? ? 的均值与方差的估值,它们的算法如下:

? ?

?x ?
? x2 ?

1 N

? x? ?
0 t ?1 t

N



1 N ? 0? ? xt ? ? x N ? 1 t ?1

?

?

2



以上两式中, N 为功率序列的个数。对由式③所得的时序 ? xt ? 按式①或②进行功率 建模,将得到预测功率序列 ?SWt ? 如下:
S W ? ? x x? ? t t
x



综上所述,建立的自回归滑动平均模型为:

9

n m ? xt ? ? ?i xt ?i ? ? t ? ? ? j? t ? j ? i ?1 j ?1 ? ? 0? ? x ? ?x ? xt ? t ?x ? ? 1 N ? 0? ? ? ? x ? ? xt N t ?1 ? 2 ? 1 N ? 0? 2 ?? x ? ? xt ? ? x N ? 1 t ?1 ? ? SW ? ? x ? ? x t x ? t ? ?

?

?

4.3.2 模型的求解 模型参数估计和模型定阶是应用时间序列分析法进行建模时很重要的过程, 该过程 的适当与否直接影响到模型参数的计算精度和和预测的好坏。 ⑴ 模型参数估计
2 当估计自回归滑动平均模型 ARMA(n,m)参数 ? i ,? j 和 ? a 时,采用先后估计法。先估计

? i ,后估计 ? j 。由下式估计 ? i :
RA ? RB?
? ?1 ? ?? ? ? ? ? 2?, ??? ? ? ?? n ?



? Rm?1 ? ?R ? RA ? ? m ? 2 ? ? ? ? ? ? ? Rm? n ? Rm?1 Rm ? Rm? n ? 2 Rm?2 Rm?1 ? Rm? n ?3 ? Rm?n ?1 ? ? Rm?n ? 2 ? ? ? ? ? ? ? Rm ?

? Rm ? R RB ? ? m?1 ? ? ? ? Rm? n ?1

其中, Rk 是功率时间序列的自协方差函数(当 k ? 0 时,由于 Rk 是偶函数的性 质,有 R? k ? Rk ) ,可由下式算出:
Rk ? 1 N

t ? k ?1

? xx

N

t ?t

k

k ? 0 , 1 , ?, N ? 2 ,

1



故有,
? ? ? RB1RA



然后估计 ? j ,在 ARMA 模型式①中,令

10

yt ? xt ? ? ? i x t ?
i ?1

n

i



则有:
yt ? ? t ? ? ? j? t ? j
j ?1 m

11 ○

11 由于前面已经估计出了 ? i ,则要按式⑩算出序列 ? yt ? ? t ? n ? 1, n ? 2, ?, N ? 。式○表 示,需要对序列 ? yt ? 拟合一个 MA(m)模型,经过化简得到如下方程组:
2 Ry ,k ? ? a ? ? j? j ? k j ?0 m

12 ○

? 0 ? ?1; j ? k ? m; k ? 0,1, 2, ?, m
2 在此方程组中,Ry ,k 是序列 ? yt ? 的自协方差函数, 可由 ? yt ? 估计出;? j 和 ? a 为未知, 2 因此, 可由这 m+1 个方程解得 ? j 和 ? a 的 m+1 个参数。 但要注意, 此时的 Ry ,k 是序列 ? yt ? 2 12 的分布特性,不是观测时序 ? xt ? 的 Rk ,即 Ry ,k 要由 ? yt ? 算出。式○是关于 ? j 和 ? a 的非线

性方程组。为解该非线性方程组,本文采用 Gauss-Seidel 法,效果良好。 ⑵ 模型定阶 ARMA(n,m)模型的阶有多种方法确定, 本文采用的是准则函数定阶。 所谓准则函数, 就是它既考虑某一模型拟合时对原始数据的接近程度, 同时也考虑模型中所包含待定参 数的个数,建模时按照这种函数的取值判断模型的优劣,以决定取舍。使准则函数达到 极小是最佳模型。 本文采用的准则函数是 AIC 准则函数,其定义为
2 AIC ? p ? ? N ln ? a ? 2 p

13 ○

2 式中,? a 是残差的方差; p 是模型的阶数,对于 ARMA(n,m)模型, p ? m ? n ;

对于 AR(n)模型, p ? n 。 建模时, p 从某一值开始逐次增加模型的阶数,对数据进行模型拟合时,准则 函数有下降的趋势,当达到某一阶数 n0 时,准则函数达到极小,此阶数即为该准则 函数决定的最佳模型阶数。 主要步骤如下: a. 给定阶模型阶数上限, n ? 2 , 令 按模型参数的估计方法计算出 ARMA(n,m)
2 的模型参数和残差的方差 ? a 及准则函数值 AIC;

b. 当 n 由低到高增长时,以与式①同样方法算出 ARMA(n+1,m)的模型参数和
11

2 残差的方差 ? a 及准则函数值 AIC;

c. 取最小 AIC 值相应的阶数和参数为最终确定的理想阶数和参数。 最后,通过在 MATLAB 中编程进行计算,确定了模型的阶数为 n=6 和 m=10, 并估计出了时序模型的参数。在此基础上就可以对各机组进行风电场功率实时预 测。 (各机组预测值见附近) 图 6 为 PA 机组功率序列自相关函数图和偏相关函数图,图 7 为 PA 机组真实 值与预测值之间的残差图。图 8 为 PA 机组采用 ARMA 模型滚动地预测 16 个时点 的风电功率数值。

图 6 原功率序列自相关图和偏相关图

图 7 残差图

12

图8

ARMA 模型预测值与真实值比较

4.4 三种预测模型的结果分析及比较 ⑴ 模型的准确率
1 r1 ? (1 ? N

?(
k ?1

N

PMk ? PPk 2 ) ) ? 100% Cap

其中, r1 为预测计划曲线准确率; PMk 为 k 时段的实际平均功率; PPk 为 k 时段的预 测平均功率; N 为日考核总时段数; Cap 为风电场开机容量。 (2)模型的合格率
? 1 N ? r2 ? ? Bk ? 100% N k ?1 ? ? PMk ? PPk ) ? 100% ? 75% , Bk ? 1 ?(1 ? Cap ? ? PMk ? PPk ) ? 100% ? 75% , Bk ? 0 ?(1 ? Cap ?

根据模型的准确率和合格率公式, 计算得出采用三种预测模型得到的 2006 年 5 月 31 日各机组发电功率的准确率及合格率,准确率如表 2 所示,合格率如表 3 所 示。 表 2 各模型预测的准确率
PA 多元二项回归 神经网络 ARMA 66.8 70.5 76.1 PB 73.4 73.8 78.6 PC 69.5 69.3 76.9 PD 65.2 70.8 78.7 P4 68.6 71.5 79.8 P58 69.2 73.5 80.8

13

表 3 各模型预测的合格率
PA 多元二项回归 神经网络 ARMA 73.9 85.6 87.5 PB 75 88.5 81.3 PC 70.8 76.2 82.3 PD 78.1 84.3 85.4 P4 76.5 84.9 85.8 P58 78.6 85.8 87.6

从表 2 和表 3 可知,时间序列中的自回归移动平均模型(ARMA)对风电功率 进行预测的准确率及合格率最高,所以推荐采用该模型对各机组风电功率进行预 测。

5 问题二的解答
风力发电的能量密度较低,风电场等效满发年利用小时数通常在 2000h 左右。若 按风电场群总装机容量来规划风电外送输电容量,很有可能造成输电容量的过度配置, 从而降低输电系统的运行效益,若风电外送输电容量配置过低,虽可以降低输电投资成 本,但可能在风电场群整体出力较大的部分时段上因输电阻塞而造成弃风损失,风电大 规模集中并网是实现风能大规模开发利用的重要途径。 在我国主要采用集中开发的方式 开发风电,各风电机组功率汇聚通过风电场或风电场群(多个风电场汇聚而成)接入电 网。众多风电机组的汇聚会改变风电功率波动的属性,从而影响预测的误差。因此,研 究风电机组汇聚给风电功率预测误差带来的影响, 便于我们提出一种风电场群外送输电 容量的配置优化方法。 5.1 对单台风电机组功率的相对预测误差与多机总功率预测的相对误差的比较 (1)相对预测误差
R? Pr ? Pp Pr ? 100%

其中, Pr 为机组的真实功率, Pp 为预测的机组功率, R 为相对预测误差。 (2) 结果计算及比较 在 MATLAB 中利用问题一中采用自回归移动模型预测的结果进行相对误差计算, 分别计算 5 月 31 至 6 月 6 日单台风电机组功率(PA,PB,PC,PD)的功率相对预 测误差和多机总功率的相对预测误差,并在 MATLAB 中作出 PA、P4 和 P58 的相对误 差图,如图 9 所示。表 4 给出的是它们的平均相对误差。

14

图 9 相对预测误差 表 4 各机组的平均相对预测误差
PA 相对预测误差 23.72 PB 22.70 PC 20.37 PD 17.76 P4 17.59 P58 15.93

从图 9 中可以看出, 单台风电机组功率的相对预测误差与多机总功率预测的相 对误差变化趋势是一样的。根据表 4 中数据,风电机组汇聚使得其风电功率相对预 测误差与单台风电机组风电功率相对预测相比减小, 可知风电机组的汇聚有利于风 电功率的预测。

6 问题三的解答
6.1 模型的建立 为了提高风电功率实时预测的准确程度,改善风电联网运行的性能,问题 3 在 问题 1 的基础上,重新构建了实时预测模型。 我们首先分析了影响风电功率的各影响因素,主要有风速和风向,空气密度等 因素,再结合给出的数据信息,从数据中我们可以得到风速和风向信息,即邻近时 间段的发电功率序列 [ xt , xt ?1 , ???, xt ?m1 ] ;也可以挖掘到空气密度信息,因为空气密度 与温度和气压有关,而邻近几天中同一时刻的温度和气压很接近,即邻近几天中同 一时刻的发电功率序列 [ yt , yt ?1 , ???, yt ?m1 ] 。分别利用这两个时间序列,采用自回归移 动平均模型(ARMA)进行预测。 由于不知道 ARMA 模型所得到的两个预测结果所占的权重,我们再把这两个 预测的风电功率作为 BP 神经网络模型的输入,神经网络最后输出的结果即为最后 的预测值。 原理示意图如图 10 所示.

15

数 据 序 列

时间序列xi

ARMA1 . .. .. . 预测值 预测值

时间序列yi

ARMA2

神经网络组 神经网络组 合器 合器

图 10 原理示意图 所以最后所建立的预测模型为: n1 m1 ? xt ? ? ?1i xt ?i ? ?1t ? ? ?1 j?1(t ? j ) ? i ?1 j ?1 ? n2 m ? yt ? ? ?2i yt ?i ? ? 2t ? ? ?1 j?1(t ? j ) ? i ?1 j ?1 ? ? P ? sim(net ,[ x , y ]) t t ? ? 6.2 模型的求解 对于两个时间序列的自回归移动平均模型(ARMA)参数的确定同 4.3.2 一样 的求解方法;对于神经网络机构参数的确定同 4.2.2 一样。 计算出自回归移动平均模型和神经网络参数后, 就可对各机组风电功率进行实 时预测,该处仅对全场 58 台机组总输出功率做了预测,不结果见表 5。并把预测值 和题目给出值在 MATLAB 中画出,如图 11 所示。 表 5 对 P58 实时预测的值
P58 5 月 31 6月1 6月2 6月3 6月4 6月5 6月6 1 18756.09 6057.543 20186.96 1262.14 25502.71 5587.081 16314.87 2 13744.7 6170.201 17733.96 3779.743 21544.19 4311.316 16104.32 3 11941.2 9870.103 19315.31 7441.134 21396.46 2812.063 16445.23 4 14536.65 11207.05 18344.95 6129.398 22111.58 2561.524 16572.15 ? 94 95 96 19880 1019.985 28235.92 15465.8 8552.65 ? 6400.414 5930.791 5028.645 ? 22476.51 22112.02 ? 8671.583 5074.95 ? 34093.07 31885.2 ? ? 9092.893 9947.789 ? 14325.42 11218.34

8981.03 7712.093 7268.721

16

图 11 模型预测值与真实值比较 6.3 实时预测精度影响因素 本文主要利用已知数据进行风电功率实时预测, 所以影响实时预测精度的首要因素 是已知数据的准确性,然而已知数据都是通过传感器采集获得,所以获得数据不一定准 确和完整,这些数据包括历史发电功率、风速、风向、气温、气压及机组自身特性等; 其次,风电场自身的运行维护,运行人员对机组的开停等随机因素也会给风电功率预测 系统带来问题。所以,风电预测精度不可能到达 100%。

7. 模型的评价、改进及推广
7.1 模型的评价 优点: 1.本文提出了三种预测模型, 神经网络和自回归移动平均模型都对风电功率实时 预测有较高的预测准确性, 尤其自回归移动平均模型很适合数据波动性大及没有规律的 预测; 2.在问题三中, 本文首先把原始时间序列按照天数和时间段数分成了两个时间序 列,利用两个自回归移动平均模型分别进行预测,由于不清楚两个时间序列预测的值的 权重,又充分利用了神经网络特点,把两个预测值作为神经网络的输入值,又神经网络 通过历史数据决定各个时间序列的权重,很好的提高了实时预测的准确性。 缺点: 1.对于所给数据准确性依耐太大,如果数据测量的不够准确,则不可能有较高的预 测精度。 2.本文仅仅利用了历史各发电机组的输出功率进行预测, 且文中认为历史数据都是 绝对准确的,这在实际中是不可能的。 7.2 模型的改进 1.对于在应用多元二项式回归模型、反向传播的 BP 神经网络模型、时间序列中的 自回归移动平均模型(ARMA)对风电功率进行预测之前,对部分不合理数据进行必要的 处理。 7.3 模型的推广 本文中应用的三种预测模型,这些模型可以应用到很多预测和控制领域,尤其是时
17

间序列和变化没有较强的规律可循的数据,时间序列中的自回归移动平均模型最为适 合。

8.参考文献
[1] 范高峰,王伟胜,刘纯.基于人工神经网络的风电功率短期预测系统[J].电网技术, 2008. [2] 丁明,张立军,吴义纯.基于时间序列的风电场风俗预测模型[J].电力自动化设备, 2005. [3] 廖明夫,R.Gasch,J.Twele.风力发电技术[M].西北工业大学出版社,2009. [4] 倪玮,许光(译) ,Manfred Stiebler(著).风力发电系统[M].机械工业出版社, 2011. [5] 庞博.大容量风电机组并网运行造成的影响[J].科技情报开发与经济,2011. [6] 谷兴凯,范高峰,王晓蓉等.风电功率预测技术综述[J].电网技术,2007. [7] 戚双斌,王维庆,张新燕.基于 SVM 的风速风功率预测模型[J].可再生能源,2010. [8] 王彩霞,鲁宗相,乔颖等.基于非参数回归模型的短期风电功率预测[J].电力系统 自动化,2010. [9] 韩爽, 杨勇平, 刘永前.三种方法在风速预测中的研究应用[J].华北电力学报, 2008.

9.附录
主要源程序: (1) 回归预测 clear;clc a=xlsread('PA.xls','机组 A 风功率实测数据','A1:CR28'); temp=a(1:21,:)';temp=temp(:); k=32; for i=1:21*3-1 x(i,:)=temp(k*(i-1)+1:k*i); y(i)=temp(k*i+1); end x(21*3,:)=temp(k*i:k*(i+1)-1); y(21*3-1)=temp(k*i); y(21*3)=temp(k*(i+1)); long=size(x,1); x=[ones(long,1),x]; y=y'; [b,bint,r,rint,stats]=regress(y,x,0.05); rcoplot(r,rint) %剔除点 j=0; for i=1:63 if i==17 || i==30 || i==35|| i==43|| i==48 else j=j+1;
18

x1(j,:)=x(i,:); y1(j)=y(i); end end y1=y1'; % figure [b,bint,r,rint,stats1]=regress(y1,x1,0.05); % rcoplot(r,rint) j=0; for i=1:58 if i==12 || i==20 || i==30|| i==44 else j=j+1; x2(j,:)=x1(i,:); y2(j)=y1(i); end end y2=y2'; % figure [b,bint,r,rint,stats2]=regress(y2,x2,0.05); % rcoplot(r,rint) j=0; for i=1:54 if i==44 else j=j+1; x3(j,:)=x2(i,:); y3(j)=y2(i); end end y3=y3'; figure [b,bint,r,rint,stats3]=regress(y3,x3,0.05); rcoplot(r,rint) clear i j k stats1 stats2 temp x1 x2 y1 y2 long %预测 x0=a(21,65:96); for i=1:96 xx(i)=[1,x0]*b; x0=[x0(2:end),xx(i)]; end

19

%多元二项式 clear;clc a=xlsread('PA.xls','机组 A 风功率实测数据','A1:CR28'); temp=a(1:21,:)';temp=temp(:); k=8; for i=1:21*12-1 x(i,:)=temp(k*(i-1)+1:k*i); y(i)=temp(k*i+1); end x(21*12,:)=temp(k*i:k*(i+1)-1); y(21*12-1)=temp(k*i); y(21*12)=temp(k*(i+1)); y=y'; rstool(x,y,'interaction'); %quadratic purequadratic %预测 x0=a(21,89:96); for i=1:96 x1x=x0(1)*x0(2:end); x2x=x0(2)*x0(3:end); x3x=x0(3)*x0(4:end); x4x=x0(4)*x0(5:end); x5x=x0(5)*x0(6:end); x6x=x0(6)*x0(7:end); x7x=x0(7)*x0(8); xx=[x0,x1x,x2x,x3x,x4x,x5x,x6x,x7x]; yy(i)=[1,xx]*beta; x0=[x0(2:end),yy(i)]; end (2) 神经网络预测 clear;clc a=xlsread('PA.xls','机组 A 风功率实测数据','A1:CR28'); for ins=1:96 temp=a(1:21,ins); k=5; for i=1:21-k+1 x(1:k,i)=temp(i:k+i-1); end shuju=x; shuju=shuju/850; Xmin=-0.03*ones(k-1,1);Xmax=3.3*ones(k-1,1); pr=[Xmin,Xmax]; p=shuju(1:k-1,:); goal=shuju(k,:);
20

net = newff(pr,[8,5,1],{'logsig','logsig','logsig'}); net.trainParam.show = 10; net.trainParam.lr = 0.01; net.trainParam.goal = 1e-10; net.trainParam.epochs = 50000; net = train(net,p,goal); %预测 x0=x(2:k,21-k+1); x0=x0/850; xx(ins)=sim(net,x0); xx(ins)=xx(ins)*850; end (3) 自回归移动模型预测 clear;clc; a1=xlsread('PA.xls','机组 A 风功率实测数据','A1:CR28'); a2=xlsread('PB.xls','机组 B 风功率实测数据','A1:CR28'); a3=xlsread('PC.xls','机组 C 风功率实测数据','A1:CR28'); a4=xlsread('PD.xls','机组 D 风功率实测数据','A1:CR28'); a=a1+a2+a3+a4; y=a(1:28,:)';y=y(:); subplot(2,1,1) autocorr(y(1:2016)); %原序列的自相关函数图 MA(q),观察系数是否在区间 (-2T^(1/2),-2T^(1/2))内 subplot(2,1,2) parcorr(y(1:2016)); %原序列的偏相关函数图 AR(p),观察系数是否在区间 (-2T^(1/2),-2T^(1/2))内 %如果该序列不是平稳的做差分图,否则跳过该步 DX=y; [H,PValue,TestStat,CriticalValue] = dfARDTest(y,[],0.05,'T'); %是否是稳 定序列 for i = 1:10 if H == 1 break; else DX=diff(y,i); %进行差分 [H,PValue,TestStat,CriticalValue] = dfARDTest(DX,[],0.05,'T'); end end figure subplot(2,1,1) autocorr(DX);
21

subplot(2,1,2) parcorr(DX); %对差分后的序列做拟合和预测,求出最好的阶数 z=iddata(DX);%将 DX 转化为 matlab 接受的格式 test = []; for p = 1:10 %自回归对应 PACF,给定滞后长度上限 p 和 q, 一般取为 T/10、 ln(T) 或 T^(1/2),这里取 T/10=12 for q = 1:10 %移动平均对应 ACF m = armax(z(1:2016),[p q]); AIC = aic(m); %armax(p,q),选择对应 FPE 最小,AIC 值最小的模型 test = [test;p q AIC]; end end for k = 1:size(test,1) if test(k,3) == min(test(:,3)) %选择 AIC 值最小的模型 p_test = test(k,1); q_test = test(k,2); break; end end %拟合过程 m1 = armax(z(1:2016),[p_test q_test]); %armax(p,q),[p_test q_test] 对应 AIC 值最小 figure e = resid(m1,z(1:2016)); %拟合做残差分析 plot(e); %检验残差的自相关和偏相关函数 figure subplot(2,1,1) autocorr(e.OutputData) %一阶差分序列 z 自相关函数图 MA(q),置信水平 0.95 subplot(2,1,2) parcorr(e.OutputData) %一阶差分序列 z 偏相关函数图 AR(p), 置信水平 0.95 %预测过程 pp=predict(m1,z,16); figure plot(z,'r',pp,'b'); po = pp.OutputData; %保存数据 for i=1:7 A_data(i,:)=po(2017+96*(i-1):2017+95+96*(i-1));
22

end xlswrite('P4_3.xls',A_data); (4) 准确率及合格率计算程序 clear;clc %准确率 pa=xlsread('PA.xls','机组 A 风功率实测数据','A22:CR28'); pa3=xlsread('PA3.xls','Sheet1'); relative_A=abs((pa-pa3)./pa); relative_A=relative_A'; % plot(relative_A(:)) pb=xlsread('PB.xls','机组 B 风功率实测数据','A22:CR28'); pa3=xlsread('PB3.xls','Sheet1'); relative_B=abs((pb-pa3)./pb); relative_B=relative_B'; % plot(relative_B(:)) pc=xlsread('PC.xls','机组 C 风功率实测数据','A22:CR28'); pa3=xlsread('PC3.xls','Sheet1'); relative_C=abs((pc-pa3)./pc); relative_C=relative_C'; % plot(relative_C(:)) pd=xlsread('PD.xls','机组 D 风功率实测数据','A22:CR28'); pa3=xlsread('PD3.xls','Sheet1'); relative_D=abs((pd-pa3)./pd); relative_D=relative_D'; % plot(relative_D(:)) p4=pa+pb+pc+pd; pa3=xlsread('P4_3.xls','Sheet1'); relative_4=abs((p4-pa3)./p4); relative_4=relative_4'; % plot(relative_4(:)) a58=xlsread('P58.xls','58 台机组总风功率数据','A22:CR28'); pa3=xlsread('P58_3.xls','Sheet1'); relative_58=abs((a58-pa3)./a58); relative_58=relative_58'; % plot(relative_58(:)) x=1:672; plot(x,relative_A(:),'b',x,relative_4(:),'r',x,relative_58(:),'+')

23

说明: (1)对于 PA、PB、PC、PD、P4、P58 的风电功率的预测及准确率与合格率计 算,程序可能在运行中需要小的调整。 (2)运行程序时,请把附件中所给的数据一同放在 MATLAB 工作目录下。

24


友情链接:省心范文网 | 省心范文网 | 省心范文网 | 省心范文网 | 省心范文网 | 省心范文网 | 学习资料共享网 | 兰溪范文 | 伤城文章网 | 酷我资料网 | 省心范文网 | 海文库 | 学习资料共享网 | 兰溪范文 | 伤城文章网 | 学习资料共享网 | 兰溪范文 | 伤城文章网 | 酷我资料网 | 省心范文网 | 海文库 | 学习资料共享网 | 兰溪范文 | 伤城文章网 | 学习资料共享网 | 兰溪范文 | 伤城文章网 | 酷我资料网 | 省心范文网 | 海文库 | 学习资料共享网 | 兰溪范文 | 伤城文章网 |
592 | 832 | 219 | 462 | 255 | 549 | 340 | 949 | 418 | 581 | 499 | 137 | 331 | 769 | 241 | 400 | 358 | 270 | 687 | 691 | 518 | 168 | 332 | 994 | 500 | 219 | 786 | 989 | 477 | 287 | 383 | 325 | 307 | 793 | 248 | 179 | 818 | 812 | 112 | 681 | 988 | 420 | 650 | 723 | 554 | 878 | 128 | 130 | 773 | 617 | 303 | 659 | 599 | 773 | 838 | 484 | 105 | 679 | 226 | 434 | 575 | 521 | 428 | 179 | 474 | 400 | 127 | 978 | 249 | 814 | 222 | 607 | 185 | 386 | 336 | 102 | 847 | 873 | 947 | 103 | 155 | 739 | 467 | 897 | 823 | 424 | 458 | 883 | 665 | 999 | 411 | 692 | 661 | 537 | 643 | 400 | 291 | 390 | 672 | 688 | 965 | 219 | 250 | 749 | 337 | 733 | 769 | 784 | 430 | 944 | 467 | 734 | 969 | 650 | 673 | 221 | 247 | 158 | 688 | 478 | 517 | 564 | 640 | 133 | 304 | 229 | 707 | 406 | 513 | 771 | 181 | 396 | 548 | 362 | 743 | 797 | 721 | 476 | 216 | 839 | 428 | 583 | 928 | 852 | 625 | 422 | 778 | 621 | 402 | 859 | 771 | 240 | 239 | 829 | 806 | 913 | 460 | 152 | 433 | 388 | 295 | 433 | 972 | 864 | 380 | 940 | 967 | 828 | 998 | 435 | 752 | 586 | 525 | 196 | 974 | 125 | 785 | 192 | 335 | 150 | 195 | 367 | 779 | 530 | 897 | 918 | 380 | 837 | 568 | 528 | 889 | 882 | 948 | 358 | 1000 | 559 | 604 | 355 | 881 | 825 | 678 | 683 | 104 | 159 | 857 | 919 | 435 | 717 | 600 | 366 | 815 | 642 | 608 | 738 | 704 | 657 | 746 | 273 | 643 | 339 | 838 | 684 | 793 | 276 | 713 | 940 | 188 | 438 | 686 | 222 | 580 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:3088529994@qq.com