光伏出力预测的神经网络matlab编程,神经网络预测光伏出力|MATLAB 神经网络|MATLAB技术论坛 - Powered by Discuz!...

%晴天预测

clc;

clear;

%clear;

close all;

ptrain =

Columns 1 through 8

93.6908  115.1887   22.5978   96.1906  101.7901  101.1901   62.3939    5.7994

138.1865  212.8792   49.3952  204.3800  190.7814  189.0815  179.5825   15.3985

268.6737  338.6669   70.9931  293.0714  267.7738  297.6709  265.4741   23.0977

366.7642  379.9629   37.2964  384.9624  365.7643  367.7641  326.1681   34.3966

377.3631  400.2609   70.7931  427.6582  383.4625  407.2602  358.1650   56.0945

434.5576  392.3617   61.1940  443.6566  411.5598  417.1592  354.0654   69.6932

420.7589  380.2628  138.2865  429.2581  408.2601  422.4587  383.7625   93.0909

358.8649  374.5634  152.8851  397.5612  372.8636  410.5599  359.7649   26.5974

258.8747  317.2690  123.2880  302.3705  297.8709  386.5622  289.0717   20.4980

97.4905  224.7780  208.7796  211.7793   54.6947  176.2828  222.2783   18.3982

57.1944   86.6915   86.4915   67.6934   67.2934   97.2905   93.2909   15.3000

9.6000   11.5000    3.4000   11.5000    9.6000   11.5000    9.6000    1.0000

11.5000    3.4000   11.5000    9.6000   11.5000    9.6000    1.0000    9.6000

Columns 9 through 14

82.5600   12.1500  119.6883  118.5884  114.6888  123.8879

211.8793   14.3000  244.8761  177.1827  234.4771  188.5816

341.6666   76.4925  348.0660  311.9695  327.5680  312.0695

414.3595  113.5889  420.6589  281.6725  399.5610  405.0604

442.5568  115.7887  445.6565  410.3599  429.4580  458.1552

430.1580  144.0859  468.2542  445.4565  426.3583  454.2556

427.9582  158.1845  458.0552  336.7671  431.3578  466.0545

382.1627  131.0872  409.5600  203.2801  187.4817  398.1611

305.4702  102.7900  344.6663  166.8837  204.0801  338.8669

206.8798   51.2950  240.0765   92.1910  248.0758  212.1793

75.4926   40.9960  106.5896   56.4945  100.3902   35.0966

11.5000    3.4000   11.5000    9.6000   11.5000   11.5000

3.4000   11.5000    9.6000   11.5000   11.5000   11.5000

ttrain =

Columns 1 through 8

115.1887   22.5978   96.1906  101.7901  101.1901   62.3939    5.7994   82.5600

212.8792   49.3952  204.3800  190.7814  189.0815  179.5825   15.3985  211.8793

338.6669   70.9931  293.0714  267.7738  297.6709  265.4741   23.0977  341.6666

379.9629   37.2964  384.9624  365.7643  367.7641  326.1681   34.3966  414.3595

400.2609   70.7931  427.6582  383.4625  407.2602  358.1650   56.0945  442.5568

392.3617   61.1940  443.6566  411.5598  417.1592  354.0654   69.6932  430.1580

380.2628  138.2865  429.2581  408.2601  422.4587  383.7625   93.0909  427.9582

374.5634  152.8851  397.5612  372.8636  410.5599  359.7649   26.5974  382.1627

317.2690  123.2880  302.3705  297.8709  386.5622  289.0717   20.4980  305.4702

224.7780  208.7796  211.7793   54.6947  176.2828  222.2783   18.3982  206.8798

86.6915   86.4915   67.6934   67.2934   97.2905   93.2909   15.3000   75.4926

Columns 9 through 14

12.1500  119.6883  118.5884  114.6888  123.8879  115.2887

14.3000  244.8761  177.1827  234.4771  188.5816  239.3766

76.4925  348.0660  311.9695  327.5680  312.0695  321.2686

113.5889  420.6589  281.6725  399.5610  405.0604  391.0618

115.7887  445.6565  410.3599  429.4580  458.1552  430.3579

144.0859  468.2542  445.4565  426.3583  454.2556  409.6600

158.1845  458.0552  336.7671  431.3578  466.0545  435.5574

131.0872  409.5600  203.2801  187.4817  398.1611  408.5601

102.7900  344.6663  166.8837  204.0801  338.8669  400.7867

51.2950  240.0765   92.1910  248.0758  212.1793  282.7724

40.9960  106.5896   56.4945  100.3902   35.0966  160.5843

tsx = ptrain';

ts = ttrain';

[r,q]=size(tsx);%r=13,q=8

[TSX,TSXps] = mapminmax(tsx,0,1);%对样本输入数据归一化

PTR = TSX';%归一化后的输入

[TS,TSps] = mapminmax(ts,0,1);%对样本输出数据归一化,对每一行进行归一化

TTR = TS';%归一化后的输出

%建立BP模型

net_duoyun=newff(minmax(PTR),[13,11],{'tansig','logsig'},'trainlm');

% 设置训练参数

%隐层数的确定有几个经验公式,也可以用试算法

net_duoyun.trainParam.show = 50;

net_duoyun.trainParam.lr = 0.05;

net_duoyun.trainParam.mc = 0.95;

net_duoyun.trainParam.epochs =50000;

net_duoyun.trainParam.min_grad=1e-16;

net_duoyun.trainParam.goal = 1e-5;

%训练模型

[net_duoyun,tr]=train(net_duoyun,PTR,TTR);

%计算均方误差

Yn=sim(net_duoyun,PTR);

Yn=Yn';

E=Yn-TS;

M = sse(E)

N = mse(E)

Y=mapminmax('reverse',Yn,TSps);

%测试数据

%测试输入

ptest =

115.2887

239.3766

321.2686

391.0618

430.3579

409.6600

435.5574

408.5601

400.7867

282.7724

160.5843

11.5000

9.6000

%测试输出

ttest =

90.9911

177.9826

196.3808

192.5812

173.2831

290.0717

190.4814

402.0607

154.5849

166.6837

76.5925

Ts = ttest';%测试输出

Tsx = ptest';%测试输入

[TT,TTps] = mapminmax(Ts,0,1);

%{

[TT,TTps] = mapminmax(Ts,0,1);

TTE = TT;

%}

[TTX,TTXps] = mapminmax(Tsx,0,1);%对仿真输入数据归一化

PTE = TTX';

%进行预测

out=sim(net_duoyun,PTE);

%反归一化

out=out';

predict=mapminmax('reverse',out,TTps);

predict=predict'

ttest

error=ttest-predict

mape=mean(abs(error./ttest*100))

%绘图

figure(1)

hold on;

x=1:11;

grid on;

plot(ttest,'-o');

hold on;

plot(predict,'r-^');

legend('实际功率','预测功率');

xlabel('时间','fontsize',12)

ylabel('输出功率/KW','fontsize',12)

set(gca,'xtick',[]);

set(gca,'xtick',x);

set(gca,'xticklabel',{'8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'});

你可能感兴趣的:(光伏出力预测的神经网络matlab编程,神经网络预测光伏出力|MATLAB 神经网络|MATLAB技术论坛 - Powered by Discuz!...)