⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dkreal3zs.m

📁 详细介绍了Mathlab的使用方法与技巧
💻 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(changemodel3);
  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 + -