1 简介
针对电力负荷序列的非平稳性和非线性等特点,提出了一种基于变分模态分解技术VMD-样本熵SE和Elman神经网络短期负荷预测模型.为了降低原始序列的复杂度和不稳定性,首先利用VMD-SE将原始电力序列分解成多个子序列;然后根据Elman神经网络预测模型;最后将各个子序列的预测结果叠加得到最终结果,实现短期负荷预测.应用于实例,结果表明,该模型能有效提高预测精度.
2 部分代码
clear;%CSO优化BP权值和阈值
clc;
load('VMD_S','VMD_S');
G1=VMD_S';
G1=abs(G1)/10;
S=G1(1,1:2304);
tic;
);%基于输入统一归一化
%BP神经网络预测
bb=sim(net,Pt1);
Z1=mapminmax('reverse',bb,ts);%CSO优化后BP结果
for j=1:36
Z2=[Z2,Z1(:,j)'];
end
Z(s,:)=Z2(1,1:144);
end
R(r,:)=sum(Z,1);%预测值
for ii=1:144
if R(1,ii)<0
R(1,ii)=0;
end
end
%%%%%%%%MAE
m=0;
for i=1:144
m=m+abs(R(r,i)-Tt(1,i));
end
Nmae(1,r)=(m/(144*10.02))*100;
%%%%%%%%MAPE
%%%%%%%%RMSE
m=0;
for i=1:100
m=m+(R(r,i)-Tt(1,i))^2;
end
Nrmse(1,r)=((sqrt(m/144))/10.02)*100;
plot(1:144,R,'r',1:144,Tt,'b');
end
toc;
3 仿真结果
4 参考文献
[1]徐轶丹, 刘敏. 基于VMD-SE和GAElman神经网络的短期负荷预测模型[J]. 电力科学与工程, 2019, 35(7):6.
5 MATLAB代码与数据下载地址
见博客主页