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

news/2024/9/16 22:14:47/

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 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 generationyPredSolar = 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 GenerationyPredWind = 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]#DemandyPredDemand = 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 demandinvyPredDemandInElastic = 0.7*invyPredDemandinvyPredDemandElastic = 0.3*invyPredDemandelasticDemandSum = np.sum(invyPredDemandElastic)#Renewable energy outputrenewableEnergyOutput = 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 prosumerarrayinvyPredDemandInelastic = np.outer(np.array(weighs), np.array(invyPredDemandInElastic))arrayRenewableEnergyOutput = np.outer(np.array(weighs), np.array(renewableEnergyOutput))arrayElasticDemandSum = np.array(weighs)*elasticDemandSum#returnsreturn arrayinvyPredDemandInelastic, arrayRenewableEnergyOutput, arrayElasticDemandSum

🎉3 参考文献

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

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

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

🌈4 Python代码、数据


http://www.ppmy.cn/news/8737.html

相关文章

【C++】STL---string类的模拟实现

目录前言类的属性构造函数构造函数析构函数拷贝构造函数操作符重载赋值操作符重载比较操作符重载获取字符串长度下标访问迭代器尾插一个字符追加字符串字符串清空字符串交换以C的方式返回字符判断字符串是否为空修改长度指定大小扩容查找字符查找子串指定位置插入字符指定位置插…

大数据面试题Spark篇(1)

1.spark数据倾斜 数据倾斜俩大直接致命后果:Out Of Memory,运行速度慢。这主要是发生在Shuffle阶段。同样Key的数据条数太多了。导致了某个key所在的Task数据量太大了,远远超过其他Task所处理的数据量。 数据倾斜一般会发生在shuffle过程中…

4366. 上课睡觉

Powered by:NEFU AB-IN Link 文章目录4366. 上课睡觉题意思路代码4366. 上课睡觉 题意 有 N 堆石子,每堆的石子数量分别为 a1,a2,…,aN。 你可以对石子堆进行合并操作,将两个相邻的石子堆合并为一个石子堆,例如,如果 a[1,2,3,4,5…

聊聊接口文档的事儿

1、前言 大家好,欢迎来到我的吉鹿(记录)空间。 最近在做一个前后端分离的项目时,由于后端提供的 API 接口文档实在是一言难尽,导致了开发的效率大大降低。于是我出手了,我决定薅完我20几年的头发来肝一下…

谈谈SpringBoot

1. Spring Boot 简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2. HelloWorld 功能:浏览器发送hello请求,服务器接受请求并处理,响应Hello World字符串&a…

【闲来无聊写个几个小特效——五角星,小光圈,探照灯】

五角星,见过吧,如果是你,你如何使用代码写一个五角星呢?思考一下,你会说,先这样在那样就好啦,可是真正上手的时候却修修改改磕磕绊绊来看一下今天的五角星如何用几行代码实现 1.绘制五角星 四行…

【ESP 保姆级教程】疯狂毕设篇 —— 案例:基于ESP8266和App的炫酷rgb ws2812彩灯控制

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-01-01 ❤️❤️ 本篇更新记录 2022-01-01 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…

C++string类介绍

目录 一、介绍 二、string类对象的构造 string类有如下构造方法: 类对象的容量操作 类对象访问及遍历 string对象的修改操作: std::string::insert std::string::erase std::string::c_str std::string::find std::string::substr 一、介绍…

将Android进行到底之内容提供者(ContentProvider)

文章目录前言一、ContentProvider是什么?二、使用示例1.为应用创建内容提供者2.使用内容提供者2.1 内容URI2.2 Uri参数解析2.2 使用内容URI操作数据3.ContentProvider妙用4 内容URI对应的MIME类型5.ContentProvider重点注意6 演示demo源码总结前言 随着现在的应用越…

[ASIS 2022 last CTF] 2022最后一赛

这个比赛太难了,就作了4个题 Crypto Bedouin 题目非常短,就是先生成一个小素数,然后堆到一起l次再补个1,比如235就变成2352352351这样,一开始以为是2进制,一直没作出来,方式也没错。后来发现原…

Unsupported conversion from LONG to java.sql.Timestamp

使用mybatisplus查询实体时报错Unsupported conversion from LONG to java.sql.Timestamp 先说结论: mybatis建议实体类上带上无参构造,当然java类虽然默认提供无参构造,但是现在都会用Data注解简化开发,里面会有 有参构造 所以默认的无参构造…

python自动化编程--正则表达式

目录 一.创建正则表达式 1.re模块 2.匹配Regex对象 二.正则表达式匹配更多模式 1.用括号分组 2.用管道匹配多个分组 3.用问号表示可选 4.用星号匹配零次或多次 5.用加号表示匹配一次或多次 6.用花括号匹配特定次数 三.贪心和非贪心匹配 四.字符分类 五.自定义字符…

QML教程(七) JavaScript

目录 一、对属性值使用 JavaScript 表达式 二、在 QML 中添加 JavaScript 函数 三、使用 JavaScript 文件 四、属性绑定中的 JavaScript 五、信号处理程序中的 JavaScript 六、将信号连接到 JavaScript 函数 七、启动执行 JavaScript QML 提供的 JavaScript 主机环境可以…

系统管理员喜欢 systemd 的 5 个理由

导读systemd 的速度和易用性使其成为管理现代 Linux 系统的流行方式。 系统管理员知道,在一台运行着的现代计算机上会发生很多事情:应用程序在后台运行、预定事件等待在特定时间被触发、事件写入日志文件、发送状态报告。在以前,不同的进程可…

2022年终总结与展望

2022年终总结 自2019年3月13日入驻CSDN,已经三年零九个月了。截至2022年12月31日,CSDN博客已发原创博文112篇,粉丝3616个,访问量超过157万次。 2019年12月31日数据情况: 2020年12月31日数据情况: 2021年1…

JAVA练习8

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目1- 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 二、题目2- 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示:这里可以…

数据结构(一)

单链表 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx; // 初始化 void init() { head -1; idx 0; } // 在链表头插入一个数a void insert(int a) { e[idx] a, ne[i…

mysql事务一致性,原子性,持久性实现以及锁区别

Mysql事务一致性,原子性是如何实现的? 首先是通过锁和mvcc实现了执行过程中的一致性和原子性 其次是在灾备方面通过Redo log实观,Redo log会把事务在执行过程中对数据库所做的所有修改都记录下来,在之后系统崩溃重启后把事务所做的任何修改都…

Faster RCNN网络源码解读(Ⅸ) --- ROIAlign、TwoMLPHead、FastRCNNPredictor部分解析

目录 一、回顾以及本篇博客内容概述 二、代码解析 2.1 FasterRCNNBase类 2.1.1 forward正向传播 2.2 FasterRCNN类 2.2.1 roi_heads定义 2.3 TwoMLPHead类(faster_rcnn_framework.py) 2.4 FastRCNNPredictor类 2.5 RoIHeads类(roi_…

四【Servlet基础】文件配置及环境搭建(重要)

文章目录4.1 Servlet概念4.2 Servlet作用4.3 Servlet开发步骤4.3.1 搭建开发环境4.3.2 创建项目4.3.3 部署Servlet4.3.4 配置Servlet4.3.5 测试运行4.1 Servlet概念 (1)Servlet:Server Applet的简称,是运行在Web服务器端的Java程…