EI级 | Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测

EI级 | Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测

目录

    • EI级 | Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测
      • 预测效果
      • 基本介绍
      • 程序设计
      • 参考资料

预测效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

基本介绍

1.【EI级】Matlab实现VMD-TCN-BiLSTM多变量时间序列预测(光伏功率数据);
Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测;
VMD对光伏功率分解,TCN-BiLSTM模型对分量分别建模预测后相加。
2.运行环境为Matlab2021a及以上;
3.数据集为excel(光伏功率数据),输入多个特征,输出单个变量,多变量光伏功率时间序列预测,main.m为主程序,运行即可,所有文件放在一个文件夹;
4.命令窗口输出R2、MSE、RMSE、MAE、ME等多指标评价;

在这里插入图片描述

在这里插入图片描述

参考文献(非复现)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序设计

  • 完整程序和数据获取方式:私信博主回复Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测获取。

[data]=process(data1,n,hour,BaoLiu_num,JianGe_num);
X    = data(:,end)';
%% --------- some sample parameters forVMD:对于VMD样品参数进行设置---------------
alpha = 2000;       % moderate bandwidth constraint:适度的带宽约束/惩罚因子
tau = 0;            % noise-tolerance (no strict fidelity enforcement):噪声容限(没有严格的保真度执行)
K = 3;              % modes:分解的模态数,可以自行设置,这里以8为例。
DC = 0;             % no DC part imposed:无直流部分
init = 1;           % initialize omegas uniformly  :omegas的均匀初始化
tol = 1e-7;  
%% --------------- Run actual VMD code:数据进行vmd分解---------------------------
[u, u_hat, omega] = VMD(X, alpha, tau, K, DC, init, tol); %其中u为分解得到的IMF分量
figure;
imfn=u;
n=size(imfn,1); 
subplot(n+1,1,1);  
plot(X); 
ylabel('原始功率','fontsize',12,'fontname','宋体');
title('VMD分解');for n1=1:nsubplot(n+1,1,n1+1);plot(u(n1,:));%输出IMF分量,a(:,n)则表示矩阵a的第n列元素,u(n1,:)表示矩阵u的n1行元素ylabel(['IMF' int2str(n1)]);%int2str(i)是将数值i四舍五入后转变成字符,y轴命名
endxlabel('样本','fontsize',12,'fontname','宋体');
for i_vmd=1:K
data(:,end) = u(i_vmd,:)';%% 输入天数
Tian=100;
weather=6;
his_time=4;
his_day=2;
time=BaoLiu_num;
shurugeshu = weather+his_time+his_day;%输入特征个数
lag = 1:time*his_day;[input_train,input_valid,input_test,output_train,output_valid,output_test]=data_set(data,Tian,weather,time);
%% 
[~,bb]=mapminmax([input_train input_valid input_test]);
[cc,dd]=mapminmax([output_train output_valid output_test]);
%%
% 训练集
[tr_inputn,tr_outputn]=train_set(input_train,output_train,bb,dd,lag,his_time,his_day,time);
Xxun{1} = tr_inputn;  %训练集输入
Yxun{1} = tr_outputn; % 训练集输出
%%
% TCN参数
numChannel = 10;  % 通道数量
KerSize = 3;  % 卷积核大小
dropoutFactor = 0.025;  % droupt
numChan = 4;  % TCN残差块数

参考资料

[1] http://t.csdn.cn/pCWSp
[2] https://download.csdn.net/download/kjm13182345320/87568090?spm=1001.2014.3001.5501
[3] https://blog.csdn.net/kjm13182345320/article/details/129433463?spm=1001.2014.3001.5501

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

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

相关文章

【AUTOSAR】RTE的基础概念和ETAS ISOLAR RTA-CAR配置指南(一)RTE简介

目录 前言 RTE简介 什么是RTE 软件组件 类型 组件类型和实例

Vue3-46-Pinia-获取全局状态变量的方式

使用说明 在 Pinia 中,获取状态变量的方式非常的简单 : 就和使用对象一样。 使用思路 : 1、导入Store;2、声明Store对象;3、使用对象。 在逻辑代码中使用 但是 Option Store 和 Setup Store 两种方式定义的全局状态变量…

检测射线与球体交点数量代码实现(C#代码Unity环境下测试通过)

上代码&#xff1a; int RayCrossSphere(Ray ray, Sphere sphere) {Vector3 originT0Center sphere.center - ray.origin;float sqrtRadius sphere.radius * sphere.radius;if (originT0Center.sqrMagnitude < sqrtRadius){return 1;}else{Vector3 project Vector3.Proj…

7 认证相关

认证相关 7 认证相关今日详细1. 代码整合2.通用认证组件2.1 处理访问记录2.2 登录之后才具有评论和发布 3.随意的接口结论&#xff1a;在serializer中可以调用request4.完善详细页面 总结1. 小程序1.1 申请账号APPID1.2 搭建开发者工具1.3 目录结构1.4 组件1.5 微信API1.6 事件…

全新小白菜QQ云端机器人登录系统源码 /去除解密授权学习版源码

源码介绍&#xff1a; 全新小白菜QQ云端机器人登录系统源码&#xff0c;是一款经过全面解密的授权学习版源码。 这款源码已解除了授权版的限制&#xff0c;然而许多人可能对其用途并不了解。实际上&#xff0c;该源码主要面向群机器人爱好者设计。它是一个基于挂机宝机器人框…

RT-DETR算法优化改进:多层次特征融合(SDI)结合PConv、DualConv、GSConv,实现二次创新 | UNet v2最新论文

💡💡💡本文独家改进:多层次特征融合(SDI)高效结合DualConv、PConv、GSConv等实现二次创新 1)替代原始的Concat; RT-DETR魔术师专栏介绍: https://blog.csdn.net/m0_63774211/category_12497375.html ✨✨✨魔改创新RT-DETR 🚀🚀🚀引入前沿顶会创新(CVPR…

Linux 脚本编程题库

1.在主目录下新建一个test.sh文件&#xff0c;脚本功能为查找某文件是否存在&#xff08;某文件名以参数形式传递&#xff09;&#xff0c;如果文件存在&#xff0c;则修改文件权限为用户主可读写&#xff0c;其他用户无任何权限&#xff0c;否则返回文件不存在&#xff01; #…

Java期末复习题库(封装,继承,抽象类,接口,GUI)

包与字符串 1.创建包的基本操作 在biology包中的animal包中有human类,它具有name,height,weight的属性,还具有eat(),sleep()和work()的行为,在biology包中的plant包中有flower类,它具有name,color,smell的属性,还具有drink()和blossom()的行为. 现在在一个school包中的garde…

20240113-确定两个字符串是否接近

题目要求 如果可以使用以下操作从另一个字符串获得一个字符串&#xff0c;则认为两个字符串是接近的&#xff1a; 操作1&#xff1a;交换任意两个现有字符。 例如&#xff0c;abcde -> aecdb操作2&#xff1a;将每个出现的一个现有字符转换为另一个现有字符&#xff0c;并…

Go语言开发小技巧易错点100例(十一)

往期回顾&#xff1a; Go语言开发小技巧&易错点100例&#xff08;一&#xff09;Go语言开发小技巧&易错点100例&#xff08;二&#xff09;Go语言开发小技巧&易错点100例&#xff08;三&#xff09;Go语言开发小技巧&易错点100例&#xff08;四&#xff09;Go…

优雅处理并发:Java CompletableFuture最佳实践

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;今天&#xff0c;小黑要和大家聊聊CompletableFuture&#xff0c;这个Java 8引入的强大工具。 在Java传统的Future模式里&#xff0c;咱们都知道&#xff0c;一旦开始了一个异步操作&#xff0c;就只能等它结束…

26.9K Star,漫画阅读 APP 开源了

今天推荐是一款适用于 Android 6.0 及更高版本的免费开源漫画阅读器&#xff0c;基于 Kotlin 开发的。这款 APP 完全免费、好用、无广告&#xff0c;自带上千个全球漫画源&#xff0c;在线阅读和下载都很方便&#xff0c;是漫画爱好者必备&#xff01; 它以插件的形式提供了来自…

wsl2下运行docker

安装docker服务 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun无法启动问题 这个错误提示通常是因为系统中使用的是经过修改的 nftables&#xff0c;而 Docker 安装程序使用 iptables 进行 NAT。为了解决这个问题&#xff0c;您可以使用以下命令将系统…

【我想开发一个小程序,大概需要多少钱?】

小程序开发为什么报价差距很大&#xff1f;主要是因为小程序的实现方法和功能模型不同。 小程序的实现方法&#xff1a; 实现方法主要分为SAAS小程序、定制小程序和第三方平台小程序。不同的实现方法价格都是不一样的&#xff0c;大概的区间如下&#xff1a; SAAS小程序和第三…

Zapier/Make.com/数环通/集简云的对比

Zapier/Make.com/数环通/集简云 这四家公司都是为了自动化&#xff0c;这也是流行大趋势。我不想错过未来的大趋势&#xff0c;花了2周时间分别用四家公司的模块实现了相同的任务。 为什么会用2周时间&#xff1f;我第一次接触无代码自动化。最重要的目的是为了白嫖&#xff0…

云卷云舒:数据库2023年度盘点

一、年度总结词 云、卷 二、年度大事记 1 月 10 日&#xff0c;KaiwuDB&#xff08;原&#xff1a;开务数据库&#xff09; 发布了 KaiwuDB 1.0 时序数据库&#xff0c;其运用到实时就地运算等核心专利技术&#xff0c;专为工业物联网、数字能源、交通车联网、智慧产业等场景…

office办公技能|word中的常见通配符使用

一、删除Word中含有指定内容的整行 操作方法&#xff1a; 1、快捷键 CtrlH&#xff0c;打开Word的查找替换窗口&#xff0c;单击【更多】按钮&#xff0c;勾选“使用通配符”。 2、在查找内容处&#xff0c;输入“替换内容*^13”&#xff0c;替换为处什么都不填。 3、单击【…

13. 抽象类(abstract关键字)

抽象类 抽象类1. 抽象类1.1 定义格式1.2 特点 2. 抽象方法2.1 定义格式2.2 特点 3. abstract关键字 抽象类 抽象类是在面向对象编程中&#xff0c;一种特殊的类&#xff0c;它不能被实例化&#xff0c;只能作为其他类的基类来使用。 抽象类和普通类的主要区别在于它包含一个或…

Harbor离线安装

下载安装包 $ wget https://github.com/goharbor/harbor/releases/download/v2.7.4/harbor-offline-installer-v2.7.4.tgz解压 $ tar xvf harbor-offline-installer-v2.7.4.tgz -C /usr/local修改配置 $ cd /usr/local/harbor $ cp harbor.yml.tmpl harbor.yml $ vim harbo…

sqlserver导出数据为excel再导入到另一个数据库

要将SQL Server中的数据导出为Excel文件&#xff0c;然后再将该Excel文件导入到另一个数据库中&#xff0c;你可以按照以下步骤进行操作&#xff1a; 导出数据为Excel文件 echo offset SourceServer源服务器名称 set SourceDB数据库名称 set ExcelFilePath导出到的Excel文件路…