Objetivo
s2
s+2
,
+ 4s + 3
>> Ns = [1 2];
>> Ds = [1 4 3];
>> Gs = tf(Ns,Ds)
Gs =
s + 2
------------s^2 + 4 s + 3
Continuous-time transfer function.
>> s = tf('s');
>> Gs = (s+2)/(s^2+4*s+3)
Gs =
s + 2
------------s^2 + 4 s + 3
Continuous-time transfer function.
O comando tf possui muitas outras sintaxes que permitem a definio de funes de transferncia com outros parmetros e/ou de outros tipos, como funes de
transferncia em tempo discreto, matriz de transferncia para sistemas multivariveis,
mudana de operador, atraso de transporte, etc.
O comando que faz o processo oposto, ou seja, extrai as informaes a partir de um
objeto tf o comando tfdata. Exemplo: se quisssemos ter acesso ao polinmio de
plos e zeros da funo de transferncia definida anteriormente, poderamos utilizar o
seguinte cdigo:
2
Aula 8: Resposta Temporal
den =
O primeiro parmetro passado o objeto do tipo tf, enquanto que o segundo ('v')
uma opo para que o comando retorne os coeficientes do polinmio em forma de
vetor, e no cell-arrays.
O outro tipo de objeto que podemos criar a partir da funo de transferncia o
zero-polo-ganho, com o comando zpk(zeros,polos,ganho). Neste caso, necessrio
conhecer os polos, zeros e ganho do sistema, que so passados diretamente como
parmetros para a criao do objeto. Exemplo: o sistema anterior pode ser colocado
em funo de transferncia na forma fatorada como
G(s) =
s+2
,
(s + 1)(s + 3)
>>
>>
>>
>>
zeros = -2;
polos = [-1;-3];
ganho = 1;
Gs = zpk(zeros,polos,ganho)
Gs =
(s+2)
----------(s+1) (s+3)
3
Aula 8: Resposta Temporal
O comando zpk, assim como o comando tf, tambm possui muitas outras sintaxes.
O comando que faz o processo oposto, ou seja, extrai as informaes a partir de
um objeto zpk o comando zpkdata. Exemplo: se quisssemos ter acesso aos zeros,
polos e ganho do sistema definido como objeto zpk anteriormente, poderamos utilizar
o seguinte cdigo:
p =
-1
-3
k =
1
Da mesma maneira, o primeiro parmetro passado o objeto do tipo zpk, enquanto
que o segundo ('v') uma opo para que o comando retorne os valores dos zeros,
polos e ganho em forma de vetor, e no cell-arrays.
Tanto o comando tf quanto o comando zpk permitem converter tambm um objeto
no outro. Exemplo: dado o sistema
G(s) =
s2
2s + 1
2(s + 0, 5)
=
.
+ 6s + 5
(s + 1)(s + 5)
>> Ns = [2 1];
>> Ds = [1 6 5];
>> G_tf = tf(Ns,Ds)
G_tf =
4
Aula 8: Resposta Temporal
2 s + 1
------------s^2 + 6 s + 5
Continuous-time transfer function.
>> G_zpk = zpk(G_tf)
G_zpk =
2 (s+0.5)
----------(s+5) (s+1)
Continuous-time zero/pole/gain model.
>> G_tf = tf(G_zpk)
G_tf =
2 s + 1
------------s^2 + 6 s + 5
Continuous-time transfer function.
Resposta Temporal
No MATLAB, os dois principais comandos utilizados para se obter a resposta temporal so o comando impulse (para se obter a resposta ao impulso unitrio) e o comando step (para se obter a resposta ao degrau unitrio).
Os comandos impulse e step possuem diversas sintaxes, as quais podem ser
consultadas com o comando help. Entretanto, iremos focar em duas principais: dado
um sistema sys com representao em objeto tipo tf ou zpk (ou ainda ss), a sin5
Aula 8: Resposta Temporal
s2
2
,
+ 3s + 2
at t = 10 [s].
Os seguintes comandos devem ser utilizados:
>>
>>
>>
>>
>>
Ns = 2;
Ds = [1 3 2];
Gs = tf(Ns,Ds);
figure
impulse(Gs,10)
Alternativamente:
>>
>>
>>
>>
>>
>>
>>
>>
>>
Ns = 2;
Ds = [1 3 2];
Gs = tf(Ns,Ds);
[y,t] = impulse(Gs,10);
figure
plot(t,y)
xlabel('Tempo [s]')
ylabel('Amplitude')
title('Resposta ao Impulso Unitrio')
s2
2
,
+ 3s + 2
at t = 10 [s].
Os seguintes comandos devem ser utilizados:
>>
>>
>>
>>
>>
Ns = 2;
Ds = [1 3 2];
Gs = tf(Ns,Ds);
figure
step(Gs,10)
Alternativamente:
>>
>>
>>
>>
>>
>>
>>
>>
>>
Ns = 2;
Ds = [1 3 2];
Gs = tf(Ns,Ds);
[y,t] = step(Gs,10);
figure
plot(t,y)
xlabel('Tempo [s]')
ylabel('Amplitude')
title('Resposta ao Degrau Unitrio')
n 2
.
s2 + 2n s + n 2
>>
>>
>>
>>
>>
>>
>>
zeta = 0.5;
wn = 2;
Ns = wn^2;
Ds = [1 2*zeta*wn wn^2];
Gs = tf(Ns,Ds);
figure
step(Gs,5)
>>
>>
>>
>>
>>
>>
>>
>>
zeta = 0.5;
wn = 2;
Ns = wn^2;
Ds = [1 2*zeta*wn wn^2];
Gs = tf(Ns,Ds);
[y,t] = step(Gs,5);
S = stepinfo(y,t);
Mp = S.Overshoot
Mp =
16.0453
8
Aula 8: Resposta Temporal
>> tr = S.RiseTime
tr =
0.8218
>> ts = S.SettlingTime
ts =
4.1155
Abrindo a struct no Workspace ir mostrar todas as caractersticas.
Um outro ponto importante como obter a resposta ao degrau (ou impulso) que
no unitrio. Sabe-se que a Transformada de Laplace de um degrau de amplitude A
U (s) =
A
.
s
Como
Y (s) = G(s)U (s) ,
ento
Y (s) = G(s)
A
1
= AG(s) .
s
s
Ou seja, basta utilizar o comando step, porm multiplicando o objeto tf (ou o vetor
que contm o polinmio dos zeros) pela amplitude desejada A.
Exerccios Propostos
Bibliografia
1 Katsuhiko Ogata, Engenharia de Controle Moderno, Editora Pearson, 5a Edio, 2010;
10
Aula 8: Resposta Temporal