Code covered by the BSD License  

Highlights from
MIMOtool

image thumbnail

MIMOtool

by

 

12 Nov 2001 (Updated )

Multi Input Multi Output Systems Toolbox

crea_menu.m
function crea_menu;
%CREA_MENU : funzione di creazione di tutti i menu.
% Crea tutti i menu ed i relativi comandi assegnando ad ognuno
% di essi un diverso tag; gli handle di tutti gli oggetti creati
% da questa funzione non vengono inseriti nella variabile globale
% "stack" e quindi sar possibile accedere ad essi soltanto attraverso
% il rispettivo campo tag.
%
% Massimo Davini 12/05/99 revised 18/04/2000

file(1)=uimenu(gcf,'Label','Fi&le','position',1);
drawnow;
tools(1)=uimenu(gcf,'Label','Tool&s','position',2);
drawnow;
view(1)=uimenu(gcf,'Label','Vie&w','position',3,'enable','off');
drawnow;
anal(1)=uimenu(gcf,'Label','A&nalysis','position',4,'enable','off');
drawnow;
synt(1)=uimenu(gcf,'Label','Synt&hesis','position',5,'enable','off');
drawnow;
opti(1)=uimenu(gcf,'Label','0&ptimization','position',6,'enable','off');
drawnow;
eval(1)=uimenu(gcf,'label','Eval&uation','position',7,'enable','off');
drawnow;
simu(1)=uimenu(gcf,'label','Si&mulation','position',8,'enable','off');
drawnow;
help(1)=uimenu(gcf,'Label','?','position',9);
drawnow;

%---------------------
%---comandi menu FILE:
file(2)=uimenu(file(1),'label','Ne&w model',...
   'callback','new0;');
file(3)=uimenu(file(1),'label','Loa&d model',...
   'callback','load_m;');
file(4)=uimenu(file(1),'label','Sa&ve model as ...',...
   'enable','off','callback','save_m;');
file(5)=uimenu(file(1),'label','Load &controller',...
   'separator','on','enable','off','callback','load_reg;');
file(6)=uimenu(file(1),'label','S&ave controller as ...',...
   'enable','off','callback','save_k;');
file(7)=uimenu(file(1),'label','Vie&w on Matlab','separator','on',...
   'enable','off','callback','viewmat(gcf);');
file(8)=uimenu(file(1),'label','Ho&me','separator','on',...
   'callback','gohome;');
file(9)=uimenu(file(1),'label','E&xit','separator','on',...
   'callback','esci;');

for i=1:length(file), set(file(i),'tag',sprintf('file_%u',i)); end;

%----------------------
%---comandi menu TOOLS:
tools(2)=uimenu(tools(1),'label','Ba&lanced Realization');
tools(3)=uimenu(tools(2),'label','with Sys&bal function',...
   'callback','bal_red(1);');
tools(4)=uimenu(tools(2),'label','with Bal&real function',...
   'callback','bal_red(2);');
tools(5)=uimenu(tools(2),'label','with Sys&2sys function',...
   'callback','bal_red(3);');
tools(6)=uimenu(tools(1),'label','Model Re&duction',...
   'separator','on');
tools(7)=uimenu(tools(6),'label','with Min&real function',...
   'callback','bal_red(4);');
tools(8)=uimenu(tools(6),'label','from C&trb/Obsv S.V.',...
   'callback','bal_red(5);');
tools(9)=uimenu(tools(6),'label','from Han&kel S.V',...
   'callback','bal_red(6);');
tools(10)=uimenu(tools(1),'label','Se&t C = I and D = 0',...
   'separator','on','callback','setcd;');

set(tools,'enable','off');

for i=1:length(tools), set(tools(i),'tag',sprintf('tools_%u',i)); end;

%---------------------
%---comandi menu VIEW:
view(2)=uimenu(view(1),'label','System &matrices',...
   'callback','viewform(''System Matrices'');');
view(3)=uimenu(view(1),'separator','on',...
   'label','Con&trollability form',...
   'callback','viewform(''Controllability Form'');');
view(4)=uimenu(view(1),'label','O&bservability form',...
   'callback','viewform(''Observability Form'');');
view(5)=uimenu(view(1),'label','Mo&dal form',...
   'callback','viewform(''Modal Form'');');
view(6)=uimenu(view(1),'label','Com&panion form',...
   'callback','viewform(''Companion Form'');');
