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

📄 viewform.m

📁 vTools is a toolbox for Matlab 5.3 developed within the Department of Electrical Systems and A
💻 M
📖 第 1 页 / 共 2 页
字号:

   [Ao,Bo,Co,To,K]=obsvf(stack.general.A,stack.general.B,stack.general.C);
   Do=stack.general.D;
   
   stack.temp.Ao=Ao;stack.temp.Bo=Bo;
   stack.temp.Co=Co;stack.temp.Do=Do;
   stack.temp.To=To;

   set(vf(2),'visible','on');
   set(gcf,'userdata',[{'A'},{'ob'},{stack.temp.Ao}]);
   visual(stack.temp.Ao,'Ao','','obsv',rangoobs); 

   
case 'Modal Form'
   
   set(vf(1),'callback','back_ana(''ana0'',[],''Am'',''Bm'',''Cm'',''Dm'',''Tm'');')
   
   set(vf(3),'string','Am','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''A''},{''mo''},{stack.temp.Am}]);',...
      'set(findobj(''tag'',''FA''),''visible'',''on'');visual(stack.temp.Am,''Am'');']);
   set(vf(5),'string','Bm','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''B''},{''mo''},{stack.temp.Bm}]);',...
      'set(findobj(''tag'',''FB''),''visible'',''on'');visual(stack.temp.Bm,''Bm'');']);
   set(vf(7),'string','Cm','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''C''},{''mo''},{stack.temp.Cm}]);',...
      'set(findobj(''tag'',''FC''),''visible'',''on'');visual(stack.temp.Cm,''Cm'');']);
   set(vf(9),'string','Dm','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''D''},{''mo''},{stack.temp.Dm}]);',...
      'set(findobj(''tag'',''FD''),''visible'',''on'');visual(stack.temp.Dm,''Dm'');']);
   set(vf(11),'string','Tm','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''T''},{''mo''},{stack.temp.Tm}]);',...
      'set(findobj(''tag'',''FT''),''visible'',''on'');visual(stack.temp.Tm,''Tm'');']);

   [Am Bm Cm Dm Tm]=canon(stack.general.A,stack.general.B,stack.general.C,stack.general.D,'modal');
   
   stack.temp.Am=Am;stack.temp.Bm=Bm;
   stack.temp.Cm=Cm;stack.temp.Dm=Dm;
   stack.temp.Tm=Tm;
   
   set(vf(2),'visible','on');
   set(gcf,'userdata',[{'A'},{'mo'},{stack.temp.Am}]);
   visual(stack.temp.Am,'Am'); 

   
case 'Companion Form'
   
   set(vf(1),'callback','back_ana(''ana0'',[],''Acom'',''Bcom'',''Ccom'',''Dcom'',''Tcom'');')
   
   set(vf(3),'string','Acom','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''A''},{''cf''},{stack.temp.Acom}]);',...
      'set(findobj(''tag'',''FA''),''visible'',''on'');visual(stack.temp.Acom,''Acom'');']);
   set(vf(5),'string','Bcom','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''B''},{''cf''},{stack.temp.Bcom}]);',...
      'set(findobj(''tag'',''FB''),''visible'',''on'');visual(stack.temp.Bcom,''Bcom'');']);
   set(vf(7),'string','Ccom','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''C''},{''cf''},{stack.temp.Ccom}]);',...
      'set(findobj(''tag'',''FC''),''visible'',''on'');visual(stack.temp.Ccom,''Ccom'');']);
   set(vf(9),'string','Dcom','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''D''},{''cf''},{stack.temp.Dcom}]);',...
      'set(findobj(''tag'',''FD''),''visible'',''on'');visual(stack.temp.Dcom,''Dcom'');']);
   set(vf(11),'string','Tcom','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''T''},{''cf''},{stack.temp.Tcom}]);',...
      'set(findobj(''tag'',''FT''),''visible'',''on'');visual(stack.temp.Tcom,''Tcom'');']);

   [Acom Bcom Ccom Dcom Tcom]=canon(stack.general.A,stack.general.B,stack.general.C,stack.general.D,'companion');
   
   stack.temp.Acom=Acom;stack.temp.Bcom=Bcom;
   stack.temp.Ccom=Ccom;stack.temp.Dcom=Dcom;
   stack.temp.Tcom=Tcom;
   
   set(vf(2),'visible','on');
   set(gcf,'userdata',[{'A'},{'cf'},{stack.temp.Acom}]);
   visual(stack.temp.Acom,'Acom'); 
   
case 'Jordan Form'
   set(vf(1),'callback','back_ana(''ana0'',[],''Aj'',''Bj'',''Cj'',''Dj'',''Tj'');')

   set(vf(3),'string','Aj','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''A''},{''jf''},{stack.temp.Aj}]);',...
      'set(findobj(''tag'',''FA''),''visible'',''on'');visual(stack.temp.Aj,''Aj'');']);
   set(vf(5),'string','Bj','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''B''},{''jf''},{stack.temp.Bj}]);',...
      'set(findobj(''tag'',''FB''),''visible'',''on'');visual(stack.temp.Bj,''Bj'');']);
   set(vf(7),'string','Cj','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''C''},{''jf''},{stack.temp.Cj}]);',...
      'set(findobj(''tag'',''FC''),''visible'',''on'');visual(stack.temp.Cj,''Cj'');']);
   set(vf(9),'string','Dj','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''D''},{''jf''},{stack.temp.Dj}]);',...
      'set(findobj(''tag'',''FD''),''visible'',''on'');visual(stack.temp.Dj,''Dj'');']);
   set(vf(11),'string','Tj','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''T''},{''jf''},{stack.temp.Tj}]);',...
      'set(findobj(''tag'',''FT''),''visible'',''on'');visual(stack.temp.Tj,''Tj'');']);

   s0=pck(stack.general.A,stack.general.B,stack.general.C,stack.general.D);
   [s1,Tj]=sys2sys(s0,'j');
   
   [Aj Bj Cj Dj]=ss2ss(stack.general.A,stack.general.B,stack.general.C,stack.general.D,inv(Tj));
   Aj=1e-4*round(1e4*Aj);
   Bj=1e-4*round(1e4*Bj);
   Cj=1e-4*round(1e4*Cj);
   Dj=1e-4*round(1e4*Dj);
   
   stack.temp.Aj=Aj;stack.temp.Bj=Bj;
   stack.temp.Cj=Cj;stack.temp.Dj=Dj;
   stack.temp.Tj=Tj;
   
   set(vf(2),'visible','on');
   set(gcf,'userdata',[{'A'},{'jf'},{stack.temp.Aj}]);
   visual(stack.temp.Aj,'Aj');
   
