setdemorandstream(3);
clc;
clear;
%year
year=xlsread('数据汇总表.xlsx','sheet1','A2:A96');
%训练集
x1=xlsread('数据汇总表1.xlsx','sheet1','B2:B84');%前3年的总用电量
x12=xlsread('数据汇总表1.xlsx','sheet1','C2:C84');%2
x13=xlsread('数据汇总表1.xlsx','sheet1','D2:D84');
x14=xlsread('数据汇总表1.xlsx','sheet1','AJ2:AJ84');
x2=xlsread('数据汇总表1.xlsx','sheet1','E2:E84');%前3年的工业用电
x22=xlsread('数据汇总表1.xlsx','sheet1','F2:F84');
x23=xlsread('数据汇总表1.xlsx','sheet1','G2:G84');
x3=xlsread('数据汇总表1.xlsx','sheet1','H2:H84');%前3年的居民用电
x32=xlsread('数据汇总表1.xlsx','sheet1','I2:I84');
x33=xlsread('数据汇总表1.xlsx','sheet1','G2:G84');
x4=xlsread('数据汇总表1.xlsx','sheet1','K2:K84');%前3年其他用电
x42=xlsread('数据汇总表1.xlsx','sheet1','L2:L84');
x43=xlsread('数据汇总表1.xlsx','sheet1','M2:M84');
%%%%%%%%%%%%%%%%%%%%%%%输入影响因素%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x5=xlsread('数据汇总表1.xlsx','sheet1','N2:N85');%3年均气温
x52=xlsread('数据汇总表1.xlsx','sheet1','O2:O85');
x53=xlsread('数据汇总表1.xlsx','sheet1','P2:P85');
x6=xlsread('数据汇总表1.xlsx','sheet1','Q2:Q85');%3年的最高气温
x62=xlsread('数据汇总表1.xlsx','sheet1','R2:R85');
x63=xlsread('数据汇总表1.xlsx','sheet1','S2:S85');
x7=xlsread('数据汇总表1.xlsx','sheet1','T2:T85');%3年的最低气温
x72=xlsread('数据汇总表1.xlsx','sheet1','U2:U85');
x73=xlsread('数据汇总表1.xlsx','sheet1','V2:V85');
x8=xlsread('数据汇总表1.xlsx','sheet1','W2:W85');%3年的降雨量
x82=xlsread('数据汇总表1.xlsx','sheet1','X2:X85');
x83=xlsread('数据汇总表1.xlsx','sheet1','Y2:Y85');
x9=xlsread('数据汇总表1.xlsx','sheet1','Z2:Z85');%3年GDP指数
x92=xlsread('数据汇总表1.xlsx','sheet1','AA2:AA85');
x93=xlsread('数据汇总表1.xlsx','sheet1','AB2:AB85');
x10=xlsread('数据汇总表1.xlsx','sheet1','AC2:AC85'); %用户数
x102=xlsread('数据汇总表1.xlsx','sheet1','AD2:AD85');
x103=xlsread('数据汇总表1.xlsx','sheet1','AE2:AE85');
x11=xlsread('数据汇总表1.xlsx','sheet1','AF2:AF85'); %装机容量
x112=xlsread('数据汇总表1.xlsx','sheet1','AG2:AG85');
x113=xlsread('数据汇总表1.xlsx','sheet1','AH2:AH85');
x1_1=[3,x1'];
x12_1=[3,x12'];
x13_1=[3,x13'];
x14_1=[3,x14'];
x2_1=[2.25,x2'];
x22_1=[2.25,x22'];
x23_1=[2.25,x23'];
x3_1=[0.87,x3'];
x32_1=[0.87,x32'];
x33_1=[0.87,x33'];
x4_1=[3,x4'];
x42_1=[3,x42'];
x43_1=[3,x43'];
% x=[x1_1;x5';x6';x7';x8';x9';x10';x11'];%输入向量
% x=[x1_1;x5';x6';x7';x8';x9';x10';];%输入
x=[x12_1;x13_1;x14_1;x2_1;x22_1;x23_1;x3_1;x32_1;x33_1;x5';x52';x53';x6';x62';x63';x7';x72';x73';x8';x82';x83';x9';x92';x93';x10';x102';x103';x11';x112';x113'];%输入向量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y=xlsread('数据汇总表1.xlsx','sheet1','B2:B85'); %历史总负荷数据做输出
y=y';%输出向量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
net=newff(x,y,[8,13,1],{'tansig','tansig','purelin'},'trainlm'); %创建网络 隐含层设置在3~13之间。N=sqr(n+m)+a,a在[1,10]之间;
% net=newff(x,y,[7,12,1],{'tansig','tansig','purelin'},'trainlm');
net.trainParam.epochs=1000; %迭代次数 训练次数
net.trainParam.goal=1;%期望误差
net.trainParam.max_fail=200; %失败次数
net.trainParam.lr=0.2;%学习速率
net=train(net,x,y);%训练网络
% figure(3)
% plotperform(tr);
% hold on;
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%测试集
xx1=xlsread('数据汇总表1.xlsx','sheet1','B2:B95');%前3年的总用电量
xx12=xlsread('数据汇总表1.xlsx','sheet1','C2:C95');%2
xx13=xlsread('数据汇总表1.xlsx','sheet1','D2:D95');
xx14=xlsread('数据汇总表1.xlsx','sheet1','AJ2:AJ95');
xx2=xlsread('数据汇总表1.xlsx','sheet1','E2:E95');%前3年的工业用电
xx22=xlsread('数据汇总表1.xlsx','sheet1','F2:F95');
xx23=xlsread('数据汇总表1.xlsx','sheet1','G2:G95');
xx3=xlsread('数据汇总表1.xlsx','sheet1','H2:H95');%前3年的居民用电
xx32=xlsread('数据汇总表1.xlsx','sheet1','I2:I95');
xx33=xlsread('数据汇总表1.xlsx','sheet1','G2:G95');
xx4=xlsread('数据汇总表1.xlsx','sheet1','K2:K95');%前3年其他用电
xx42=xlsread('数据汇总表1.xlsx','sheet1','L2:L95');
xx43=xlsread('数据汇总表1.xlsx','sheet1','M2:M95');
xx5=xlsread('数据汇总表1.xlsx','sheet1','N2:N96');%3年均气温
xx52=xlsread('数据汇总表1.xlsx','sheet1','O2:O96');
xx53=xlsread('数据汇总表1.xlsx','sheet1','P2:P96');
xx6=xlsread('数据汇总表1.xlsx','sheet1','Q2:Q96');%3年的最高气温
xx62=xlsread('数据汇总表1.xlsx','sheet1','R2:R96');
xx63=xlsread('数据汇总表1.xlsx','sheet1','S2:S96');
xx7=xlsread('数据汇总表1.xlsx','sheet1','T2:T96');%3年的最低气温
xx72=xlsread('数据汇总表1.xlsx','sheet1','U2:U96');
xx73=xlsread('数据汇总表1.xlsx','sheet1','V2:V96');
xx8=xlsread('数据汇总表1.xlsx','sheet1','W2:W96');%3年的降雨量
xx82=xlsread('数据汇总表1.xlsx','sheet1','X2:X96');
xx83=xlsread('数据汇总表1.xlsx','sheet1','Y2:Y96');
xx9=xlsread('数据汇总表1.xlsx','sheet1','Z2:Z96');%3年GDP指数
xx92=xlsread('数据汇总表1.xlsx','sheet1','AA2:AA96');
xx93=xlsread('数据汇总表1.xlsx','sheet1','AB2:AB96');
xx10=xlsread('数据汇总表1.xlsx','sheet1','AC2:AC96'); %用户数
xx102=xlsread('数据汇总表1.xlsx','sheet1','AD2:AD96');
xx103=xlsread('数据汇总表1.xlsx','sheet1','AE2:AE96');
xx11=xlsread('数据汇总表1.xlsx','sheet1','AF2:AF96'); %装机容量
xx112=xlsread('数据汇总表1.xlsx','sheet1','AG2:AG96');
xx113=xlsread('数据汇总表1.xlsx','sheet1','AH2:AH96');
% xx1_1=xx1';
% xx2_1=xx2';
% xx3_1=xx3';
% xx4_1=xx4';
xx1_1=[3,xx1'];
xx12_1=[3,xx12'];
xx13_1=[3,xx13'];
xx14_1=[3,xx14'];
xx2_1=[2.25,xx2'];
xx22_1=[2.25,xx22'];
xx23_1=[2.25,xx23'];
xx3_1=[0.87,xx3'];
xx32_1=[0.87,xx32'];
xx33_1=[0.87,xx33'];
xx4_1=[3,xx4'];
xx42_1=[3,xx42'];
xx43_1=[3,xx43'];
% xx=[xx1_1;xx5';xx6';xx7';xx8';xx9';xx10'];%输入向量
xx=[xx12_1;xx13_1;xx14_1;xx2_1;xx22_1;xx23_1;xx3_1;xx32_1;xx33_1;xx5';xx52';xx53';xx6';xx62';xx63';xx7';xx72';xx73';xx8';xx82';xx83';xx9';xx92';xx93';xx10';xx102';xx103';xx11';xx112';xx113'];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
yy=xlsread('数据汇总表1.xlsx','sheet1','B2:B96'); %历史总负荷数据做对比输出
yy=yy';%输出向量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ty=sim(net,xx);%使用网络进行仿真,ty是神经网络计算的结果
ty1=ty';
disp('预测出2013年到2017年的用电负荷是:')
ty1
plot(year,ty1,'--')
hold on
plot(year,yy,'');
xlabel('年份');ylabel('电力负荷/Gwh');%坐标轴表示对象标签
legend('负荷预测曲线','历史负荷曲线');
hold on;
disp('arma预测出2013年到2017年的用电负荷是:')
%
% net=newff(x,y,[8,13,1],{'tansig','tansig','purelin'},'trainlm'); %创建网络 隐含层设置在3~13之间。N=sqr(n+m)+a,a在[1,10]之间;
% % net=newff(x,y,[7,12,1],{'tansig','tansig','purelin'},'trainlm');
% net.trainParam.epochs=1000; %迭代次数 训练次数
% net.trainParam.goal=1;%期望误差
% net.trainParam.max_fail=200; %失败次数
% net.trainParam.lr=0.2;%学习速率
% net=train(net,x,y);%训练网络
% figure(2)
% % plotperform(tr);
% % hold on;
%
% ty=sim(net,xx);%使用网络进行仿真,ty是神经网络计算的结果
% ty2=ty'
% plot(year,ty2,'--')
% hold on;