Você está na página 1de 35

Engenharia de Controle 1

Aula 11: Análise da resposta


transitória usando MATLAB.

Pedro M. G. del Foyo


Sumário
● Uso de programas computacionais para
análise da resposta transitória.
● Determinar os parâmetros da resposta
temporal para sinais de entrada tipo
impulso, degrau, rampa e parábola.
● Determinar a resposta transitória apenas
considerando condições iniciais.
● Sistemas representados como função de
transferência ou no espaço de estados.
Representação do sistemas em
MATLAB
● Método de entrada para sistemas
representados pelas funções de
transferências.
F(s)= B(s) = b0sm + b1sm-1 + … + bm
A(s) sn + a1sn-1 + … + an
● num = [b0 b1 b2 … bm]
● den = [1 a1 a2 … an]
Representação do sistemas em
MATLAB
● Método de entrada para sistemas
representados no espaço de estados
ẋ(t) = Ax(t) + Bu(t)
y(t) = Cx(t) + Du(t)

● A = [a11 a12 a13; a21 a22 a23; a31 a32 a33]


● B = [b11 b12; b21 b22; b31 b32]
● C = [c11 c12 c13]
● D = [d11; d12]
Obtenção da resposta à impulso
● O MATLAB possui um comando
impulse(num,den) ou impulse(A,B,C,D)
● Pode explicitar uma base temporal
t = 0:0.1:10

valor inicial incremento valor final


● Pode-se colocar o tempo de forma explicita
impulse(num,den,t) ou impulse(A,B,C,D,t)
Obtenção da resposta à impulso
● A resposta pode ser graficada diretamente ou
guardada numa matriz para mostra-la depois
de forma combinada ou fazer operações sobre
os resultados gerados.
[y,x,t] = impulse(num,den,t)
[y,x,t] = impulse(A,B,C,D,iu,t)
● iu é un escalar que define qual entrada será
usada para gerar a resposta.
● Se os resultados são guardados então a
gráfica não é gerada automaticamente
Mostrando os resultados
● O MATLAB possui um comando que permite
mostrar graficos a partir de dados em formato
de matrices filas.
plot(t,y,'o') para uma única curva
plot(t,y1,'.',t,y2,'-', … ,t,yn,'o') para várias curvas
● O comando grid produce uma grade no gráfico.
● O comando title('titulo') permite colocar um titulo
à gráfica gerada.
Exemplo 1
● Obtenha a resposta a um impulso unitário do
sistema seguinte:
ẋ1 0 1 x1 0
= + u
ẋ2 -1 -1 x2 1

y = [1 0] x1 + [0] u
x2
Exemplo 1: solução

● Programa MATLAB
A = [0 1; -1 -1];
B = [0; 1];
C = [1 0];
D = [0];
impulse(A,B,C,D);
grid;
title('Resposta a impulso unitário ')
Exemplo 1: solução
Exemplo 2

● Obtenha a resposta a impulso do seguinte


sistema
G(s) = 1
2
s + 0.2s + 1
Exemplo 2: solução

● Programa MATLAB
num = [0 0 1];
den = [1 0.2 1];
impulse(num,den);
grid;
title('Resposta a impulso unitário ')
Exemplo 2: solução
Obtenção da resposta à degrau

● Para gerar a resposta à degrau unitário usar o


comando:
step(num,den) ou step(A,B,C,D,iu)
● Para guardar os resultados em matrices:
[y,x,t]=step(num,den) ou [y,x,t]= step(A,B,C,D,iu)

saída variáveis de estado tempo


Exemplo 3
● Obter a resposta temporal a um degrau
unitário da seguinte função de transferência
em malha aberta.
G(s)= 25
s(s+4)
● Primeiro determinar a função de transferência
em malha fechada supondo realimentação
unitária
G(s) = 25
1 + G(s) s2 + 4s + 25
Exemplo 3: solução
● Programa MATLAB
num = [25];
den = [1 4 25];
t=0:0.1:4;
[y,x,t]=step(num,den,t);
plot(t,y,'-');
grid
Exemplo 3: solução
Exemplo 4

● Obtenha as curvas para resposta á degrau


