基于RNN模型的新能源发电功率预测研究
Research on Power Prediction of New Energy Power Generation Based on RNN Model
DOI: 10.12677/mos.2025.141036, PDF, HTML, XML,    科研立项经费支持
作者: 范彤昕, 全 洁*, 曾美洁, 杨文卓:贵州大学电气工程学院,贵州 贵阳
关键词: RNN模型新能源发电功率预测RNN Model New Energy Power Generation Forecasting
摘要: 随着全球对可再生能源需求的不断增长,准确预测新能源发电功率对于提升电网稳定性、优化资源配置及推动绿色能源发展至关重要。然而,新能源发电功率受多种复杂因素影响,传统预测方法难以达到高精度。因此,本文旨在利用循环神经网络(RNN)模型在处理时间序列数据上的优势,设计并实现一个能够高效预测新能源发电功率的模型。首先进行数据预处理工作,对数据清洗、归一化和特征提取。随后,确定RNN模型的隐藏层数、神经元数量以及激活函数等关键参数。实验结果表明通过调整RNN模型的复杂度和训练轮数,找到最优参数,降低loss值,使模型预测值与真实值达到较好的拟合效果,以提高新能源发电功率预测精度。本研究表明,RNN模型在新能源发电功率预测上具有高精度和稳定性,对推动能源结构转型和可持续发展具有重要意义。
Abstract: As the global demand for renewable energy continues to grow, accurate prediction of new energy generation power is crucial to improve grid stability, optimize resource allocation and promote the development of green energy. However, the power of new energy generation is affected by many complicated factors, and the traditional forecasting method is difficult to achieve high precision. Therefore, this paper aims to use the advantages of recurrent neural network (RNN) model in processing time series data to design and implement a model that can efficiently predict the power of new energy generation. Firstly, data preprocessing is carried out, including data cleaning, normalization and feature extraction. Then, the key parameters of the RNN model such as the number of hidden layers, the number of neurons and the activation function are determined. This study shows that by adjusting the complexity of the RNN model and the number of training rounds, the optimal parameters can be found, the loss value can be reduced, and the predicted value of the model can achieve a better fitting effect with the real value, so as to improve the power prediction accuracy of new energy generation. This study shows that RNN model has high accuracy and stability in new energy power generation prediction, which is of great significance in promoting energy structure transformation and sustainable development.
文章引用:范彤昕, 全洁, 曾美洁, 杨文卓. 基于RNN模型的新能源发电功率预测研究[J]. 建模与仿真, 2025, 14(1): 379-387. https://doi.org/10.12677/mos.2025.141036

1. 引言

随着全球气候变化的严峻挑战和能源需求的持续增长,新能源,如太阳能、风能等,因其清洁、可再生的特点,已成为全球能源结构转型的关键力量[1]。但是新能源发电受自然环境条件(如光照强度、风速等)影响显著,其输出功率具有高度间歇性和波动性等特点,给电网的安全稳定运行带来了巨大挑战。而对新能源发电功率准确预测,可以帮助电网调度部门提前制定调度计划,优化电网调度,提高能源利用效率,减少新能源发电波动引起的电网不平衡问题,提升电网运行的安全性和经济性[2]。RNN模型因其处理序列数据中的时间依赖性和长期记忆问题的特点,成为新能源发电功率预测领域的热门选择。

传统的时间序列分析方法往往难以捕捉数据中的长期趋势和复杂非线性关系,而RNN可以通过其内部的循环单元(如LSTM、GRU等) [3],能够有效地学习和记忆历史信息,对时间序列数据进行深度挖掘,从而实现对新能源发电功率的精准预测。在国内,有研究通过相似日选择理论对光伏发电历史数据进行筛选,以减少无关数据对预测模型的影响,并结合粒子群算法(PSO)优化RNN模型的参数,提高了预测精度和稳定性[4]。国外学者不仅关注模型的预测精度,还注重模型的实时性和可解释性。他们通过引入先进的优化算法和并行计算技术,提高了RNN模型的训练速度和预测效率[5]。此外,他们还注重模型的自适应性和鲁棒性研究,以应对不同气象条件和风电场特性的变化[6]

新能源发电的不确定性对电力系统实时功率平衡构成挑战,提高预测准确性对新能源消纳和电网安全至关重要。近年来,RNN及其变体在新能源发电功率预测中展现出巨大潜力,本文将深入分析其应用情况。

