Está en la página 1de 40

TEMA 2.

Aspectos numricos de la
simulacin de sistemas
Objetivos
Entender el concepto bsico de la simulacin digital de sistemas continuos
Conocer los conceptos de algoritmo de integracin, paso de integracin e
intervalo de comunicacin
Distinguir un algoritmo de integracin explcito de uno implcito
Distinguir un algoritmo de integracin de paso fijo de uno de paso variable
Reconocer un sistema stiff y su problemtica en tiempo de simulacin
Saber como se resuelve en tiempo de simulacin una ecuacin algebraica
y un sistema de DAEs implcitas
Reconocer un lazo algebraico y como tratarlo
Saber como se modelan los eventos y como se tratan en un programa de
simulacin continua.
Realizar el diagrama de flujo (pseudocdigo) de un algoritmo que resuelva
un modelo dinmico continuo.
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

TEMA 2. Aspectos numricos de la


simulacin de sistemas
Contenidos:
2.1 El concepto de simulacin digital de sistemas continuos
2.2 Mtodos numricos de resolucin de ODEs: algoritmos de
integracin

Mtodos explcitos
Mtodos implcitos
Mtodos de prediccin-correccin
Errores
Mejoras en la estimacin:extrapolacin
Mtodos de paso variable
Estabilidad
Sistemas stiff

2.3 Mtodos numricos de resolucin de DAEs


2.4 Lazos algebraicos
2.5 Modelado de discontinuidades: eventos

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

2.1 El concepto de simulacin


digital de sistemas continuos
Obtenidos los modelos matemticos que sirven para representar
los sistemas fsicos debemos simularlos (resolver dicho modelo
matemtico usando un ordenador).
Aunque la naturaleza de los modelos matemticos puede ser muy
variada las ecuaciones que forman el modelo se pueden catalogar
en:
ODEs (ordinary differential equations) o EDOs (ecuaciones diferenciales
ordinarias)
Ecuaciones explcitas y causales
De la forma:

x = f ( x, y, t )
y = g( x, t )

DAEs (differential algebraic equations)


Ecuaciones implcitas y no causales
De la forma:

f ( x , x , y , t ) = 0
g( x , y , t ) = 0

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

Ejemplo de ODEs y DAEs:


El sistema mecnico de la figura, en el cual estn presentes tres
fuerzas en la direccin x de desplazamiento: la del muelle -kx y la
friccin viscosa proporcional a la velocidad de desplazamiento del
bloque -a dx/dt y una fuera externa F, se puede obtener un modelo
matemtico sencillo a partir de la aplicacin de la primera ley de
Newton

d 2 x(t )
dx (t )
= F (t ) k x(t ) a
dt 2
dt

ODEs

DAE
2

d x (t )
dx (t )
F (t ) + k x(t ) + a
=0
2
dt
dt

dv(t ) 1
=
( F (t ) k x(t ) a v(t ))
m
dt
dx(t )
= v(t )
dt

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

Existen poderosos algoritmos para la resolucin de ODEs, siendo la


base del mecanismo de simulacin digital de sistemas continuos.
El concepto bsico de la simulacin digital es que:
Para simular sistemas continuos en un ordenador digital, la variable
independiente (en general el tiempo) debe ser discretizada de modo que
las ecuaciones diferenciales se transformen en ecuaciones en
diferencias.
Como todas las variables son funcin de la variable independiente, slo son
calculadas en valores discretos de la variable independiente.
Si la simulacin opera con incrementos constantes de tiempo t, esos instantes
pueden calcularse de la forma ti=to+kt, siendo k=0,1,2,3,4,5,(tmax-to)/t.
As la simulacin comenzar en to y terminar en tmax.

Concepto de paso
de integracin?

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

En los modelos dinmicos continuos existen dos tipos


de variables:
Variables algebraicas, aquellas que no aparecen
diferenciadas a lo largo del tiempo.
Variables de estado, aquellas que aparecen diferenciadas a
lo largo del tiempo y deben calcularse por integracin
numrica.

En el ejemplo del sistema mecnico:


No existen variables algebraicas
Las variables de estado son x(t) y v(t)

dv(t ) 1
=
( F (t ) k x(t ) a v(t ))
m
dt
dx(t )
= v(t )
dt
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

La ecuacin bsica de un modelo matemtico dinmico es de la forma:

y& (t ) = f ( y (t ), u (t ))
De modo que si se quiere conocer el valor de y(t+t) debe recurrir a la
siguiente ecuacin:
t + t

y (t + t ) = y (t ) +

f ( y( ), u( ))d
t

Se supone que u(t) es conocida, pero y(t) no es conocida en (t, t+t), por
tanto f(y(t),u(t)) tampoco es conocida en ese intervalo.
Para resolver la ecuacin anterior se necesita hacer alguna hiptesis sobre su
valor o encontrar algn procedimiento de estimacin. A cada una de estas
aproximaciones corresponder una frmula o algoritmo de integracin.

f(y(t),u(t))?

t-2h

t-h

t+h

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

t
7

2.2 Mtodos numricos de resolucin de ODEs

Mtodos explcitos
Mtodos implcitos
Mtodos de prediccin-correccin
Errores
Mejoras en la estimacin: extrapolacin
Mtodos de paso variable
Problemas numricos:
Estabilidad
Sistemas stiff

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

Mtodos explcitos
Una forma intuitiva de hacer las estimaciones de f(y(t),u(t)) es buscar un
polinomio de orden n que pase por los puntos conocidos f(y(t),u(t)), f(y(t-h),u(th)), ... , f(y(t-nh),u(t-nh)) y extrapolar el valor de f(y(),u()), siendo t<<t+h.
f(y(t),u(t))?

t-2h

t-h

t+h

Mtodos explcitos porque el valor de y(t+h) se obtiene directamente a partir de


valores anteriores:
Aproximaciones
Aproximacin de orden 0 (Euler)
Aproximacin de orden 1(Adams-Bashforth)
Polinomios de extrapolacin
Mtodos de Runge-Kutta
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

Mtodos explcitos: aproximacin de Euler


Aproximacin de orden 0:
Mtodo de Euler
f(y(),u)=f(y(t),u)=constante

f(y(t),u(t))

t+h

y (t + h) = y (t ) +

f ( y( ), u( ))d
t

y(t + h) = y(t ) + h f ( y(t ), u (t ))

t-2h t-h

t+h

Ya disponemos de una frmula iterativa que poder aplicar desde t=0, pero se
necesita el valor de y(t=0).
Se necesita como dato el valor inicial de todas las variables de estado

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

10

Ejemplo: sistema mecnico


y(t + h) = y(t ) + h f ( y(t ), u (t ))

dx(t )
= v(t )
dt
dv(t ) 1
=
( F (t ) k x(t ) a v(t ))
m
dt

Entrada al modelo u(t)=F(t)


Salidas del modelo
y1(t)=x(t)
y2(t)=v(t)
Funciones derivadas:
f1 ( x(t ), v(t ), F (t )) = v(t )
f 2 ( x(t ), v(t ), F (t )) = 1 ( F (t ) k x(t ) a v(t ))
m

Ecuaciones recursivas para simular

x(t + h) = x(t ) + h f1 ( x(t ), v(t ), F (t )) x(t + h) = x(t ) + hv(t )


v(t + h) = v(t ) + h f 2 ( x(t ), v(t ), F (t )) v(t + h) = v(t ) + h ( F (t ) k x(t ) a v(t ))
m
Deben suministrase las condiciones iniciales: x(0) y v(0)
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

11

INICIO
Leer m, k, a, v0, x0

La fuerza es una funcin del


tiempo conocida, F=f(t)

Leer h, tmax
i=1; t(i)=0.; F(i)=f(t(i))
x(i)=x0; v(i)=v(0)
derx= v(i); derv= 1/m(F(i)-kx(i)-av(i))
t(i+1)=t(i)+h

t(i)>tmax

NO

x(i+1)=x(i)+hderx
v(i+1)=v(i)+hderv

SI
FIN

F(i+1)=f(t(i+1))
i=i+1
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

12

Mtodos explcitos: Adams-Bashforth 2 orden


Aproximacin de orden 1:
Mtodo de Adams-Bashforth 2 orden o regla trapezoidal
f ( y ( ), u ( )) = f ( y (t ), u (t )) +

f ( y (t ), u (t )) f ( y (t h), u (t h))
( t )
h

f(y(t),u(t))

t+h

y (t + h) = y (t ) +

f ( y( ), u( ))d
t

h
y(t + h) = y(t) + (3 f ( y(t),u(t)) f ( y(t h),u(t h)))
2

t-2h t-h

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

t+h

13

Ejemplo: sistema mecnico


h
y(t + h) = y(t) + (3 f ( y(t),u(t)) f ( y(t h),u(t h)))
2
dx(t )
= v(t )
dt
dv(t ) 1
=
( F (t ) k x(t ) a v(t ))
m
dt

Ecuaciones recursivas para simular


h
x(t + h) = x(t ) + (3 f1 ( x(t ), v(t ), F (t )) f1 ( x(t h), v(t h), F (t h)) )
2
h
x(t + h) = x(t ) + h(3v(t ) 3v(t h) )
2

h
v(t + h) = v(t ) + (3 f 2 ( x(t ), v(t ), F (t )) f 2 ( x(t h), v(t h), F (t h)) )
2
h
v(t + h) = v(t ) + 3 1 ( F (t ) k x(t ) a v(t )) 1 ( F (t h) k x(t h) a v(t h))
m
m
2

[(

)(

)]

Deben suministrase las condiciones iniciales: x(0) y v(0)


Tambin debe hacerse una estimacin de x(-h) y v(-h)
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

14

Mtodos explcitos: polinomios de extrapolacin


Una expresin general del polinomio de extrapolacin que pasa por los puntos
f(y(t),u(t)), f(y(t-h), u(t-h)), ..., f(y(t-nh), u(t-nh)) es:
f(y( ), u( )) = f(y(t),u(t)) + f(y(t),u(t))+

(+1) 2
(+1) (+ n1) n
f(y(t),u(t))
f(y(t),u(t))+ +
2!
n!

( t)
h
f(y(t),u(t))= f(y(t),u(t)) f(y(t h),u(t h))

Siendo: =

2 f(y(t),u(t))= ( f(y(t),u(t)))= f(y(t),u(t)) f(y(t h),u(t h)) (f(y(t h),u(t h)) f(y(t 2 h),u(t 2 h))) =
= f(y(t),u(t)) 2 f(y(t h),u(t h))+ f(y(t 2 h),u(t 2 h))

Se selecciona el orden de la
extrapolacin y se sustituye en:

t +h

y (t + h) = y (t ) + f ( y ( ), u ( ) )d
t

Ejemplo mtodo de Adams-Bashforth 4 orden


y (t + h) = y (t ) +

h 55 f ( y (t ), u (t )) 59 f ( y (t h), u (t h)) +

24 + 37 f ( y (t 2h), u (t 2h)) 9 f ( y (t 3h), u (t 3h))

Problema: inicializacin del mtodo


Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

15

Mtodos explcitos: mtodos de Runge-Kutta


Otro procedimiento general para obtener algoritmos explcitos es hacer un
desarrollo en serie de Taylor de la funcin y(t+h) en torno a y(t) y truncar la serie
en un determinado trmino
h2
h 2 df ( y (t ), u (t ))
y(t ) + = y (t ) + h f ( y (t ), u (t )) +
+ =
dt
2!
2!
h 2 f ( y (t ), u (t )) dy (t ) f ( y (t ), u (t )) du (t )
+ =
= y (t ) + h f ( y (t ), u (t )) +
+
dt
dt
y
u
2!
y (t + h) = y (t ) + h y(t ) +

y (t ) + h f ( y (t ), u (t )) +

h2
du (t )
f y f ( y (t ), u (t )) + f u
+
dt
2!

Si en la expresin previa seleccionamos los trminos hasta orden 1 tenemos el


mtodo de Euler

y (t + h) = y (t ) + h f ( y (t ), u (t ))
En general el problema es que deben estimarse unas derivadas parciales: fy y fu
Solucin mtodos de Runge-Kutta
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

16

Mtodos explcitos: mtodos de Runge-Kutta


Los mtodos de Runge-Kutta tratan de sustituir dichas derivadas por
evaluaciones de la funcin en puntos intermedios a t y t+h, con la condicin de
obtener la misma precisin.
Ejemplo: Runge-Kutta 2 orden
Se trata de encontrar los coeficientes de la ecuacin w1, w2 y de la
ecuacin: y (t + h) = y (t ) + h( w1 f ( y (t ), u (t )) + w2 f ( y (t + h), u (t + h)))

y (t + h) = y (t ) + h(w1 f ( y (t ), u (t ) ) + w2 f ( y ( ), u ( ) ))

= t + h
De modo que tenga la misma precisin que el desarrollo en serie truncado en
el trmino de segundo orden
h 2 f ( y (t ), u (t ))
f ( y (t ), u (t )) du (t )
y (t + h) = y (t ) + h f ( y (t ), u (t )) +
f ( y (t ), u (t )) +

2!
dt
y
u
y (t + h) = y (t ) + h f ( y (t ), u (t )) +

h2
2!

du (t )

f y f ( y (t ), u (t )) + f u dt

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

17

Mtodos explcitos: mtodos de Runge-Kutta


Sabiendo que: y ( ) = y (t + h) = y (t ) + h f ( y (t ), u (t ))

y (t ) = f ( y (t ), u (t )) y ( ) = f ( y ( ), u ( ))
Derivando y() respecto a :
dy ( ) d
dt d
d
=
( y (t ) + h f ( y (t ), u (t ))) =
( y (t ) + h f ( y (t ), u (t ))) = ( y (t ) + h f ( y (t ), u (t )))
d
d
d dt
dt
d
d
f ( y ( ), u ( )) = ( y (t ) + h f ( y (t ), u (t ))) = y(t ) + h ( f ( y (t ), u (t )))
dt
dt
f ( y , u )
f ( y, u ) du (t )

f ( y ( ), u ( )) = f ( y (t ), u (t )) + h
f ( y (t ), u (t )) +

u
y
dt

Sustituyendo en: y (t + h) = y (t ) + h( w1 f ( y (t ), u (t )) + w2 f ( y ( ), u ( )))


f ( y (t ), u (t ))
f ( y (t ), u (t )) du (t )
y (t + h) = y (t ) + h( w1 + w2 ) f ( y (t ), u (t )) + w2 h 2
f ( y (t ), u (t )) +
y
u
dt

du (t )

y (t + h) = y (t ) + h( w1 + w2 ) f ( y (t ), u (t )) + w2 h 2 f y f ( y (t ), u (t )) + f u
dt

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

18

Mtodos explcitos: mtodos de Runge-Kutta


Comparando con el desarrollo en serie hasta el 2 orden:
y (t + h) = y (t ) + h f ( y (t ), u (t )) +

h2
du (t )
f y f ( y (t ), u (t )) + f u
dt
2!

du (t )

y (t + h) = y (t ) + h( w1 + w2 ) f ( y (t ), u (t )) + w2 h 2 f y f ( y (t ), u (t )) + f u
dt

Igualando coeficientes:

w1 + w2 = 1

w2 = 1 2

Sistema compatible indeterminado:


Infinitas soluciones
La solucin correspondiente a w1=0, w2=1 y =0.5 es conocida como
Runge-Kutta de 2 orden:

y (t + h) = y (t ) + h f ( y (t ) + 0.5 h f ( y (t ), u (t )), u (t + 0.5h))


Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

19

Ejemplo: sistema mecnico


y (t + h) = y (t ) + h f ( y (t ) + 0.5 h f ( y (t ), u (t )), u (t + 0.5h))

dx(t )
= v(t )
dt
dv(t ) 1
=
( F (t ) k x(t ) a v(t ))
m
dt

Entrada al modelo u(t)=F(t)


Salidas del modelo
y1(t)=x(t)
y2(t)=v(t)
Funciones derivadas:
f1 ( x(t ), v(t ), F (t )) = v(t )
f 2 ( x(t ), v(t ), F (t )) = 1 ( F (t ) k x(t ) a v(t ))
m

Ecuaciones recursivas para simular

x(t + h) = x(t ) + h v(t ) + 0.5h ( F (t ) k x(t ) a v(t ))


m
v(t + h) = v(t ) + h F (t + 0.5h) k (x(t ) + 0.5hv(t ) ) a v(t ) + 0.5h ( F (t ) k x(t ) a v(t ))
m
m

))

Deben suministrase las condiciones iniciales: x(0) y v(0)


Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

20

10

Mtodos explcitos: Runge-Kutta 4 orden


Y1 = y (t )
h
Y2 = y (t ) + f (Y1 , u (t ))
2
h
Y3 = y (t ) + f (Y2 , u (t + 0.5h))
2
Y4 = y (t ) + h f (Y3 , u (t + 0.5h))
h
y (t + h) = y (t ) + ( f (Y1 , u (t )) + 2 f (Y2 , u (t + 0.5h))
6
+ 2 f (Y3 , u (t + 0.5h)) + 2 f (Y4 , u (t + h)))
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

21

Mtodos implcitos
Otra forma de usar las tcnicas de extrapolacin
para la estimacin de f(y()) es incluir el punto
f(y(t+h)) entre los puntos por los que debe
pasar el polinomio de extrapolacin.
As, por ejemplo cuando elegimos el polinomio
de orden 0 que pase por f(y(t+h)) tendremos
que f(y())=f(y(t+h))=cte
t +h

Sustituyendo en:

y (t + h) = y (t ) +

f ( y ( )) d

f(y(t),u(t))

t-2h t-h

t+h

Se obtiene que: y ( t + h ) = y ( t ) + h f ( y ( t + h ), u ( t + h ))
Este mtodo recibe el nombre de Euler implcito.
La diferencia esencial con el mtodo de Euler es que debemos resolver una
ecuacin generalmente no lineal para encontrar y(t+h).
A pesar de la evidente complejidad en el clculo de la solucin que los
mtodos implcitos presentan frente a los explcitos suelen ser preferibles en
cuanto a la estabilidad de la solucin numrica.
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

22

11

Ejemplo: sistema mecnico


y(t + h) = y(t ) + h f ( y(t + h), u (t + h))

dx(t )
= v(t )
dt
dv(t ) 1
( F (t ) k x(t ) a v(t ))
=
m
dt

Entrada al modelo u(t)=F(t)


Salidas del modelo
y1(t)=x(t)
y2(t)=v(t)
Funciones derivadas:
f1 ( x(t ), v(t ), F (t )) = v(t )
f 2 ( x(t ), v(t ), F (t )) = 1 ( F (t ) k x(t ) a v(t ))
m

Ecuaciones recursivas para simular

x(t + h) = x(t ) + h f1 ( x (t + h), v(t + h), F (t + h)) x(t + h) = x(t ) + hv(t + h)


v(t + h) = v(t ) + h f 2 ( x (t + h), v(t + h), F (t + h)) v(t + h) = v(t ) + h ( F (t + h) k x(t + h) a v(t + h))
m

Deben suministrarse las condiciones iniciales: x(0) y v(0)


Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

23

Ejemplo: sistema mecnico


Ecuaciones recursivas para simular
x(t + h) = x(t ) + h f1 ( x(t + h), v(t + h), F (t + h)) x (t + h) = x(t ) + hv (t + h)
v(t + h) = v(t ) + h f 2 ( x(t + h), v(t + h), F (t + h)) v(t + h) = v(t ) + h ( F (t + h) k x(t + h) a v(t + h))
m

Estas ecuaciones no se pueden resolver directamente, son ecuaciones


implcitas:
x(t+h) depende de v(t+h), que no se conoce y que depende a su vez
de x(t+h)
v(t+h) depende de si mismo y de x(t+h), que no se conoce, y que
depende a su vez de v(t+h)
Se puede tratar de despejar x(t+h) y v(t+h) en funcin de x(t), v(t) y
F(t+h), que son datos conocidos en el instante t
Pero no es un procedimiento general, y en ocasiones puede suceder
que no se pueda despejar
Se puede utilizar un mtodo para resolver ecuaciones implcitas
Es un procedimiento general, pero de elevado coste computacional
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

24

12

Mtodos implcitos de orden 1


Usando la expresin para un polinomio de
orden 1 que deba pasar por los puntos
f(y(t),u(t)) y f(y(t+h),u(t+h))
f ( y ( ), u ( )) = f ( y (t ), u (t )) +

f(y(t),u(t))

f ( y(t + h), u (t + h)) f ( y(t ), u (t ))


( t )
h
t+h

Sustituyendo en:

y (t + h) = y (t ) +

Se obtiene que: y (t + h) = y (t ) +

f ( y( ), u)d

t-2h t-h

t+h

h t
( f ( y (t ), u (t )) + f ( y (t + h), u (t + h)))
2

Este mtodo recibe el nombre de Euler modificado, regla trapezoidal o mtodo


de Crank-Nicolson.

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

25

Mtodos implcitos de orden n


Una expresin general del polinomio de extrapolacin que pasa por los puntos
f(y(t+h),u(t+h)), f(y(t),u(t)), f(y(t-h),u(t-h)), ..., f(y(t-nh),u(t-nh)) es:
( + 1)

2 f ( y(t + h), u(t + h)) +


2!
( +1) ( + n 1) n
( (t + h))
f ( y(t + h), u(t + h)). Siendo: =
... +
n!
h
f ( y(t + h), u(t + h)) = f ( y(t + h), u(t + h)) f ( y(t ), u(t ))
f ( y( ), u( )) = f ( y(t + h), u(t + h)) + f ( y(t + h), u(t + h)) +

2 f ( y(t + h), u(t + h)) = (f ( y(t + h), u(t + h))) =

( f ( y(t + h),u(t + h)) f ( y(t),u(t))) ( f ( y(t),u(t)) f ( y(t h),u(t h))) =

= f ( y(t + h),u(t + h)) 2( f ( y(t ), u(t )) + f ( y(t h), u(t h))


...
t+h

Sustituyendo en:

y (t + h) = y (t ) +

Todas las expresiones anteriores


pueden reducirse a la forma:

f ( y( ), u( ))d
t

y (t + h) = h f ( y (t + h), u (t + h)) +

Donde representa a los trminos conocidos en t y un coeficiente conocido.


Necesitan resolver una ecuacin algebraica en cada iteracin. Pueden emplearse
varios mtodos, por ejemplo sustituciones sucesivas Newton-Raphson
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

26

13

Resolucin de ecuaciones implcitas:


mtodo de aproximaciones sucesivas
x = h f ( x, u ) + a

Sea la ecuacin implcita:

Partiendo de un valor inicial xo se sustituye en la parte derecha de la


ecuacin obteniendo como resultado la siguiente estima x1:

x1 = h f ( x0 , u ) + a
Iteramos utilizando la ecuacin: xi +1 = h f ( xi , u ) + a
Hasta que la diferencia entre dos estimas consecutivas
sea menor que una determinada tolerancia epsilon ():

El mtodo converge siempre que:

xi +1 xi

f
<1
x

As, si en N iteraciones no hay convergencia, disminuyendo h se asegura la


convergencia.
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

INICIO

27

La fuerza es una
funcin del tiempo
conocida, F=f(t)

Estima inicial del valor de x(i+1) e v(i+1), por ejemplo el


valor de esas variables en el instante anterior

Leer m, k, a, v0, x0

hi=h; x0(i+1) =x(i); v0(i+1) =v(i); n=0


Calculo de la estima siguiente

Leer hi, tmax

derx= vn(i+1); derv= 1/m(F(i+1)-kxn (i+1)-avn (i+1))

, N max iteraciones

xn+1 (i+1)=x(i)+hderx; vn+1 (i+1)=v(i)+hderv


n=n+1

i=1; t(i)=0.; F(i)=f(t(i))


x(i)=x0; v(i)=v(0)

|xn+1 (i+1)- xn (i+1)| &

NO

|vn+1 (i+1)- vn (i+1)|

t(i)>tmax

SI

NO

FIN

n >N max iteraciones

SI
t(i+1)=t(i)+h

SI

NO

x(i+1)=xn+1(i+1)

h=h/2; n=0

v(i+1)=vn+1(i+1)
i=i+1

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

28

14

Resolucin de ecuaciones implcitas:


Mtodo de Newton-Raphson
Sea la ecuacin implcita: F ( x) = 0
Desarrollando en serie de Taylor en torno al punto xi:

F ( x) = F ( xi ) +

F
1 2F
( x xi ) +
( x xi ) 2 + ... = 0
2
x xi
2! x
xi

Despejando xi+1 se obtiene la


siguiente ecuacin recursiva

Truncando a partir del termino de orden


2 y evaluando en el punto x=xi+1 en el
que se tiene la solucin (F(xi+1)=0)

F ( xi +1 ) = F ( xi ) +

F
xi +1 = xi
x

F
( xi +1 xi ) = 0
x xi

Iterando hasta que la diferencia entre dos estimas


consecutivas sea menor que una determinada tolerancia:

F ( xi )
xi

xi +1 xi

Problema: exige estimar e invertir el Jacobiano en cada iteracin


Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

29

Apliquemos el mtodo de Newton-Raphson a la ecuacin bsica de los


algoritmos de integracin de ODEs implcitos: x = h f ( x, u ) + a
Pongmosla de la forma F(x)=0:
Estimando el Jacobiano:

F
Como: xi +1 = xi
x
Entonces:

F ( x) = x h f ( x, u ) a

F
f ( x, u )
= 1 h
x
x

F ( xi )
xi

f ( x, u )
xi +1 = xi 1 h

x xi

(xi h f ( xi , u ) a)

Caractersticas del mtodo:


Converge para h suficientemente
pequeo
Requiere calcular el Jacobiano
Es ms robusto que el de
aproximaciones sucesivas
Problema de inicializacin del mtodo

F(x)

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

30

15

Apliquemos al siguiente ejemplo:


Donde <0 es un parmetro, y(0)=1.
Apliquemos Euler implcito:

1
1
y (t ) = (t y 2 (t ) ) 2
t t
La solucin exacta es:

y (t ) =


1
1
y (t + h) = y (t ) + h (t + h) y 2 (t + h)

t + h (t + h) 2

1
t


1
1
y (t + h) y (t ) h (t + h) y 2 (t + h)

t + h (t + h) 2

F
f ( y (t + h), u )
= 1 h
= 1 h2(t + h) y (t + h)
y (t + h)
y (t + h)

Pongmosla de la forma F(y(t+h))=0:


Estimando el Jacobiano:

=0

As, la ecuacin iterativa a resolver en cada paso de integracin resulta ser:


F
xi +1 = xi
x

F ( xi )

xi

yi (t + h) y (t ) h (t + h) yi2 (t + h) 1 1

t + h (t + h )2

yi +1 (t + h) = yi (t + h)
1 h2(t + h) yi (t + h)

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

31

En este caso estimar el Jacobiano resulta sencillo:


f ( y (t + h), u )
F
= 1 h
= 1 h2(t + h) y (t + h)
y (t + h)
y (t + h)

Pero no siempre es as
Adems en ocasiones no se dispone de herramientas que manipulen
simblicamente las ecuaciones. Entonces se recurre a una estimacin numrica del
Jacobiano.
Una tcnica adecuada es usar una aproximacin en diferencias
Sea:
F ( x) = x h f ( x, u ) a
Podemos aproximar el Jacobiano por la siguiente expresin:

F F ( x + ) F ( x )
f (x + ) f (x )
= 1 h

2
2
x
Donde es pequeo y positivo.
Qu sucede si tengo que integrar numricamente varias ecuaciones de
forma simultnea?, por ejemplo el sistema mecnico seleccionado.
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

32

16

En el caso de un modelo con una sola


x = h f ( x, u ) + a F ( x) = x h f ( x, u ) a = 0
ecuacin diferencial se tiene que:
1
1
La ecuacin recursiva x = x F ( x) F ( x ) = x 1 h f ( x, u ) (x h f ( x , u ) a)
i +1
i
i
i
i
i
x

x x
iterativa resulta ser:
x
i

En el caso de un modelo con n variables de


r
r
r
estado, y por tanto n funciones derivadas se xr = h f ( xr , ur ) + ar F ( xr ) = xr h f ( xr , ur ) ar
tiene que, la expresin resulta ser vectorial:

Donde

x1
f1 ( x1 , x2 ,..., xn )
x1 h f1 ( x1 , x2 ,..., xn ) a1
x
f ( x , x ,..., x )
x h f ( x , x ,..., x ) a
2
1
2
n
2
2
2
1
2
n
r 2
r r
; F =

x = . ; f =
.
.

.
.
.

xn
f n ( x1 , x2 ,..., xn )
xn h f n ( x1 , x2 ,..., xn ) an

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

33

La ecuacin recursiva iterativa resulta ser:


F1
x
1
v 1
F
r
r F r r
r 2
xi +1 = xi r F ( xi ) = xi x1
x xri
...
F
n
x1

f1

f 2
r
r
xi +1 = xi I h x1

...

x1

f1
x2
f 2
x2
...
f n
x2

...
...
...
...

F1
x2
F2
x2
...
Fn
x2

F1
xn

F2
...
xn
... ...
Fn
...

xn xr
...

r
F1 ( xi )

...
r
Fn ( xi )

f1
xn

f 2
xn
...
f n

xn xr

(xr h f ( xr , ur) ar )
r

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

34

17

Apliqumoslo al modelo del


sistema mecnico resuelto con el
mtodo de Euler implcito
Las ecuaciones a resolver en cada
paso de integracin son:

dx(t )
= v(t )
dt
dv(t ) 1
( F (t ) k x(t ) a v(t ))
=
m
dt

x(t + h) = x(t ) + h f1 ( x(t + h), v(t + h), F (t + h)) x (t + h) = x(t ) + hv (t + h)


v(t + h) = v(t ) + h f 2 ( x(t + h), v(t + h), F (t + h)) v(t + h) = v(t ) + h ( F (t + h) k x(t + h) a v(t + h))
m

En este caso podemos calcular el Jacobiano analtico:


v (t + h)
x(t + h) x (t ) hv (t + h)
r

r x (t + h) r
F (t + h) k x(t + h) av (t + h)
x=
; f = F (t + h) k x(t + h) av (t + h) ; F =

v (t + h) v(t ) h

v (t + h)
m
m

f1
x
1
f 2
x1

f1
x2 0k
=
f 2
m
x2

F1
1 x
a 1
F2
m
x1

F1
0
x2
= I h k
F2
m

x2

h
1 1
a
a= k
+
h
h
1
m
m m

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

35

Entonces tendremos que en cada paso de integracin la ecuacin recursiva


resulta ser:

f1

f 2
r
r
xi +1 = xi I h x1

...

x1

f1
x2
f 2
x2
...
f n
x2

h
x(t + h)i +1 x(t + h)i 1
v (t + h) = v(t + h) h k 1 + h a
m
i +1
i

...
...
...
...

f1
xn

f 2
xn
...
f n

xn xr

(xr h fr ( xr , ur) ar )
i

x(t + h)i x(t ) hv(t + h) i

F (t + h) k x(t + h) i av(t + h)i


v(t + h) i v(t ) h

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

36

18

Aunque en general debe calcularse el Jacobiano numricamente,


veamos como hacerlo:
r F1
F x1
r = F
x 2
x1

Como:

F1 F1 ( x1 + , x2 ) F1 ( x1 , x2 )
x2
2

F2 F2 ( x1 + , x2 ) F2 ( x1 , x2 )

x2
2

F1 ( x1 , x2 + ) F1 ( x1 , x2 )

2
F2 ( x1 , x2 + ) F2 ( x1 , x2 )

Fi ( x1 , x2 ,..., xi ,..., xn ) = xi h f i ( x1 , x2 ,..., xi ,..., xn ) ai


F
r 1
F x1
r = F
x 2
x1

En el caso
del muelle:

F1
f1 ( x1 + , x2 ) f1 ( x1 , x2 )

x2
2
I h
F2
f ( x + , x2 ) f 2 ( x1 , x2 )
2 1

x2
2

f1 ( x1 , x2 + ) f1 ( x1 , x2 )

2
f 2 ( x1 , x2 + ) f 2 ( x1 , x2 )

F1 ( x(t + h), v(t + h) ) = x(t + h) x (t ) hv (t + h)


F (t + h) k x (t + h) av(t + h)
m
F1 ( x (t + h), v(t + h) + ) F1 ( x (t + h), v (t + h) )

2
F2 ( x (t + h), v(t + h) + ) F2 ( x(t + h), v (t + h) )

F2 ( x (t + h), v(t + h) ) = v (t + h) v (t ) h

r F1 ( x(t + h) + , v (t + h)) F1 ( x(t + h) , v(t + h))


F
r = F ( x(t + h) + , v (t + h))2F ( x (t + h) , v (t + h))
x 2
2
2

Luego, aplicaremos la
siguiente ecuacin recursiva
para calcular x(t+h) y v(t+h):

v 1
r
r F r r
xi +1 = xi r F ( xi )
x xri

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

37

Mtodos de prediccin-correccin
Combinacin de frmulas explcitas e implcitas para
mejorar la extrapolacin y evitar los problemas numricos
de los mtodos implcitos
Ejemplo: Mtodo predictor-corrector de Euler
Prediccin:
Correccin:

y p (t + h) = y (t ) + h f ( y (t ), u (t ))
y (t + h) = y (t ) + h f ( y p (t + h), u (t + h))

Puede iterarse con el corrector


Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

38

19

Errores
Hay diversos tipos de errores a considerar en la
integracin de las ecuaciones:
Errores de precisin de las frmulas (truncamiento):
Paso de integracin h
Orden del polinomio de aproximacin

Errores de redondeo debidos a la precisin de la


mquina
Errores de acumulacin a lo largo del tiempo

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

39

Errores
Error de truncamiento depende del orden del algoritmo
de integracin y del tamao del paso de integracin
Para uno de orden n el error es:

d n y (t )
h
dt n
n

As un mtodo de orden mayor permite trabajar con un h mayor


manteniendo la precisin.

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

40

20

Errores
Error de redondeo
Est ligado a la precisin de la representacin de los nmeros en el
ordenador
Depende de:
Redondeo por palabras de longitud finita
Acumulacin de operaciones
Tipo de mquina
Tipo de compilador
Tipos de datos: precisin sencilla, doble, etc.

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

41

Errores
Error de acumulacin
En t=0 el error de acumulacin es cero, la solucin numrica coincide con la exacta.
En t>0 el error de truncamiento y redondeo se transmite de una estimacin a la
siguiente.
Resultado el error prctico de truncado sea del orden de hn-1 y no de hn.
Un nmero de pasos de integracin grande contribuye a aumentar el efecto de este
error

y(t) exacta

y(0)

t
0

2h

3h

4h

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

42

21

Mejoras en la estimacin: extrapolacin


Existen procedimientos para mejorar la estimacin de y(t+h)
alternativos a usar un algoritmo de mayor orden.
Estos mtodos estn basados en el conocimiento del orden del error
proporcionado por el mtodo que utilicemos.
Sabemos que si tomamos la serie de Taylor hasta el trmino de orden n el
error es proporcional a hn.
Si denominamos ye a la solucin exacta, y1 la solucin estimada con un paso
h e y2 la solucin estimada con un paso h/2. Entonces:

y1 = y e + c h n
h
y2 = ye + c( )n
2

Eliminando c hn entre ambas ecuaciones


tendremos:

ye =

y 2 2 n y1
2 n 1

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

43

Mtodos de paso variable


En los mtodos de paso fijo el error cometido es proporcional a hn,
siendo n el orden del algoritmo de integracin.
Menor h menor error de integracin.

El nmero de veces que resuelve el problema de integracin de las


ecuaciones es tmax/h.
Menor h ms nmero de operaciones, ms tiempo de clculo.

Solucin de compromiso:
Escoger el h lo mayor posible sin que la solucin supere una cota de error.

Problema:
Escoger el valor de h.
No se obtienen soluciones en
instantes de tiempo regularmente
espaciados, si se necesitan
debemos interpolar.

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

44

22

Existen diversos mtodos de paso variable:


Explcitos: Runge-Kutta-Merson, Runge-Kutta-Felberg ...
Implcitos: Gear

Cmo estimar el valor del paso de integracin?


Mtodo de Gear:

El error cometido en un paso es: e=chn.


Especifico una cota de error mximo en cada paso de integracin E.
Selecciono el valor del paso de integracin (h1), de modo que e=E.
Sabiendo que E=c h1n, entonces:
E

h1 = n

Problema es como estimo el error cometido e.


Puede usarse la siguiente frmula (para un mtodo de orden 2):
d 2 y( t ) 2
1
1
h = f (h y( t )) + 2 f (h y( t )) + + n f (h y( t ))
2
n
dt 2
f ( y( t + h )) = f ( y( t + h )) f ( y( t ))
2 f ( y( t + h )) = (f ( y( t + h ))) = f ( y( t + h )) f ( y( t )) (f ( y( t )) f ( y( t h ))) = f ( y( t + h )) 2(f ( y( t )) + f ( y( t h )))
...
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

45

Otro mtodo (algoritmos implcitos):


Supongamos, por simplicidad:
La estimacin del valor en t+h:

y (t ) = f ( y (t ))
y (t + h) = y (t ) + hf ( y (t )) +

h 2 f ( y (t ))
f ( y (t )) +
y
2!

Si aplicamos la misma frmula con un paso de integracin negativo (-h)


podemos re-estimar el valor en t usando el valor calculado en t+h:
y e (t ) = y (t + h) hf ( y (t + h)) +

h 2 f ( y (t + h))
f ( y (t + h)) +
2!
y

Comparando el valor real en t con el valor estimado en la segunda ecuacin


podemos calcular e=|y(t)-ye(t)| y fijando una cota de error .
Si e< seguimos la integracin con el paso h.
Si no, tomamos el nuevo paso de integracin h=h/2 y repetimos la estimacin de
y(t+h).
Si la condicin se cumple durante un determinado nmero de pasos de
integracin el paso de integracin pasa a valer el doble h=h*2.
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

46

23

Estabilidad
El error entre la solucin numrica y la analtica debe tender a cero a
medida que la integracin progresa.
La estabilidad de la solucin en un problema depende del mtodo y del
paso de integracin h
Sin estabilidad las soluciones divergen de la verdadera o son oscilantes

Solucin
oscilante

Solucin exacta
t
Solucin inestable
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

47

Estabilidad: Ejemplo
dy
= y
dt

y(0) = 1; > 0.

Mtodo de Euler explcito:


Para que y(t):
Sea decreciente: 0< h<2

solucin analtica y(t) = e -t

y (t + h) = y (t ) hy (t ) = (1 h) y (t )
y( t + h )
= 1 h < 1
y( t )

Sea siempre positiva (negativa, si c.i es menor que cero): 0< h<1
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

48

24

Mtodo de Euler implcito: y( t + h ) = y( t ) h y( t + h ) y( t + h ) =


Para que y(t):
Sea decreciente:cualquier valor de h

y( t )
1+ h

y( t + h )
1
=
<1
y( t )
1+ h

Sea siempre positiva: cualquier h (que siempre es mayor que cero)

Mtodo de Crank-Nicholson:

y( t + h ) = y( t ) +

Para que y(t):


Sea decreciente:cualquier valor de h

h
( y( t + h ) y( t ))
2

y( t + h )
=
y( t )

h
2 <1
h
1+
2
1

Sea siempre positiva (negativa, si c.i es menor que cero): 0< h/2<1

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

49

Estabilidad: caso general


Es difcil un estudio de la estabilidad en el caso general de sistemas de ecuaciones
diferenciales no lineales. Se suele estudiar la estabilidad local de una aproximacin
linealizada.
dy
dy
= f ( y, u )
= A y + Bu
Linealizacin de una ecuacin:
dt

Linealizacin de un sistema de ecuaciones:

drt
r
r
dy
= Ay + Bu
dt

La estabilidad se expresa como una cota de |h| siendo el mayor autovalor de A.


En general los mtodos implcitos, aunque conllevan mas clculo, proporcionan
rangos mayores de h para obtener soluciones estables y no oscilantes

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

50

25

Sistemas Stiff o rgidos


A veces se presentan
sistemas con dinmicas
mezcladas rpidas y
lentas

Si ambas son muy diferentes, pueden presentarse problemas de integracin.


Se consideran stiff aquellos problemas en que el cociente entre el mayor y
menor autovalor de la linealizacin es superior a 100

r
r
dy
dy
r r
r
r
= f ( y, u )
= Ay + Bu
dt
dt

stiff si

max Re( i )
> 100
min Re( i )

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

51

Sistemas stiff: Ejemplo


dy1
= 1000 y1 + 10
dt
dy 2
= y1 y 2 Forma
dt
Condiciones iniciales :

matricial

y&1 1000 0 y1 10
+
y = 1
1 y2 0
&2

0
r
y(0) =
1

y1 (0) = 0; y 2 (0) = 1

Autovalores -1000, -1
Usando el mtodo de Euler explcito:
Para evitar la inestabilidad debe elegirse un paso de integracin h tal que
h<2/1000=0.002, ya que 1000 es el mayor autovalor.
As, si quisiramos integrar el sistema propuesto entre 0 y 5 segundos deberamos
realizar un mnimo de 51000/2=2500 iteraciones.
Esto representa un tiempo de clculo muy grande y la posibilidad de que los errores
de redondeo acumulados sean muy grandes.
Ventajas de usar un mtodo implcito, que no tiene esos condicionantes sobre el
paso de integracin son evidentes.
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

52

26

Si solucionamos el sistema de ecuaciones analticamente:


y 1 (t ) = 0.01(1 e 1000 t )
y 2 (t ) = 0.01 +

0.01 1000 t
e
+ 0.9899e t
999

Un modo de solucionar el problema es:


Transformar la ecuacin diferencial rpida en algebraica y usar la ecuacin
resultante en la ecuacin lenta, con lo cual esta puede integrarse con un h
mayor.
As el sistema de ecuaciones propuesto se transformar en:
dy 1
= 1000 y 1 + 10 0 = 1000 y 1 + 10 y 1 = 0.01
dt
dy 2
dy
= y 1 y 2 2 = 0.01 y 2
dt
dt
Ahora la solucin analtica es: y 1 ( t ) = 0.01

y 2 ( t ) = 0.01 + 0.99e t
Numricamente se puede solucionar con el mtodo de Euler explcito pero
ahora el lmite de estabilidad dado por el paso de integracin est en
h=2>>0.002.
Simulacin y Optimizacin
53
4 Ingeniera Informtica. Tema 2 Simulacin

La tcnica expuesta es aplicable cuando puedan distinguirse claramente


ecuaciones rpidas y lentas, y no se precise una gran precisin.
En el caso de que las ecuaciones estn fuertemente acopladas no es posible
utilizar directamente simplificaciones como la anteriormente expuesta.
Ilustrmoslo con el siguiente sistema:
dy 1
= 500.5 y 1 + 499.5y 2
Forma matricial
dt
dy 2
= 499.5y 1 500.5y 2
dt
Condiciones iniciales : y 1 (0) = 2; y 2 (0) = 1

y&1 500.5 499.5 y1


y =

& 2 499.5 500.5 y 2

Autovalores como en el caso anterior 1 y 1000.


Sin embargo, si solucionamos el sistema de
ecuaciones analticamente:
Dinmica rpidas y lentas no separables.
Si aplicamos el mismo mtodo que en el caso
anterior:
No es vlido, se necesitan mtodos especficos
como el de Gear

2
y(0) =
1

y 1 (t ) = 1.5e t + 0.5e 1000 t

y 2 (t ) = 1.5e t 0.5e 1000 t

dy 2
499.5
= 0. y 2 =
y1
dt
500.5
y 1 ( t ) = 1.5e 1.998 t + 0.5
y 2 ( t ) = 1.497e 1.998 t 0.497

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

54

27

Mtodo de Gear

Mtodo especfico para problemas stiff


Formulas implcitas de diversos rdenes variables
Ajuste del intervalo de integracin variable
La eleccin del orden y el paso h se hace en funcin de un ndice
teniendo en cuenta el nmero de pasos y el tiempo de clculo extra
asociado
Una vez seleccionado el orden y h, se aplica el mtodo, lo que implica
resolver una ecuacin no-lineal (en general un sistema de ecuaciones
no lineales) por medio del mtodo de Newton-Raphson para lo cual se
debe evaluar el Jacobiano. Si en tres iteraciones h no converge se
disminuye h arbitrariamente y se comienza de nuevo.
El mtodo de Gear permite usar pasos de integracin que son varias
veces el valor de la menor constante de tiempo del sistema, lo cual
hace que para sistemas stiff sea un procedimiento ms rpido que
cualquier otro.
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

55

2.3 Problemas DAE


Muchos problemas se formulan como conjuntos de ecuaciones
diferenciales y algebraicas acopladas

Y& = F (Y , Z )
0 = G (Y , Z )
Tambin como ecuaciones implcitas (DAEs implcitos) donde
no es posible despejar las derivadas

F (Y , Y& , t ) = 0
Veamos como se resuelven ...

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

56

28

DAE
Y& = F (Y , Z )
0 = G (Y , Z )

Forma matricial

Nominalmente R=0.

Y& F (Y , Z )
=
R G (Y , Z )

G y Y = G z Z

Linealizando

Entonces

Y& Fy
=
R Gy

Fz Y

G z Z

Y& = ( Fy Fz G z1G y )Y

Estimamos los jacobianos (Fy, Fz, Gy y Gz).


Resolvemos la ecuacin diferencial obtenida (Y).
Resolvemos la ecuacin algebraica G(Y,Z)=0, y obtenemos Z.
Ajustamos los valores de Gy y Gz para que los residuos sean cero.

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

57

DAE implcito
Y& F (Y , Z ) = 0
0 = G (Y , Z )

Caso particular de

H (Y& , Y , t ) = 0

Reemplazar la derivada de Y por una


aproximacin en diferencias de primer
orden (BDF, backward difference formula).

dy y

dt
t

Y Y
H n +1 n , Yn +1 , t n +1 = 0; Siendo : hn +1 = t n +1 t n

hn +1
Debiendo resolver la ecuacin implcita, por ejemplo, por el
mtodo de Newton-Raphson:

Resultando:

DASSL (Differential Algebraic System Solver) utiliza otras


frmulas BDF de coeficientes fijos para aproximar la derivada
con ordenes mayores y con paso variable para obtener una
precisin mayor.
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

58

29

2.4 Lazos algebraicos


Para hacer un programa de simulacin de un modelo matemtico, cada ecuacin
debe ser usada para calcular una variable, y debemos decidir en que orden
codificamos las ecuaciones del modelo.
Ya sabemos como actuar cuando tenemos ecuaciones de la forma y(t)=f(y(t),u(t))
Cuando el modelo matemtico presenta ecuaciones algebraicas, estas deben usarse,
y de cada una de ellas despejar una variable.

Problema:
Alguna ecuacin algebraica puede ser demasiado compleja, y no ser posible
despejar en ella la variable que se debe calcular.
Ejemplo: z=5(sin(t)-ez)

Pueden existir un conjunto de n ecuaciones algebraicas acopladas, con n variables


algebraicas, formando lo que se denomina un lazo algebraico
Que puede ser lineal
Se puede manipular simblicamente de modo automtico y encontrar una expresin algebraica
para cada variable algebraica

Que puede ser no lineal


No se puede manipular simblicamente de modo automtico y debe resolverse el lazo de modo
numrico
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

59

Lazos algebraicos
Si el modelo presenta una ecuacin del tipo:

z=5(sin(t)-ez)
Esta ecuacin debe usarse para calcular z (porque t es el tiempo).
Cmo despejo z?
Lo nico que se puede hacer es utilizar un resolvedor de ecuaciones
implcitas para calcular z.
Resolvedores como los usados en los mtodos implcitos
Aproximaciones sucesivas

zi +1 = 5sin(t ) e zi
Newton-Raphson

F
zi +1 = zi
z

1
zi 5 sin(t ) e zi
F ( zi ) = zi
zi
1
+
5

e
zi
i

))

...
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

60

30

Lazos algebraicos
Si el modelo presenta un lazo algebraico lineal:

pi=2
po=1
w=4(pi-p)
w=3(p-po)

El orden de calculo y la manipulacin de las ecuaciones (que se puede


automatizar) podra ser

pi=2
po=1
p=(4pi+ 3po)/(4+ 3)
w=3(p-po)

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

61

Lazos algebraicos

Si el modelo presenta un lazo algebraico no lineal:

pi=2
po=1
w=4sqrt(pi-p)
w=3sqrt(p-po)

El orden de calculo y la manipulacin de las ecuaciones podra ser

pi=2
po=1
p=(42pi+ 32po)/(42+ 32)
w=4sqrt(p-po)

Esta manipulacin no se puede automatizar si el lazo algebraico es no-lineal (como ste),


en general no queda ms remedio que resolver todo el lazo numricamente (resolviendo
una de las ecuaciones como ecuacin implcita)

pi=2
po=1
w=implicit(w-4sqrt(pi-p))
p= po + (w/3)2

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

62

31

2.5 Eventos y Discontinuidades


Un evento es el instante de tiempo en el que se cumplen unas determinadas
condiciones para que una variable cambie de valor de modo brusco.
La naturaleza no es discontinua, aparecen discontinuidades cuando:
La escala de tiempo que manejamos no es lo suficientemente pequea
Se trabaja a nivel macroscpico, con un grado de detalle menor que a nivel
microscpico.

Ejemplos:
El rebote de una pelota con el suelo a escala macroscpica se modela de modo que
vd=-cva, siendo vd y va,las velocidades despus y antes del choque y c el coeficiente
de restitucin. A escala microscpica se tienen en cuenta las deformaciones del
suelo y de la bola y la constante del muelle de la bola, la velocidad no es
discontinua.
Un controlador digital y un convertidor de digital a analgico. A escala
macroscpica la salida del controlador cambia en instantes de tiempo determinados.
A escala microscpica el voltaje nunca puede cambiar de forma discontinua porque
en el circuito elctrico siempre hay capacidades distintas de cero

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

63

Eventos y Discontinuidades
Aparecen de forma natural en muchos procesos (aunque
microscpicamente no sean discontinuos):
y

Saturaciones

Histresis

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

64

32

Eventos y Discontinuidades
Aparicin de fenmenos fsicos nuevos bajo nuevas
condiciones de operacin,...

dv g
=
d t 0
dy
=v
dt
v = kv

si y > 0
si y 0

cuando y = 0

Choque /rebotes
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

65

Eventos y Discontinuidades
Calentamiento y Ebullicin a presin constante

2
dT I R/( mce ) si T < Te
=
dt 0
si T Te

dm 0
=
dt - I 2 R/

si T < Te
si T Te

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

66

33

Eventos y Discontinuidades
Los eventos implican una discontinuidad en f(y,u) o en su derivada
La aparicin del evento hace que f(y,u) pase en ese instante de tiempo de ser
f1(y,u) a ser f2(y,u)
En estos casos la aplicacin directa de los mtodos de integracin mencionados
es incorrecta

f(y,u)

t +h

y (t + h) = y (t ) +

f ( y( ), u )d
t

dy
= f1 ( y, u )
dt

tiempo < t + d

dy
= f 2 ( y, u )
dt

tiempo t + d

Estimacin de f(y,u)

f1(y,u)

t-2h

f2(y,u)

t-h

t+d

t+h

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

67

Discontinuidades
La integracin correcta exige:
Localizar el instante de discontinuidad
Reinicializar la integracin con las nuevas ecuaciones y
condiciones iniciales a partir de ese punto
f(y,u)
Estimacin de f(y,u)

f1(y,u)

f2(y,u)

t +d

y (t + d ) = y (t ) + f1 ( y ( ), u ( ))d
t

t +h

y (t + h) = y (t + d ) + f 2 ( y ( ), u ( ))d
t +d

t-2h

t-h

t+d

t+h

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

68

34

Tipos de eventos
Eventos en el tiempo, ocurren en un instante determinado
de tiempo.
Peridicos (ej: periodo de muestreo de un controlador).
Aperidicos, aquellos que suceden un tiempo despus de que haya
sucedido otro evento.

Eventos en el estado, ocurren cuando alguna condicin en


el estado de un sistema se satisface.
Pueden distinguirse tres tipos de eventos en el estado, aquellos en
los que la condicin se satisface en la direccin positiva, negativa
o en ambas direcciones.
x=0
x=0 y dx/dt<0
x=0 y dx/dt>0

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

69

Eventos en el tiempo
Eventos en el tiempo aperidicos, ocurren en un instante
determinado de tiempo.
Ejemplo: un paracadas se abre a los 3 segundos del salto.

si t < 3
dv g
=
dt - g + F(v) si t 3

El instante en que se produce la


discontinuidad es conocido
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

70

35

Eventos en el estado
Se produce el cambio dependiendo del valor una funcin de una variable,
normalmente al cruzar un umbral.
El instante de la discontinuidad no es conocido de antemano y debe
determinarse

dv(t ) g
=
dt
0
dy (t )
= v(t )
dt
v(t ) = k v(t )

si y (t ) > 0
si y (t ) 0

cuando y(t) = 0

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

71

Los eventos en el tiempo son fciles de tratar porque se conoce a priori cuando
van a suceder, se ajusta el tamao del paso de integracin al instante en el que va a
suceder el evento.
Un posible algoritmo para la deteccin de los eventos en el estado es el siguiente:
Al finalizar cada paso de integracin se comprueba si ha sucedido el evento.
Si el evento ha sucedido, para determinar el instante en el que sucedi, se toma el valor
de la variable asociada al evento en el intervalo de integracin previo y el actual, y se
interpola para conocer el instante del cambio.
Se aplica de nuevo el algoritmo tomando como paso de integracin la diferencia entre
el instante anterior y el instante en el que se produce el evento.

(x(t))
dx
dt = f1 ( x, u ) si ( x) > 0
dx
= f 2 ( x, u ) si ( x) 0
dt

t+h

(x(t+h))
t+d

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

72

36

Problemas de la simulacin de eventos: Chattering


La simulacin de modelos hbridos (con eventos) plantea problemas
tericos y computacionales que no se presentan en los modelos
continuos.
Fenmeno de chattering:
el nmero de eventos en el estado es grande comparado con el nmero de
pasos de integracin.

Produce gran lentitud en la simulacin, debido a:

La deteccin de los eventos.


La determinacin de su instante de disparo.
La ejecucin de los eventos.
La solucin del problema de re-inicio tras la ejecucin de cada evento.

La nica solucin al chattering es modificar el modelo.


Veamos un ejemplo

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

73

Ejemplo Chattering
Modelo simplificado del bote de la pelota

dv(t )
= g
dt
dy (t )
= v(t )
dt
v(t ) = k v(t )

cuando y(t) = 0

Por qu la pelota cae por debajo de x=0?


Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

74

37

Ejemplo Chattering

Por qu la pelota cae por debajo


de x=0?
Consideraciones:
El evento se activa cuando no est
activo (false) y se cumple la
condicin lgica
El evento se desactiva cuando est
activo y se deja de cumplir la
condicin lgica

En este caso el evento es y(t)<0,


pero no podemos representar el
cero exactamente. Se dice que se
cumple el evento cuando en valor
absoluto y(t) sea menor que
epsilon.

A medida que pasan lo sucesivos botes llegamos a valores


de y(t) prximos a epsilon y puede suceder que:
Detectemos el evento cuando y(t) cruce por el valor
inferior de la banda (-epsilon).
En ese momento el evento se pone a true (y no se
desactivar hasta que y(t) sea mayor que epsilon), la
velocidad cambia de signo y la pelota empieza a subir.
Pero la velocidad inicial es pequea y la pelota se va
frenando por la fuerza de la gravedad sin llegar a
epsilon, y sin desactivar el evento por tanto.
En un momento dado la pelota empieza a bajar y
vuelve a cruzar por epsilon, pero el evento no se
activa (ya que est activo), la velocidad no cambia de
signo y la pelota cae de forma ilimitada

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

75

Ejemplo Chattering
Solucin, modificar el modelo
Aadir que v(t)=0., si y(t)<0.

dv(t ) g
=
dt
0
dy (t )
= v(t )
dt
v(t ) = k v(t )

si y (t ) 0
si y (t ) < 0

cuando y(t) = 0

La simulacin
se ralentiza

La pelota ya no se cae

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

76

38

Ejemplo Chattering

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

77

Ejemplo Chattering

Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

78

39

Ejemplo Chattering

Para solucionar el problema hay


que plantearlo con dos modos de
funcionamiento
Pelota est en movimiento
dv(t )
= g
dt
dy (t )
= v(t )
dt
v(t ) = k v(t )

La pelota est parada o en movimiento en funcin


de una variable lgica, por ejemplo parada
parada=true cuando la energa de la pelota le
impida salir de la banda de deteccin del evento.
Es decir ebote < ebanda

cuando y(t) = 0

Pelota est parada


dv(t )
= 0.
dt
y (t ) = 0.

Energa para salir de la banda


ebanda = mg (2epsilon)

Energa en el momento del bote


ebote = mg y + 0.5mv 2

Cuando la pelota est parada, ya no se integra y(t) y adems v(t) queda constante,
con lo cual no se ralentiza la simulacin
Simulacin y Optimizacin
4 Ingeniera Informtica. Tema 2 Simulacin

79

40

También podría gustarte