EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测

目录

    • [EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测](#EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测)

预测效果



基本介绍

1.【EI级】Matlab实现VMD-TCN-GRU多变量时间序列预测(光伏功率数据);

Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测;

VMD对光伏功率分解,TCN-GRU模型对分量分别建模预测后相加

2.运行环境为Matlab2021a及以上;

3.数据集为excel(光伏功率数据),输入多个特征,输出单个变量,多变量光伏功率时间序列预测,main.m为主程序,运行即可,所有文件放在一个文件夹;

4.命令窗口输出R2、MSE、RMSE、MAE、ME等多指标评价;


参考文献(非复现)



程序设计

  • 完整程序和数据获取方式:私信博主回复Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测获取。
clike 复制代码
[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:n
    subplot(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轴命名
end
 xlabel('样本','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

相关推荐
机器学习之心1 个月前
多输入多输出 | Matlab实现TCN-GRU时间卷积神经网络结合门控循环单元多输入多输出预测
门控循环单元·多输入多输出预测·tcn-gru·时间卷积神经网络
机器学习之心3 个月前
2024年一区极光优化+分解+深度学习!VMD-PLO-Transformer-GRU多变量时间序列光伏功率预测
深度学习·gru·transformer·光伏功率预测·多变量时间序列·plo·2024年一区极光优化
机器学习之心6 个月前
分解+降维+预测!多重创新!直接写核心!EMD-KPCA-Transformer多变量时间序列光伏功率预测
transformer·光伏功率预测·emd-kpca·分解+降维+预测·多变量时间序列
机器学习之心8 个月前
EI级 | Matlab实现VMD-TCN-LSTM-MATT变分模态分解卷积长短期记忆神经网络多头注意力多变量时间序列预测
多变量时间序列预测·vmd-tcn-lstm·变分模态分解·tcn-lstm-matt·多头注意力
机器学习之心9 个月前
时序分解 | Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解
时间序列信号分解·变分模态分解·gswoa-vmd·改进鲸鱼优化算法优化
机器学习之心9 个月前
多维时序 | Matlab实现VMD-CNN-GRU变分模态分解结合卷积神经网络门控循环单元多变量时间序列预测
多变量时间序列预测·变分模态分解·vmd-cnn-gru·卷积神经网络门控循环单元
机器学习之心9 个月前
多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测
卷积长短期记忆神经网络·多变量时间序列预测·变分模态分解·vmd-cnn-lstm
机器学习之心1 年前
EI级 | Matlab实现VMD-TCN-LSTM变分模态分解结合时间卷积长短期记忆神经网络多变量光伏功率时间序列预测
时间序列预测·tcn-lstm·时间卷积长短期记忆神经网络·vmd·vmd-tcn-lstm·变分模态分解·多变量光伏功率
机器学习之心1 年前
EI级 | Matlab实现TCN-GRU-Multihead-Attention多头注意力机制多变量时间序列预测
attention·多变量时间序列预测·tcn-gru·multihead·多头注意力机制