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

📄 ana_syn.m

📁 vTools is a toolbox for Matlab 5.3 developed within the Department of Electrical Systems and A
💻 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 + -