Matlab
Simulações usando o Matlab
I) Modelos:
Seja como exemplo, a equação diferencial de segunda ordem
𝑥(𝑡) + 𝑎𝑥(𝑡) + 𝑏𝑥(𝑡) = 𝑢(𝑡)
Sua função de transferência é obtida usando a transformada de
Laplace,
𝑋(𝑠)
1
= !
𝑈(𝑠) 𝑠 + 𝑎𝑠 + 𝑏
O modelo em variáveis de estado, escolhendo 𝑥! 𝑡 = 𝑥(𝑡) e 𝑥! 𝑡 = 𝑥(𝑡) resultam nas equações diferenciais de primeira ordem para os dois estados: 𝑥! 𝑡 = 𝑥 𝑡 = 𝑥! 𝑡
𝑥! 𝑡 = 𝑥 𝑡 = 𝑢 𝑡 − 𝑎𝑥! 𝑡 − 𝑏𝑥! (𝑡) e colocando na forma matricial,
𝑥! 𝑡
𝑥! 𝑡
=
𝑦= 1 0
0
−𝑏
1 𝑥! (𝑡)
0
+
𝑢(𝑡)
−𝑎 𝑥! (𝑡)
1
𝑥! (𝑡)
𝑥! (𝑡)
ou
𝑥 = 𝐴𝑥 + 𝐵𝑢
𝑦 = 𝐶𝑥 com 𝐴 =
0
−𝑏
1
0
,𝐵=
,𝐶= 1 0
−𝑎
1
II) Entrada dos Modelos no Matlab:
Para definir um modelo dado por sua função de transferência no
Matlab, usa-se o comando
G=tf(num,den)
Onde num contem os coeficientes do numerador de G(s) e den os coeficientes do denominador.
Para o exemplo dado,
G=tf(1,[1 a b])
Para definir um modelo em variáveis de estado, usa-se o comando,
Análise e modelagem de sistemas dinâmicos
sys1=ss(A,B,C,D) onde A,B,C,D são as matrizes que definem o modelo. Caso não exista, basta fazer D=0.
III) Simulação dos modelos no Matlab:
Considerando-se os modelos dados, G e sys1:
Resposta ao degrau: step(G) ou [y,t]=step(G); ( ; é para ele não mostrar as variáveis y,t) step(sys1) ou [y,t,x]=step(sys1);
Para o caso de variáveis de estado, as variáveis y(saída), t(tempo), x
(estados) são geradas.
Resposta ao impulso: Trocar impulse por step nos comando acima.
Resposta a um sinal qualquer u:
Definir u e t, e para variáveis de estado, o estado inicial x0, caso seja diferente de zero.
Exemplo 1: Sinal degrau com 100 elementos: u=ones(100,1); Vetor de tempo com 100 instantes de tempo: