Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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)
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
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)
a) Sistema em cascata.
b) Sistema em paralelo.
-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.
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
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
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
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
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
10
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
11
C ( s)
36
2
R( s) s 2s 36
12