基于LSTM的滚动预测风机发电量研究

2020-05-16 06:33:18
计算机应用与软件 2020年5期
关键词:电功率梯度风机

柯 铭 刘 凯 赵 宏

(兰州理工大学计算机与通信学院 甘肃 兰州 730050)

0 引 言

风能是清洁、可再生能源,风电产业发展越来越快。风电平价上网的有序推进,对风电企业自身提出了更高的要求。由于风电大规模接入电网,风电自身的间歇性、波动性、随机性对电网安全造成的威胁越来越大[1]。风电功率预测技术是风电产业平稳发展的重要支撑。

传统风电功率预测技术主要分为两类:一类是基于物理方法的预测;另一类是基于历史数据的预测[2]。本文采用了基于历史数据的风电功率预测方法。该方法的基本前提是假定风电功率变化与历史数据存在密切联系[3-4]。基于这样的假设,建立不同的模型,训练模型,从而使模型学习到风电功率变化规律,利用训练完成的模型和风电厂产生的新数据,对下一时段的风电功率做相应预测。基于历史数据的预测方法已经取得了良好的预测结果。文献[5]采用小波变换与人工神经网络(ArtificialNeuralNetwork,ANN)结合的方法对风机发电量预测,解决了风机发电量预测中的时延问题,但风电场预测时延问题也可以通过追踪实时风电变化规律得到缓解。文献[6]对比了LSTM模型、ANN模型和SVM模型在预测风机发电量时的性能,随着预测时长的增加,各模型误差均有所上升,但LSTM模型在各时段均取得了最好的预测效果。然而,上述文献并未考虑不同风电厂风电变化规律的差异性。

不同风电场、不同季节风电功率预测非常复杂。为寻求一种新的预测方法,可以快速自适应于任意风电厂,本文提出了基于LSTM的滚动预测方法。基于滚动预测的神经网络模型相比于传统神经网络模型可以更加及时地追踪风电数据变化规律。滚动预测方法在时间尺度上设计了特殊的预测逻辑,其预测逻辑及数据利用方式与传统神经网络不相同。滚动预测方法可以使模型不断微调,更加准确地跟踪最新的风电功率变化规律,有效预测超短期风电功率;滚动预测方法使模型具有快速自调节能力,因此模型可以快速应用到不同风电场进行预测。本文采用某风电厂的数据采集与监视控制系统(SupervisoryControlAndDataAcquisition,SCADA)真实历史数据作为实验数据。

1 LSTM网络原理

循环神经网络(RecurrentNeuralNetwork,RNN)是人工神经网络的一种。RNN善于处理时间序列数据,可以在时间轴上描述数据前后关系。TensorFlow所提供的RNN结构如图1所示。

图1 TensorFlow截断反向传播

TensorFlow提供的RNN截断反向传播不同于标准的截断反向传播,TensorFlow将序列分为两部分,第一部分的FinalState作为第二部分的InitialState。这样可以缓解梯度消失或梯度爆炸问题,更容易获取长时间前后数据依赖关系。RNN每一层的层内神经元之间都有连接,这样的结构既有好处,也有不利影响。由于RNN层内神经元之间有连接,使网络能够学习到序列数据前后变化规律,序列数据内部时序规律易于被挖掘,因此,RNN被广泛应用在语音识别、机器翻译等序列数据处理领域[7-8]。但这样的结构也产生了一些问题,在数据后向传递时,不可避免地容易产生梯度消失或梯度爆炸问题,限制了其对长时依赖关系的处理。RNN衍生的LSTM网络通过在RNN隐藏层增加多个特殊的计算节点,改变了反向传播时梯度传递的方式,有效减缓了梯度消失或梯度爆炸问题。

SeppHochreiter和JurgenSchmidhuber于1997年提出LSTM网络,它是一种特殊的RNN网络[9-11]。LSTM网络的block结构如图2所示。

图2 LSTM网络block结构

在LSTM网络block结构中出现了多个gate结构。在RNN网络中前后两个神经元的隐藏层节点中只经过一层Sigmoid激活函数,因此后向传播时梯度会乘以Sigmoid激活函数的导数值。与RNN不同,LSTM的block是拥有三个gate结构的特殊网络,即inputgate、forgategate和outputgate。gate结构含有一个Sigmoid激活函数和一个按位做乘法的计算节点。在LSTM中,前后两个神经元的隐藏层节点的信息传播不是经过Sigmoid层,而是乘以Sigmoid的函数值激活值,即LSTM的forgetgate,因此后向传播时梯度会乘以Sigmoid的函数值。由于RNN在后向传播时梯度不断乘以Sigmoid的导数值,LSTM在后向传播时梯度不断乘以sigmoid的函数值,故两者的数值分布存在着显著差异[12]。这样就解决了RNN在处理长时依赖关系的数据时易产生梯度消失或梯度爆炸问题。LSTM网络block中显示了LSTM的前向传播,其具体计算如下:

ft=σ(Wf·[ht-1,xt]+bf)

(1)

式中:ft为forget gate的计算结果,forget gate主要用来控制上一时刻单元状态ct-1传递到当前时刻单元状态ct的信息保留;[]表示对两个向量做拼接计算;ht-1为上一时刻单元的输出;wf和bf分别为forget gate的权重和偏置;σ为Sigmoid激活函数。

it=σ(Wi·[ht-1,xt]+bi)

(2)

式中:it为input gate的计算结果,输入门也具有独立的权重和偏置。

(3)

由式(1)-式(3)计算出当前时刻单元状态ct:

(4)

式中:∘ 表示按元素乘。

ot=σ(Wo·[ht-1,xt]+bo)

(5)

式中:ot为output gate的计算。

由式(4)-式(5)得出当前时刻的输出nt:

ht=ot∘ tanh(ct)

(6)

LSTM的正向传播计算了当前时刻单元状态ct和当前时刻的输出ht,完成了网络前向传播计算。网络的反向误差传播与其他神经网络反向传播原理类似,最终更新网络各处权重和偏置,完成模型训练。本文采用了LSTM网络模型,同时结合了滚动预测的方法进行实验。

2 模型设计

2.1 模型数据预处理

数据归一化是数据预处理的重要步骤之一,目的是使目标函数快速收敛,归一化操作是由于数据原始量纲不适合于模型输入。本文选取了影响风电功率预测的四种重要参数,即历史功率、风速、风向以及温度。对这几种不同参量采用了不同的归一化方法。功率归一化如下:

(7)

式中:Po为原始数据;Pcap为风机额定功率;Ps为归一化后的功率值。风速、风向以及温度归一化计算如下:

(8)

在获取长时间的数据后得到了具有代表性的最值进而计算归一化后的数据。归一化数据用于预测之后,重新将功率数值还原,从而具有实际意义,最终计算出模型的准确率。

2.2 滚动预测方法

基于历史数据的风电功率预测本质是建立一个模型,反映一种映射关系,即未来一段时间的风电功率与历史风电功率以及历史环境因素参数之间的映射关系。这种映射关系是随时间、地点变化的,描述一种变化的映射关系,只有使模型学习到相对完备的信息,这种关系才有可能被准确描述。一个固定的、不变的复杂模型可以描述一个或周围几个风电场的映射关系。距离较远风电场预测难以用同一模型来描述各自的映射关系。同一风电厂不同季节数据变化规律也难以用一个模型来描述。而基于数值天气的预测方法是一种直接的输出预测结果,其预测准确性仅依赖于输入的天气数值参数的准确性。虽然原理相对简单,但模型考虑了瞬时风电功率变化规律,而不是用一套不变的参数去预测风电功率,其各项参数因风电场的不同而改变,可以准确描述功率变化规律。

综上,本文提出基于LSTM的滚动预测模型,建立一种持续学习的预测方法,使网络在实际应用时具有自我微调能力。因此,网络可以追踪最新的功率变化规律,有利于提高模型的预测质量。

滚动预测将网络接收到的最新数据,不仅作为预测的依据,同时与前一时刻的预测结果构成训练数据,对新数据规律进行再次学习,微调网络参数,使网络可以实时跟踪数据变化规律,并使下一次预测更加精确。滚动预测方法不仅能在被训练的风机上取得良好的效果,也可以迅速迁移应用到其他风机上。若需要快速应用到其他风机可以使其学习目标风机的历史数据,初步训练网络,然后将其应用于目标风机。若目标风机无历史数据,可以学习临近风场的风机数据或类似地形气候条件下的风机数据,再通过滚动预测掌握目标风机功率变化规律。滚动预测网络的时序逻辑如图3所示。

当网络进行实际预测时,从T2时刻起会自动更新LSTM网络参数,以及时追踪到参数变化规律,有利于提高预测质量。此外,为了防止过拟合现象的出现,网络在模型训练时采用的学习率为指数衰减策略,而在测试,即模拟实际应用中使用了固定且很小的学习率,控制了每次滚动预测中网络参数可调整的范围。这样使得网络在滚动预测测试中能够微调网络参数,跟踪数据最新变化规律,且不易发生过拟合现象。

3 实验分析

3.1 模型结构

本文以LSTM网络作为预测模型。利用Python及深度学习框架TensorFlow搭建了模型进行实验。利用TensorFlow可视化工具Tensor Board可以显示整个模型的结构,如图4所示。其中,LSTM网络采用了basic_lstm_cell作为LSTM网络的隐藏层。

图4 LSTM模型

3.2 实 验

本文使用TensorFlow深度学习框架搭建LSTM模型,修改了模型对数据处理的逻辑顺序,即将其与滚动预测方法相结合,并对不同时长的数据进行预测实验。采用某风电场真实历史数据,选取了四维参数:历史功率、瞬时风速、瞬时风向和环境温度对未来风电功率进行了预测。实验选取了与风机发电量联系最为紧密的四维历史参数数据,在参数选取时,参数不宜过多,这会影响对风电功率变化规律的特征提取,也不宜太少,导致其提供的信息量不足,数据特征也难以提取。

搭建模型之后将实验数据分为两部分:训练数据和测试数据。设计了输入输出的数据格式,将输入网络的数据进行后项截取,提取风电功率数据,进行前向截取,使其形成时间差,模拟时间序列,使输入到模型中的数据能按照滚动预测方法的要求模拟出真实的用场景。

实验采用了同一数据集,对比了不同的数据量对模型进行测试。首先设计程序检查错误缺失数据,然后进行数据截取及归一化,最后在不同数据量中检测了模型性能。经过多次实验分析,发现建立具有240个隐含神经元的LSTM网络,在运算速度以及预测准确率之间得到了一定的平衡。同时,如使用过于复杂的网络而没有足够的数据进行训练,易导致过拟合现象的产生,因此,建模过程中需要多次实验验证所建网络的复杂程度是否合理。

实验中滚动LSTM模型15分钟预测损失函数变化趋势如图5所示。

图5 LSTM损失函数变化曲线

可以看出,损失函数的值在前20次迭代中下降很快,表明网络正在不断学习数据特征。经过40轮迭代计算后顺势函数波动较小。最终损失函数维持在0.5左右。

BP((back propagation,BP)网络作为一种基本的神经网络被广泛应用在回归预测问题中。本文首先对比研究了BP网络与LSTM网络在同一数据集下对风机发电量的预测。在预测中BP网络采用了13层的隐含层网络,分别对不同时间长度的风机发电量进行了预测,结果如表1所示。

表1 BP网络LSTM网络实验结果

从表1可以看出,LSTM网络整体性能优于BP神经网络,在各个预测时长均取得了优于BP神经网络的预测效果。

在研究滚动预测与LSTM相结合的实验中,训练、测试和预测数据,时间分辨率均为1分钟,预测时长和预测依据时长相等。采用了相同的训练数据集,测试数据集有所不同,分别使用了6 840和66 240条数据进行测试实验。同时研究了15分钟、30分钟、45分钟和60分钟的风电预测。BP网络与LSTM网络在预测风机发电预测结果如表2所示,可以看出滚动预测的方法明显优于传统方法。采用66 240条测试数据预测15分钟,滚动预测方法比传统LSTM模型误差减小了约13%。此外,滚动预测模型随着测试数据的增加,其预测性能进一步被提高。不同测试数据量预测15分钟功率时,采用66 240条数据的准确率比采用6 840条数据提高了9.3%。

表2 滚动LSTM网络实验结果

随着预测时长的增加,所有预测模型的误差都在不断增加,因此仅依赖历史数据的预测方法随着预测时长增加误差也逐步增大。基于滚动预测的LSTM模型在任何时长的预测中均取得了最好的结果。滚动预测的方法随着测试数据集的来源与训练数据集的差异变化,更能体现其优越性。

最终得到15分钟基于滚动预测的LSTM模型结果,选取2 000分钟的预测结果与真实数据,如图6所示。

图6 预测结果

可以看出,虽然预测数据基本接近真实值,但延迟现象还是非常明显。

4 结 语

本文提出了基于LSTM的滚动预测风机发电量预测方法,该方法可以及时追踪风电功率变化规律。相比普通LSTM网络提高了风机发电量预测准确率,同时增强了网络对不同风电场的适应能力,随着测试数据的增加。滚动预测方法更能体现其优势,即模型长时间地投入使用,其预测准确率可进一步提高。

猜你喜欢
电功率梯度风机
基于PCC-CNN-GRU的短期风电功率预测
一个改进的WYL型三项共轭梯度法
轻松上手电功率
你会计算电功率吗
一种自适应Dai-Liao共轭梯度法
应用数学(2020年2期)2020-06-24 06:02:50
解读电功率
一类扭积形式的梯度近Ricci孤立子
风机折翼“倒春寒”
能源(2018年5期)2018-06-15 08:56:02
风机倒塔事故为何频发?
能源(2017年9期)2017-10-18 00:48:27
节能技术EPU在AV71风机上的应用