基于长短期记忆网络和凸优化算法的综合智能电网的可再生能源预测(Python代码实现)

简介: 基于长短期记忆网络和凸优化算法的综合智能电网的可再生能源预测(Python代码实现)

💥1 概述

技术的进步使可再生能源(太阳能、风能等)得以大规模利用。将传统能源和可再生能源相结合的智能电网被认为是一种可持续的发电解决方案。然而,所有可再生能源都受到环境因素(如风速、太阳辐射强度、云层)的影响,这些因素会导致这些能源产生的电力波动。此外,可用性受每日/年度周期的影响(例如,太阳能仅在白天可用)。而智能计量支持实时需求预测;还需要预测可再生能源发电量的精确模型。准确的预测模型将确保电网稳定、顺利调度和能源管理。例如,如果模型预测可再生能源在一定时间段内中断,智能电网必须在该时间段内无缝切换到传统能源,并确保发电量满足需求预测。本文提出了基于数据源的各种基于学习的可再生能源预测模型;以及用于供需匹配的调度策略。此外,还可以使用模拟软件对微电网进行真实建模。这里定义的问题是提出一个框架:现实地模拟微电网;预测(可再生)能源的需求和供应;无缝安排可再生能源(和常规能源)供应以满足需求;并提供关于智能电网系统功能的可操作见解。


方法:

  1. 微电网/公用事业系统的模拟。
  2. 使用统计/机器学习方法开发能源生产预测模型。(使用长短期记忆网络(LSTMs)和向量自动回归(VAR)完成 - 提供代码)。
  3. 使用表征良好的优化算法为公用事业/微电网控制器开发调度系统(通过使用凸优化算法模块 Cvxpy 完成 - 提供的代码)。
  4. 最后一步是将预测模型和调度程序与仿真设置集成在一起.


📚2 运行结果

部分代码:

#To be called at every 24 hour distribution, generates the demand supply distribution
def dataGenerator(XTestSolarHour, XTestWindHour, XTestDemandHour, weighs):
  #Solar Energy generation
  yPredSolar = model.predict(XTestSolarHour)
  XTestSolarHour = XTestSolarHour.reshape((XTestSolarHour.shape[0],XTestSolarHour.shape[2]))
  invyPredSolar = np.concatenate((yPredSolar, XTestSolarHour[:, 1:]), axis = 1)
  invyPredSolar = scalerOne.inverse_transform(invyPredSolar)
  invyPredSolar = invyPredSolar[:, 0]
  # yTestSolar = yTestSolar.reshape((len(yTestSolar), 1))
  # invyTestSolar = np.concatenate((yTestSolar, XTestSolar[:, 1:]), axis = 1)
  # invyTestSolar = scalerOne.inverse_transform(invyTestSolar)
  # invyTestSolar = invyTestSolar[:, 0]
  #Wind Energy Generation
  yPredWind = modelOne.predict(XTestWindHour)
  XTestWindHour = XTestWindHour.reshape((XTestWindHour.shape[0],XTestWindHour.shape[2]))
  invyPredWind = np.concatenate((yPredWind, XTestWindHour[:, 1:]), axis = 1)
  invyPredWind = scalerTwo.inverse_transform(invyPredWind)
  invyPredWind = invyPredWind[:, 0]
  # yTestWind = yTestWind.reshape((len(yTestWind), 1))
  # invyTestWind = np.concatenate((yTestWind, XTestWind[:, 1:]), axis = 1)
  # invyTestWind = scalerTwo.inverse_transform(invyTestWind)
  # invyTestWind = invyTestWind[:, 0]
  #Demand
  yPredDemand = modelTwo.predict(XTestDemandHour)
  XTestDemandHour = XTestDemandHour.reshape((XTestDemandHour.shape[0],XTestDemandHour.shape[2]))
  invyPredDemand = np.concatenate((yPredDemand, XTestDemandHour[:, 1:]), axis = 1)
  invyPredDemand = scalerThree.inverse_transform(invyPredDemand)
  invyPredDemand = invyPredDemand[:, 0]
  # yTestDemand = yTestDemand.reshape((len(yTestDemand), 1))
  # invyTestDemand = np.concatenate((yTestDemand, XTestDemand[:, 1:]), axis = 1)
  # invyTestDemand = scalerThree.inverse_transform(invyTestDemand)
  # invyTestDemand = invyTestDemand[:, 0]
  #Elastic and Inelastic demand
  invyPredDemandInElastic = 0.7*invyPredDemand
  invyPredDemandElastic = 0.3*invyPredDemand
  elasticDemandSum = np.sum(invyPredDemandElastic)
  #Renewable energy output
  renewableEnergyOutput = invyPredSolar + invyPredWind
  #Splitting the above into different prosumers according to a schema, of course in real life, with more computational power
  #One can train separately for each prosumer
  arrayinvyPredDemandInelastic = np.outer(np.array(weighs), np.array(invyPredDemandInElastic))
  arrayRenewableEnergyOutput = np.outer(np.array(weighs), np.array(renewableEnergyOutput))
  arrayElasticDemandSum = np.array(weighs)*elasticDemandSum
  #returns
  return arrayinvyPredDemandInelastic, arrayRenewableEnergyOutput, arrayElasticDemandSum

🎉3 参考文献

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


[1]王辉. 基于LSTM模型的环渤海地区可再生能源预测研究[D].天津理工大学,2020.DOI:10.27360/d.cnki.gtlgy.2020.000309.

[2]范刘洋. 考虑可再生能源预测误差的电力系统鲁棒调度研究[D].上海交通大学,2017.


🌈4 Python代码、数据

相关文章
|
12天前
|
搜索推荐 程序员 调度
精通Python异步编程:利用Asyncio与Aiohttp构建高效网络应用
【10月更文挑战第5天】随着互联网技术的快速发展,用户对于网络应用的响应速度和服务质量提出了越来越高的要求。为了构建能够处理高并发请求、提供快速响应时间的应用程序,开发者们需要掌握高效的编程技术和框架。在Python语言中,`asyncio` 和 `aiohttp` 是两个非常强大的库,它们可以帮助我们编写出既简洁又高效的异步网络应用。
61 1
|
11天前
|
机器学习/深度学习 数据采集 供应链
Python实现深度学习模型:智能库存管理系统
【10月更文挑战第5天】 Python实现深度学习模型:智能库存管理系统
60 9
|
11天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护 【10月更文挑战第3天】
40 0
|
9天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能质量检测与控制
使用Python实现深度学习模型:智能质量检测与控制 【10月更文挑战第8天】
101 62
使用Python实现深度学习模型:智能质量检测与控制
|
2天前
|
机器学习/深度学习 传感器 存储
使用 Python 实现智能地震预警系统
使用 Python 实现智能地震预警系统
87 61
|
6天前
|
机器学习/深度学习 TensorFlow 调度
使用Python实现深度学习模型:智能能源消耗预测与管理
使用Python实现深度学习模型:智能能源消耗预测与管理
75 30
|
9天前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
37 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
3天前
|
消息中间件 监控 网络协议
Python中的Socket魔法:如何利用socket模块构建强大的网络通信
本文介绍了Python的`socket`模块,讲解了其基本概念、语法和使用方法。通过简单的TCP服务器和客户端示例,展示了如何创建、绑定、监听、接受连接及发送/接收数据。进一步探讨了多用户聊天室的实现,并介绍了非阻塞IO和多路复用技术以提高并发处理能力。最后,讨论了`socket`模块在现代网络编程中的应用及其与其他通信方式的关系。
|
4天前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型:智能天气预测与气候分析
使用Python实现深度学习模型:智能天气预测与气候分析
62 3
|
3天前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型:智能海洋监测与保护
使用Python实现深度学习模型:智能海洋监测与保护
19 1