view(7)=uimenu(view(1),'label','Jo&rdan form',...
   'callback','viewform(''Jordan Form'');');
view(8)=uimenu(view(1),'label','Ka&lman form',...
   'callback','viewform(''Kalman Form'');');
view(9)=uimenu(view(1),'label','Balanced &realization',...
   'callback','viewform(''Balanced Realization'');');
view(10)=uimenu(view(1),'label','Brunows&ky form',....
   'callback','viewform(''Brunowsky Form'');');

set(view(2:10),'enable','off');

for i=1:length(view), set(view(i),'tag',sprintf('view_%u',i)); end;

%-------------------------
%---comandi menu ANALYSIS:
anal(2)=uimenu(anal(1),'label','System General &info',...
   'callback','ana0;');
anal(3)=uimenu(anal(1),'Separator','on','label','Singular &values',...
   'callback','singval;');
anal(4)=uimenu(anal(1),'label','Po&les and Zeros',...
   'callback','pzmaps;');
anal(5)=uimenu(anal(1),'label','Con&trollability');
anal(6)=uimenu(anal(5),'label','of St&ates',...
   'callback','con_obs_s(''ctrbs'');');
anal(7)=uimenu(anal(5),'label','of P&oles',...
   'callback','con_obs_p(''ctrbp'');');
anal(8)=uimenu(anal(1),'label','O&bservability');
anal(9)=uimenu(anal(8),'label','of St&ates',...
   'callback','con_obs_s(''obsvs'');');
anal(10)=uimenu(anal(8),'label','of P&oles',...
   'callback','con_obs_p(''obsvp'');');
anal(11)=uimenu(anal(1),'label','Relative &degree','separator','on',...
   'callback','degreerel;');
anal(12)=uimenu(anal(1),'label','R&oot locus','Separator','on');
anal(13)=uimenu(anal(1),'label','Ste&p response','separator','on');
anal(14)=uimenu(anal(1),'label','I&mpulse response');
anal(15)=uimenu(anal(1),'label','Bod&e diagrams');
anal(16)=uimenu(anal(1),'label','Ny&quist diagram');

set(anal(2:16),'enable','off');

for i=1:length(anal), set(anal(i),'tag',sprintf('anal_%u',i)); end;

%--------------------------
%---comandi menu SYNTHESIS:

synt(2)=uimenu(synt(1),'label','H - INFINITY',...
'callback','o_feed0(''H - INFINITY'');');
synt(3)=uimenu(synt(1),'label','H - 2',...
'callback','o_feed0(''H - 2'');');
synt(4)=uimenu(synt(1),'label','H - MIX',...
'callback','o_feed0(''H - MIX'');');
synt(5)=uimenu(synt(1),'label','MU',...
'callback','o_feed0(''MU'');');
synt(6)=uimenu(synt(1),'label','LQG',...
'callback','o_feed0(''LQG'');');
synt(7)=uimenu(synt(1),'label','LQG \ LTR',...
'callback','o_feed0(''LQG \ LTR'');');
synt(8)=uimenu(synt(1),'label','PID',...
'callback','o_feed0(''PID'');');
   
synt(9)=uimenu(synt(1),'label','LQR','separator','on',...
'callback','s_feed0(''LQR'');');
synt(10)=uimenu(synt(1),'label','IMFC',...
'callback','s_feed0(''IMFC'');');
synt(11)=uimenu(synt(1),'label','EMFC',...
'callback','s_feed0(''EMFC'');');
synt(12)=uimenu(synt(1),'label','EIG \ ASSIGN',...
'callback','cd eig_ass;ea_0;');
synt(13)=uimenu(synt(1),'label','LQ - SERVO',...
'callback','cd lq_s;lqs_0;');

set(synt(2:13),'enable','off');

for i=1:length(synt), set(synt(i),'tag',sprintf('synt_%u',i)); end;

%-----------------------------
%---comandi menu OPTIMIZATION:
opti(2)=uimenu(opti(1),'label','H - INFINITY',...
'callback','optim0(''H - INFINITY'');');
opti(3)=uimenu(opti(1),'label','H - 2',...
'callback','optim0(''H - 2'');');
opti(4)=uimenu(opti(1),'label','H - MIX',...
'callback','optim0(''H - MIX'');');
opti(5)=uimenu(opti(1),'label','MU',...
'callback','optim0(''MU'');');
opti(6)=uimenu(opti(1),'label','LQG',...
'callback','optim0(''LQG'');');

