Code covered by the BSD License  

Highlights from
MIMOtool

image thumbnail

MIMOtool

by

 

12 Nov 2001 (Updated )

Multi Input Multi Output Systems Toolbox

back_section.m
function back_section(from,to)
%BACK FROM SECTION from TO SECTION to
%
%      back_section(from,to)
%
%Massimo Davini 13/05/99 --- revised 28/09/99

global stack;

switch from
   
 case 'synthesis'
  delete(findobj('tag','syn0'));
  set(findobj('tag','file_5'),'enable','off');
  set(findobj('tag','file_6'),'enable','off');
  
  for i=2:13,set(findobj('tag',sprintf('synt_%u',i)),'enable','off');end;
  for i=2:6,set(findobj('tag',sprintf('opti_%u',i)),'enable','off');end;
      
 case 'analysis'      
  delete(findobj('tag','ana0'));
  for i=2:54,set(findobj('tag',sprintf('view_%u',i)),'enable','off');end;
  for i=2:16,set(findobj('tag',sprintf('anal_%u',i)),'enable','off');end;

end;

drawnow;

switch to
    
 case 'modeling' 
  stack.general=rmfield(stack.general,'tfNUM');
  stack.general=rmfield(stack.general,'tfDEN');

  %-----------------------------------------------------------
  %abilitazione e disabilitazione comandi della barra dei men
   set(findobj('tag','tools_1'),'enable','on');
   set(findobj('tag','view_1'),'enable','off');
   set(findobj('tag','anal_1'),'enable','off');
   set(findobj('tag','synt_1'),'enable','off');
   set(findobj('tag','opti_1'),'enable','off');
   set(findobj('tag','eval_1'),'enable','off');
   set(findobj('tag','simu_1'),'enable','off');
  %-----------------------------------------------------------
  delete(findobj('tag','cascade'));drawnow;

      
  set(findobj('tag','file_2'),'enable','on');
  set(findobj('tag','file_3'),'enable','on');
  set(findobj('tag','file_5'),'enable','on');
  for i=1:9,set(findobj('tag',sprintf('tools_%u',i)),'enable','on');end;
  
  C=stack.general.C;D=stack.general.D;
  if C==eye(size(C))
    if D==zeros(size(D))
      set(findobj('tag','tools_10'),'enable','off');
    end;
  else set(findobj('tag','tools_10'),'enable','on');
  end;

  set(gcf,'Name',sprintf(' MIMO Tool : MODELING %s',stack.general.model));

  set(findobj('tag','bottA'),'visible','on');
  set(findobj('tag','bottB'),'visible','on');
  set(findobj('tag','bottC'),'visible','on');
  set(findobj('tag','bottD'),'visible','on');
  set(findobj('tag','bottNew'),'visible','on');
  set(findobj('tag','bottLoad'),'visible','on');
  set(findobj('tag','BottAna'),'visible','on');
  set(findobj('tag','BottSyn'),'visible','on');
      
case 'analysis' 

   set(gcf,'Name',sprintf(' MIMO Tool : ANALYSIS %s',stack.general.model));
   set(findobj('tag','ana0'),'visible','on');
   
  %-----------------------------------------------------------
  %abilitazione e disabilitazione comandi della barra dei men
   set(findobj('tag','tools_1'),'enable','off');
   set(findobj('tag','view_1'),'enable','on');
   set(findobj('tag','anal_1'),'enable','on');
   set(findobj('tag','synt_1'),'enable','off');
   set(findobj('tag','opti_1'),'enable','off');
   set(findobj('tag','eval_1'),'enable','off');
   set(findobj('tag','simu_1'),'enable','off');
  %-----------------------------------------------------------
  
  for i=1:10,set(findobj('tag',sprintf('view_%u',i)),'enable','on');end;
   
  A=stack.general.A;B=stack.general.B;
  C=stack.general.C;D=stack.general.D;
  
  [ns,ns]=size(A);[no,ni]=size(D);
  %la forma compagna esiste se  controllabile con il 1 ingresso
  if rank(ctrb(A,B(:,1)))<ns , set(findobj('tag','view_6'),'enable','off'); end;

  %il calcolo della forma di jordan  affidabile se max(ns)=7
  if ns>8 set(findobj('tag','view_7'),'enable','off');end;
   
  %per la forma di Brunowsky Tx (vedi stdc.m) deve essere quadrata
  G=pck(A,B,C,D); [K Kf P ro Tx]=stdc(G,0); [rig col]=size(Tx);
  if rig~=col set(findobj('tag','view_10'),'enable','off');end;
   
  for i=1:54,set(findobj('tag',sprintf('anal_%u',i)),'enable','on');end;
   
  %per limitazioni grafiche,relative degree  disabilitato se ni>12
  if ni>12 set(findobj('tag','anal_11'),'enable','off');end;
      
end;

Contact us