📄 linear_recognize.asv
字号:
%线性系统辨识y=kx+b(k为输入x信号放大倍数,b为平移,y为系统输出)
%**************************************
%信号X:一个线性系统持续时间5秒,每25毫秒采样1次
time=0:0.025:5;
X=sin(sin(time).*time*10);
figure(1);
plot(time,X);
title('输入信号X');
xlabel('时间');
ylabel('输入信号');
%**************************************
%k=2,b=0.8得到系统输出y
Y=X*2+0.8;
figure(2);
plot(time,Y);
title('系统输出Y');
xlabel('时间');
ylabel('系统输出');
%*************************************
%得到X当前值和前两个时刻的值
Q=size(X,2);
P=zeros(3,Q);
P(1,1:Q)=X(1,1:Q);
P(2,2:Q)=X(1,1:(Q-1));
P(3,3:Q)=X(1,1:(Q-2));
%*************************************
%建立网络
net=newlind(P,Y);
%*************************************
%使用sim仿真函数测试网络
a=sim(net,P);
figure(2);
plot(time,a,'+',time,Y,'--');
title('网络输出a与系统输出Y');
xlabel('时间');
ylabel('系统输出-- 网络输出+');
%*************************************
%求出误差并绘制曲线图
e=Y-a;
figure(3);
plot(time,e);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -