zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

2023-09-14 09:05:19 时间

 👨‍🎓个人主页:研学社的博客 

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

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

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

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 文献来源

🌈4 Python代码、数据、文章讲解


💥1 概述

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

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

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

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

📚2 运行结果

部分代码:

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()
plt.show()

🎉3 文献来源

部分理论来源于网络,如有侵权请联系删除。

🌈4 Python代码、数据、文章讲解