Está en la página 1de 13

Resolucin de EDOs en Matlab

Departamento de Ingeniera de e Sistemas y Aut tomtica

MODELADO DE SISTEMAS
Resolucin de Ecuaciones Diferenciales Ordinarias (EDOs) con Matlab ( )

Vicente Arvalo varevalo@ctima.uma.es

Resolucin de EDOs
Transformada de Laplace (tema 3)
Linealizar las ecuaciones Aplicar la transformada de Laplace Ecuacin algebraica Aplicar la transformada inversa de Laplace Solucin en el tiempo

Departamento de Ingeniera de e Sistemas y Aut tomtica

Empleando mtodos numricos (estimaciones):


Mtodo de Euler Predictor -corrector Runge-Kutta (distintos rdenes) Runge-Kutta-Fehlberg (paso adaptativo) Adams-Bashforth (multipaso explcitos) ( p p ) Adams-Moulton (multipaso implcitos)

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

Mtodo de Euler
(1) Dada la siguiente EDO:

y ' (t ) =

Departamento de Ingeniera de e Sistemas y Aut tomtica

dy = f (t , y ) , dt

a t b,

y (a ) =

(2)

Del teorema de Taylor se sabe que:

y (ti +1 ) = y (ti ) + y '(ti ) h +L,

h = (ti +1 ti )

donde y(ti) es la ecuacin diferencial evaluada en ti e yi Sustituyendo en (2) yi por la expresin (1) se tiene:

yi +1 = yi + f (ti , yi ) h

Vicente Arvalo varevalo@ctima.uma.es

Mtodo de Euler y
yi +1 = yi + f (ti , xi ) h
Predicho

Error
Verdadero

Departamento de Ingeniera de e Sistemas y Aut tomtica

y ' = pendiente = f (ti , xi )

t
ti
Tamao del paso, h
Vicente Arvalo varevalo@ctima.uma.es

ti+1

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

Mtodo de Euler y
Solucin Non-Stiff f Departamento de Ingeniera de e Sistemas y Aut tomtica

Errores

Eficiencia

t
ti+1
Vicente Arvalo varevalo@ctima.uma.es

ti

Mtodo de Euler y
Solucin Non-Stiff f Departamento de Ingeniera de e Sistemas y Aut tomtica

Errores

Eficiencia

t
Vicente Arvalo varevalo@ctima.uma.es

ti ti+1

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

Mtodo de Euler y
Solucin Stiff Departamento de Ingeniera de e Sistemas y Aut tomtica

hn

ti ti+1
Vicente Arvalo varevalo@ctima.uma.es

Resolucin de EDOs
Transformada de Laplace (Tema 3)
Linealizar las ecuaciones Aplicar la transformada de Laplace Ecuacin algebraica Aplicar la transformada inversa de Laplace Solucin en el tiempo

Departamento de Ingeniera de e Sistemas y Aut tomtica

Empleando mtodos numricos (estimaciones):


Mtodo de Euler Predictor -corrector Runge-Kutta (distintos rdenes) Runge-Kutta-Fehlberg (paso adaptativo) Adams-Bashforth (multipaso explcitos) ( p p ) Adams-Moulton (multipaso implcitos)

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

Resolucin de EDOs en Matlab


Matlab:
Instrucciones odeXX
ode23, ode45, ode15s, ode23s, etc.

Departamento de Ingeniera de e Sistemas y Aut tomtica

Si li k Simulink
Facilita el diseo y simulacin de sistemas complejos Encapsula las instrucciones odeXX Funcionamiento transparente al usuario

Vicente Arvalo varevalo@ctima.uma.es

Las instrucciones odeXXX (I)


Sintaxis:
[T,Y] = solver(odefun,tspan,y0) [T,Y] = solver(odefun,tspan,y0,options) [T,Y,TE,YE,IE] = solver(odefun,tspan,y0,options) sol = solver(odefun,[t0 tf],y0...)

Departamento de Ingeniera de e Sistemas y Aut tomtica

donde solver es una de las siguientes instrucciones: ode45, ode23, ode113, ode15s, ode23s, ode23t, or ode23tb.

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

Las instrucciones odeXXX (y II)


ODE23:
Nonstiff, Explicit Runge-Kutta pair, order 2 and 3

ODE45:
Nonstiff, Explicit Runge-Kutta pair, order 4 and 5

Departamento de Ingeniera de e Sistemas y Aut tomtica

ODE113:
Nonstiff, Explicit linear multistep, orders 1 to 13

ODE15S:
Stiff, Implicit linear multistep, orders 1 to 5

ODE23S:
Stiff, Modified Rosenbrock pair (one-step), orders 2 and 3

ODE23T:
Mildly stiff, Trapezoidal rule (implicit), orders 2 and 3

ODE23TB:
Stiff, Implicit Ringe-Kutta type algorithm, orders 2 and 3
Vicente Arvalo varevalo@ctima.uma.es

La instruccin ode45 (I)


EDO de primer orden: Ejemplo:

y ' = f (t , y ) y (t0 ) = y0

Departamento de Ingeniera de e Sistemas y Aut tomtica

t 2 y ' = y + 3t , y (1) = 2,1 t 4


y ' = f (t , y )e implementar la funcin en

1. Poner la edo en la forma Matlab:

function res = yp(t, y) res = (y + 3 * t) ./ t.^2; return;

2. 2 Ejecutar el solver por ejemplo: ode45 solver,


[t, y] = ode45(@yp, [1, 4], -2);

3. Y mostramos los resultados


plot(t,y,+)
Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

La instruccin ode45 (II)


y ''+ p(t ) y '+ q(t ) y = g (t ) EDO de segundo orden: y (t0 ) = y0 y '(t ) = y 1 0

Departamento de Ingeniera de e Sistemas y Aut tomtica

1. Convertir l edo a su sistema equivalente d ecuaciones d primer 1 C ti la d i t i l t de i de i orden:

x1 = y x = y ' 2 , x1 (t0 ) = y0 , x2 (t0 ) = y1 x '1 = x2 x '2 = p(t ) x2 q(t ) x1 + g (t )


2. Proceder de forma anloga al caso de una edo de primer orden.

Vicente Arvalo varevalo@ctima.uma.es

La instruccin ode45 (III)


y ''+ p(t ) y '+ q(t ) y = g (t ) EDO de segundo orden: y (t0 ) = y0 y '(t ) = y 1 0 Ejemplo: x1 = y x = y ' 2 , x1 (t0 ) = y0 , x2 (t0 ) = y1 x '1 = x2 x '2 = tx1 + et x2 + 3sin 2t
1. 2. Implementar la funcin en Matlab en su forma vectorial.

Departamento de Ingeniera de e Sistemas y Aut tomtica

function xp=F(t,x) f i ( ) xp=zeros(2,1); % output must be a column vector xp(1)=x(2); xp(2)=-t*x(1)+exp(t)*x(2)+3*sin(2*t); return;

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

La instruccin ode45 (IV)


y ''+ p(t ) y '+ q(t ) y = g (t ) EDO de segundo orden: y (t0 ) = y0 1. y '(t ) = y 1 0

Departamento de Ingeniera de e Sistemas y Aut tomtica

2. 3. Ejecutar el solver, por ejemplo: ode45

[t, x] = ode45(@F, [0, 4], [2 8]);

4. Y mostramos los resultados


figure subplot(1,2,1); % primera componente x1 = y plot(t,x(:,1)); xlabel('Tiempo'); ( p ); ylabel('x_1 = y'); grid; subplot(1,2,2); % segunda componente x2 = y plot(t,x(:,2)); xlabel('Tiempo'); ylabel('x_2 = dy'); grid; Vicente Arvalo
varevalo@ctima.uma.es

La instruccin ode45 (y V)
y ''+ p(t ) y '+ q(t ) y = g (t ) EDO de segundo orden: y (t0 ) = y0 1. y '(t ) = y 1 0

Departamento de Ingeniera de e Sistemas y Aut tomtica

2. 3. Ejecutar el solver, por ejemplo: ode45

[t, x] = ode45(@F, [0, 4], [2 8]);

4. Y mostramos los resultados: plano de fase odeXX


figure plot(x(:,1),x(:,2)); title('plano de fase') ( p ) xlabel('x_1 = y'); ylabel('x_2 = dy'); grid;

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

Resolucin de EDOs en Matlab


Matlab:
Instrucciones odeXX
ode23, ode45, ode15s, ode23s, etc.

Departamento de Ingeniera de e Sistemas y Aut tomtica

Si li k Simulink:
Facilita el diseo y simulacin de sistemas complejos Encapsula las instrucciones odeXX Funcionamiento transparente al usuario

Vicente Arvalo varevalo@ctima.uma.es

Introduccin a Simulink
Simulink es una herramienta visual (drag and drop) para la simulacin de seales y sistemas dinmicos.
Permite al usuario concentrarse en la estructura del problema en lugar de preocuparse por el lenguaje de programacin. g j g Los parmetros de cada bloque pueden ser modificados por el usuario (botn derecho del ratn). Los sistemas y seales son simulados durante un periodo de tiempo concreto y configurable por el usuario.

Departamento de Ingeniera de e Sistemas y Aut tomtica

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

Resolucin de EDOs en Matlab

Introduccin a Simulink
Simulink es una herramienta visual (drag and drop) para la simulacin de seales y sistemas dinmicos.
Permite al usuario concentrarse en la estructura del problema, en lugar de preocuparse por el lenguaje de programacin. g j g Los parmetros de cada bloque pueden ser modificados por el usuario (botn derecho del ratn). Los sistemas y seales son simulados durante un periodo de tiempo concreto y configurable por el usuario.

Departamento de Ingeniera de e Sistemas y Aut tomtica

Simulink dispone de dos grandes conjuntos de libreras para la construccin de sistemas:


Signals: Sources y Sinks Systems: Continuous y Discrete

Vicente Arvalo varevalo@ctima.uma.es

Introduccin a Simulink
Simulink es una herramienta visual (drag and drop) para la simulacin de seales y sistemas dinmicos.
Permite al usuario concentrarse en la estructura del problema, en lugar de preocuparse por el lenguaje de programacin. g j g Los parmetros de cada bloque pueden ser modificados por el usuario (botn derecho del ratn). Los sistemas y seales son simulados durante un periodo de tiempo concreto y configurable por el usuario.

Departamento de Ingeniera de e Sistemas y Aut tomtica

Simulink dispone de dos grandes conjuntos de libreras para la construccin de sistemas:


Signals: Sources y Sinks Systems: Continuous y Discrete

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

10

Resolucin de EDOs en Matlab

Un ejemplo simple (I)


1. Escribir simulink en el prompt de Matlab. 2. Hacer click en la opcin File-New para crear un nuevo Workspace. Workspace 3. Copiar una fuente sine wave y un visor scope sobre el espacio de trabajo. 4. Conectar la fuente al visor (usa la tecla Ctrl para facilitar esta tarea). p ) 5. Establecer la frecuencia de la fuente sine wave a 2 rad/s 6. Abrir el scope y ejecutar la simulacin.

Departamento de Ingeniera de e Sistemas y Aut tomtica

Vicente Arvalo varevalo@ctima.uma.es

Un ejemplo simple (II)


1. Sin cerrar el scope, modificar los parmetros de la fuente sine wave.

Departamento de Ingeniera de e Sistemas y Aut tomtica

2. Ejecutar de nuevo la simulacin.

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

11

Resolucin de EDOs en Matlab

Un ejemplo simple (y III)


1. Sin cerrar el scope, modificar los parmetros de la simulacin.

Departamento de Ingeniera de e Sistemas y Aut tomtica

2. Ejecutar de nuevo la simulacin.

Vicente Arvalo varevalo@ctima.uma.es

Resolucin de EDOs en Simulink


EDO de primer orden:

y = y 2 y3 & y (0) =

Departamento de Ingeniera de e Sistemas y Aut tomtica

Modelo de propagacin de una llama llama. Simular el modelo desde 0 < t < para valores de

de

102

105

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

12

Resolucin de EDOs en Matlab

Resolucin de EDOs en Simulink


EDO de primer orden:

y = y 2 y3 & y (0) =

Departamento de Ingeniera de e Sistemas y Aut tomtica

Modelo de propagacin de una llama llama. Simular el modelo desde 0 < t < para valores de

de

102

105

Vicente Arvalo varevalo@ctima.uma.es

Departamento de Ingeniera de e Sistemas y Aut tomtica

Vicente Arvalo varevalo@ctima.uma.es

Vicente Arvalo, Dpto. de Ingeniera de Sistemas y Automtica

13