Seminario de Resolucion de EDOs en Matlab

13
Resolución de EDOs en Matlab Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 1 e de Ingeniería de tomática MODELADO DE SISTEMAS Resolución de Ecuaciones Diferenciales Ordinarias (EDOs) con Matlab Departamento Sistemas y Aut Vicente Arévalo [email protected] e Resolución de EDOs Transformada de Laplace (tema 3) Linealizar las ecuaciones Aplicar la transformada de Laplace Î Ecuación algebraica Aplicar la transformada inversa de LaplaceÎ Solución en el tiempo de Ingeniería de tomática Empleando métodos numéricos (estimaciones): Método de Euler Predictor -corrector Runge-Kutta (distintos órdenes) Runge-Kutta-Fehlberg (paso adaptativo) Adams-Bashforth (multipaso explícitos) Departamento Sistemas y Aut Vicente Arévalo [email protected] Adams-Moulton (multipaso implícitos)

Transcript of Seminario de Resolucion de EDOs en Matlab

Page 1: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 1

e de

Inge

nier

ía d

eto

mát

ica MODELADO DE SISTEMAS

Resolución de Ecuaciones Diferenciales Ordinarias (EDOs) con Matlab

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

( )

e

Resolución de EDOs

• Transformada de Laplace (tema 3)– Linealizar las ecuaciones– Aplicar la transformada de Laplace Ecuación algebraica– Aplicar la transformada inversa de Laplace Solución en el tiempo

de In

geni

ería

de

tom

átic

a

• Empleando métodos numéricos (estimaciones):– Método de Euler– Predictor -corrector– Runge-Kutta (distintos órdenes)– Runge-Kutta-Fehlberg (paso adaptativo)– Adams-Bashforth (multipaso explícitos)

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

( p p )– Adams-Moulton (multipaso implícitos)

Page 2: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 2

e Método de Euler

• Dada la siguiente EDO:

(1) α=≤≤== )(,,),()(' aybtaytfdtdyty

de In

geni

ería

de

tom

átic

a

• Del teorema de Taylor se sabe que:

(2)

donde y′(ti) es la ecuación diferencial evaluada en ti e yi

• Sustituyendo en (2) y’i por la expresión (1) se tiene:

1 1( ) ( ) '( ) , ( )i i i i iy t y t y t h h t t+ += + + = −L

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

1 ( , )i i i iy y f t y h+ = +

e

Método de Eulery Predicho

Verdadero

Error

1 ( , )i i i iy y f t x h+ = +

de In

geni

ería

de

tom

átic

a

' ( , )i iy f t x= pendiente =

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

ti ti+1

tTamaño del paso, h

Page 3: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 3

e Método de Euler

yfSolución Non-Stiff

de In

geni

ería

de

tom

átic

a

Errores ↑Eficiencia ↓

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

ti+1

th

ti

e

Método de Eulery

fSolución Non-Stiff

de In

geni

ería

de

tom

átic

a

Errores ↓ Eficiencia ↓↓

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

ti+1

th

ti

Page 4: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 4

e Método de Euler

ySolución Stiff

de In

geni

ería

de

tom

átic

aD

epar

tam

ento

Si

stem

as y

Au t

Vicente Aré[email protected]

ti+1

th

ti

hn

e

Resolución de EDOs

• Transformada de Laplace (Tema 3)– Linealizar las ecuaciones– Aplicar la transformada de Laplace Ecuación algebraica– Aplicar la transformada inversa de Laplace Solución en el tiempo

de In

geni

ería

de

tom

átic

a

• Empleando métodos numéricos (estimaciones):– Método de Euler– Predictor -corrector– Runge-Kutta (distintos órdenes)– Runge-Kutta-Fehlberg (paso adaptativo)– Adams-Bashforth (multipaso explícitos)

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

( p p )– Adams-Moulton (multipaso implícitos)

Page 5: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 5

e Resolución de EDOs en Matlab

• Matlab:– Instrucciones odeXX

• ode23, ode45, ode15s, ode23s, etc.

Si li k

de In

geni

ería

de

tom

átic

a

– Simulink• Facilita el diseño y simulación de sistemas complejos• Encapsula las instrucciones odeXX• Funcionamiento transparente al usuario

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

e

Las instrucciones odeXXX (I)

• Sintaxis:

– [T,Y] = solver(odefun,tspan,y0)– [T,Y] = solver(odefun,tspan,y0,options)

de In

geni

ería

de

tom

átic

a

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

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

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

Page 6: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 6

e 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

de In

geni

ería

de

tom

átic

a

• 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

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

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

• ODE23TB:– Stiff, Implicit Ringe-Kutta type algorithm, orders 2 and 3

e

La instrucción ode45 (I)

• EDO de primer orden:

• Ejemplo:2

0 0

' ( , )( )

y f t yy t y=⎧

⎨ =⎩

de In

geni

ería

de

tom

átic

a

1. Poner la edo en la forma e implementar la función en Matlab:

2 Ejecutar el solver por ejemplo: ode45

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

' ( , )y f t y=

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

return;

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

2. Ejecutar el solver, por ejemplo: ode45

3. Y mostramos los resultados

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

plot(t,y,’+’)

Page 7: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 7

e La instrucción ode45 (II)

• EDO de segundo orden:

1 C ti l d i t i l t d i d i

0 0

0 1

'' ( ) ' ( ) ( )( )'( )

y p t y q t y g ty t yy t y

+ + =⎧⎪ =⎨⎪ =⎩

de In

geni

ería

de

tom

átic

a

1. Convertir la edo a su sistema equivalente de ecuaciones de primer orden:

1

21 0 0 2 0 1

1 2

2 2 1

', ( ) , ( )

'' ( ) ( ) ( )

x yx y

x t y x t yx xx p t x q t x g t

=⎧⎪ =⎪ = =⎨ =⎪⎪ = − − +⎩

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

2. Proceder de forma análoga al caso de una edo de primer orden.

e

La instrucción ode45 (III)

• EDO de segundo orden:

• Ejemplo:

0 0

0 1

'' ( ) ' ( ) ( )( )'( )

y p t y q t y g ty t yy t y

+ + =⎧⎪ =⎨⎪ =⎩

x y=⎧

de In

geni

ería

de

tom

átic

a

1.2. Implementar la función en Matlab en su forma vectorial.

1

21 0 0 2 0 1

1 2

2 1 2

', ( ) , ( )

'' 3sin 2t

x yx y

x t y x t yx xx tx e x t

=⎧⎪ =⎪ = =⎨ =⎪⎪ = − + +⎩

f i ( )

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

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

return;

Page 8: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 8

e La instrucción ode45 (IV)

• EDO de segundo orden:1.2.

0 0

0 1

'' ( ) ' ( ) ( )( )'( )

y p t y q t y g ty t yy t y

+ + =⎧⎪ =⎨⎪ =⎩

de In

geni

ería

de

tom

átic

a

3. Ejecutar el solver, por ejemplo: ode45

4. Y mostramos los resultados

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

figuresubplot(1,2,1); % primera componente x1 = yplot(t,x(:,1));xlabel('Tiempo');

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

( 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;

e

La instrucción ode45 (y V)

• EDO de segundo orden:1.2.

0 0

0 1

'' ( ) ' ( ) ( )( )'( )

y p t y q t y g ty t yy t y

+ + =⎧⎪ =⎨⎪ =⎩

de In

geni

ería

de

tom

átic

a

3. Ejecutar el solver, por ejemplo: ode45

4. Y mostramos los resultados: plano de fase

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

figure

plot(x(:,1),x(:,2));title('plano de fase')

odeXX

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

( p )xlabel('x_1 = y');ylabel('x_2 = dy');grid;

Page 9: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 9

e Resolución de EDOs en Matlab

• Matlab:– Instrucciones odeXX

• ode23, ode45, ode15s, ode23s, etc.

Si li k

de In

geni

ería

de

tom

átic

a

– Simulink:• Facilita el diseño y simulación de sistemas complejos• Encapsula las instrucciones odeXX• Funcionamiento transparente al usuario

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

e

Introducción a Simulink

• Simulink es una herramienta visual (“drag and drop”) para la simulación de señales y sistemas dinámicos.

– Permite al usuario concentrarse en la estructura del problema en lugar de preocuparse por el lenguaje de programación.

de In

geni

ería

de

tom

átic

a

g j g

– Los parámetros de cada bloque pueden ser modificados por el usuario (botón derecho del ratón).

– Los sistemas y señales son simulados durante un periodo de tiempo concreto y configurable por el usuario.

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

Page 10: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 10

e Introducción a Simulink

• Simulink es una herramienta visual (“drag and drop”) para la simulación de señales y sistemas dinámicos.

– Permite al usuario concentrarse en la estructura del problema, en lugar de preocuparse por el lenguaje de programación.

de In

geni

ería

de

tom

átic

a

g j g

– Los parámetros de cada bloque pueden ser modificados por el usuario (botón derecho del ratón).

– Los sistemas y señales son simulados durante un periodo de tiempo concreto y configurable por el usuario.

• Simulink dispone de dos grandes conjuntos de librerías para la construcción de sistemas:

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

construcción de sistemas:– Signals: “Sources” y “Sinks”– Systems: “Continuous” y “Discrete”

e

Introducción a Simulink

• Simulink es una herramienta visual (“drag and drop”) para la simulación de señales y sistemas dinámicos.

– Permite al usuario concentrarse en la estructura del problema, en lugar de preocuparse por el lenguaje de programación.

de In

geni

ería

de

tom

átic

a

g j g

– Los parámetros de cada bloque pueden ser modificados por el usuario (botón derecho del ratón).

– Los sistemas y señales son simulados durante un periodo de tiempo concreto y configurable por el usuario.

• Simulink dispone de dos grandes conjuntos de librerías para la construcción de sistemas:

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

construcción de sistemas:– Signals: “Sources” y “Sinks”– Systems: “Continuous” y “Discrete”

Page 11: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 11

e 1. Escribir simulink en el prompt de

Matlab.

2. Hacer click en la opción “File-New” para crear un nuevo “Workspace”

Un ejemplo simple (I)de

Inge

nier

ía d

eto

mát

ica

para crear un nuevo 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).

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

p )

5. Establecer la frecuencia de la fuente “sine wave” a 2 rad/s

6. Abrir el “scope” y ejecutar la simulación.

e

1. Sin cerrar el “scope”, modificar los parámetros de la fuente “sine wave”.

2. Ejecutar de nuevo la simulación.

Un ejemplo simple (II)

de In

geni

ería

de

tom

átic

a

2. Ejecutar de nuevo la simulación.

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

Page 12: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 12

e

1. Sin cerrar el “scope”, modificar los parámetros de la simulación.

2. Ejecutar de nuevo la simulación.

Un ejemplo simple (y III)de

Inge

nier

ía d

eto

mát

ica

2. Ejecutar de nuevo la simulación.

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

e

Resolución de EDOs en Simulink

• EDO de primer orden:

Modelo de propagación de una llama

2 3

(0)y y yy δ

⎧ = −⎨

=⎩

&

de In

geni

ería

de

tom

átic

a

– Modelo de propagación de una llama.– Simular el modelo desde para valores de de y 0 2t δ< < δ 210− 510−

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

Page 13: Seminario de Resolucion de EDOs en Matlab

Resolución de EDOs en Matlab

Vicente Arévalo, Dpto. de Ingeniería de Sistemas y Automática 13

e Resolución de EDOs en Simulink

• EDO de primer orden:

Modelo de propagación de una llama

2 3

(0)y y yy δ

⎧ = −⎨

=⎩

&

de In

geni

ería

de

tom

átic

a

– Modelo de propagación de una llama.– Simular el modelo desde para valores de de y 0 2t δ< < δ 210− 510−

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]

e de

Inge

nier

ía d

eto

mát

ica

Dep

arta

men

to

Sist

emas

y A

u t

Vicente Aré[email protected]