unitário para o seguinte sistema:
ẋ1 -1 -1 x1 1 1 u1
= +
ẋ2 6.5 0 x2 1 0 u2

y1 = 1 0 x1 0 0 u1
+
y2 = 0 1 x2 0 0 u2
Exemplo 4: solução
● Programa MATLAB
A = [-1 -1; 6.5 0];
B = [1 1;1 0];
C = [1 0; 0 1];
D = [0 0; 0 0];
step(A,B,C,D,1);
grid;
title('Resposta a degrau unitário na entrada u1 ');
step(A,B,C,D,2);
grid;
title('Resposta a degrau unitário na entrada u2 ');
Exemplo 4: solução
Obtenção da resposta á rampa

● Não existe comando no MATLAB para obter a


resposta a rampa.
● Para isto pode ser usado o comando step
usado para obter resposta à degrau unitário.
● Para usar o comando step nas respostas à
rampa é preciso modificar a função de
transferência em malha fechada de forma a
considerar a entrada rampa.
Obtenção da resposta á rampa
● Dado o seguinte sistema em malha fechada:
C(s) = 1 e dado R(s) = 1
R(s) s2 + s + 1 s2

● Obter a resposta transitória usando a resposta


à degrau
C(s) = 1 1 = 1 1
2 2 2
s + s + 1 s s(s + s + 1) s
● Usar a FT modificada no comando
step(num,den) no MATLAB
Obtenção da resposta á rampa

● Programa MATLAB
num1 =[1];
den1 = [1 1 1 0];
t = 0:0.1:4;
[y1,x,t]=step(num1,den1,t);
plot(t,y1,'-',t,t,'*');
grid
Obtenção da resposta á rampa
Resposta á rampa num sistema
representado no espaço de estados
● Considere o seguinte sistema representado no
espaço de estados:

ẋ1 0 1 x1 0
= + u
ẋ2 -1 -1 x2 1

y = [1 0] x1 + [0] u
x2
Resposta á rampa num sistema
representado no espaço de estados
● A resposta à rampa unitária é a integral da
resposta à degrau unitário com condições
iniciais nulas portanto:

● Sendo assim temos que:


● Definindo temos
Resposta á rampa num sistema
representado no espaço de estados
● Combinando as equações anteriores obtemos
a seguinte representação no espaço de
estados:
Resposta á rampa num sistema
representado no espaço de estados
● Modificamos as matrices do sistema A, B, C e
D de forma a obter z que é a integral de ż que
por sua vez é x3:

A saída agora passa a ser x3


Resposta á rampa num sistema
representado no espaço de estados
● Programa MATLAB
AA = [0 1 0; -1 -1 0; 1 0 0];
BB = [0; 1; 0];
CC = [0 0 1];
DD = [0];
t = 0:0.1:10;
[z,x,t] = step(AA,BB,CC,DD,1,t);
x3 = CC*x';
plot(t,x3,'o',t,t,'-'); grid;
title('Resposta a rampa unitária');
Resposta á rampa num sistema
representado no espaço de estados
Resposta a condições iniciais

● As veces é necessário obter a resposta


transitória de sistemas onde ele responde a
determinadas condições iniciaispois não
existe uma função de exitação externa.
● Exemplos destes casos são os péndulos ou
sistemas massa mola amortecedor onde o
sistema é tirado do ponto de equilibrio e logo
deixado sem entrada até o mesmo voltar ao
ponto de equilibrio.
Resposta a condições iniciais
● Equação do sistema:

● Antitransformando:

● Arranjando a equação:

● Sustituindo os valores dados


Resposta a condições iniciais

● Usar o comando impulse pois não precisária


alterar a função de transferência.
X(s) = 0.1s + 0.35 sendo U(s)= 1
2
U(s) s + 3s + 2

X(s) = 0.1s + 0.35 equação a ser


s2 + 3s + 2 usada no comando
impulse(num,den)
Resposta a condições iniciais
● Programa MATLAB
num =[0.1 0.35];
den = [1 3 2];
impulse(num,den);
grid;
title('Resposta transitória à cond. iniciais');
Resposta a condições iniciais

Você também pode gostar