附录-风电场1的功率预测MATLAB源程序.docxVIP

  • 104
  • 0
  • 约2.44千字
  • 约 3页
  • 2019-12-05 发布于山西
  • 举报

附录-风电场1的功率预测MATLAB源程序.docx

附录1风电场1的功率预测MATLAB源程序 %% 基于支持极限学习机的风电功率预测程序 %% 清空环境 clc clear load windpower1 x=x(1:144*10); %%%----------下面这段程序用来构造网络的输入和输出------------- n=144; for i=1:length(x)-n-1 for j=i:i+n input(i,j-i+1)=x(j,1); end end output=x(n+2:length(x),1); input=input; output=output; % 训练集 p_train = input(:,1:144*10-n-1); t_train = output(:,1:144*10-n-1); % 测试集 p_test = input(:,144*9-n+1:end); t_test = output(:,144*9-n+1:end); % %% 数据归一化 % 训练集 [pn_train,inputps] = mapminmax(p_train); pn_train = pn_train; pn_test = mapminmax(apply,p_test,inputps); pn_test = pn_test; % 测试集 [tn_train,outputps] = mapminmax(t_train); tn_train = tn_train; tn_test = mapminmax(apply,t_test,outputps); tn_test = tn_test; %% ELM模型创建/训练 cmd = [ -t 2, -c ,num2str(320), -g ,num2str(0.05), -s 3 -p 0.01]; model = ELMtrain(tn_train,pn_train,cmd); %% ELM仿真预测 unknow=zeros(length(tn_test),1); for i=1:(length(tn_test)) for j=1:i+n if i==1 pn_test(i,j)=pn_test(i,j); end if i1 if j8 pn_test(i,j)=pn_test(i-1,j+1); end if j==8 [tn_sim_ELM,inputps] = mapminmax(t_sim_ELM); tn_sim_ELM =tn_sim_ELM; pn_test(i,j)=tn_sim_ELM; end end end P_test=pn_test(i,:); t_sim_ELM=ELMpredict(unknow(i),P_test,model); Predict_2(1,i)=t_sim_ELM; end [Predict_1,error_1] = ELMpredict(tn_train,pn_train,model); % 反归一化 predict_1 = mapminmax(reverse,Predict_1,outputps); predict_2 = mapminmax(reverse,Predict_2,outputps); % 结果对比 result_1 = [t_train predict_1]; result_2 = [t_test predict_2]; error_ELM=t_test-predict_2; maxwindpower=max(x); rmse=sqrt(sum((t_test-predict_2).^2)/length(t_test))/maxwindpower; mae=sum(abs(error_ELM))/(length(tn_test)*maxwindpower); %% 绘图 figure(1) plot(1:length(t_train),t_train,r-*,1:length(t_train),predict_1,b:o) grid on legend(真实值,预测值) xlabel(样本编号) ylabel(功率/kW) string_1 = {训练集预测结果对比; [mse = num2str(error_1(2)) R^2 = num2str(error_1(3))]

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档