📄 ana_syn.m
字号:
function ana_syn(indice)
% Creazione della finestra principale di ANALYSIS e SYNTHESIS
% (callback dei relativi bottoni)
%
% ana_syn(indice)
%
% indice = 1 visualizza la main analysis window
% indice = 2 visualizza la main synthesis window
%
% Massimo Davini 07/05/99 --- revised 23/03/00
global stack;
%chiusura della,eventuale,finestra si simulazione
if ~isempty(find_system('name','Closed_Loop_System'))
close_system('Closed_Loop_System',0);
end;
%eliminazione dei campi text relativi ai coefficienti di una matrice
delete(findobj('tag','matrice'));drawnow;
%devisualizzazione bottoni delle matrici e relative frames
set(findobj('tag','FrameA'),'visible','off');
set(findobj('tag','FrameB'),'visible','off');
set(findobj('tag','FrameC'),'visible','off');
set(findobj('tag','FrameD'),'visible','off');
set(findobj('tag','bottA'),'visible','off');
set(findobj('tag','bottB'),'visible','off');
set(findobj('tag','bottC'),'visible','off');
set(findobj('tag','bottD'),'visible','off');
set(findobj('tag','bottNew'),'visible','off');
set(findobj('tag','bottLoad'),'visible','off');
set(findobj('tag','BottAna'),'visible','off');
set(findobj('tag','BottSyn'),'visible','off');
drawnow;
%aggiornamento menus file, tools, evaluation e simulation
set(findobj('tag','file_2'),'enable','off');
set(findobj('tag','file_3'),'enable','off');
set(findobj('tag','file_5'),'enable','off');
set(findobj('tag','file_6'),'enable','off');
set(findobj('tag','file_7'),'enable','off');
set(get(findobj('tag','tools_1'),'children'),'enable','off');
set(get(findobj('tag','tools_2'),'children'),'enable','off');
set(get(findobj('tag','tools_6'),'children'),'enable','off');
set(get(findobj('tag','eval_1'),'children'),'enable','off');
set(findobj('tag','simu_2'),'enable','off');
stack.evaluation=[]; stack.simulation=[];
A=stack.general.A; B=stack.general.B;
C=stack.general.C; D=stack.general.D;
[ns ns]=size(A);[no ni]=size(D);
Num=[];
for i=1:ni ,[num,Den]=ss2tf(A,B,C,D,i);Num=[Num;num]; end;
stack.general.tfNUM=Num;
stack.general.tfDEN=Den;
%creazione comandi del menu Analisis che dipendono
%dal numero dei canali del sistema
crea_cascade(ni,no,'anal_12','responses','Rlocus');
crea_cascade(ni,no,'anal_13','responses','Step');
crea_cascade(ni,no,'anal_14','responses','Impulse');
crea_cascade(ni,no,'anal_15','responses','Bode');
crea_cascade(ni,no,'anal_16','responses','Nyquist');
sys=pck(A,B,C,D);
[ss0,su0]=sdecomp(sys,-1e-12);
[tyu,nou,niu,nsu]=minfo(su0);
[P,Z]=pzmap(A,B,C,D);epz=length(P)-length(Z);
rangoc=rank(ctrb(A,B));rangoo=rank(obsv(A,C));
r=ns;
sizetext=0.8;sizeris=.6;
sizetext=0.6;sizeris=.6;
a(1)=uicontrol('style','frame',...
'unit','normalized','position',[0.05 0.32 0.9 0.53],...
'backgroundcolor',[1 1 1],'tag','ana0','visible','off');
a(2)=uicontrol('style','text',...
'unit','normalized','position',[0.07 0.77 0.3 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','left',...
'string','DIMENSIONS','visible','off','tag','ana0');
if no==1 str1='1 output'; else str1=sprintf('%u outputs',no);end;
if ni==1 str2='1 input'; else str2=sprintf('%u inputs',ni);end;
if ns==1 str3='1 state'; else str3=sprintf('%u states',ns);end;
str=sprintf('%s , %s , %s',str1,str2,str3);
a(3)=uicontrol('style','text',...
'unit','normalized','position',[0.38 0.77 0.55 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','right',...
'string',str,'foregroundcolor','red','visible','off','tag','ana0');
%---
a(4)=uicontrol('style','text','unit','normalized','position',[0.07 0.735 0.86 0.03],...
'fontunits','normalized','fontsize',sizeris,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','left','tag','ana0','visible','off',...
'string','-----------------------------------------------------------------------------------------------------------------------------------------------------');
%---
a(5)=uicontrol('style','text','unit','normalized','position',[0.07 0.67 0.45 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','left','tag','ana0',...
'string','CONTROLLABILITY','visible','off');
a(6)=uicontrol('style','text','unit','normalized','position',[0.53 0.67 0.4 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','right','tag','ana0',...
'foregroundcolor','red','visible','off');
if rangoc==ns set(a(6),'string','complete');
else set(a(6),'string',sprintf('rank(ctrb(A,B)) = %u',rangoc));
end;
%---
a(7)=uicontrol('style','text','unit','normalized','position',[0.07 0.6 0.45 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','left','tag','ana0',...
'string','OBSERVABILITY','visible','off');
a(8)=uicontrol('style','text','unit','normalized','position',[0.53 0.6 0.4 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','right','tag','ana0',...
'foregroundcolor','red','visible','off');
if rangoo==ns set(a(8),'string','complete');
else set(a(8),'string',sprintf('rank(obsv(A,C)) = %u',rangoo));
end;
%---
a(9)=uicontrol('style','text','unit','normalized','position',[0.07 0.565 0.86 0.03],...
'fontunits','normalized','fontsize',sizeris,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','left','tag','ana0','visible','off',...
'string','-----------------------------------------------------------------------------------------------------------------------------------------------------');
%---
a(10)=uicontrol('style','text','unit','normalized','position',[0.07 0.5 0.45 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','left','tag','ana0',...
'string','UNSTABLE PART','visible','off');
if nsu==1 str='1 state';else str=sprintf('%u states',nsu);end;
a(11)=uicontrol('style','text','unit','normalized','position',[0.53 0.5 0.4 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','right','tag','ana0',...
'string',str,'visible','off','foregroundcolor','red');
%---
a(12)=uicontrol('style','text','unit','normalized','position',[0.07 0.43 0.4 0.05],...
'fontunits','normalized','fontsize',sizetext,'fontweight','bold',...
'backgroundcolor',[1 1 1],'Horizontalalignment','left','tag','ana0',...
'string','n
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -