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)
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
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
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)
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]
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,’+’)
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;
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;
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]
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”
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]
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]
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]
Top Related