欢迎光临
我们一直在努力

【可再生能源场景生成】使用生成对抗性网络的数据驱动场景生成方法研究(该方法基于两个互连的深度神经网络与基于概率模型的现有方法相比)(Python代码实现)

    💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

🎁完整资源、论文复现、期刊合作、论文辅导及科研仿真定制事宜点击:

👉👉👉本文完整资源下载

⛳️座右铭:行百里者,半于九十。

 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗…….🔎🔎🔎

💥第一部分——内容介绍

情景发电是可再生能源渗透率高的电力系统运行和规划的重要步骤。在本文中,提出了一种使用生成对抗性网络的数据驱动场景生成方法,该方法基于两个互连的深度神经网络,与基于概率模型的现有方法相比,我们的方法是数据驱动的,在时间和空间维度上捕获了大量相关资源的可再生能源生产模式。为了验证,我们使用了来自NREL积分数据集的风能和太阳能时间序列数据。证明所得,所提出的方法能够以完全多样的行为生成真实的风力和光伏功率分布我们还说明了如何在训练期间使用标记数据,根据不同的兴趣条件生成场景。例如,场景可以根据天气事件(例如

大风天、强烈的斜坡事件或大的预测误差)或一年中的时间(例如,7月的一天的太阳能发电)。由于神经网络的前馈性质,无需复杂的采样技术,就可以非常有效地生成场景。

GAN背后的直觉是利用深度神经网络(DNN)的力量,既表达复杂的非线性关系(生成器),又对复杂信号进行分类(鉴别器)。GAN的关键见解是在生成器DNN和鉴别器DNN之间建立一个最小最大两人游戏(因此名称中使用了“对抗性”)

在每个训练时期,生成器更新其权重以生成“假”样本,试图“欺骗”鉴别器网络,而鉴别器试图区分真实历史样本和生成的样本之间的差异。理论上,在达到纳什均衡时,GAN的最优解将为我们提供一个生成器,该生成器可以准确地恢复真实数据的分布,因此鉴别器将无法区分样本是来自生成器还是来自历史训练数据。此时,生成的场景与真实历史数据无法区分,因此尽可能真实。图2显示了我们特定环境下GAN培训程序的总体架构。

一、可再生能源场景生成的技术需求与挑战

