【每发表过创新点】【负荷预测】【多变量输入超前多步预测】基于DBO、PSO、SSA、GOOSE算法优化ELM的电力负荷预测研究(Matlab代码实现)

                          💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

 ⛳️赠与读者

💥1 概述

基于DBO、PSO、SSA、GOOSE算法优化ELM的电力负荷预测研究

引言

创新点

方法论

实验结果与分析

结论与展望

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

基于DBO、PSO、SSA、GOOSE算法优化ELM的电力负荷预测研究

引言

电力负荷预测是电力系统运行和规划中的重要环节,它通过对历史负荷数据、气象数据、经济数据等多变量输入的分析,预测未来一段时间内电力负荷的变化趋势和具体数值。为了提升预测精度和稳定性,本文研究了基于差分进化蜣螂优化(DBO)、粒子群优化(PSO)、麻雀搜索算法(SSA)和鹅优化搜索(GOOSE)算法优化极限学习机(ELM)的电力负荷预测方法,实现了多变量输入超前多步预测。

创新点
  1. 多变量输入与超前多步预测结合
    传统电力负荷预测方法往往局限于单一变量输入或单步预测,本文提出的方法通过整合温度、湿度、风速、压强、降水量、能见度、水汽压、体感温度等多变量输入,实现超前多步预测,提高了预测的全面性和准确性。

  2. 多种智能优化算法结合ELM
    本文采用DBO、PSO、SSA、GOOSE四种不同的智能优化算法对ELM的权值和阈值进行优化,通过对比不同算法的优化效果,选取最优算法组合,进一步提升预测模型的性能。

  3. 模型优化策略创新
    在优化过程中,通过引入精英反向学习、指数形式改进的旅行距离率等策略,增强了算法的全局搜索能力和局部开发能力,提高了模型的稳定性和鲁棒性。

方法论
  1. 数据预处理
    对收集到的历史负荷数据、气象数据和经济数据进行清洗、归一化和平稳化处理,确保输入数据的质量和一致性。

  2. 模型构建与优化

    • ELM模型:构建基本的ELM模型,用于电力负荷预测。
    • 优化算法:分别采用DBO、PSO、SSA、GOOSE算法对ELM的权值和阈值进行优化,寻找最优参数组合。
    • 模型评估:通过基准函数测试、实例分析和实验对比,评估不同优化算法对ELM模型性能的提升效果。
  3. 多变量输入与超前多步预测

    • 输入变量选择:选取温度、湿度、风速、压强、降水量、能见度、水汽压、体感温度等多变量作为输入特征。
    • 预测步骤:利用优化后的ELM模型,对超前多步的电力负荷进行预测。
  4. 模型验证
    将数据集划分为训练集、验证集和测试集,通过训练集训练模型,验证集调整超参数,测试集评估模型性能。采用均方误差(MSE)、平均绝对误差(MAE)、决定系数(R²)等指标评估预测结果。

实验结果与分析

实验结果表明,通过DBO、PSO、SSA、GOOSE算法优化后的ELM模型,在多变量输入超前多步预测中表现优异。其中,GOOSE算法在优化ELM权值和阈值时表现出最佳性能,预测精度和稳定性均有所提升。具体实验结果如下:

  • 预测精度:优化后的ELM模型在多步预测中的MSE、MAE显著降低,R²显著提高。
  • 稳定性:不同优化算法均能在一定程度上提升模型的稳定性,但GOOSE算法表现最为突出。
  • 计算效率:尽管优化过程增加了计算复杂度,但整体预测效率仍满足实际应用需求。
结论与展望

本文提出的基于DBO、PSO、SSA、GOOSE算法优化ELM的电力负荷预测方法,在多变量输入超前多步预测中表现出色,有效提升了预测精度和稳定性。未来研究将进一步探索更多智能优化算法与ELM模型的结合,以及多源异构数据的融合策略,以应对更加复杂多变的电力负荷预测场景。同时,也将关注模型的可解释性和鲁棒性提升,为电力系统的安全稳定运行提供更加坚实的支撑。

📚2 运行结果

 

部分代码:

%% 调用DBO优化ELM
[score,bestchrom,DBO_trace]=DBO(pop_size, max_iter,lb,ub,dim,fobj );
[~,DBO_optimze_pre]=fun(bestchrom,inputnum,hiddennum,TYPE,activation,vp_train,vt_train,vp_test,T_test,ps_output);
disp('…………DBO优化的ELM测试集误差指标…………')
[mae1,mape1,test_MSE1,rmse1,Rsq1,test_RPD1]=calc_error(T_test,DBO_optimze_pre);
fprintf('\n')

%% 调用PSO优化ELM
[score,bestchrom,PSO_trace]=PSO(pop_size, max_iter,lb,ub,dim,fobj );
[~,PSO_optimze_pre]=fun(bestchrom,inputnum,hiddennum,TYPE,activation,vp_train,vt_train,vp_test,T_test,ps_output);
disp('…………PSO优化的ELM测试集误差指标…………')
[mae1,mape1,test_MSE1,rmse1,Rsq1,test_RPD1]=calc_error(T_test,PSO_optimze_pre);
fprintf('\n')

%% 调用SSA优化ELM
[score,bestchrom,SSA_trace]=SSA(pop_size, max_iter,lb,ub,dim,fobj );
[~,SSA_optimze_pre]=fun(bestchrom,inputnum,hiddennum,TYPE,activation,vp_train,vt_train,vp_test,T_test,ps_output);
disp('…………SSA优化的ELM测试集误差指标…………')
[mae1,mape1,test_MSE1,rmse1,Rsq1,test_RPD1]=calc_error(T_test,SSA_optimze_pre);
fprintf('\n')

%% 调用GOOSE优化ELM
[score,bestchrom,GOOSE_trace]=GOOSE(pop_size, max_iter,lb,ub,dim,fobj );
[~,GOOSE_optimze_pre]=fun(bestchrom,inputnum,hiddennum,TYPE,activation,vp_train,vt_train,vp_test,T_test,ps_output);
disp('…………GOOSE优化的ELM测试集误差指标…………')
[mae1,mape1,test_MSE1,rmse1,Rsq1,test_RPD1]=calc_error(T_test,GOOSE_optimze_pre);
fprintf('\n')

% 画各个算法的收敛曲线图
figure
plot(DBO_trace)
hold on
plot(PSO_trace)
hold on
plot(SSA_trace)
hold on
plot(GOOSE_trace)
hold off
legend('DBO','PSO','SSA','GOOSE')
xlabel('迭代次数')
ylabel('MAPE(%)')


%% 比较算法预测值 来自公众号《荔枝科研社》
str={'真实值','标准ELM','DBO-ELM','PSO-ELM','SSA-ELM','GOOSE-ELM'};
figure('Units', 'pixels', ...
    'Position', [300 300 860 370]);
plot(T_test,'--*','LineWidth',2.5) 
hold on
plot(T_sim0,'-.p')
hold on
plot(DBO_optimze_pre,'^-','Color',[0.1339    0.7882    0.8588],'LineWidth',1) 
hold on
plot(PSO_optimze_pre,'s-','Color',[0.666   0.2882    0.8588],'LineWidth',1) 
hold on
plot(SSA_optimze_pre,'v-','Color',[0.30  0.888    0.18],'LineWidth',1) 
hold on
plot(GOOSE_optimze_pre,'x-','Color',[0.66  0.59    0.125],'LineWidth',1) 
legend(str)
set (gca,"FontSize",12,'LineWidth',1.2)
box off
legend Box off
xlabel('样本点')
ylabel('负荷值')


%% 比较算法误差
test_y = T_test;
Test_all = [];

y_test_predict = T_sim0;
[test_MAE,test_MAPE,test_MSE,test_RMSE,test_R2]=calc_error(y_test_predict,test_y);
Test_all=[Test_all;test_MAE test_MAPE test_MSE test_RMSE test_R2];


y_test_predict = DBO_optimze_pre;
[test_MAE,test_MAPE,test_MSE,test_RMSE,test_R2]=calc_error(y_test_predict,test_y);
Test_all=[Test_all;test_MAE test_MAPE test_MSE test_RMSE test_R2];
     
y_test_predict = PSO_optimze_pre;
[test_MAE,test_MAPE,test_MSE,test_RMSE,test_R2]=calc_error(y_test_predict,test_y);
Test_all=[Test_all;test_MAE test_MAPE test_MSE test_RMSE test_R2];

y_test_predict = SSA_optimze_pre;
[test_MAE,test_MAPE,test_MSE,test_RMSE,test_R2]=calc_error(y_test_predict,test_y);
Test_all=[Test_all;test_MAE test_MAPE test_MSE test_RMSE test_R2];

y_test_predict = GOOSE_optimze_pre;
[test_MAE,test_MAPE,test_MSE,test_RMSE,test_R2]=calc_error(y_test_predict,test_y);
Test_all=[Test_all;test_MAE test_MAPE test_MSE test_RMSE test_R2];

str={'真实值','标准ELM','DBO-ELM','PSO-ELM','SSA-ELM','GOOSE-ELM'};
str1=str(2:end);
str2={'MAE','MAPE','MSE','RMSE','R2'};
data_out=array2table(Test_all);
data_out.Properties.VariableNames=str2;
data_out.Properties.RowNames=str1;
disp(data_out)

%% 柱状图 MAE MAPE RMSE 柱状图适合量纲差别不大的
color=    [0.66669    0.1206    0.108
    0.1339    0.7882    0.8588
    0.1525    0.6645    0.1290
    0.8549    0.9373    0.8275   
    0.1551    0.2176    0.8627
    0.7843    0.1412    0.1373
    0.2000    0.9213    0.8176
      0.5569    0.8118    0.7882
       1.0000    0.5333    0.5176];
figure('Units', 'pixels', ...
    'Position', [300 300 660 375]);
plot_data_t=Test_all(:,[1,2,4])';
b=bar(plot_data_t,0.8);
hold on

for i = 1 : size(plot_data_t,2)
    x_data(:, i) = b(i).XEndPoints'; 
end

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]徐晟,蒋铁铮,向磊.ELM算法在微电网超短期负荷预测的应用[J].电气开关, 2013, 51(3):5.DOI:10.3969/j.issn.1004-289X.2013.03.022.

[1]马立新,尹晶晶,郑晓栋.SOM特征提取与ELM在电力负荷预测中的应用[J].电力科学与工程, 2015, 31(5):5.DOI:10.3969/j.issn.16720792.2015.05.001.

[3]龙干,黄媚,方力谦,等.基于改进多元宇宙算法优化ELM的短期电力负荷预测[J].电力系统保护与控制, 2022, 50(19):99-106.

🌈4 Matlab代码、数据

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值