700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【预测模型】基于BP神经网络 LSTM GRNN实现风电功率预测附matlab代码

【预测模型】基于BP神经网络 LSTM GRNN实现风电功率预测附matlab代码

时间:2021-03-11 22:11:52

相关推荐

【预测模型】基于BP神经网络 LSTM GRNN实现风电功率预测附matlab代码

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]// 中国电机工程学会电力系统自动化专业委员会三届一次会议暨学术交流会. 中国电机工程学会, .

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。