2. 模型

在本节中,我们将简要阐述在预测研究中常用的机器学习(ML)及深度学习。同时,我们还将详细介绍本研究中所使用到的变分自动编码器和递归神经网络(RNN)的模型设置,两者的组合生成了一个强大的新能源场景,帮助新能源发电功率精确有效的预测。

2.1. 学习

2.1.1. 机器学习

机器学习为学习可用数据中的模式或关系提供了工具,可以推广到电力系统未来的运行和决策中。通常考虑监督学习设置,其中给出配对训练数据集 X Y X Y 是固定维数的向量。例如,在新能源发电功率中, X 为采集到的定长功率信号, Y 为各自标签的单热编码向量[7]。ML模型的目标是学习一个函数 f θ ( X ) ,它用模型参数 θ X 映射到 Y 。为了方便,我们有时会省略 θ 符号。为了找到这样的映射,我们考虑一般算法,

θ = argmin θ L( f θ ( X ),Y ) (1)

其中假设 L( , ) 是一个预定义的损失函数。例如,可以直接使用L2损失来确定距离,这是LASSO中常用的方法,同时对 θ 进行L1正则化;而在使用神经网络进行分类的情况下,我们可以为 L(,) 选择交叉熵,并且在通过神经网络进行回归的情况下,可以使用L2损失来确定模型输出与真实值的偏差。

2.1.2. 神经网络

前面提到的学习利用了神经网络提供的学习和表示能力[8],在这里我们简要说明神经网络参数(神经元的权重)的学习过程。神经网络由堆叠的、不同的可激活的“神经元”层组成,如全连接层、卷积层和激活函数。它在具有高维 X Y 的学习任务中非常强大。虽然迭代步骤有很多变体,但通过梯度下降来更新模型权重的标准反向传播过程总结如下:

θ i+1 = θ i η θ L( f θ ( X ),Y ) (2)

其中 η 为学习率, θ 的下标表示神经网络对权重参数的迭代步骤。一旦模型通过(1)和(2)使用 X Y 进行训练,我们就得到了一个精确的模型。深度学习的最新进展使由数百万神经元组成的神经网络在许多真实世界应用中优于所有其他算法[9]

2.2. RNN模型

在许多情况下,新能源发电状态不是静态的,而是按顺序发展的。例如,未来的太阳能发电和风力发电具有时间和空间相关性。在这种情况下,递归神经网络(RNN)成为一个很好的选择,因为它的结构允许它对序列数据的时间依赖性进行建模[10]

通过RNN建模需要一组顺序输入样本 x={ x 0 ,, x T } ,其中T为内存长度。RNN的权系数由三个子集组成: θ in,t θ out,t θ hiddent,t 。RNN也允许在相邻的时间步长之间连接神经元。 t 时间步长RNN单元使用隐藏状态 h t 和输入 x t 的输入,并提供输出 y ^ t 以及下一步的隐藏状态 h t+1 。然后, t 步RNN单元完成以下计算:

y ^ t = f θ in,t , θ out,t ( x t , h t ) (3a)

h t+1 = f θ hiddent,t , θ in,t ( x t , h t ) (3b)

通过随着时间的推移堆叠这样的单元,隐藏状态可以用于存储和传输来自前一步的输入信息。当内存长度为 T 时,输出 y ^ t 本质上是 x 0 ,, x T 的函数。然后我们可以得出结论,RNN的建模和学习策略也采用(1)和(2)的形式,其中 X 由顺序向量 { x t ,t=0,,T } 组成,RNN的基本结构如图1所示。

Figure 1. Basic structure of RNN, including hidden neuron, input neuron and output neuron

1. RNN基本结构,包含隐藏神经元、输入神经元和输出神经元

2.3. 场景优化

2.3.1. 损失函数

损失函数(Loss Function),又被称为误差函数或代价函数,是机器学习和统计学中用于衡量模型预测值与真实值之间差异的一个非负实值函数。其核心目的是评估模型的性能,并作为模型训练过程中的优化目标。常见的损失函数包括均方误差(Mean Squared Error, MSE)、交叉熵损失(Cross-Entropy Loss)等。不同类型的机器学习问题(如回归问题、分类问题等)通常会选择不同类型的损失函数。本项目以MSE作为损失函数。

