Вы находитесь на странице: 1из 12

INSTITUTO FEDERAL DE EDUCAO, CINCIA E

TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

Disciplina: Controle Analgico (Laboratrio)


Professor: Joo Erivando Soares Marques
Perodo: 2015.1

Guia de Experimento
Mdulo 1 Matlab para Sistemas de Controle
Neste primeiro laboratrio, sero verificados alguns comandos no software Matlab,
que abrangero os conceitos na disciplina de Controle Analgico.

1 Expanso em Fraes Parciais


Considere a seguinte funo de transferncia:
B( s) 2s 3 5s 2 3s 6

A( s) s 3 6s 2 11s 6
Para essa funo:
num = [ 2 5 3 6]
den = [1 6 11 6]
O comando
[r,p,k] = residue(num,den)
apresenta o seguinte resultado
r=
-6,000
-4,000
3,000
p=
-3,000
-2,000
-1,000
k=
2
Esta a representao em Matlab da seguinte expanso em fraes parciais de
B(s)/A(s)

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

B( s) 2s 3 5s 2 3s 6

A( s) s 3 6s 2 11s 6
6
4
3

2
s 3 ( s 2) ( s 1)
O inverso tambm possvel:
[num,den] = residue(r,p,k)
onde r, p e k foram fornecidos previamente pelo Matlab.
[num,den] = residue(r,p,k);
printsys(num,den,s);
num/den =
2s^3 + 5s^2 + 3s + 6
s^3 + 6s^2 + 11s + 6

2 Determinao de zeros e plos de B(s)/A(s)


Para esta determinao, o Matlab tem um comando
[z,p,K] = tf2zp(num,den)
que permite obter zeros, plos e o ganho K de B(s)/A(s)
Considere o sistema definido por:
B( s )
4s 2 16 s 12
4
A( s) s 12 s 3 44 s 2 48s
Insira:
num = [0 0 4 16 12];
den = [1 12 44 48 0];
[z,p,K] = tf2zp(num,den)
O computador vai apresentar os seguintes dados na tela:
z=
-3
-1
p=

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

0
-6,000
-4,000
-2,000
K=
4
Os zeros esto em s = -3 e -1. Os plos esto em s = 0, -6, -4 e -2. O ganho K 4.
Se os zeros, os plos e o ganho K forem dados, ento o seguinte programa em
Matlab vai produzir o num/den original:
z = [-1;-3];
p = [0;-2;-4;-6];
K = 4;
[num,den] = zp2tf(z,p,K);
printsys(num,den,s)
num/den =
4s^2 + 16s + 12____
s^4 + 12s^3 + 44s^2 + 48s
Para visualizao do mapa de plos e zeros, pode-se utilizar o comando pzmap.
pzmap(num,den)
pzmap(A,B,C,D)
pzmap(p,z)

3 Obtendo funes de transferncia em cascata, em paralelo e com


realimentao (de malha fechada) com o Matlab
Com as funes abaixo, pode-se ter a funo de transferncia para sistemas em
cascata (srie), em paralelo, e realimentados (em malha fechada).
[num,den] = series(num1,den1,num2,den2)
[num,den] = parallel(num1,den1,num2,den2)
[num,den] = feedback(num1,den1,num2,den2)

a) Sistema em cascata.

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

b) Sistema em paralelo.

c) Sistema com realimentao.

Para este exemplo, digite as seguintes linhas de comando:


num1 = [ 0 0 10];
den1 = [1 2 10];
num2 = [0 5];
den2 = [1 5];
[num,den] = series(num1,den1,num2,den2);
printsys(num,den)
num/den =
50___________
5s^3 + 7s^2 + 20s + 50
[num,den] = parallel(num1,den1,num2,den2);
printsys(num,den)
num/den =
5s^2 + 20s + 100__
s^3 + 7s^2 + 20s + 50
[num,den] = feedback(num1,den1,num2,den2);
printsys(num,den)
num/den =
____10s + 50______
s^3 + 7s^2 + 20s + 100

4 Transformao de Modelos Matemticos com Matlab

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

Seja a funo de transferncia de malha fechada escrita do seguinte modelo:


Polinmio do numerador em s
Y (s)
num

U ( s) Polinmio do denominado r em s den


