Escolar Documentos
Profissional Documentos
Cultura Documentos
RESPOSTAS
Listagem do Programa
clear figure(1); set(1,'Position',[5 151 397 386]) clg; figure(2); set(2,'Position',[412 149 378 389]) clg; % **** Modelo do Processo Variando o Fator de Amortecimento **** % 2 % Wn % G(s) = -----------------------------------% 2 2 2 % Tau * s + 2 * Zeta * Tau * s + Wn zeta = [0.1 0.2 0.3 0.5 0.7 1.0]; Wn = 5; Tau = 1;
[l,c] = size(zeta); % **** Construcao do Diagrama de Bode para um Processo de 2a Ordem **** for i = 1:c num = Wn^2; den = [Tau^2 2*zeta(i)*Tau Wn^2]; figure(1) bode(num,den); subplot(211); str = sprintf('Funcao de 2a Ordem - Zeta = %g',zeta(i)); title(str); axis([1 10 -10 30]) figure(2) hold on bode(num,den); subplot(211) str = sprintf('Funcao de 2a Ordem - Zeta = %g a %g',zeta(1),zeta(c)); title(str); axis([1 10 -10 30]) subplot(212) axis([1 10 -200 0]) hold off pause(2); end % **** Construcao do Diagrama de Nyquist para um Processo de 2a Ordem **** figure(1) clg figure(2) clg for i = 1:c num = Wn^2; den = [Tau^2 2*zeta(i)*Tau Wn^2]; figure(1) nyquist(num,den); str = sprintf('Funcao de 2a Ordem - Zeta = %g',zeta(i)); title(str); figure(2) hold on nyquist(num,den); str = sprintf('Funcao de 2a Ordem - Zeta = %g a %g',zeta(1),zeta(c)); title(str); hold off pause(2); end
RESPOSTAS Variando Kp
K p = 01 0.5 10 15 2.0 . . .
Variando Kp
Listagem do Programa
clear figure(1); set(1,'Position',[5 151 397 386]) clg; figure(2); set(2,'Position',[412 149 378 389]) clg; % **** Faixa de Frequencia **** w = 0.01:0.1:10; % **** Modelo do Processo Variando o Ganho e a Constante de Tempo **** % Kp % G(s) = ------------% Tau * s + 1 Kp = [0.1 0.5 1.0 1.5 2.0]; Tau = [1.0 2.0 3.0 4.0 5.0]; [l,ck] = size(Kp); [l,ct] = size(Tau); figure(1); % **** Construcao do Diagrama de Bode para um Processo de 1a Ordem **** % Variando Kp e mantendo Tau = 1 for i = 1:ck num = Kp(i); den = [1 1]; bode(num,den,w); subplot(211); str = sprintf('Funcao de 1a Ordem - Kp = %g & Tau = 1',Kp(i)); title(str); axis([0.1 10 -40 10]); pause(2); end figure(2); % **** Construcao do Diagrama de Bode para um Processo de 1a Ordem **** % Variando Tau e mantendo Kp = 1 for i = 1:ct num = 1; den = [Tau(i) 1];
4
bode(num,den,w); subplot(211); str = sprintf('Funcao de 1a Ordem - Kp = 1 & Tau = %g',Tau(i)); title(str); axis([0.1 10 -40 10]); pause(2); end % **** Construcao do Diagrama de Nyquist para um Processo de 1a Ordem **** % Variando Kp e mantendo Tau = 1 figure(1); clg hold on for i = 1:ck num = Kp(i); den = [1 1]; nyquist(num,den); str = sprintf('Funcao de 1a Ordem - Kp = %g & Tau = 1',Kp(i)); title(str); pause(2); end axis([0 2 -1 1]) grid % **** Construcao do Diagrama de Nyquist para um Processo de 1a Ordem **** % Variando Tau e mantendo Kp = 1 figure(2); clg hold on for i = 1:ct num = 1; den = [Tau(i) 1]; nyquist(num,den); str = sprintf('Funcao de 1a Ordem - Kp = 1 & Tau = %g',Tau(i)); title(str); pause(2); end grid
b)
Sistema de 1 a ordem:
G ( s) = 1 5s + 1
c)
d)
Sistema de 2 a ordem:
G ( s) = 1 4s + s + 1
2
RESPOSTAS
a)
b)
Sistema de 1 a ordem:
d)
Sistema de 2 a ordem:
Listagem do Programa
clear figure(1); set(1,'Position',[5 151 397 386]) clg; figure(2); set(2,'Position',[412 149 378 389]) clg; % **** Faixa de Frequencia **** w = 0.01:0.01:10; % **** Modelo do Processo com Tempo Morto **** % -s % G(s) = e [num,den] = pade(1,4); % **** Diagrama de Bode do Processo com Tempo Morto **** figure(1) bode(num,den,w); subplot(211); axis([0.01 10 -50 10]); title('Tempo Morto - Teta = 1 '); subplot(212); axis([0.01 10 -400 0]); figure(2) nyquist(num,den); title('Tempo Morto - Teta = 1 '); grid disp('Digite qualquer tecla'); pause; % **** Modelo do Processo de 1a Ordem **** % 1 % G(s) = -------% 5s + 1 num = 1; den = [5 1]; % **** Diagrama de Bode do Processo de 1a Ordem **** figure(1) bode(num,den,w); subplot(211); axis([0.01 10 -30 0]); title('Funcao de 1a Ordem - G(s) = 1 / (5s + 1) '); subplot(212); axis([0.01 10 -90 0]); figure(2) nyquist(num,den); title('Funcao de 1a Ordem - G(s) = 1 / (5s + 1) '); grid disp('Digite qualquer tecla'); pause; % **** Modelo do Processo de 1a Ordem com Tempo Morto ****
8
% -s % e % G(s) = -------% 5s + 1 [num1,den1] = pade(0.2,4); num2 = 1; den2 = [5 1]; [num,den] = series(num1,den1,num2,den2); % **** Diagrama de Bode do Processo de 1a Ordem com Tempo Morto **** figure(1) bode(num,den,w); subplot(211); axis([0.01 10 -50 10]); title('Funcao 1a Ordem c/ T.Morto - G(s)=e^(-0.2s)/(5s + 1)'); subplot(212); axis([0.01 10 -400 0]); figure(2) nyquist(num,den); title('Funcao 1a Ordem c/ T.Morto - G(s)=e^(-0.2s)/(5s + 1)'); grid disp('Digite qualquer tecla'); pause; % **** Modelo do Processo de 2a Ordem **** % 1 % G(s) = -----------% 2 % 4s + s + 1 num = 1; den = [4 2*2*0.25 1]; % **** Diagrama de Bode do Processo de 2a Ordem **** figure(1) bode(num,den,w); subplot(211); axis([0.01 10 -50 30]); title('Funcao de 2a Ordem - G(s) = 1 / (4s^2 + s + 1) '); figure(2) nyquist(num,den); title('Funcao de 2a Ordem - G(s) = 1 / (4s^2 + s + 1) '); grid
a) b) c) d)
Controlador proporcional (P) Controlador proporcional-Integral (PI) Controlador proporcional-Derivativo (PD) Controlador proporcional-Integral-Derivativo (PID)
10
Listagem do Programa
11
clear figure(1); set(1,'Position',[5 151 397 386]) clg; figure(2); set(2,'Position',[412 149 378 389]) clg; % **** Faixa de Frequencia **** w = 0.01:0.01:10; % **** Parametros do Controlador **** Kc = 5; Ti = 2; Td = 3; % **** Diagrama de Bode do Controlador P **** % Gc(s) = Kc num = Kc; den = 1; figure(1) bode(num,den,w); subplot(211); str = sprintf('Controlador P - Kc = %g',Kc); title(str); subplot(212); figure(2) nyquist(num,den); title(str); grid disp('Digite qualquer tecla'); pause;
% Ti * s % ou % Ti*s + 1 % Gc(s) = Kc * ( ---------- ) % Ti * s num = Kc*[Ti 1]; den = [Ti 0]; figure(1) bode(num,den,w); subplot(211); str = sprintf('Controlador PI - Kc = %g e Ti = %g',Kc,Ti); title(str); subplot(212); figure(2) nyquist(num,den); title(str); grid disp('Digite qualquer tecla'); pause; % **** Diagrama de Bode do Controlador PD **** % Gc(s) = Kc * ( 1 + Td * s ) % % ou % Td*s + 1 % Gc(s) = Kc * ( ---------- ) % 1 num = Kc*[Td 1]; den = 1; figure(1) bode(num,den,w); subplot(211); str = sprintf('Controlador PD - Kc = %g e Td = %g',Kc,Td); title(str); subplot(212); %figure(2) %nyquist(num,den); %title(str); %grid disp('Digite qualquer tecla'); pause; % **** Diagrama de Bode do Controlador PID ****
13
% 1 % Gc(s) = Kc * ( 1 + ------- + Td * s ) % Ti * s % ou % 2 % Td*Ti*s + Ti*s + 1 % Gc(s) = Kc * ( --------------------- ) % Ti * s num = Kc*[Td*Ti Ti 1]; den = [Ti 0]; figure(1) bode(num,den,w); subplot(211); str = sprintf('Controlador PID - Kc = %g , Ti = %g e Td = %g',Kc,Ti,Td); title(str); figure(2) nyquist(num,den); title(str); grid
14
Pico de Ressonncia (Mp) Freqncia de Ressonncia (Wp) Mdulo de Passagem (MBW) Faixa de Passagem (BW)
Listagem do Programa
15
clear figure(1); set(1,'Position',[5 151 397 386]) clg; % **** Faixa de Frequencia **** w = 0.01:0.01:10; % **** Modelo do Processo de 2a Ordem **** % 1 % G(s) = -----------% 2 % 4s + s + 1 num = 1; den = [4 2*2*0.25 1]; bode(num,den,w); subplot(211); axis([0.01 10 -50 30]); title('Funcao de 2a Ordem - G(s) = 1 / (4s^2 + s + 1) '); % **** Performance no Dominio da Frequencia **** [M,PHI,W] = bode(num,den,w); [Mp,i] = max(M); strMp = sprintf('Pico de Ressonancia (Mp) = %g ',Mp); Wp = W(i); strWp = sprintf('Frequencia de Ressonancia (Wp) = %g ',Wp); MdB = 20*log10(M); iBW=min(find(MdB<-2.9)); BW = W(iBW); strMBW = sprintf('Modulo de Passagem (MBW) = %g ',M(iBW)); strBW = sprintf('Faixa de Passagem (BW) = %g ',BW); clc disp(' '); disp(strMp); disp(strWp); disp(strMBW); disp(strBW);
16