270 likes | 452 Views
En esta presentación trataremos con el problema de la ocurrencia de discontinuidades en modelos. Modelos de la ingeniería exhiben frecuentemente discontinuidades que describen situaciones como la conmutación, limitadores, el rozamiento de Coulomb, impulsos y fenómenos similares.
E N D
En esta presentación trataremos con el problema de la ocurrencia de discontinuidades en modelos. Modelos de la ingeniería exhiben frecuentemente discontinuidades que describen situaciones como la conmutación, limitadores, el rozamiento de Coulomb, impulsos y fenómenos similares. El entorno de modelado debe ser capaz de tratar con estos problemas de forma eficiente, porque influencian fuertemente el comportamiento numérico del “resolvedor” de las ecuaciones diferenciales. Tratamiento de Discontinuidades
Resolvedores de ecuaciones diferenciales numéricos Discontinuidades en ecuaciones de estado La integración a través de discontinuidades Eventos en el estado El tratamiento de eventos Funciones multivalores El conmutador eléctrico El diodo ideal El rozamiento Contenido
Todos los resolvedores numéricos de EDOs en el mercado de hoy funcionan usando extrapolaciones polinomiales. El valor de una variable de estado x al instante de tiempo t+h, donde h es el paso de la integración numérica, se aproxima ajustando un polinomio de orden n tal que coincide en n+1 valores conocidos de suporte de x y de dx/dt al instante de tiempo t y a valores del pasado. El valor del polinomio de extrapolación al instante de tiempo t+h representa la solución aproximada de la ecuación diferencial ordinaria. En el caso de algoritmosimplícitos de la integración se usa también el valor de la derivada del estado al instante de tiempo t+h como un valor de suporte. Resolvedores de EDOs Numéricos
· x(t+h) x(t) + h · x(t) · x(t+h) x(t) + h · x(t+h) Ejemplos Algoritmo deintegración de Eulerexplícito de 1er orden: Algoritmo deintegración de Eulerimplícito de 1er orden:
Polinomios son siempre funcionescontinuas y continuamente derivables. Entonces, si las ecuaciones de estado del sistema: exhiben una discontinuidad, el polinomio de extrapolación aproxima la realidad pobremente. Por consecuencia exhiben algoritmosde integración con paso fijo un errorde integración largo, mientras que algoritmos de integración con paso variable tienen que reducir el tamaño del paso fuertemente en la proximidad de una discontinuidad. · x(t) = f(x(t),t) Discontinuidades en Ecuaciones del Estado
Un algoritmo de integración con paso variable reduce el tamaño del paso en la proximidad de cada discontinuidad. Después de pasar por encima de la discontinuidad, el tamaño del paso tiene que alargarse lentamente, porque el algoritmo de la integración no puede distinguir entre una discontinuidad y un punto local de rigidez larga (con un valor absoluto largo de la derivada). Discontinuidades El paso se queda constantemente pequeño. La simulación al menos es muy ineficiente, sino incorrecta. Integración a Través de Discontinuidades h t
Estas problemas pueden evitarse si se dice al algoritmo de integración de forma explícita cuando y donde ocurren discontinuidades en la descripción del modelo. 3 1 2 f(x) fp f = fm xm a f = m·x x xp f = fp fm m = tg(a) f = ifx < xm then fm else if x < xp then m*x elsefp ; Eventos en el Estado Ejemplo: El limitador
Iteración x xp Umbral t h h f(x) fp Cambio del modelo h x xp xm a x xp t t h fm Reducción del paso durante la iteración Evento El Tratamiento de Eventos I
h t h Tamaño del paso en función del tiempo sin tratamiento de eventos Tamaño del paso en función del tiempo con tratamiento de eventos t El Tratamiento de Eventos II
En Modelica, discontinuidades se representan por cláusulas if. En el proceso de la transformación del modelo, estas cláusulas se transformen en descripcionesde eventos correctos (conjuntos de modelos con condiciones de cambios). El usuario no tiene que ocuparse de los mecanismos de la descripción adecuada de eventos. Estos se esconden detrás de las cláusulas if. f = ifx < xm then fm else if x < xp then m*x elsefp ; Representación de Discontinuidades
El usuario tiene que tomar en cuenta que la solución numérica temporáneamente sale de la región física durante la iteración. puede ser peligroso, porque absDppuede asumirtemporáneamente un valor negativo. resuelve el problema. Dp = p1 – p2 ; absDp = ifDp > 0 thenDp else –Dp ; q = sqrt(absDp) ; q = | Dp | Dp = p1 – p2 ; absDp =noEvent(ifDp > 0 thenDp else –Dp ) ; q = sqrt(absDp) ; Problemas
La construcciónnoEventtiene el efecto que cláusulas ify expresionesBooleanas, que normalmente se traducen a códigos de simulación conteniendo descripciones de eventos correctos, se trasfieren directamente a la integración numérica sin modificarlas. De esa forma se pospone el tratamiento de la discontinuidad hasta el tiempo de la simulación cuando se ocupa el algoritmo de control del paso del problema. Dp = p1 – p2 ; absDp =noEvent(ifDp > 0 thenDp else –Dp ) ; q = sqrt(absDp) ; La Construcción “noEvent”
Las construcciones sintácticas que introdujimos hasta ahora no sirven para la descripción de funcionesmulti-valores, como por ejemplo la funciónde histéresis seca enseñada por debajo. Si xse hace más grande que xp, f debe cambiar su valor de fm a fp. Si xse hace más pequeño que xm, f debe cambiar su valor de fp a fm. f(x) fp x xm xp fm Funciones Multivalores I
se hace más grande es más grande f(x) fp when initial() then reinit(f, fp); end when; when x > xp or x < xm then f = if x > 0 then fp else fm; end when; x xm xp Ejecutado al principio de la simulación. } fm Esa cláusula se ejecuta solamente cuando xse hace más grande quexpo cuando xse hace más pequeño quexm. Funciones Multivalores II
i u 0 = ifopenthenielse u ; El Conmutador Eléctrico I Si el conmutador está abierto, la corriente es i=0. Si el conmutador estácerrado, el voltaje es u=0. La cláusulaifde Modelica es no causal. Se ordena en mismo tiempo que todas las demás ecuaciones.
0 = s · i + ( 1 – s ) · u Conmutador abierto: Sf f = 0 e s Sw La causalidad del elementode conmutación es una función del valor de la señal s. f Conmutador cerrado: e = 0 Se El Conmutador Eléctrico II Implementación posible: Conmutador abierto: s = 1 Conmutador cerrado: s = 0
Si u < 0, el conmutador está abierto. No corre ninguna corriente. i Conmutador cerrado i u u Si u > 0, el conmutador está cerrado. Corriente puede correr. El diodo ideal se comporta como un corte. Conmutador abierto f D open = u <0; 0 = ifopenthenielse u ; e El Diodo Ideal I
Como corriente que corre a través de un diodo no puede interrumpirse es necesario modificar el modelo del diodo levemente. La variable open tiene que declararse como Booleana. El valor a la derecha de la expresión Booleana se asigna a ella. open = u <= 0and noti > 0; 0 = ifopenthenielse u ; El Diodo Ideal II
Fenómenos más complejos, como la característica del rozamiento, tienen que analizarse con mucho cuidado caso por caso. Se habla aquí de como puede hacerse usando el ejemplo del rozamiento. fB R0 Rm Rozamiento viscoso v Rozamiento seco -Rm -R0 La Característica del Rozamiento I Si v 0 , la fuerza de rozamiento es una función de la velocidad. Si v = 0 , la fuerza de rozamientose calcula tal que la velocidad mantiene un valor de 0.
Distinguimos entre cinco situaciones: Pegado: La fuerza de rozamiento compensa la suma de todas las fuerzas conectadas, salvo si |Sf | > R0 . v = 0 a = 0 Avanzando: v > 0 La fuerza de rozamientose calcula usando: fB = Rv · v + Rm. Retrocediendo: v < 0 La fuerza de rozamientose calcula usando: fB = Rv·v -Rm. Empezando a avanzar: v = 0 a > 0 La fuerza de rozamientose calcula usando: fB = Rm. Empezando a retroceder: v = 0 a < 0 La fuerza de rozamientose calcula usando: fB =-Rm. La Característica del Rozamiento II
El conjunto de eventos puede describirse por un diagrama de transición entre estados. Principio v < 0 v > 0 v = 0 Sf < -R0 Sf > +R0 Aceleración hacia atrás(a < 0) Aceleración hacia adelante(a > 0) Pegado (a = 0) Movimiento hacia atrás(v < 0) Movimiento h. adelante(v > 0) a 0 and not v < 0 a 0 and not v > 0 v 0 v 0 v < 0 v > 0 El Diagrama de Transición entre Estados
El Modelo del Rozamiento I model Friction; parameter Real R0, Rm, Rv; parameter Boolean ic=false; Real fB, fc; Boolean Sticking (final start = ic); Boolean Forward (final start = ic), Backward (final start = ic); Boolean StartFor (final start = ic), StartBack (final start = ic); fB = if Forward then Rv*v + Rm else if Backward then Rv*v - Rm else if StartFor then Rm else if StartBack then -Rm else fc; 0 = if Sticking or initial() then a else fc;
when Sticking and not initial() then reinit(v,0); end when; Forward = initial() and v > 0or pre(StartFor)and v > 0or pre(Forward) and not v <= 0; Backward = initial() and v < 0or pre(StartBack)and v < 0or pre(Backward) and not v >= 0; El Modelo del Rozamiento II
StartFor = pre(Sticking) and fc > R0or pre(StartFor)and not (v > 0or a <= 0and not v > 0); StartBack = pre(Sticking) and fc < -R0or pre(StartBack)and not (v < 0or a >= 0and not v < 0); Sticking = not (Forward or Backward or StartFor or StartBack); end Friction; El Modelo del Rozamiento III
Cellier, F.E. (1979), Combined Continuous/Discrete System Simulation by Use of Digital Computers: Techniques and Tools, PhD Dissertation, Swiss Federal Institute of Technology, ETH Zürich, Switzerland. Elmqvist, H., F.E. Cellier, and M. Otter (1993), “Object-oriented modeling of hybrid systems,” Proc. ESS'93, SCS European Simulation Symposium, Delft, The Netherlands, pp.xxxi-xli. Cellier, F.E., M. Otter, and H. Elmqvist (1995), “Bond graph modeling of variable structure systems,” Proc. ICBGM'95, 2nd SCS Intl. Conf. on Bond Graph Modeling and Simulation, Las Vegas, NV, pp. 49-55. Referencias I
Elmqvist, H., F.E. Cellier, and M. Otter (1994), “Object-oriented modeling of power-electronic circuits using Dymola,” Proc. CISS'94, First Joint Conference of International Simulation Societies, Zurich, Switzerland, pp. 156-161. Glaser, J.S., F.E. Cellier, and A.F. Witulski (1995), “Object-oriented switching power converter modeling using Dymola with event-handling,” Proc. OOS'95, SCS Object-Oriented Simulation Conference, Las Vegas, NV, pp. 141-146. Referencias II