光伏发电预测(LSTM、CNN_LSTM和XGBoost回归模型,Python代码)

运行效果:光伏发电预测(LSTM、CNN_LSTM和XGBoost回归模型,Python代码)_哔哩哔哩_bilibili

运行环境库的版本

 

光伏太阳能电池通过互连形成光伏模块,以捕捉太阳光并将太阳能转化为电能。因此,当光伏模块暴露在阳光下时,它们会产生直流电。这是目前将太阳能转化为电能的最佳方式之一。世界上许多国家已经采用了这项技术;然而,光伏系统的发电量估算是一个挑战,因为光伏系统的发电量受到天气条件的极大影响。

由于天气对光伏系统的生产有很大影响,例如辐射、温度、湿度和风速等因素,因此该竞赛的目标是通过分析历史数据来建立天气与光伏系统生产之间的关系。通过这个模型,我们能够使用未来近期天气的预测数据来预测光伏系统的生产。一旦结果与预测差距较大,可能存在光伏系统的问题,需要找出原因,然后采取适当措施来修复光伏系统并做出更好的决策。例如,根据准确的预测,光伏系统运营商可以平衡电力消耗,并将多余的电力储备用于紧急情况。

1.数据集介绍

来自美国一个光伏电站(每隔一个小时采集数据,从01.01.2017-00:00到31.12.2017-23:00,一共8760行数据

开始位置数据

 截止位置

  1. WindSpeed(风速): 表示风的速度,通常以米/秒(m/s)或千米/小时(km/h)为单位。

  2. Sunshine(阳光照射): 表示阳光的照射量,通常以小时为单位。它表示太阳光照射地表的时间。

  3. AirPressure(气压): 表示大气的压力,通常以帕斯卡(Pa)或百帕斯卡(hPa)为单位。

  4. Radiation(辐射量): 表示辐射的能量强度,通常以瓦特每平方米(W/m²)为单位。这可以是太阳辐射或其他类型的辐射。

  5. AirTemperature(气温): 表示空气的温度,通常以摄氏度(°C)或华氏度(°F)为单位。

  6. RelativeAirHumidity(相对空气湿度): 表示空气中的相对湿度,通常以百分比(%)表示。它是指空气中含水汽的相对量。

  7. SystemProduction(系统发电量): 表示太阳能光伏系统的发电量,通常以兆瓦(MW)为单位。这是您要预测或分析的目标变量,即太阳能系统的实际发电量。

特征列有:'WindSpeed', 'Sunshine', 'AirPressure', 'Radiation', 'AirTemperature', 'RelativeAirHumidity'。

标签列为:SystemProduction

2.模型(训练集和测试集比例为4:1,也就是训练集有前7008行数据,测试集有后1752行数据)

 全年发电数据显示

训练集与测试集的划分 

2.1.LSTM模型

2.2.CNN_LSTM模型

 

2.3. XGBoost回归模型

3.效果

3.1.LSTM模型下的测试集预测值与真实值

3.2.CNN_LSTM模型下的测试集预测值与真实值

 3.3. XGBoost回归模型

测试集预测值与真实值

随机选取一周的数据进行详细展示

整个项目文件夹(第一个文件夹为xgboost模型相关的包文件,xg.py是xgboost模型英文注释版本,xg_chinese.py是xgboost模型中文注释版本)

对项目感兴趣,可以关注最后一行

# 导入所需的库
import matplotlib.pyplot as plt  # 导入用于绘图的Matplotlib库
import seaborn as sns  # 导入Seaborn库,用于绘制统计图
from datetime import datetime  # 导入datetime库,用于处理日期和时间
from xgboost import XGBRegressor  # 导入XGBoost回归模型
from sklearn.model_selection import GridSearchCV  # 导入网格搜索交叉验证
from sklearn.metrics import mean_absolute_error  # 导入用于计算平均绝对误差的库
from xgboost import plot_importance  # 导入用于绘制特征重要性的库
import pandas as pd  # 导入Pandas库,用于数据处理
import numpy as np  # 导入NumPy库,用于数值计算#代码和数据集的压缩包:https://mbd.pub/o/bread/ZZWTmZ5t

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入探究 C++ 编程中的资源泄漏问题

目录 1、GDI对象泄漏 1.1、何为GDI资源泄漏? 1.2、使用GDIView工具排查GDI对象泄漏 1.3、有时可能需要结合其他方法去排查 1.4、如何保证没有GDI对象泄漏? 2、进程句柄泄漏 2.1、何为进程句柄泄漏? 2.2、创建线程时的线程句柄泄漏 …

成功解决@Async注解不生效的问题,异步任务处理问题

首先,有这样一个异步监听方法 然后配置好了异步线程池 package com.fdw.study.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Conf…

国产1.8V低电压输入,可用于驱动步进电机;H 桥驱动电路单元可以直接驱动IR-CUT

D6212是专为安防摄像头系统设计的驱动电路,电路由八路达林顿管 阵列和 H 桥驱动电路两个单元组成。八路达林顿管阵列均带有续流二极 管,可用于驱动步进电机;H 桥驱动电路单元可以直接驱动IR-CUT。单个 达林顿管在输入电压低至 1.8V 状态下支持…

口袋参谋:如何提升宝贝流量?这三种方法超实用!

​你的店铺能不能出爆款?提升单品流量是关键。 对于新手卖家来说,是缺乏运营技巧和运营经验的,运营技巧主要体现在标题写作、各种图片和视频制作等。 由于新手买家没有经验,习惯于直接使用数据包上传,导致宝贝没有展…

Java卷上天,可以转行干什么?

小刚是某名企里的一位有5年经验的高级Java开发工程师,每天沉重的的工作让他疲惫不堪,让他萌生出想换工作的心理,但是转行其他工作他又不清楚该找什么样的工作 因为JAVA 这几年的更新实在是太太太……快了,JAVA 8 都还没用多久&am…

cpp primer plus笔记01-注意事项

cpp尽量以int main()写函数头而不是以main()或者int main(void)或者void main()写。 cpp尽量上图用第4行的注释而不是用第5行注释。 尽量不要引用命名空间比如:using namespace std; 函数体内引用的命名空间会随着函数生命周期结束而失效,放置在全局引用的命名空…

PX4仿真添加world模型文件,并使用yolov8进行跟踪

前言 目的:我们是为了在无人机仿真中使用一个汽车模型,然后让仿真的无人机能够识别到这个汽车模型。所以我们需要在无人机仿真的环境中添加汽车模型。 无人机仿真中我们默认使用的empty.world文件,所以只需要将我们需要的模型添加到一起写进这个empty.world文件中去就可以…

jmeter添加断言(详细图解)

先创建一个线程组,再创建一个http请求。 为了方便观察,我们添加两个监听器,察看结果树和断言结果。 添加断言:响应断言,响应断言也是比较常用的一个断言 设置响应断言:正常情况下响应代码是200。选择响应代…

Multisim:JFET混频器设计(含完整程序)

目录 前言实验内容一、先看作业题目要求二、作业正文IntroductionPre-lab work3.13.2 Experiment Work4.1(2)circuit setup4.1(3)add 12V DC4.1(4)set input x1 and x24.1(5)4.1(6)4.1(7)4.2(1)(2)4.2(3)4.2(4)4.3(1)(2)4.3(3) Conclusion 三、资源包内容 前言 花了好大心血完成…

NPDP产品经理知识(产品创新管理)

复习文化,团队与领导力 产品创新管理: 如何树立愿景: 如何实现产品战略=== 计划 实施产品开发: 商业化,营销计划,推广活动

1-Java SE基础

Java SE基础知识总结 背景知识 3种技术架构 Java SE:Java Platform Standard Edition(标准版),完成桌面应用程序的开发,是其它两者的基础Java ME:Java Platform Micro Edition,开发电子消费产…

Vue中如何进行分布式任务调度与定时任务管理

在Vue中进行分布式任务调度与定时任务管理 分布式任务调度和定时任务管理是许多应用程序中的关键功能之一。它们用于执行周期性的、异步的、重复的任务,例如数据备份、邮件发送、定时报告生成等。在Vue.js应用中,我们可以结合后端服务实现分布式任务调度…

关于氮化镓的干蚀刻综述

引言 GaN及相关合金可用于制造蓝色/绿色/紫外线发射器以及高温、高功率电子器件。由于 III 族氮化物的湿法化学蚀刻结果有限,因此人们投入了大量精力来开发干法蚀刻工艺。干法蚀刻开发一开始集中于台面结构,其中需要高蚀刻速率、各向异性轮廓、光滑侧壁…

记一次 .NET某账本软件 非托管泄露分析

一:背景 1. 讲故事 中秋国庆长假结束,哈哈,在老家拍了很多的短视频,有兴趣的可以上B站观看:https://space.bilibili.com/409524162 ,今天继续给大家分享各种奇奇怪怪的.NET生产事故,希望能帮助…

Java基础(二)

1. 面向对象基础 1.1 面向对象和面向过程的区别 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。 面向对象开发的方式更容易维护和迭代升级、易复用、易扩展。 1…

3D孪生场景搭建:参数化模型

1、什么是参数化模型 参数化模型是指通过一组参数来定义其形状和特征的数学模型或几何模型。这些参数可以用于控制模型的大小、形状、比例、位置、旋转、曲率等属性,从而实现对模型进行灵活的调整和变形。 在计算机图形学和三维建模领域,常见的参数化模…

Docker 镜像的缓存特性

Author:rab 目录 前言一、构建缓存二、Pull 缓存总结 前言 首先我们要清楚,Docker 的镜像结构是分层的,镜像本身是只读的(不管任何一层),当我们基于某镜像运行一个容器时,会有一个新的可写层被…

Springboot 音乐网站管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 音乐网站管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统 具有完整的源代码和数据库&…

让丢失成为过去,尽在我们的智能防丢器

我们都知道,生活中总会遇到一些小烦恼,比如钥匙不见了,钱包忘在哪里,甚至手机掉在了不知名的地方,这些看似小事,却足以打乱我们的日程。那么,有没有一种方法,可以让这些烦恼一扫而空…

一座“城池”:泡泡玛特主题乐园背后,IP梦想照亮现实

“更适合中国宝宝体质”的主题乐园,被泡泡玛特造出来了。 9月26日,位于北京朝阳公园内的国内首个潮玩行业沉浸式 IP 主题乐园,也是泡泡玛特首个线下乐园——泡泡玛特城市乐园 POP LAND正式开园。 约4万平方米的空间中,泡泡玛特使…