MSE指的就是模型预测值 f( x ) 与样本真实值 y 之间距离平方的平均值。其公式如下所示:

MSE= 1 m i=1 m ( y i f( x i ) ) 2 (4)

其中, y i f( x i ) 分别表示第 i 个样本的真实值和预测值, m 为样本个数。为了简化讨论,忽略下标 i m=1 ,以 yf( x ) 为横坐标MSE为纵坐标,绘制其损失函数的图形如图2所示:

Figure 2. Characteristic curve of mean square error as loss function

2. 均方误差作为损失函数的特征曲线

可见MSE曲线的特点是光滑连续、可导,便于使用梯度下降算法,是比较常用的一种损失函数。而且,MSE随着误差的减小,梯度也在减小,这有利于函数的收敛,即使固定学习因子,函数也能较快取得最小值。

均方误差有个特性,就是当 y i f( x i ) 的差值大于1时,会增大其误差;当 y i f( x i ) 的差值小于1时,会减小其误差。这是由平方的特性决定的。也就是说,MSE会对误差较大(>1)的情况给予更大的惩罚,对误差较小(<1)的情况给予更小的惩罚。从训练的角度来看,模型会更加偏向于惩罚较大的点,赋予其更大的权重。如果样本中存在离群点,MSE会给离群点赋予更高的权重,但是以牺牲其他正常数据点的预测效果为代价,这最终会降低模型的整体性能。

对于回归问题而言,精确捕捉并最小化这种差异是至关重要的。MSE作为一个平滑且处处可导的函数,在神经网络训练过程中展现出优异的数学特性。它不仅允许通过反向传播算法高效地计算梯度,还使得优化算法(如梯度下降)能够稳定地调整网络参数,逐步逼近全局或局部最优解。这种可导性确保了训练过程的顺利进行和模型性能的稳步提升。再者,MSE对异常值具有较高的敏感性,这促使模型在训练过程中更加关注那些预测偏差较大的样本点。通过不断优化这些样本点的预测结果,模型能够逐步提升其整体预测准确性,从而在处理回归任务时表现出色。

2.3.2. SGD优化模型

SGD (Stochastic Gradient Descent),即随机梯度下降,是一种在机器学习和深度学习中广泛使用的优化算法。它的目的是通过迭代地更新模型参数来最小化损失函数,这个损失函数衡量了模型预测值与实际值之间的差异。与传统的梯度下降(GD)不同,SGD每次迭代仅使用一个或少量样本来计算梯度,这使得它在处理大规模数据集时更加高效。在线性回归中,我们给出回归方程,如下所示:

h( θ )= θ 0 x 0 + θ 1 x 1 + θ 2 x 2 ++ θ n x n = i=1 n θ i x i (5)

我们知道,对于最小二乘法要想求得最优变量就要使得计算值与实际值的偏差的平方最小。而随机梯度下降算法对于系数需要通过不断的求偏导求解出当前位置下最优化的数据,那么梯度方向公式推导如下公式,公式中的 θ 会向着梯度下降最快的方向减少,从而推断出 θ 的最优解。

θ j J( θ )= θ j 1 2 ( h θ ( x )y ) 2 =2 1 2 ( h θ ( x )y ) θ j ( h θ ( x )y ) =( h θ ( x )y ) θ j ( i=0 n θ i x i y )=( h θ ( x )y ) x j (6)

因此随机梯度下降法的公式归结为通过迭代计算特征值从而求出最合适的值。 θ 的求解公式如下:

θ=θα J( θ ) θ (7)

θ 的初值可以随机赋值; α 是下降系数,即步长,学习率,通俗的说就是计算每次下降的幅度的大小,系数越大每次计算的差值越大,系数越小则差值越小,但是迭代计算的时间也会相对延长。

3. 预测过程及结果

3.1. 数据处理

我们所使用的数据为多年每天的太阳能发电功率数据,因为一天分为白天和黑夜,黑夜不存在太阳能,故部分数据值为零。

首先我们计算特征维度的最大值max_value和最小值min_value,对数据进行归一化处理,即将每个特征的值缩放到[0, 1]区间内,通过从每个特征值中减去最小值并除以该特征的最大值与最小值之差来实现。其次,将特征数据和标签数据分别划分为X_train和Y_train,其中X_train包含输入特征序列,Y_train包含对应的标签或目标值,再从X_train和Y_train中分别截取前90000个样本作为训练集,剩余的作为测试集,即X_test和Y_test。最后,使用已搭建的RNN模型对测试集X_test的前5000个样本进行预测,得到预测值y_value,并使用matplotlib库绘制预测结果和真实值的对比图。

