LAB03 - Controle Clássico

download LAB03 - Controle Clássico

of 8

description

Programa Matlab - Roteiro 3 - Controle Clássico

Transcript of LAB03 - Controle Clássico

%% LABORATRIO 03%% EXERCICIO 2.1% Programa Sinais de Tenso% Com as funes de sinais ploto os sinais de tenso% Clara D.% 2.1.af =60 % frequencia do sinalt = 0:1/(50*f):(2/f)% o tempo esta entre 0 e 2/f, com incremento de 1/(50f)v1 = 179.61*sin(377*t) % equao do sinalfigure(1)plot(t, v1, 'm') % plota o grafico na janela figuraxlabel('t')ylabel('V') % nomeia os eixostitle('Sinal de Tenso') % titula o graficotext(0.005,180,'v(t)=179.61sen(377t)') % comentario, a equaov2 = 179.61*sin((377*t)+(2*pi/3))% equao do sinalfigure(2)plot(t, v2, 'r')% plota o grafico na janela figuraxlabel('t')ylabel('V')% nomeia os eixostitle('Sinal de Tenso')% titula o graficotext(0.005,180,'v(t)=179.61sen(377t)+(2pi/3)')% comentario, a equaov3 = 179.61*sin((377*t)-(2*pi/3))% equao do sinalfigure(3)plot(t, v3, 'c')% plota o grafico na janela figuraxlabel('t')ylabel('V')% nomeia os eixostitle('Sinal de Tenso')% titula o graficotext(0.005,180,'v(t)=179.61sen(377t)-(2pi/3)')% comentario, a equao% 2.1.bf =60 % frequencia do sinalt = 0:1/(50*f):(2/f)% o tempo esta entre 0 e 2/f, com incremento de 1/(50f)v1 = 179.61*sin(377*t)% equao do sinalv2 = 179.61*sin((377*t)+(2*pi/3))% equao do sinalv3 = 179.61*sin((377*t)-(2*pi/3))% equao do sinalfigure(4)plot(t, v1, 'm', t, v2, 'r', t, v3, 'c')% plota o grafico na janela figuratitle('Sinal de Tenso')% titula o grafico% 2.1.cf =60% frequencia do sinalfigure(5)t = 0:1/(50*f):(2/f)% o tempo esta entre 0 e 2/f, com incremento de 1/(50f)v1 = 179.61*sin(377*t)% equao do sinalv2 = 179.61*sin((377*t)+(2*pi/3))% equao do sinalv3 = 179.61*sin((377*t)-(2*pi/3))% equao do sinalsubplot(3,1,1) % sub divide a janela para em 3 reasplot(t, v1, 'm')% plota o grafico na sub janela figuraxlabel('t')ylabel('V')% nomeia os eixostitle('Sinal de Tenso')% titula o graficosubplot(3,1,2)% sub divide a janela para em 3 reasplot(t, v2, 'r')% plota o grafico na sub janela figuraxlabel('t')ylabel('V')% nomeia os eixostitle('Sinal de Tenso')% titula o graficosubplot(3,1,3)% sub divide a janela para em 3 reasplot(t, v3, 'c')% plota o grafico na sub janela figuraxlabel('t')ylabel('V')% nomeia os eixostitle('Sinal de Tenso')% titula o grafico%% EXERCICIO 2.2% Programa Grfico de Sinal% Dadas as funes gera graficos, decompoe e realiza operaes com sinais% Clara D.% 2.1.afigure(6)t = -5:0.01:5 % intervalo do eixo t [ -5,5]x = exp(-t).*cos(t)% equao do sinalplot(t, x)% plota o grafico na janela figuraxlabel('t')ylabel('x')% nomeia os eixostitle('Grafico do sinal')% titula o grafico% 2.1.bt = -5:0.01:5 % intervalo do eixo t [ -5,5]xp = (1/2)*((exp(-t).*cos(t))+(exp(t).*cos(-t))) % decomposio sinal parxi = (1/2)*((exp(-t).*cos(t))-(exp(t).*cos(-t))) % decomposio sinal impar% 2.1.cfigure(7)t = -5:0.001:5 % intervalo do eixo t [ -5,5]xp = (1/2)*((exp(-t).*cos(t))+(exp(t).*cos(-t))) % decomposio sinal parplot(t, xp)% plota o grafico na janela figuraxlabel('t')ylabel('x')% nomeia os eixostitle('Sinal Par')% titula o graficofigure(8)t = -5:0.001:5 % intervalo do eixo t [ -5,5]xi = ((1/2)*((exp(-t).*cos(t))-(exp(t).*cos(-t)))) % decomposio sinal imparplot(t, xi)% plota o grafico na janela figuraxlabel('t')ylabel('x')% nomeia os eixostitle('Sinal Impar')% titula o grafico% 2.1.dt = -5:0.01:5 % intervalo do eixo t [ -5,5]xp = (1/2)*((exp(-t).*cos(t))+(exp(t).*cos(-t))) % decomposio sinal parxi = (1/2)*((exp(-t).*cos(t))-(exp(t).*cos(-t))) % decomposio sinal imparxs = xp + xi % soma as decomposies par e imparfigure(9)plot(t, xs)% plota o grafico na janela figuraxlabel('t')ylabel('x')% nomeia os eixostitle('Sinal Soma Par e Impar')% titula o grafico%% EXERCCIO 2.3% Programa Gera Grficos% Dadas as funes gera graficos% Clara D.% 2.3.at = -5:0.01:5 % intervalo do eixo t [ -5,5]x = 1/1+t.^2 % equao do sinalfigure(10) plot(t, x) % plota o grafico na janela figuratitle('2.3.a')% titula o graficoxlabel('t')ylabel('x')% nomeia os eixos% 2.3.bt=0:0.01:2*pi % intervalo do eixo t [ 0,2pi]x=cos(t); % equao do sinaly=2*sin(t); % equao do sinalfigure(11)plot(x,y,'r') % plota o grafico na janela figuraxlabel('x')ylabel('y')% nomeia os eixostitle('2.3.b')% titula o grafico% 2.3.ct = 0:0.01:5 % intervalo do eixo t [ 0,5]x=t % equao do sinalx1=t.^2 % equao do sinalx2=t.^3 % equao do sinalfigure(12)plot(t, x, 'm', t, x1, 'r', t, x2, 'c')% plota o grafico na janela figuraxlabel('t')ylabel('x')% nomeia os eixostitle('2.3.c')% titula o grafico% 2.3.dx = -5:0.01:5 % intervalo do eixo t [ -5,5]y = -5:0.01:5 % intervalo do eixo x [ -5,5][X, Y] = meshgrid(x,y); % comando para plotar grfico tridimensionalZ = (X.^2 + Y.^2)^1/2 % equao do sinalfigure(13) mesh(X,Y,Z) % plota o grafico na janela figuratitle('Grfico Tridimensional'); % titula o graficoxlabel('x')ylabel('y')zlabel('z')% nomeia os eixos%% EXERCCIO 2.4% Programa gera Grfico da parbola unitria% Gera grfico de uma parbola unitria a partir da funo degrau% Clara D.t=-5:0.01:5; % intervalo do eixo t [ -5,5]p=[(t.^2)/2]*degrau(t); % funo parbola unitriaplot(t,p,'r') % plota o grafico na janela figuraxlabel('t')ylabel('u_{-3}')% nomeia os eixostitle('Grfico da parbola unitria') % titula o grafico%% EXERCCIO 2.5% Calcula Laplace% As letras calculam laplace das equaes dos sinais% Clara D.% 2.5.asyms w t % define as variaveis simblicasx = cos(w*t) % equao do sinalX = laplace(x) % laplace de xpretty(X) % expresso de laplace% 2.5.bsyms a w t % define as variaveis simblicasx = exp(a*t)*sin(w*t) % equao do sinalX = laplace(x) % laplace de xpretty(X) % expresso de laplace% 2.5.csyms t % define a variavel simblicax = t^3 % equao do sinalX = laplace(x) % laplace de xpretty(X) % expresso de laplace% 2.5.dsyms a t % define a variavel simblicax = (t^2)*exp(a*t) % equao do sinalX = laplace(x) % laplace de xpretty(X) % expresso de laplace%% EXERCCIO 2.6% Calcula Inverso de Laplace% As letras calculam laplace inverso das equaes dos sinais% Clara D.% 2.6.asyms s % define a variavel simblicax = (s+1)/(s^2+5*s+6) % equao do sinalX = laplace(x) % laplace de xpretty(X) % expresso de laplaceilaplace(X) % expresso inversa de laplace% 2.6.bsyms s w % define a variavel simblicax = s/(s^2+w^2) % equao do sinalX = laplace(x) % laplace de xpretty(X) % expresso de laplaceilaplace(X) % expresso inversa de laplace% 2.6.csyms s % define a variavel simblicax = 1/s % equao do sinalX = laplace(x) % laplace de xpretty(X) % expresso de laplaceilaplace(X) % expresso inversa de laplace% 2.6.dx = 1 % equao do sinalX = laplace(x) % laplace de xilaplace(X) % expresso inversa de laplace%% EXERCCIO 2.7%Gp = 20/(s*(s+1)*(s+2)) funo de transferencia da plantaNp = 20Dp = [1 3 2 0]Gp = tf(Np, Dp)%Gc = ((s+0.7)/(s+7))*((s+0.15)/(s+0.015)) funo de transferencia do%controladorNc = [1 0.85 0.0105]Dc = [1 7.015 0.105]Gc = tf(Nc, Dc)%H = 1H=1%Funo de transferencia do ramo direto a funo de transferencia do%controlador vezes a funo de transferencia da plantaGRD = series(Gc, Gp)%Funo de transferencia da malha aberta a funo de transferencia do%ramo direto vezes o sensorGMA = series(H, GRD)%Funo de transferencia da malha fechada a funo de transferencia do%ramo direto dividido pelo sensor mais a funo de transferencia da malha%abertaGMF = feedback(GRD, H)%% EXERCCIO 2.8%Gp = 20/(s*(s+1)*(s+2)) funo de transferencia da plantaNp = 20Dp = [1 3 2 0]Gp = tf(Np, Dp)%Gc = 1 funo de transferencia do controladorGc = 1%H = 1 sensorH=1%Funo de transferencia do ramo direto a funo de transferencia do%controlador vezes a funo de transferencia da plantaGRD = series(Gc, Gp)%Funo de transferencia da malha aberta a funo de transferencia do%ramo direto vezes o sensorGMA = series(H, GRD)%Funo de transferencia da malha fechada a funo de transferencia do%ramo direto dividido pelo sensor mais a funo de transferencia da malha%abertaGMF = feedback(GRD, H)%% EXERCCIO 2.9% 2.9.a%Gp = 4/(s^2 + 2s) funo de transferencia da plantaNp = 4Dp = [1 2 0]Gp = tf(Np, Dp)%Gc = (41.7s + 183.9)/(s+18.4) funo de transferencia do%controladorNc = [41.7 183.9]Dc = [1 18.4]Gc = tf(Nc, Dc)%H = 1 sensorH=1%Funo de transferencia do ramo direto a funo de transferencia do%controlador vezes a funo de transferencia da plantaGRD = series(Gc, Gp)%Funo de transferencia da malha aberta a funo de transferencia do%ramo direto vezes o sensorGMA = series(H, GRD)%Funo de transferencia da malha fechada a funo de transferencia do%ramo direto dividido pelo sensor mais a funo de transferencia da malha%abertaGMF = feedback(GRD, H)t=0:0.01:10; % intervalo do eixo t [ 0,10]y=step(GMF,t); % degrau unitriofigure(14)plot(t,y) % plota o grafico na janela figuraxlabel('t')ylabel('y') % nomeia os eixostitle('Resposta ao degrau unitrio') % titula o grafico% 2.9.b%Gp = 4/(s^2 + 2s) funo de transferencia da plantaNp1 = 4Dp1 = [1 2 0]Gp1 = tf(Np, Dp)%Gc = 1 funo de transferencia do controladorGc1 = 1%H = 1 sensorH1=1%Funo de transferencia do ramo direto a funo de transferencia do%controlador vezes a funo de transferencia da plantaGRD1 = series(Gc1, Gp1)%Funo de transferencia da malha aberta a funo de transferencia do%ramo direto vezes o sensorGMA1 = series(H1, GRD1)%Funo de transferencia da malha fechada a funo de transferencia do%ramo direto dividido pelo sensor mais a funo de transferencia da malha%abertaGMF1 = feedback(GRD1, H1)t=0:0.01:10; % intervalo do eixo t [ 0,10]y1=step(GMF1,t); % degrau unitriofigure(15)plot(t,y1) % plota o grafico na janela figuraxlabel('t')ylabel('y') % nomeia os eixostitle('Resposta ao degrau unitrio') % titula o grafico% 2.9.cS=stepinfo(y,t,1)S.SettlingTime% o tempo de acomodao Ta=0.6187(s) mais rpido quando especificamos GcS1=stepinfo(y1,t,1)S1.SettlingTime% o tempo de acomodao Ta=4.0382(s) mais lenta quando Gc desconsiderada%% EXERCCIO 2.10% 2.10.a%Gp = 20/(s*(s+1)*(s+2)) funo de transferencia da plantaNp = 20Dp = [1 3 2 0]Gp = tf(Np, Dp)%Gc = ((s+0.7)/(s+7))*((s+0.15)/(s+0.015)) funo de transferencia do%controladorNc = [1 0.85 0.0105]Dc = [1 7.015 0.105]Gc = tf(Nc, Dc)%H = 1H=1%Funo de transferencia do ramo direto a funo de transferencia do%controlador vezes a funo de transferencia da plantaGRD = series(Gc, Gp)%Funo de transferencia da malha aberta a funo de transferencia do%ramo direto vezes o sensorGMA = series(H, GRD)%Funo de transferencia da malha fechada a funo de transferencia do%ramo direto dividido pelo sensor mais a funo de transferencia da malha%abertaGMF = feedback(GRD, H)t=0:0.01:10; % intervalo do eixo t [ 0,10]y=step(GMF,t); % degrau unitriofigure(16)plot(t,y) % plota o grafico na janela figuraxlabel('t')ylabel('y') % nomeia os eixostitle('Resposta ao degrau unitrio') % titula o grafico% 2.10.b%Gp = 20/(s*(s+1)*(s+2)) funo de transferencia da plantaNp1 = 20Dp1 = [1 3 2 0]Gp1 = tf(Np1, Dp1)%Gc = 1 funo de transferencia do controladorGc1 = 1%H = 1 sensorH1=1%Funo de transferencia do ramo direto a funo de transferencia do%controlador vezes a funo de transferencia da plantaGRD1 = series(Gc1, Gp1)%Funo de transferencia da malha aberta a funo de transferencia do%ramo direto vezes o sensorGMA1 = series(H1, GRD1)%Funo de transferencia da malha fechada a funo de transferencia do%ramo direto dividido pelo sensor mais a funo de transferencia da malha%abertaGMF1 = feedback(GRD1, H1)t=0:0.01:10; % intervalo do eixo t [ 0,10]y1=step(GMF1,t); % degrau unitriofigure(17)plot(t,y1) % plota o grafico na janela figuraxlabel('t')ylabel('y') % nomeia os eixostitle('Resposta ao degrau unitrio') % titula o grafico% 2.10.cS=stepinfo(y,t,1)S.SettlingTime% o tempo de acomodao Ta=4.9684(s) mais lento quando especificamos GcS1=stepinfo(y1,t,1)S1.SettlingTime% o tempo de acomodao Ta=4.0382(s) mais rpido quando Gc % desconsiderada%% EXERCCIO 2.12% 2.12.a a 2.12.et1 = linspace(0,10,1000) % intervalo do eixo t1 [ 0,10] com 1000 ptst2 = 0:0.1:10 % intervalo do eixo t2 [ 0,10]N = [1] % numeradorD = [0.06 1] % denominadorG = tf(N, D) % funo de transferenciay1=step(G,t1); % degrau unitrioy2=step(G,t2); % degrau unitriofigure(18)plot(t1, y1, 'm', t2, y2, 'c') % plota o grafico na janela figuraxlabel('t')ylabel('y') % nomeia os eixostitle('Resposta ao degrau unitrio') % titula o graficofigure(19)subplot(2,1,1) % sub divide a janela para em 2 reasplot(t1, y1, 'm')% plota o grafico na sub janela figuraxlabel('t')ylabel('y') % nomeia os eixostitle('Resposta ao degrau unitrio T1') % titula o graficosubplot(2,1,2)% sub divide a janela para em 2 reasplot(t2, y2, 'c')% plota o grafico na sub janela figuraxlabel('t')ylabel('y') % nomeia os eixostitle('Resposta ao degrau unitrio T2') % titula o grafico% 2.12.ft1 = linspace(0,10,1000) % intervalo do eixo t1 [ 0,10] com 1000 ptsN = [6.28] % numeradortal = 0:0.2:2 % intervalo do eixo tal [ 0,2]D = [1 2*tal*(6.28^1/2) 6.28] % denominadorG = tf(N, D) % funo de transferenciay1=step(G,t1); % degrau unitriofigure(20)plot(t1, y1, 'm') % plota o grafico na janela figuraxlabel('t')ylabel('y') % nomeia os eixostitle('Resposta ao degrau unitrio') % titula o grafico