Uma vez obtida a expresso da funo de transferncia, o comando Matlab, a seguir
[A,B,C,D]=tf2ss(num,den)
fornecer a representao em espao de estados, sendo que esta representao de
espao de estado no nica.
Dado o seguinte programa:
num = [0 0 1 0]
den = [1 14 56 160]
[A,B,C,D] = tf2ss(num,den)
A=
-14
1
0

-56 -160
0
0
1
0

B=
1
0
0
C=
0

D=
0
Para transformar uma representao em espao de estado em funo de
transferncia, utilize o seguinte comando:
[num,den] = ss2tf(A,B,C,D,iu)
onde iu deve ser especificado para sistemas com mais de uma entrada.
Se o sistema tiver somente uma entrada, os comandos
[num,den] = ss2tf(A,B,C,D)
ou
[num,den] = ss2tf(A,B,C,D,1)
podem ser utilizados.

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

Segue um exemplo para obteno da funo de transferncia para uma


representao em espao de estados.

x1 0
1
0 x1 0

0
1 x 2 25 u
x2 0
x3 5 25 5 x3 120

x1
y 1 0 0 x 2
x3
O programa para transformar esta representao acima em uma funo de
transferncia segue abaixo:
A = [0 1 0 ; 0 0 1; -5 -25 -5];
B = [0 ; 25; -120];
C = [1 0 0];
D = [0];
[num,den] = ss2tf(A,B,C,D)
num =
0 0.0000 25.0000 5.0000
den =
1.0000 5.0000 25.0000 5.0000

5 Anlise da Resposta Transitria com o Matlab


A funo de transferncia de um sistema representada por dois arranjos de
nmeros em forma de vetores-linha. Considere o sistema

C ( s)
2s 25
2
R( s) s 4s 25
Este sistema pode ser representado por:
num = [ 2 25]
den = [1 4 25]
Para que seja gerado uma resposta em degrau, utiliza-se o seguinte comando:
step(A,B,C,D)
ou
6

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

step(num,den)
ou
step(num,den,t)
onde t um parmetro de tempo especificado pelo usurio.
Quando os comandos de degrau tm argumentos do lado esquerdo, como
[y,x,t] = step(num,den,t)
[y,x,t] = step(A,B,C,D,iu)
[y,x,t] = step(A,B,C,D,iu,t)
nenhum grfico apresentado na tela, sendo necessrio o uso do comando plot, para
visualizao das curvas de resposta.
O exemplo a seguir ilustra o uso destes comandos
Considere o seguinte sistema
x1 1 1 x1 1 1 u1

x 1 0 u
6
,
5
0
x

2
2
2
y1 1 0 x1 0 0 u1
y 0 1 x 0 0 u
2
2
2
obteremos as curvas de resposta ao degrau unitrio.
O programa abaixo construir estas curvas
A = [-1 -1; 6,5 0];
B = [1 1; 1 0];
C = [1 0; 0 1];
D = [0 0; 0 0];
%para representar as curves de resposta ao degrau quando a entrada u1
step(A,B,C,D,1)
grid
title (Grficos de Resposta ao Degrau: Entrada = u1 (u2 =0))
text(3.4,1.5,Y1) % este comando escreve texto nos grficos da tela
text(3.4,3,Y2)
xlabel(Tempo (s))
ylabel(Amplitude )
%para representar as curves de resposta ao degrau quando a entrada u2
step(A,B,C,D,2)
grid
title (Grficos de Resposta ao Degrau: Entrada = u2 (u1 =0))
text(3.4,1.4,Y1)
7

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

text(2.8,3.5,Y2)
xlabel(Tempo (s))
ylabel(Amplitude )
5.1 - Resposta ao degrau unitrio a partir da funo de transferncia do
sistema
Um sistema de segunda ordem pode ser representado por:
G(s)

n2
s 2 2n s n2

Dado:

G( s)

25
s 4s 25
2

obteremos a resposta ao degrau a partir da funo de transferncia:


num = [0 0 25];
den = [1 6 25];
tempo=0:0.005:5;
step(num,den,tempo)
grid
title(Resposta ao Degrau Unitrio de G(s))
5.2 - Obteno do tempo de subida, tempo de pico, o mximo sobre-sinal e o
tempo de acomodao com o Matlab
Tomando a mesma funo de transferncia anterior:
[y,x,t] = step(num,den,tempo);
r = 1; while y(r)<1.0001;r=r+1;end;
% o valor de 1.0001 devido ao valor de
regime permanente
rise_time = (r-1)*0.005
%calculo de tempo de subida (tr) 0.005 devido ao t
incremental
rise_time =
0.5550
[ymax,tp]=max(y);
tempo_pico = (tp-1)*0.005 % calculo do tempo de pico(tp)
tempo_pico =
0.7850
Max_overshoot = ymax-1 % calculo do sobre-sinal (Mp)
Max_overshoot =
0.0948
s = 1001;while y(s)>0.98 & y(s) < 1.02; s = s-1; end;

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

