📄 arxoutline.m
字号:
function [m,fit]=ARXoutline(u,z,ts,N,nns,nnt)
%获取模型结构参数范围
nas=nns(1);nat=nnt(1);
nbs=nns(2);nbt=nnt(2);
nk=nns(3);
if (nat-nas+1)*(nbt-nbs+1)>150
return
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%获取实验数据,及数据预处理
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
servo=iddata(z,u,ts);
servo.InputName='position';
servo.OutputName='distance';
ze=servo(1:N);
%figure, plot(ze(1:1000))
%ze=dtrend(ze);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%模型检验及最优模型选择
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
temp=0;
for k1=nas:nat
for k2=nbs:nbt
m11=arx(ze,[k1 k2 nk]); %采用基于最小二乘法估计的ARX模型辨识
[yh,fit]=compare(ze,m11); %计算不同结构模型的的适应度
if fit>temp
temp=fit;m=m11; %选择适应度最高的模型
nn=[k1 k2 nk];
end
clc;
end
end
%figure, compare(ze,m); %模型检验
[yh,fit]=compare(ze,m);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -