【ELAMN预测】基于粒子群算法优化ELMAN神经网络实现数据回归预测 matlab代码

📅 2026/7/24 2:56:12
【ELAMN预测】基于粒子群算法优化ELMAN神经网络实现数据回归预测 matlab代码
1 简介风能,作为一种重要,有潜力,无污染,可再生、可持续的能源,已经成为全球发电最为迅速的能源之一,越来越受到世界各国的青睐。近年来,为缓解能源短缺问题,改善环境,实现经济乃至人类的可持续发展,世界各国纷纷大力发展风能资源。然而,在实际操作中,风能固有的波动性和间歇性通常会增加风能入网的难度,致使风电场输出功率不稳定,严重影响输出的电能质量,大大增加了电网安全性和稳定性运行风险,因此,风速预测在风电相关工作中至关重要,准确、可靠的预测结果不仅有利于调度人员事先掌握风电场的功率变化情况,及时制定调度运行计划,提高能量转换效率、降低风险,增加发电量等,同时也有利于风电并网稳定运行和有效消纳,对可能存在影响电网安全稳定运行的风险及时预警,从而避免风电功率随机波动造成电能损耗甚至电网崩溃。近年来,国内外学者进行了大量风速预测相关研究,风速预测水平得到一定程度的提升。单一预测模型虽简单容易实施,但其预测精度往往较低,难以满足风电场发电的需求。相比之下,基于优化算法和数据分解法的混合预测模型对风速预测性能有很大的提升。然而,现有的模型只是使用单目标优化算法,针对预测模型精度的提高,很少关注预测结果稳定性的增强,涉及多目标优化算法的混合预测模型更是少之又少。因此,这些模型往往会降低预测结果的稳定性,对风电场发电以及风电并网的安全性和稳定性带来巨大的挑战。针对如上问题,本文构建出一个基于粒子群算法和Elman神经网络的混合预测模型本文所提出的混合预测模型不仅可以降低预测误差,提高风速预测精度,增强预测结果的稳定性,同时对风电场发电的完善,发展以及风电并网安全管理也大有裨益。2 部分代码%% 基于ELM的工程费用预测 clc clear all close all %% 读取数据 XXxlsread(工程费用.xlsx); dataXX; % % 训练集比例 [W,D]size(data); ratio0.8; trround(ratio*size(data,1)); %% 训练数据 input_train data(1:tr,1:D-1);%输入属性特征数据 output_train data(1:tr,D);%输出 修改这里 %% 测试数据 input_test data(tr1:end,1:D-1);%输入属性特征数据 output_test data(tr1:end,D);%输出 %% 数据归一化 % 训练集 [inputn,inputps] mapminmax(input_train); [outputn,outputps] mapminmax(output_train); % 测试集 input1 mapminmax(apply,input_test,inputps); output1 mapminmax(apply,output_test,outputps); %% ELM网络设置 % 隐含层神经元数量 hiddennum10; %极限学习机神经网络的建立 [IW,B,LW,TF,TYPE] elmtrain(inputn,outputn,hiddennum,sig,0);%IW输入层和隐含层之间的连接权值B隐含层神经元的阀值LW隐含层与输出层的连接权值TF隐含层神经元的激活函数 %TYPE表示极限学习机的应用类型0表示回归、拟合1表示分类20表示隐含层神经元的个数 %训练输入的预测结果 Tn_sim elmpredict(inputn,IW,B,LW,TF,TYPE); %仿真结果反归一化 T_sim mapminmax(reverse,Tn_sim,outputps);%反归一化的结果 % 评价指标 R1eva1(output_train,T_sim); mape1eva2(output_train,T_sim); figure plot(T_sim,b-*,linewidth,1) hold on plot(output_train,r-.,linewidth,1) legend(预测值,实际值) xlabel(训练集) ylabel(工程费用) axis tight string {训练集ELM;[(mape num2str(mape1) R^2 num2str(R1) )]}; title(string) % %测试集 TTn_sim elmpredict(input1,IW,B,LW,TF,TYPE); TT_sim mapminmax(reverse,TTn_sim,outputps); R2eva1(output_test,TT_sim); mape2eva2(output_test,TT_sim); figure plot(TT_sim,b-*,linewidth,1) hold on plot(output_test,r-.,linewidth,1) xlabel(测试集) ylabel(工程费用) legend(预测值,实际值) axis tight string {测试集ELM;[(mape num2str(mape2) R^2 num2str(R2) )]}; title(string)3 仿真结果4 参考文献[1]牟家奇. 基于主成分分析-极限学习机的港口国监督选船研究. Diss. 大连海事大学, 2020.博主简介擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真相关matlab代码问题可私信交流。部分理论引用网络文献若有侵权联系博主删除。​