可再生能源(风能、太阳能等)的波动性和不确定性给电网规划与运行带来核心挑战:

  • 间歇性与时空关联性
    • 风光出力受天气影响呈现强随机性,且多站点间存在复杂时空相关性
    • 传统年均值静态评估无法满足高精度调度需求
  • 概率建模的局限性
    • 气候时变性、机组非线性转换导致先验概率分布假设困难
    • 传统方法(蒙特卡洛、Copula函数等)难以同步捕捉时序波动与空间依赖特征
  • 高质量场景的生成要求
    • 需同时满足:概率分布拟合度(如出力波动统计特性)、时序模式保真(如日内波动规律)、空间相关性还原(多站点联合出力)

  • 关键结论:[[9,14,17-19]]表明,概率模型的显式假设瓶颈与多维特征耦合问题是传统方法的根本缺陷。


    二、生成对抗网络(GAN)的核心机制与优势

    1. GAN的基本架构

    Syntax error in textmermaid version 10.9.3

    • 生成器G:将潜在空间噪声z∼pz(z)z∼pz​(z)映射为生成样本G(z)G(z),目标欺骗判别器
    • 判别器D:二分类器评估样本来源真实性,目标识别生成样本
    • 对抗过程:通过Min-Max博弈达到纳什均衡:
    2. 相较于概率模型的优势
    维度概率模型(蒙特卡洛/Copula)GAN
    分布假设依赖 需显式定义边缘分布(如正态分布) 无分布假设,数据驱动
    高维相关性建模 依赖Copula函数构造联合分布,维度受限 深度神经网络隐式捕捉复杂依赖
    计算效率 需大量抽样保证精度,场景削减增加复杂度 前向传播快速生成,无需迭代抽样
    时空特征保留 时序模型(ARMA)与空间模型分离 卷积/循环网络同步提取时空特征

    核心突破:证明GAN通过隐式概率建模与深度特征提取能力,规避了概率模型的显式分布假设瓶颈。


    三、GAN在可再生能源场景生成中的关键技术演进

    1. 基础GAN的改进方向
    •   # 伪代码示例:CGAN嵌入风电场坐标
      generator_input = concatenate(noise, wind_farm_coords)
      discriminator_input = concatenate(real_data, wind_farm_coords)
    2. 典型应用架构
    模型变体技术特点可再生能源应用案例
    CGAN 以地理位置/时间为条件输入 生成多风电场联合出力场景
    WGAN-GP 梯度惩罚解决权重裁剪缺陷 风光互补系统日前场景生成
    SGAN 时序卷积网络替代CNN 月度风光出力序列生成
    VAE-GAN 融合变分编码器提取天气特征 特定天气模式下的光伏出力生成
    3. 双深度神经网络架构的创新
    • 结构示例:双判别器残差GAN(2DDRGAN)

      • 优势: ① 空间判别器保障出力曲线形态真实性 ② 频谱判别器确保波动频率分布匹配历史数据 ③ 残差连接加速训练收敛

    四、与传统概率模型的性能对比验证

    1. 生成质量对比
    • 概率分布拟合: GAN生成场景的功率概率密度曲线(PDF)与历史数据KS检验误差<0.03,优于蒙特卡洛法的0.12
    • 时空相关性保留: CGAN生成多站点出力序列的互相关系数误差≤5%,Copula模型误差达15%
    2. 计算效率提升
    方法生成10,000场景耗时场景削减耗时
    拉丁超立方抽样 2.1小时 0.8小时
    GAN(训练后) 3分钟 无需削减

    关键数据:证实GAN的前向传播效率比抽样方法快2个数量级,且生成场景无需二次削减。


    五、研究挑战与未来方向

  • 模型训练瓶颈

    • 风光出力长尾分布导致模式坍塌(如极端低出力事件丢失)
    • 解决方案:引入谱归一化(Spectral Norm)约束生成器梯度
  • 物理规律融合

    • 当前纯数据驱动可能违反能量守恒(如光伏夜间出力≠0)
    • 趋势:物理信息GAN(PI-GAN)将功率平衡方程作为约束嵌入损失函数
  • 跨区域数据隐私

    • 联邦学习框架下分布式训练GAN,参数聚合避免原始数据泄露

  • 结论

    场景生成可以帮助建模可再生能源发电的不确定性和变化性,是高渗透率可再生能源电网决策制定中的重要工具。在本文中,我们提出了一种新颖的机器学习模型——生成对抗网络(GANs),并建议将其用于可再生能源资源的场景生成。我们提出的方法是数据驱动且无模型的。它利用深度神经网络的强大能力和大量的历史数据,直接生成符合历史数据分布的场景,而无需显式建模该分布。

    通过案例研究,我们展示了GANs在风能和太阳能的场景生成中表现良好。我们还在模拟中表明,通过仅使用多个站点的历史数据重新训练模型,GANs能够为这些站点生成具有正确时空相关性的场景,而无需额外调整。我们还观察到,通过添加指示场景属性的类别信息,GANs能够生成符合相同样本属性的条件类别样本。我们通过一系列统计方法验证了生成样本的质量,并将其结果与高斯Copula方法生成的场景进行了比较。

    由于我们提出的方法不需要任何特定的统计假设,因此可以应用于电力系统中大多数感兴趣的随机过程。此外,由于该方法采用前馈神经网络结构,因此不需要对可能复杂且高维的过程进行采样,并且可以轻松扩展到具有大量不确定性的系统。在未来的工作中,我们建议将GANs纳入概率预测问题中。此外,我们还计划利用这些场景,并将这项工作扩展到高渗透率可再生能源发电的决策策略设计中。

    基于双深度神经网络的GAN方法通过隐式概率建模与时空特征提取能力,显著克服了传统概率模型在可再生能源场景生成中的三大局限:

  • 摆脱对显式分布假设的依赖
  • 同步捕捉复杂时空相关性
  • 提升高维场景生成效率
  • 未来研究需进一步解决训练稳定性、物理约束嵌入及隐私保护问题,以实现工程化落地。

    📚第二部分——运行结果

    部分代码:

    Y_np_sample = OneHot(np.random.randint(5, size=[visualize_dim]), n=events_num)
    Zs = np.random.normal(mu, sigma, size=[batch_size, dim_z]).astype(np.float32)
    generated_samples = sess.run(
    image_tf_sample,
    feed_dict={
    Z_tf_sample: Z_np_sample,
    Y_tf_sample: Y_np_sample
    })
    generated_samples=generated_samples.reshape([-1,576])
    generated_samples = generated_samples * 16 #16 is the maximum value for wind capacity we use. Change to your max value here
    csvfile=open('sample1.csv', 'wb')
    writer=csv.writer(csvfile)
    writer.writerows(generated_samples)
    csvfile=open('label1.csv', 'wb')
    writer=csv.writer(csvfile)
    writer.writerows(Y_np_sample)

    #plot the loss and P_real as well as P_fake
    print("P_real",P_real)
    print("P_fake",P_fake)

    plt.plot(P_real,label="real")
    plt.plot(P_fake,label="fake")
    plt.legend()
    plt.show()

    plt.plot(discrim_loss,label="discrim_loss")
    plt.legend()

    🎉第三部分——参考文献 

    文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)

    ​​​​​​🌈第四部分——本文完整资源下载

    资料获取,更多粉丝福利,MATLAB|Simulink|Python|数据|文档等完整资源获取

    本文完整资源下载

    赞(0)
    未经允许不得转载:171主机测评 » 【可再生能源场景生成】使用生成对抗性网络的数据驱动场景生成方法研究(该方法基于两个互连的深度神经网络与基于概率模型的现有方法相比)(Python代码实现)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址