Upload
others
View
17
Download
0
Embed Size (px)
Citation preview
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
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
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
=
⋅−⋅−=
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”
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
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)
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 −−−+=+
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 +=+
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 β
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 +⋅⋅+⋅+=+
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.
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
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
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
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
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.
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
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
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
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.
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)
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.
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 =′
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:
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
+−=
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.
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
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 ...
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.
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
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
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
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
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)
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
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
φ
φ
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?
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
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
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