您现在的位置:首页 >> 机器学习 >> 内容

基于RNN神经网络的系统参数辨识matlab仿真

时间:2023/1/10 19:59:26 点击:

  核心提示:05_057_m,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y56Ulppr

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览






3.算法概述

        RNN是一种特殊的神经网络结构, 它是根据"人的认知是基于过往的经验和记忆"这一观点提出的. 它与DNN,CNN不同的是: 它不仅考虑前一时刻的输入,而且赋予了网络对前面的内容的一种’记忆’功能.RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

4.部分源码

data = xlsread('数据1.xlsx');

u = data(:,1:3);

x = data(:,4:5);

%数据归一化

x1= x(:,1);xmin1 = min(x1);xmax1 = max(x1);

x2= x(:,2);xmin2 = min(x2);xmax2 = max(x2);

x1=(x1)/(xmax1);

x2=(x2)/(xmax2);

x = [x1,x2];

u1= u(:,1);umin1 = min(u1);umax1 = max(u1);

u2= u(:,2);umin2 = min(u2);umax2 = max(u2);

u3= u(:,3);umin3 = min(u3);umax3 = max(u3);

%RNN;

[xpre,A,B,C,D] = func_RNN(u,x);

function [xpre,Aw,Bw,Cw,Dw] = func_RNN(u,x);

dtrain = u';

dtest  = x';

%网络参数初始化

Nin = 3;

Nhi = 32;

Not = 2;

%权重初始化

Aw  = rand(Nhi,Nhi);

Bw  = rand(Not,Nhi);

Cw  = rand(Nhi,Nin);

Dw  = rand(Nhi,1);

xpre= zeros(Not,length(u));

 

%RNN网络训练

Lr = 0.002;           

for ij=1:80

    ij

    for t=1:length(dtrain)    

        %从输入到隐层

        if t==1

           States = Cw*dtrain(:,t) + Dw;

        else

           States = Cw*dtrain(:,t) + Aw*fx(:,t-1) + Dw;

        end

        %从隐层到输出

        for n=1:Nhi

            fx(n,t) = 1/(1+exp(-States(n,:)));%通过sigmoid函数

        end

        xpre(:,t) = Bw*fx(:,t);

        %误差计算

        Error     = xpre(:,t)-dtest(:,t);

        %权值更新

        [Aw,Bw,Cw,Dw]=func_wdata(t,Lr,Error,dtrain,fx,Aw,Bw,Cw,Dw);

    end

end

05_057_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168