acomodacao=(s-1)*0.005
acomodacao =
1.1850
5.3 - Resposta ao impulso
Para a resposta ao impulso, pode-se utilizar os seguintes comandos no Matlab:
impulse(num,den)
impulse(A,B,C,D)
[y,x,t]=impulse(num,den)
[y,x,t]=impulse(num,den,t)
[y,x,t]=impulse(A,B,C,D)
[y,x,t]=impulse(A,B,C,D,iu)
[y,x,t]=impulse(A,B,C,D,iu,t)
O exemplo dado no item 5.1, pode ser repetido para resposta ao impulso.
5.4 - Resposta rampa
Pode-se utilizar a funo step do matlab, porm observando o seguinte:
1
1
1
1
C ( s) 2
2
2
s s 1 s
( s s 1) s s
ou seja
num = [0 0 0 1];
den = [1 1 1 0];
Implemente o programa utilizando a funo step (degrau) do Matlab.
5.5 - Obteno da resposta a uma entrada arbitrria
Para obter a resposta a uma entrada arbitrria, pode-se utilizar o comando lsim
lsim(num,den,r,t)
lsim(A,B,C,D,u,t)
y = lsim(num,den,r,t)
y = lsim(A,B,C,D,u,t)
Como exemplo, o programa abaixo implementa a resposta a um degrau:
num = [0 0 1];
den = [1 1 1];
t = 0:0.1:8;
r = t;
y = lsim(num,den,r,t);
plot(t,r,-,t,y,o)
grid
9

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

title(Resposta a Rampa Unitaria Obtida com o comando lsim)


xlabel(tempo (s))
ylabel(Entrada e sada do sistema)
text(2.1,4.65,Entrada em Rampa Unitaria)
text(4.5,2.0,Saida)

10

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

6 - Exerccios
Para os exerccios abaixo, resolva-os analiticamente e por Matlab (apresente cada
linha de comando), atravs da apresentao de um relatrio para este experimento:
1 Expanda a seguinte B(s)/A(s) em fraes parciais (analiticamente e com o Matlab) e
obtenha a transformada inversa de Laplace analiticamente (caso haja plos complexos
conjugados, represente as funes temporais em funo de senos e cossenos):
B( s) s 2 2s 3
C ( s ) s 3 5s 2 9 s 7

a)
b)

A( s )
( s 1) 3
D( s )
( s 1)( s 2)
E ( s)
2s 12
E ( s)
3
2

c)
d)
2
F ( s) ( s 2s 5)
F ( s) s( s 2s 5)
2 Dado o sistema abaixo, simplifique o diagrama de blocos e ache a funo de
transferncia do sistema. Para a resoluo em Matlab, considerem os comandos do item 2
deste guia. Considere tambm:
1
1
s
1
, G2 ( s )
, H 1 ( s)
e H 2 ( s)
G1 (s)
s 1
s2
s 1
s3

Questo 2

Questo 3

3 Faa o modelamento matemtico do sistema acima. Achem a funo de transferncia e


uma representao em espao de estado. No Matlab utilize os comandos tf2ss e ss2tf.
4 Obtenha o tempo de subida, o tempo de pico, o mximo sobre-sinal e o tempo de
acomodao, na resposta ao degrau unitrio, do sistema de malha fechada dado abaixo.
Tambm obtenha a resposta ao impulso e a resposta rampa para o mesmo sistema.

11

INSTITUTO FEDERAL DE EDUCAO, CINCIA E


TECNOLOGIA DA BAHIA
CAMPUS DE VITRIA DA CONQUISTA
AV. AMAZONAS, 3.150 BAIRRO ZABEL
VITRIA DA CONQUISTA-BA
CEP: 45.030-220
TEL: (77) 3426-2271 / 4210 / 3355 FAX: (77) 3426-2421

C ( s)
36
2
R( s) s 2s 36

12

Вам также может понравиться