【预测模型-ELAMN预测】基于遗传算法优化ELMAN神经网络实现数据回归预测matlab代码

article/2025/9/24 1:25:46

1 简介

风能,作为一种重要,有潜力,无污染,可再生、可持续的能源,已经成为全球发电最为迅速的能源之一,越来越受到世界各国的青睐。近年来,为缓解能源短缺问题,改善环境,实现经济乃至人类的可持续发展,世界各国纷纷大力发展风能资源。然而,在实际操作中,风能固有的波动性和间歇性通常会增加风能入网的难度,致使风电场输出功率不稳定,严重影响输出的电能质量,大大增加了电网安全性和稳定性运行风险,因此,风速预测在风电相关工作中至关重要,准确、可靠的预测结果不仅有利于调度人员事先掌握风电场的功率变化情况,及时制定调度运行计划,提高能量转换效率、降低风险,增加发电量等,同时也有利于风电并网稳定运行和有效消纳,对可能存在影响电网安全稳定运行的风险及时预警,从而避免风电功率随机波动造成电能损耗甚至电网崩溃。近年来,国内外学者进行了大量风速预测相关研究,风速预测水平得到一定程度的提升。单一预测模型虽简单容易实施,但其预测精度往往较低,难以满足风电场发电的需求。相比之下,基于优化算法和数据分解法的混合预测模型对风速预测性能有很大的提升。然而,现有的模型只是使用单目标优化算法,针对预测模型精度的提高,很少关注预测结果稳定性的增强,涉及多目标优化算法的混合预测模型更是少之又少。因此,这些模型往往会降低预测结果的稳定性,对风电场发电以及风电并网的安全性和稳定性带来巨大的挑战。针对如上问题,本文构建出一个基于鲸鱼算法和Elman神经网络的混合预测模型,本文所提出的混合预测模型不仅可以降低预测误差,提高风速预测精度,增强预测结果的稳定性,同时对风电场发电的完善,发展以及风电并网安全管理也大有裨益。

遗传算法是一种具有广泛适用性的搜索方法,通过建立在自然选择和群体遗传学机理基础上的随机迭代、进化,所有的自然种类都是适应环境而得以生存,这一自然适应性是遗传算法的主旋律。遗传算法结合了适者生存和随机信息交换,前者消除了解中不适应因素,后者利用了原有解中已有的知识,从而有力地加快了搜索过程。遗传算法具有多点并行搜索的特点,可以避免陷入局部极值点,同时它在使用时需要的信息较少,且放松了对目标函数值的要求,仅通过复制、交叉和变异运算就可以以很大的概率在解空间中搜索到全局最优或次优解。遗传算法优化 Elman 神经网络时首先确定 El- man 神经网络的拓扑结构,Elman 神经网络的拓扑结构是根据样本的输入/输出参数个数确定的,这样就可以确定遗传算法优化参数的个数,从而确定种群个体的编码长度。然后遗传算法优化的参数是Elman 神经网络的初始权值和阈值,Elman 神经网络的权值和阈值一般是随机初始化的随机数,这个初始化参数对网络训练的影响很大,但是又无法准确获得,对于相同的初始权重值和阈值,网络的训练结构式一样的,引入遗传算法就是为了优化出最佳的初始权值和阈值。使优化后的 Elman 神经网络能够更好的进行样本预测。

Elman 网络采取的权值更新方法( 梯度下降法) ,其缺陷是容易陷入局部最小值,所以本文借助遗传算法( GA) 来训练优化初始权值,通过选择、复制、交叉、变异这几种进化机制来寻找最优解。因此,遗传算法全局变异算子可以避免陷入局部最优,并且由于其具有并行搜索的特性,保证了算法的快速、稳定。遗传算法优化 Elman 神经网络的要素包括种群初始化、适应度函数、选择算子、交叉算子和变异算子。遗传算法优化 Elman 神经网络的流程图如图 2。遗传算法优化 Elman 神经网络的实现步骤如下: 

( 1) 种群初始化。将 Elman 网络的初始随机权值编码为若干和染色体组成的初始种群。个体编码使用二进制编码,每个个体均为一个二进制串,由输入层与隐含层连接权值、隐含层阈值、隐含层与输出层连接权值、输出层阈值 4 部分组成,每个权值和阈值使用 M 位的二进制编码,将所有权值的阈值的编码连接起来即为一个个体的编码。 

( 2) 选择适应度函数。为了使 Elman 网络在预测时,预测值与期望值的残差尽可能小,所以选择预测样本的预测值与期望值的误差为目标函数的输出。适应度函数采用 f = 1 / E( t) 选择算子

2 部分代码

clc % 清屏

clear all; % 删除workplace变量

close all; % 关掉显示图形窗口

size=30;

codel=3;

minx(1)=zeros(1);

maxx(1)=50*ones(1);

minx(2)=zeros(1);

maxx(2)=50*ones(1);

minx(3)=zeros(1);

maxx(3)=50*ones(1);

kpid(:,1)=minx(1)+(maxx(1)-minx(1))*rand(size,1);

kpid(:,2)=minx(2)+(maxx(2)-minx(2))*rand(size,1);

kpid(:,3)=minx(3)+(maxx(3)-minx(3))*rand(size,1);

G=100;

BsJ=0;

for kg=1:1:G

    time(kg)=kg;

    for i=1:1:size

        kpidi=kpid(i,:);

        BsJ=pid_GA(kpidi);

        BsJi(i)=BsJ;

    end

[OderJi,IndexJi]=sort(BsJi);

BestJ(kg)=OderJi(1);

BJ=BestJ(kg);

Ji=BsJi+1e-10;

fi=1./Ji;

[Oderfi,Indexfi]=sort(fi);

Bestfi=Oderfi(size);

BestS=kpid(Indexfi(size),:);

% select and reproduct operation

fi_sum=sum(fi);

fi_size=(Oderfi/fi_sum)*size;

fi_s=floor(fi_size);

r=size-sum(fi_s);

Rest=fi_size-fi_s;

[Restvalue,Index]=sort(Rest);

for i=size:-1:size-r+1

    fi_s(Index(i))=fi_s(Index(i))+1;

end

k=1;

for i=size:-1:1

    for j=1:1:fi_s(i)

        TempE(k,:)=kpid(Indexfi(i),:);

        k=k+1;

    end

end

% crossover operation

Pc=0.90;

for i=1:2:(size-1)

    temp=rand;

    if Pc>temp

        alfa=rand;

        TempE(i,:)=alfa*kpid(i+1,:)+(1-alfa)*kpid(i,:);

        TempE(i+1,:)=alfa*kpid(i,:)+(1-alfa)*kpid(i+1,:);

    end

end

TempE(size,:)=BestS;

kpid=TempE;

%Mution operation

Pm=0.1-[1:1:size]*(0.01)/size;

Pm_rand=rand(size,codel);

Mean=(maxx+minx)/2;

Dif=(maxx-minx);

for i=1:1:size 

    for j=1:1:codel

        if Pm(i)>Pm_rand(i,j)

            TempE(i,j)=Mean(j)+Dif(j)*(rand-0.5);

        end

    end

end

%guarantee TempE(size,:)belong tu the best individual

TempE(size,:)=BestS;

kpid=TempE;

end

Bestfi;

BestS;

Best_J=BestJ(G);

figure(1);

plot(time,BestJ,'LineWidth',3);

title('最优个体适应值','fontsize',10);

xlabel('迭代次数');ylabel('适应值');

grid on

      

3 仿真结果

4 参考文献

[1]朱昶胜, 康亮河, and 冯文芳. "基于自适应鲸鱼优化算法结合Elman神经网络的股市收盘价预测算法." 计算机应用 40.5(2020):9.

[2]张立军, and 苑迪. "基于GA-Elman动态回归神经网络的股价预测模型研究." 华东经济管理 22.9(2008):4.​


http://chatgpt.dhexx.cn/article/0R8FSEC3.shtml

相关文章

【预测模型】基于Elman神经网络预测电力负荷matlab代码

​1 简介 为提高甘肃电网负荷预测精度,提出了一种基于神经网络的负荷预测方法.针对甘肃电力系统负荷数据的非线性和动态特性,在多层前向BP网络中引入特殊关联层,形成有"记忆"能力的Elman神经网络,从而可以映射系统的非线性和动态特性.在网络训练算法中,采用自适应学…

粒子群算法优化BP和Elman神经网络-matlab源码

粒子群优化算法是一种智能优化算法,又称微粒群算法,它通过模拟自然界鸟群捕食和鱼群捕食的过程。通过群体中的协作寻找到问题的全局最优解。 收敛性的数学证明帮助了PSO的发展和应用,但此内分析具有很大的局限性。为PSO加入正交学习后&#…

基于鲸鱼算法优化的Elman神经网络数据预测-附代码

基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于鲸鱼优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要:针…

基于小波Elman神经网络的短期风电功率预测

风力发电在全球范围内快速发展,装机容量逐年增加,截止2013 年底,中国风电新增装机容量约 16.1GW,较 2012 年的 12.96GW 大幅提高了 24%,中国风电累计装机已超过 90GW。 风力发电并网运行是实现大规模风能发利用的有效途径。但是与常规能源不…

基于灰狼算法优化的Elman神经网络数据预测

基于灰狼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于灰狼算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于灰狼优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要:针…

Elman神经网络

newelm()函数: clear ; close all; clc %原始数据 data[0.4413,0.4707,0.6953,0.8133;...0.4379,0.4677,0.6981,0.8002;...0.4517,0.4725,0.7006,0.8201;...0.4557,0.4790,0.7019,0.8211;...0.4601,0.4811,0.7101,0.8298;...0.4612,0.4845,0.7188,0.8312;...0.4615,…

Elman神经网络与自适应共振网络(ART)

这几天在回过头看一些比较基础的东西,发现了两个早期研究的神经网络,Elman与ART网络,类似于上世纪80年代的hopfield神经网络,BM/RBM/DBN,RBF,SOM,以及同时期的SVM算法等等,虽然那个时…

Elman神经网络原理

Elman神经网络 近期开题,阅读到了一篇文章关于故障诊断的,其中用到了Elman神经网络,具体是结合EMD、PCA-SOM的Elman的性能评估/预测故障诊断,对Elman神经网络有点陌生,网上资源也讲的特别杂,来做个汇总Int…

【神经网络第一期】Elman神经网络基本原理

1. Elman神经网络概述 根据神经网络运行过程中的信息流向,可将神经网络可分为前馈式和反馈式两种基本类型。前馈式网络通过引人隐藏层以及非线性转移函数可以实现复杂的非线性映射功能。但前馈式网络的输出仅由当前输入和权矩阵决定,而与网络先前的输出…

回归预测 基于ELMAN递归神经网络预测及其matlab代码实现

文章目录 1. ELMAN神经网络的简介和算法描述1.1 Elman网络介绍1.2 Elman结构组成 1.3 ELMAN训练界面的参数解读2. 建立ELMAN神经网络的步骤3. 编写MATLAB代码4. ELMAN程序运行结果4.1 各层的神经元个数的确定过程4.2 预测值和真实值的误差计算(SSE、MAE、MSE、RMSE、…

Elman神经网络介绍以及Matlab实现

Elman神经网络介绍 1.特点 Elman神经网络是一种典型的动态递归神经网络,它是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特性的能力,增强了…

数据库命名规范--通用

分段式的 1.1 基本命名原则 以下基本原则适用于所有数据库对象命名,如无特别说明则为强制规范。规范:遵循行业规范 当有相关国家/行业强制性数据结构标准规范存在时,用于存储某业务数据的业务表在表名命名上原则上应该遵从标准规定&#xf…

数据库命名规范

数据库命名规范 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:SQL Server 2014 Management Studio 作者:朱海恩 撰写时间:2019年7月12日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

【数据库】命名规范

鸣谢: 命规范_码农书生的博客-CSDN博客_数据库字段名称命名规则一、数据库命名规范1.1 数据库命名规范采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线_组成,命名简洁明确,多个单词用下划线_分隔,一个项目一个数据库&…

ESP8266 WIFI 模块串口调试过程-实现通过互联网实现数据远程传输(结尾含驱动代码链接)

一、 ESP8266 WIFI模块调试(串口发送AT指令调试)。 ESP8266 WIFI模块的调试算是最复杂的了,虽然通信是简单的串口通信,但是要设置ESP8266连接服务器并稳定无误的将数据上传,还是非常不容易的。 在前期模块调试阶段我…

串口转无线WiFi模块——WizFi210-EVB操作手册

1. 产品介绍 特点 - 通过串行主机接口,进行WiFi连接 - 快速开机时间:少于20毫秒 - 超低功耗,通过动态电源管理(待机模式34μA) - 速度高达to11Mbps(802.11b)的标准的802.11b/g/n接入点 - 安全…

sever串口wifi拓展板_什么是串口WIFI模块

展开全部 串口WiFi模块多是以邮票孔的62616964757a686964616fe59b9ee7ad9431333365646263形式作为管脚引出控制引脚,主要采取焊接的方式来实现接入电路控制板。 串口WiFi模块是多种WiFi模块中的一类,功能是将串口或TTL电平转换为符合Wi-Fi无线网络通信标…

【沧海拾昧】WiFi串口通信ESP8266模块基本介绍(附野火WiFi透传实例)

#C0104 沧海茫茫千钟粟,且拾吾昧一微尘 ——《沧海拾昧集》CuPhoenix 【阅前敬告】 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 【如有问题必是本集记录有谬,切勿深究】 目录 前言一、ESP8266模块基本连线二、ESP8266固件…

ESP8266串口WiFi模块

参考和学习《ESP8266串口WIFI模块的基本使用》点击打开链接 ESP8266是一款超低功耗的UART-WiFi 透传模块,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。 把硬件联网之后,就再也不是“玩单机”了。配合服务器端的Socket网络编程,可以…

教你E103-W10串口转WiFi模块的无线透传应用教程

以下为E103-W10作为 softAP实现 UDP串口服务器无线数据透传的举例,E103-W10作为 station 可同理实现透传。 1.透传 默认仅在TCP client单连接或UDP传输模式时,支持透传。 1.1.TCP Client 单连接透传 1.配置WiFi模式 使用指令ATCWMODE3//SoftAPStati…