Documente Academic
Documente Profesional
Documente Cultură
net/publication/257684517
CITATIONS READS
9 426
4 authors:
Some of the authors of this publication are also working on these related projects:
OPEN-GAIN : Optimal Engineering Design for Dependable Water and Power Generation in Remote Areas Using Renewable Energies and Intelligent Automation View
project
All content following this page was uploaded by C. De Prada on 27 September 2014.
Resumen: En este artículo se muestra una metodología para el desarrollo de librerías de modelos
matemáticos dinámicos para la industria azucarera. Los requisitos de esta librería, vendrán
determinados tanto por los resultados que pretendan obtenerse mediante la utilización de la misma,
como de la formalización del comportamiento del sistema que se desee llevar a cabo. En el caso que se
trata en este artículo, se hace necesaria la utilización de librerías de modelos de componentes no-
causales, descritos en base a ecuaciones y eventos, cuya interfaz de usuario sea la interfaz física del
objeto que representan y con capacidades de agregación y herencia, que permitan la máxima
reutilización de los componentes desarrollados. Por todo ello el paradigma de modelado más adecuado
para el desarrollo de las librerías será el Modelado Orientado a Objetos Basado en Ecuaciones.
Utilizando una herramienta que utiliza este paradigma se han desarrollado una serie de librerías de
modelos, que contienen los elementos necesarios para la construcción del modelo conjunto de una
industria azucarera. En este artículo se muestran los detalles constructivos más interesantes de algunas
de las librerías de proceso azucarero, así como algunos de los problemas que se han abordado durante
su desarrollo. Mediante la aplicación de los mecanismos de agregación que posee la herramienta de
modelado es posible la construcción del modelo de fábricas azucareras completas en base a la conexión
de las distintas unidades de proceso que la componen. Se muestran también en este artículo algunas de
las aplicaciones de los modelos desarrollados, como los simuladores de entrenamiento o la utilización
de los modelos como fuente de datos en herramientas de optimización en línea de procesos.
Tanto los enumerados como los subconjuntos pueden ser ELSEIF(setofCmp(Mix, hidrocarb)) THEN
h = 0.44/0.24*T
utilizados como parámetros de construcción de componentes y RETURN h Funciones que calculan la entalpía en función del tipo
de enumerado, la temperatura y las concentraciones.
ELSEIF(setofCmp(Mix,destila)) THEN
puertos, COMPONENT Reactor (SET_OF(chemicals) mix)), y h = entalp_destila(Mix,T,C)
RETURN h
para dimensionar arrays (REAL r[mix]). Cuando se utilizan los ELSEIF(setofCmp(Mix, Acido_Base)) THEN
h = entalp_w(T)
SET_OF como parámetros de construcción de componentes o RETURN h
ELSE
puertos, el enumerado puede ser de tipo general, mix en el END IF
PRINT (mensaje)
Además de lo descrito, se definen también una serie de Figura 2. Función general para la evaluación de una propiedad
constantes específicas de los distintos compuestos, como fisoquímica, en la que se realizan llamadas a las funciones
constantes para el cálculo del calor específico, masas específicas en función del enumerado específico.
moleculares, etc. (Tabla 2.)
caso de una bifurcación las dos ramas de salida tendrán los
mismos valores de concentración que la rama de la que
Esto proporciona una gran generalidad a los componentes en los
proceden, pero no así en las ramas de entrada.
que se utilizan productos químicos, permitiendo su reutilización
directa en diferentes contextos, con independencia de los
PORT liquido (SET_OF(Chemical)Mix)
compuestos que aparezcan en el mismo.
SUM REAL W RANGE 0,Inf "Flujo másico (Kg/s)"
SUM IN REAL Wi[Mix] RANGE 0,Inf "Flujo másico de cada
3.2.2 La librería de puertos: ejemplo componente (Kg/s)"
EQUAL OUT REAL C[Mix] RANGE 0,1 "Concentraciones (%1 en
peso)"
Los puertos conectan componentes, tanto desde el punto de vista REAL x[Mix] RANGE 0.,1. "Fracc molar"
de los valores que cada componente necesita comunicar con su EQUAL REAL P
REAL T
RANGE 0,Inf "Presión (bar)"
RANGE -273.,Inf "Temperatura (ºC)"
entorno, como de sus restricciones y ecuaciones aplicables a las EQUAL OUT REAL H
"Entalpía específica (KJ/Kg)"
conexiones. Los puertos son por tanto uno de los elementos que SUM IN REAL f_energ "Flujo de
definen la interfaz del componente. Estos puertos van a permitir entalpía (KJ/s)"
REAL Rho RANGE 0,Inf "Densidad (Kg/m^3)"
tanto conexiones simples como múltiples. Las variables que REAL F RANGE 0,Inf "Flujo volumétrico"
aparecen en los puertos serán las únicas, junto con los datos y las CONTINUOUS
condiciones de contorno, que serán visibles desde el exterior de 1 = SUM (j IN Mix; C[j])
los componentes.
EXPAND(j IN Mix EXCEPT setofElem(Mix,1)) Wi[j] = C[j] * W
W=F*Rho
COMPONENT Tubo INVERSE (F) F=zona(W,Rho,0.)
PORTS -- relación entre concentración en peso (C) y en fracción molar
IN fluido Entrada (x)
OUT fluido Salida EXPAND (j IN Mix)
x[j] = (C[j]/Mmolec[j])/SUM(i IN Mix; (C[i]/Mmolec[i]))
DECLS END PORT
………
Figura 3. Instanciación a los puertos desde un componente Figura 4. Código EL de un puerto de líquido.
Cada puerto de un componte debe tener asociado un modo IN o Flujo másico de cada componente (Wi[Mix]): Aunque esta
OUT. Los modos sirven para varias cosas: variable pueda en principio parecer redundante, es necesaria para
o Criterio de referencia para el signo de las variables de poder relacionar las concentraciones con los flujos másicos
flujo. Si una variable de flujo de un puerto IN es totales. Si no existiera esta relación, el programa dispondría de
positiva implica que el flujo es entrante, de la misma información para calcular las concentraciones en el caso de una
manera un valor positivo en un puerto OUT implica bifurcación de ramas, pero no sería capaz de calcularlas en el
que el flujo es saliente. caso de una unión de corrientes. Esta variable es SUM al igual
o Criterio para aplicar ecuaciones de conexión. que los flujos másicos, se utilizará sin embargo el modo
o Comprobación de posibles violaciones de las restringido SUM IN dado que de otra manera se crearían
restricciones de conexión explicadas en la definición ecuaciones redundantes en el caso de una bifurcación.
del puerto. Entalpía específica (H): Representa la entalpía específica (por
unidad de masa) asociada al flujo de fluido. Esta variable tiene
En la Figura 4 se muestra un ejemplo de uno de los puertos que como modificadores los modos EQUAL OUT, ya que en una
ha sido desarrollado para la industria azucarera, el puerto de bifurcación las entalpías específicas, por las ramas de salida, son
líquido. iguales entre sí e iguales a las entalpías específicas de la rama de
A este puerto le llega como argumento la composición del la que proceden. Para el cálculo de la entalpía se utiliza la
fluido. A partir del número y el tipo de componentes se calculan ecuación:
las propiedades y las variables necesarias en el puerto.
H = entalp_liquido(Mix,T,C)
Las variables que aparecen en el puerto son las siguientes: INVERSE(T) T = T_liquido(Mix,H,C)
Flujo másico (W): Esta variable representa el caudal de fluido Figura 5. Llamada a la entalpía de un compuesto desde un
expresado en unidades de flujo másico (MT-1). Estas variables puerto.
están modificadas mediante el modo SUM, lo que significa que
en las conexiones, los flujos de masa siempre se van a sumar. Esta función recibe como argumentos la temperatura, las
Esta es una manera de escribir la ley de conservación de la masa. concentraciones y el nombre de un componente o grupo de
componentes. Con estos valores llama a una función general en
Concentraciones (C[Mix]): Representa las concentraciones de la que se compara el nombre del componente o del grupo de
las especies que componen el fluido. Los modificadores de esta componentes con los nombres de los que la función dispone
variable son de tipo EQUAL OUT. El modificador OUT nos (Figura 6). Si entre los componentes de la función está el
indica que el modo EQUAL sólo tiene efecto cuando las demandado, la función llama a otra función de entalpía, esta vez
concentraciones encuentran un puerto de salida, es decir, en el específica del componente o mezcla de componentes, a la que se
e pasa como parámetros la temperatura y las concentraciones y componente (Wi) es igual al flujo másico total (W).
que devuelve el valor deseado de la entalpía. En esta función se
utiliza también la sentencia INVERSE para el caso en el que la Mix
Suma de concentraciones: la suma de las concentraciones de Siendo W el caudal, ΔP la variación de presión y f una función
todos los componentes (Cj) de la mezcla es igual a la unidad. en general no lineal.
Mix
1= ∑Cj (3)
Los problemas pueden aparecer a la hora de despejar las
j =1
incógnitas de esta ecuación. Así, en el caso sencillo de un solo
Flujos másicos: la suma de los flujos másicos de cada
elemento de flujo en una línea, si se conoce por ejemplo la matriz de incidencia del sistema aparece un uno en la parte
presión de entrada y el caudal, y se necesita calcular la presión superior derecha, se tendrá así un lazo algebraico.
de salida y esta variable no puede ser despejada de la ecuación
(6). El programa de cálculo dejará la ecuación como implícita e W1 W2 P1
iterará sobre ese valor hasta cerrar la ecuación. Se tendrá un lazo W1 = f1 (P2 − P1 ) 1 0 1 (10)
algebraico.
W2 = f 2 (P2 − P1 ) 0 1 1
Como se explicó con anterioridad, los lazos algebraicos pueden WT = W1 + W2 1 1 0
ser resueltos por EcosimPro, pero en el caso de estudio no es
interesante que aparezcan, ya que la iteración que se genera para Para evitar la aparición de este lazo, se transforma una de las
la búsqueda de soluciones hace que la simulación se vuelva algo variables desconocidas en variable de estado, de forma que pasa
más lenta y puede en ocasiones generar problemas de a ser calculada por integración numérica. Si se opera de esta
convergencia. forma con W1 (Ecuación 11), la nueva variable desconocida será
Al igual que se hizo para el caso de las propiedades ahora la derivada de W1
fisicoquímicas, se utilizará la sentencia INVERSE, de forma que
= f (P2 − P1 )
dW1 (11)
se evaluarán distintas funciones según sea el caudal o alguna de α⋅
dt
las presiones la variable desconocida, evitando la aparición de
Siendo α una constante de tiempo que debe ser lo
lazos algebraicos.
suficientemente pequeña como para que la dinámica de esta
ecuación sea rápida y su resultado no difiera en el tiempo del que
Conexiones entre elementos de flujo se obtiene con la ecuación algebraica, pero no tan pequeña como
Además de los problemas que pueden aparecer durante la para forzar un paso de integración muy pequeño que ralentice la
simulación de los elementos de flujo de forma aislada, existen simulación.
complicaciones adicionales cuando se unen varios elementos de Permutando filas y columnas es posible obtener una matriz de
transporte. Estos problemas surgen también de forma natural incidencia triangular inferior, es decir, se ha deshecho el lazo
cuando se pretenden calcular de forma “manual” algunas algebraico: Es pues necesario que cada componente de una línea
conexiones entre este tipo de elementos. de flujo tenga modelos alternativos que puedan ser seleccionados
Un ejemplo de este tipo de problemas se presenta, en el caso de por el usuario de la librería.
la conexión de tuberías en paralelo (Figura 7), en el que se W2 P1 W1
conoce el caudal total que circula por las dos tuberías (WT) y la WT = W1 + W2 1 0 0 (12)
presión a la entrada de la línea (P2).
W2 = f 2 (P2 − P1 ) 1 1 0
W1 W1' = f1 (P2 − P1 ) 0 1 1
(desconocida)
Tubería 1
Como ejemplo de componente que aplica todas estas
características se muestra el código de una tubería.
P2 P1
(conocida) (desconocida) COMPONENT Tubo_liq IS_A Bernouilli (BOOLEAN impl)
DATA
W2 REAL D "diámetro interior del tubo(m)"
REAL L "longitud de la tubería(m)"
(desconocida) REAL e = 0.046e-3 "rugosidad de la tubería. valor por defecto:acero (m)"
DECLS
Tubería 2 REAL S "sección transversal tubería (m2)"
REAL f "coeficiente de fricción"
CONTINUOUS
W2 = f 2 (P2 − P1 ) (8)
WT = W1 + W2 (9) Figura 8. Código EcosimPro de una tubería de líquido.
Puede observarse como la tubería utiliza un parámetro de tipo
En la primera ecuación aparecen como incógnitas la presión de BOOLEAN que decide el uso de una sentencia u otra utilizando
salida (P1) y el caudal que circula por la primera línea (W1). En la sentencia EXPAND. De esta forma puede decidirse en tiempo
la segunda ecuación aparecen como incógnitas la presión de de instanciación si se utiliza la ecuación algebraica o la ecuación
salida (P1) y el caudal que circula por la segunda línea (W2) que diferencial para resolver el problema y evitar los problemas
está relacionado con el de la primera línea mediante la tercera descritos con anterioridad. Además en el caso de la ecuación
ecuación. algebraica tiene definida su inversa. Obsérvese además que se ha
En este caso no es posible manipular las ecuaciones de forma hecho uso del mecanismo de la herencia para heredar la interfaz
que a cada incógnita le corresponda una sola ecuación, en la de conexión y la declaración de variables del componente
abstracto llamado Bernuilli.
La incorporación de una ecuación diferencial al modelo, evita en modelo se resolvería, en el caso de no utilizar ecuaciones
algunos casos la aparición de lazos algebraicos, pero puede diferenciales, mediante la iteración del caudal, hasta
originar otro tipo de inconvenientes como problemas de índice conseguir ajustar las caídas de presión en las tuberías, es
superior en la conexión de componentes. Estos aparecen cuando, decir, aparece un lazo algebraico. Este lazo puede evitarse
por ejemplo, se conectan dos tuberías en serie (el caudal que poniendo uno de los parámetros a TRUE y el otro a
circula por las dos es el mismo) (Figura 9). FALSE, de forma que el caudal se calcula en una de las
W
líneas. Al igual que en el caso anterior si se utiliza impl =
FALSE para las dos líneas, se genera un problema de
Tubería 1 Tubería 2
P2 P0 P1 índice.