pratica08 - controle clássico

Download Pratica08 - Controle Clássico

If you can't read please download the document

Upload: cddsa

Post on 25-Dec-2015

216 views

Category:

Documents


1 download

DESCRIPTION

Programa Matlab - Código Aula 8 - Controle Clássico

TRANSCRIPT

%% % Clara D. % ECA004 - Sistemas de Controle Clssico% Prtica 08 - Data 16/10% Turma P2%% Exercicio 2.1np = 10000; % numerador plantadp = [1 8 100 0]; % denominador plantaGp = tf(np,dp) % funo de transferncia da plantanh = 0.02; % numerador sensordh = [0.001 1]; % denominador sensorH = tf(nh,dh) % funo de transfncia do sensor% Calculo para Zeta% 1 >= zeta = zeta c = sqrt((ln(Mep))/(ln(Mep)+pi))% Mep = 0.05% zeta >= zeta c = 0.476zeta = 0.8 % valor de zeta, escolhido% Calculo para omegan% Ta = 2% Ta = 4/(zeta*omegan)% omega >= omega c = 4/(zeta*Ta)% omegan >= omegan c = 2.5omegan = 3 % valor de omegan, escolhidos1 = - zeta*omegan + j*omegan*sqrt(1-zeta^2); % polos especificados % Lugar das Raizes de 1+K*Gp(s)*H(s)=0:figure(1)rlocus(series(Gp,H))xlabel('Re(s)')ylabel('Im(s)')title('Lugar das Razes')hold onplot(real(s1),imag(s1),'d')sgrid(zeta,omegan)% s1 no pertence ao Lugar das Razes:GPH=@(s) 1/(s^3+8*s^2+100*s);K1=-1/GPH(s1)% ru (t) = 0.5u(t) % Clculo dos parmetros do controladorsM=abs(s1)beta=angle(s1)M=abs(GPH(s1))psi=angle(GPH(s1))a0=20; % valor escolhido segundo o critrio de erroa1=(sin(beta)+a0*M*sin(beta-psi))/(sM*M*sin(psi))b1=-(sin(beta+psi)+a0*M*sin(beta))/(sM*sin(psi))% Funo de transferncia do controladornc=[a1 a0]dc=[b1 1]Gc=tf(nc,dc)GRD=series(Gc,Gp)GMA=series(GRD,H)T=feedback(GRD,H)% Lugar das Razes de GMAfigure(2)rlocus(GMA)xlabel('Re(s)')ylabel('Im(s)')title('Lugar das Razes')hold onplot(real(s1),imag(s1),'d')sgrid(zeta,omegan)% Clculo dos polos e zeros da funo de transferncia em malha fechadap=pole(T)z=zero(T)% Resposta a rampa unitrio de s->Gp(s) e a resposta de s->T(s) a% s->Ru(s)=0.5/s^2:figure(3)[c,t]=step(Gp);S=stepinfo(Gp)figure(3)plot(t,c)xlabel('t')ylabel('c')title('Resposta ao degrau unitrio G_P(s)')figure(4)t=0:0.001:5;ru=1+0*t;[y,t]=lsim(T,ru,t);plot(t,y,'r')xlabel('t')ylabel('y')title('Resposta de T(s) ao degrau R_u(s)')S=lsiminfo(y,t)OverShoot=(S.Max-y(length(t)))*100/y(length(t))Erro=50-y(length(t))% Obtendo o numerador e o denominador da funo de transferncia T[NT,DT]=tfdata(T,'v') % Sinal de Referncia s->Ru(s)S=lsiminfo(y,t)A = 0.5;[y,t]=step(A*NT,DT)[y,t]=step(A*NT,[DT 0])[y,t]=step(A*NT,[DT 0])t=0:0.001:10;[y,t]=step(tf(0.5333*NT,DT),t);plot(t,y,'r')xlabel('t')ylabel('y')title('Resposta de T(s) ao degrau R_u(s)')%% Exerccio 3.1% s -> Gp(s) = Y(s)/U(s)=2500(s+2)/(s+4s+29s+50) [C/V]% s -> H(s) = B(s)/Y(s) = 0,2/(0.005s + 1) [V/C]clear all;% Funo de transferncia do processoNP = [2500 5000];DP = [1 4 29 50];GP = tf(NP, DP)% Funo de transferncia do sensorNH=0.2;DH=[0.005 1];H=tf(NH,DH)% Calculo para Zeta% 1 >= zeta = zeta c = sqrt((ln(Mep))/(ln(Mep)+pi))% Mep = 0.01% zeta >= zeta c = 0.0952zeta = 0.4 % valor de zeta, escolhido% Calculo para omegan% Ta = 3% Ta = 4/(zeta*omegan)% omega >= omega c = 4/(zeta*Ta)% omegan >= omegan c = 3.33omegan = 3 % valor de omegan, escolhido% Polos especificadoss1=-zeta*omegan+j*omegan*sqrt(1-zeta^2)% Lugar das Razes de GHfigure(5)rlocus(series(GP,H))xlabel('Re(s)')ylabel('Im(s)')title('Lugar das Razes')hold onplot(real(s1),imag(s1),'d')sgrid(zeta,omegan)GPH=@(s) 1/(s^3+4*s^2+29*s+50);K1=-1/GPH(s1)% Clculo dos parmetros do controladorsM=abs(s1)beta=angle(s1)M=abs(GPH(s1))psi=angle(GPH(s1))KI=5;KP=-sin(beta+psi)/(M*sin(beta))-2*KI*cos(beta)/sMKD=sin(psi)/(sM*M*sin(beta))+KI/sM^2% Funo de transferncia do controladorNC=[KD KP KI];DC=[1 0]GC=tf(NC,DC)GRD=series(GC,GP)GMA=series(GRD,H)T=feedback(GRD,H)% Lugar das Razes de GMAfigure(6)rlocus(GMA)xlabel('Re(s)')ylabel('Im(s)')title('Lugar das Razes')hold onplot(real(s1),imag(s1),'d')sgrid(zeta,omegan)% Clculo dos polos e zeros da funo de transferncia em malha fechadap=pole(T)z=zero(T)figure(7)[c,t]=step(GP)S=stepinfo(GP)figure(8)plot(t,c)xlabel('t')ylabel('c')title('Resposta ao degrau unitrio G_P(s)')figure(9)t=0:0.001:10;ru=2+0*t;[y,t]=lsim(T,ru,t);plot(t,y,'r')xlabel('t')ylabel('y')title('Resposta de T(s) ao degrau R_u(s)')S=lsiminfo(y,t)OverShoot=(S.Max-y(length(t)))*100/y(length(t))Erro=50-y(length(t))% Obtendo o numerador e o denominador da funo de transferncia T[NT,DT]=tfdata(T,'v') %% Exerccio 3.2% s -> Gp(s) = Y(s)/U(s)=2500(s+2)/(s+4s+29s+50) [C/V]% s -> H(s) = B(s)/Y(s) = 0,2/(0.005s + 1) [V/C]clear all;% Funo de transferncia do processoNP = [2500 5000];DP = [1 4 29 50];GP = tf(NP, DP)% Funo de transferncia do sensorNH=0.2;DH=[0.005 1];H=tf(NH,DH)% Calculo para Zeta% 1 >= zeta = zeta c = sqrt((ln(Mep))/(ln(Mep)+pi))% Mep = 0.01% zeta >= zeta c = 0.0952zeta = 0.4 % valor de zeta, escolhido% Calculo para omegan% Ta = 3% Ta = 4/(zeta*omegan)% omega >= omega c = 4/(zeta*Ta)% omegan >= omegan c = 3.33omegan = 3 % valor de omegan, escolhido% Polos especificadoss1=-zeta*omegan+j*omegan*sqrt(1-zeta^2)% Lugar das Razes de GHfigure(5)rlocus(series(GP,H))xlabel('Re(s)')ylabel('Im(s)')title('Lugar das Razes')hold onplot(real(s1),imag(s1),'d')sgrid(zeta,omegan)GPH=@(s) 0.2/(0.005*s + 1);K1=-1/GPH(s1)% Clculo dos parmetros do controladorsM=abs(s1)beta=angle(s1)M=abs(GPH(s1))psi=angle(GPH(s1))KI=5;KP=-sin(beta+psi)/(M*sin(beta))-2*KI*cos(beta)/sMKD=sin(psi)/(sM*M*sin(beta))+KI/sM^2% Funo de transferncia do controladorNC=[KD KP KI];DC=[1 0]GC=tf(NC,DC)GRD=series(GC,GP)GMA=series(GRD,H)T=feedback(GRD,H)% Lugar das Razes de GMAfigure(6)rlocus(GMA)xlabel('Re(s)')ylabel('Im(s)')title('Lugar das Razes')hold onplot(real(s1),imag(s1),'d')sgrid(zeta,omegan)% Clculo dos polos e zeros da funo de transferncia em malha fechadap=pole(T)z=zero(T)figure(7)[c,t]=step(H)S=stepinfo(H)figure(8)plot(t,c)xlabel('t')ylabel('c')title('Resposta ao degrau unitrio G_P(s)')figure(9)t=0:0.001:10;ru=2+0*t;[y,t]=lsim(T,ru,t);plot(t,y,'r')xlabel('t')ylabel('y')title('Resposta de T(s) ao degrau R_u(s)')S=lsiminfo(y,t)OverShoot=(S.Max-y(length(t)))*100/y(length(t))Erro=50-y(length(t))% Obtendo o numerador e o denominador da funo de transferncia T[NT,DT]=tfdata(T,'v') %% Exercicio 3.3% s -> Gp(s) = Y(s)/U(s)=10000/(s+8s+100s) [C/V]% s -> H(s) = B(s)/Y(s) = 0,2/(0.001s + 1) [V/C]clear all;% Funo de transferncia do processoNP = [10000];DP = [1 8 100 0];GP = tf(NP, DP)% Funo de transferncia do sensorNH=0.2;DH=[0.001 1];H=tf(NH,DH)% Calculo para Zeta% 1 >= zeta = zeta c = sqrt((ln(Mep))/(ln(Mep)+pi))% Mep = 0.05% zeta >= zeta c = 0.476zeta = 0.8 % valor de zeta, escolhido% Calculo para omegan% Ta = 2% Ta = 4/(zeta*omegan)% omega >= omega c = 4/(zeta*Ta)% omegan >= omegan c = 2.5omegan = 3 % valor de omegan, escolhidos1 = - zeta*omegan + j*omegan*sqrt(1-zeta^2); % polos especificados % Polos especificadoss1=-zeta*omegan+j*omegan*sqrt(1-zeta^2)% Lugar das Razes de GHfigure(10)rlocus(series(GP,H))xlabel('Re(s)')ylabel('Im(s)')title('Lugar das Razes')hold onplot(real(s1),imag(s1),'d')sgrid(zeta,omegan)GPH=@(s) 1/(s^3+4*s^2+29*s+50);K1=-1/GPH(s1)% Clculo dos parmetros do controladorsM=abs(s1)beta=angle(s1)M=abs(GPH(s1))psi=angle(GPH(s1))KI=5;KP=-sin(beta+psi)/(M*sin(beta))-2*KI*cos(beta)/sMKD=sin(psi)/(sM*M*sin(beta))+KI/sM^2% Funo de transferncia do controladorNC=[KD KP KI];DC=[1 0]GC=tf(NC,DC)GRD=series(GC,GP)GMA=series(GRD,H)T=feedback(GRD,H)% Lugar das Razes de GMAfigure(11)rlocus(GMA)xlabel('Re(s)')ylabel('Im(s)')title('Lugar das Razes')hold onplot(real(s1),imag(s1),'d')sgrid(zeta,omegan)% Clculo dos polos e zeros da funo de transferncia em malha fechadap=pole(T)z=zero(T)figure(12)[c,t]=step(GP)S=stepinfo(GP)figure(13)plot(t,c)xlabel('t')ylabel('c')title('Resposta ao degrau unitrio G_P(s)')figure(14)t=0:0.001:10;ru=2+0*t;[y,t]=lsim(T,ru,t);plot(t,y,'r')xlabel('t')ylabel('y')title('Resposta de T(s) ao degrau R_u(s)')S=lsiminfo(y,t)OverShoot=(S.Max-y(length(t)))*100/y(length(t))Erro=50-y(length(t))% Obtendo o numerador e o denominador da funo de transferncia T[NT,DT]=tfdata(T,'v')