?? bjoutline.m
字號:
function [m,fit]=BJoutline(u,z,ts,N,nns,nnt)
%獲取模型結構參數范圍
nbs=nns(1);nbt=nnt(1);
ncs=nns(2);nct=nnt(2);
nds=nns(3);ndt=nnt(3);
nfs=nns(4);nft=nnt(4);
nk=nns(5);
if (nbt-nbs+1)*(nct-ncs+1)*(ndt-nds+1)*(nft-nfs+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=nbs:nbt
for k2=ncs:nct
for k3=nds:ndt
for k4=nfs:nft
m11=bj(ze,[k1 k2 k3 k4 nk]); %采用基于最小二乘法估計的ARMAX模型辨識
[yh,fit]=compare(ze,m11); %計算不同結構模型的的適應度
if fit>temp
temp=fit;m=m11; %選擇適應度最高的模型
nn=[k1 k2 k3 k4 nk];
end
clc;
end
end
end
end
%figure, compare(ze,m); %模型檢驗
[yh,fit]=compare(ze,m);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -