1风电场风速预测的 RBF 神经网络模型 谭志忠, 刘德有, 王丰 (河海大学 水利水电工程学院) 摘 要: 本文介绍国内外关于风电场风速预测的主要方法, 建立了基于 RBF 神经网络的风电场风速预测模型及其求解方法, 将其用于实例风速的提前 1h 预测, 结果精度满足工程实际要求, 并明显优于 BP 神经网络预测方法。 同时, 提出了风速时间序列重构方法, 并以此进行了实例风速的提前 24h 预测, 结果精度达到与提前 1h预测精度相近, 即该重构方法是风电场风速中长期预测的有效方法。 关键词: 风电场 风速 预测 时间序列 RBF 神经网络 1 风速预测问题的描述 为了 制订电力系统的运行调度计划, 首先必须预测计划期内电力系统各电源点的出力变化情况。 随着风电场建设规模的不断扩大、 风电场数量的不断增加以及风电装机容量在电力系统中的比重不断上升, 风电场的风速预测不但是风电场及其所在电力系统制订发电调度计划的重要依据, 而且直接关系到电力系统的安全、 稳定和经济运行。 虽然, 在精确的数值上, 风速是个难以预先确定的随机量[1], 是不可控的, 但在变化趋势上, 风速的随机值是一个具有一定周期性的连续时间序列,因此, 在数学上, 可以通过差分方法, 将其转化为平稳的时间序列, 由此风速在一定程度上是可以预测的。
因风电场的发电出力取决于风速的大小, 故通过对风速的预测, 即可预测风电场的输出功率, 从而满足电网优化运行调度的需要。 目前, 国外关于风电场风速预测研究已得到高度的重视, 国内也已有学者开始相关的探索。 已建立的风速短期预测方法主要有: 移动平均法[2], 空间相关模型法[3,4], 模糊评价法[5], 线性预测法[6], 离散化的哈勃特变换法(Discrete Hilbert Transform, DHT[7]) 等。 由于风速具有随机时序性和高度非线性, 对于抽取和逼近的非线性函数, 上述方法均难以很好地满足其中长期预测要求, 而人工神经网络(ANN)可以从训练过程中通过学习来抽取和逼近隐含的输入输出非线性关系, 因此, 基于人工神经网络的风速预测方法成为近几年研究的热点。 目前, 主要采用BP神经网络[8-10]、 局部反馈性神经网络(IIR-MLP、 LAF-MLN、 RNN)对风速进行了 中长期预测, 其结果与实测值在总体趋势上较吻合, 但数值误差仍比较大。 由于BP神经网络用于函数逼近时, 权值的调节采用的是负梯度下降法, 这种调节权值的方法存在一定的局限性, 即收敛速度慢和局部极小等缺点, 因此不能满足风电场风速预测的快速准确的需求。
研究表明[12-14]: 径向基函数(RBF, 即: Radial Basis Function) 神经网络的逼近精度明显高于BP神经网络,且不存在局部最小问题, 不需要事先确定隐含层的单元个数, 并在逼近能力、 分析能力和学习速度等方面均明显优于BP神经网络。 因此, 本文采用RBF神经网络对风速时间序列进行预测, 并通过重构风速时间序列进行了较长时间的风速预测。 风速预测是在充分考虑到各种随机影响因素的情况下, 分析处理过去风速数据并预测未来风速趋势的一套系统的数学方法。 风速预测的主要目的是在满足一定精度要求下, 确定未来某特定时刻或某特定时段的平均风速值。 利用平均风速值即可较为合理地估算特定时刻或时段的风能。 风速预测按其周期分为短期、 中期、 长期预测, 短期风速预测是指对未来1h、 0.5h甚至10min周期的平均风速的预测, 中期和长期风速预测则是指对较长周期的平均风速的预测。 神经网络用于时间序列预测是指利用神经网络方法去预测逼近一个时间序列, 即用时间序列的前N个值v(t-1), v(t-2), …, v(t-N)去预测后面M个值v(t), v(t+1), …, v(t+M-1)。
[11]等, 但其大多还主要用于风速的短期预测。 文献[11]2 RBF 神经网络模型及其求解 2.1 RBF神经网络的结构 人工神经网络是一个大规模分布式并行的非线性信息处理系统。 研究表明, 一个三层的前馈型人工神经网络, 在隐层节点足够多的情况下, 经充分学习, 可以任意精度逼近任何非线性函数。RBF神经网络结构如图1所示, 由三层组成, 其输入层节点只是传递输入信号到隐层, 隐层节点由如高斯基函数那样的辐射状作用函数构成, 而输出层节点通常是简单的线性函数。 隐层节点(也称RBF节点) 中的作用函数(即基函数, 也称核函数) 对输入信号将在局部产生响应, 即当输入信号靠近基函数的中央范围时, 隐层节点将产生较大的输出。 由此可见, 这种网络具有较好的局部逼近能力, 所以RBF网络也称为局部感知场网络。2 图1 RBF神经网络 2.2 RBF的形式 在实际应用中, 径向基函数有多种多样的形式, 但其共同特征是均为径向对称函数, 其中最常用的是高斯基函数, 即 ⎡−−−=22jσ⎥⎦⎥⎤⎢⎢⎣)()(expjTjjCVCVv , ) 1−()...,1( ,t++=Mttj(1) 式中,jv 是第 j 个隐层节点的输出;TNtttvvvV),...,,(21−−−=是输入样本;jC 是高斯基函数的中心值;jσ 是标准化常数; M 是隐层节点数。
由式(1) 可知, 节点的输出范围在0和1之间, 且输入样本愈靠近节点的中心, 输出值愈大。采用高斯基函数, 具有形式简单、 径向对称、 光滑性好和解析性好等优点。 2.3 RBF神经网络的学习 过程 RBF神经网络的输出为隐层节点输出的线性组合, 即 N=∑=1,...,,() 2() 1(=−−RBF神经网络的学习过程分为两个阶段。 第一阶段, 根据所有的输入样本决定隐层各节点的高斯基函数中心值jC 和标准化常数jσ 。 第二阶段, 在选定隐层参数后, 根据样本,利用最小二乘原W 。 然后神经网络风速预测, 依据样本信号, 再对隐层和输出层的参数进行校正, 以进一步VWvwvTijjiji=−θ , ) 1()...,1( ,t−++=Mtti(2) 式中:TNtititiiwwwW),)(θ−−,TNtttvvvV) 1 ,),...,,(() 2−() 1−(−=。 则, 求出输出层的权值i提高网络的逼近精度。 2.4 RBF神经网络模型的求解 在 matlab 工具箱[15]中, 径向基网络的设计函数为 newrbe 和 newrb。 因为这两个函数在创建径向基网络过程中以不同的方式完成了权值和阈值的选取和修正, 所以它们没有专门的训练和学习函数。
本文采用 newrbe 创建高精度的 RBF 网络, 由 newrbe 函数可以迅速求出合适的网络权值/阈值向量, 获得零误差的径向基函数网络。 newrbe 将第一网络层的权值和阈值分别全设置成 p’和0.8326/spread, 使得加权输入为±spread 经径向基函数的运算结果为 0.5。第二网络层的权值 IW{2, 1}和阈值 b{2}通过第一网络层仿真的结果, 通过如下线性方程求得: }{ }[][2b2,1W∗式(3) 函数中的参数 spread 为径向基函数的扩展参数, 默认值为 1.0, 其值越大, 函数逼近曲线越光滑, 较大的 spread 值, 意味着大量的神经元需要适应迅速变化的函数, 可能导致数学计算工作量上的问题, 较小的 spread 值则意味着很多神经元需要适应缓慢变化的函数, 而网络的泛化能力却不一定好, 因此需要调试找到其最佳值。 {{ }1]Tones;A=(3) 3 风速时间序列的 RBF 网络模型构造 3.1 样本数据的平稳化处理 在风速的短期预测中, 我们只需考虑风速的日周期性, 由于风速在一天之内的连续几个小时会呈现明显的增长或下降的趋势, 所以需要对样本数据进行平稳化处理。
一个非平稳的时间序列 v(t),在样本空间内, 经过 n 阶差分变换后得到的序列为[10,14]:3) 1−()()(11Δ−Δ=Δ−−tvtvtvnnn(4) 一个平稳随机时间序列的统计性不随时间的变化而变化, 一般一个非平稳的序列最多经过二阶差分变换就能达到平稳的时间序列, 预测完成后可通过反差分变换得出最终的预测值。 3.2 样本的归一化处理 当数据在远离零的区域里学习时, 学习速度慢, 甚至出现不收敛, 因此需对样本数据进行归一化处理, 即将输入输出层数据映射到[-1, 1]之间, 训练结束后, 将仿真输出再反映射到原数据范围。本文采用Matlab中的归一化函数premnmx和反归一化函数postmnmx对样本数据进行处理, 归一化函数如式(5) 所示, 同理可得反归一化函数。 (min2−=vvu式中: ui为归一化后的数据; vi为原始数据; min v、 max v分别为原始数据的最小值和最大值。 ) () 1−minmax−vvii(5) 3.3 风速时间序列的RBF网络模型构造 3.3.1 RBF网络模型 假定已知平稳时间序列{M}TiRvvviii,, 2 , 1=|⋅ ⋅ ⋅∈=−,, 可将每个样本的前 N 个值作为 RBF 神经网络的输入,, 要通过序列的前 N 个时刻值预测后 M 个时刻值, 则样本总组数为后 M 个值作为目标输出, 通过学习, 实现从输入空间 RN到输出空间的 RM的映射[14], 即 输入空间 RN输出空间 RM 1+−=NTk1113221,,⋅ ⋅ ⋅,,,⋅ ⋅ ⋅,,,⋅ ⋅ ⋅,−+++⋅ ⋅ ⋅ ⋅ ⋅ ⋅vkNkkNNvvvvvvvv1113221,,⋅ ⋅ ⋅,,,⋅ ⋅ ⋅,,,⋅ ⋅ ⋅,−++++++++++++⋅ ⋅ ⋅ ⋅ ⋅ ⋅vMkNkNkNMNNNMNNNvvvvvvvv 3.3.2 风速时间序列重构 通过重构时间序列, 根据上述 RBF 网络模型, 即可预测一天甚至更长时间的风速。
现以提前一天预测为例: 由于风速具有一定的日周期性, 因此可以将每天(1h 至 24h) 相同时刻点按照时间先后排列, 从而得出 24 个新的时间序列, 再利用上述 RBF 网络模型分别对每个新时间序列的后一个值进行预测, 即可得出未来 24 小时的风速预测值。 即实现从输入空间 Rn输出空间的 RnN到M的映射: 输入空间 RnN输出空间 RnM ) 1−( ,i) 1+( ,i,) 1+( ,i3 ,i2 .i,2 ,i1 ,i,,⋅ ⋅ ⋅,,,⋅ ⋅ ⋅,,,⋅ ⋅ ⋅,+⋅ ⋅ ⋅ ⋅ ⋅ ⋅vkNkkiNNivvvvvvvv) 1−( ,i) 1+( ,i)( ,i) 1+( ,i) 3+( ,i) 2+( ,i)( ,i) 2+( ,i) 1+( ,i,,⋅ ⋅ ⋅,,,⋅ ⋅ ⋅,,,⋅ ⋅ ⋅,++++++⋅ ⋅ ⋅ ⋅ ⋅ ⋅vMkNkNkNMNNNMNNNvvvvvvvv 式中: i=1,2,3…D, 其中 D 所取样本的总天数。 3.4 预测误差修正 由于相邻两个时间序列的相关性较大, 即 t 时刻的风速值与 t-1 时刻的风速值相近, 所以可以通过平均滤波修正预测数据, 即 [()()(+=tvtvtv一般来说, 经过若干次滤波后, 预测精度可以得到大大的提高。
另外, 还可以通过风速分布曲线(通常为 weibull 分布), 限定预测值的最大、 最小值[10]。 ] 2) 1−(9) 4 实例预测及其结果分析 本文以我国某风电场 40m 高处 1 年的实测风速为原始资料, 对本文所建立的 RBF 神经网络风速时间序列预测模型进行检验分析。 4.1 短期风速预测 4将前 10 天的数据作为训练样本, 对风电场风速提前 1h 进行预测。 (1) 采用 RBF 神经网络, 将 10 天的风速数据作为训练样本, 输入神经元个数 N 设为 48, 输出神经元个数 M 设为 1, 则训练样本总数 k 为 192, 经多次调试, 选择 spread 值为 1.9。 对样本进行训练后, 提前 1h 进行预测, 连续预测 24h, 所得结果如图 2 所示。(a) 预测值与实际值的对比(b) 预测误差 图 2 提前 1h 预测(RBF) (2) 采用 BP 神经网络, 将上述的 10 天风速数据作为训练样本, 用相同的时间序列输入模型,提前 1h 进行预测, 连续预测 24h, 所得结果如图 3 所示。(a) 预测值与实际值的对比(b) 预测误差 图 3 提前 1h 预测(BP) 由图 2、 图 3 可知, 采用 RBF 神经网络模型, 预测平均误差为 3.99%, 最大误差 10.7%; 采用BP 神经网络模型, 预测平均误差为 4.19%, 最大误差 8.71%。
在预测速度上, 由于 RBF 模型采用了 newrbe 函数, 因此能快速完成预测, 而 BP 模型要经过 2000 以上的迭代才能完成预测。 经过上述比较分析, 可以得出如下结论:(1) 采用上述时间序列预测模型, 精度能够满足实际工程需要; (2) 采用 RBF 模型比 BP 模型的平均预测误差小, 此外, RBF 模型预测速度也优于 BP模型;(3) 预测误差较大的点为风速变化剧烈点, 风速变化比较平缓的时候, 其误差非常小, 因此风速变化的剧烈程度直接将影响预测精度, 此外由于风速序列的连续性, 通过滤波处理, 平均误差和最大误差都有一定减小。 4.2 中长期风速预测 将前 363 天的数据作为训练样本, 对风电场风速提前 24h 进行预测。 重构时间序列后, 将 363 天的风速数据作为训练样本, 经三阶差分平稳化序列, 将输入神经元个数 N 设为 72, 输出神经元个数 M 设为 1, 则训练样本总数 k 为 291, 优选的 24 个 spread 值如表1 所示, 提前 24h 的预测结果如图 4 所示。 用该方法提前24h预测的平均误差为4.3%, 最大误差9.9%, 该结果与提前1h预测结果的精度相近, 因此用该方法进行中长时期的风速预测是合理可行的。
由图4可见, 预测的风速变化趋势和原始风速变化基本符合, 在风速变化较剧烈点, 预测误差相对较大,因此预测误差与新时间序列在预测点处的变化剧烈程度有关。5(a) 预测值与实际值的对比(b) 预测误差 图 4 提前 24h 预测 表 1 提前 24h 预测时的 spread 值 3 4 5 预测时间序列 1 2 6 7 8 9 10 11 12 spread 值 2.3 2.3 0.9 0.12.70.1 0.1 0.1 0.1 1.7 2.7 0.9 预测时间序列 13 14 15 16 17 18 19 20 21 22 23 24 spread 值 0.1 1.1 2.3 0.71.72.9 1.3 0.9 0.5 0.5 0.1 1.3 5 结语 通过建立 RBF 神经网络模型神经网络风速预测, 对风速时间序列进行预测, 其结果表明: (1) 预测精度能够满足工程要求, 因此预测模型合理可行, 预测结果可以作为评估风电场出力可靠性的基本数据, 并为风电场发电调度提供参...
发表评论