摘要
本文要解决的是风电功率预测问题,风电输出功率预测对风电发电厂具有重要的意义,为了对输出功率进行预测,建立了三个单项预测模型、一个综合评价模型和一个组合预测模型。
对于问题一:在给出四台风电机组及全场机组发电输出功率情况下,对数据进行分析,建立了模型、BP神经网络模型、二次指数平滑模型对预测量进行预测。其中,在评价三个模型的准确性时建立了综合评价模型。以准确率和合格率作为评价指标,加权平均得到各预测的评价指数。在单项预测模型中推荐BP神经网络预测模型。
模型 | 实际预测误差(%) | 准确率 | 合格率 | 评价指数 |
ARMA(p,q)模型 | 0.8192 | 0.8211 | 0.8632 | 0.84215 |
二次指数平滑模型 | 3.7006 | 0.8429 | 0.8761 | 0.8595 |
BP神经网络模型 | 0.6221 | 0.19 | 0.96 | 0.94075 |
对于问题三:为提高预测精度,利用在问题一建立的三种单项预测模型。结合各模型的优点,进行组合,建立了基于向量夹角余弦的最优化组合预测模型。通过对三种组合预测模型的优化组合,对58台机组在a时段的总输出功率进行了预测,并对模型进行考核,准确率提高到了92%。且运用问题一中的综合评价模型得到组合预测模型的评价指数达到了0.9549。通过组合模型对未来进行预测,对6月7日58台机组总功率进行一次滚动的预测。
时段 | 预测值 | 时段 | 预测值 | 时段 | 预测值 | 时段 | 预测值 |
1 | 11314.2 | 5 | 12096.06 | 9 | 14872.46 | 13 | 15197.04 |
2 | 12116.5 | 6 | 12756.03 | 10 | 16370.32 | 14 | 19310.44 |
3 | 12081.7 | 7 | 13870.3 | 11 | 17008.26 | 15 | 19638. |
4 | 11618.1 | 8 | 13097.52 | 12 | 17654.08 | 16 | 20921.31 |
【关键词】 指数平滑 神经网络 综合评价 组合模型
1. 问题重述
1.1 问题的背景
风能是一种可再生、清洁的能源,风力发电是最具大规模开发技术经济条件的非水电再生能源。现今风力发电主要利用的是近地风能。
近地风具有波动性、间歇性、低能量密度等特点,因而风电功率也是波动的。
大规模风电场接入电网运行时,大幅度地风电功率波动会对电网的功率平衡和频率调节带来不利影响。
如果可以对风电场的发电功率进行预测,电力调度部门就能够根据风电功率变化预先安排调度计划,保证电网的功率平衡和运行安全。
因此,如何对风电场的发电功率进行尽可能准确地预测,是急需解决的问题。
1.2 问题的相关信息
根据电力调度部门安排运行方式的不同需求,风电功率预测分为日前预测和实时预测。日前预测是预测明日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.3 需解决的问题
问题一:风电功率实时预测及误差分析。
请对给定数据进行风电功率实时预测并检验预测结果是否满足附件1中的关于预测精度的相关要求。具体要求:
1) 采用不少于三种预测方法(至少选择一种时间序列分析类的预测方法);
2)预测量:
a.PA, PB, PC, PD; b.P4; c.P58。
3)预测时间范围分别为(预测用的历史数据范围可自行选定):
a. 5月31日0时0分至5月31日23时45分;
b. 5月31日0时0分至6月6日23时45分。
4)试根据附件1中关于实时预测的考核要求分析你所采用方法的准确性;
5)你推荐哪种方法?
问题二:试分析风电机组的汇聚对于预测结果误差的影响。
在我国主要采用集中开发的方式开发风电,各风电机组功率汇聚通过风电场或风电场群(多个风电场汇聚而成)接入电网。众多风电机组的汇聚会改变风电功率波动的属性,从而可能影响预测的误差。
在问题1的预测结果中,试比较单台风电机组功率(PA,PB,PC,PD)的相对预测误差与多机总功率(P4,P58)预测的相对误差,其中有什么带有普遍性的规律吗?从中你能对风电机组汇聚给风电功率预测误差带来的影响做出什么样的预期?
问题三:进一步提高风电功率实时预测精度的探索。
提高风电功率实时预测的准确程度对改善风电联网运行性能有重要意义。请你在问题1的基础上,构建有更高预测精度的实时预测方法(方法类型不限),并用预测结果说明其有效性。
通过求解上述问题,请分析论证阻碍风电功率实时预测精度进一步改善的主要因素。风电功率预测精度能无限提高吗?
2. 模型的假设与符号说明
2.2 符号说明
符号 | 说明 |
时刻风电机组发电输出功率的实际值 | |
时刻风电机组发电输出功率的预测值 | |
第种预测方法在时刻风电机组发电输出功率的预测值 | |
实时预测误差 | |
均方根误差 | |
准确率 | |
合格率 | |
次简单移动平均值 | |
次指数平滑移动平均值 | |
时段的实际平均功率 | |
时段的预测平均功率 | |
日常考核总时段数 | |
Cap为风电场开机容量 | |
相对误差不确定度 | |
表示预测对象实际值向量 | |
表示第种单项预测方法预测值向量 | |
表示组合预测值向量 | |
第种单项预测值向量与预测对象实际值向量的夹角的余弦 | |
组合预测值向量与实际值向量的夹角余弦 |
假设1: 由第一次滚动预测出的数据对第二次预测没有影响
假设2: 各个时点的实际值和预测值都为15钟内的平均值
假设3: 进行预测时,预测值是每次最新预测的数据作为预测值
假设4: 风发电机开启后正常工作
假设5: 在考核指标中准确率与合格率所占比重相同
3. 问题分析
本题主要是在给定风电机组在一段时间的输出功率情况下,研究机组的输出功率的预测问题。其中发电厂是由众多单台机组组成,一次每一台机组可以当成一个小型发电厂。由于预测的方法相同,需要预测的量较多。更改下需要预测的历史数据就可以。
针对问题一:是要对风电机组的输出功率进行预测,首先探讨实际值服从的分布规律,选择适当的预测方法。我们建立了模型、BP神经网络模型、二次指数平滑模型。在时段a(5月31日0时0分至5月31日23时45分)中选取前一天的数据作为预测初始值;在时段b(5月31日0时0分至6月6日23时45分)中选取前一周的数据进行滚动预测。通过预测出的功率与实际功率对预测的准确率、合格率、上报率计算,选取合格率、准确率作为评价指标,建立综合评价模型。通过对比三个预测模型的评价指数对比出三个模型的优劣,选择出最佳预测模型。
针对问题二:是风电组汇聚对预测结果误差的分析,其中单台机组预测产生的误差对多台机组产生的相对误差具有相关性。首先根据问题一中推荐的预测模型,对六个预测量在时段a中预测的相对误差进行定性分析,观测其中的规律。通过对单机组的相对误差与组合机组的相对误差进行量化分析,就有两种影响。四台机组与P4的相关性及与P58的相关性,即可说明汇聚对于预测结果误差的影响。通过误差的影响做出的预期就是汇聚影响后对预测值的期望值。
针对问题三:要探寻精度更高的预测模型,在第一问中选用了三个单项预测模型。在这三种预测模型中由于考虑的范围不同,各自存在有优点和不足。因此可以将三种预测模型组合在一起,让他们互相补充达到最为理想的预测模型,我们建立了基于向量夹角余弦的最优组合预测模型模型。通过分析各模型之间的联系,减小预测的误差,提高预测精度。并对58台组成的总机组进行预测,分析误差对比单项预测的误差。同时通过问题一中建立的综合评价模型,计算组合预测模型的评价指数,便可得知改进的模型有效性。对比组合预测与预测,通过分析组合预测对精度的提升。让预测值更加精确,使得电厂效率得到提高。
4. 数据处理
由58台额定输出功率为850kW风电机组构成的风电厂的总装机容量为49300kW。2006年5月10日至2006年6月6日时间段内,该风电场中指定的四台风电机组另该四台机组总输出功率为P4)及全场58台机组总输出功率数据(记为P58)。
表1 各风电机组的输出平均值
机组编号 | PA | PB | PC | PD | P4 | P58 |
平均输出功率/kW | 256 | 262 | 263 | 257 | 259.5 | 13120 |
图1 5月30日各机组输出功率随时间的变化趋势图
上图表明,5月30日PA、PB、PC、PD随时间的变化规律,近似趋近于在300kw左右呈线性变化,因此可以采用线性变化的模型对未来的风电功率进行预测。
图2 5月30日全场58台机组总输出功率随时间的变化趋势图
上图表明,全场58台机组总输出功率随时间近似趋于线性下降的趋势,一天之中晨间时风电机的总输出功率较大,而晚间时较小。适合运用线性变化的模型进行实时预测。
5. 问题一的解答
针对问题一是对风电功率实时预测及误差分析,建立了模型、BP神经网络模型、二次指数平滑模型。
5.1 模型准备
时间序列理论[1]
时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序列的方法构成数据分析的一个重要领域,即时间序列分析。
时间序列根据所研究的依据不同,可有不同的分类。
1.按所研究的对象的多少分,有一元时间序列和多元时间序列。
2.按时间的连续性可将时间序列分为离散时间序列和连续时间序列两种。
3.按序列的统计特性分,有平稳时间序列和非平稳时间序列。如果一个时间序列的概率分布与时间t无关,则称该序列为严格的(狭义的)平稳时间序列。如果序列的一、二阶矩存在,而且对任意时刻t满足:
(1)均值为常数 、(2)协方差为时间间隔τ 的函数。
4.按时间序列的分布规律来分,有高斯型时间序列和非高斯型时间序列。
神经网络理论[2]
BP ( Back Pro pagation)神经网络是一种按误差逆传播算法训练的多层前馈网络。该模型由信号的正向传播和误差的反向传播组成,通过训练,不断调整神经元连接权值和阈值,直至达到设定训练目标为止。BP神经网络具有良好的非线性组合特性,是一种全局逼近网络,具有超强的学习能力,能够实现输入和输出之间的高度非线性映射,理论上可以逼近任一连续函数。
BP 神经网络模型一般由3层构成,分别为输入层、隐含层和输出层,它的结构如下图所示 。隐层神经元转移函数常采用 Sigmoid函数,输出层采用 Purelin 函数,整个网络的输出可以取任意值。
图3 BP神经网络机构图
5.2 模型一——模型
5.2.1 模型一的建立
首先对各个时间序列其进行差分处理得到较平稳的新时间序列。
建立ARMA模型:
令 ,
则模型记为
其中,自回归系数满足,;和无公共因子;
和的根在单位圆外。
模型的识别:
自相关:过程的第j阶自相关系数,自相关函数记为
偏自相关系数:偏自相关系数度量了消除中间滞后项影响后两滞后变量之间的相关关系。偏自相关函数记为
模型的定阶:
对偏自相关系数的显著性检验来确定适当阶数p的方法。偏自相关系数中的第k个系数我们用表示。要判断在0.05显著性水平下是否为0,只要考察偏自相关系的数值是否落在下面95%的置信区间内。
即:
5.2.1 模型一的求解
在对a时段的预测量进行预测时,选用前一天的数据作为原始数据。通过对预测量的滚动预测,每次预测16个时间段的输出功率时间段。在进行下一个预测时选用原始数据时往后移动一个数据,预测出来的数据便是时间段的输出功率。
通过matlab软件辅助求解(源程序见附录),得到在一次预测中的预测结果。
表2 ARMA模型对第一次预测结果
时段 | 实际值 | 预测值 | 相对误差 | 时段 | 实际值 | 预测值 | 相对误差 |
1 | 249.0938 | 479.5278 | -0.61972 | 9 | 496.2188 | 395.5172 | 0.186927 |
2 | 355.3125 | 480.4782 | -0.13551 | 10 | 375.6563 | 392.3565 | -0.07402 |
3 | 362.8125 | 478.0456 | -0.11204 | 11 | 380.8125 | 399.9306 | -0.05948 |
4 | 323.8125 | 473.2302 | -0.24597 | 12 | 410.625 | 392.7353 | 0.017444 |
5 | 338.625 | 474.2207 | -0.19147 | 13 | 106.9688 | 388.5848 | -2.77177 |
6 | 411.9375 | 476.0445 | 0.020575 | 14 | 12 | 379.0452 | -32.6218 |
7 | 3.6875 | 466.5963 | -0.10632 | 15 | -3.5625 | 377.9041 | 114.2525 |
8 | 405.375 | 465.3109 | 0.004719 | 16 | 10.78125 | 381.0084 | -36.4226 |
表3 ARMA模型a时段所有量预测结果
预测
时段 | ||||||
1 | 479.5278 | 454.5298 | 434.2279 | 405.372 | 1545.342 | 10473.48 |
2 | 480.4782 | 459.1821 | 439.5256 | 412.711 | 1546.249 | 10477.25 |
3 | 478.0456 | 454. | 438.76 | 407.9515 | 1547.31 | 10453.97 |
4 | 473.2302 | 452.4472 | 432.8442 | 406.7052 | 1537.234 | 10417.4 |
… | … | … | … | … | … | … |
93 | 262.5605 | 234.0508 | 295.284 | 227.4559 | 973.4937 | 5846.779 |
94 | 290.1766 | 256.033 | 325.2163 | 205.2666 | 943.9436 | 5809.533 |
95 | 235.563 | 312.11 | 298.4703 | 207.3606 | 987.8256 | 5839.666 |
96 | 235.2822 | 263.9324 | 255.9504 | 177.7817 | 905.0524 | 6279.908 |
在对b时段的预测量进行预测时,选用前一周的数据作为原始数据。同样的预测方法对时段b进行预测,得到的所有预测结果见下表。
表4 ARMA模型b时段的预测结果
日期
时段 | 5-31 | 6-1 | 6-2 | 6-3 | 6-4 | 6-5 | 6-6 |
1 | 19679.12 | 15815.59 | 29677.29 | 10744.59 | 22359.24 | 7948.323 | 19797.22 |
2 | 22198.25 | 16636 | 266.63 | 9357.228 | 234.8 | 3772.037 | 22119.73 |
3 | 181.52 | 12276.72 | 15997.82 | 25.651 | 25178.52 | 7700.781 | 25262.41 |
4 | 22456.86 | 16184.54 | 24570.41 | 4695.866 | 32181.2 | 3741.107 | 23847.09 |
… | … | … | … | … | … | … | … |
93 | 12474.85 | 27094.24 | 6917.47 | 36308.34 | 14138.26 | 10733.07 | 12496.01 |
94 | 12098.35 | 26653.85 | 5108.818 | 32454.11 | 45.39 | 195.02 | 18556.68 |
95 | 10816.33 | 25805.39 | 13504.44 | 29602.99 | 29.387 | 20096.61 | 16923.22 |
96 | 11914.27 | 16866.85 | 8132.83 | 25392.31 | 6887.207 | 20008.05 | 8761.926 |
由在b时段对各预测量的方法相同,做出的数据表格也相同。在此不一一列举。完整数据见附录。
5.2.3 模型一的结果分析
由预测值与实际值进行对比分析,在此选取一天的预测值与实际值做出对比图如下图。
图4 对P58一天的预测与实际值比较
由上图可以直观的说明,模型预测的结果和实际值吻合得比较好,预测结果较为满意。
5.3 模型二——二次指数平滑模型
5.3.1 模型二的建立
一次移动平均实际上认为最近N 期数据对未来值影响相同,都加权 1/N;而N 期以前的数据对未来值没有影响,加权为 0。但是,二次及更高次移动平均数的权数却不是 1/N,且次数越高,权数的结构越复杂,但永远保持对称的权数,即两端项权数小,中间项权数大,不符合一般系统的动态性。一般说来历史数据对未来值的影响是随时间间隔的增长而递减的。所以,更切合实际的方法应是对各期观测值依时间顺序进行加权平均作为预测值。指数平滑法可满足这一要求,而且具有简单的递推形式。
设时间序列为为加权数,,一次指数平滑公式为:
移动平均数的递推公式:
将作为的最佳估计,则有:
二次平移计算公式
预测模型为:
也就是以第t期指数平滑值作为t+1期预测值。
加权系数的选择
在进行指数平滑时,加权系数的选择是很重要的。所以a的大小规定了再新预测值中新数据和原预测值所占的比重。a值越大,新数据所占的比重就愈大,原预测值所占的比重就愈小,反之亦然。
将式子改写为:
从上式可以看出,新预测值是根据预测误差对原预测值进行修正而得到的。a的大小则体现了修正的幅度,a值愈大,修正幅度愈大;a值愈小,修正幅度也愈小。
若选取a=0,则,即下期预测值就等于本期预测值,在预测过程中不考虑任何新信息:若选取a=0,则,即下期预测值就等于本期预测值,完全不相信过去的信息。这两种极端情况很难做出正确的预测。因此,a值应根据时间序列的具体性质在 0~1 之间选择。具体如何选择一般可遵循下列原则:①如果时间序列波动不大,比较平稳,则α应取小一点,如(0.1~0.5)。以减少修正幅度,使预测模型能包含较长时间序列的信息;②如果时间序列具有迅速且明显的变动倾向,则α应取大一点,如(0.6~0.8) 。使预测模型灵敏度高一些,以便迅速跟上数据的变化。
在实用上,类似移动平均法,多取几个α值进行试算,看哪个预测误差小,就采用哪个。
初始值的确定
用二次指数平滑法进行预测,除了选择合适的α外,还要确定初始值。初始值是由预测者估计或指定的。当时间序列的数据较多,比如在 20 个以上时,初始值对以后的预测值影响很少,可选用第一期数据为初始值。如果时间序列的数据较少,在 20个以下时,初始值对以后的预测值影响很大,这时,就必须认真研究如何正确确定初始值。一般以最初几期实际值的平均值作为初始值。
5.3.2 模型二的求解
使用与模型一相同的滚动方法,同样对六个预测量进行预测。通过matlab软件辅助求解(源程序见附录),得到二次指数平滑模型在a时段的预测结果。
表5 二次指数平滑模型a时段预测结果
预测
时段 | ||||||
1 | 265.567 | 248.1354 | 275.1867 | 219.0905 | 1007.98 | 13494.86 |
2 | 257.8356 | 238.4077 | 233.0973 | 197.7269 | 927.0675 | 12834.61 |
3 | 283.9185 | 269.8512 | 275.1784 | 201.4252 | 1030.373 | 13849.19 |
4 | 306.6202 | 314.5955 | 319.1556 | 230.9165 | 1171.288 | 15207.82 |
… | … | … | … | … | … | … |
93 | 33.22407 | 44.83098 | 33.784 | 38.08179 | 149.9017 | 2396.779 |
94 | 60.46043 | 60.34419 | 56.37676 | 52.77184 | 229.9532 | 31.57 |
95 | 78.67669 | 79.5849 | 75.72207 | 56.66729 | 290.6509 | 3735.696 |
96 | 104.1515 | 95.03 | 107.925 | .35305 | 372.3198 | 4479.486 |
由于在时段b中预测值的数据表和模型一中相似,在此就不详细列举出来。这里仅仅写出b时段的预测结果。
表6 二次指数平滑模型b时段的预测结果
日期
时段 | 5-31 | 6-1 | 6-2 | 6-3 | 6-4 | 6-5 | 6-6 |
1 | 19679.12 | 15815.59 | 29677.29 | 10744.59 | 22359.24 | 7948.323 | 19797.22 |
2 | 22198.25 | 16636 | 266.63 | 9357.228 | 234.8 | 3772.037 | 22119.73 |
3 | 181.52 | 12276.72 | 15997.82 | 25.651 | 25178.52 | 7700.781 | 25262.41 |
4 | 22456.86 | 16184.54 | 24570.41 | 4695.866 | 32181.2 | 3741.107 | 23847.09 |
… | … | … | … | … | … | … | … |
93 | 12474.85 | 27094.24 | 6917.47 | 36308.34 | 14138.26 | 10733.07 | 12496.01 |
94 | 12098.35 | 26653.85 | 5108.818 | 32454.11 | 45.39 | 195.02 | 18556.68 |
95 | 10816.33 | 25805.39 | 13504.44 | 29602.99 | 29.387 | 20096.61 | 16923.22 |
96 | 11914.27 | 16866.85 | 8132.83 | 25392.31 | 6887.207 | 20008.05 | 8761.926 |
5.3.3 模型二的结果分析
由预测值与实际值进行对比分析,在此选取对P58一天的预测值与实际值做出对比图如下图。
图5 对P58一天的预测与实际值比较
由上图可以直观的说明,模型预测的结果和实际值吻合得比较好,预测结果较为满意。
5.4 模型3——BP神经网络预测模型
5.4.1 模型三的建立
采用d×d×1的网络结构,结点作用函数选用S型函数:
任一结点i的输出为Oi,有n个d维样本(Xk,yk)(k=1,2…n),对于某一输入Xk,对应的网络输出为,结点i的输出为Oik ,则结点j的输入为
本模型使用平方型误差函数:
定义单个样本k的误差:
由于,可以得到:
j为输出接点,则:
图6 BP神经网络学习过程图
权值修正公式如下:
学习的终止条件:
各量的计算如下:
5.4.2 模型三的求解
在对5月31日0时0分至5月31日23时45分时间段进行预测时,选取前一天(5月30日)的输出功率为观测值,对5月31日0时0分至6月6日23时45分预测时,通过选取前一周的输出功率为观测值。
其中,神经网络算法流程图如下。
图7 BP神经网络算法流程图
输入层节点数为3、输出层节点数为1、隐层节点数为7,最大训练次数为20000,预设精度为0.005,预设学习率为0.01。
通过matlab软件辅助求解(源程序见附录),得到、、、、、在a时间段的预测值。
表7 神经网络模型a时段预测结果
预测
时段 | ||||||
1 | 429.6775 | 292.5914 | 296.7343 | 212.0083 | 1711.2 | 124.57 |
2 | 547.5605 | 361.1046 | 254.4092 | 90.43172 | 1814.417 | 13566.98 |
3 | 688.7034 | 345.0427 | 352.4756 | 386.1837 | 1861.966 | 15380.35 |
4 | 566.2161 | 368.3686 | 277.48 | 429.621 | 2562.329 | 17135.1 |
… | … | … | … | … | … | … |
93 | 347.0881 | 168.7163 | 284.7716 | 250.7885 | 1074.419 | 7363.238 |
94 | 241.8004 | 302.7254 | 253.2628 | 2.3097 | 1101.002 | 6633.692 |
95 | 381.053 | 244.6659 | 3.9631 | 276.656 | 1101.534 | 6232.318 |
96 | 351.07 | 268.1508 | 293.3671 | 294.6099 | 1152.48 | 6192.733 |
通过更换预测模型中的原始数据,预测出、、、、、在b时间段的预测值,在此仅仅列出的预测结果。
表8 神经网络模型b时段的预测结果
日期
时段 | 5-31 | 6-1 | 6-2 | 6-3 | 6-4 | 6-5 | 6-6 |
1 | 13494.9 | 47.93 | 21239.8 | 210.96 | 32595.8 | 6602.32 | 16197.3 |
2 | 12834.6 | 6356.87 | 20286.5 | 282.057 | 29933.1 | 4937.02 | 16538.3 |
3 | 13849.2 | 8098.52 | 19529.7 | 21.4272 | 27835.4 | 35.86 | 16951.4 |
4 | 15207.8 | 70. | 18202.9 | -428.97 | 266.3 | 2747.45 | 18397.1 |
… | … | … | … | … | … | … | … |
93 | 2396.78 | 27623.5 | 4212.52 | 38073.2 | 13678.4 | 16511.1 | 2428.15 |
94 | 31.57 | 26545 | 3074.23 | 38886.2 | 11668.3 | 14938.5 | 2341.7 |
95 | 3735.7 | 24749.1 | 1931.68 | 37754.5 | 9854.42 | 15505.1 | 23.79 |
96 | 4479.49 | 23402.6 | 1012.53 | 35681.6 | 8119.3 | 15998.3 | 2543.81 |
通过滚动预测,做出了预测值和实际值的对照函数图。同时画出了预测的误差。如下图所示:
图8 预测值与实际值对照及预测误差
由上图可以看出,预测误差基本上在10%以内,说明预测值可以接受,预测模型较为准确。
5.5 综合评价模型
为了使分析更加准确,我们将实时预测的一些指标进行分析,其中实时预测误差、均方根误差作为约束条件,准确率、合格率作为评价标准。建立评价模型。
5.5.1模型的建立
确定目标函数
1、准确率
其中,为预测计划曲线准确率;为k时段的实际平均功率;为k时段的预测平均功率;N为日常考核总时段数;Cap为风电场开机容量。
2、合格率
其中,
并对其进行加权。建立的评价目标函数如下:
其中,即为加权系数。
确定约束条件
1、实时预测误差
2、均方根误差
综上所述,得评价模型为
5.5.3 模型求解
通过三个模型进行预测,有6各预测量,两个时间段。就可以得到36个相对预测误差。其中横向预测的影响是基本相同,为了方便评判比较三个预测模型之间的差别。
表9 BP神经网络模型对各预测量的指标
预测量 | ||||||
实际预测误差(%) | 22.9652 | 9.5025 | 17.8492 | 19.5743 | 0.1471 | 0.7231 |
均方根误差(%) | 14.4509 | 14.7058 | 14.8051 | 13.9553 | 16.2191 | 55.8631 |
准确率 | 0.8759 | 0.88 | 0.8829 | 0.9039 | 0.9141 | 0.19 |
合格率 | 0.4737 | 0.5263 | 0.4947 | 0.57 | 0.9623 | 0.96 |
表10 各预测的评价准确性分析表
预测模型 | 实际预测误差(%) | 均方根误差(%) | 准确率 | 合格率 | 评价指数 |
模型 | 0.8192 | 46.1446 | 0.8211 | 0.8632 | 0.84215 |
BP神经网络模型 | 0.6221 | 40.6629 | 0.19 | 0.96 | 0.94075 |
二次指数平滑模型 | 3.7006 | 43.1128 | 0.8429 | 0.8761 | 0.8595 |
6. 问题二的解答
针对问题二是分析机组汇聚对预测结果的影响,进行了相关性分析。
6.1 预测相对误差的规律
相对误差
由神经网络模型对预测量进行一天的预测,预测值的相对误差做出如下图形。
图9 各预测值的相对误差对比图
由上图可知,单台风电机组功率预测值的相对误差和多机总功率预测值的相对误差波动图形都大致相同,但波动的幅度和波动范围也差不多一致。可以得出,多机总功率预测的相对误差与单台风电电机组功率的相对误差呈相关性。且多机总功率预测值的相对误差比单台风电机组功率预测值的相对误差小。和的波形图对比可知,风电机组机器汇聚的越多,预测值的相对误差越小,既准确性越高。
6.2 风电机组汇聚对功率影响
相关性系数:
其中:为单台风电机组功率预测值的相对误差;
为多机总功率预测值的相对误差;
相关性的判断:当为正相关;当为负相关;当不存在线性相关关系;
表11 预测值的相对误差
平均相对误差 | 22.7373 | 9.4070 | 17.6639 | 19.3838 | 13.9977 | 0.7157 |
相对误差方差 | 7.8007 | 5.33 | 8.2923 | 9.2774 | 7.5288 | 1.4751 |
表12 单项预测相对误差与多机预测相对误差的相关系数
0.4255 | 0.4351 | 0.3106 | 0.1011 | |
0.4725 | 0.4497 | 0.3231 | 0.1018 |
7. 问题三的解答
针对问题三是进一步提高预测精度,建立了基于向量夹角余弦的最优组合预测模型[3]。
7.1 模型的建立
由风电机组发电输出功率的实际值为,我们已经用了3种单项预测方法进行了预测,第种预测方法在第时刻的预测值为,则加权算术平均值的组合为:
式中:为第i种预测的权重,有,,。
令
,,,
则表示预测对象实际值向量,表示第种单项预测方法预测值向量,表示组合预测值向量。
令
,
根据两个向量夹角的余弦计算公式知,为第种单项预测方法预测值向量与预测对象实际值向量的夹角的余弦,为组合预测值向量与实际值向量的夹角余弦。
再令
其中,表示组合预测加权系数列向量,表示向量和的内积,表示3X3的方阵,称为组合预测信息矩阵。则有:
所以
,
显然,组合预测值与实际值向量的火角的余弦为各个单项预测方法的加权系数的函数,记为为了使组合预测值逼近实际值,我们希望和这两个向量的夹角越小越好,也就是向量夹角的余弦越大越好,所以值越大表示组合预测方法越有效。当时,其向量夹角的余弦达到最大值1。
综上所述,得到的优化组合模型
7.2 模型的求解
由模型是对三个单项预测模型进行组合,考虑到的因素更为全面,预测的结果会相对更加精确。
通过matlab软件辅助求解(源程序见附录),得到在5月31日0时0分至5月31日23时45分时间段的第一次滚动预测的预测值。
表13 组合预测模型对第一次预测结果
时段 | 预测值 | 实际值 | 相对误差 | 时段 | 预测值 | 实际值 | 相对误差 |
1 | 121.99 | 11634.84 | 0.047714 | 9 | 17991.3 | 26508.28 | 0.321295 |
2 | 12861.15 | 16696.88 | 0.229727 | 10 | 25435.01 | 29399.25 | 0.134842 |
3 | 14211.33 | 18568.59 | 0.234657 | 11 | 18086.49 | 27139.41 | 0.333571 |
4 | 15560.28 | 120.41 | 0.052382 | 12 | 22065.76 | 22113.47 | 0.002158 |
5 | 15636.99 | 18146.06 | 0.138271 | 13 | 16554.91 | 9585.75 | 0.727033 |
6 | 12385.11 | 18381.75 | 0.326228 | 14 | 5944.909 | 5800.406 | 0.024913 |
7 | 14802.28 | 11912.06 | 0.242629 | 15 | 7873.395 | 1026 | 6.673874 |
8 | 17691.44 | 25986.66 | 0.319211 | 16 | 3437.519 | 288.375 | 10.92031 |
表14 组合预测与单项预测对比
模型 | 实际预测误差(%) | 均方根误差(%) | 准确率 | 合格率 | 评价指数 |
优化组合模型 | 0.36941 | 0.36941 | 0.9202 | 0.96 | 0.9549 |
模型 | 0.8192 | 46.1446 | 0.8211 | 0.8632 | 0.84215 |
二次指数平滑模型 | 3.7006 | 43.1128 | 0.8429 | 0.8761 | 0.8595 |
BP神经网络模型 | 0.6221 | 40.6629 | 0.19 | 0.96 | 0.94075 |
模型的应用——预测未来
通过组合模型对未来进行预测,我们对6月7日58台机组总功率进行一次滚动的预测,得到的预测结果如下表。
表15 组合模型对58台机组总功率的预测值
时段 | 预测值 | 时段 | 预测值 | 时段 | 预测值 | 时段 | 预测值 |
1 | 11314.2 | 5 | 12096.06 | 9 | 14872.46 | 13 | 15197.04 |
2 | 12116.5 | 6 | 12756.03 | 10 | 16370.32 | 14 | 19310.44 |
3 | 12081.7 | 7 | 13870.3 | 11 | 17008.26 | 15 | 19638. |
4 | 11618.1 | 8 | 13097.52 | 12 | 17654.08 | 16 | 20921.31 |
由组合预测出的6月7日总输出功率,以及6月6日的实际数据,做出总输出功率的变化趋势图。
图10 机组总功率在未来变化趋势图
8. 预测模型改善报告
要提高风电功率的预测精度,需要用到大容量的样本数据,首先我国的风电场有很多是新建风电场,历史上的气象资料严重缺乏,这些都会影响风电功率的预测精度。其次目前的预测方法一般采用人工智能算法,结构偏复杂,对大容量数据样本计算过于缓慢。为了描述一个较长时期的风电功率的变化趋势,需要信息较为完备的样本集,虽然信息完备的样 本集对预测精度有提高,但这样的样本集训练出的模型精度衰减慢,使用时间也较长
组合预测是对几种预测方法的到的结果,选取适当的权重进行加权平均的一种预测方法,其主要目的在于消除单一预测方法可能存在的偏差,提高预测的准确性.对于波动性较大数据的预测更能体现其真实值。
虽然采用好的算法可以在一定程度上提高风电功率的预测精度,但风电功率的实时预测功率不能无限提高,其主要原因是由于受气象因素的影响,风电的具有随机性、波动性及间歇性等固有特点。因而提高风电预测功率预测精度的关键是气象部门能够提供的高分辨率、高可信度的数值天气预报,测风数据对风功率,这些对提高风电功率的预测功率有重要意义,对电厂安排发电计划,发挥风电机组的效率影响巨大。
9. 模型的评价、改进及推广
9.1模型评价(优缺点客观评价)
优点:
(1)BP神经网络模型实现了一个输入到输出的映射功能,并且在线进行学习,进行实时预测时充分发挥了这个优点,使得结果在三种预测方法在准确性最高。
(2)分析风电机组的汇聚对于预测结果误差的影响时,利用相关系数模型可以简单明了的说明其影响结果,并且模型的条理清晰。
(3)基于向量夹角余弦的最优化组合预测模型根据三种预测方法的准确性加权得到更加精准的预测结果,将三种预测模型的优点集中在一起,使得结果的准确性更高。
缺点:
(1)利用BP神经网络模型时,由于BP算法的学习速度很慢,并且本质上为梯度下降法,因此使得预测过程非常复杂,耗时长。
(2)组合模型的系数要根据预测值来计算,因此会增加下一次的预测的误差。
9.2模型改进
我们可以将BP神经网络改为小波神经网络.因为有图形可知,电机组功率的变化为波动图形,而小波神经网络利用母小波的平移和伸缩构成一组小波基,将小波基作为神经网络隐层的激励函数。WNN把用来描述评价对象特征的数值信息作为神经网络的输入向量,将已知的相应综合评价的量值作为神经网络的输出,可利用共轭梯度法以批处理方式训练,自适应地调整小波系数和网络权重。用足够多的样本训练这个网络,通过样本的学习,小波神经网络就像一个“黑箱”,存贮了专家进行评价的经验以及一些数学的推理机制。这样可利用训练好的小波神经网络对新的评价对象进行综合评价。
从而使得预测的结果更加理想,准确性更高,同时可以解决BP神经网络耗时长的缺点。
9.3模型推广
熵值法确定组合预测权系数 :
3种预测方法及组合的相对误差分别为,3种预测对象的指标序列为,设第种预测方法在第时刻的预测值为,有:
将3种预测方法预测的相对误差序列归一化得:
其中;
求解3种预测方法的预测相对误差的熵值:
其中为常数,当全部相等时,,取极大值,所以取。
因为,根据系统一某项指标的熵值的大小与其变异程度相反的原贝,所以定义第种序列预测方法的预测相对误差序列的变异程度系数为为:
由此可得预测方法的加权系数为:
其中权系数满足。
参考文献
[1] 何书元,应用时间序列分析[M].北京大学出版社,2004.
[2] 飞思科技产品研发中心. 神经网络理论与MATLAB7实现[M]. 北京:电子工业出版社, 2005.3:126.
[3] 叶晨,风电功率组合研究[J].,华北电力大学硕士论文,2011.3:40。
[4] 刘纯,范高峰,王伟胜,风电场输出功率的组合预测模型[J],电网技术,2009.7。
[5] 姜启源著,数学模型,高等教育出版社[M],北京,1998 [4]
[6] 王振龙,胡永宏。应用时间序列分析[M].科学出版社
附录
问题一
时间序列aram 代码
%ARAM时间序列
%从n阶开始为0,n就是阶数
clear all clc
x2=load('pa.txt');
x1=x2(21,:);
%x1=x2;
z=std(x1);
x1=x1';
%x1=log(x1);可以考虑取对数转化
%x1=sqrt(x1);可以考虑开根号转
x3=diff(x1,1);
x=diff(x3,1);
n=length(x);
a=-lpc(x,7) %对应的阶数
figure(1)
subplot(121);
autocorr(x);%自相关
title('自相关');
subplot(122);
parcorr(x);%偏相关
title('偏相关');
aic=autocorr(x);%自相关
paic=parcorr(x);%偏相关
estx=filter([0-a(2:end)],1,x);
disp('偏差为');
e=x-estx;
[acs,lags]=xcorr(e,'coeff');
figure(2)
subplot(121);
plot(1:length(x),x,1:length(x),estx,'r-*');
title('原功率');
xlabel('采样点');ylabel('幅值');grid;
legend('原始数据','lpc估计')
subplot(122);
plot(lags,acs);
title('预测误差的自相关函数');
xlabel('延迟');ylabel('归一化值');grid;
N=95;%预测未来的数据
%z1=rand(1,95)*sqrt(z);
for i=n+1:n+N
x(i)=a(2)*x(i-1)+a(3)*x(i-2)+a(4)*x(i-3)+a(5)*x(i-4)+a(6)*x(i-5)...
+a(7)*x(i-6)%+a(8)*x(i-7);%+a(9)*x(i-8)+a(10)*x(i-9)+a(11)*x(i-10)...
%+a(12)*x(i-11)+a(13)*x(i-12)+a(14)*x(i-13);%+a(15)*x(i-14)+a(16)*x(i-15)...
%+a(17)*x(i-16)+a(18)*x(i-17);
end
n1=length(x);
x2=cumsum(x);
x4=cumsum(x3);
for i=1:N
h(i)=x2(n1-i+1)+x1(1)+x(i);
end
h
问题二
检验标准:
clear,clc
x0=load('tu.txt');
p1=0.68;p2=0.2;p3=0.12;
x1=p1*x0(1,:)+p2*x0(2,:)+p3*x0(3,:);
i=1:length(x1);
plot(i,x0(4,:),'b',i,x1,'r')
xlabel('时段'); ylabel('时段')
title('预测图')
legend('实际值','预测值')
t1=x0(4,:);t2=x1;
c=t2-t1;
d=(c./t2);
d=abs(d);
disp('实际预测误差')
mean(d)
disp('均方根误差')
c1=mean(t2);
c2=(t1-c1).^2;
c3=sum(c2)/(96*850*58);
sqrt(c3)
%检验准确率 r
%检验合格率 r1
%检验上报率 r2
jg=zeros(1,95);
n0=58;r=0;
m1=850*n0;
%m1=850;
for i=1:96
r1=0;
m=t1(i)-t2(i);
r=r+(m/m1)^2;
r1=r1+1-m/m1;
if r1>0.75
jg(i)=1;
else
jg(i)=0;
end
end
disp('准确率')
r=1-sqrt(r/96)
disp('合格率')
r1=sum(jg)/96
disp('上报率')
r1/96
问题三
对6月7日进行一次滚动预测程序
clear,clc
x0=xlsread('组合值.xls');
p1=0.68;p2=0.2;p3=0.12;
x1=p1*x0(1,:)+p2*x0(2,:)+p3*x0(3,:);
i=1:length(x1);
plot(i,x0(4,:),'b',i,x1,'r')
xlabel('时段'); ylabel('时段')
title('预测图')
legend('实际值','预测值')
最后模拟图
%%
clear,clc
t1=load('1.txt');
t2=load('2.txt');
i1=1:length(t1);i2=1:length(t2);
plot(i1,t1,'b',i2,t2,'r-')
xlabel('时段'); ylabel('功率')
legend('实际值','预测值')