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