?? 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 + -