📄 dkreal3z.m
字号:
finddataerr=0;
dktnum=get(editdknum,'string');
dktden=get(editdkden,'string');
dktanum=eval(dktnum);dktaden=eval(dktden);
dhfT=get(edittime,'string');dhT=eval(dhfT);
[err1 err2]=size(dktanum);
[err3 err4]=size(dktaden);
if err2>err4,
finddataerr=1;
else,
if dfadeback==0,
dhfnum=get(editdhknum,'string'); %负反馈
dhfden=get(editdhkden,'string');
dhffnum=eval(dhfnum);dhffden=eval(dhfden);
[dfbnum,dfbden]=feedback(dktanum,dktaden,dhffnum,dhffden,-1);
dfknum=conv(dktanum,dhffnum);dfkden=conv(dktaden,dhffden);
end
if dfadeback==1,
dhfnum=get(editdhknum,'string'); %正反馈
dhfden=get(editdhkden,'string');
dhffnum=eval(dhfnum);dhffden=eval(dhfden);
[dfbnum,dfbden]=feedback(dktanum,dktaden,dhffnum,dhffden,1);
dfknum=conv(dktanum,dhffnum);dfkden=conv(dktaden,dhffden);
end
if dfadeback==2
dhffnum=0;dhffden=0; %无反馈
dfbnum=dktanum;dfbden=dktaden;dfknum=dktanum;dfkden=dktaden;
end
end
[rr1 rr2]=size(dfbnum);
for i=1:1:rr2
if dfbnum(1,i)==0,
if dfbden(1,i)==0,
else,
finddataerr=0;
break;
end
else,
if dfbden(1,i)==0,
finddataerr=1;
break;
end
end
end
if finddataerr==0,
[dak,dbk,dck,ddk]=tf2ss(dfknum,dfkden);
dtak=dak;dtbk=dbk;dtck=dck;dtdk=ddk;
[dak1,dbk1,dck1,ddk1,dtk1]=canon(dak,dbk,dck,ddk,'model');
[dak2,dbk2,dck2,dtk2,dkk2]=ctrbf(dak,dbk,dck);
[dak3,dbk3,dck3,dtk3,dkk3]=obsvf(dak,dbk,dck);
[dzk,dpk,dkk]=ss2zp(dak,dbk,dck,ddk);
[dminak,dminbk,dminck,ddmindk]=minreal(dak,dbk,dck,ddk);
[dminnumk,dmindenk]=minreal(dfknum,dfkden);
[da,db,dc,dd]=tf2ss(dfbnum,dfbden);
dta=da;dtb=db;dtc=dc;dtd=dd;
[da1,db1,dc1,dd1,dt1]=canon(da,db,dc,dd,'model');
[da2,db2,dc2,dt2,dk2]=ctrbf(da,db,dc);
[da3,db3,dc3,dt3,dk3]=obsvf(da,db,dc);
[dz,dp,dk]=ss2zp(da,db,dc,dd);
[dmina,dminb,dminc,ddmind]=minreal(da,db,dc,dd);
[dminnum,dminden]=minreal(dfbnum,dfbden);
test=0;
close(getmodel3);
set(mmodel,'enable','on');
set(manalysis,'enable','on');
set(msave,'enable','on');
set(mdesign,'enable','on');
set(dlminfy,'enable','off');
set(dcmchange,'enable','off');
set(minfy,'enable','off');
set(mchange,'enable','off');
set(mcplx,'enable','off');
set(mtime,'enable','off');
set(dlminfy1,'enable','on');
set(dlmchange,'enable','on');
set(dsmys,'enable','off');
set(dmyz,'enable','on');
set(mstablity,'enable','off');
set(mcontral,'enable','off');
set(mnormal,'enable','off');
set(mdstable,'enable','on');
set(mdroot,'enable','on');
set(mdcontral,'enable','on');
else,
msgbox('所构造的传递函数分子维数大于分母维数','数据错误警告','help');
end
set(dsmys,'enable','off');
set(msimu,'enable','off');
set(dmsimu,'enable','on');
set(dmchange,'enable','on');
set(dminfy,'enable','on');
set(mdtime,'enable','on');
set(mdcplx,'enable','on');
set(idwin,'enable','off');
set(idwins1,'enable','off');
set(mdesign1,'enable','off');
set(mdesign2,'enable','off');
set(mdesign3,'enable','off');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -