RNN基于RNN的动态系统参数辨识matlab仿真

Posted fpga和matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RNN基于RNN的动态系统参数辨识matlab仿真相关的知识,希望对你有一定的参考价值。

1.软件版本

matlab2017b

2.本算法理论知识

3.部分源码

clc;
clear;
close all;
warning off;
addpath 'func\\'


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);

u1=(u1)/(umax1);
u2=(u2)/(umax2);
u3=(u3)/(umax3);

u = [u1,u2,u3];

figure;
subplot(211);
plot(u(:,1),'r');
hold on
plot(u(:,2),'b');
hold on
plot(u(:,3),'k');
legend('u_1','u_2','u_3');
title('归一化数据');
subplot(212);
plot(x(:,1),'r');
hold on
plot(x(:,2),'b');
legend('x_1','x_2');
title('归一化数据');

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

 

figure;
subplot(211);
plot(x(:,1),'r');
hold on
plot(xpre(1,:),'b');
legend('真实信号','辨识信号');
title('RNN效果-辨识');
subplot(212);
plot(x(:,2),'r');
hold on
plot(xpre(2,:),'b');
legend('真实信号','辨识信号');
title('RNN效果-辨识');

axis([50,length(x),-1.5,1.5]);

figure;
subplot(211);
plot(x(:,1)-xpre(1,:)','k');
title('RNN效果-误差');
axis([0,length(x),-0.5,0.5]);
subplot(212);
plot(x(:,2)-xpre(2,:)','k');
title('RNN效果-误差');
axis([50,length(x),-0.5,0.5]);
mean(abs(x(:,1)-xpre(1,:)'))
mean(abs(x(:,2)-xpre(2,:)'))

 

4.仿真结论

5.参考文献

[1]黎波, 严骏, 郭刚,等. 基于DRNN神经网络的挖掘机伺服系统参数辨识[J]. 解放军理工大学学报:自然科学版, 2013(1):4.A05-57 

以上是关于RNN基于RNN的动态系统参数辨识matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章

基于最小二乘法和最大似然估计法的系统参数辨识MATLAB仿真

prony基于prony算法的参数辨识matlab仿真

LCMV基于LCMV的参数辨识算法matlab仿真

m基于神经网络的飞机垂直尾翼振动主动控制系统matlab仿真,包括系统辨识和在线控制

m基于神经网络的飞机垂直尾翼振动主动控制系统matlab仿真,包括系统辨识和在线控制

神经网络控制器基于神经网络的离线训练辨识在线控制的控制系统仿真