📄 siarx.m
字号:
function [sys0,sys1]=siarx(Ts,orderx)
clc;
load SIdata.mat %导入用于模型辨识的数据
N=length(z);
servo=iddata(z,u,Ts);
servo.InputName='position';
servo.OutputName='distance';
ze=servo(1:N);
zv=servo(1:N);
figure,plot(ze)
%figure, plot(ze(1:1000))
%ze=dtrend(ze);
%zv=dtrend(zv);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%ARX模型辨识
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
NN=struc(2,2,0:100); %模型结构辨识
v=arxstruc(ze,zv,NN);
nn=selstruc(v,0);
nk=nn(3); %确定延迟周期nk
NN=struc(1:orderx,1:orderx,0:nk+1);
v=arxstruc(ze,zv,NN);
nn=selstruc(v,0)
m=arx(ze,nn); %ARX模型辨识
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%ARX模型及降阶模型分析
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp('检验数据下ARX模型与实际系统的吻合程度:') %模型检验
[yh1,f1]=compare(zv,m);
fit=f1
disp('按任意键继续!')
pause
mj=idmodred(m); %模型降阶
disp('检验数据下降阶模型与实际系统的吻合程度:')
[yh1,f1]=compare(zv,mj);
fit=f1
figure,compare(zv,m,mj);
my=noisecnv(m);
s=tf(my); %将模型转化为传递函数
sys0=s(1); %ARX模型的传递函数
mjj=noisecnv(mj);
sy=tf(mjj); %降阶模型转化为传递函数
sys1=sy(1); %降阶模型的传递函数
disp('降阶后模型的传递函数:')
sys1
[num,den]=tfdata(sys1);
disp('传递函数的系数向量:')
num=num{1}
den=den{1}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -