tema 2. aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · tema 2...

40
Simulación y Optimización 4º Ingeniería Informática. Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas Objetivos Entender el concepto básico de la simulación digital de sistemas continuos Conocer los conceptos de algoritmo de integración, paso de integración e intervalo de comunicación Distinguir un algoritmo de integración explícito de uno implícito Distinguir un algoritmo de integración de paso fijo de uno de paso variable Reconocer un sistema “stiff” y su problemática en tiempo de simulación Saber como se resuelve en tiempo de simulación una ecuación algebraica y un sistema de DAEs implícitas Reconocer un lazo algebraico y como tratarlo Saber como se modelan los eventos y como se tratan en un programa de simulación continua. Realizar el diagrama de flujo (pseudocódigo) de un algoritmo que resuelva un modelo dinámico continuo. Simulación y Optimización 4º Ingeniería Informática. Tema 2 Simulación 2 TEMA 2. Aspectos numéricos de la simulación de sistemas Contenidos: 2.1 El concepto de simulación digital de sistemas continuos 2.2 Métodos numéricos de resolución de ODEs: algoritmos de integración Métodos explícitos Métodos implícitos Métodos de predicción-corrección Errores Mejoras en la estimación:extrapolación Métodos de paso variable Estabilidad Sistemas “stiff” 2.3 Métodos numéricos de resolución de DAEs 2.4 Lazos algebraicos 2.5 Modelado de discontinuidades: eventos

Upload: others

Post on 31-Jul-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

1

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

1

TEMA 2. Aspectos numéricos de la simulación de sistemas

• Objetivos– Entender el concepto básico de la simulación digital de sistemas continuos– Conocer los conceptos de algoritmo de integración, paso de integración e

intervalo de comunicación– Distinguir un algoritmo de integración explícito de uno implícito– Distinguir un algoritmo de integración de paso fijo de uno de paso variable– Reconocer un sistema “stiff” y su problemática en tiempo de simulación– Saber como se resuelve en tiempo de simulación una ecuación algebraica

y un sistema de DAEs implícitas– Reconocer un lazo algebraico y como tratarlo– Saber como se modelan los eventos y como se tratan en un programa de

simulación continua.– Realizar el diagrama de flujo (pseudocódigo) de un algoritmo que resuelva

un modelo dinámico continuo.

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

2

TEMA 2. Aspectos numéricos de la simulación de sistemas

• Contenidos:– 2.1 El concepto de simulación digital de sistemas continuos– 2.2 Métodos numéricos de resolución de ODEs: algoritmos de

integración• Métodos explícitos• Métodos implícitos• Métodos de predicción-corrección• Errores• Mejoras en la estimación:extrapolación• Métodos de paso variable• Estabilidad• Sistemas “stiff”

– 2.3 Métodos numéricos de resolución de DAEs– 2.4 Lazos algebraicos– 2.5 Modelado de discontinuidades: eventos

Page 2: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

2

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

3

2.1 El concepto de simulación digital de sistemas continuos

• Obtenidos los modelos matemáticos que sirven para representar los sistemas físicos debemos simularlos (resolver dicho modelo matemático usando un ordenador).

• Aunque la naturaleza de los modelos matemáticos puede ser muy variada las ecuaciones que forman el modelo se pueden catalogar en:– ODEs (ordinary differential equations) o EDOs (ecuaciones diferenciales

ordinarias)• Ecuaciones explícitas y causales • De la forma:

– DAEs (differential algebraic equations)• Ecuaciones implícitas y no causales• De la forma:

′ ==

x f x y ty g x t

( , , )( , )

f x x y tg x y t

( , , , )( , , )′ =

=0

0

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

4

• Ejemplo de ODEs y DAEs:– El sistema mecánico de la figura, en el cual están presentes tres

fuerzas en la dirección x de desplazamiento: la del muelle -kx y la fricción viscosa proporcional a la velocidad de desplazamiento del bloque -a dx/dt y una fuera externa F, se puede obtener un modelo matemático sencillo a partir de la aplicación de la primera ley de Newton

dttdxatxktF

dttxdm )()()()(

2

2

−⋅−=

0)(·)()()(2

2

=+⋅+−dt

tdxatxktFdt

txdm)()(

))()()((1)(

tvdt

tdx

tvatxktFmdttdv

=

⋅−⋅−=

DAE ODEs

Page 3: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

3

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

5

• Existen poderosos algoritmos para la resolución de ODEs, siendo la base del mecanismo de simulación digital de sistemas continuos.

• El concepto básico de la simulación 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 función de la variable independiente, sólo son calculadas en valores discretos de la variable independiente.

• Si la simulación opera con incrementos constantes de tiempo ∆t, esos instantes pueden calcularse de la forma ti=to+k·∆t, siendo k=0,1,2,3,4,5…,(tmax-to)/∆t. Así la simulación comenzará en to y terminará en tmax.

¿Concepto de paso de integración?

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

6

• En los modelos dinámicos 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 integración numérica.

• En el ejemplo del sistema mecánico:– No existen variables algebraicas– Las variables de estado son x(t) y v(t)

)()(

))()()((1)(

tvdt

tdx

tvatxktFmdttdv

=

⋅−⋅−=

Page 4: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

4

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

7

– 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 ecuación anterior se necesita hacer alguna hipótesis sobre su valor o encontrar algún procedimiento de estimación. A cada una de estas aproximaciones corresponderá una fórmula o algoritmo de integración.

))(),(()( tutyfty =&

∫∆+

+=∆+tt

t

duyftytty τττ ))(),(()()(

– La ecuación básica de un modelo matemático dinámico es de la forma:

– De modo que si se quiere conocer el valor de y(t+∆t) debe recurrir a la siguiente ecuación:

t

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

t t+ht-ht-2h

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

8

2.2 Métodos numéricos de resolución de ODEs

• Métodos explícitos• Métodos implícitos• Métodos de predicción-corrección• Errores• Mejoras en la estimación: extrapolación• Métodos de paso variable• Problemas numéricos:

– Estabilidad– Sistemas “stiff”

Page 5: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

5

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

9

Métodos explícitos• 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(t-h)), ... , f(y(t-nh),u(t-nh)) y extrapolar el valor de f(y(τ),u(τ)), siendo t<τ<t+h.

t

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

t t+ht-ht-2h

• Métodos explícitos porque el valor de y(t+h) se obtiene directamente a partir de valores anteriores:

• Aproximaciones• Aproximación de orden 0 (Euler)• Aproximación de orden 1(Adams-Bashforth)• Polinomios de extrapolación• Métodos de Runge-Kutta

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

10

Métodos explícitos: aproximación de Euler• Aproximación de orden 0:

• Método de Euler• f(y(τ),u)=f(y(t),u)=constante

t t+ht-ht-2h

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

t))(),(()()( tutyfhtyhty ⋅+=+

∫+

+=+ht

t

duyftyhty τττ ))(),(()()(

• Ya disponemos de una fórmula 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

Page 6: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

6

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

11

Ejemplo: sistema mecánico

))()()((1)(

)()(

tvatxktFmdttdv

tvdt

tdx

⋅−⋅−=

=

))()()((1))(),(),((

)())(),(),((

2

1

tvatxktFmtFtvtxf

tvtFtvtxf

⋅−⋅−=

=

))(),(()()( tutyfhtyhty ⋅+=+

• Entrada al modelo u(t)=F(t)• Salidas del modelo

• y1(t)=x(t)• y2(t)=v(t)

• Funciones derivadas:

• Ecuaciones recursivas para simular

))()()(()()())(),(),((·)()(

)(·)()())(),(),((·)()(

2

1

tvatxktFmhtvhtvtFtvtxfhtvhtv

tvhtxhtxtFtvtxfhtxhtx

⋅−⋅−+=+⇒+=+

+=+⇒+=+

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

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

12

INICIO

Leer m, k, a, v0, x0

Leer h, tmax

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

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

t(i)>tmax

FIN

derx= v(i); derv= 1/m·(F(i)-k·x(i)-a·v(i))

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

x(i+1)=x(i)+h·derx

v(i+1)=v(i)+h·derv

F(i+1)=f(t(i+1))

i=i+1

NO

SI

La fuerza es una función del tiempo conocida, F=f(t)

Page 7: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

7

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

13

Métodos explícitos: Adams-Bashforth 2º orden• Aproximación de orden 1:

• Método de Adams-Bashforth 2º orden o regla trapezoidal

∫+

+=+ht

t

duyftyhty τττ ))(),(()()(

)())(),(())(),(())(),(())(),(( th

htuhtyftutyftutyfuyf −−−−

+= τττ

t t+ht-ht-2h

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

t

( )( ))(),())(),((32

)()( htuhtyftutyfhtyhty −−−+=+

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

14

Ejemplo: sistema mecánico

))()()((1)(

)()(

tvatxktFmdttdv

tvdt

tdx

⋅−⋅−=

=

( )

( ) ( )[ ]))()()((1))()()((1·32

)()(

))(),(),(())(),(),((·3·2

)()( 22

htvahtxkhtFmtvatxktFmhtvhtv

htFhtvhtxftFtvtxfhtvhtv

−⋅−−⋅−−−⋅−⋅−+=+⇒

−−−−+=+

• Ecuaciones recursivas para simular

• Deben suministrase las condiciones iniciales: x(0) y v(0)• También debe hacerse una estimación de x(-h) y v(-h)

( )

( ))(·3)(·3·2

)()(

))(),(),(())(),(),((·3·2

)()( 11

htvtvhhtxhtx

htFhtvhtxftFtvtxfhtxhtx

−−+=+⇒

−−−−+=+

( )( ))(),())(),((32

)()( htuhtyftutyfhtyhty −−−+=+

Page 8: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

8

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

15

Métodos explícitos: polinomios de extrapolación• Una expresión general del polinomio de extrapolación 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:

( )∫+=++ht

tduyftyhty τττ )(),()()(

h))2u(th),2f(y(th))u(th),f(y(t2u(t))f(y(t),h)))2u(th),2f(y(th))u(th),(f(y(th))u(th),f(y(tu(t))f(y(t),u(t)))f(y(t),(u(t))f(y(t),

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

t)(τα:Siendo

u(t))f(y(t),n!

1)n(α1)α(αu(t))f(y(t),2!

1)α(αu(t))f(y(t),α))u(f(y(t),))u(),f(y(

2

n2

−−+−−−==−−−−−−−−−=∇∇=∇

−−−=∇

−=

∇−+⋅⋅⋅+

+⋅⋅⋅+∇+

+∇+= tττ

−−−−−++−−−+=+ ))3(),3((9))2(),2((37

))(),((59))(),((5524

)()( htuhtyfhtuhtyfhtuhtyftutyfhtyhty

• Ejemplo método de Adams-Bashforth 4º orden

Problema: inicialización del método

Se selecciona el orden de la extrapolación y se sustituye en:

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

16

Métodos explícitos: métodos de Runge-Kutta• Otro procedimiento general para obtener algoritmos explícitos es hacer un

desarrollo en serie de Taylor de la función y(t+h) en torno a y(t) y truncar la serie en un determinado término

⋅⋅⋅+

+++

=⋅⋅⋅+

∂+

∂∂

++=

=⋅⋅⋅+++=⋅⋅⋅+′′+′+=+

dttduftutyffhtutyfhty

dttdu

ututyf

dttdy

ytutyfhtutyfhty

dttutydfhtutyfhtytyhtyhtyhty

uy)())(),((·

!2))(),((·)(

)())(),(()())(),((!2

))(),((·)(

))(),((!2

))(),((·)()(!2

)(·)()(

2

2

22

• Si en la expresión previa seleccionamos los términos hasta orden 1 tenemos el método de Euler

• En general el problema es que deben estimarse unas derivadas parciales: fy y fu

• Solución métodos de Runge-Kutta

))(),((·)()( tutyfhtyhty +=+

Page 9: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

9

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

17

Métodos explícitos: métodos de Runge-Kutta• Los métodos de Runge-Kutta tratan de sustituir dichas derivadas por

evaluaciones de la función en puntos intermedios a t y t+h, con la condición de obtener la misma precisión.

• Ejemplo: Runge-Kutta 2º orden• Se trata de encontrar los coeficientes de la ecuación w1, w2 y β de la

ecuación: )))·(),·((·))(),((··()()( 21 htuhtyfwtutyfwhtyhty ββ ++++=+

• De modo que tenga la misma precisión que el desarrollo en serie truncado en el término de segundo orden

+++=+

+++=+

dttduftutyffhtutyfhtyhty

dttdu

ututyftutyf

ytutyfhtutyfhtyhty

uy)())(),((·

!2))(),((·)()(

)())(),(())(),(())(),((!2

))(),((·)()(

2

2

∂∂

∂∂

( ) ( )( )ht

uyfwtutyfwhtyhty·

)(),(·)(),(··)()( 21

βτττ

+=++=+

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

18

Métodos explícitos: métodos de Runge-Kutta• Sabiendo que: ))(),((··)()·()( tutyfhtyhtyy ββτ +=+=

• Sustituyendo en:

++=⇒

⇒⋅+′=+=⇒

+=+=+=

dttdu

uuyftutyf

yuyfhtutyfuyf

tutyfdtdhtytutyfhty

dtduyf

tutyfhtydtdtutyfhty

dtd

ddttutyfhty

dd

ddy

)(),())(),((),(·))(),(())(),((

)))(),((()()))(),((··)(())(),((

)))(),((··)(()))(),((··)(()))(),((··)(()(

∂∂

∂∂βττ

ββττ

ββτ

βττ

τ

))(),(()())(),(()( τττ uyfytutyfty =′⇒=′

+⋅+++=+

dttdu

ututyftutyf

ytutyfhwtutyfwwhtyhty )())(),(())(),(())(),(())(),(()()()( 2

221 ∂∂

∂∂β

• Derivando y(τ) respecto a τ:

)))(),((·))(),((··()()( 21 ττ uyfwtutyfwhtyhty ++=+

+⋅+++=+

dttduftutyffhwtutyfwwhtyhty uy)())(),((·))(),(()()()( 2

221 β

Page 10: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

10

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

19

Métodos explícitos: métodos de Runge-Kutta• Comparando con el desarrollo en serie hasta el 2º orden:

211

2

21

=⋅

=+

w

ww

β• Igualando coeficientes:

Sistema compatible indeterminado:Infinitas soluciones

• La solución correspondiente a w1=0, w2=1 y β=0.5 es conocida como Runge-Kutta de 2º orden:

))·5.0()),(),((5.0)(()()( htututyfhtyfhtyhty +⋅⋅+⋅+=+

+++=+

dttduftutyffhtutyfhtyhty uy)())(),((·

!2))(),((·)()(

2

+⋅+++=+

dttduftutyffhwtutyfwwhtyhty uy)())(),((·))(),(()()()( 2

221 β

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

20

Ejemplo: sistema mecánico

))()()((1)(

)()(

tvatxktFmdttdv

tvdt

tdx

⋅−⋅−=

=

))()()((1))(),(),((

)())(),(),((

2

1

tvatxktFmtFtvtxf

tvtFtvtxf

⋅−⋅−=

=

• Entrada al modelo u(t)=F(t)• Salidas del modelo

• y1(t)=x(t)• y2(t)=v(t)

• Funciones derivadas:

• Ecuaciones recursivas para simular( )

( ) ( )( )))()()((·5.0)()(··5.0)()·5.0()()(

))()()((·5.0)(·)()(

tvatxktFmhtvatvhtxkhtFm

htvhtv

tvatxktFmhtvhtxhtx

⋅−⋅−+⋅−+⋅−++=+

⋅−⋅−++=+

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

))·5.0()),(),((5.0)(()()( htututyfhtyfhtyhty +⋅⋅+⋅+=+

Page 11: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

11

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

21

Métodos explícitos: Runge-Kutta 4º orden

)))(,(·2))·5.0(,(·2

))·5.0(,(·2))(,((6

)()(

))·5.0(,(·)(

))·5.0(,(·2

)(

))(,(·2

)(

)(

43

21

34

23

12

1

htuYfhtuYf

htuYftuYfhtyhty

htuYfhtyY

htuYfhtyY

tuYfhtyY

tyY

++++

+++=+

++=

++=

+=

=

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

22

Métodos implícitos• Otra forma de usar las técnicas de extrapolación

para la estimación de f(y(τ)) es incluir el punto f(y(t+h)) entre los puntos por los que debe pasar el polinomio de extrapolación.

• 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 t+ht-ht-2h

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

t

))(),(()()( htuhtyfhtyhty ++⋅+=+

• Sustituyendo en: ∫+

+=+ht

t

dyftyhty ττ ))(()()(

• Se obtiene que:

• Este método recibe el nombre de Euler implícito.• La diferencia esencial con el método de Euler es que debemos resolver una

ecuación generalmente no lineal para encontrar y(t+h). • A pesar de la evidente complejidad en el cálculo de la solución que los

métodos implícitos presentan frente a los explícitos suelen ser preferibles en cuanto a la estabilidad de la solución numérica.

Page 12: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

12

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

23

Ejemplo: sistema mecánico

))()()((1)(

)()(

tvatxktFmdttdv

tvdt

tdx

⋅−⋅−=

=

))()()((1))(),(),((

)())(),(),((

2

1

tvatxktFmtFtvtxf

tvtFtvtxf

⋅−⋅−=

=

))(),(()()( htuhtyfhtyhty ++⋅+=+

• Entrada al modelo u(t)=F(t)• Salidas del modelo

• y1(t)=x(t)• y2(t)=v(t)

• Funciones derivadas:

• Ecuaciones recursivas para simular

))()()(()()())(),(),((·)()(

)(·)()())(),(),((·)()(

2

1

htvahtxkhtFmhtvhtvhtFhtvhtxfhtvhtv

htvhtxhtxhtFhtvhtxfhtxhtx

+⋅−+⋅−++=+⇒++++=+

++=+⇒++++=+

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

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

24

Ejemplo: sistema mecánico• Ecuaciones recursivas para simular

))()()(()()())(),(),((·)()(

)(·)()())(),(),((·)()(

2

1

htvahtxkhtFmhtvhtvhtFhtvhtxfhtvhtv

htvhtxhtxhtFhtvhtxfhtxhtx

+⋅−+⋅−++=+⇒++++=+

++=+⇒++++=+

• Estas ecuaciones no se pueden resolver directamente, son ecuaciones implícitas:• 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 función 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 método para resolver ecuaciones implícitas

• Es un procedimiento general, pero de elevado coste computacional

Page 13: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

13

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

25

Métodos implícitos de orden 1

• Usando la expresión 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))

• Sustituyendo en: ∫+

+=+ht

t

duyftyhty ττ )),(()()(

• Se obtiene que:

• Este método recibe el nombre de Euler modificado, regla trapezoidal o método de Crank-Nicolson.

)())(),(())(),(())(),(())(),(( th

tutyfhtuhtyftutyfuyf −−++

+= τττ

t t+ht-ht-2h

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

t

)))(),(())(),(((2

)()( htuhtyftutyfhtyhty +++⋅+=+

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

26

Métodos implícitos de orden n

• Sustituyendo en: ∫+

+=+ht

t

duyftyhty τττ ))(),(()()(

• Todas las expresiones anteriores pueden reducirse a la forma:

• Donde σ representa a los términos conocidos en t y β un coeficiente conocido.

• Una expresión general del polinomio de extrapolación 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:

( ) ( )

...))(),(())(),(((2))(),((

))(),(())(),(())(),(())(),(()))(),((())(),((

))(),(())(),(())(),((

))((:Siendo )).(),((!

)1()1(...

))(),((!2

)1())(),(())(),(())(),((

2

2

htuhtyftutyfhtuhtyfhtuhtyftutyftutyfhtuhtyf

htuhtyfhtuhtyf

tutyfhtuhtyfhtuhtyfh

hthtuhtyfn

n

htuhtyfhtuhtyfhtuhtyfuyf

n

−−+−++==−−−−−++

=++∇∇=++∇

−++=++∇

+−=++∇

−+⋅⋅⋅++

⋅⋅⋅+++∇+

+++∇+++=

ταααα

αααττ

σβ +++⋅⋅=+ ))(),(()( htuhtyfhhty

• Necesitan resolver una ecuación algebraica en cada iteración. Pueden emplearse varios métodos, por ejemplo sustituciones sucesivas ó Newton-Raphson

Page 14: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

14

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

27

Resolución de ecuaciones implícitas: método de aproximaciones sucesivas

auxfhx += ),(·

auxfhx ii +=+ ),(·1

ε≤−+ ii xx 1

1<∂∂

xfh

• Partiendo de un valor inicial xo se sustituye en la parte derecha de la ecuación obteniendo como resultado la siguiente estima x1:

• Iteramos utilizando la ecuación:

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

• El método converge siempre que:

• Sea la ecuación implícita:

auxfhx += ),(· 01

• Hasta que la diferencia entre dos estimas consecutivas sea menor que una determinada tolerancia epsilon (ε):

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

28

INICIO

Leer m, k, a, v0, x0

Leer hi, tmax

ε , Nº max iteraciones

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

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

t(i)>tmax

FIN

Estima inicial del valor de x(i+1) e v(i+1), por ejemplo el valor de esas variables en el instante anterior

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

NO

SI

La fuerza es una función del tiempo

conocida, F=f(t)

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

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

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

i=i+1

Calculo de la estima siguiente

derx= vn(i+1); derv= 1/m·(F(i+1)-k·xn (i+1)-a·vn (i+1))

xn+1 (i+1)=x(i)+h·derx; vn+1 (i+1)=v(i)+h·derv

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

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

n >Nº max iteraciones

h=h/2; n=0

NO

NO

n=n+1

SISI

Page 15: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

15

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

29

Resolución de ecuaciones implícitas:Método de Newton-Raphson

)(1

1 ix

ii xFxFxx

i

+

∂∂

−=

• Sea la ecuación implícita: 0)( =xF

• Truncando a partir del termino de orden 2 y evaluando en el punto x=xi+1 en el que se tiene la solución (F(xi+1)=0)

• Despejando xi+1 se obtiene la siguiente ecuación recursiva

• Problema: exige estimar e invertir el Jacobiano en cada iteración

• Iterando hasta que la diferencia entre dos estimas consecutivas sea menor que una determinada tolerancia:

ε≤−+ ii xx 1

0...)(!2

1)()()( 22

2=+−

∂∂

+−∂∂

+= ix

ix

i xxxFxx

xFxFxF

ii

• Desarrollando en serie de Taylor en torno al punto xi:

0)()()( 11 =−∂∂

+= ++ iix

ii xxxFxFxF

i

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

30

auxfhx += ),(·

( ) ),(·),(11

1 auxfhxx

uxfhxx iix

iii

−−

∂∂

−−=−

+

• Apliquemos el método de Newton-Raphson a la ecuación básica de los algoritmos de integración de ODEs implícitos:

• Pongámosla de la forma F(x)=0: auxfhxxF −−= ),(·)(

• Como:

• Entonces:

)(1

1 ix

ii xFxFxx

i

+

∂∂

−=

• Características del método:• Converge para h suficientemente

pequeño• Requiere calcular el Jacobiano• Es más robusto que el de

aproximaciones sucesivas• Problema de inicialización del método

F(x)

x

• Estimando el Jacobiano:x

uxfhxF

∂∂

−=∂∂ ),(·1

Page 16: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

16

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

31

• Apliquemos al siguiente ejemplo:

• Pongámosla de la forma F(y(t+h))=0:

• Estimando el Jacobiano: )(·)··(2·1)(

)),((·1)(

htyhthhty

uhtyfhhty

F++−=

+∂+∂

−=+∂

∂ λ

22 1)1)(··()(

tttytty −−=′ λ

• Donde λ<0 es un parámetro, y(0)=1. La solución exacta es:t

ty 1)( =

• Apliquemos Euler implícito:

+−

+−+++=+ 2

2

)(11)()·(··)()(htht

htyhthtyhty λ

0)(

11)()·(··)()( 22 =

+−

+−++−−+

hththtyhthtyhty λ

• Así, la ecuación iterativa a resolver en cada paso de integración resulta ser:

( )

++−

+−

+−++−−+

−+=++ )(·)··(2·1

11)()·(·)()()()(

22

1 htyhthhtht

htyhthtyhtyhtyhty

i

ii

ii λ

λ

)(1

1 ix

ii xFxFxx

i

+

∂∂

−=

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

32

• En este caso estimar el Jacobiano resulta sencillo:

• Pero no siempre es así …• Además en ocasiones no se dispone de herramientas que manipulen

simbólicamente las ecuaciones. Entonces se recurre a una estimación numérica del Jacobiano.

• Una técnica adecuada es usar una aproximación en diferencias• Sea:

)(·)··(2·1)(

)),((·1)(

htyhthhty

uhtyfhhty

F++−=

+∂+∂

−=+∂

∂ λ

auxfhxxF −−= ),(·)(

• Podemos aproximar el Jacobiano por la siguiente expresión:

εεε

εεε

·2)()(1

·2)()( −−+

−=−−+

≈∂∂ xfxfhxFxF

xF

• Donde ε es pequeño y positivo.

• ¿Qué sucede si tengo que integrar numéricamente varias ecuaciones de forma simultánea?, por ejemplo el sistema mecánico seleccionado.

Page 17: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

17

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

33

• En el caso de un modelo con una sola ecuación diferencial se tiene que:

• La ecuación recursiva iterativa resulta ser:

0),(·)(),(· =−−=⇒+= auxfhxxFauxfhx

( ) ),(·),(1)()( 11

1 auxfhxx

uxfhxxFxxFxx ii

xii

xii

ii

−−

∂∂

−−=

∂∂

−=−−

+

• En el caso de un modelo con n variables de estado, y por tanto n funciones derivadas se tiene que, la expresión resulta ser vectorial:

• Donde

auxfhxxFauxfhx rrrrrrrrrrrr−−=⇒+= ),(·)(),(·

−−

−−−−

=

=

=

nnnn

n

n

nn

n

n

n axxxfhx

axxxfhxaxxxfhx

F

xxxf

xxxfxxxf

f

x

xx

x

),...,,(·..

),...,,(·),...,,(·

;

),...,,(..

),...,,(),...,,(

;..

21

22122

12111

21

212

211

2

1

rrr

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

34

• La ecuación recursiva iterativa resulta ser:

( )auxfhx

xf

xf

xf

xf

xf

xf

xf

xf

xf

hIxx ii

xn

nnn

n

n

ii

i

rrrrrrr

r

−−

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

−−=

+ ),(·

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

...

...1

21

2

2

2

1

2

1

2

1

1

1

1

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

−=

∂∂

−=

+

)(...

)(·

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

...

...

)(1

1

21

2

2

2

1

2

1

2

1

1

1

1

1

in

i

xn

nnn

n

n

iix

ii

xF

xF

xF

xF

xF

xF

xF

xF

xF

xF

xF

xxFxFxx

i

ir

r

rrrr

vrr

r

r

Page 18: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

18

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

35

• Apliquémoslo al modelo del sistema mecánico resuelto con el método de Euler implícito

• Las ecuaciones a resolver en cada paso de integración son:

))()()(()()())(),(),((·)()(

)(·)()())(),(),((·)()(

2

1

htvahtxkhtFmhtvhtvhtFhtvhtxfhtvhtv

htvhtxhtxhtFhtvhtxfhtxhtx

+⋅−+⋅−++=+⇒++++=+

++=+⇒++++=+

))()()((1)(

)()(

tvatxktFmdttdv

tvdt

tdx

⋅−⋅−=

=

• En este caso podemos calcular el Jacobiano analítico:

+−+−+

−−+

+−−+=

+−+−+

+=

++

=m

htvahtxkhtFhtvhtv

htvhtxhtxF

mhtvahtxkhtF

htvf

htvhtx

x )(·)(·)()()(

)(·)()(;)(·)(·)(

)(;

)()( rrr

+

−=

−−−=

∂∂

∂∂

∂∂

∂∂

−−=

∂∂

∂∂

∂∂

∂∂

mah

mkh

h

ma

mkhI

xF

xF

xF

xF

ma

mk

xf

xf

xf

xf

1110

·10

2

2

1

2

2

1

1

1

2

2

1

2

2

1

1

1

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

36

• Entonces tendremos que en cada paso de integración la ecuación recursiva resulta ser:

( )auxfhx

xf

xf

xf

xf

xf

xf

xf

xf

xf

hIxx ii

xn

nnn

n

n

ii

i

rrrrrrr

r

−−

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

−−=

+ ),(·

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

...

...1

21

2

2

2

1

2

1

2

1

1

1

1

+−+−+

−−+

+−−+

+

−−

++

=

++

+

+

mhtvahtxkhtFhtvhtv

htvhtxhtx

mah

mkh

h

htvhtx

htvhtx

iii

ii

i

i

i

i )(·)(·)()()(

)(·)()(

11

)()(

)()(

1

1

1

Page 19: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

19

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

37

• Aunque en general debe calcularse el Jacobiano numéricamente, veamos como hacerlo:

−−+−−+

−−+−−+

∂∂

∂∂

∂∂

∂∂

=∂∂

εεε

εεε

εεε

εεε

·2),(),(

·2),(),(

·2),(),(

·2),(),(

212212212212

211211211211

2

2

1

2

2

1

1

1

xxFxxFxxFxxF

xxFxxFxxFxxF

xF

xF

xF

xF

xFr

r

−++−++++−+−+++

−++−++++−+−+++

=∂∂

εεε

εεε

εεε

εεε

·2))(),(())(),((

·2))(,)(())(,)((

·2))(),(())(),((

·2))(,)(())(,)((

2222

1111

htvhtxFhtvhtxFhtvhtxFhtvhtxF

htvhtxFhtvhtxFhtvhtxFhtvhtxF

xFr

r

( )

( )m

htvahtxkhtFhtvhtvhtvhtxF

htvhtxhtxhtvhtxF)(·)(·)()()()(),(

)(·)()()(),(

2

1

+−+−+−−+=++

+−−+=++

• Luego, aplicaremos la siguiente ecuación recursiva para calcular x(t+h) y v(t+h):

)(1

1 ix

ii xFxFxx

i

rrr

vrr

r

+

∂∂

−=

• En el caso del muelle:

−−+−−+

−−+−−+

−≈

∂∂

∂∂

∂∂

∂∂

=∂∂

εεε

εεε

εεε

εεε

·2),(),(

·2),(),(

·2),(),(

·2),(),(

212212212212

211211211211

2

2

1

2

2

1

1

1

xxfxxfxxfxxf

xxfxxfxxfxxf

hI

xF

xF

xF

xF

xFr

r

• Como: iniiinii axxxxfhxxxxxF −−= ),...,,...,,(·),...,,...,,( 2121

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

38

Métodos de predicción-corrección

))(),((·)()( tutyfhtyhty p +=+

))(),((·)()( htuhtyfhtyhty p +++=+

Predicción:

Corrección:

Puede iterarse con el corrector

• Combinación de fórmulas explícitas e implícitas para mejorar la extrapolación y evitar los problemas numéricos de los métodos implícitos

• Ejemplo: Método predictor-corrector de Euler

Page 20: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

20

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

39

Errores

• Hay diversos tipos de errores a considerar en la integración de las ecuaciones:– Errores de precisión de las fórmulas (truncamiento):

• Paso de integración h • Orden del polinomio de aproximación

– Errores de redondeo debidos a la precisión de la máquina

– Errores de acumulación a lo largo del tiempo

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

40

Errores

n

nn

dttydh )(

• Error de truncamiento depende del orden del algoritmo de integración y del tamaño del paso de integración– Para uno de orden n el error es:

– Así un método de orden mayor permite trabajar con un h mayor manteniendo la precisión.

Page 21: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

21

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

41

• Error de redondeo – Está ligado a la precisión de la representación de los números en el

ordenador– Depende de:

• Redondeo por palabras de longitud finita

• Acumulación de operaciones

• Tipo de máquina

• Tipo de compilador

• Tipos de datos: precisión sencilla, doble, etc.

Errores

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

42

• Error de acumulación

– En t=0 el error de acumulación es cero, la solución numérica coincide con la exacta.

– En t>0 el error de truncamiento y redondeo se transmite de una estimación a la siguiente.

– Resultado el error práctico de truncado sea del orden de hn-1 y no de hn.

– Un número de pasos de integración grande contribuye a aumentar el efecto de este error

Errores

y(t) exacta

0 h 2h 3h 4ht

y(0)

Page 22: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

22

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

43

• Existen procedimientos para mejorar la estimación de y(t+h) alternativos a usar un algoritmo de mayor orden.

• Estos métodos están basados en el conocimiento del orden del error proporcionado por el método que utilicemos.– Sabemos que si tomamos la serie de Taylor hasta el término de orden n el

error es proporcional a hn.– Si denominamos ye a la solución exacta, y1 la solución estimada con un paso

h e y2 la solución estimada con un paso h/2. Entonces:

Mejoras en la estimación: extrapolación

ne2

ne1

)2h(cyy

hcyy

⋅+=

⋅+=

– Eliminando c· hn entre ambas ecuaciones tendremos:

12y2y

y n1

n2

e −−⋅

=

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

44

• En los métodos de paso fijo el error cometido es proporcional a hn, siendo n el orden del algoritmo de integración.– Menor h menor error de integración.

• El número de veces que resuelve el problema de integración de las ecuaciones es tmax/h.– Menor h más número de operaciones, más tiempo de cálculo.

• Solución de compromiso:– Escoger el h lo mayor posible sin que la solución supere una cota de error.

Métodos de paso variable

y

t

• Problema: – Escoger el valor de h.– No se obtienen soluciones en

instantes de tiempo regularmente espaciados, si se necesitan debemos interpolar.

Page 23: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

23

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

45

• Existen diversos métodos de paso variable:– Explícitos: Runge-Kutta-Merson, Runge-Kutta-Felberg ...– Implícitos: Gear …

• ¿Cómo estimar el valor del paso de integración?– Método de Gear:

• El error cometido en un paso es: e=c·hn.• Especifico una cota de error máximo en cada paso de integración E.• Selecciono el valor del paso de integración (h1), de modo que e=E.• Sabiendo que E=c· h1

n, entonces:n

1 heEh =

• Problema es como estimo el error cometido e.• Puede usarse la siguiente fórmula (para un método de orden 2):

...)))ht(y(f))t(y(f(2))ht(y(f)))ht(y(f))t(y(f())t(y(f))ht(y(f)))ht(y(f())ht(y(f

))t(y(f))ht(y(f))ht(y(f

))t(yh(fn1))t(yh(f

21))t(yh(fh

dt)t(yd

2

n222

2

−+−+=−−−−+=+∇∇=+∇

−+=+∇

⋅∇+⋅⋅⋅+⋅∇+⋅∇=

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

46

• Otro método (algoritmos implícitos):– Supongamos, por simplicidad:– La estimación del valor en t+h: ⋅⋅⋅+++=+ ))(())((

!2))(()()(

2tyf

ytyfhtyhftyhty

∂∂

– Si aplicamos la misma fórmula con un paso de integración negativo (-h) podemos re-estimar el valor en t usando el valor calculado en t+h:

⋅⋅⋅+++

++−+= ))(())((!2

))(()()(2

htyfy

htyfhhtyhfhtytye ∂∂

– Comparando el valor real en t con el valor estimado en la segunda ecuación podemos calcular e=|y(t)-ye(t)| y fijando una cota de error ε.

• Si e< ε seguimos la integración con el paso h.• Si no, tomamos el nuevo paso de integración h=h/2 y repetimos la estimación de

y(t+h).• Si la condición se cumple durante un determinado número de pasos de

integración el paso de integración pasa a valer el doble h=h*2.

))(()( tyfty =′

Page 24: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

24

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

47

Estabilidad• El error entre la solución numérica y la analítica debe tender a cero a

medida que la integración progresa.• La estabilidad de la solución en un problema depende del método y del

paso de integración h• Sin estabilidad las soluciones divergen de la verdadera o son oscilantes

Solución exacta

t

x

Solución

oscilante

Solución inestable

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

48

Estabilidad: Ejemplotµ-ey(t) analíticasolución .0µ 1;y(0) y·µ

tdyd

=>=−=

)()··1()(·)()( tyhtyhtyhty µµ −=−=+

• Para que y(t):

– Sea decreciente: 0< µ ·h<21hµ1

)t(y)ht(y

<⋅−=+

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

• Método de Euler explícito:

Page 25: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

25

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

49

• Método de Euler implícito:hµ1

)t(y)ht(y)ht(yµh)t(y)ht(y⋅+

=+⇒+⋅⋅−=+

• Para que y(t):

– Sea decreciente:cualquier valor de h1

hµ11

)t(y)ht(y

<⋅+

=+

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

• Método de Crank-Nicholson: ))t(yµ)ht(yµ(2h)t(y)ht(y ⋅−+⋅−+=+

• Para que y(t):

– Sea decreciente:cualquier valor de h 1

2hµ1

2hµ1

)t(y)ht(y

<⋅+

⋅−=

+

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

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

50

Estabilidad: caso general• Es difícil un estudio de la estabilidad en el caso general de sistemas de ecuaciones

diferenciales no lineales. Se suele estudiar la estabilidad local de una aproximación linealizada.

uByAtdyduyf

tdyd ·· ),( +=→=

• La estabilidad se expresa como una cota de |λh| siendo λ el mayor autovalor de A.• En general los métodos implícitos, aunque conllevan mas cálculo, proporcionan

rangos mayores de h para obtener soluciones estables y no oscilantes

• Linealización de una ecuación:

• Linealización de un sistema de ecuaciones: u·By·Adtyd rrr

+−=

Page 26: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

26

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

51

Sistemas “Stiff” o rígidos

• A veces se presentan sistemas con dinámicas mezcladas rápidas y lentas

uByAtdyd

)u,y(ftdyd rr

rrr

r

+=→=( )( )

100λReminλRemax

si stiffi

i >

• Si ambas son muy diferentes, pueden presentarse problemas de integración.• Se consideran “stiff” aquellos problemas en que el cociente entre el mayor y

menor autovalor de la linealización es superior a 100

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

52

Sistemas stiff: Ejemplo

=

+

−=

1

0(0)y

010

1101000

2

1

2

1 r

&

&

yy

yy

1)0(;0)0(:iniciales sCondicione

101000

21

212

11

==

−=

+−=

yy

yydt

dy

ydtdy

Forma matricial

• Autovalores -1000, -1• Usando el método de Euler explícito:

– Para evitar la inestabilidad debe elegirse un paso de integración h tal que h<2/1000=0.002, ya que 1000 es el mayor autovalor.

– Así, si quisiéramos integrar el sistema propuesto entre 0 y 5 segundos deberíamos realizar un mínimo de 5·1000/2=2500 iteraciones.

– Esto representa un tiempo de cálculo muy grande y la posibilidad de que los errores de redondeo acumulados sean muy grandes.

– Ventajas de usar un método implícito, que no tiene esos condicionantes sobre el paso de integración son evidentes.

Page 27: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

27

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

53

( ) ( )( ) tt1000

2

t10001

e9899.0e999

01.001.0ty

e101.0ty

−−

++=

−=

• Si solucionamos el sistema de ecuaciones analíticamente:

• Un modo de solucionar el problema es:– Transformar la ecuación diferencial rápida en algebraica y usar la ecuación

resultante en la ecuación lenta, con lo cual esta puede integrarse con un h mayor.

– Así el sistema de ecuaciones propuesto se transformará en:

22

212

1111

y01.0dt

dyyy

dtdy

01.0y10y1000010y1000dt

dy

−=⇒−=

=⇒+−=⇒+−=

– Ahora la solución analítica es:

– Numéricamente se puede solucionar con el método de Euler explícito pero ahora el límite de estabilidad dado por el paso de integración está en h=2>>0.002.

t2

1

e99.001.0)t(y01.0)t(y

−+=

=

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

54

=

−=

12

y(0) 5.5005.499

5.4995.500

2

1

2

1

yy

yy&

&

( )( ) t1000t

2

t1000t1

e5.0e5.1tye5.0e5.1ty

−−

−−

−=

+=

• La técnica expuesta es aplicable cuando puedan distinguirse claramente ecuaciones rápidas y lentas, y no se precise una gran precisión.

• En el caso de que las ecuaciones están fuertemente acopladas no es posible utilizar directamente simplificaciones como la anteriormente expuesta.

• Ilustrémoslo con el siguiente sistema:

1)0(y;2)0(y :iniciales sCondicione

y5.500y5.499dt

dy

y5.499y5.500dt

dy

21

212

211

==

−=

+−=

• Autovalores como en el caso anterior 1 y 1000.• Sin embargo, si solucionamos el sistema de

ecuaciones analíticamente:

Forma matricial

• Dinámica rápidas y lentas no separables.• Si aplicamos el mismo método que en el caso

anterior:

122 y

5.5005.499y.0

dtdy

=⇒=

497.0e497.1)t(y5.0e5.1)t(y

t998.12

t998.11

−=

+=−

• No es válido, se necesitan métodos específicos como el de Gear

Page 28: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

28

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

55

Método de Gear• Método específico para problemas stiff• Formulas implícitas de diversos órdenes variables• Ajuste del intervalo de integración variable• La elección del orden y el paso h se hace en función de un índice

teniendo en cuenta el número de pasos y el tiempo de cálculo extra asociado

• Una vez seleccionado el orden y h, se aplica el método, lo que implica resolver una ecuación no-lineal (en general un sistema de ecuaciones no lineales) por medio del método 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 método de Gear permite usar pasos de integración que son varias veces el valor de la menor constante de tiempo del sistema, lo cual hace que para sistemas stiff sea un procedimiento más rápido que cualquier otro.

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

56

2.3 Problemas DAE• Muchos problemas se formulan como conjuntos de ecuaciones

diferenciales y algebraicas acopladas

),(0),(

ZYGZYFY

==&

• También como ecuaciones implícitas (DAEs implícitos) donde no es posible despejar las derivadas

0),,( =tYYF &

• Veamos como se resuelven ...

Page 29: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

29

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

57

DAE

),(0),(

ZYGZYFY

==&

=

),(),(

ZYGZYF

RY&

=

ZY

GGFF

RY

zy

zy&

ZGYG zy −= YGGFFY yzzy )( 1−−=&

• Estimamos los jacobianos (Fy, Fz, Gy y Gz).• Resolvemos la ecuación diferencial obtenida (Y).• Resolvemos la ecuación algebraica G(Y,Z)=0, y obtenemos Z.• Ajustamos los valores de Gy y Gz para que los residuos sean cero.

Forma matricial Linealizando

Nominalmente R=0. Entonces

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

58

DAE implícito

0),,( =tYYH &

Caso particular de

),(00),(

ZYGZYFY

==−&

• Reemplazará la derivada de Y por una aproximación en diferencias de primer orden (BDF, backward difference formula).

• Resultando:

ty

dtdy

∆∆

• Debiendo resolver la ecuación implícita, por ejemplo, por el método de Newton-Raphson:

nnnnnn

nn tthtYh

YYH −==

−++++

+

+1111

1

1 :Siendo;0,,

• DASSL (Differential Algebraic System Solver) utiliza otras fórmulas BDF de coeficientes fijos para aproximar la derivada con ordenes mayores y con paso variable para obtener una precisión mayor.

Page 30: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

30

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

59

2.4 Lazos algebraicos

• Para hacer un programa de simulación de un modelo matemático, cada ecuación 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 matemático presenta ecuaciones algebraicas, estas deben usarse,

y de cada una de ellas despejar una variable.• Problema:

– Alguna ecuación 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 simbólicamente de modo automático y encontrar una expresión algebraica para cada variable algebraica

• Que puede ser no lineal– No se puede manipular simbólicamente de modo automático y debe resolverse el lazo de modo

numérico

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

60

Lazos algebraicos• Si el modelo presenta una ecuación del tipo:

– z=5·(sin(t)-ez)– Esta ecuación debe usarse para calcular z (porque t es el tiempo).– ¿Cómo despejo z?– Lo único que se puede hacer es utilizar un resolvedor de ecuaciones

implícitas para calcular z.• Resolvedores como los usados en los métodos implícitos

– Aproximaciones sucesivas

– Newton-Raphson

– ...

izi etz −=+ )·sin(51

( )( )i

i

i

ziz

iii

zii etz

ezzzF

zFzz −−

+−=

∂∂

−=−

+ )sin(·5··51

1)(1

1

Page 31: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

31

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

61

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 manipulación de las ecuaciones (que se puede automatizar) podría ser

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

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

62

Lazos algebraicos• Si el modelo presenta un lazo algebraico no lineal:

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

– El orden de calculo y la manipulación de las ecuaciones podría ser• pi=2 • po=1• p=(42·pi+ 32·po)/(42+ 32)• w=4·sqrt(p-po)

– Esta manipulación no se puede automatizar si el lazo algebraico es no-lineal (como éste), en general no queda más remedio que resolver todo el lazo numéricamente (resolviendo una de las ecuaciones como ecuación implícita)

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

Page 32: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

32

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

63

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 pequeña– Se trabaja a nivel macroscópico, con un grado de detalle menor que a nivel

microscópico.• Ejemplos:

– El rebote de una pelota con el suelo a escala macroscópica se modela de modo que vd=-c·va, siendo vd y va,las velocidades después y antes del choque y c el coeficiente de restitución. A escala microscópica 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 analógico. A escala macroscópica la salida del controlador cambia en instantes de tiempo determinados. A escala microscópica el voltaje nunca puede cambiar de forma discontinua porque en el circuito eléctrico siempre hay capacidades distintas de cero

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

64

Eventos y Discontinuidades

• Aparecen de forma natural en muchos procesos (aunque microscópicamente no sean discontinuos):

Histéresis

y

x

Saturaciones

y

x

Page 33: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

33

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

65

Eventos y Discontinuidades

• Aparición de fenómenos físicos nuevos bajo nuevas condiciones de operación,...

0y cuando

0 si 00 si

=−=

=

≤>−

=

kvv

vtdyd

yyg

tddv

Choque /rebotes

y

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

66

Eventos y Discontinuidades

• Calentamiento y Ebullición a presión constante

<=

≥<

=

e2

e

e

ee2

TT si λR/I-

TT si 0tdmd

TT si 0TT si )mcR/(I

tdTd

I

m TR

Page 34: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

34

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

67

Eventos y Discontinuidades

dtiempo tuyftdyd

dtempo tiuyftdyd

+≥=

+<=

),(

),(

2

1

∫+

+=+ht

t

duyftyhty ττ )),(()()(

• Los eventos implican una discontinuidad en f(y,u) o en su derivada– La aparición 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 aplicación directa de los métodos de integración mencionados

es incorrecta

f1(y,u) f2(y,u)

t t+ht-ht-2h t+d

f(y,u) Estimación de f(y,u)

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

68

Discontinuidades• La integración correcta exige:

– Localizar el instante de discontinuidad– Reinicializar la integración con las nuevas ecuaciones y

condiciones iniciales a partir de ese punto

∫+=++dt

tduyftydty τττ ))(),(()()( 1

∫++=++

+

ht

dtduyfdtyhty τττ ))(),(()()( 2

f1(y,u) f2(y,u)

t t+ht-ht-2h t+d

f(y,u)Estimación de f(y,u)

Page 35: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

35

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

69

Tipos de eventos

• Eventos en el tiempo, ocurren en un instante determinado de tiempo.– Periódicos (ej: periodo de muestreo de un controlador).– Aperiódicos, aquellos que suceden un tiempo después de que haya

sucedido otro evento.

• Eventos en el estado, ocurren cuando alguna condición en el estado de un sistema se satisface.– Pueden distinguirse tres tipos de eventos en el estado, aquellos en

los que la condición se satisface en la dirección positiva, negativa o en ambas direcciones.

• x=0• x=0 y dx/dt<0• x=0 y dx/dt>0

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

70

Eventos en el tiempo

≥<−

=3 tsi F(v)+g-3tsi g

tdvd

• Eventos en el tiempo aperiódicos, ocurren en un instante determinado de tiempo.– Ejemplo: un paracaídas se abre a los 3 segundos del salto.

El instante en que se produce la discontinuidad es conocido

Page 36: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

36

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

71

Eventos en el estado

•Se produce el cambio dependiendo del valor una función de una variable, normalmente al cruzar un umbral.•El instante de la discontinuidad no es conocido de antemano y debe determinarse

xv

0y(t) cuando )(·)(

)()(0)( si 00)( si )(

=−=

=

≤>−

=

tvktv

tvdt

tdytytyg

dttdv

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

72

• Los eventos en el tiempo son fáciles de tratar porque se conoce a priori cuando van a suceder, se ajusta el tamaño del paso de integración al instante en el que va a suceder el evento.

• Un posible algoritmo para la detección de los eventos en el estado es el siguiente:– Al finalizar cada paso de integración 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 integración previo y el actual, y se interpola para conocer el instante del cambio.

– Se aplica de nuevo el algoritmo tomando como paso de integración la diferencia entre el instante anterior y el instante en el que se produce el evento.

t+d

t+h

ϕ(x(t))

ϕ(x(t+h))

≤=

>=

0)( si ),(

0)( si ),(

2

1

xuxfdtdx

xuxfdtdx

φ

φ

Page 37: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

37

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

73

Problemas de la simulación de eventos: Chattering• La simulación de modelos híbridos (con eventos) plantea problemas

teóricos y computacionales que no se presentan en los modelos continuos.

• Fenómeno de “chattering”: – el número de eventos en el estado es grande comparado con el número de

pasos de integración.• Produce gran lentitud en la simulación, debido a:

– La detección de los eventos.– La determinación de su instante de disparo.– La ejecución de los eventos.– La solución del problema de re-inicio tras la ejecución de cada evento.

• La única solución al “chattering” es modificar el modelo.• Veamos un ejemplo

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

74

Ejemplo Chattering

0y(t) cuando )(·)(

)()(

)(

=−=

=

−=

tvktv

tvdt

tdy

gdt

tdv

• Modelo simplificado del bote de la pelota

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

Page 38: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

38

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

75

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 condición lógica

• El evento se desactiva cuando está activo y se deja de cumplir la condición lógica

– 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) próximos 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 pequeña 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

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

76

Ejemplo Chattering

• Solución, modificar el modelo– Añadir que v´(t)=0., si y(t)<0.

0y(t) cuando )(·)(

)()(0)( si 00)( si )(

=−=

=

<≥−

=

tvktv

tvdt

tdytytyg

dttdv

La pelota ya no se cae

La simulación se ralentiza

Page 39: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

39

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

77

Ejemplo Chattering

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

78

Ejemplo Chattering

Page 40: TEMA 2. Aspectos numéricos de la simulación de sistemasfelipe/docencia/so4inf/tema2.pdf · Tema 2 Simulación 1 TEMA 2. Aspectos numéricos de la simulación de sistemas • Objetivos

40

Simulación y Optimización4º Ingeniería Informática. Tema 2 Simulación

79

Ejemplo Chattering• Para solucionar el problema hay

que plantearlo con dos modos de funcionamiento

– Pelota está en movimiento

– Pelota está parada

• La pelota está parada o en movimiento en función de una variable lógica, por ejemplo parada

– parada=true cuando la energía de la pelota le impida salir de la banda de detección del evento.

– Es decir ebote < ebanda

– Energía para salir de la banda

– Energía en el momento del bote

0y(t) cuando )(·)(

)()(

)(

=−=

=

−=

tvktv

tvdt

tdy

gdt

tdv

.0)(

.0)(

=

=

tydt

tdv

)·2·(· epsilongmebanda =

2··5.0·· vmygmebote +=

• Cuando la pelota esté parada, ya no se “integra” y(t) y además v(t) queda constante, con lo cual no se ralentiza la simulación