% % SEM 5928 - Sistemas de Controle % Escola de Engenharia de São Carlos - USP % % Adriano Siqueira - 2016 % clear all close all %create graphic interface graph_interface = figure(... 'Unit','normalized',... 'NextPlot','add',... 'Visible','on',... 'NumberTitle','off',... 'Position',[0.01 0.1 0.95 0.8]); set(0,'Current',graph_interface); % the axis named 'movie' shows the motion of the manipulator movie_axis = axes(... 'Units','normalized',... 'Position',[.07 .25 0.4 .7],... 'XGrid','on',... 'YGrid','on'); xlabel('Tempos (s)'); ylabel('y(t)'); movie_axis2 = axes(... 'Units','normalized',... 'Position',[.54 .35 0.4 .6],... 'XGrid','on',... 'YGrid','on'); xlabel('Parte Real'); ylabel('parte Imaginaria'); % button to start the simulation uiStart = uicontrol(... 'Style','slider',... 'Units','normalized',... 'Position',[0.52 0.21 0.45 0.03],... 'Interruptible','on',... 'Max',50,... 'Min',0,... 'Value',10,... 'SliderStep',[.02 0.02],... 'Callback','Aula2_Exemplo2_update'); uitext = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.72 0.245 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','M = '); uitextM = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.74 0.245 0.1 0.03],... 'HorizontalAlignment','left',... 'String','10'); uitext = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.52 0.245 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','0'); uitext = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.95 0.245 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','50'); lim1=50; uiStart1 = uicontrol(... 'Style','slider',... 'Units','normalized',... 'Position',[0.52 0.13 0.45 0.03],... 'Interruptible','on',... 'Max',lim1,... 'Min',0,... 'Value',10,... 'SliderStep',[.002 0.002],... 'Callback','Aula2_Exemplo2_update'); uitext = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.72 0.16 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','B = '); uitextB = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.74 0.16 0.1 0.03],... 'HorizontalAlignment','left',... 'BackgroundColor',[.8 .8 .8],... 'String','10'); uitext1 = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.52 0.16 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','0'); uitext1 = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.95 0.16 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String',num2str(lim1)); uiStart2 = uicontrol(... 'Style','slider',... 'Units','normalized',... 'Position',[0.52 0.05 0.45 0.03],... 'Interruptible','on',... 'Max',200,... 'Min',0,... 'Value',100,... 'SliderStep',[.002 0.002],... 'Callback','Aula2_Exemplo2_update'); uitext = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.72 0.08 0.03 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','K = '); uitextK = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.75 0.08 0.1 0.03],... 'BackgroundColor',[.8 .8 .8],... 'HorizontalAlignment','left',... 'String','100'); uitext2 = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.52 0.08 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','0'); uitext2 = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.95 0.08 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','200'); uitext2 = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.12 0.08 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','wn = '); uitext2 = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.35 0.08 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String','zeta = '); %Leitura dos parâmetros M = get(uiStart,'Value'); B = get(uiStart1,'Value'); K = get(uiStart2,'Value'); wn=sqrt(K/M); zeta=B/(2*sqrt(K*M)); uitextwn = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.15 0.08 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String',num2str(wn,2)); uitextzeta = uicontrol(... 'Style','text',... 'Units','normalized',... 'Position',[0.38 0.08 0.02 0.03],... 'BackgroundColor',[.8 .8 .8],... 'String',num2str(zeta,2)); % *** Função transferencia G(s)=1/(ms^2+bs+k)*** num=[K/M]; den=[1 B/M K/M]; G = tf(num,den); [y,t] = step(G,5); set(graph_interface,'CurrentAxes',movie_axis); plot(t,y) %axis([0 .1 0 max(y)]) grid xlabel('Tempos (s)'); ylabel('y(t)'); axis([0 5 0 2]) set(graph_interface,'CurrentAxes',movie_axis2); pzmap(G) xlabel('Parte Real'); ylabel('Parte Imaginaria'); grid axis([-20 1 -10 10])