case 'Kalman Form'
   
   Testo(1)=uicontrol('style','frame',...
      'units','normalized','position',[0.34 0.115 0.3 0.055],...
      'backgroundcolor',[1 1 1],'tag','testo');
   Testo(2)=uicontrol('style','text',...
      'units','normalized','position',[0.36 0.13 0.05 0.025],...
      'backgroundcolor',[1 0 0],'tag','testo');
   Testo(3)=uicontrol('style','text',...
      'units','normalized','position',[0.42 0.12 0.21 0.045],...
      'fontunits','normalized','fontsize',0.7,'fontweight','bold',...
      'string','Ctrb & Obs','backgroundcolor',[1 1 1],'tag','testo');
   Testo(4)=uicontrol('style','frame',...
      'units','normalized','position',[0.34 0.05 0.3 0.055],...
      'backgroundcolor',[1 1 1],'tag','testo');
   Testo(5)=uicontrol('style','text',...
      'units','normalized','position',[0.36 0.065 0.05 0.025],...
      'backgroundcolor',[0 0 1],'tag','testo');
   Testo(6)=uicontrol('style','text',...
      'units','normalized','position',[0.415 0.055 0.22 0.045],...
      'fontunits','normalized','fontsize',0.7,'fontweight','bold',...
      'string','no Ctrb & no Obs','backgroundcolor',[1 1 1],...
      'tag','testo');
      
   Testo(7)=uicontrol('style','frame',...
      'units','normalized','position',[0.65 0.115 0.3 0.055],...
      'backgroundcolor',[1 1 1],'tag','testo');
   Testo(8)=uicontrol('style','text',...
      'units','normalized','position',[0.67 0.13 0.05 0.025],...
      'backgroundcolor',[0 1 0],'tag','testo');
   Testo(9)=uicontrol('style','text',...
      'units','normalized','position',[0.73 0.12 0.21 0.045],...
      'fontunits','normalized','fontsize',0.7,'fontweight','bold',...
      'string','Ctrb & no Obs','backgroundcolor',[1 1 1],'tag','testo');
   Testo(10)=uicontrol('style','frame',...
      'units','normalized','position',[0.65 0.05 0.3 0.055],...
      'backgroundcolor',[1 1 1],'tag','testo');
   Testo(11)=uicontrol('style','text',...
      'units','normalized','position',[0.67 0.065 0.05 0.025],...
      'backgroundcolor',[1 0 1],'tag','testo');
   Testo(12)=uicontrol('style','text',...
      'units','normalized','position',[0.73 0.055 0.21 0.045],...
      'fontunits','normalized','fontsize',0.7,'fontweight','bold',...
      'string','Obs & no Ctrb','backgroundcolor',[1 1 1],...
      'tag','testo');
      
   stack.temp.handles=[stack.temp.handles,Testo];   
   set(vf(1),'callback','back_ana(''ana0'',[],''Ak'',''Bk'',''Ck'',''Dk'',''Tk'');')
 
   s0=pck(stack.general.A,stack.general.B,stack.general.C,stack.general.D);
   [s1,Tk,dim]=sys2sys(s0,'k');
   [Ak Bk Ck Dk]=unpck(s1);
   
   iston=['set(findobj(''tag'',''testo''),''visible'',''on'');'];
   istoff=['set(findobj(''tag'',''testo''),''visible'',''off'');'];
   
   set(vf(3),'string','Ak','visible','on',...
      'callback',[callb,iston,'set(findobj(''tag'',''FA''),''visible'',''on'');',...
        'set(gcf,''userdata'',[{''A''},{''kf''},{stack.temp.Ak}]);',...
         sprintf('visual(stack.temp.Ak,''Ak'','''',''kalman'',[%u,%u,%u,%u]);',dim(1),dim(2),dim(3),dim(4))]);
   set(vf(5),'string','Bk','visible','on',...
      'callback',[callb,iston,'set(findobj(''tag'',''FB''),''visible'',''on'');',...
       'set(gcf,''userdata'',[{''B''},{''kf''},{stack.temp.Bk}]);',...
        sprintf('visual(stack.temp.Bk,''Bk'','''',''kalman'',[%u,%u,%u,%u]);',dim(1),dim(2),dim(3),dim(4))]);
   set(vf(7),'string','Ck','visible','on',...
      'callback',[callb,iston,'set(findobj(''tag'',''FC''),''visible'',''on'');',...
        'set(gcf,''userdata'',[{''C''},{''kf''},{stack.temp.Ck}]);',...         
         sprintf('visual(stack.temp.Ck,''Ck'','''',''kalman'',[%u,%u,%u,%u]);',dim(1),dim(2),dim(3),dim(4))]);
   set(vf(9),'string','Dk','visible','on',...
      'callback',[callb,istoff,'set(gcf,''userdata'',[{''D''},{''kf''},{stack.temp.Dk}]);',...
      'set(findobj(''tag'',''FD''),''visible'',''on'');visual(stack.temp.Dk,''Dk'');']);
   set(vf(11),'string','Tk','visible','on',...
      'callback',[callb,istoff,'set(gcf,''userdata'',[{''T''},{''kf''},{stack.temp.Tk}]);',...
      'set(findobj(''tag'',''FT''),''visible'',''on'');visual(stack.temp.Tk,''Tk'');']);

   stack.temp.Ak=Ak;stack.temp.Bk=Bk;
   stack.temp.Ck=Ck;stack.temp.Dk=Dk;
   stack.temp.Tk=Tk;
   
   set(vf(2),'visible','on');
   set(gcf,'userdata',[{'A'},{'kf'},{stack.temp.Ak}]);
   visual(stack.temp.Ak,'Ak','','kalman',dim); 
   
case 'Balanced Realization'
   
   set(vf(1),'callback','back_ana(''ana0'',[],''Abal'',''Bbal'',''Cbal'',''Dbal'',''Tbal'');')
   
   set(vf(3),'string','Abal','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''A''},{''ba''},{stack.temp.Abal}]);',...
      'set(findobj(''tag'',''FA''),''visible'',''on'');visual(stack.temp.Abal,''Abal'');']);
   set(vf(5),'string','Bbal','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''B''},{''ba''},{stack.temp.Bbal}]);',...
      'set(findobj(''tag'',''FB''),''visible'',''on'');visual(stack.temp.Bbal,''Bbal'');']);
   set(vf(7),'string','Cbal','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''C''},{''ba''},{stack.temp.Cbal}]);',...
      'set(findobj(''tag'',''FC''),''visible'',''on'');visual(stack.temp.Cbal,''Cbal'');']);
   set(vf(9),'string','Dbal','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''D''},{''ba''},{stack.temp.Dbal}]);',...
      'set(findobj(''tag'',''FD''),''visible'',''on'');visual(stack.temp.Dbal,''Dbal'');']);
   set(vf(11),'string','Tbal','visible','off',...
      'callback',[callb,'set(gcf,''userdata'',[{''t''},{''ba''},{stack.temp.Tbal}]);',...
      'set(findobj(''tag'',''FT''),''visible'',''on'');visual(stack.temp.Tbal,''Tbal'');']);
   
   s0=pck(stack.general.A,stack.general.B,stack.general.C,stack.general.D);
   [s1,Tbal,dim]=sys2sys(s0,'b');
   [Abal Bbal Cbal Dbal]=unpck(s1);
 
   stack.temp.Abal=Abal;stack.temp.Bbal=Bbal;
   stack.temp.Cbal=Cbal;stack.temp.Dbal=Dbal;
   stack.temp.Tbal=Tbal;
   
   set(vf(2),'visible','on');
   set(gcf,'userdata',[{'A'},{'ba'},{stack.temp.Abal}]);
   visual(stack.temp.Abal,'Abal'); 
    
case 'Brunowsky Form'
   
   set(vf(1),'callback','back_ana(''ana0'',[],''Abru'',''Bbru'',''Cbru'',''Dbru'',''Tbru'');')
   
   set(vf(3),'string','Abru','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''A''},{''br''},{stack.temp.Abru}]);',...
      'set(findobj(''tag'',''FA''),''visible'',''on'');visual(stack.temp.Abru,''Abru'');']);
   set(vf(5),'string','Bbru','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''B''},{''br''},{stack.temp.Bbru}]);',...
      'set(findobj(''tag'',''FB''),''visible'',''on'');visual(stack.temp.Bbru,''Bbru'');']);
   set(vf(7),'string','Cbru','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''C''},{''br''},{stack.temp.Cbru}]);',...
      'set(findobj(''tag'',''FC''),''visible'',''on'');visual(stack.temp.Cbru,''Cbru'');']);
   set(vf(9),'string','Dbru','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''D''},{''br''},{stack.temp.Dbru}]);',...
      'set(findobj(''tag'',''FD''),''visible'',''on'');visual(stack.temp.Dbru,''Dbru'');']);
   set(vf(11),'string','Tbru','visible','on',...
      'callback',[callb,'set(gcf,''userdata'',[{''T''},{''br''},{stack.temp.Tbru}]);',...
      'set(findobj(''tag'',''FT''),''visible'',''on'');visual(stack.temp.Tbru,''Tbru'');']);
   
   G=pck(stack.general.A,stack.general.B,stack.general.C,stack.general.D);
   [K Kf P ro Tx]=stdc(G,0);
   [rig col]=size(Tx);
   Abru=Tx*stack.general.A*inv(Tx);
   Cbru=stack.general.C*inv(Tx);
   Bbru=Tx*stack.general.B;
   Dbru=stack.general.D;

   stack.temp.Abru=Abru;stack.temp.Bbru=Bbru;
   stack.temp.Cbru=Cbru;stack.temp.Dbru=Dbru;
   stack.temp.Tbru=Tx;
   
   set(vf(2),'visible','on');
   set(gcf,'userdata',[{'A'},{'br'},{stack.temp.Abru}]);
   visual(stack.temp.Abru,'Abru'); 
end;
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -