You are on page 1of 4

Introduo ao

MATLAB

Parte 5
10 Equaes diferenciais ordinrias

As funes ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb permitem


resolver problemas de valores iniciais para equaes diferenciais ordinrias (uma
varivel independente) por vrios mtodos. As funes ode23 e ode45 so baseadas
no mtodo de Runge-Kutta.
O primeiro exemplo apresenta uma equao diferencial ordinria linear de
primeira ordem com entrada u(t), cuja soluo analtica conhecida.
Equao diferencial de 1 ordem e sua condio inicial:
() + 3() = (), (0) = 5
Soluo analtica da equao homognea associada:
() = 5 3
Soluo numrica via Matlab:

% Definio da function que descreve a equao


% diferencial linear de primeira ordem

function xp = LPriOrd(t,x);
u = 0;
xp = -3*x + u;

% Soluo numrica da equao diferencial e exibio do resultado

[t,x] = ode45('LPriOrd',[0 2],5);


plot(t,x)

A ode45 uma function baseada no mtodo de Runge-Kutta para a soluo de


equaes diferenciais ordinrias. O segundo argumento de entrada da ode45 o
intervalo de simulao, o terceiro o valor inicial.
Teste a soluo via Matlab apresentada e depois faa um script m-file para
calcular o erro entre os valores da soluo analtica e os da simulao e mostre o
resultado em um grfico. Descubra como reduzir este erro.
O segundo exemplo resolve uma equao diferencial no linear de primeira
ordem com entrada u(t) e condio inicial nula. Para equaes diferenciais no
lineares, comum no existir soluo analtica, restando apenas soluo numrica.
Equao diferencial no linear de 1 ordem e sua condio inicial:

() + 2() = (), (0) = 1


Soluo numrica via Matlab:

% Definio da function que descreve a equao


% diferencial no linear de primeira ordem

function xp = NLPriOrd(t,x);
u = 0;
xp = u - 2*sqrt(x);

% Soluo numrica da equao diferencial e exibio do resultado


xo = 1;
ts = [0 ?];
[t,x] = ode45('NLPriOrd',ts,xo);
plot(t,x)

Solucione esta equao para u = 1, u = 2 e u = 4 com condio inicial nula.


Compare os valores de regime permanente e os tempos de estabilizao dos trs
casos. Faa o mesmo para o sistema linear e conclua sobre as diferenas entre eles.
No terceiro exemplo, uma equao diferencial linear de segunda ordem
abordada. Neste caso, h necessidade de express-la como um sistema de equaes
diferenciais de primeira ordem (na forma de uma equao matricial de estado).
Equao diferencial de 2 ordem e suas condies iniciais:
() + 2 () + 4() = 4(), (0) = 0, (0) = 0
A equao de estado obtida definindo os estados e derivando-os em relao ao
tempo:
x1 x x1 x2

x2 x x 2 4 x1 2 x2 4u
Soluo analtica para entrada degrau unitrio:
2
() = 1 sen(3 + )
3 3
Soluo numrica via Matlab:

% Definio da function que descreve a equao


% diferencial linear de segunda ordem

function xp = LSegOrd(t,x);
u = 1;
xp = [0 1; -4 -2]*x + [0; 4]*u;

% Soluo numrica da equao diferencial e exibio do resultado

xo = [0; 0]; % condies iniciais


ts = [0 5]; % intervalo de simulao
[t,x] = ode45('LSegOrd',ts,xo);
subplot(211);
plot(t,x(:,1)); grid on
xlabel('t [s]'); ylabel('x_1(t)')

subplot(212);
plot(t,x(:,2)); grid on
xlabel('t [s]'); ylabel('x_2(t)')

A execuo deste script produz os seguintes resultados para os estados


definidos. Compare os resultados obtidos usando mtodos numricos com a soluo
analtica fornecida.

1.5

1
x (t)
1

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
t [s]

1.5

1
x (t)

0.5
2

-0.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
t [s]

You might also like