基于长短期记忆网络和凸优化算法的综合智能电网的可再生能源预测(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代码、数据

相关文章
|
4天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
25 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
4天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
19 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
4天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
22 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
9天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
26 2
|
1月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
58 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
20天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
65 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
25天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
1月前
|
机器学习/深度学习 存储 自然语言处理
从理论到实践:如何使用长短期记忆网络(LSTM)改善自然语言处理任务
【10月更文挑战第7天】随着深度学习技术的发展,循环神经网络(RNNs)及其变体,特别是长短期记忆网络(LSTMs),已经成为处理序列数据的强大工具。在自然语言处理(NLP)领域,LSTM因其能够捕捉文本中的长期依赖关系而变得尤为重要。本文将介绍LSTM的基本原理,并通过具体的代码示例来展示如何在实际的NLP任务中应用LSTM。
68 4
|
1月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
55 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
90 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台