3.2. 预测结果

我们通过改变模型复杂度和训练轮数的方式,来获取预测值与真实值拟合效果最好的情况,以实现对新能源发电功率的精准预测。

3.2.1. 改变模型复杂度

(a) (b)

(c) (d)

Figure 3. (a) and (b) show the prediction results of 50 training times when the number of hidden units is set to 16 and 128. (c) and (d) show the prediction results of 10 and 200 training times for the model with 32 hidden elements

3. (a)、(b) 图为模型在将隐藏单元数设为16和128时训练50次的预测结果。(c)、(d) 图为模型在隐藏单元数为32下训练10次和200次的预测结果

我们将训练轮数设置为50次,改变RNN模型输入层的隐藏单元数,分别设置为16,32,64和128。密集层的单元数随之依次减半,其层数也相应增加,这有助于模型从高维特征中学习更抽象、更紧凑的表示。通过此方法获取不同复杂度下对新能源发电功率的预测情况,部分预测结果见图3(a)图3(b)

将隐藏单元数设置为16后,每天的白昼时间结束时都会出现预测曲线与真实曲线差异较大的部分,且黑夜部分拟合效果并不理想。而在隐藏单元数分别为32,64和128的图中,预测值和真实值曲线都能较好的拟合,而且预测曲线更加清晰了。最终所计算出来的损失值loss分别为0.0086,0.0082,0.0074和0.0070,呈现下降趋势,表明预测值与真实值逐渐接近。但是训练速度有所减慢,后三种复杂度情况下两值曲线拟合情况的差异并不大,且随着模型复杂度的增加,两条曲线趋向拟合的调整也不明显,主要是黑夜部分的预测拟合程度有所提高。

由此可以看出,至少将RNN模型输入层的隐藏单元数设置为32,能确保呈现出来的预测值和真实值有较好的拟合效果,而更高的复杂度能降低loss值,进而提高新能源发电功率的预测精度。

3.2.2. 改变训练轮数

根据前文得出的结论,保持隐藏单元数为32,我们只改变训练轮数,来分析该模型对新能源发电功率的预测情况。我们选取10次、50次、100次、150次、200次五个不同训练轮数作为模型训练参数的变量,主要得出了loss值的变化情况,部分预测结果见图3(c)图3(d)。五种情况下,无论是白昼情况还是黑夜情况下,模型预测的拟合效果也是越来越好,曲线更加清晰,而且200次训练轮数下生成的拟合图与150次下生成的相差非常小。最终得到的loss值分别为0.0098,0.0082,0.0075,0.0075和0.0072,同样呈现逐渐减小的趋势。

4. 结果分析与讨论

通过改变模型复杂度和训练轮数的方式进行模拟预测,我们可以得出,增加模型训练轮数,同样可以降低loss值,提高RNN对新能源发电功率预测的精确度。当训练轮数较小时,loss降低较为明显;当训练轮数较大时,loss值降低速度明显减慢,变化较小。模型复杂度的增加均能使loss值有接近的趋势下降,因此我们可以将两者结合起来。此处我们选择输入层的隐藏单元数为128和训练轮数为200次,使用RNN模型对新能源发电功率预测进行试验。

(a) (b)

Figure 4. Prediction comparison diagram and loss function diagram when the number of hidden elements in the input layer of the RNN model is 128 and the number of training rounds is 200

4. RNN模型输入层隐藏单元数为128,训练轮数为200次时的预测对比图和损失函数图

图4(a),相对于其他隐藏单元数和训练轮数条件下,新能源发电功率预测值与真实值的拟合效果较好,精确度较高。图4(b)图展示了在训练深度学习模型时,训练损失(Train_loss)和验证损失(Val_loss)随着训练周期(Epoch)的变化情况。从图表中可以看出,随着训练周期的增加,训练损失逐渐下降,这表明模型在训练数据上的性能正在逐步改善,即模型在更好地学习数据的特征。验证损失也呈现出下降趋势,并且相对于训练损失,验证损失的下降速度更快。这通常是一个积极的信号,表明模型不仅在训练数据上表现良好,而且在未见过的验证数据上也有良好的泛化能力。

