Objetivo: Entender como a posição dos pólos afeta a dinâmica de sistemas (1ª e 2ª ordem).
Para cada sistema abaixo, calcule o tempo de resposta, (tempo de assentamento, settling time) dos mesmos quando submetidos à uma entrada degrau. Mostre este instante de tempo no gráfico obtido.
a) ;
b) ;
c)
A idéia aqui é criar uma figura semelhante a mostrada abaixo, que permite visualizar graficamente e concluir que quanto mais distante um pólo real estiver afastado do eixo , mas rápida será sua resposta:
Estime o valor do , que corresponde à aproximadamente à 4 vezes a constante de tempo de cada sistema (considerando o critério dos 2% para tempo de assentamento).
Dicas: No Matlab, você pode usar a seguinte sequência de comandos para gerar os gráficos:
x>> G1=tf(14,[1 14]) % ingressa com a transfer function
G1 =
14
------
s + 14
Continuous-time transfer function.
>> figure; pzmap(G1) % gera o diagrama dos pólos/zeros no plano-s
>> % axis([xmin xmax ymin ymax])
>> axis([-15 0 -1 1]) % "padroniza" área a ser mostrada no gráfico
>> figure; dcgain(G1) % mostra resposta à entrada degrau
>> axis([0 5 0 1]) % "padroniza" área a ser mostrada neste caso
>> stepinfo(G1) % mostra informações
RiseTime: 0.15693
SettlingTime: 0.27943
SettlingMin: 0.9045
SettlingMax: 0.99997
Overshoot: 0
Undershoot: 0
Peak: 0.99997
PeakTime: 0.75327
>> tau=1/14 % calcula constante de tempo do sistema
tau =
0.071429
>> ts=4*tau % preve ts
ts =
0.28571
>>
No gráfico gerado pelo comando step()
clique com o botão direito do mouse sobre uma área do gráfico para obter o menu com opções para incluir o tempo de assentamento no gráfico (Settling Time):
Use a função residue
do MATLAB para descobrir o impacto de cada pólo na resposta deste sistema para uma entrada degrau unitário. Mostre uma equação como, com os correspondentes valores numéricos:
onde: ; ; transformada de Laplace da entrada degrau; offset (constante) de amplitude na resposta de (degrau de certa amplitude); , correspondem aos resíduos (fatores ponderação) para cada pólo deste sistema.
E obtenha um gráfico semelhante ao mostrado abaixo:
O objetivo aqui é perceber que os pólos mais próximos do eixo são os que "ditam" a resposta e por isto mesmo são ditos: "pólos dominantes" na resposta. No caso do sistema exemplo acima, os pólos dominantes estão em e . O pólo localizado em praticamente não influencia na resposta.
Para cada situação abaixo, mostre sua função transferência, use a função dcgain()
para prever o valor final em regime permanente alcançado pelo mesmo (ou ), mostre o gráfico da resposta à entrada degrau (usando a funçãp step()
) e mostre no plano-s a localização destes pólos (usando a função pzmap()
). Para os item (a) e (b) calcule a frequência natural, e fator de amoertecimento, . Já no caso dos itens (c), (d) e (e) são fornecidos os parâmetros: (fator de amortecimento) e (freq. natural de oscilação), e você deve então descobrir onde estão localizados os pólos de cada uma destes sistemas (são pólos complexos). Será necessário montar a função transferênica, descobrir os pólos de cada sistema, mostrar estes pólos no plano-s (usando pzmap()
) e plotar a resposta ao degrau unitário para estes sistemas, e classificar sua resposta em: sistema superamortecido, sistema subamortecido, sistema criticamente amortecido ou sistema oscilatório.
a) Sistema com pólos em: e ;
b) Sistema com pólos em: e (pólos duplos);
c) Sistema com: (rad/s (ou 1 Hz) e .
d) Sistema com: (rad/s (ou 1 Hz) e .
e) Sistema com: (rad/s) (ou 1,11 Hz) e .
Dica: No caso dos sistemas subamortecidos, você pode obter a função transferência fazendo algo como:
xxxxxxxxxx
>> wn = % completar...
>> zeta = % deduzir/completar...
>> G=tf(1,[1 2*zeta*wn wn^2])
>> zpk(G) % mostra a tf num formato mais "amigável"
>> pole(G) % mostra os pólos da tf
>> pzmap(G) % plota os pólos no plano-s
>> step(G) % mostra a resposta à entrada degrau.
É esperado que seja gerado algo semelhante à figura abaixo:
Obtenha figuras similares às mostrada na tabela abaixo, que mostre a resposta à entrada degrau e os pólos de cada sistema no plano-s. Sejam os sistemas:
a) ;
b) ;
c) ;
Obsservações:
G3=tf(0.5,[1 0.5]); figure; step(G3); stepinfo(G3, G)
:
Fim
Fernando Passold, em 23/05/2025