基于VMD-SSA-LSTM的多维时序光伏功率预测MATLAB程序资源-CSDN文库
https://download.csdn.net/download/weixin_56691527/87950148参考文献:
《基于VMD-SSA-LSSVM的短期风电预测》
《基于改进鲸鱼优化算法的微网系统能量优化管理》
主要内容:
融合了两篇文献中的方法实现了光伏功率预测,该方法仍然可以用于风电、负荷等方面的预测。只需要自己更改相关数据即可!!!!
对比了LSTM、VMD-LSTM、VMD-SSA-LSTM三种方法的光伏功率预测曲线!!
程序完美运行,注释清晰,方便理解!!!!
运行时间较长,请耐心等待!!
主要程序:
%% LSTM预测
 tic
 load origin_data.mat
 load vmd_data.mat
disp('…………………………………………………………………………………………………………………………')
 disp('单一的LSTM预测')
 disp('…………………………………………………………………………………………………………………………')
num_samples = length(X);       % 样本个数 
 kim = 5;                      % 延时步长(kim个历史数据作为自变量)
 zim =  1;                      % 跨zim个时间点进行预测
 or_dim = size(X,2);
%  重构数据集
 for i = 1: num_samples - kim - zim + 1
     res(i, :) = [reshape(X(i: i + kim - 1,:), 1, kim*or_dim), X(i + kim + zim - 1,:)];
 end
 % 训练集和测试集划分
 outdim = 1;                                  % 最后一列为输出
 num_size = 0.7;                              % 训练集占数据集比例
 num_train_s = round(num_size * num_samples); % 训练集样本个数
 f_ = size(res, 2) - outdim;                  % 输入特征维度
 P_train = res(1: num_train_s, 1: f_)';
 T_train = res(1: num_train_s, f_ + 1: end)';
 M = size(P_train, 2);
P_test = res(num_train_s + 1: end, 1: f_)';
 T_test = res(num_train_s + 1: end, f_ + 1: end)';
 N = size(P_test, 2);
%  数据归一化
 [p_train, ps_input] = mapminmax(P_train, 0, 1);
 p_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
 t_test = mapminmax('apply', T_test, ps_output);
输出结果图:

