在训练的早期阶段,训练损失高于验证损失,这可能是因为模型正在学习训练数据的复杂模式,而验证数据还没有被用来调整模型参数。随着训练的进行,训练损失和验证损失都趋于接近,且验证损失一直低于训练损失,这表明模型在训练过程中没有过拟合,而是继续有效地从数据中学习,并在验证集上表现更好。所以RNN模型的参数选择输入层的隐藏单元数为128和训练轮数为200次,能够保持良好的泛化能力,避免出现过拟合现象,实现对新能源发电功率有效精确的预测。

5. 结论

本文从新能源发电功率预测的研究意义及当前国内外研究现状,分析了传统预测方法的局限性,并阐述了RNN模型在新能源发电功率预测上的优势。在实证研究部分,本文主要选取了具有代表性的光伏电站历史发电数据作为实验数据集,通过调整RNN模型的复杂度和训练轮数,我们找到了最优的模型参数配置,即隐藏单元数为128和训练轮数为200次,使得RNN模型在新能源发电功率预测上达到了较高的精确度。模型在训练过程中表现出良好的泛化能力,验证了其在未见过的数据上也能保持稳定的预测性能。本研究通过实证分析和模型优化,证明了基于RNN的预测模型在新能源发电功率预测中的有效性和优越性。这一研究成果不仅为新能源发电功率的预测提供了新的思路和方法,也为新能源发电系统的优化调度和稳定运行提供了有力支持。

致 谢

我们参与了贵州大学大学生创新创业训练计划(SRT)项目,才有机会完成这篇论文。在论文完成之际,我们要特别感谢贵州大学和电气工程学院对我们的大力支持,以及我们的指导老师江聪美老师的热心关怀和悉心指导。

基金项目

贵州大学“SRT计划”项目资助(项目编号:2023SRT104)。

NOTES

*通讯作者。

参考文献

[1] 吴硕. 光伏发电系统功率预测方法研究综述[J]. 热能动力工程, 2021, 36(8): 1-7.
[2] 谷兴凯, 范高锋, 王晓蓉, 等. 风电功率预测技术综述[J]. 电网技术, 2007, 31(3): 335-338.
[3] Alexiadis, M.C., Dokopoulos, P.S., Sahsamanoglou, H.S. and Manousaridis, I.M. (1998) Short-Term Forecasting of Wind Speed and Related Electrical Power. Solar Energy, 63, 61-68.
https://doi.org/10.1016/s0038-092x(98)00032-2
[4] 陈嘉铭. 基于深度学习和强化学习的光伏发电功率预测研究[D]: [硕士学位论文]. 广州: 广东工业大, 2022.
[5] 孟祥剑. 基于数据驱动的光伏发电系统最大功率跟踪及功率预测方法[D]: [博士学位论文]. 济南: 山东大学, 2021.
[6] 叶林, 路朋, 赵永宁, 等. 含风电电力系统有功功率模型预测控制方法综述[J]. 中国电机工程学报, 2021, 41(18): 6181-6198.
[7] Valtierra-Rodriguez, M., de Jesus Romero-Troncoso, R., Osornio-Rios, R.A. and Garcia-Perez, A. (2014) Detection and Classification of Single and Combined Power Quality Disturbances Using Neural Networks. IEEE Transactions on Industrial Electronics, 61, 2473-2482.
https://doi.org/10.1109/tie.2013.2272276
[8] Lassetter, C., Cotilla-Sanchez, E. and Kim, J. (2018) Learning Schemes for Power System Planning and Control. The 51st Hawaii International Conference on System Sciences (HICSS), Hilton Waikoloa Village, 3-6 January 2018, 2643-2651.
[9] LeCun, Y., Bengio, Y. and Hinton, G. (2015) Deep Learning. Nature, 521, 436-444.
https://doi.org/10.1038/nature14539
[10] Mikolov, T., Karafiát, M., Burget, L., Černocký, J. and Khudanpur, S. (2010) Recurrent Neural Network Based Language Model. The 11th Annual Conference of the International Speech Communication Association (Inter-Speech), Makuhari, 26-30 September 2010, 1045-1048.
https://doi.org/10.21437/interspeech.2010-343