1 简介
风电功率预测结果的准确性,不仅关系到风力发电厂的综合运行效率,也与区域运行成本具备直接联系,基于BP神经网络、LSTM、GRNN实现风电功率预测。经过实例分析,证明设计的方法对风电功率的预测结果误差均在最优误差范围内,预测的数值具有更高的价值。
2 部分代码
%% ARMA 预测
clc,clear,close all
load data%导入数据
T=30;
buchang=size(unnamed,1)-T;%预测步长
y = unnamed(1:T);
[m,n]=size(y);
%% %% 3.确定ARMA模型阶数
% ACF和PACF法,确定阶数
figure
subplot(211),autocorr( y );
subplot(212),parcorr( y );
figure
dy = diff( y );
subplot(211),autocorr( dy );
subplot(212),parcorr( dy );
%% ARIMA 模型
Mdl = arima(5,1,0);
EstMdl = estimate(Mdl,y);
res = infer(EstMdl,y); %res即残差
% 模型验证
figure
subplot(2,2,1)
plot(res./sqrt(EstMdl.Variance))
title('Standardized Residuals')
subplot(2,2,2),qqplot(res)
subplot(2,2,3),autocorr(res)
subplot(2,2,4),parcorr(res)
% 预测
[yF,yMSE] = forecast(EstMdl,buchang,'Y0',y);
UB = yF + 1.96*sqrt(yMSE); %95置信区间下限
LB = yF - 1.96*sqrt(yMSE); %95置信区间下限
yF=[unnamed(1:T);yF];
figure(4)
h4 = plot(unnamed,'b');
hold on
h5 = plot(yF,'r','LineWidth',2);
h6 = plot(m+1:m+buchang,UB,'k--','LineWidth',1.5);
plot(m+1:m+buchang,LB,'k--','LineWidth',1.5);
legend('实际幅值','预测幅值');
xlabel('时间序列')
ylabel('幅值')
title('arma预测图')
bp_mse = mean((yF-unnamed).^2);%mse
disp(['ARMA预测的mse=',num2str(bp_mse)])
bp_mae = mean(abs(yF-unnamed));%mae
disp(['ARMA预测的mae=',num2str(bp_mae)])
bp_rmse = sqrt(mean((yF-unnamed).^2));%均方差
disp(['ARMA预测的rmse=',num2str(bp_rmse)])
3 仿真结果
4 参考文献
[1]丁宇宇, 陈颖, 周海. 基于MATLAB语言的BP神经网络风电功率超短期预测模型[C]// 中国电机工程学会电力系统自动化专业委员会三届一次会议暨2011年学术交流会. 中国电机工程学会, 2011.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。