Sunteți pe pagina 1din 20

Mecnica Computacional Vol. XXIV A.

Larreteguy (Editor) Buenos Aires, Argentina, Noviembre 2005

UNA FORMULACIN MATEMTICA ORIENTADA A OBJETOS PARA SIMULACIN CONTINUA


Gustavo A. Boroni1, Alejandro Clausse1,2
1

CNEA y Universidad Nacional del Centro,7000 Tandil, Argentina email: gboroni@exa.unicen.edu.ar Tambin CONICET email: clausse@exa.unicen.edu.ar
2

Palabras Claves: Simulacin continua, DAE, Orientacin a objetos, Modelado. Resumen: En este trabajo se presenta un estudio de los problemas que surgen en la implementacin de modelos de simulacin continua usando programacin orientada a objetos (O-O). El enfoque se dirige a encontrar un diseo O-O que resuelva problemas de valor inicial de simulacin continua mediante DAE de manera generalizada. Para ello, se ha encontrado que es importante realizar un planteo matemtico que sea compatible con la programacin O-O, lo cual lleva naturalmente a esquemas numricos implcitos. Dentro de este tipo de esquemas se ha propuesto una extensin del mtodo BDF, que demostr tener una alta compatibilidad con los requerimientos de flexibilidad y modificabilidad. Como resultado final se realizaron una serie de experimentos donde se compararon aspectos numricos como errores y velocidades de clculo, y distintos factores de calidad de software tales como performance, modularidad, y extensibilidad, haciendo hincapi en las ventajas y desventajas del uso de distintos esquemas de clculo.

2451

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

INTRODUCCIN

La programacin orientada a objetos (O-O) y la utilizacin de frameworks han demostrado ser un medio eficiente para la construccin y mantenimiento de sistemas de software. La aplicacin de esta metodologa se ha extendido a muchas ramas de la computacin aplicada, como bases de datos, agentes, sistemas expertos, computacin grfica, soportes de comunicacin, entre otras. Esencialmente la metodologa O-O consiste en un replanteo de la modularizacin de los programas [4]. Todo programa de computacin tiene dos elementos fundamentales: datos y funciones. Los datos son los portadores de la informacin digital por medio de una codificacin, mientras que las funciones (que en realidad tambin deben ser representadas mediante una codificacin) son los procedimientos con los cuales se modifican los datos. En la metodologa de programacin procedural los programas se dividen en mdulos definidos por las funciones (subrutinas, procedimientos, funciones, etc.). Esta es una manera natural de organizacin de un ingeniero industrial, que divide un proyecto en tareas, y los productos van pasando de una a otra tarea en forma secuencial. Esta manera de estructurar los programas, que es muy eficiente desde el punto de vista del proceso de clculo, da lugar a enormes dificultades cuando se debe modificar o extender el programa. La raz de este problema radica en que los datos son compartidos por todos los mdulos funcionales, por lo que una modificacin en un mdulo implica revisar toda la estructura para asegurar compatibilidad y consistencia. La metodologa O-O cambia radicalmente el principio de estructuracin de un programa: los elementos fundamentales son los datos. Las funciones (llamadas mtodos) se definen e implementan de acuerdo a la modularizacin establecida por los datos. De esta manera, cada mdulo del programa (llamado objeto) es responsable de sus propios datos, los cuales slo pueden ser modificados por los mtodos propios, y slo pueden observados por los otros objetos a travs de protocolos que resguardan el encapsulamiento. Adems de la tcnica de encapsulamiento, la metodologa O-O introduce otros conceptos de modularidad que ayudan al programador a estructurar los sistemas asegurando la extensibilidad y modificabilidad futura. Entre otros se mencionan la abstraccin, herencia y el polimorfismo. Para poder programar siguiendo la metodologa O-O se desarrollaron lenguajes de alto nivel, como C++, Delphi y Java. Sin embargo, es importante notar que el uso de un lenguaje O-O es condicin necesaria, pero no suficiente para asegurar las ventajas de la metodologa O-O (i.e. modificabilidad y extensibilidad). En el marco de esta metodologa cobra un rol crucial el diseo de la estructura bsica del programa (llamada framework), a tal punto que hay un rea de ingeniera de software dedicada especficamente al desarrollo de arquitecturas standards clsicas recomendadas para problemas tpicos (llamados patterns). En el rea de computacin cientfica, si bien ha habido avances importantes en el desarrollo de software O-O, la utilizacin de frameworks de diseo no ha alcanzado todava el mismo grado que en otras reas. Las mayora de las herramientas de software actualmente disponibles para clculo cientfico sigue todava estructurndose en base a diseos modularizados en base a las funciones, resultando muy trabajoso (y a veces imposible)

2452

Gustavo A. Boroni, Alejandro Clausse

mantener y extender los sistemas implementados, incluso para cambios menores. La razn principal de este hecho es que el software se implementa en programacin procedural (i.e. FORTRAN) o se usan lenguajes O-O pero con diseos esencialmente procedurales. Una sintomatologa tpica de este tipo de inconvenientes es que a menudo se suele encarar el clculo de problemas numricos de gran escala empleando varias herramientas diferentes para generar resultados parciales, que luego se procesan con otras aplicaciones para obtener por fin un resultado final. Existen algunos antecedentes de esfuerzos interesantes de implementaciones de mtodos numricos complejos en el paradigma O-O [2-7-8-9]. Todos ellos concluyen en que el papel que juega el planteo matemtico de cada problema es crucial para lograr buenos diseos de software. En este trabajo se presenta un estudio de los problemas que se presentan en la utilizacin del paradigma de O-O en el modelado y simulacin continua mediante sistemas de ecuaciones diferenciales y algebraicas (DAE). El objetivo del anlisis es encontrar un diseo O-O que resuelva problemas DAE de valor inicial de manera generalizada, con el propsito de facilitar la tarea del modelista que a menudo implica un proceso de sofisticacin progresiva de los modelos, con la modificacin, extensin y eliminacin de ecuaciones y variables al sistema. Se mostrar que en este tipo de problemas que involucran un fuerte peso de la funcionalidad respecto de la estructura de datos es importante partir de planteos matemticos compatibles con la metodologa O-O. En el caso de simulacin continua mediante DAE, esto lleva naturalmente a esquemas numricos implcitos. Dentro de este tipo de esquemas se propone en este trabajo una extensin del mtodo BDF (Backward Differentiation Formulas), que demostr tener una alta compatibilidad con los requerimientos de flexibilidad y modificabilidad. Finalmente, se presenta una implementacin de las ideas desarrolladas en una arquitectura O-O destinada a facilitar el diseo e implementacin de problemas de simulacin continua, estudindose diferentes factores de calidad de software tales como performance, modularidad, y extensibilidad. 2 SIMULACIN CONTINUA

Se llama simulacin continua a las representaciones numricas de realidades cambiantes en el tiempo en base a procesos sincronizados; es decir que el tiempo es una nica variable global que sirve de referencia para todas las otras variables. Este concepto, que puede parecer obvio para quienes estn acostumbrados a las metodologas de simulacin numrica en base a ecuaciones diferenciales, no es la nica posibilidad para simular sistemas dinmicos. Existe tambin el concepto de tiempo local, usado en la llamada simulacin discreta, mediante el cual cada hilo del proceso general tiene asociado una lnea de tiempo diferente, las cuales deben ser sincronizadas de alguna manera. Los sistemas fsicos que tienen variables dependientes del tiempo en general son representados mediante simulacin continua por medio de ecuaciones diferenciales ordinarias. Los problemas que involucran el espacio como variable independiente adems del tiempo son ms complicados y se representan con ecuaciones a derivadas parciales. El

2453

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

objeto del presente trabajo son la primera clase de problemas i.e. una sola variable independiente, aunque algunas de las conclusiones a las que se llegar pueden servir de base para el tratamiento de ecuaciones. Considrese por ejemplo el caso simple de dos tanques con dos bombas que trasfieren agua de un tanque al otro como muestra la Figura 1.

Figura 1: Tanques de regulacin por bombas.

La dinmica de este sistema puede describirse en una primera aproximacin con dos ecuaciones diferenciales para los volmenes de agua y dos ecuaciones algebraicas para los caudales:

&1 = q1 q2 v &2 = q2 q1 v

q1 = p1 ( vref v1 ) q2 = p2 ( vref v2 )

(1)

Donde se ha adoptado un control proporcional de los volmenes, buscando mantener un volumen de referencia fijo vref . El procedimiento usual para resolver numricamente un problema como este es utilizar un esquema de integracin clsico (i.e. Runge-Kutta) para lo cual se lleva el sistema a la forma:

r r r & = f (x) x
Donde x es el vector de estado. En este caso:

(2)

r x = (v1 , v2 ) f1 = ( p1 p2 )vref p1v1 + p2v2 f 2 = ( p2 p1 )vref + p1v1 p2v2


(3)

2454

Gustavo A. Boroni, Alejandro Clausse

Generalmente, en un proceso de modelado ordenado, las ecuaciones se van complicando poco a poco a medida que se van agregando trminos y variables para representar ms detalles de la realidad. La tarea del modelista es ir experimentando con las progresivas sofisticaciones siguiendo una sucesin de hiptesis y comparaciones con la realidad. Las siguientes son ejemplos de las modificaciones tpicas que se encuentran durante el desarrollo de modelos, complicando la tarea del modelista. 1) Cambiar una constante por una funcin de las variables de estado. Durante el desarrollo de modelos dinmicos diferenciales es usual extender un modelo introduciendo una dependencia de las variables de estado en algunos parmetros de control. Este puede traer complicaciones de programacin cuando la estructura de datos es muy rgida. Por ejemplo, en el caso base se puede extender el modelo imponiendo una dependencia de los parmetros pi con los volmenes (i.e. introduciendo un control no lineal). Si se busca generalidad en el cambio, en lugar de cambiar la ecuacin del caudal se debera cambiar la declaracin de pi de constante a variable auxiliar, y agregar en otra lnea la dependencia con el volumen. A su vez, dependiendo de la manera en que cada tipo de dato (constante, variable auxiliar, variable de estado) es comunicado, debe asegurarse consistencia en la transferencia de datos entre mdulos durante el clculo. 2) Cambiar una constante por una variable de estado. Esta modificacin es parecida a la anterior, pero aqu se agrega una ecuacin diferencial para dar cuenta de la variacin del parmetro en cuestin. Los inconvenientes son anlogos a la modificacin 1. 3) Reemplazar una ecuacin diferencial por una ecuacin algebraica. Este cambio es una transformacin bastante comn cuando se trabaja con ecuaciones diferenciales de balances del tipo:

& = E in out

(4)

Donde las tasas de crecimiento y decrecimiento de la variable E , out y in , son funciones de las variables de estado del sistema. Si la constante de tiempo de esta ecuacin es mucho menor que las otras ecuaciones del sistema, se puede plantear una aproximacin cuasiesttica anulando la derivada, es decir:

in = out

(5)

La cual es una ecuacin algebraica. Modificaciones como esta provocan cambios del orden del sistema de ecuaciones, lo cual puede afectar entre otras cosas el control del paso de tiempo. Sin embargo, el inconveniente principal no es ese, sino el hecho que obligan a reescribir completamente el sistema de ecuaciones para volver a llevarlo a la forma requerida

2455

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

& = f ( x ) . En efecto, si se elimina la ecuacin (4), la por los esquemas explcitos, esto es x variable E no ser ms variable de estado, aunque seguir siendo requerida para calcular r r f ( x ) por lo que deber calcularse a partir de las ecuaciones algebraicas auxiliares
incluyendo la nueva. Este incordio implica la reprogramacin del modelo, con su carga adicional de errores promedio de implementacin. 4) Reemplazar una ecuacin algebraica por una ecuacin diferencial. Este cambio es la transformacin inversa a la anterior. Tambin aqu se pueden generar inconvenientes en el control del paso de tiempo y en la reimplementacin del modelo. 5) Agregar un trmino con una derivada temporal. Este cambio tpicamente aparece cuando se agrega un trmino de control derivativo. Por ejemplo en el ejemplo de los tanques:

r r

&1 q1 = p1 ( vref v1 ) d1v

&2 q2 = p2 ( vref v2 ) d 2v

(6)

de modificacin es complicada porque requiere reescribir nuevamente el sistema r tipo r Este r & = f ( x ) , lo cual implica como en el caso 3 la reprogramacin del modelo. x 6) Generar un sistema de N instancias. Este es un cambio tpico en el modelado de procesos con gran nmero de componentes similares. Ejemplos tpicos son los procesos de destileras, las tuberas, los modelos de poblaciones. De hecho la discretizacin de ecuaciones a derivadas parciales lleva generalmente a sistemas de muchas ecuaciones ordinarias similares acopladas (celdas). En el ejemplo de los tanques la extensin a N instancias es directa, quedando:

&1 = q1 q2 v ... &i = qi qi +1 v ... &N = qN q1 v

q1 = 1 ( vref v1 ) ... qi = i ( vref vi ) ... qN = N ( vref vN )


(7)

En este caso, es muy til para el modelista disponer de la propiedad de herencia, que permite encapsular las partes comunes de los subsistemas, ahorrando trabajo de

2456

Gustavo A. Boroni, Alejandro Clausse

programacin. Es claro darse cuenta que los inconvenientes que traen asociadas las modificaciones anteriores se multiplican por N con esta extensin. 3 SISTEMAS DE ECUACIONES ALGEBRAICAS Y DIFERENCIALES (DAE)

La resolucin numrica de problemas de condiciones iniciales modelados con sistemas DAE es un tema de importancia al cual se dedican esfuerzos considerables desde hace 30 aos [1-2]. Muchos problemas de ingeniera y ciencia se modelan en forma natural con sistemas DAE, donde en general las ecuaciones diferenciales representan balances del tipo:

r r r r & , x, y) = 0 F (x
Y las ecuaciones algebraicas representan restricciones o relaciones constitutivas:

(8)

r r r G( x, y) = 0

(9)

Para garantizar que puede resolverse problemas de valores iniciales, los sistemas de r & tengan solucin nica ecuaciones (8) y (9) deben asegurar que las derivadas temporales x r r para todo conjunto vlido de valores de x e y . En este caso, siempre se puede convertir el sistema DAE en un sistema de ecuaciones diferenciales ordinarias (ODE) del tipo:

r r r & = f (x) x

(10)

El cual se puede resolver con alguno de los integradores numricos clsicos (Runge-Kutta, multipaso, etc.). La conversin al sistema de ecuaciones (10) puede ser problemtica por varias razones. Por ejemplo, a menudo los sistemas DAE aumentan su rigidez (stiffness) al ser reescritos como ODE. De cualquier modo, aunque esto no suceda, nuestro inters en mantener la estructura DAE durante la resolucin numrica, surge de la bsqueda de patrones de diseos de software eficientes, especialmente desde el punto de vista del usuario como modelista. El objeto general de estudio puede plantearse entonces con una funcin no lineal totalmente implcita de la forma:

r r r &, x) = 0 F (x r r r

(11)

& , x ) suelen llamarse funciones residuales. El conjunto de ecuaciones Las funciones F ( x (11) es entonces una combinacin de ecuaciones diferenciales y algebraicas. Un problema de r condiciones iniciales (IVP) consiste en determinar las funciones temporales x (t ) que
satisfacen un sistema DAE dados los valores x0 en t = 0 .

2457

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

Para la solucin numrica de IVP de DAEs actualmente se dispone de una variedad de mtodos numricos que pueden clasificarse en tres categoras: mtodos de un paso, multipaso y de extrapolacin. La eficiencia de cada tipo de aproximacin depende del problema particular. En este trabajo, se presentar un estudio de los aspectos de diseo de software para resolver DAE aplicando la subclase de mtodos multipaso BDF (Backward Difference Formulas), desarrollado por Gear (1971) [3], el cual tiene propiedades interesantes desde el punto de vista de la flexibilidad. En lneas generales, el procedimiento BDF para resolver sistemas DAE se basa en transformar las DAE en un sistema puramente algebraico mediante r aproximaciones r & en las funciones numricas. Para ello se define una transformacin reemplazando x y x r r r r r r r r residuales por funciones X ( xn , xn 1 , xn 2 ,...) y DX ( xn , xn 1 , xn 2 ,...) , que representan estimadores multipaso del vector de estado y su derivada (por convencin xk = x (tk ) ). Con esta operacin quedan definidas las funciones residuos estimadas:

r r r r G ( xn , xn 1 , xn 2 ,...) = 0

(12)

Las Ecs. (12) son un sistema de ecuaciones algebraicas cuya incgnita es el vector de r estado en el nuevo tiempo xn , el cual se calcula en funcin de la historia pasada. Dentro de este procedimiento general, existen diferentes alternativas de acuerdo a la especificacin de: r r 1) Las frmulas X y DX . 2) La estrategia de control del paso de tiempo. 3) El mtodo de resolucin de las races de las funciones residuales estimadas

r r r r G ( xn , xn 1 , xn 2 ,...) = 0 .

4) La estructura de datos y clases para manejar los distintos pasos del algoritmo de resolucin. El planteo BDF extendido resulta un esquema de clculo ventajoso para el desarrollo de modelos, sobre todo porque resuelve naturalmente los problemas que surgen al introducir las modificaciones tpicas del desarrollo de modelos dinmicos. En efecto, planteando el problema r r r matemtico desde el punto de vista implcito, la forma funcional bsica & , x ) = 0 es invariante a cualquiera de los cambios mencionados en la seccin anterior. F (x Desde este punto de vista se puede decir que los esquemas implcitos son una matemtica natural para la programacin orientada a objetos. r r r & , x ) . La implementacin de la resolucin Los objetos naturales sern las funciones F ( x puede ser encapsulada fcilmente, de manera que el modelista vea una caja integradora

2458

Gustavo A. Boroni, Alejandro Clausse

& , x ) , sin preocuparse en la cual introduce, agrega, cambia, elimina, funciones del tipo F ( x por reescribir las ecuaciones, ni por problemas de comunicacin de datos.
4 ANLISIS Y DISEO O-O DE DAE Las bibliotecas de subrutinas tradicionales disponibles para resolver ecuaciones diferenciales presentan dos debilidades principales desde el punto de vista de la programacin: interfaces rgidas y complejidad de los algoritmos exponencialmente creciente con la variedad de los sistemas a resolver. La primera debilidad afecta a los usuarios ya que es relativamente dificultoso elaborar modelos usando estas bibliotecas, ya que el modelista carga con un doble trabajo: representar su modelo matemticamente y adaptar la representacin resultante a la interface requerida. La segunda debilidad afecta a los desarrolladores de bibliotecas ya que las tareas de programacin y mantenimiento se multiplican. Ambos problemas son consecuencia de diseos con abstracciones deficientes. Por un lado, para optimizar la performance numrica, el acceso a las subrutinas suele estar forzado a estructuras de datos rgidas, de manera que cuando alguna de esas estructuras es substituida durante el proceso de modelado, se requiere la implementacin de nuevas subrutinas. Otro inconveniente es que las subrutinas suelen incluir variables que describen las estructuras de datos. Mediante la programacin O-O podran producirse implementaciones mejoradas de mtodos numricos, pero debe tenerse en cuenta que habr siempre una penalidad en la performance de clculo. Por ello, como la simulacin computacional a menudo requiere cdigos complicados y altamente eficientes, la performance de los lenguajes de alto nivel siempre compite con las mejoras logradas. En esta seccin se presenta un estudio de estos tpicos, y los resultados obtenidos durante el diseo e implementacin de una herramienta general de resolucin numrica de sistemas DAE para simulacin continua. 4.1 Anlisis un sistema

r r r

DAE es un conjunto de funciones escalares F = { F1 ( A, B ), F2 ( A, B ),..., FN ( A, B)} , donde A es un conjunto de N funciones del parmetro tiempo (real e independiente), y B son las correspondientes derivadas temporales de A . La metodologa BDF consiste en transformar el conjunto F en un sistema de N ecuaciones algebraicas G {G1 ([ X ]), G2 ([ X ]),..., GN ([ X ])} = 0 donde [ X ] es un arreglo de N elementos que representan el valor calculado del conjunto de funciones de A evaluadas en el tiempo actual. La transformacin F G se efecta asignando a cada elemento de A y B una funcin estimadora multipaso f ([[ X ]]) , donde [[ X ]] denota una lista de arreglos [ X ] creciente con el tiempo (i.e. [[ X ]] es una lista donde cada elemento es el valor de las funciones A calculada en cada tiempo).

Esencialmente,

2459

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

4.2

Diseo

El objetivo de los sistemas a implementar es la resolucin numrica de sistemas DAE usando esquemas explcitos e implcitos, buscando mantener la flexibilidad para el desarrollo de modelos de simulacin continua. En particular se aplicar el mtodo de Runge-Kutta de cuarto orden, y el mtodo BDF generalizado. A continuacin se describen los diseos correspondientes a cada esquema. Para que las clases y los diagramas resulten ms claros se omitirn los siguientes aspectos: constructores, destructores y mtodos de consulta de atributos. La sintaxis de declaracin de atributos, mtodos y pseudocodigos es una sintaxis relajada en C++. 4.2.1 Clases para la resolucin de esquemas implcitos

Sistema DAE Esta clase define de manera genrica a los r sistemas de ecuaciones DAE del tipo (11). Para r & se utilizan matrices dinmicas ( x y dxdt ), representar las variables temporales x y x donde las columnas estn asociadas a las variables del sistema y las r filas representan los valores histricos temporales de las variables (ver Figura 2). Las F se declaran sobre r el r &, y mtodo Calcular_F(), al cual se le pasa por parmetro las estimaciones de x y x r devuelve como resultado el valor de las F evaluadas en dichos puntos. Dado que en la resolucin de un problema puede haber varios sistemas de ecuaciones vinculados a travs de las variables, se agreg una relacin de asociacin de 0..* entre objetos de la misma clase. Para completar la funcionalidad de esta clase se definieron adems los siguientes mtodos: r Guess_Inicial(): se utiliza para obtener xguess (t ) asociado a un tiempo t . Posible_Solucion(): permite guardar un x probable (t ) para un tiempo t . Actualizar_Histrico(): efectiviza un x probable (t ) como solucin para un tiempo t . Obtener_Histrico(): como su nombre lo indica se utiliza para obtener los valores histricos de las variables.

Figura 2: Representacin dinmica y temporal de las variables.

Controlador Esta clase representa un controlador maestro que sincroniza y actualiza todo el proceso de clculo. Las dos variables principales que administra son el tiempo actual t y el paso de

2460

Gustavo A. Boroni, Alejandro Clausse

tiempo DT . El mtodo Avanzar() se utiliza para calcular los valores de las variables para un tiempo dado por parmetro. Durante la ejecucin de este mtodo se actualizarn los valores histricos de los resultados obtenidos para los sistemas de ecuaciones DAE, y se recalcular DT (mtodo Calcular_Nuevo_DT()) en funcin de una estimacin del error de los resultados (mtodo Verificar_Paso_Tiempo()). Estimador Es una clase abstracta que define de manera generalizada el clculo de valores estimados ( X _ estimado ) de las variables o de los resultados de las ecuaciones. Dichos estimadores podrn ser ingresados por los usuarios (implementacin del mtodo Estimar()), posibilitando adems el uso funciones estimadoras preprogramadas (i.e. estimadores semiimplcitos, frmulas de interpolacin multipaso, etc.). Dado que es comn que en las funciones estimadoras aparezca la variable paso de tiempo, se agreg DT como propiedad de la clase. EstimadorDXDT Es subclase de Estimador y en la misma se define la funcin estimadora de la derivada:
k r x & (t ) = i n i x t i =0

(13)

EstimadorX Es subclase de Estimador y en la misma r se define las funciones estimadoras implcitas, explcitas y semi-implcitas de las variables x . Constructor Sistema Implcito Es subclase de Estimador y define r el mtodo G() para representar las ecuaciones algebraicas asociadas a las funciones F , utilizando para tal fin las funciones estimadoras de r r &. xyx Resolvedor de Races Clase abstracta que define genricamente los mtodos numricos que resuelven sistemas DAE del tipo (12). Todas las clases que hereden de Resolvedor de Races debern implementar el mtodo Calcular_Races(), el cual tiene como parmetros de entrada una r funcin algebraica G () y los valores de variables xguess , devolviendo como resultado los valores de las races xraces . Resolvedor Sistema Implcito Esta clase permite armar la secuencia necesaria para pasar del sistema definido por el usuario a la resolucin de un sistema algebraico implcito. Dicho transformacin la realiza a

2461

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

travs del mtodo Calcular() el cual recibe como parmetro una instancia de la clase Sistema DAE.

Figura 3: Diagrama de clases para esquemas implcitos.

4.2.2 Clases para la resolucin de esquemas explcitos La mayora de las clases diseadas para la resolucin de sistemas explcitos son similares a las detalladas para la resolucin de sistemas implcitos. La principal diferencia radica en que no se utilizan estimadores para las derivadas. Se mencionarn slo aquellas clases que poseen diferencias significativas con respecto al diseo de clases anterior. Sistema Explcito Clase que especifica genricamente a los sistemas de ecuaciones con derivadas explcitas del tipo (10). Las ecuaciones algebraicas y las funciones de las derivadas se declaran sobre el r mtodo Calcular_DXDT(), al cual se le pasa por parmetro las estimaciones de x y r & evaluadas en dichas estimaciones. devuelve como resultado el valor de x Constructor Sistema Explcito Es subclase de Estimador y define r el mtodo H() para representar las ecuaciones &. algebraicas asociadas a las funciones de x Resolvedor Integrador Clase abstracta que define genricamente los mtodos numricos que resuelven sistemas de ecuaciones de derivadas explcitas del tipo (10). Todas las subclases de Resolvedor Integrador debern implementar el mtodo Calcular_Integracin(), el cual tendr como

2462

Gustavo A. Boroni, Alejandro Clausse

parmetros de entrada una funcin algebraica H() y los valores de variables xguess , retornando como resultado los valores de x . Resolvedor Sistema Explcito Esta clase permite armar la secuencia necesaria para pasar del sistema definido por el usuario a la resolucin de un sistema algebraico explcito. Dicho proceso lo realiza a travs del mtodo Calcular() el cual recibe como parmetro una instancia de la clase Sistema Explcito.

Figura 4: Diagrama de clases para esquemas explcitos.

ESTUDIOS NUMRICOS

Con el propsito de estudiar la performance del mtodo BDF extendido para resolucin de sistemas DAE y de las ventajas comparativas de su implementacin en el paradigma O-O, se realizaron una serie de experimentos. Desde el punto de vista numrico, el objetivo fue comparar errores y velocidades de clculo respecto de mtodos explcitos clsicos. Desde el punto de vista de la programacin, se estudiaron algunas mtricas de extensibilidad y modificabilidad del software resultante con cada esquema de clculo. Para el estudio se eligieron tres casos de prueba: un sistema de ecuaciones diferenciales no lineales con solucin analtica conocida, un sistema oscilatorio conservativo no lineal, y un sistema de control de fcil extensibilidad y modificabilidad. Caso 1: Solucin analtica conocida Se consider primeramente el siguiente sistema de ecuaciones diferenciales ordinarias de segundo grado:

2463

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

& = 2 y ( x y2 ) y x & = x y2 y
Con las condiciones iniciales x(0) = 1, y (0) = 0 . La solucin exacta es:

(14)

x = sin 2 (t ) + cos(t ) y = sin(t )

(15)

Lo cual sirve de patrn para comparar la performance numrica de distintos esquemas de resolucin. Se implement el mtodo BDF con un estimador implcito en las variables de estado y un estimador multipaso lineal clsico en las derivadas, es decir:

r r x = x (t ) r r k i x (t it ) & = x t i =0

(16)

Donde k es el orden del estimador multipaso, t es el paso de tiempo, y i son coeficientes apropiados del mtodo multipaso [5]. Las soluciones obtenidas con el mtodo BDF fueron comparadas con las obtenidas con un esquema clsico de Runge-Kutta de cuatro orden y con el paquete de rutinas FORTRAN LSODE [6]. En la Figura 5 se compara la dependencia del error cuadrtico acumulado promediado entre t = 0 y t = 20 :

1 tmax

x
t =0

tmax

r
real

r 2 (t ) xcalc (t )

(17)

Con el paso de tiempo, para los distintos esquemas. Se puede observar que a partir del orden k = 2 , el esquema BDF obtiene menores errores que los dos esquemas patrones. La performance de clculo se estudi calculando el cociente entre el tiempo de clculo y el tiempo real. En la Figura 6 se compara este indicador para los distintos esquemas, observndose que cualquiera de los mtodos BDF estudiados requieren por lo menos un orden de magnitud mayor de tiempo de clculo que los esquemas explcitos. Esto es esperable ya que los esquemas implcitos cargan con una iteracin interna en cada paso de tiempo para resolver las races del sistema algebraico asociado. Esta penalidad debe tenerse en cuenta en el balance general de flexibilidad y performance.

2464

Gustavo A. Boroni, Alejandro Clausse

Figura 5: Error cuadrtico.

Figura 6: Eficiencia de clculo.

Caso 2: Sistema no lineal conservativo El segundo caso de estudio es el pndulo elstico Figura 7. Este es un sistema de ecuaciones diferenciales no lineales de cuarto orden, cuyas variables de estado natural son la longitud del brazo elstico, el ngulo de inclinacin respecto a la vertical, y sus respectivas derivadas temporales; esto es:

& z =r & w = k (r L) + g cos( ) m & + 2 zw = g sen( ) rw & rw2 = z


(18)

Dado que en este caso no existe solucin analtica, se compararon las soluciones obtenidas con los esquemas numricos utilizados en el caso 1. En la Figura 8 se muestra la evolucin de la posicin de la masa para los siguientes parmetros y las siguientes condiciones iniciales: &(0) = 0, k = 7, L = 1, m = 0.1, g = 9.8 . &(0) = 0, r (0) = 1, (0) = / 2, r En la Figura 9 se muestra la diferencia cuadrtica de la solucin obtenida con BDF con multipaso de tercer orden con las obtenidas con Runge-Kutta de cuarto order y con el paquete LSODE. Puede verse que hay una pequea deriva creciente pero los valores son muy bajos. En la Figura 10 se muestra el cociente de los tiempos de clculo y el tiempo simulado. Puede observarse nuevamente que al igual que en el caso 1, los mtodos BDF tienen un costo computacional de un orden de magnitud mayor que los mtodos explcitos.

2465

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

Figura 7: Pndulo elstico.

Figura 8: Posicin de la masa.

Figura 9: Error cuadrtico.

Figura 10: Eficiencia de clculo.

Caso 3: Control de nivel de un sistema de tanques. Finalmente se estudi un sistema de control de nivel de tanques en serie, como muestra la Figura 1. Este caso es apropiado para analizar las ventajas de implementacin del esquema BDF en un proceso de modelado, en el que se parte de un modelo base simple (control proporcional en este caso) y se va elevando la complejidad progresivamente en un proceso circular de prueba y error. Para este estudio se implementaron dos esquemas siguiendo el paradigma de O-O, uno utilizando el mtodo BDF y otro utilizando un esquema explcito Runge-Kutta. Usando como herramientas las dos implementaciones, se fueron aplicando distintas modificaciones al modelo, evaluando en cada caso el grado de flexibilidad del software. La importancia de cada modificacin fue caracterizada por los siguientes parmetros: Cantidad de ecuaciones del modelo afectadas a una modificacin (r1). Cantidad de ecuaciones a agregar al modelo luego de aplicar los pasos algebraicos necesarios (r2).

2466

Gustavo A. Boroni, Alejandro Clausse

La adaptabilidad del software ante cada modificacin del modelo se caracteriz con los siguientes indicadores: Cantidad de lneas de cdigo agregadas (r3). Pasos algebraicos intermedios necesarios para implementar la modificacin al modelo (r4). Como modelo base se tom un sistema de dos tanques y dos bombas con un control proporcional clsico. La dinmica de este sistema puede describirse con dos ecuaciones diferenciales para los volmenes de agua y dos ecuaciones algebraicas para los caudales:

&1 = q1 q2 v &2 = q2 q1 v

q1 = p1 ( vref v1 ) q2 = p2 ( vref v2 )

(19)

Donde se ha adoptado un control proporcional de los volmenes, buscando mantener un nivel de referencia fijo vref . Este modelo base se extendi a sistemas de 3 y 4 tanques, y a cada extensin se impusieron las siguientes modificaciones: a) Agregar trminos de control derivativo. b) Introducir una dependencia de los coeficientes en funcin de las variables de estado. c) Transformacin de ecuaciones algebraicas en ecuaciones diferenciales. Las condiciones iniciales y los valores de los parmetros fijos en cada caso particular se detallan en la Tabla 1. En cada caso se calcularon los indicadores ri , los cuales se detallan en la Tabla 2. Puede observarse que en general la implementacin BDF reduce significativamente el nmero de lneas de cdigo y la cantidad de pasos algebraicos intermedios. Sin embargo, como se encontr en los casos anteriores, esta ventaja tiene un costo de clculo, lo cual hace necesario ponderar la importancia de ambos esquemas (i.e. modificabilidad-extensibilidad vs tiempo de ejecucin). El punto de equilibrio de este balance est determinado por el tamao del problema a resolver. Si la cantidad de ecuaciones del modelo es grande la modificabilidad y extensibilidad son el factor preponderante, mientras que en modelos de pocas ecuaciones no es significativa la ganancia en tiempo de desarrollo de software frente a la prdida de velocidad de clculo. Se proponen dos mtricas para modelar la competencia entre estos dos elementos de calidad, mtrica de software, S, y mtrica de performance de clculo, C, las cuales se definen a continuacin: S =Cantidad de lneas de cdigo + Cantidad de pasos algebraicos C = Tiempo simulado / Tiempo de clculo

2467

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

Modificaciones a) Agregar trminos de control derivativo b) Coeficientes en funcin de las variables de estado

&i qi = pi (vref vi ) i v &i = qi qout v &i qi = pi (vref vi ) i v

Ecuaciones por tanque

vref = 10, p1 = 0.2, p2 = 0.1, 1 = 0.5

Condiciones iniciales

2 = 0.5, v1 (0) = 10.01, v2 (0) = 10


vref = 10, k1 = 50, k2 = 100 c1 = 20, c2 = 20, v1 = 10.01 v2 = 10

&i = qi qout v pi (v1 ,.., vn ) = ki (v1 + .. + vn )

i (v1 ,.., vn ) = ci (v1 + .. + vn )


c) Transformacin de ecuaciones algebraicas en ecuaciones diferenciales

&i + K i qi qi = p A,i Ii q &i ) + pB ,i p A,i = f (vi ) g (v f (vi ) = pi (vref vi ) &i ) = i v &i g (v &i ) pB ,i = pB (v &i = qi qout v
Tabla 1

vref = 10, p1 = 0.2, p2 = 0.1

1 = 0.5, 2 = 0.5, K1 = 1
K 2 = 1, I1 = 2, I 2 = 2 pB = 0.05, v1 = 10.01, v2 = 10

En la Tabla 2 se muestran los resultados de las mtricas S y C para los distintos casos del sistema de tanques. La Figura 11 muestra la dependencia de los indicadores con el nmero de ecuaciones involucradas en el modelo, lo cual se toma como una medida del tamao del problema. Se puede ver que el esquema BDF tiene menor C que el esquema Runge-Kutta, mientras que lo opuesto ocurre con S. El esquema ptimo depender de la importancia relativa que se le da a las mtricas C y S. Este tipo de balance suele resolverse tradicionalmente con una funcin utilidad, que establece un nivel de subjetivo de utilidad percibido por los usuarios dado un par de valores C y S. Para el presente anlisis se propone usar una funcin utilidad del mismo tipo que las utilizadas en microeconoma, esto es:

U = exp( S C )

(20)

Donde representa la importancia relativa de la performance de clculo frente a la flexibilidad del software. Para cada valor de el esquema que tenga mayor utilidad ser la mejor alternativa. En la Figura 12 se muestra el mapa de decisin ptima calculado para el sistema de tanques, en el plano formado por y el tamao del sistema. Puede verse que valores de mayores que 10 convendr implementar esquemas explcitos en modelos limitados a pocas ecuaciones, mientras que para modelos con un nmero de ecuaciones mayor que cierto lmite lo ms conveniente ser la implementacin de esquemas implcitos. Puede

2468

Gustavo A. Boroni, Alejandro Clausse

observarse que el valor crtico que separa ambas alternativas es menor cuanto menor es el valor de . Es decir, cuanta ms importancia se le da a la flexibilidad y modificabilidad del software, menor ser el tamao mnimo de los modelos que convendr implementar con esquemas implcitos que son ms naturales para la programacin O-O. Para valores de menores que 10 siempre convendr una implementacin O-O con esquemas implcitos. #Tanques Modificaciones 1 a) b) c) a) b) c) a) b) c) a) b) c) r1 2 4 6 4 8 12 6 12 18 8 16 24 r2 0 2 3 0 4 6 0 6 9 0 8 12 BDFG r3 r4 2 0 4 0 6 0 4 0 8 0 12 0 6 0 12 0 18 0 8 0 16 0 24 0 RK4 r4 3 3 4 6 6 8 9 9 12 12 12 16

S 2 4 6 4 8 12 6 12 18 8 16 24

C 0.196 0.198 0.21 0.198 0.212 0.213 0.196 0.208 0.21 0.212 0.211 0.214

r1 2 4 6 4 8 12 6 12 18 8 16 24

r2 0 2 3 0 4 6 0 6 9 0 8 12

r3 2 4 6 4 8 12 6 12 18 8 16 24

S 5 7 10 10 14 20 15 21 30 20 28 40

C 0.005 0.006 0.007 0.006 0.007 0.007 0.006 0.008 0.008 0.007 0.008 0.010

Tabla 2.

Figura 11: Relaciones entre S y C.

Figura 12: Mapa de decisin.

Al igual que en economa, el valor de en cada caso puede estimarse por medio del impacto relativo de cada factor (C y S) en la utilidad. En este contexto, es el nmero de unidades de S equivalentes a una unidad de C, respecto de la utilidad del sistema para desarrollar modelos.

2469

MECOM 2005 VIII Congreso Argentino de Mecnica Computacional

CONCLUSIONES

Se estudi la aplicacin de diseos O-O como una forma de mejorar el desarrollo de programas para problemas de simulacin continua. El anlisis y diseo ha considerado las dificultades que afectan a los usuarios modelistas y los desarrolladores de bibliotecas, tanto en los aspectos numricos como de software. Se dise una estructura de clases que provee una solucin rpida para la implementacin de problemas de simulacin continua, poniendo nfasis en su representacin natural a travs de sistemas DAE, los cuales en su mayora emplean ecuaciones diferenciales de balances. Aunque el documento ha enfocado ms a la solucin de problemas de modelado que a la eficiencia pura, sabemos que esta ltima puede llegar a ser importante cuando el tamao del problema aumenta. Referente a esto, vimos que un cierto grado de prdida de eficiencia es necesario para alcanzar la flexibilidad necesaria. Sin embargo, los resultados obtenidos hasta ahora demuestran que uno puede negociar fcilmente flexibilidad y la generalidad de un diseo orientado al modelado por la eficacia de clculo. Los conceptos de herencia y encapsulacin desempean un papel importante, haciendo que el programa sea mucho ms legible y modular que en una programacin procedural, promoviendo definitivamente la modificacin, extensin, mantenimiento, y reutilizacin del cdigo. 7 REFERENCIAS

[1] Brenan K., Campbell S., and Petzold L. 1996. Numerical Solution of Initial Value Problems in Differential-Algebraic Equations. SIAM, Philadelphia, PA. [2] Kees C. and Miller C. 1999. C11 Implementations of Numerical Methods for Solving Differential-Algebraic Equations: Design and Optimization Considerations. ACM Transactions on Mathematical Software, 25, 377403. [3] Gear C. 1971. The Simultaneous Numerical Solution of Differential-Algebraic Equations. IEEE Trans. Circuit Theory CT-18, 8995. [4] Meyer B. Object-Oriented Software Construction. Prentice Hall, 2000. [5] Jackson R. and Sacks-Davis R. 1980. An Alternative Implementation of Variable StepSize Multistep Formulas for Stiff ODEs. ACM Transactions on Mathematical Software, 6, 295318. [6] LSODE, the Livermore Solver for Ordinary Differential Equations, California. [7] Langtangen H. and Munthe O. 2001. Solving Systems of Partial Differential Equations Using Object-Oriented Programming Techniques with Coupled Heat and Fluid Flow as Example. ACM Transactions on Mathematical Software 27, 126. [8] Machiels L. and Deville M. 1997. Fortran 90: An Entry to Object-Oriented Programming for the Solution of Partial Differential Equations. ACM Transactions on Mathematical Software, 23, 3249. [9] Jinn-Liang L., Ing-Jer L., Miin-Zhih S., Ren-Chuen C, Mao-Chung H. 1996. Objectoriented programming of adaptive finite element and finite volume methods. Applied Numerical Mathematics 21, 439-467.

2470

S-ar putea să vă placă și