str=ver('optim');
if isempty(str), set(opti(1),'enable','off'); end;

set(opti(2:6),'enable','off');

for i=1:length(opti), set(opti(i),'tag',sprintf('opti_%u',i)); end;

%---------------------------
%---comandi menu EVALUATION:
eval(2)=uimenu(eval(1),'label','Det(I+GK)=Det(I+KG)',...
   'callback','valuta1(1);');
eval(3)=uimenu(eval(1),'label','Open Loop Response',...
   'callback','valuta1(2);');
eval(4)=uimenu(eval(1),'label','Sensitivity',...
   'callback','valuta1(3);');
eval(5)=uimenu(eval(1),'label','Control Sensitivity',...
   'callback','valuta1(4);');
eval(6)=uimenu(eval(1),'label','Complementary Sensitivity',...
   'callback','valuta1(5);');
eval(7)=uimenu(eval(1),'label','Gain and Phase Margins',...
   'callback','valuta1(6);');
eval(8)=uimenu(eval(1),'label','PZmaps');
eval(9)=uimenu(eval(8),'label','Outputs',...
   'callback','valuta1(7);');
eval(10)=uimenu(eval(8),'label','Inputs',...
   'callback','valuta1(8);');
eval(11)=uimenu(eval(1),'label','Poles Drifting');
eval(12)=uimenu(eval(1),'label','Both sensitivities',...
   'callback','valuta1(10);');
eval(13)=uimenu(eval(1),'label','All sensitivities',...
   'callback','valuta1(11);');
eval(14)=uimenu(eval(1),'label','Graphic Main Results on');
eval(15)=uimenu(eval(14),'label','Po');
eval(16)=uimenu(eval(15),'label','Poles - Zeros',...
   'callback','valuta1(12);');
eval(17)=uimenu(eval(15),'label','Singular values',...
   'callback','valuta1(13);');
eval(18)=uimenu(eval(15),'label','Gramians',...
   'callback','valuta1(14);');
eval(19)=uimenu(eval(15),'label','max( svd(Po) )',...
   'callback','valuta1(15);');
eval(20)=uimenu(eval(14),'label','Pi');
eval(21)=uimenu(eval(20),'label','Poles - Zeros',...
   'callback','valuta1(16);');
eval(22)=uimenu(eval(20),'label','Singular values',...
   'callback','valuta1(17);');
eval(23)=uimenu(eval(20),'label','Gramians',...
   'callback','valuta1(18);');
eval(24)=uimenu(eval(20),'label','max( svd(Pi) )',...
   'callback','valuta1(19);');
eval(25)=uimenu(eval(1),'label','Step Responses of');
eval(26)=uimenu(eval(25),'label','Po',...
   'callback','valuta1(20);');
eval(27)=uimenu(eval(25),'label','Pi',...
   'callback','valuta1(21);');
eval(28)=uimenu(eval(1),'label','Text Main Results of');
eval(29)=uimenu(eval(28),'label','Po',...
   'callback','valuta1(22);');
eval(30)=uimenu(eval(28),'label','Pi',...
   'callback','valuta1(23);');
eval(31)=uimenu(eval(1),'label','O&pen Evaluation Window',...
   'callback','valuta;','separator','on');
%(aggiunti in seguito)
eval(32)=uimenu(eval(11),'label','Graphic',...
   'callback','valuta1(9);');
eval(33)=uimenu(eval(11),'label','Values',...
   'callback','valuta1(24);');

set(eval(2:33),'enable','off');

for i=1:length(eval), set(eval(i),'tag',sprintf('eval_%u',i)); end;

%---------------------------
%---comandi menu SIMULATION:
simu(2)=uimenu(simu(1),'label','O&pen Simulink Model',...
   'enable','off','callback','simula;');

for i=1:length(simu), set(simu(i),'tag',sprintf('simu_%u',i)); end;

%---------------------
%---comandi menu HELP:
help(2)=uimenu(help(1),'label','Help on &context',...
   'callback','helppage;');
help(3)=uimenu(help(1),'label','Help Des&k',...
   'callback',['! ' which('helpdeskmvt.htm')]);
help(4)=uimenu(help(1),'label','A&bout MIMOtool','separator','on',...
   'callback','info;');

for i=1:length(help), set(help(i),'tag',sprintf('help_%u',i)); end;

Contact us