Você está na página 1de 165

Proyecto Integrador Scortechini

UNIVERSIDAD NACIONAL DE CRDOBA


Facultad de Ciencias Exactas, Fsicas y Naturales
Departamento de Qumica Industrial y Aplicada
Escuela de Ingeniera Qumica

DESARROLLO DE UN SIMULADOR DE PROCESOS QUMICOS

Proyecto Integrador de la Facultad de Ciencias Exactas, Fsicas y Naturales


de la Universidad Nacional de Crdoba conforme
a los requisitos para obtener el ttulo de Ingeniero Qumico

por

JULIN ANDRS SCORTECHINI

Crdoba
2015

Proyecto Integrador Scortechini

El proyecto Integrador DESARROLLO DE UN SIMULADOR DE PROCESOS


QUMICOS desarrollado por el alumno Julin Andrs Scortechini ha sido dirigido por
la Prof. MCs. Ing. Susana Martnez Riachi.
Directora del Proyecto Integrador
Nombre y Lugar de Trabajo
.
firma

UNIVERSIDAD NACIONAL DE CRDOBA


Facultad de Ciencias Exactas, Fsicas y
Naturales

El presente proyecto integrador de la carrera de Ingeniera Qumica ha sido


aprobado el ././... , mereciendo la calificacin de ......()

Tribunal Evaluador
Nombre

Nombre

Nombre

Proyecto Integrador Scortechini

Proyecto Integrador Scortechini

i
DEDICATORIA

Dedico este trabajo a mis padres quienes con esfuerzo, sacrificio y mucho amor me
han guiado durante toda mi vida.

Proyecto Integrador Scortechini

ii
AGRADECIMIENTOS

El autor de este proyecto desea agradecer al Seor Rogelio Andrs Scortechini y a


la Seora Nelda Estela Soria por su constante aliento y paciencia durante la
confeccin de este trabajo.
Se agradece muy atentamente a la Seora Olga Scortechini, al Seor Andrs
Bonetto, a la Seora Florencia Foresi de Bonetto, a la Seorita Violeta Bonetto
Foresi, al Seor Laureano Bonetto, a la Seora Mara Jos Luna de Bonetto y al
joven Augusto Bonetto Luna por su constante aliento y por haber colaborado con el
autor de este proyecto proporcionando materiales para su ejecucin.
Tambin se desea agradecer al Seor Ariel Arguello, al Seor Mauro Domingo, a la
Seorita Florencia Buraschi y a la Seorita Vanesa Mascietti quienes han contribuido
a la ejecucin de este proyecto de manera inestimable en calidad de amigos,
compaeros y colaboradores.
El autor de esta obra valora personalmente al Ingeniero Martn E. Gaitn, a todo el
personal de la empresa PHASETY, a los Ingenieros Susana Martnez Riachi y Daniel
L. Yorio, al Seor Maximiliano Duarte, como as tambin a toda la Escuela de
Ingeniera Qumica quienes han contribuido al desarrollo de este proyecto
proporcionando apoyo, conocimientos, materiales e instalaciones.

Proyecto Integrador Scortechini

iii
NDICE GENERAL

Captulo 1: Introduccin a la simulacin de procesos ................................................. 1


Introduccin ............................................................................................................. 1
Historia ..................................................................................................................... 1
Hoy........................................................................................................................... 3
Clasificacin de los mtodos de simulacin ............................................................. 5
Simulacin cualitativa y cuantitativa ..................................................................... 6
Simulacin estacionaria y dinmica. ..................................................................... 6
Clasificacin de simuladores .................................................................................... 7
Simuladores Globales u orientados a ecuaciones ................................................ 8
Simuladores Secuenciales-Modulares ................................................................ 10
Simuladores Hbridos.......................................................................................... 13
Caractersticas de los Simuladores Comerciales ................................................... 15
Nuestro Simulador ................................................................................................. 18
Bibliografa ............................................................................................................. 19
Captulo 2: Objetivos ................................................................................................. 20
Objetivos Generales............................................................................................... 20
Objetivos Especficos ............................................................................................. 20
Captulo 3: Programacin .......................................................................................... 21
Introduccin ........................................................................................................... 21
Programacin orientada a objetos ......................................................................... 22
Definicin de objeto ............................................................................................ 22
Definicin de Mensaje......................................................................................... 24
Definicin de Clase ............................................................................................. 26
Herencia ............................................................................................................. 26
Seleccin del lenguaje de programacin ............................................................... 28

Proyecto Integrador Scortechini

iv
El lenguaje Python ................................................................................................. 30
Bibliografa ............................................................................................................. 32
Captulo 4: Termodinmica ....................................................................................... 33
Introduccin ........................................................................................................... 33
Propiedades termodinmicas generales ................................................................ 34
Sistemas ideales .................................................................................................... 37
Mezclas de gases ideales ................................................................................... 37
La solucin ideal ................................................................................................. 38
Sistemas no ideales ............................................................................................... 39
Propiedades Residuales de las Sustancias puras .............................................. 40
Propiedades Residuales de las Mezclas ............................................................ 45
Propiedades en Exceso de las Mezclas lquidas ................................................ 51
Biblioteca de Funciones Termodinmicas.............................................................. 57
Bibliografa ............................................................................................................. 59
Captulo 5: Objetos Desarrollados............................................................................. 60
Introduccin ........................................................................................................... 60
La clase Pantalla .................................................................................................... 60
La clase BaseDeDatos........................................................................................... 62
La clase Proyecto................................................................................................... 63
La clase SistemaTermodinamico ........................................................................... 65
Los primeros pasos ................................................................................................ 72
Corriente ................................................................................................................ 85
Nodo Divisor .......................................................................................................... 94
Mezclador ............................................................................................................ 101
Flash .................................................................................................................... 109
Intercambiador de Calor....................................................................................... 115
Mens Auxiliares .................................................................................................. 121
El men Herramientas ...................................................................................... 121
Proyecto Integrador Scortechini

v
El Men Ver ...................................................................................................... 124
El Men Ayuda ................................................................................................. 125
Bibliografa ........................................................................................................... 127
Captulo 6: Problemas y dificultades ....................................................................... 128
Introduccin ......................................................................................................... 128
Resolucin de ecuaciones ................................................................................... 128
Niveles de iteracin .............................................................................................. 130
Clculo de temperaturas y balances de energa .................................................. 131
Eliminacin de equipos ........................................................................................ 131
Reconstruccin del diagrama de flujo .................................................................. 132
Conexin de los equipos ...................................................................................... 132
Captulo 7: Conclusiones ........................................................................................ 133
Anexo A: Clculos Termodinmicos ........................................................................ 135
Sistemas Ideales .................................................................................................. 135
Mezclas de gases ideales ................................................................................. 135
La solucin ideal ............................................................................................... 136
Sistemas no ideales ............................................................................................. 138
Propiedades residuales .................................................................................... 138
Coeficiente de Actividad ................................................................................... 140
Anexo B: Clculos de Corriente .............................................................................. 142
Anexo C: Clculos de Nodo Divisor ........................................................................ 146
Anexo D: Clculos de Mezclador ............................................................................ 148

Proyecto Integrador Scortechini

vi
NDICE DE ABREVIATURAS

A
a, b, q, I
Ai, Bi, Ci
AIChe
atm
B
beta,
CAS
Cp

d
DFI
DTML, TML

E (Suprandice)

ej.
ENIAC
EOS
etc.
F
f

Operador de derivacin parcial


Parmetro de la Ecuacin Actividad
Parmetros de las ecuaciones cbicas de estado
Constantes de la ecuacin de Antoine
American Institute of Chemical Engineers
Atmsfera
Segundo coeficiente Virial
Fraccin de vapor
Computer Algebra System
Capacidad calorfica molar
Variacin
Operador de derivacin total
Diagrama de Flujo de Informacin
Diferencia de Temperatura Media Logartmica
tolerancia del error
Exceso
Constantes de las ecuaciones cbicas de estado
elemplo
Electronic Numerical Integrator And Computer
Ecuaciones de Estado
etctera
Caudal de corriente
fugacidad
coeficiente de fugacidad de una especie pura
Cociente entre los coeficientes de fugacidad en fase gaseosa y

en fase lquida
FORTRAN
Formula Translator
G
Energa libre de Gibbs

Coeficiente de actividad
gi (Suprandice) gas ideal
GL
Grados de Libertad
GPSS
General Purpose Simulation System
H
Entalpa molar
i, j, k
(subndices)
Especie qumica
IBM
International Business Machines Corp.
id (Suprandice) ideal, relativo a una solucin ideal
K
relacin de equilibrio, y/x

Coeficiente binario de la ecuacin de Wilson

Energa de interaccin binaria en la ecuacin de Wilson


ln
logaritmo natural
M
Propiedad genrica

Potencial qumico
Mac OS
Macintosh Operating System
Proyecto Integrador Scortechini

vii
MATLAB
MS
n
N
ni
NRTL
NumPy
P
p
Pc
PDF
PM
Pr
PR
Pydoc
Pyxls
Q
R
R (Suprandice)
RAND
RK
S

sat
SciPy
SIMSCRIPT
Sobrebarra
SRK
SymPy
T
Tc
Tr
U
U
V
Vc

W
WSC
x
y
z
Z
Zc

MATrix LABoratory
MicroSoft
Nmero de moles
Nmero total de especies qumicas
Nmero de moles de la especie "i"
Non-Random Two-Liquid
Numerical Python
Presin
presin parcial
Presin crtica
formato de documento porttil
Peso molecular
Presin crtica
Ecuacin de Peng-Robinson
Python Document
Python Excel
Flujo de calor
Constante de los gases ideales
Residual
Research ANd Development
Ecuacin de Redlich-Kwong
Entropa molar
Operador de Sumatoria
saturacin de un lquido o vapor
Scientific Python
Simulation Script
Propiedad molar parcial
Ecuacin de Soave-Redlich-Kwong
Symbolic Python
Temperatura
Temperatura crtica
Temperatura reducida
Energa interna molar
Coeficiente global de transferencia de calor
Volumen molar
Volumen crtico
Factor acntrico en clculos termodinmicos. Fraccin en masa.
Flujo de trabajo
Winter Simulation Conference
Fraccin molar en fase lquida
Fraccin molar en fase gaseosa
Fraccin molar global
Factor de compresibilidad
Factor de compresibilidad en el punto crtico
Fugacidad de una especie en solucin
Coeficiente de fugacidad de una especie en solucin
Proyecto Integrador Scortechini

viii
NDICE DE FIGURAS
Figura 1. Representacin grfica de un objeto

22

Figura 2. Modelo de un flash

23

Figura 3. Comunicacin entre objetos a travs de mensajes

24

Figura 4. Mezclador como ejemplo de clase

26

Figura 5. Clase Equipo como superclase de otras

28

Figura 6. Pantalla del simulador

60

Figura 7. Procedimiento para calcular la temperatura de burbuja

67

Figura 8. Procedimiento para calcular la temperatura de roco

68

Figura 9. Pantalla de Configuracin de HYSYS

73

Figura 10. Otra pantalla de Configuracin de HYSYS

73

Figura 11. Pantalla de configuracin de UNISIM

74

Figura 12. Pantalla de seleccin de compuestos de UNISIM

74

Figura 13. Men de configuracin general del simulador

75

Figura 14. Dilogo de configuracin general

76

Figura 15. Mensaje de error durante la configuracin de Cp lquidos

77

Figura 16. Dilogo de configuracin para Cp lquidos

78

Figura 17. Parmetros de los modelos de actividad

78

Figura 18. Men Archivo del simulador

79

Figura 19. Dilogo para nombrar el proyecto

80

Figura 20. Dilogo de apertura de proyectos

80

Figura 21. Men Insertar del simulador

82

Figura 22. Dilogo para nombrar un nuevo equipo

82

Figura 23. Men emergente y sus distintas opciones

84

Figura 24. Ejemplo de un pequeo diagrama de flujo

84

Figura 25. Representacin de una corriente

85

Figura 26. Dilogo de configuracin de corriente

90

Figura 27. Generacin de incgnitas, ecuaciones y grados de libertad

92

Figura 28. Resolucin de ecuaciones de corriente

93

Figura 29. Representacin grfica de un nodo divisor

94

Figura 30. Dilogo de configuracin de un nodo divisor

97

Figura 31. Seleccin de corrientes del nodo divisor

98

Figura 32. Carga de datos en dilogo de nodo divisor

99

Figura 33. Actualizacin de un nodo divisor


Proyecto Integrador Scortechini

100

ix
Figura 34. Resolucin completa de un nodo divisor

101

Figura 35. Representacin grfica de un mezclador

101

Figura 36. Dilogo de configuracin de un mezclador

105

Figura 37. Seleccin de corrientes del mezclador

106

Figura 38. Carga de datos en dilogo de mezclador

107

Figura 39. Actualizacin y resolucin de un mezclador

108

Figura 40. Representacin grfica de un flash

109

Figura 41. Dilogo de configuracin de flash

112

Figura 42. Actualizacin y resolucin de flash

114

Figura 43. Representacin de un flash en UNISIM

114

Figura 44. Resultados de clculo flash con UNISIM

115

Figura 45. Representacin grfica de un intercambiador de calor.

115

Figura 46. Configuracin de un intercambiador de calor.

119

Figura 47. Actualizacin de un intercambiador de calor.

120

Figura 48. Resolucin completa de un intercambiador de calor.

121

Figura 49. Men Herramientas.

122

Figura 50. Dilogo de Consulta a Biblioteca.

123

Figura 51. Dilogo para agregar nuevo compuesto.

124

Figura 52. Dilogo para editar compuesto.

124

Figura 53. Opciones del men Ver.

125

Figura 54. El men Ayuda.

126

Figura 55. Dilogo Acerca de los Autores.

126

Figura 56. Configuracin general para el Ejemplo 6.

142

Figura 57. Dilogo de configuracin de corriente del Ejemplo 6.

143

Figura 58. Completando los datos de la corriente.

143

Figura 59. Corriente del Ejemplo 6 resuelta.

144

Figura 60. Propiedades de la corriente del Ejemplo 7.

145

Figura 61. Dilogo de configuracin de nodo divisor para el Ejemplo 8.

146

Figura 62. Carga de datos para el Ejemplo 8.

147

Figura 63. Nodo divisor y corrientes del Ejemplo 8 resueltos.

147

Figura 64. Dilogo de configuracin de mezclador para el Ejemplo 9.

148

Figura 65. Resultados del Ejemplo 9.

149

Proyecto Integrador Scortechini

x
NDICE DE TABLAS
Tabla 1. Principales caractersticas de los simuladores Globales u
orientados a ecuaciones
Tabla 2. Principales Caractersticas de los Simuladores
Modulares Secuenciales.
Tabla 3. Factores ponderados para seleccionar el lenguaje de
programacin

10

29

Tabla 4. Parmetros de las ecuaciones cbicas de estado

43

Tabla 5. Anlisis de Corriente

85

Tabla 6. Anlisis de Nodo Divisor

95

Tabla 7. Anlisis de Mezclador

102

Tabla 8. Anlisis de Flash

109

Tabla 9: Anlisis de Intercambiador de Calor

116

Tabla 10. Comparacin de propiedades residuales entre ecuaciones de


estado

Proyecto Integrador Scortechini

139

xi
RESUMEN

Palabras clave: Simulador, Ingeniera, Qumica, Hbrido, Balances, Educativo,


Python, Objetos.
En el presente proyecto se desarroll un simulador de procesos qumicos con fines
educativos. Se opt por el diseo de un programa hbrido que combine los mejores
aspectos de los simuladores modulares secuenciales y de aquellos orientados a
ecuaciones. Se utiliz el lenguaje de programacin Python para codificar el proyecto
por sus excelentes recursos de programacin orientada a objetos, clculos
vectoriales, numricos y simblicos aplicables a la Ingeniera. El programa obtenido
es capaz de realizar balances de materia y de energa, as como clculos
termodinmicos avanzados, con gran precisin. Posee una amplia variedad de
modelos termodinmicos disponibles como ecuacin del gas ideal, ecuacin Virial,
ecuaciones cbicas de estado, solucin ideal, ecuaciones de Margules, Van Laar y
Wilson. Tambin se construy una interface grfica de usuario moderna, que permita
una comunicacin eficiente y amigable con el usuario. La misma permite una
configuracin del sistema de unidades, seleccionar compuestos entre una lista de
ms de 450 especies qumicas orgnicas e inorgnicas y trabajar con caudales
molares o msicos. El software permite adems representar el diagrama de flujo del
proceso a simular, identificando a cada equipo o accesorio de proceso con un cono
caracterstico. La comunicacin con el usuario se realiza mediante dilogos que
hacen el proceso de configuracin cmodo y natural. Cada equipo se caracteriza
mediante un objeto informtico constituido por atributos que simbolizan las
propiedades del equipo y mtodos que implementan su comportamiento e
interacciones. El proceso de modelado de cada operacin se basa en la
identificacin de las propiedades desconocidas, la abstraccin de las mismas con
smbolos algebraicos, el planteo de ecuaciones y la contabilizacin del nmero de
grados de libertad. Entre las ecuaciones se encuentran algunas generales como las
del balance de masa, de energa o de equilibrio de fases, las de restriccin como la
suma de fracciones molares igual a uno y otras especficas como aquellas propias
de un modelo termodinmico o una operacin en particular. Para la resolucin de
esas ecuaciones se utilizaron herramientas de clculo propias del lenguaje Python y
en casos excepcionales se programaron mtodos numricos especficos para un tipo
particular de problema.
Proyecto Integrador Scortechini

Captulo 1: Introduccin a la simulacin de procesos


Introduccin

El objetivo de todo simulador consiste en reproducir la realidad de la mejor manera


posible. Si existiera un simulador capaz de representar las condiciones de la
realidad, el usuario no podra distinguir los sucesos simulados de los reales. Sin
embargo en la prctica sta resulta tan compleja que ningn programa de
computadora puede reproducirla totalmente, se habla entonces del grado de
aproximacin con que dicho programa refleja el comportamiento real de los sistemas
simulados. La experiencia demuestra que a medida que se incrementa la capacidad
de simulacin tambin aumenta la complejidad del software.
Las herramientas informticas implementan una serie de modelos matemticos y
algoritmos de decisin, basados en la lgica, para simular procesos industriales.

Historia
La historia de la simulacin nace en 1777 con el planteo del problema La aguja de
Buffon, un mtodo matemtico sencillo para ir aproximando el valor del nmero Pi a
partir de sucesivos intentos.
En 1812 Laplace mejor y corrigi la solucin de Buffon y desde entonces se conoce
como solucin Buffon-Laplace.
Posteriormente, el estadstico William Sealy Gosset, que trabajaba en la destilera de
Arthur Guinness, ya aplicaba sus conocimientos estadsticos all, como tambin en
su propia explotacin agrcola. El especial inters de Gosset en el cultivo de la
cebada le llev a especular que el diseo de experimentos debera dirigirse no slo
a mejorar la produccin media, sino tambin a desarrollar variedades de cebada
cuya mayor robustez permitiese que la produccin no se viese afectada por las
variaciones en el suelo y el clima. Para evitar futuras filtraciones de informacin
confidencial, Guinness prohibi a sus empleados la publicacin de cualquier tipo de
artculo independientemente de su contenido, de ah el uso que hizo Gosset en sus
publicaciones del seudnimo "Student", para evitar que su empleador lo detectara.
Proyecto Integrador Scortechini

2
Es por esta razn que su logro ms famoso se conoce como la "distribucin t de
Student", que de otra manera hubiera sido conocida como la "distribucin t de
Gosset. Este hito histrico abri las puertas a la aplicacin de la simulacin en el
campo del proceso de control industrial as como a las sinergias que generaba esta
simulacin basada en la experimentacin y tcnicas de anlisis para descubrir
soluciones exactas a problemas clsicos de la industria y la ingeniera.
A mediados de la dcada de 1940 dos hechos sentaron las bases para la rpida
evolucin del campo de la simulacin:

La construccin de las primeras computadoras de propsito general como el


ENIAC.

El trabajo de Stanislaw Ulam, John Von Neumann y otros cientficos para usar
el mtodo de Montecarlo en computadoras modernas y solucionar problemas
de difusin de neutrones en el diseo y desarrollo de la bomba de hidrgeno.
Ulam y Von Neumann ya estuvieron presentes en el proyecto Manhattan.

En 1960, Keith Douglas Tocher desarroll un programa de simulacin general cuya


principal tarea era la de simular el funcionamiento de una planta de produccin
donde las mquinas alternaban por los estados: Ocupado, Esperando, No disponible
y Fallo; de manera que las simulaciones en los cambios de estado de las mquinas
marcaran el estado definitivo de la produccin de la planta. Este trabajo produjo
adems el primer libro sobre simulacin: The Art of Simulation (1963).
Para aquel entonces, IBM desarroll entre 1960 y 1961 el Sistema de Simulacin de
Propsito General o General Purpose Simulation System (GPSS). El GPSS se
dise para realizar simulaciones de teleprocesos involucrando por ejemplo: control
de trfico urbano, gestin de llamadas telefnicas, reservas de pasajes de avin, etc.
La sencillez de uso de este sistema lo populariz como el lenguaje de simulacin
ms usado de la poca.
Por otro lado, en 1963 se desarroll SIMSCRIPT, otra tecnologa alternativa al GPSS
basada en FORTRAN, ms enfocada a usuarios que no tenan por qu ser
obligatoriamente expertos informticos en RAND CORPORATION.
Complementariamente a los desarrollos llevados a cabo por RAND e IBM, el Royal
Norwegian Computing Center inici en 1961 el desarrollo del programa SIMULA con
ayuda de Univac. El resultado fue SIMULA I.
Proyecto Integrador Scortechini

3
En 1967 se fund el WSC (Winter Simulation Conference), lugar donde desde
entonces y hasta ahora se archivan los lenguajes de simulacin y aplicaciones
derivadas, siendo en la actualidad el referente en lo que a avances en el campo de
los sistemas de simulacin se refiere.
Durante este periodo se desarrollaron avanzadas herramientas de modelado y de
anlisis de resultados. Gracias tambin a los desarrollos obtenidos en la generacin
de datos y a las tcnicas de optimizacin y representacin de datos, la simulacin
llega a su fase de expansin donde comienza a aplicarse en mltiples campos.
Anteriormente, los datos de salida obtenidos de una simulacin por computadora se
presentaban en una tabla o matriz, de manera que se mostraba el efecto que los
mltiples cambios en los parmetros tenan sobre los datos. El empleo del formato
de matriz se deba al uso tradicional que se haca de la matriz en los modelos
matemticos. Sin embargo, los psiclogos advirtieron que los seres humanos
perciban mejor los cambios en el desarrollo de las situaciones si miraban grficos o
incluso imgenes en movimiento o animaciones generadas a partir de dichos datos,
como las que se ejecutan en las animaciones de imgenes creadas por
computadora.
En 1981 Aparecen los softwares para la simulacin de procesos qumicos en PC.
Pronto aparecen programas tales como: DESIGN II, ASPEN, SIMSCI (PRO II),
HYSIM, CHEMCAD. etc. (LANDER, 2014).

Hoy

En la actualidad la simulacin de procesos se encuentra en un estado de desarrollo


avanzado, aun expandindose pero a menor velocidad que en las dcadas pasadas.
Los simuladores disponibles en la actualidad se caracterizan por una alta calidad
para representar los procesos simulados, cuentan con interfaces grficas de usuario
modernas y amigables. Tambin ha aumentado su potencia de clculo y de
procesamiento de la informacin de la mano con la evolucin de la tecnologa
disponible en las computadoras de hoy en da y con la mejora en los modelos
matemticos usados para representar fenmenos fisicoqumicos.

Proyecto Integrador Scortechini

4
Actualmente la simulacin de procesos se ve como un procedimiento sistemtico
compuesto por las siguientes etapas:
Formulacin del problema: En este paso debe quedar perfectamente establecido
el objeto de la simulacin. Se deben definir lo ms detalladamente posible los
siguientes factores: los resultados que se esperan del simulador, el plan de
experimentacin, el tiempo disponible, las variables de inters, el tipo de
perturbaciones a estudiar, el tratamiento estadstico de los resultados, la complejidad
de la interfaz del simulador, etc. Se debe establecer si el simulador ser operado por
el usuario o si el usuario slo recibir los resultados. Finalmente, se debe establecer
si el usuario necesita una simulacin o una optimizacin.
Definicin del sistema: El sistema a simular debe estar perfectamente definido. Es
necesario establecer la frontera del sistema a estudiar y las interacciones con el
medioambiente que sern consideradas.
Formulacin del modelo: Esta etapa es un arte. La misma comienza con el
desarrollo de un modelo simple que captura los aspectos relevantes del sistema real.
Los aspectos relevantes del sistema real dependen de la formulacin del problema;
para un ingeniero de seguridad los aspectos relevantes de una planta son diferentes
de los aspectos considerados por un ingeniero qumico o electromecnico para el
mismo sistema. Este modelo simple se ir enriqueciendo como resultado de varias
iteraciones.
Coleccin de datos: La naturaleza y cantidad de datos necesarios estn
determinadas por la formulacin del problema y del modelo. Los datos pueden ser
provistos por bases de datos, experimentos de laboratorios o mediciones realizadas
en un equipo real. Los mismos debern ser procesados adecuadamente para darles
el formato exigido por el modelo.
Implementacin del modelo en la computadora: El modelo es implementado
utilizando algn lenguaje de programacin. Existen lenguajes especficos de
simulacin que facilitan esta tarea; tambin, existen programas que ya cuentan con
modelos implementados para casos especiales.
Verificacin: En esta etapa se comprueba que no se hayan cometidos errores
durante la implementacin del modelo. Para ello, se utilizan las herramientas de
depuracin provistas por el entorno de programacin.
Proyecto Integrador Scortechini

5
Validacin: En esta etapa se comprueba la exactitud del modelo desarrollado. Esto
se lleva a cabo comparando las predicciones del modelo con: mediciones realizadas
en el sistema real, datos bibliogrficos o de sistemas similares. Como resultado de
esta etapa puede surgir la necesidad de modificar el modelo o recolectar datos
adicionales.
Diseo de experimentos: En esta etapa se decide las caractersticas de los
experimentos a realizar: el tiempo de arranque, el tiempo de simulacin y el nmero
de simulaciones.
Experimentacin: En esta etapa se realizan las simulaciones de acuerdo al diseo
previo. Los resultados obtenidos son debidamente recolectados y procesados.
Interpretacin: Se analiza la sensibilidad del modelo con respecto a los parmetros
que tienen asociados la mayor incertidumbre. Si es necesario, se debern recolectar
datos adicionales para refinar la estimacin de los parmetros crticos.
Implementacin: Conviene acompaar al usuario en la etapa de implementacin
para evitar el mal manejo del simulador o el mal empleo de los resultados del mismo.
Documentacin: Incluye la elaboracin de la documentacin tcnica y manuales de
uso. La documentacin tcnica debe contar con una descripcin detallada del
modelo y de los datos; tambin, se debe incluir la evolucin histrica de las distintas
etapas del desarrollo. Esta documentacin ser de utilidad para el posterior
perfeccionamiento del simulador (Tarifa, 2015).

Clasificacin de los mtodos de simulacin

Las herramientas de simulacin pueden clasificarse segn diversos criterios, por


ejemplo, segn el tipo de procesos (batch o continuo), si involucra el tiempo
(estacionario o dinmico -incluye a los equipos batch-), si maneja variables
estocsticas o determinsticas, variables cuantitativas o cualitativas, etc.
A continuacin se expondrn brevemente las caractersticas de los distintos tipos de
herramientas de simulacin generalmente utilizadas.

Proyecto Integrador Scortechini

6
Simulacin cualitativa y cuantitativa

La simulacin cualitativa tiene por objeto principalmente el estudio de las relaciones


causales y las tendencias temporales cualitativas de un sistema, como as tambin
la propagacin de perturbaciones a travs de un proceso dado. Llamamos valores
cualitativos de una variable, a diferencia del valor numrico (cuantitativo), a su signo;
ya sea absoluto, o bien con relacin a un valor dado o de referencia. Por lo tanto, en
general se trabaja con valores tales como (+, -, 0). Son varios los campos de
aplicacin de la simulacin cualitativa, por ejemplo el anlisis de tendencias,
supervisin y diagnstico de fallas, anlisis e interpretacin de alarmas, control
estadstico de procesos, etc.
La simulacin cuantitativa, en cambio, es aquella que describe numricamente el
comportamiento de un proceso, a travs de un modelo matemtico del mismo. Para
ello se procede a la resolucin de los balances de materia, energa y cantidad de
movimiento, junto a las ecuaciones de restriccin que imponen aspectos funcionales
y operacionales del sistema. La simulacin cuantitativa abarca principalmente la
simulacin en estado estacionario y la simulacin en estado dinmico.

Simulacin estacionaria y dinmica.

La simulacin en estado estacionario implica resolver los balances de un sistema


que no involucra la variable temporal, por lo que el sistema de ecuaciones deber
estudiar o reflejar en el modelo las variaciones de las variables de inters con las
coordenadas espaciales (modelos a parmetros distribuidos); entonces deber
utilizarse un sistema de ecuaciones diferenciales a derivadas parciales (segn el
nmero de coordenadas espaciales consideradas). Un ejemplo puede ser la
variacin radial de la composicin en un plato en una columna de destilacin, la
variacin de las propiedades con la longitud y el radio en un reactor tubular, etc.
Por otra parte, y como su nombre lo indica, la simulacin dinmica plantea los
balances dependientes del tiempo, ya sea para representar el comportamiento de
equipos batch, o bien para analizar la evolucin que se manifiesta en el transitorio
entre dos estados estacionarios para un equipo o una planta completa. En este
caso, el modelo matemtico estar constituido por un sistema de ecuaciones
Proyecto Integrador Scortechini

7
diferenciales ordinarias cuya variable diferencial es el tiempo. En caso contrario, se
deber resolver un sistema de ecuaciones diferenciales a derivadas parciales,
abarcando tanto las coordenadas espaciales como la temporal.
Desde el punto de vista de los fenmenos o sistemas que se estudian, la simulacin
puede tambin clasificarse en determinstica o estocstica. Como modelo
determinstico consideramos aqul en el cual las ecuaciones dependen de
parmetros y variables conocidos con certeza, es decir que no existe incertidumbre
ni leyes de probabilidades asociadas a las mismas. En cambio en un modelo
estocstico, como su nombre lo indica, ciertas variables estarn sujetas a
incertidumbre, que podr ser expresada por funciones de distribucin de
probabilidad. En este caso, por lo tanto, tambin los resultados del modelo estarn
asociados a una ley de probabilidad. En esta obra estudiaremos nicamente los
modelos determinsticos, dejando de lado los procesos estocsticos y la simulacin
de los mismos.
Por ltimo, tambin cabe mencionar la simulacin de eventos discretos, en la cual
existen variables de inters que no tienen un comportamiento continuo. Existen
numerosos procesos que slo pueden simularse desde este punto de vista. Por
ejemplo, la simulacin o diseo de plantas batch multiproducto o multipropsito, o
ambas simultneamente, poseen caractersticas que imponen un modelo discreto
para contemplar ciertos eventos de inters. Desde este punto de vista se deben
utilizar modelos especiales para tratar funciones semicontinuas y en presencia de
eventos discretos (Scenna, 1999).

Clasificacin de simuladores

Los simuladores de procesos pueden dividirse en los siguientes tipos segn el


enfoque bajo el cual se plantea el modelo matemtico que representa el proceso a
simular:

simuladores globales u orientados a ecuaciones

simuladores secuenciales modulares

simuladores hbridos o modular secuencial-simultneo

Proyecto Integrador Scortechini

8
Simuladores Globales u orientados a ecuaciones

Bajo el enfoque de la simulacin global u orientada a ecuaciones, se plantea el


modelo matemtico que representa al proceso construyendo un gran sistema de
ecuaciones algebraicas que representa a todo el conjunto o planta a simular. De
esta forma el problema se traduce en resolver un gran sistema de ecuaciones
algebraicas, por lo general altamente no lineales. Como ejemplo puede citarse en
problemas tpicos de simulacin de columnas de destilacin por mtodos rigurosos
el sistema de ecuaciones puede llegar a contener ms de mil variables. De ello se
desprende la magnitud del sistema que represente el modelo de una planta
completa tpica (Himmelblau, 1997).
En la dcada del 70, cuando se generan los primeros simuladores, no existan los
medios apropiados (principalmente hardware) para la resolucin numrica de
sistemas de ecuaciones de gran dimensin. Es por ello que los primeros simuladores
comerciales adoptaron principalmente la arquitectura modular, en detrimento de la
global (Scenna, 1999).
El principal problema asociado a la filosofa de resolucin global u orientada a
ecuaciones es la convergencia del sistema y la consistencia de las soluciones que
se encuentran. En efecto, los sistemas altamente no lineales como los que
corresponden a modelos de plantas qumicas pueden, por ejemplo, producir
mltiples soluciones. Adems, la solucin numrica para grandes sistemas exige
estimaciones iniciales apropiadas, es decir prximas a un entorno de la solucin, de
lo contrario pueden presentarse serios inconvenientes.
Histricamente, estas dificultades han sido la causa que ha limitado el desarrollo de
este tipo de simuladores en forma masiva. Una de las crticas fundamentales para la
operacin de los mismos que se realizaba a menudo por parte de usuarios no
entrenados, era la imposibilidad de identificar los sectores de la planta en
correspondencia con el sistema de ecuaciones que lo representa, dado que una vez
que se hubo armado el sistema total, ste est integrado y se pierde la
correspondencia biunvoca entre el equipo y el subsistema de ecuaciones que lo
representa. De esta manera, si existieran inconvenientes durante la simulacin,
resulta difcil asignar el problema a un sector especfico de la planta, o bien inicializar

Proyecto Integrador Scortechini

9
convenientemente (Sifuentes, 2000). Las principales caractersticas (virtudes y
defectos histricamente remarcados) se resumen en la Tabla 1.1.

Tabla 1. Principales caractersticas de los simuladores Globales u


orientados a ecuaciones
Cada equipo se representa por las ecuaciones que lo modelan. El modelo es la
integracin de todos los subsistemas.
Desaparece la distincin entre variables de proceso y parmetros operativos, por
lo tanto se simplifican los problemas de diseo.
Resolucin simultnea del sistema de ecuaciones algebraicas (no lineales)
resultante.
Mayor velocidad de convergencia.
Necesita una mejor inicializacin (mejor cuanto mayor sea el problema a
resolver).
A mayor complejidad, menor confiabilidad en los resultados y ms problemas de
convergencia (soluciones sin sentido fsico).
Ms difcil de usar por "no especialistas".

Una ventaja importante es que puede logarse una velocidad de convergencia


cuadrtica, esto es, mayor que en los simuladores secuenciales, como se ver ms
adelante. Adems, dado que el sistema se plantea orientado a ecuaciones, es
posible incorporar fcilmente las expresiones de restriccin para definir problemas
de optimizacin en forma directa, ya que solo basta con plantear las restricciones y
la funcin de optimizacin. Esta flexibilidad es imposible en los simuladores
secuenciales modulares, debido a que los mdulos estn orientados y definidos en
forma rgida, esto es, resulta imposible agregar restricciones y/o variables, adems
de la expresin analtica de la funcin de optimizacin, debindose proceder tipo
caja negra (Sifuentes, 2000).

Proyecto Integrador Scortechini

10
Simuladores Secuenciales-Modulares

Los simuladores modulares secuenciales se basan en mdulos de simulacin


independientes que siguen aproximadamente la misma filosofa que las operaciones
unitarias, es decir, cada equipo: bomba, vlvula, intercambiadores de calor, etc.; es
simulado a travs de modelos especficos para el mismo y adems, el sentido de la
informacin coincide con el flujo fsico en la planta. En esta filosofa se tiene como
ventaja el hecho que cada sistema de ecuaciones es resuelto con una metodologa
que resulta adecuada para el mismo, ya que es posible analizar bajo todas las
circunstancias posibles, el comportamiento del mtodo de resolucin propuesto, esto
es sistemas ideales, no ideales, topologa diversa del equipo, distintas variantes, etc.
Dado que se puede analizar especficamente la performance de los distintos
mtodos de resolucin es factible lograr un modelo robusto y eficiente para cada
mdulo especfico. (Himmelblau, 1997)
Tabla 2. Principales Caractersticas de los Simuladores
Secuenciales.

Modulares

Biblioteca de mdulos (uno para cada equipo)


Flow sheet: Equivale a un grafo orientado o dgrafo
Orden de resolucin fijo (iteraciones)
Tres niveles de iteracin (se incorpora otro si se desea optimizar)
1.
2.
3.
4.

Clculos fisicoqumicos.
Mdulos en s (ej. flash, columna, etc.).
Variables de iteracin (reciclos).
Optimizacin

Modelos individuales resueltos eficientemente.


Fcilmente comprendido por ingenieros "no especialistas en simulacin".
Mtodos de convergencia robustos.
La informacin ingresada por el usuario (relacionable con equipos o corrientes)
resulta fcilmente chequeable e interpretable.
Los problemas de diseo (seleccin de parmetros) son ms difciles de resolver.
Se incrementa la dificultad cuando se plantea un problema de optimizacin
(funcionan como cajas negras).
Poco verstiles, pero muy flexibles, muy confiables y bastante robustos.

Proyecto Integrador Scortechini

11
Conceptualmente, bajo esta filosofa, para cada mdulo de simulacin (equipo)
deber plantearse su modelo matemtico. Obviamente, para encarar la solucin de
cualquier sistema de ecuaciones deben diferenciarse los valores conocidos y los que
deben calcularse, todo esto teniendo en cuenta los grados de libertad; es decir, la
compatibilidad entre el nmero de ecuaciones y de incgnitas, a fin de obtener un
sistema con solucin nica. El enfoque en la teora secuencial modular por definicin
supone que se conocen (especifican) las variables de las corrientes de entrada, o
sea las alimentaciones a los equipos, mientras que deben calcularse las corrientes
de salida y los correspondientes parmetros de operacin si correspondiera. Esto
segn comentamos, impone cierta rigidez que sacrifica, segn sea el caso, la
posibilidad de encontrar asignaciones tales que minimicen el tiempo de cmputo. Sin
embargo esto resulta conveniente desde otro punto de vista, ya que de esta manera
se impone una direccin al flujo de informacin entre mdulos. Por otra parte, las
combinaciones

posibles

de

especificacin

de

variables

son

enormes,

incrementndose en forma dramtica la cantidad de mdulos a disponer si se


quisiera cubrir todas las posibilidades.
En general, fijada la orientacin en el clculo (esto es dadas las entradas calcular las
salidas del equipo), lograr que el sistema de ecuaciones sea compatible y tenga
tantas incgnitas como ecuaciones no implica necesariamente una nica opcin, ya
que debemos analizar las variables o parmetros de operacin del equipo. En
efecto, en la mayora de los casos existirn varias combinaciones de valores
posibles, es decir, existirn varias posibilidades de asignacin de parmetros de
equipos. Adems, existen variantes para cada mdulo que tienen en cuenta varios
factores, como ser topologa, -por ejemplo el nmero de entradas y salidas a una
torre de destilacin, o si hay condensadores parciales o totales-, o bien el nivel de
las hiptesis realizadas (si se considera hidrulica de platos o no, prdidas de calor
al ambiente, etc.). (Scenna, 1999)
Resumiendo, en un simulador modular se define cada mdulo por un sistema de
ecuaciones independiente que se resuelve de la manera ptima, subordinados sin
embargo a las limitaciones que ha impuesto la especificacin de variables
seleccionada. Esto implica una ventaja en el sentido que se podran utilizar
progresivamente distintos niveles de clculo dependiendo de la etapa del proyecto
en la que se realiza la simulacin, o bien en funcin de los datos disponibles hasta el
momento, aprovechando el conocimiento que proviene de la experiencia y anlisis
Proyecto Integrador Scortechini

12
del mtodo de convergencia para cada caso en particular. No obstante, uno de los
problemas que se originan es la conexin de los mdulos segn el proceso a simular
y las rigideces que ello impone. La representacin del diagrama de flujo (flow sheet)
del proceso se traduce a un diagrama similar, llamado diagrama de flujo de
informacin (DFI). Este diagrama matemticamente es un dgrafo, en el cual los
nodos son los mdulos de equipos conectados uno a uno a travs de las corrientes
que los vinculan, las cuales se representan como arcos dirigidos. Estas corrientes de
informacin por lo general coinciden con las corrientes fsicas de la planta, pero no
necesariamente en todos los casos. Lo mismo sucede con los equipos (nodos del
dgrafo). En algunas oportunidades, ser necesario representar un equipo real de la
planta mediante la conexin de varios mdulos disponibles en la biblioteca de
mdulos del simulador.
En sntesis, dado que en la filosofa modular, por definicin los mdulos resultan
orientados, al construirse el diagrama de flujos del sistema, si ste contiene reciclos
ser necesario disponer de un procedimiento de clculo iterativo para resolver los
balances del proceso completo. Desde el punto de vista del anlisis numrico, se
puede afirmar que bajo el procedimiento de la filosofa modular secuencial se
introducen tres niveles caractersticos de iteracin, a diferencia de los simuladores
orientados a ecuaciones donde existe slo uno. Se debe iterar al nivel de clculos
fisicoqumicos, de mdulos de equipos, y por ltimo, a nivel del DFI o diagrama de
flujo de la planta completa. Ms an, para problemas en los cuales se defina la
optimizacin de alguna performance del proceso expresada segn una funcin
objetivo y las variables de optimizacin correspondientes, se introduce un nuevo
nivel de iteracin, por sobre el nivel correspondiente al DFI. (Sifuentes, 2000)
La estrategia de contemplar los grados de libertad posibles en la orientacin de los
mdulos para mejorar la performance y flexibilidad del simulador basado en una
ptica modular secuencial es utilizada por algunos simuladores comerciales para
disminuir el tiempo de cmputo al reducir el nmero de corrientes iteradoras.

Proyecto Integrador Scortechini

13
Simuladores Hbridos

Es posible plantear el desarrollo de simuladores combinando la estrategia modular y


la orientada a ecuaciones de forma tal de aprovechar los aspectos positivos de
ambas metodologas lo mximo posible. Para ello se selecciona un grupo de
variables sobre las cuales se proceder segn la filosofa global, esto es, se las
resolver simultneamente, mientras que para el resto se mantiene la filosofa
modular, es decir, se trata de encontrar una secuencia acclica, que provea por su
clculo, en cada iteracin, los valores de las variables a resolverse simultneamente.
Es por ello que a esta filosofa tambin se la conoce como two-tear o de dos
niveles jerrquicos, ya que se trabaja en uno con las variables tratadas
simultneamente, y en el otro secuencialmente. Otro nombre con el que se conoce
este enfoque es modular secuencial-simultneo. (Scenna, 1999)
Con el advenimiento de nuevos paradigmas de programacin (que, a diferencia de
los lenguajes estructurados, hacen posible la manipulacin de informacin simblica,
recursividad, programacin orientada a objetos, etc.); se logra fcilmente generar
algoritmos que cumplan respecto del armado de un sistema de ecuaciones global; la
misma tarea lgica que debe realizarse en un simulador secuencial para administrar
los mdulos parciales que representan la planta completa. En otras palabras, es
posible, tomando como dato el diagrama de flujo del proceso, diagramar una
interfaz inteligente o lgica, que arme el sistema de ecuaciones correspondientes
a los equipos seleccionados y de alguna forma considerar las interconexiones entre
los mismos, a travs de la identificacin de las corrientes de entrada - salida como
variables de conexin; elaborando de esta manera, a partir de los subsistemas, la
gran matriz que representa el sistema global de ecuaciones de toda la planta.
Consecuentemente, este sistema lgico (generacin del sistema de ecuaciones que
representa la planta completa), sera la interfaz hacia el usuario; presentara a ste
los equipos en un formalismo o lenguaje natural (como un simulador modular),
mientras que hacia el simulador los traducira en un nico sistema de ecuaciones a
ser resuelto. En este caso existira una especie de banco o biblioteca de mdulos
conteniendo subsistemas de ecuaciones de balance genricas, y no mdulos de
equipos (Henning, G., Leone, H., Stephanopoulos, Geo., 1990) (Himmelblau, 1997).
Adems, la inicializacin podra resolverse con la misma estrategia. Las
estimaciones correspondientes pueden ser volcadas en forma conveniente a la
Proyecto Integrador Scortechini

14
inicializacin del sistema global, a travs de la interfaz inteligente, que presentara al
usuario equipos o variables con su interpretacin fsica, pero hacia el simulador
los traducira al lenguaje matemtico, esto es, las variables correspondientes en el
sistema global de ecuaciones asociado a la planta completa.
En definitiva, la performance del sistema en cuanto a comunicacin

amigable,

transparencia y flexibilidad hacia el usuario, sera indistinguible respecto de uno


modular. La diferencia radicara en la estructura asociada al problema matemtico y
en la estrategia de resolucin del sistema de ecuaciones de gran dimensin, que
como sabemos tiene una velocidad de convergencia cuadrtica contra una menor
del sistema modular. Debe balancearse entonces velocidad de convergencia vs
robustez al resolver sistemas de ecuaciones de elevada dimensin, para optar entre
una filosofa u otra. A medida que evolucionan los algoritmos y el software
correspondiente para la solucin de grandes sistemas de ecuaciones, mayor es la
facilidad con que puede implementarse esta nueva filosofa en el diseo de
simuladores de uso general. Ms an, existe en nuestros das una diversidad de
productos comerciales que parcialmente llevan a la prctica los principios aqu
discutidos. En efecto, uno de los condicionantes es la relativa necesidad de utilizar
un criterio orientado a ecuaciones al enfrentar la simulacin dinmica de plantas
completas. Dado que los nuevos simuladores tienden a dotar al usuario de la
facilidad de simular la planta tanto en estado estacionario como dinmico, es
conveniente para el desarrollo de estos simuladores, migrar a la filosofa global
(Sifuentes, 2000).
Se espera que en el futuro los modelos estn basados progresivamente en la
filosofa global u orientada a ecuaciones debido al progreso del software y hardware.
Esto permitir adems mayor flexibilidad en el planteo de problemas muy diversos,
como la simulacin estacionaria y dinmica, optimizacin, etc. Esto por otra parte,
obligar al usuario a conocer cada vez ms los detalles, tanto matemticos como
estructurales, as como tambin, la implementacin de modelos especficos, ya que
en una filosofa orientada a ecuaciones, solo implica agregar un paquete de
ecuaciones adicionales a las contenidas en la biblioteca de mdulos-ecuaciones
del simulador (Scenna, 1999).

Proyecto Integrador Scortechini

15

Caractersticas de los Simuladores Comerciales

Entre los programas de simulacin que se encuentran disponibles en el mercado


actualmente se puede mencionar a: HYSIM, CHEMCAD, UNISIM.
A continuacin se expondrn algunas de las principales ventajas y desventajas de
estos productos.
Ventajas

Metodologa de clculo en estado estacionario: los clculos en el diagrama de


flujo son realizados automticamente cuando el usuario aporta informacin.
Los resultados de cualquier clculo pasan automticamente a otra corriente u
operacin que est afectada por el clculo, propagando los resultados a
travs del diagrama de flujo. La informacin parcial (insuficiente para permitir
un clculo completo) tambin es dirigida bidireccionalmente a travs del
diagrama de proceso.

Metodologa de clculo en estado dinmico: cada operacin unitaria individual


contiene la informacin necesaria para calcular su respuesta dinmica, as
como tambin integrar algebraicamente.

Multi-Flow sheet: Se puede instalar un nmero ilimitado de diagramas de flujo


en una simulacin. La informacin de cualquier locacin es accesible en
cualquier momento. (HoneyWell, 2010)

Sub-flow sheets y flow sheet templates: Cada diagrama de flujo posee un


paquete de fluidos (componentes, propiedades, reacciones, etc.). Un
subdiagrama aparece como una operacin multientrada/salida y es resuelto
automticamente como cualquier otra operacin. Los templates (plantillas)
pueden

ser

construidos

especficamente

con

paquetes

de

fluidos,

operaciones, corrientes, especificaciones del proceso, etc., y guardados en


disco.

Los clculos de equilibrio de fase pueden ser automticamente realizados por


el mtodo apropiado para el diagrama de flujo. Una vez que la composicin y
dos variables de estado (presin, temperatura, fraccin de vapor o entalpa)
son conocidas para una corriente, esta es automticamente calculada. Los
clculos de las propiedades fsicas son realizados automticamente para
cada fase. (Godoy-Rodrguez, 2013)
Proyecto Integrador Scortechini

16

Diagramas de Flujo y Reportes configurables, en MS Word o MS Excel.

Poderosas

capacidades

de

grfico:

curvas

de

destilacin/absorcin,

diagramas de fases, diagramas presin-temperatura vs. Concentracin.

Datos exportables a Excel.

Poderosa herramienta de Optimizacin de Procesos. (Wikispaces, 2015)

Herramienta de Anlisis de Sensibilidad

Interfaces con Lotus 1-2-3, Excel y AutoCAD (para producir diagramas de


ingeniera).

Conexin con Visual Basic/ Excel que le permite programar sus propias
operaciones unitarias dentro del diagrama de proceso, utilizando funciones
termodinmicas y la base de datos de sustancias puras desde Excel.
(Worldpress, 2011)

Convergencia de operaciones unitarias independientes del diagrama de


proceso. Esta caracterstica es excelente para un manejo ms veloz en
simulaciones grandes y complejas.

Preseleccin automtica de modelos termodinmicos (CHEMCAD detecta el


tipo de sustancias en la catlogo de componentes y recomienda un modelo
termodinmico automticamente. (Collantes-Wilmer, 2006)

Equilibrio Lquido-Lquido y Vapor-Lquido

Estimacin de propiedades fsicas de productos no definidos

Incluyen paquetes termodinmicos especiales para AMINAS y POLIMEROS.

Prediccin de azetropos, formacin de dos fases lquidas, puntos de burbuja


y roco a diferentes temperaturas y presiones.

Modelos de torres sencillas y rigurosas con cortes laterales.

Modelos rigurosos de equipos con platos y empaques aleatorios.

CHEMCAD no toma atajos, no supone etapas ideales, usa correlaciones


rigurosas de transferencia de masa aprobadas por reconocidas instituciones
como el AIChE.

Destilaciones Reactivas con hasta 20 reacciones.

Amplia base de datos de propiedades fsicas de componentes puros (ms de


1900). (Cabrera Bentez, 2007)

Disponibilidad de los mtodos de Pitzer y NRTL para electrolitos fuertes y


dbiles. Estos mtodos han sido modificados para incluir parmetros de
interaccin dependientes de la temperatura. (Aspen Technology Inc, 2003)
Proyecto Integrador Scortechini

17

Parmetros de interaccin binaria y terciaria.

Datos de equilibrio de reaccin de electrolitos en los sistemas industriales


ms comunes.

Prediccin automtica del pH de la solucin.

Desventajas

CHEMCAD:
o Slo tiene programados cierta cantidad de problemas tipo para cada
equipo.
o Slo posee el mtodo de la temperatura media logartmica para el
intercambio de calor y asume que sta ocurre en condiciones ideales.
o El sistema de unidades se selecciona al principio y todos los datos
ingresados posteriormente deben estar en el sistema elegido. El
usuario no puede ingresar los datos en distintos tipos de unidades.
o Slo muestra los resultados finales en los archivos de documentacin y
no etapas de clculo intermedias.

HYSIM y UNISIM:
o Tienen las opciones de configuracin general y preferencias dispersas
en mltiples submens de diferentes mens que no siguen un orden
lgico.
o Si bien los cuadros de dilogo son amigables estn sobrecargados con
pestaas y subventanas que vuelven los procesos de configuracin
tediosos al pasear al usuario por una gran cantidad de pantallas y
opciones.
o Poseen mltiples barras de herramientas con opciones variadas de
tipos y configuraciones de equipos que ocupan demasiado espacio en
pantalla.
o No toleran datos faltantes en la composicin de las corrientes de
entrada, si se encuentra con alguno lo ajusta a creo (Aspen
Technology Inc, 2003) (HoneyWell, 2010).

Proyecto Integrador Scortechini

18

Nuestro Simulador

Este proyecto pretenda crear un simulador de tipo hbrido que combinara la mayor
velocidad de convergencia de los simuladores orientados a ecuaciones con la
especificidad para cada equipo caracterstica de los programas modulares
secuenciales.
Era deseable que el software abordara de manera genrica el proceso como un todo
siguiendo la lgica orientada a ecuaciones. Sin embargo para simplificar esta tarea,
que poda ser considerable en procesos grandes, tambin fue necesario que el
simulador posea herramientas exclusivas de cada operacin a simular que le
permitieran resolver algunas incgnitas de manera ms rpida y eficiente.
Se busc que el producto fuera bidireccional, o sea que la informacin ingresada por
el usuario, o calculada por el programa, se propagase hacia adelante y hacia atrs
en el proceso afectando a todos los equipos relacionados directa o indirectamente
por dichos eventos.
Tambin result de inters que fuera predictor-corrector de modo que no solicitase
estimaciones iniciales de las variables a resolver y que luego de cada iteracin los
resultados hallados fueran corregidos hasta minimizar el error asociado con ellos a
un nivel aceptable. Tambin se pretendi que se solicitara la mnima cantidad de
informacin posible al usuario

y que el simulador determinase en base a esa

informacin propiedades tales como nmero de fases, composicin de ellas, clculo


de temperaturas por correlacin con valores de entalpa, etc.
En el presente proyecto se propuso adems mejorar los aspectos de comunicacin
entre el programa y el usuario de modo que fuera ms amigable y natural.
En los captulos finales del informe se retomar este punto y se realizar un anlisis
de los resultados obtenidos.

Proyecto Integrador Scortechini

19

Bibliografa

Aspen Technology Inc. (2003). HYSYS Tutorial & Applications. Cambridge.


Cabrera Bentez, D. (2007). Diseo e Implementacin de un Simulador de un SPU.
Collantes-Wilmer. (2006). Handbook of Unit Operations using CHEMCAD. Cyrius
Technology Inc.
Godoy-Rodrguez. (2013). (U. F. Rosario, Ed.) Recuperado el 20 de Abril de 2015
Himmelblau, D. M. (1997). Principios Bsicos y Clculos en Ingeniera Qumica.
Mxico D.F.: Prentice Hall.
HoneyWell. (2010). UNISIM Design. London.
LANDER. (15 de Septiembre de 2014). Recuperado el 15 de Septiembre de 2014,
de

http://www.landersimulation.com/formacion-con-simulacion/el-mundo-en-

movimiento/historia-de-la-simulacion/
Scenna, N. J. (1999). Modelado, Simulacin y Optimizacin de Procesos Qumicos.
Sifuentes, M. (2000). Simulacin de Procesos en Ingeniera Qumicia. Mxico D.F.:
Plaza y Valds Editores.
Tarifa, E. E. (2015). Teora y Modelos de Simulacin. Universidad Nacional de Jujuy.
Wikispaces.

(2015).

Recuperado

el

20

de

Abril

de

2015,

de

https://simulacionprocesos.wikispaces.com/Ventajas+y+desventajas
Worldpress. (Mayo de 2011). Worldpress. Recuperado el 15 de Abril de 2015, de
https://unitorunozeydiio.files.wordpress.com/2011/05/chemcad.pdf

Proyecto Integrador Scortechini

20

Captulo 2: Objetivos
Objetivos Generales

1.

Crear un programa de computadora capaz de resolver los clculos asociados


a las operaciones unitarias de transferencia de calor y de masa.

2.

Desarrollar una interface grfica de usuario para el programa antes


mencionado.

Objetivos Especficos

1.

Realizar un relevamiento de las tecnologas existentes.

2.

Estudiar la programacin orientada a objetos y la tcnica de las interfaces


grfica de usuario.

3.

Desarrollar los elementos visuales (mens, botones, mensajes, etc.) que


conformarn la interface de comunicacin con el usuario.

4.

Crear mdulos computacionales que representen a los compuestos qumicos


y a los equipos involucrados en un proceso industrial.

5.

Desarrollar una biblioteca de funciones que realicen clculos termodinmicos


tpicos y necesarios para el clculo de propiedades fisicoqumicas.

6.

Programar los balances de materia y energa para los distintos equipos de


proceso.

7.

Integrar los elementos anteriores con los mdulos de clculo.

8.

Realizar pruebas. Detectar fallas. Optimizar lo programado.

9.

Confeccionar el manual de usuario.

Proyecto Integrador Scortechini

21

Captulo 3: Programacin
Introduccin

En el siglo pasado se ha utilizado la programacin estructurada como paradigma de


resolucin de problemas. Aquella consiste en descomponer un problema complejo
en problemas ms simples y stos en otros ms sencillos, continuando este proceso
hasta alcanzar un nivel de complejidad lo suficientemente bajo para que las tareas
involucradas puedan ser realizadas por una computadora. Por lo tanto esta filosofa
se caracteriza por la descomposicin del problema en verbos, acciones que deben
ser llevadas a cabo en un orden determinado para conseguir resolver el problema
original. La estructura informtica bsica de la programacin estructurada es el
procedimiento o la funcin, que son una serie de instrucciones que operan sobre las
variables involucradas en el proceso y producen un determinado resultado; de esta
forma se implementan informticamente las acciones en las que se ha
descompuesto el problema del mundo real.
Hacia la ltima dcada del siglo pasado y la primera del presente fue ganando
impulso otra filosofa, la programacin orientada a objetos. Esto se debi a la
necesidad de modelar de una forma ms natural la realidad y tambin debido a la
complejidad creciente de los problemas a abordar. Este nuevo paradigma se basa
en la descomposicin de los problemas en objetos. Un objeto es la representacin
computacional de un concepto del mundo real que contiene toda la informacin
necesaria para definirlo. Esta informacin se compone de atributos y mtodos. Los
atributos son las caractersticas del objeto, sus propiedades tales como dimensiones
fsicas, color, temperatura, posicin, energa, masa, etc. Mientras que los mtodos
son funciones que se encargan de implementar los comportamientos que determinan
sus acciones propias. Los mtodos pueden modificar los atributos del objeto al que
pertenecen y tambin los de otra entidad. Las interacciones con otros objetos que
forman parte del escenario se llevan a cabo mediante mensajes que intercambian
los objetos.

Proyecto Integrador Scortechini

22

Programacin orientada a objetos


La programacin orientada a objetos es una filosofa, un modelo de programacin,
con su teora y su metodologa, que conviene conocer y estudiar. Un lenguaje
orientado a objetos es un lenguaje de programacin que permite el diseo de
aplicaciones orientadas a objetos. Lo normal es que toda persona que vaya a
desarrollar aplicaciones orientadas a objetos aprenda primero la filosofa (o
adquiera la forma de pensar) y despus el lenguaje, porque filosofa slo hay una y
lenguajes muchos (Tarifa, 2015). En este captulo se presentan los conceptos
bsicos de la programacin orientada a objetos desde un punto de vista global, que
resulta vlido para cualquier lenguaje de programacin.

Definicin de objeto

Un objeto es un conjunto de variables (o datos) y mtodos (o funciones)


relacionados entre s. Los objetos en programacin se usan para modelar objetos o
entidades del mundo real (una bomba, un intercambiador de calor, un evaporador,
por ejemplo). Un objeto es, por lo tanto, la representacin en un programa de un
concepto, y contiene toda la informacin necesaria para abstraerlo: datos que
describen sus atributos y operaciones que pueden realizarse sobre los mismos. La
siguiente figura muestra una representacin visual de un objeto.

Figura 1. Representacin grfica de un objeto.


Los atributos del objeto (estado) y lo que el objeto puede hacer (comportamiento)
estn expresados por las variables y los mtodos que componen el objeto
respectivamente.
Proyecto Integrador Scortechini

23
Estas variables reciben el nombre de variables instancia o variables miembro porque
se refieren al estado de un objeto en particular. En la programacin orientada a
objetos un objeto en particular se denomina una instancia.
Adems de variables, un objeto podra tener mtodos. Estos mtodos se denominan
formalmente mtodos instancia o mtodos miembro, ya que cambian el estado de
una instancia u objeto particular. La siguiente figura muestra un equipo modelado
como un objeto:

Figura 2. Modelo de un flash.


El diagrama anterior muestra las variables del objeto en el ncleo o centro del mismo
y los mtodos rodeando el ncleo y protegindolo de otros objetos del programa.
Este hecho de empaquetar o proteger las variables miembro con mtodos miembro
se denomina encapsulacin. Este dibujo conceptual es la representacin ideal de un
objeto y es el ideal que los programadores suelen buscar. Sin embargo, por razones
prcticas, es posible que un objeto desee exponer alguna de sus variables miembro,
o proteger otras de sus propios mtodos o funciones miembro.
De todos modos, el hecho de encapsular las variables y las funciones miembro
relacionadas proporciona dos importantes beneficios a los programadores de
aplicaciones:

Capacidad de crear mdulos: El cdigo fuente de un objeto puede escribirse y


mantenerse independiente del cdigo fuente del resto de los objetos. De esta
forma, un objeto puede pasarse fcilmente de una parte a otra del programa.

Proyecto Integrador Scortechini

24

Proteccin de la informacin: Un objeto tendr una interfaz pblica


perfectamente definida que otros objetos podrn usar para comunicarse con
l. De esta forma, los objetos pueden mantener informacin privada y pueden
cambiar el modo de operar de sus funciones miembros sin que esto afecte a
otros objetos que usen estas funciones miembro.

Definicin de Mensaje

Normalmente un nico objeto por s solo no es muy til. En general, un objeto


aparece como un componente ms de un programa o una aplicacin que contiene
muchos otros. Es precisamente haciendo uso de esta interaccin que se consigue
una funcionalidad de mayor orden y modelar comportamientos mucho ms
complejos.
Los objetos de un programa interactan y se comunican entre ellos por medio de
mensajes. Cuando un objeto A quiere que otro objeto B ejecute una de sus
funciones miembro (mtodos de B), el objeto A manda un mensaje al objeto B.

Figura 3. Comunicacin entre objetos a travs de mensajes.


En ocasiones, el objeto que recibe el mensaje necesita ms informacin para saber
exactamente lo que tiene que hacer. Esta informacin se pasa junto con el mensaje
en forma de parmetro.
Las tres partes que componen un mensaje son:
1.

El objeto al cual se manda el mensaje.

2.

El mtodo o funcin miembro que debe ejecutar.


Proyecto Integrador Scortechini

25
3.

Los parmetros que necesita ese mtodo.

Estas tres partes del mensaje (objeto destinatario, mtodo y parmetros) son
suficiente informacin para que el objeto que recibe el mensaje ejecute el mtodo o
la funcin miembro solicitada. Los mensajes proporcionan dos ventajas importantes:

El comportamiento de un objeto est completamente determinado (a


excepcin del acceso directo a variables miembro pblicas) por sus mtodos,
por lo tanto los mensajes representan todas las posibles interacciones que
pueden realizarse entre objetos. Por ejemplo un objeto de la clase
Nodo_Divisor tiene un mtodo __init__ que crea automticamente algunos
atributos (nombre, lista de ecuaciones, de incgnitas, etc.). Otro mtodo
Actualizar que se encarga de incorporar nueva informacin proveniente del
dilogo de ese nodo y trata de cambiar el estado del nodo (valor de sus
propiedades) si es posible. Otros mtodos cuyo propsito es evidente son:
Buscar_Incognitas, Formular_Ecuaciones, CalcularGL (calcula los grados
de libertad) y Resolver. As, estos mtodos definen completamente el
comportamiento del objeto Nodo_Divisor.

Los objetos no necesitan formar parte del mismo proceso, ni siquiera residir
en un mismo ordenador para mandarse mensajes entre ellos (y de esta forma
interactuar). Por ejemplo un botn de mezclador es un objeto diferente del
dilogo de mezclador y del objeto clase Mezclador, pero el botn
desencadena la creacin del dilogo y le enva a ste ltimo el
correspondiente objeto mezclador. El objeto Mezclador, que pertenece a un
objeto superior clase Proyecto, es independiente del botn, que pertenece a
otro objeto superior clase Pantalla, y tambin lo es del objeto dilogo que no
tiene superiores. Pero un mezclador intercambia informacin de propiedades
con el dilogo de configuracin de mezclador y responde slo a su botn.

Proyecto Integrador Scortechini

26
Definicin de Clase

Una clase es una plantilla que define las variables y los mtodos que son comunes
para todos los objetos de un cierto tipo.
De este modo todos los objetos de una misma clase tienen atributos y mtodos en
comn. Sin embargo el valor de los atributos de una instancia en particular puede
diferir del valor de esos mismos atributos en otra instancia, pero ambas pertenecen a
la misma clase y tienen los mismos tipos de atributos. De igual manera, el hecho de
que una instancia ejecute uno de sus mtodos en un determinado momento no
implica que todas las instancias de la misma clase deban imitar ese comportamiento.

Figura 4. Mezclador como ejemplo de clase.


Herencia

Una vez que hemos visto el concepto de clase y el de objeto, estamos en


condiciones de introducir otra de las caractersticas bsicas de la programacin
orientada a objetos: el uso de la herencia.
El mecanismo de herencia permite definir nuevas clases partiendo de otras ya
existentes. Las clases que derivan de otras heredan automticamente todo su
comportamiento, pero adems pueden introducir caractersticas particulares propias
que las diferencian. Entonces se conocen como subclases o clases derivadas.
Como hemos visto, los objetos se definen a partir de clases. Con el mero hecho de
conocer a qu clase pertenece un objeto, ya se sabe bastante sobre l.
Adems, no estamos limitados a un nico nivel de herencia. El rbol de herencias o
jerarqua de clases puede ser tan extenso como necesitemos. Los mtodos y las

Proyecto Integrador Scortechini

27
variables miembro se heredarn hacia abajo a travs de todos los niveles de la
jerarqua. Normalmente, cuanto ms abajo est una clase en la jerarqua de clases,
ms especializado es su comportamiento.
La herencia es una herramienta clave para abordar la resolucin de un problema de
forma organizada, pues permite definir una relacin jerrquica entre todos los
conceptos que se estn manejando. Es posible emplear esta tcnica para
descomponer un problema de cierta magnitud en un conjunto de problemas
subordinados a l. La resolucin del problema original se consigue cuando se han
resuelto cada uno de los problemas subordinados, que a su vez pueden contener
otros. Por consiguiente, la capacidad de descomponer un problema o concepto en
un conjunto de objetos relacionados entre s cuyo comportamiento es fcilmente
identificable puede ser extraordinariamente til para el desarrollo de programas
informticos.
La herencia proporciona las siguientes ventajas:

Las

clases

derivadas

subclases

proporcionan

comportamientos

especializados a partir de los elementos comunes que hereda de la clase


base. A travs del mecanismo de herencia los programadores pueden
reutilizar el cdigo de la superclase tantas veces como sea necesario.

Los programadores pueden implementar las llamadas superclases abstractas,


que definen comportamientos genricos. Las clases abstractas definen e
implementan parcialmente comportamientos, pero gran parte de estos
comportamientos no se definen ni se implementan totalmente. De esta forma,
otros programadores pueden hacer uso de estas superclases detallando esos
comportamientos con subclases especializadas. El propsito de una clase
abstracta es servir de modelo base para la creacin de otras clases
derivadas, pero cuya implementacin depende de las caractersticas
particulares de cada una de ellas.

Proyecto Integrador Scortechini

28

Figura 5. Clase Equipo como superclase de otras.


Se eligi a la programacin orientada a objetos como paradigma de programacin
para codificar la interface grfica de usuario as como todos los clculos a realizar
durante este proyecto. La razn de esto es que ese modelo se adapta perfectamente
a la forma de modelar los equipos de proceso y operaciones unitarias en Ingeniera
Qumica.

Seleccin del lenguaje de programacin

Luego de haber seleccionado el estilo de programacin el prximo paso fue elegir un


lenguaje de programacin.
Los factores considerados para la seleccin fueron los siguientes:
1. El lenguaje debe ser compatible con mltiples sistemas operativos.
2. Debe soportar la programacin orientada a objetos.
3. Debe tener una sintaxis los ms sencilla posible.
4. Debe contar con bibliotecas de funciones que puedan simplificar la
codificacin de operaciones matemticas complejas (clculo vectorial,
integracin, ajuste de funciones, grficos, etc.).
5. Debe ser posible y relativamente fcil crear aplicaciones.

Proyecto Integrador Scortechini

29
6. Debe tener la capacidad de escribir archivos que permitan preservar la
informacin, pero tambin documentar (que tambin sea legible por el
usuario).
7. Debe ser compatible con otros programas tales como gestores de bases de
datos, programas de representacin grfica, planillas de clculo, etc.
Como posibles candidatos se consider a FORTRAN, C++ y Python.
Para tomar la decisin se utiliz el mtodo de los factores ponderados. ste consiste
en asignarle a cada uno de los puntos enumerados arriba un factor de peso, de
modo que la suma de los factores sea la unidad; y luego calificar cada alternativa
con un puntaje del 0 al 10 donde 0 es el peor y 10 es el mejor. Entonces para cada
alternativa se multiplica el puntaje de cada tem por su factor de peso y despus se
suman para obtener el puntaje final. Aquella opcin que tenga el mayor puntaje total
es la mejor. A continuacin se muestra la tabla de factores ponderados.
Tabla 3. Factores ponderados para seleccionar el lenguaje de programacin
tem

Factor

FORTRAN

C++

Python

Calificacin Puntaje Calificacin Puntaje Calificacin Puntaje

Compatibilidad
con sistemas

0.05

0.40

0.40

10

0.50

0.20

1.60

1.40

1.80

0.20

1.60

1.20

10

2.00

0.20

1.60

1.00

1.80

0.20

1.40

1.20

1.80

0.05

0.35

0.35

10

0.50

0.10

0.50

0.50

0.90

operativos
Programacin
orientada a
objetos
Sintaxis simple y
clara
Bibliotecas de
funciones
Crear aplicaciones
Escritura de
archivos
Compatibilidad
con otros
programas
TOTAL

1.00

7.45

6.05

Proyecto Integrador Scortechini

9.30

30
En base a los resultados anteriores, el lenguaje de programacin seleccionado para
realizar la tarea de programacin fue Python.

El lenguaje Python

Python es ms fcil de usar que otros lenguajes de programacin, est disponible


para sistemas operativos Windows, Mac OS X y Unix, y ayuda a realizar tareas
velozmente.
Python es fcil de usar, y ofrece mucha mayor estructura y soporte para programas
grandes que lo que lo que pueden ofrecer los cdigos de C++ o archivos por lotes.
Por otro lado, siendo un lenguaje de muy alto nivel, Python tiene tipos de datos de
alto nivel incorporados como arreglos de tamao flexible y diccionarios. Debido a sus
tipos de datos ms generales Python puede aplicarse a un dominio de problemas
mayor que C++ o incluso FORTRAN, y aun as muchas cosas siguen siendo al
menos igual de fcil en Python que en esos lenguajes (Lutz, 2009).
Python permite separar un programa en mdulos que pueden reutilizarse en otros
programas en Python. Viene con una gran coleccin de mdulos estndar que se
pueden usar como base de programas, o como ejemplos para empezar a aprender a
programar en Python. Algunos de estos mdulos proveen funcionalidades como:
entrada/salida a archivos, llamadas al sistema, e incluso interfaces a sistemas de
interfaz grfica de usuario como Tk o wxPython (van Rossum, 2009).
Python es un lenguaje interpretado, lo cual permite ahorrar mucho tiempo durante el
desarrollo ya que no es necesario compilar el cdigo ni enlazar libreras. El intrprete
puede usarse interactivamente, lo que facilita experimentar con caractersticas del
lenguaje, escribir programas descartables, o probar funciones cuando se hace
desarrollo de programas de abajo hacia arriba (estrategia Top-Down, entindase
programacin estructurada).
Python permite escribir programas compactos y legibles. Los programas en Python
generalmente son ms cortos que sus programas equivalentes en FORTRAN, C++ o
Java por varios motivos:

Proyecto Integrador Scortechini

31

los tipos de datos de alto nivel permiten expresar operaciones complejas en


una sola instruccin.

la agrupacin de instrucciones se hace por sangra en vez de apertura y cierre


de llaves.

no es necesario declarar los tipos de dato de las variables lo que permite


cambiar de tipo de dato fcilmente, esto es imposible en otros lenguajes. Los
argumentos de las funciones no tienen que ser obligatorios ya que admite
argumentos opcionales sin declaracin explcita.

Python es extensible: si ya se tiene un programa en C++, es fcil agregar una nueva


funcin o mdulo al intrprete de Python, ya sea para realizar operaciones crticas a
velocidad mxima, o para enlazar programas Python con bibliotecas que tal vez slo
estn disponibles en forma binaria (por ejemplo bibliotecas grficas especficas de
un fabricante). Tambin es posible enlazar el intrprete de Python a una aplicacin
hecha en C++ y usarlo como lenguaje de extensin o de comando para esa
aplicacin.
Adems Python cuenta con muchas bibliotecas muy tiles para los propsitos de
este proyecto (Lutz, Programming Python, 2011).
La biblioteca NumPy (Numerical Python, Python Numrico) permite realizar clculos
vectoriales y matriciales de un modo ms natural. Tambin tiene funciones de
lgebra lineal, transformada de Fourier, funciones estadsticas y de anlisis
matemtico y numrico (Idris, 2011) (Idris, NumPy Cookbook, 2012).
Otra biblioteca interesante es SciPy (Scientific Python, Python Cientfico), que est
basada en NumPy pero permite alcanzar un nivel de programacin superior. Posee
funciones matemticas avanzadas como integracin, resolucin de ecuaciones
diferenciales ordinarias, ajuste de datos experimentales por varias tcnicas,
optimizacin, etc. (Bressert, 2013).
SymPy (Symbolic Python, Python Simblico) es una librera para clculo simblico.
Constituye un Sistema Computacional de lgebra (CAS, Computer Algebra System)
completo y al mismo tiempo es ms simple, fcil de usar y de extender que otros
programas como MatLab o MathCad. Permite representar variables en forma
simblica, calcular lmites y derivadas, expansin en series de potencias, integracin
en forma simblica (indefinida) y clculo de integrales (definidas), resolucin de
Proyecto Integrador Scortechini

32
ecuaciones diferenciales y algebraicas en varias variables, etc. (Haenel, Gouillart, &
Varoquaux, 2013).
Otras bibliotecas permiten la interaccin con otros programas. docx permite escribir y
editar documentos Word. xlwt hace lo mismo con planillas Excel. PDFReport permite
crear archivos PDF. Incluso existen interfaces para AutoCad.
Los prrafos anteriores revelan una ventaja importante del lenguaje Python: todas
esas bibliotecas con funciones ya estn definidas y disponibles; adems son muy
fciles de usar. De este modo permite ahorrar mucho tiempo y esfuerzo que supone
el desarrollo de tales herramientas.
Sin embargo presentan la desventaja de ser limitados en algunos aspectos debido a
que estn dirigidos a un pblico cientfico general y no exclusivamente para
qumicos. Otro peligro potencial es que estos mdulos fueron desarrollados por
diferentes especialistas para propsitos distintos, por lo tanto no siempre son
compatibles cuando deben trabajar juntos o interactuar.

Bibliografa

Bressert, E. (2013). NumPy and SciPy. Sebastopol: O'Reilly.


Haenel, Gouillart, & Varoquaux. (2013). Python Scientific Lecture Notes. EuroScipy
tutorial team.
Idris, I. (2011). Numpy 1.5 Beginner's Guide. Birmingham: PACKT Publishing Ltd.
Idris, I. (2012). NumPy Cookbook. Birmingham: PACKT Publising Ltd.
Lutz, M. (2009). Learning Python (4 Edicin ed.). Sebastopol: OReilly.
Lutz, M. (2011). Programming Python. Sebatopol: O'Reilly.
Tarifa, E. E. (2015). Teora y Modelos de Simulacin. Universidad Nacional de Jujuy.
van Rossum, G. (2009). El Tutorial de Python. Python Software Fundation.

Proyecto Integrador Scortechini

33

Captulo 4: Termodinmica
Introduccin

Los clculos termodinmicos son fundamentales en cualquier proceso industrial para


calcular transferencias de calor, equilibrio de fases, composicin de las fases,
transferencia de masa, potencia de bombas, clculos de equilibrio y otros ms. stos
tienen incidencia central en el diseo de procesos, economa de los mismos y en su
factibilidad; de ah su importancia (Himmelblau, 1997).
La seleccin de los modelos termodinmicos utilizados para modelar gases y
lquidos es de particular inters. Cada modelo resulta apropiado para una
determinada clase de compuestos y de condiciones fsicas.
Por ejemplo, la ecuacin del gas ideal es ampliamente utilizada tanto para gases
puros como para mezclas gaseosas. Esta ecuacin no tiene en cuenta el tamao
molecular ni el potencial asociado a la energa de interaccin molecular. Cuando
cada una de las especies de una mezcla, as como la mezcla misma, siguen la ley
de los gases ideales, se cumplen la ley de Dalton de la aditividad de las presiones
parciales y la ley de Amagat de aditividad de los volmenes de las especies puras.
El modelo de gas ideal resulta til para representar sistemas gaseosos a bajas
presiones (menor a 10atm), temperaturas al menos 2,5 veces la crtica y compuestos
no polares o sus mezclas. Puede presentar desviaciones con respecto a los datos
experimentales de hasta un 10% (Henley-Seader, 2000).
La ecuacin del Virial es un modelo derivado de la mecnica estadstica, es el nico
que tiene un fundamento terico y se aplica para sistemas gaseosos para los que
produce resultados en buen acuerdo con las mediciones experimentales para
densidades de aproximadamente la mitad de la densidad crtica.
Las ecuaciones cbicas de estado como la de Redlich-Kwong, Soave-RedlichKwong y Peng-Robinson, refinan el trmino que da cuenta de las interacciones
moleculares. Producen estimaciones aceptables de presin de vapor, densidades y
fugacidades a presiones moderadas (entre 15 y 50atm) tanto para sistemas no
polares como polares, gaseoso o lquidos (Pedersen, 2007).
La solucin ideal es adecuada para representar mezclas lquidas de compuestos
ismeros u homlogos o muy diluidos a presiones bajas y moderadas. Cuando se
Proyecto Integrador Scortechini

34
tienen soluciones lquidas que contienen especies polares o que forman puentes de
hidrgeno se pueden utilizar los modelos de Margules, Van Laar o de Wilson. stos
reflejan la desviacin del comportamiento ideal a travs del coeficiente de actividad y
proporcionan resultados ms realistas que la solucin ideal (Smith, 1997).
As, puede verse que la seleccin de modelos termodinmicos debe hacerse
cuidadosamente y en funcin de la naturaleza qumica del sistema con que se est
trabajando. Lo anterior impacta directamente en la precisin de los resultados
obtenidos al calcular entalpas, volmenes molares, entropas, equilibrios de fases,
entre otros.
Las propiedades mencionadas en el prrafo anterior determinan los requerimientos
de combustibles o energticos, la extensin de las reacciones qumicas, las
dimensiones de los equipos de proceso necesarios, tipos de materiales a utilizar, etc.
Esto a su vez tiene una importante incidencia en la economa de los procesos
industriales y afecta su sustentabilidad econmica e inters empresarial (Sifuentes,
2000).
Adems, como se muestra a continuacin, los clculos termodinmicos son de
naturaleza compleja, rara vez son directos sino que requieren procesos iterativos de
resolucin y tambin criterios fisicoqumicos para la evaluacin de los resultados
obtenidos. Por lo tanto la capacidad de realizar estos clculos es lo que diferencia a
un simulador de procesos de una mera calculadora o de un programa de clculo
matemtico, y al mismo tiempo le agrega valor como producto.

Propiedades termodinmicas generales

Para una propiedad genrica, M, de una solucin se tiene que:


= (,,1 ,, )

()
()
()
() = [
] + [
] + [
]

,
,
,,
=1

Donde n es el nmero de moles totales del sistema, n i es el nmero de moles de la


especie i y nj el de la especie j. P representa a la presin y T a la temperatura.
Proyecto Integrador Scortechini

35
Para el caso particular de la energa de Gibbs y un sistema cerrado, se obtiene la
relacin fundamental entre propiedades termodinmicas:

()
()
()
() = [
] + [
] + [
]

,
,
,,
=1

Donde G es la energa de Gibbs molar.


Equivalentemente:

() = () () +
=1

Aqu V representa al volumen molar, S a la entropa molar y i al potencial qumico


de la especie i.
De donde surge que:
()
[
] = ()
,
()
[
] = ()
,
()
[
]
=
,,

Se define adems una propiedad molar parcial genrica como:


= [

()
]
,,

Su significado es el valor de la propiedad molar, M, de la especie i tal como existe


en la solucin, el valor de esta propiedad difiere del valor de la correspondiente
propiedad molar de la especie pura debido a la influencia que ejercen los otros
constituyentes de la solucin. Entonces surge inmediatamente que:
()
= [
]
=
,,

Proyecto Integrador Scortechini

36
Luego:


() = [ ] + [ ] +
,
,
=1

Con la ayuda de las siguientes relaciones:


= +
() = +
Se llega a

( + )
+ = [ ] + [ ] +
,
,
=1

Que equivale a

=1

=1

] + [
] = 0
[ [ ] [ ]
,
,
La nica forma de que se cumpla siempre la igualdad anterior es que ambos
trminos sean cero. Por lo tanto:

= 0 =


=1

=1

Esta ecuacin se conoce como relacin de actividad o principio de adicionabilidad y


es la clave para calcular las propiedades de la solucin a partir de las propiedades
molares parciales de sus componentes.
Si ahora la diferenciamos:

+

=
=1

=1

Reemplazando en el primer corchete

= [

=1

] + [ ]
,
,

Proyecto Integrador Scortechini

37
La ecuacin anterior se conoce como la ecuacin de Gibbs-Duhem.
Adems aplicando la definicin de propiedad molar parcial a la relacin fundamental
de propiedades se tiene que:
= [

] + [ ] =
,
,

Sistemas ideales
Mezclas de gases ideales

Se define la presin parcial de una especie en una mezcla de gases ideales como:
=
Donde pi es la presin parcial, yi es la fraccin molar de la especie i en la mezcla
gaseosa y P es la presin total del sistema.
El Teorema de Gibbs afirma que: el valor de la propiedad molar parcial de una
especie en una mezcla de gases ideales a temperatura T y presin total P es igual al
valor de la correspondiente propiedad molar de la especie pura como gas ideal a la
misma temperatura que la mezcla y a una presin igual a su presin parcial en la
mezcla. En smbolos algebraicos:
(,) = )

(,
La propiedad no puede ser el volumen.
Entonces:
=

(,)
(,)
=

(,)
(,)
Porque la entalpa, H, y la energa interna, U, de un gas ideal no son funciones de la
presin.

Proyecto Integrador Scortechini

38

(,)
= (, ) = (,) ( )
=
= + ( )
(,)
(,)
(,)
(,)
(,)
Aplicando ahora la relacin de actividad a las propiedades anteriores se pueden
calcular las correspondientes propiedades de la mezcla:

(,)



(,)
=1

= (,)
=1

(,)



(,)
=1

(,)

=1


(,)
=1

(,)

= (,)

(,)
=1

( )
=1


(,)
=1

(,)
=1

+ ( )
=1

La solucin ideal

El equivalente de una mezcla de gases ideales cuando el estado de agregacin es


lquido se llama solucin ideal. Se define una solucin ideal como aquella para la
que:
= + ln( )
De lo anterior se desprende que:
=

=
= ln( )

Proyecto Integrador Scortechini

39
Donde xi es la fraccin molar de la especie i en la mezcla lquida. Estas ecuaciones
permiten calcular las propiedades molares de las especies tal como existen en la
mezcla lquida.
Aplicando el principio de actividad podemos calcular las respectivas propiedades de
la solucin a partir de las propiedades parciales de sus componentes:

=
=1

=
=1

= ( )
=1

=1

= + ( )
=1

=1

Sistemas no ideales

Cuando una solucin, gaseosa o lquida,

est compuesta por especies con

momento dipolar elevado, cuando se forman puentes de hidrgeno o cuando las


fuerzas intermoleculares o la fuerza inica son considerables, de modo tal que ya no
se puede suponer que cada molcula existe en forma independiente del resto
surgen energas de interaccin que modifican los valores de las propiedades dados
por las leyes ideales. Entonces es necesario agregar un trmino corrector en el
clculo de cada propiedad para dar cuenta de esta interaccin entre las molculas
de las sustancias que componen la solucin. Para mezclas de gases el trmino
corrector recibe el nombre de propiedad residual, mientras que para soluciones
lquidas se le llama propiedad en exceso.

Proyecto Integrador Scortechini

40
Propiedades Residuales de las Sustancias puras

Cuando la temperatura se mantiene constante, la relacin fundamental de


propiedades para una especie pura se reduce a:

( )

Como para los gases ideales vale que:


=
Entonces:

= () ( )

De aqu surge que la energa libre de un gas ideal es funcin de la temperatura y de


la presin. Se puede escribir:

= () + ()
Donde

(T)

es

una

funcin

de

la

temperatura

que

debe

determinarse

experimentalmente.
Cuando la especie i se encuentra en una mezcla de gases ideales, se tiene que:
= + ln( ) = () + ( )
(,)

Para la mezcla de gases ideales:

(,)

= () + ( )
=1

=1

Para los gases reales existen relaciones anlogas:


= () + ( )
Donde fi es la fugacidad de la especie i en la mezcla gaseosa. La fugacidad tiene
una ventaja respecto de la presin parcial que se demostrar inmediatamente.
Una propiedad residual se define como la diferencia entre el valor de la propiedad
real y el valor de la propiedad del gas ideal. Para la energa de Gibbs molar:
Proyecto Integrador Scortechini

41

= = ( )

Se define, adems, por conveniencia el coeficiente de fugacidad de una especie i


en una mezcla gaseosa como:
=

Entonces:
= ln

ln = ( 1)
0

( = )

De esta forma se puede calcular el valor del coeficiente de fugacidad a partir de


datos experimentales del factor de compresibilidad, Z, y a partir de aquel la
fugacidad, la energa de Gibbs residual y la real.

Ecuacin del Virial

Una ecuacin de estado alternativa a la ley de los gases ideales es la ecuacin del
Virial que, truncada a dos trminos, se define as:
= 1+

Donde Z es el factor de compresibilidad y B es el segundo coeficiente Virial. La


ecuacin anterior se puede poner en trminos de las propiedades reducidas:
= 1+(

El parntesis se puede modelar como una correlacin tipo Pitzer:



0
1
= (
+ (
)
)

Donde B0 y B1 son funciones de la temperatura reducida Tr:

Proyecto Integrador Scortechini

42
0 = 0.083

0.422
1.6

1 = 0.139

0.172
4.2

Para una especie pura i:


1 = 0


+ 1
=(
)
=

De la definicin del coeficiente de fugacidad se desprende que:

=
= 1
0

A partir de lo anterior se pueden calcular todas las dems propiedades


termodinmicas:


= [
] = (
)

,

=

=[
] =

,
Donde:
0
1
= (
+
)

0 0.6752
=

2.6
1 0.7224
=

5.2

Proyecto Integrador Scortechini

43
Ecuaciones cbicas de estado

Otro modelo diferente para describir el comportamiento de gases son las ecuaciones
cbicas de estado. La expresin general de la ecuacin cbica de estado es:
=

()

( ) ( + ) ( + )

Donde a(T) y b son:


() =

( ) ( )2

Donde Tr es la temperatura reducida y Pr es la presin reducida. Los smbolos , ,


y son constantes y es una funcin de la temperatura reducida y del factor
acntrico, , caractersticas de cada ecuacin de estado.
Tabla 4. Parmetros de las ecuaciones cbicas de estado
Ecuacin

(Tr)

Redlich-Kwong

12

Soave-Redlich-

[1 + () (1 1 2 )]

Kwong (SRK)
Peng-Robinson (PR)

[1 + () (1 1 2 )]

0.08664 0.42748

0.08664 0.42748

1 2

1 + 2

0.07780 0.45724

() = 0.480 + 1.574 0.176 2


() = 0.37464 + 1.54226 0.26992 2

A partir de la expresin de la ecuacin de estado se pueden obtener expresiones


para el factor de compresibilidad tanto de gases como de lquidos:
= 1 +

( + ) ( + )

= + ( + ) ( + ) (

1+
)

Proyecto Integrador Scortechini

44
Donde los suprandices V y L hacen referencia a las fases vapor y lquido
respectivamente; q y son funciones que se definen a continuacin:
=

()
( )
=

Con estas relaciones podemos calcular el coeficiente de fugacidad de una especie


pura:
= 1 ( )
Donde Ii es:
=

1
+
(
)

Luego se pueden calcular todas las propiedades residuales de una especie pura:


= 1 + [
1]


=[
1]


= ( 1) +

1
=

Proyecto Integrador Scortechini

45
Propiedades Residuales de las Mezclas

Para una mezcla de gases, la energa de Gibbs residual se define como:


=
La energa de Gibbs molar parcial de un componente i en la mezcla real est dada
por:
= = () + ( )
Donde es la fugacidad de la especie i tal como existe en la solucin real.
Recordemos la misma propiedad para una especie en una mezcla de gases ideales:

= = () + ( )

Restando las dos ltimas ecuaciones se obtiene la energa de Gibbs molar parcial
residual de la especie i:

= = (

Por conveniencia se define el coeficiente de fugacidad de la especie i tal como


existe en la mezcla real como:
=

La conveniencia de esta propiedad proviene del hecho que, igual que en el caso de
una especie pura, se puede medir experimentalmente a partir de datos de
compresibilidad:

( )

( ) = [
]

= ( 1)

0
0
,,

Entonces:
= ( )

Proyecto Integrador Scortechini

46
Para poder calcular las propiedades residuales, el siguiente paso es escribir la
relacin fundamental de propiedades para la mezcla real y para una mezcla de
gases ideales.

(
)=

=1

(
)=

+

=1

Haciendo la diferencia se obtiene la relacin fundamental para propiedades


residuales:

(
)=

=1

Reemplazando

por ( ):




(
)=

+ ( )

2
=1

Tenemos entonces las siguientes relaciones:


( )

=[
]

( )

= [
]

( )
( )

= [
] [
]

( )

= [
] ( )


,
Aplicando ahora el principio de actividad podemos calcular todas las propiedades
residuales de la mezcla:

Proyecto Integrador Scortechini

47

=1

=1

=
= ( )

=1

=1

( )

=
= [
]

=1

=1

( )

=
= [
]

( )
( )


= (

) = [
] [
]

,
=1

=1

=1

=1

=1

=1

( )

= (

) = [
] ( )

Ecuacin del Virial

Cuando adoptamos la ecuacin del Virial como modelo para representar a una
mezcla de gases reales, necesitamos definir las siguientes propiedades cruzadas
que se obtienen por combinacin de las propiedades de los componentes puros:
=

+
2

= ( )
3

= (

1
2

(1 )
3

1 3
+

+
2

Proyecto Integrador Scortechini

48
Donde los kij son coeficientes de interaccin intermolecular que se obtienen a partir
de ajustes de datos experimentales.
La temperatura reducida y la presin reducida cruzadas son entonces:
=

La forma ms simple y rpida de calcular las propiedades residuales de la mezcla es


la siguiente. Se define el segundo coeficiente Virial de la mezcla como:

=
=1 =1

Donde los segundos coeficientes Viriales cruzados, Bij, estn dados por:
=


0
1
((
+ (
)
)
)

Las funciones B0 y B1 son las mismas que se definieron anteriormente para la


ecuacin del Virial, slo que esta vez estn evaluadas en T rij en vez de Tr.
Y la derivada del segundo coeficiente Virial de la mezcla respecto de la temperatura
es:

=1 =1

Donde:
0

()
()

=
(
+
)

Nuevamente las derivadas de B0 y de B1 respecto de la temperatura reducida las


mismas que definieron antes, slo que ahora se evalan en la T rij.

Proyecto Integrador Scortechini

49
Entonces, las propiedades residuales de la mezcla son:


= ( )

Para los clculos de equilibrio lquido-vapor son de inters los coeficientes de


actividad de las especies en solucin. stos se pueden obtener con la siguiente
frmula:

1
=
[ + (2 )]

2
=1 =1

Donde:
= 2

Ecuaciones cbicas de estado

Para que las ecuaciones de estado se puedan aplicar a una mezcla es necesario
definir el parmetro cruzado:
= (1 )
Los parmetros a y b de la mezcla se definen as:

=
=1 =1

Proyecto Integrador Scortechini

50

=
=1

Los parmetros , q, ZV ZL e I de la mezcla se definen igual que para una sustancia


pura, pero en funcin de los parmetros de la mezcla.
Adems se definen los parmetros molares parciales como:

= 2 (1 )
=1

=
= (

El coeficiente de fugacidad de una especia tal como existe en solucin es:


=

( 1) ( )

Entonces con estas relaciones podemos calcular todas las propiedades residuales
de la mezcla:

=1

=1+

= ( ) + [ + ]

( 1)

Donde:

1 1
=(
)


Proyecto Integrador Scortechini

51

=1 =1

= (
+
)2

=
( )

Propiedades en Exceso de las Mezclas lquidas

Las propiedades en exceso marcan el grado de apartamiento de una solucin lquida


real respecto de la solucin ideal. Entonces se definen como la diferencia entre el
valor de la propiedad para la solucin real en estado lquido y el valor de la misma
propiedad para la solucin ideal en las mismas condiciones de presin y
temperatura. Para una propiedad genrica M:
=
Si se deriva la ecuacin anterior respecto del nmero de moles de una especie i,
obtenemos una ecuacin anloga para las propiedades molares parciales en
exceso:
=

Las propiedades en exceso estn relacionadas con las propiedades residuales de la


mezcla y de las especies puras de la siguiente manera:

=
=1

Es interesante destacar que las propiedades en exceso slo tienen sentido para las
soluciones, pero no para las especies puras, a diferencia de las propiedades
residuales (Smith, 1997).

Proyecto Integrador Scortechini

52
Aplicadas a la energa de Gibbs molar, las ecuaciones anteriores se escriben:
=
=
Donde:
= () + ( )
= () + ( )
Entonces:

= (
)

es la fugacidad de la especie i en la mezcla lquida, mientras que f i es la
fugacidad de la especie i pura al estado lquido.
Por conveniencia se define el coeficiente de actividad de la especie i en solucin
como:
=

Luego:
=
El mismo procedimiento se puede aplicar a la relacin fundamental de propiedades.

(
)=

=1

(
)=

=1

(
)=

+

=1

Proyecto Integrador Scortechini

53




(
)=

+

2
=1

De las ecuaciones anteriores se desprenden las siguientes relaciones:

= [
]

=[
]

= [
] [
]

,
,

= [
]

,
Aplicando, ahora el principio de actividad podemos calcular todas las propiedades en
exceso de la solucin lquida:

=1

=1

=
=

=1

=1

=
= [
]

=1

=1

=
= [
]

=1

=1

=1

= (

) = [
] [
]


,
,

=1

=1

=1

= (

) = [
]

Proyecto Integrador Scortechini

54
Ecuacin de Margules

La ecuacin de Margules escrita para un sistema multicomponente proporciona una


expresin para el coeficiente de actividad (Oliver, 1968).

= [2 ] +
=1

[ 2 ]
=1

=1 =2

<

[2 {2 }]
=1
=1


=1 =2 =3

2
[

<

Donde los Aij son los coeficientes de Margules y los Aijk son los parmetros de
interaccin terciaria que se calculan a partir de los anteriores con la siguiente
frmula:
1
= ( + + + + + )
2
En ausencia de datos experimentales los parmetros binarios se pueden calcular a
partir de los coeficientes de actividad a dilucin infinita para sistemas binarios.
=
=
Desafortunadamente los coeficientes de la ecuacin de Margules generalmente se
consideran como constantes, a falta de correlaciones adecuadas que proporcionen
sus valores como funcin de la presin y de la temperatura, por lo tanto sus
derivadas respecto de la presin o de la temperatura son nulas y la ecuacin no
sirve para calcular entalpas y volmenes en exceso. Slo sirve para calcular los
coeficientes de actividad y, en base al principio de actividad, la energa de Gibbs
molar en exceso.
Para calcular las dems propiedades en exceso se puede recurrir a la relacin entre
las propiedades residuales de la solucin y las de los compuestos puros:
Proyecto Integrador Scortechini

55

01

Ecuacin de Van Laar

La ecuacin de Van Laar para un sistema multicomponente provee una expresin


para calcular los coeficientes de actividad de las especies:

=1
1

(1 )
=1

[
]


=1 + (1 ) =1

Donde los Aij son los parmetros de la ecuacin de Van Laar y son funciones de la
temperatura (Henley-Seader, 2000):

se considera constante a presin constante. Entonces la derivada respecto de la


temperatura de los coeficientes es:

= 2=

Luego:
2

(1 )

=1
=1 ( )
= (
| =[
] 2[
]

,
1
=1 + (1 )
=1

Y a partir del principio de actividad se puede calcular la entalpa en exceso de la


solucin.
Para calcular el volumen en exceso es necesario recurrir a la misma relacin que en
la seccin anterior.
En ausencia de datos ms precisos los coeficientes de Van Laar pueden calcularse
a partir de los coeficientes de actividad a dilucin infinita de sistemas binarios. La
frmula es la misma que para la ecuacin de Margules.

Proyecto Integrador Scortechini

56
Ecuacin de Wilson

La ecuacin de Wilson proporciona el coeficiente de actividad para una mezcla


lquida multicomponente:

=1

=1


= 1 [ ] [
]
=1
Donde los ij son los coeficientes de Wilson que son una funcin exponencial de la
temperatura:
=

( )

Vi y Vj son los volmenes molares de las especies i y j a la misma temperatura


que la mezcla (Henley-Seader, 2000).
La derivada de los coeficientes de Wilson respecto de la temperatura est dada por:
( )
=

2
Entonces la entalpa molar parcial en exceso de la especie k se calcula con la
siguiente frmula:

=1 ( )
=1 ( )
= (
| =[
] + [
]
2

,
=1
( )
=1

=1

Luego con el principio de actividad se puede calcular la entalpa en exceso, pero no


el volumen en exceso. Para calcular ste ltimo hay que utilizar la relacin entre las
propiedades residuales de la mezcla y de los compuestos puros.
A falta de mejores datos, los coeficientes de Wilson se pueden obtener a partir de los
coeficientes de actividad a dilucin infinita de sistemas binarios:
= + 1
= + 1
Pero como estas expresiones no son explcitas se debe recurrir a un procedimiento
iterativo de resolucin.
Proyecto Integrador Scortechini

57

Biblioteca de Funciones Termodinmicas

Se trata de un mdulo que contiene la definicin de varias clases. Esas clases tienen
atributos (propiedades caractersticas) y mtodos (funciones) caractersticos de cada
modelo termodinmico.
Las clases que integran la librera son:

Ideal: calcula entalpa, entropa, energa de Gibbs, energa de Helmholtz,


energa interna y volumen molar para mezclas de gases ideales y soluciones
ideales.

Virial: calcula el segundo coeficiente Virial, el factor de compresibilidad,


coeficientes de fugacidad, entalpa, entropa, energa de Gibbs, energa de
Helmholtz, energa interna y volumen residuales para mezclas de gases o en
exceso para mezclas lquidas.

EOS: calcula los parmetros de las ecuaciones de estado, el factor de


compresibilidad, coeficientes de fugacidad, entalpa, entropa, energa de
Gibbs, energa de Helmholtz, energa interna y volumen residuales para
mezclas de gases o en exceso para mezclas lquidas.

Margules: contiene mtodos para calcular el coeficiente de actividad de todas


las especies en una mezcla de lquidos segn el modelo de Margules.

Van Laar: contiene mtodos para calcular el coeficiente de actividad de todas


las especies en una mezcla de lquidos segn el modelo de Van Laar.

Wilson: contiene mtodos para calcular el coeficiente de actividad de todas


las especies en una mezcla de lquidos segn el modelo de Wilson.

SistemaTermodinamico: Esta clase hace uso de todas las anteriores.


Contiene el mtodo CalcularComposicion que se encarga de calcular las
fracciones en peso a partir de las fracciones molares, si se trabaja con
caudales molares o las fracciones molares en base a las fracciones en peso si
se trabaja con caudales msicos; tambin calcula el peso molecular medio de
la mezcla. El mtodo CalcularPropiedades1 se encarga de calcular el punto
de burbuja, el punto de roco y de determinar el estado de agregacin del
sistema. CalcularPropiedades2 es una funcin que calcula los valores de
entalpa, entropa, funcin de Gibbs, energa interna, volumen molar y funcin
de Helmholtz para el sistema. Para eso, descompone a cada propiedad como
Proyecto Integrador Scortechini

58
la suma de dos trminos: ideal y corrector. El trmino ideal se calcula creando
un objeto de la clase Ideal, que realiza los clculos y devuelve los
resultados. Si el estado de agregacin es gas el trmino corrector son las
propiedades residuales; si el estado es lquido, el trmino corrector
corresponde a las propiedades en exceso. As, de acuerdo al estado de
agregacin del sistema y al modelo termodinmico elegido para representar
esa fase, crea un objeto de la clase apropiada (Ideal, Virial, EOS, Margules,
etc.), le enva los parmetros que ste necesite y le solicita que calcule las
residuales o en exceso. Una vez que se dispone de ambos trmino, se realiza
la suma y se obtiene el valor de las propiedades de la mezcla real. Si el
sistema existe en un equilibrio lquido vapor, primero realiza un clculo flash
para determinar la proporcin de cada fase y su composicin, luego se
realizan los clculos pertinentes para cada fase y despus se suman los
resultados multiplicados por una fraccin (fraccin de vapor para la fase vapor
y fraccin de lquido, uno menos la fraccin de vapor, para la fase lquida).
Ms adelante se desarrollan los detalles de programacin relacionados con este
tema.

Proyecto Integrador Scortechini

59

Bibliografa

Henley-Seader. (2000). Operaciones de Separacin por Etapas en Ingeniera


Qumica. Mxico D.F.: Editorial Revert S.A.
Himmelblau, D. M. (1997). Principios Bsicos y Clculos en Ingeniera Qumica.
Mxico D.F.: Prentice Hall.
Oliver, E. D. (1968). Industrial & Engineering Chemistry Fundamentals.
Pedersen, C. (2007). Phase Behavior of Petroleum Reservoir Fluids. Taylor &
Francis Group.
Scenna, N. J. (1999). Modelado, Simulacin y Optimizacin de Procesos Qumicos.
Sifuentes, M. (2000). Simulacin de Procesos en Ingeniera Qumicia. Mxico D.F.:
Plaza y Valds Editores.
Smith. (1997). Introduccin a la Termodinmica en Ingeniera Qumica (5 Edicin
ed.). Mxico D.F.: McGraw Hill.

Proyecto Integrador Scortechini

60

Captulo 5: Objetos Desarrollados


Introduccin

En el presente captulo se presentarn los objetos creados que componen el


simulador de procesos. En cada caso se explicar la funcin que cumple el
componente, los aspectos tcnicos de Ingeniera Qumica y aquellos detalles
informticos que se consideren de inters.

La clase Pantalla

La pantalla es uno de los componentes ms importantes porque es el principal


elemento de comunicacin con el usuario y el primero con el que ste hace contacto.
Desde la pantalla principal se controla el funcionamiento global del proceso a
simular. La siguiente figura muestra una imagen de una pantalla tpica.

Figura 6. Pantalla del simulador.


Para crear la pantalla se dise una clase llamada Pantalla. sta hereda de cuatro
superclases y tiene dos mtodos.

Proyecto Integrador Scortechini

61
Las superclases de Pantalla son:

wx.Frame: Esta clase contiene una serie de variables y funciones que


permiten construir automticamente una pantalla vaca y algunos mtodos
que implementan comportamientos bsicos.

Mtodos: Es una clase que contiene a todas las funciones que determinan el
comportamiento de las funciones que cumple la pantalla. Por ejemplo: las
funciones que responden a la seleccin de distintos mens o herramientas
como crear un nuevo proyecto, abrir un proceso guardado, guardar los
cambios, agregar un equipo nuevo, etc. Tambin funciones que permiten
mover los conos por la pantalla, otras que codifican la creacin de mens
contextuales (o emergentes, tambin llamados pop-up).

Menus: Contiene un mtodo que devuelve una estructura de datos que


establece el nombre de cada uno de los mens que se mostrarn en la barra
de men, nombres de los

submens de cada uno, los conos de cada

submen, el mtodo con que se debe responder ante la seleccin del men, y
el texto a desplegar en la barra de estado cuando se selecciona alguno de
ellos. Otro mtodo se encarga de crear los mens y submens en base a la
informacin provista por el mtodo anterior. La ltima funcin es la
responsable de crear la barra de men, de agregarle los mens creados y de
asignar la barra de men al objeto Pantalla.

BarraH: Es una clase similar a Menus, slo que se encarga de crea la barra
de herramientas. Como sta es un poco ms simple que una barra de mens,
posee menos mtodos. El primero de ellos devuelve una estructura de datos
que proporciona el nombre de cada herramienta, el mtodo al que se debe
llamar en caso de que se seleccione la herramienta y el nombre del archivo
donde se encuentra la imagen para crear el cono a mostrar en la barra. El
otro mtodo crea la barra y cada una de sus herramientas, las agrega a la
barra y luego le asigna la barra de herramientas al objeto de la clase Pantalla.

Los mtodos de Pantalla son:

__init__: En general este mtodo se ejecuta automticamente cada vez que


se crea el objeto que lo contiene y se utiliza para llevar a cabo tareas que se
sabe son necesarias siempre. En el caso de los objetos del tipo Pantalla este
mtodo recibe dos argumentos: uno es un objeto tipo base de datos y otro
Proyecto Integrador Scortechini

62
objeto tipo Proyecto. La base de datos contiene toda la informacin de las
propiedades fisicoqumicas de 469 compuestos. El objeto de la clase Proyecto
es el que acumular toda la informacin relativa al proceso, incluyendo los
equipos que se vayan a crear. El mtodo __init__ crea automticamente el
marco de la pantalla, el cono del sistema, la barra de ttulo, las herramientas
bsicas (minimizar, maximizar y cerrar) y un panel en blanco. Adems define
una serie de diccionarios que sirven de referencia para relacionar los nombres
de los equipos, los botones que representan sus conos, sus identidades
(nmeros enteros negativos que Python genera automticamente y usa para
identificar los componentes) y sus tipos (corriente, mezclador, intercambiador
de calor, etc.). Luego construye una ventana con barras de desplazamiento
que ser el pao de diseo para representar el diagrama de flujo del proceso
y est contenida en la ventana de la aplicacin. Despus llama a los mtodos
para crear la barra de men, la de herramientas y la de estado; y centra la
ventana de la aplicacin en la pantalla de la computadora. Finalmente da la
instruccin para mostrar la ventana en pantalla, esto parece trivial pero si no
se hiciera, se creara la pantalla de la aplicacin pero no se vera nada en la
pantalla de la computadora.

crearBarraEst: Esta funcin crea la barra de estado y le asigna el valor inicial


Listo.

La clase BaseDeDatos

Esta clase sirve para crear un objeto almacene todas las propiedades fsicas
disponibles en la base de datos. El objeto resultante servir para proveer informacin
que asista a otras funciones que realizan los clculos durante del proceso.
La clase BaseDeDatos contiene cuatro mtodos:

__init__: En este caso el mtodo __init__ utiliza la funcin open_workbook de


la biblioteca xlrd para abrir el archivo BDD.xls que contiene la base de datos.
Luego se posiciona en la primera hoja del documento y lee el nmero de filas
y de columnas. Tambin crea listas que almacenan los smbolos de cada
propiedad, las unidades de stas y los nombres de todos los compuestos

Proyecto Integrador Scortechini

63
disponibles; adems construye un diccionario que relaciona el nombre de
cada propiedad y el nombre de cada compuesto con la direccin de la celda
de la planilla que contiene el valor numrico. Despus define un atributo para
cada compuesto y le asigna un objeto cuyos atributos son los nombres de las
propiedades y cuyos valores son los valores de las propiedades para ese
compuesto (base de datos por nombre de compuesto). Finalmente crea un
atributo por cada propiedad y le asigna un objeto cuyos atributos son los
nombres de los compuestos y cuyos valores son los valores de la propiedad
para cada compuesto (base de datos por propiedad).

guardar: Esta funcin sirve para agregar nueva informacin a la base de datos
(archivo Excel). Dada una lista con los smbolos de las propiedades y otra con
los valores para cada compuesto, busca la direccin de cada par compuestopropiedad y escribe el valor correspondiente en esa celda. Luego guarda el
archivo y la informacin se incorpora permanentemente a la base de datos.

__getitem__: Es un mtodo que sirve para recuperar el valor de un atributo


del objeto. Recibe como argumento el nombre del atributo y, si existe,
devuelve su valor; de lo contrario se produce un error.

__setitem__: Esta funcin sirve para crear un nuevo atributo del objeto.
Necesita dos parmetros: el nombre del nuevo atributo y su valor; entonces
agrega el atributo con el nombre proporcionado y le asigna el valor provisto.

Los ltimos dos mtodos cumplen la misma funcin en cualquier objeto. En el futuro
se har mencin de sus nombres pero no se repetir su explicacin.

La clase Proyecto

As como la pantalla ayuda a visualizar de forma grfica el proceso y es la parte


encargada de interactuar con el usuario, el objeto de la clase Proyecto es la
verdadera estructura que almacena toda la informacin del proceso, incluyendo los
equipos que forman parte de ste.
La diferencia est en que, al cerrar la aplicacin, la pantalla y todos los componentes
visuales contenidos en ella son destruidos y no queda evidencia de su existencia. Si
los datos del proceso se almacenaran en el objeto tipo Pantalla, se perderan al

Proyecto Integrador Scortechini

64
cerrar el programa. En cambio el objeto clase Proyecto es un husped de la pantalla,
que interacta con sta, pero que puede sobrevivir despus de cerrar la ventana de
la aplicacin y, si se guarda en un archivo, permite preservar toda la informacin
generada. As cuando se abra nuevamente el programa, es posible abrir el archivo
de datos, recargar toda la informacin, visualizarla, modificarla, ampliarla, etc.
La clase Proyecto posee cinco mtodos:

__init__: Este mtodo recibe como parmetro un objeto de la clase


BaseDeDatos y crea un atributo al que le asigna este parmetro. Tambin
define

los

atributos:

Sistema_Unidades,

Tipo_Caudal,

Modelo_Gases,

Molelo_Liquido que contiene cadenas de caracteres, inicialmente vacas, que


sirven para especificar: el sistema de unidades, el tipo de caudal, el modelo
utilizado para representar a los gases y a los lquidos respectivamente.
Adems se construye una lista vaca que servir para almacenar los nombres
de los compuestos que intervienen en el proceso, y un diccionario llamado
Equipos que contiene como claves a los tipos de equipos que puede simular
el programa (corriente, nodo_divisor, mezclador, tanque_agitado_continuo,
intercambiador_de_calor, flash y destilador) y como valores a diccionarios,
inicialmente vacos, que servirn para almacenar el nombre de cada equipo y
el objeto correspondiente que contiene su informacin.

calcularTref: Esta funcin sirve para establecer la temperatura de referencia


que ser utilizada a la hora de realizar clculos de entalpa, entropa, energa
interna, libre, etc. Si el objeto Proyecto ya tiene definida una lista de
compuestos, y sus propiedades en la base de datos, entonces establece
como temperatura de referencia para cada compuesto su temperatura normal
de ebullicin (Geankoplis, 1998). Esto tiene como consecuencia que la
entalpa de mezclas lquidas tendrn valores negativos de entalpa, mientras
que las mezclas gaseosas o mezclas lquido-vapor tendrn entalpas
positivas. Si la lista de compuestos est vaca, entonces no hace nada.

datosActividad: Este mtodo sirve para almacenar los coeficientes de las


ecuaciones de Margules, Van Laar o de Wilson para cada pareja de
compuestos, en caso que el modelo seleccionado por el usuario en la
configuracin del sistema para representar a los lquidos no sea la solucin
ideal. Para ello, si la lista de compuestos no est vaca y el modelo de lquidos

Proyecto Integrador Scortechini

65
no es la solucin ideal, forma todas las combinaciones posibles de dos
compuestos (sistemas binarios), abre el archivo Actividad.xls y se posiciona
en la hoja cuyo nombre es igual al modelo de lquido. Para cada pareja, busca
su nombre en la primera columna y, si lo encuentra, lee los valores de los
coeficientes en las columnas siguientes y los almacena en un diccionario; si
no encuentra el nombre del sistema, lo agrega a una lista de datos faltantes
para solicitar posteriormente al usuario que ingrese esos datos a travs de un
dilogo. Si la lista de compuestos est vaca, no hace nada.

__getitem__

__setitem__

La clase SistemaTermodinamico

Esta clase se utiliza para calcular todas las propiedades termodinmicas de una
mezcla multicomponente, por ejemplo una corriente de proceso.
Posee una funcin __init__ que define automticamente algunas propiedades
caractersticas de todo sistema termodinmico. Por ejemplo, el nombre del sistema,
su temperatura, su presin, su composicin, etc. Estos valores los recibe de un
equipo de proceso como una corriente y luego los guarda en variables adecuadas.
Tambin crea un documento Word nuevo donde se documentarn todos los clculos
realizados. Despus llama a las funciones: calcularComposicion a la que le enva
como

parmetro

la

composicin

del

sistema;

calcularPropiedades1

calcularPropiedades2.
La funcin calcularComposicion tiene como propsito calcular el peso molecular
medio de la mezcla y determinar la composicin en masa si la composicin est
dada como fracciones molares o la composicin molar en caso contrario.
Para eso, si la composicin viene dada como fraccin molar, se calcula la fraccin
en peso mediante la siguiente frmula:
=

=1

Proyecto Integrador Scortechini

66
Donde i, zi, PMi y N son la fraccin en masa, la fraccin molar, el peso molecular
del compuesto i y el nmero de componentes de la mezcla respectivamente.
Adems
=1 es el peso molecular medio de la mezcla.
Cuando la composicin est dada por fracciones en masa, la fraccin molar se
calcula mediante:
=

=1

Donde
=1 es el peso molecular medio de la mezcla.
Los pesos moleculares de los componentes del sistema los obtiene de la base de
datos de propiedades.
Cuando se completan estos clculos, se escribe un prrafo en el documento Word
con el valor del peso molecular medio y se agregan dos tablas: una que muestra la
composicin molar y otra que muestra la composicin en peso.
La funcin calcularPropiedades1 tiene por objeto determinar la temperatura de
burbuja, la temperatura de roco de la mezcla. Para eso llama a las funciones
calcularTbub, calcularTdew y evaluarFase.
La funcin calcularTbub sirve para determinar la temperatura de burbuja de una
solucin a partir de su presin y de su composicin molar. Con ese fin implementa el
procedimiento mostrado a continuacin (Smith, 1997):

Proyecto Integrador Scortechini

67
Leer P, {xi}, constantes. Ajustar todas las i=1.

Calcular {Tisat} con la ecuacin =


.

Calcular =

=1

sat

Evaluar {Pi }, {i}. Elegir una especie j de referencia.


Calcular Pjsat con =

=1( )( )

Calcular Tburbuja con =

Fijar tolerancia del error: .

Evaluar {Pisat}.
Calcular {yi} con =

Evaluar {i}, {i}.


Calcular Pjsat.
Volver a evaluar Tburbuja.

No

Es T<?

Guardar Tburbuja, {yi}

Figura 7. Procedimiento para calcular la temperatura de burbuja.


La propiedad i se define como el cociente entre el coeficiente de fugacidad de la
especie i en solucin y el coeficiente de fugacidad de la especie i pura en la
condicin de saturacin.
=

Los coeficientes de actividad y los de fugacidad se evalan de acuerdo a los


modelos que haya seleccionado el usuario para representar lquidos y gases. Por
Proyecto Integrador Scortechini

68
ejemplo: ecuacin de Margules, de Van Laar, de Wilson; ecuacin del Virial,
ecuaciones de estado, etc. Adems T=|Tburbuja-Tburbuja anterior|
El mtodo calcularTdew determina la temperatura de roco de una solucin a partir
de su presin y de su composicin molar. Para ello implementa el procedimiento
mostrado a continuacin (Smith, 1997):
Leer P, {yi}, constantes. Ajustar todas las i=1 y todas las i =1.
Calcular {Tisat} con la ecuacin =

Estimar =
.
=1
sat
Evaluar {Pi }, {i}. Elegir una especie j de referencia.

Calcular Pjsat con =


=1
Recalcular Troco con =

().

Evaluar {Pisat}, {i}. Calcular {xi} con =

Evaluar {i}. Calcular Pjsat y volver a calcular Troco.


Fijar tolerancia del error: .

Evaluar {Pisat} y {i}.

Calcular {xi} con =

Normalizar los valores de xi.


Evaluar {i}

Es cada i <?

No

Recalcular

Pjsat

y Troco.

Es T<?

No

Guardar Troco, {yi}


Figura 8. Procedimiento para calcular la temperatura de roco.

Proyecto Integrador Scortechini

69
Donde T=|Troco-Troco anterior|
La funcin evaluar fase compara la temperatura del sistema con la temperatura de
burbuja y la temperatura de roco. Si la temperatura es menor que la temperatura de
burbuja, el sistema se encuentra como lquido subenfriado. Si la temperatura
coincide con el punto de burbuja se trata de un lquido saturado. Si la temperatura es
igual al punto de roco se trata de un vapor saturado, mientras que si es mayor el
sistema es un gas. El resultado de esta evaluacin se almacena como una cadena
de caracteres en el atributo fase del sistema.
Si la temperatura del sistema se encuentra entre la temperatura de burbuja y la de
roco entonces se tiene una mezcla de lquido y vapor. Para resolver esta situacin
se invoca a la funcin calculoFlash.
La funcin calculoFlash se basa en el principio de conservacin de la masa de las
especies que forman parte del sistema y en el hecho que las corrientes de lquido y
vapor estn en equilibrio.
Una corriente con caudal molar de F moles se descompone en una formada por V
moles de vapor y en otra con L moles de lquido, de modo que:
=+
Se define a la fraccin de vapor como la proporcin del sistema que forma la fase
vapor, entonces:
=

De donde = = (1 ) . Luego el balance de masa de una especie i


se reduce a:
= (1 ) +
Donde zi es la fraccin molar global de la especie i en F, xi es la fraccin molar en
la fase lquida e yi es la fraccin molar en la fase vapor.
Tambin se define a la relacin de equilibrio Ki como:
=

Proyecto Integrador Scortechini

70
Entonces aplicando la definicin de Ki al balance de masa resulta:
=


1 + ( 1)

1 + ( 1)

Como en un sistema = = 1, se obtienen dos funciones:

=
=1

=
=1


1=0
1 + ( 1)

1=0
1 + ( 1)

Por conveniencia se define:

= =
=1

( 1)
=0
1 + ( 1)

La conveniencia de esta funcin es que su derivada es siempre negativa y por lo


tanto F es montona decreciente.

( 1)2
=
[1 + ( 1)]2

=1

Esto permite aplicar el mtodo de Newton para encontrar el valor de y garantizar


su convergencia.

+ ( ) ( 1 ) = 0 = 1
()

( )

Donde el subndice j de representa el nmero de iteracin.


Para iniciar el clculo se obtiene una estimacin inicial de a partir de la relacin:
1

=
0 1

Proyecto Integrador Scortechini

71
Las estimaciones iniciales de {i} y { } surgen de:
,
,

=
=
, , , ,
Los valores de los coeficientes de actividad y de fugacidad para el roco y la burbuja
se obtuvieron durante el proceso de clculo de las respectivas temperaturas.
As, con estos valores iniciales se pueden obtener los Ki segn:
=

Entonces se pueden evaluar las funciones F y dF/d, se aplica el mtodo de Newton


hasta que se encuentra un valor final de . Con ste se vuelven a estimar xi e yi, y se
evalan de nuevo {i} y { }.
El procedimiento se repite hasta obtener valores constantes de , xi e yi con los
cuales se pueden calcular los caudales de lquido, de vapor y queda determinada la
composicin de cada fase (Scenna, 1999).
La funcin calcularPropiedades2 sirve para calcular las propiedades termodinmicas
intensivas de la mezcla: entalpa, entropa, energa libre de Gibbs, energa interna,
volumen y energa de Helmholtz molares o especficas dependiendo de si el usuario
decidi trabajar con composiciones molares o en masa.
Se ha creado un clase particular para cada modelo termodinmico desarrollado en
ste captulo: mezcla de gases ideales, solucin ideal, Virial; Ecuaciones cbicas de
estado que incluye Redlich-Kwong, Soave-Redlich-Kwong y Peng-Robinson;
Margules, Van Laar y Wilson. En cada caso las propiedades y parmetros se han
calculado programando directamente las respectivas frmulas que se presentaron en
este captulo.
Cada propiedad se plantea como la suma de dos trminos: un trmino ideal y otro
corrector. Si el sistema se encuentra en esta lquido el trmino ideal se refiere a una
solucin ideal; mientras que si es gaseoso el trmino ideal alude a una mezcla de
gases ideales. El trmino corrector cuando el sistema es lquido son las propiedades
en exceso; pero si es gaseoso entonces se corresponde con las propiedades
residuales. En funcin del estado de agregacin del sistema, el programa
Proyecto Integrador Scortechini

72
diagnostica automticamente que tipo de propiedades deben calcularse y crea un
objeto de la clase correspondiente. Una vez que dispone de los resultados, suma los
trminos ideal y corrector para obtener la propiedad real del sistema.

Los primeros pasos

Un defecto observado en los simuladores comerciales es que los submens que


sirven para hacer la configuracin del sistema estn dispersos en distintos mens
que se encuentran separados, y sus nombres no permiten inferir fcilmente su
funcin. Por ejemplo CHEMCAD posee un men llamado ThermoPhysical que
permite seleccionar los paquetes de funciones termodinmicas, ste se encuentra en
la sexta posicin despus de File, Edit, View, Format, Run Simulation y antes
que el men Specifications donde se eligen el sistema de unidades, tipo de
caudales, compuestos que intervienen en el proceso, etc. El men Specifications
debera preceder a Thermophysical y a Run Simulation. En el caso de HYSYS,
ofrece muy pocos mens en la barra, slo son tres: File, Tools y Help. De modo
que la mayora de los submens estn en Tools, quedando ste saturado con
muchos submens. A su vez cada submen ofrece una cantidad excesiva de
posibilidades de configuracin distribuidas en mltiples pestaas y columnas, que a
su vez abren otras ventanas con respectivo su arsenal de pestaas y ms columnas.
Esto hace de la configuracin un proceso largo y tedioso para el usuario
abrumndolo con demasiadas opciones (Aspen Technology Inc, 2003). Algo similar
ocurre con UNISIM (HoneyWell, 2010).

Proyecto Integrador Scortechini

73

Figura 9. Pantalla de Configuracin de HYSYS.

Figura 10. Otra pantalla de Configuracin de HYSYS.

Proyecto Integrador Scortechini

74

Figura 11. Pantalla de configuracin de UNISIM.

Figura 12. Pantalla de seleccin de compuestos de UNISIM.


Una de las caractersticas del programa desarrollado es que todos los elementos
necesarios para operarlo se presentan en un orden lgico y son fciles de utilizar.
As, el primer men se llama Configuracin y sirve para establecer las condiciones
generales del proceso (configuracin general, del sistema de unidades, de la lista de
compuestos, de los modelos termodinmicos o del tipo de caudales).

Proyecto Integrador Scortechini

75

Figura 13. Men de configuracin general del simulador.


El submen General permite configurar todo el sistema (los dems submens
permiten hacer configuraciones de tems puntuales). Cuando se selecciona se
produce un evento de men (esto ocurre siempre que se selecciona un men o
submen). Cuando se defini cada submen en el mdulo menus, tambin se le
enlaz el evento de men y el mtodo al que debe responder en caso de que se
produzca dicho evento. El mtodo enlazado al submen General se llama
onConfGral y su definicin se encuentra en la biblioteca metodos.
El mtodo onConfGral crea un objeto de la clase DialogoConfGral (definido en el
mdulo dialogos) y le enva como parmetros el objeto de la clase Proyecto que
representa al proceso y otro objeto de la clase BaseDeDatos.
La clase DialogoConfGral hereda de dos superclases: wx.Frame que permite la
creacin de ventanas, y Componentes, desarrollada en este proyecto, que contiene
definiciones de componentes visuales tales como: texto esttico, control de texto,
botones, listas desplegables, etc.; as como funciones que automatizan su creacin
en masa para aumentar la eficiencia del proceso y ahorrar cdigo. Tiene un mtodo
__init__ que se encarga de crear la ventana de dilogo que ofrece al usuario todas
las opciones de configuracin y que se muestra a continuacin:
Proyecto Integrador Scortechini

76

Figura 14. Dilogo de configuracin general.


Para ello crea una ventana con barras de desplazamiento que contendr a todos los
paneles, despus llama a las funciones que hereda de la clase Componentes para
la creacin automtica de un panel por cada tem a configurar, textos estticos que
indican el tem que se configura en cada panel, cajas de botones de radio para
seleccionar el sistema de unidades, modelos de gases y de lquidos; un cuadro de
lista para seleccionar los compuestos que forman parte del proceso y listas
desplegables con opciones de unidades para propiedades particulares.
Despus tiene un mtodo que permite agregar los componentes creados a unos
algoritmos llamados sizers (dimensionadores) que se encargan de hacer la
distribucin fsica (Layout) de esos componentes en la pantalla para asegurarse que
quepan; luego asigna los dimensionadores a los correspondientes paneles, y un
tercer mtodo agrega los paneles a la ventana principal del dilogo. Finalmente
llama al mtodo cargar que intenta cargar informacin a partir del proceso, si es
que sta existe (sino no hace nada).
El mtodo OnRadio se encarga de hacer que, cuando el usuario seleccione el
Sistema Internacional o el Sistema Ingls como sistema de unidades, se seleccionen

Proyecto Integrador Scortechini

77
automticamente las unidades correspondientes en las listas desplegables de las
respectivas propiedades.
El mtodo OnRecuperar responde al evento de presin del botn Aceptar y se
encarga de revisar todos los controles que se muestran en el dilogo para recuperar
las opciones seleccionadas y se las asigna al atributo correspondiente del objeto
Proyecto que representa al proceso. Luego llama a la funcin revisarCpL que
verifica que los coeficientes para calcular la capacidad calorfica lquida de los
compuestos seleccionados estn en la base de datos, si es as entonces no hace
nada, en caso contrario crea un objeto de la clase CpLDialog que abre otra
ventana de dilogo y le muestra al usuario una tabla componentes-coeficientes,
invitndolo a ingresar la informacin faltante. Despus llama al mtodo
revisarActividad que hace algo similar pero para los coeficientes de la ecuacin de
actividad, si el modelo de lquidos es la solucin ideal esta funcin no hace nada.
Cabe aclarar que el usuario debe completar obligatoriamente todas las celdas de las
tablas mostradas por los dos dilogos anteriores, pues estos datos son
indispensables para los clculos posteriores. Si el usuario omite algn dato el
sistema le muestra un mensaje de error indicndole que debe completar todos los
campos. Tambin estos dilogos le muestran al usuario del programa un mensaje
ofrecindole incorporar los datos ingresados de forma permanente a la base de
datos. Si el usuario acepta los datos se escriben en los respectivos archivos Excel,
de los contrario sus valores se utilizan para los clculos del proceso actual pero no
estarn disponibles para otros procesos diferentes. Finalmente, llama al mtodo
onCerrar que cierra la ventana y destruye a su objeto asociado, pero el objeto tipo
Proyecto retiene toda la informacin recolectada.

Figura 15. Mensaje de error durante la configuracin de Cp lquidos.


Proyecto Integrador Scortechini

78

Figura 16. Dilogo de configuracin para Cp lquidos.

Figura 17. Parmetros de los modelos de actividad.


La funcin cargar hace el trabajo opuesto a OnRecuperar. Tiene una lista que
relaciona los atributos de proceso (sistema de unidades, lista de compuestos, etc.)
con los respectivos componentes visuales que muestran su contenido en pantalla.
Entonces revisa los atributos del proceso y, si tienen asignado algn valor,
selecciona las opciones correspondientes en las cajas de botones de radio, listas
desplegables, cuadro de lista, etc. que se muestran en pantalla. Esta funcin se
invoca automticamente, a travs del mtodo __init__, cada vez que se abre la
ventana de dilogo despus de haber creado todos los componentes visuales de la
misma.
El primer panel permite seleccionar el sistema de unidades a utilizar, las opciones
son: Sistema Internacional, Sistema Ingls y Sistema Personalizado. Si el usuario
selecciona cualquiera de los dos primeros, las unidades de todas las propiedades se
seleccionan automticamente; de lo contrario el usuario debe seleccionar las
unidades para formar su propio sistema de unidades personalizado.

Proyecto Integrador Scortechini

79
El segundo panel permite seleccionar los compuestos que se utilizarn en el proceso
de una lista con 469 compuestos, la mayora orgnicos. El tercer panel permite optar
por caudales msicos o molares. El cuarto le ofrece varios modelos para representar
gases entre los que estn el gas ideal, la ecuacin Virial y tres ecuaciones de estado
cbicas. El quinto panel ofrece opciones para modelar lquidos (solucin ideal,
ecuacin de Margules, de Van Laar o de Wilson). Los restantes permiten configurar
unidades de propiedades particulares.
Cuando se ha completado la seleccin, se debe oprimir el botn Aceptar para
guardar la seleccin o Cancelar para salir sin recuperar ninguna seleccin.
Los restantes submens del men Configuracin permiten hacer configuraciones
anlogas a General pero slo de los atributos sugeridos por sus nombres (Lista de
compuestos, caudales, etc.).
Luego se debe continuar con el men Archivo que se encuentra inmediatamente a
continuacin del men Configuracin. Si se desea crear un nuevo proceso se debe
seleccionar el submen Nuevo.

Figura 18. Men Archivo del simulador.


Este submen tiene enlazado un evento de men al que responde llamando a la
funcin onNuevoProc que crea un dilogo estndar de wxPython de ingreso de
Proyecto Integrador Scortechini

80
texto para preguntar el nombre que se le desea dar al nuevo proceso, recupera el
texto ingresado y se lo asigna al atributo Nombre del objeto Proyecto. Luego llama
al mtodo onCrearCarpeta que se encarga de crear una nueva carpeta con el
nombre del proceso que ser utilizada para almacenar todos los archivos
relacionados con el proyecto.

Figura 19. Dilogo para nombrar el proyecto.


Si se desea modificar un proceso que ya existe, entonces se debe seleccionar el
submen Abrir. ste responde al evento de men llamando al mtodo onAbrir que
muestra un dilogo estndar de wxPython para la apertura de archivos. Se debe
buscar la carpeta donde est guardado el archivo, seleccionar ste ltimo y
entonces el programa abre el archivo y carga toda la informacin disponible.

Figura 20. Dilogo de apertura de proyectos.


Proyecto Integrador Scortechini

81
Adems el mtodo Abrir invoca a otro llamado generarFlowsheet que se encarga
de reconstruir el diagrama de flujo del proceso. Para eso revisa el diccionario
Equipos del objeto clase Proyecto clave por clave (corriente, nodo divisor,
mezclador, etc.), si el diccionario no est vaco (o sea, si hay equipos de ese tipo),
entonces crea un botn imagen con el cono que representa a esa clase de equipo y
los enlaza con el objeto correspondiente que contiene la informacin de ese equipo.
Los submens Guardar y Guardar como sirven para guardar los cambios en un
proceso existente y para guardar un proyecto recin creado, respectivamente.
Guardar como tiene asociado un mtodo que abre un dilogo muy parecido a aquel
para abrir un archivo, pero ste sirve para guardar.
El submen Imprimir se pens con el fin de imprimir el contenido de la pantalla de
la computadora, pero no se realiz la programacin para implementar esa funcin
primero por no considerarse prioritaria y, al final, por falta de tiempo.
El submen Cerrar est enlazado a un mtodo llamado OnSalir que cierra la
ventana del simulador y destruye todos los objetos creados.
Una vez completados estos primeros pasos preliminares, el usuario est en
condiciones de comenzar a representar el diagrama de flujo del proceso, creando los
equipos que forman parte del mismo e ingresando la informacin disponible acerca
de ellos.
Para construir el diagrama de flujo de proceso, debemos crear equipos y agregarlos
al pao de diseo en la ventana principal. Los recursos necesarios para eso se
encuentran en el men Insertar. ste contiene submens que nos permiten crear
corrientes de proceso, nodos divisores, mezcladores, etc.
Cuando se selecciona cualquiera de estos submens, o la herramienta equivalente
de la barra de herramientas, se genera un evento de men y se llama al mtodo
onIcono. Esta funcin se encarga de crear un botn que muestre, en vez de texto,
una imagen caracterstica que se usa para representar a cada equipo (esa imagen
coincide con el cono del submen correspondiente) y de enlazarle una serie de
eventos.

Proyecto Integrador Scortechini

82

Figura 21. Men Insertar del simulador.


Para eso, primero recupera el nombre del submen seleccionado (o herramienta
seleccionada) para saber de qu tipo de equipo se trata y guarda este valor en una
variable llamada tipo. Luego se llama al mtodo preguntarNombre que abre un
dilogo estndar de ingreso de texto para preguntarle al usuario el nombre que
desea darle a ese equipo, cuando el usuario hace clic sobre el botn OK, se
recupera el texto ingresado y se guarda en una variable llamada nombre.

Figura 22. Dilogo para nombrar un nuevo equipo.

Proyecto Integrador Scortechini

83
A continuacin, se llama al mtodo buscarIcono, al que se le pasa como argumento
el tipo de equipo, que tiene un diccionario usado para obtener el nombre del archivo
de imagen usado para representar a cada tipo de equipo, a partir de ste se crea
una imagen tipo mapa de bits y se la guarda en la variable llamada bmp. Entonces
se crea un botn de imagen, que pertenece al panel principal de la aplicacin, y que
tiene como fondo la imagen creada anteriormente. Despus se crea un objeto que
se encargar de acumular la informacin del equipo, si es una corriente se crea un
objeto de la clase Corriente, si es un intercambiador de calor se crea un objeto de la
clase Intercambiador, etc.; y se establecen referencias que relacionan al nombre del
equipo con el objeto que almacenar sus datos y con el botn sobre el pao que es
la parte del equipo que el usuario ver. El objeto que representa al equipo se agrega
al diccionario de Equipos del objeto clase Proyecto dentro del diccionario
correspondiente al tipo de equipo, por ejemplo:
Equipos = {Corriente:{F01:objetoF01, F035:objetoF035},
Tanque_Agitado_Continuo:{T-001:objetoT-001},
Flash:{} (No hay ningn flash diccionario vaco)}
De forma anloga existe un diccionario Equipos que pertenece a la pantalla
principal, pero en vez de objetos clase equipo, guarda la referencia de los botones.
Equipos = {Corriente:{F01:botnF01, F035:botnF035},
Tanque_Agitado_Continuo:{T-001:botnT-001},
Flash:{} (No hay ningn flash diccionario vaco)}
Uno de los eventos enlazados al botn es de particular inters, el evento men
contextual. Este evento ocurre cuando el usuario hace clic con el botn derecho del
mouse, estando ste dentro de los lmites del botn. A cada uno de los botones
creados se le enlaza este evento y, en respuesta al mismo, se ejecuta la funcin
onShowPopup.

Esta funcin tiene la finalidad de enlazar un men contextual

(tambin llamado emergente o Pop-up en ingls) al botn en cuestin. Para ello


tiene que determinar primero el nombre del equipo, su tipo y el botn que lo
representa, despus llama al mtodo crearPopup y le asigna al botn el men
contextual. El mtodo crearPopup es el encargado de fabricar el men emergente,
para ello, crea un men y tres submens: Orientacin, Configurar y Borrar.
Proyecto Integrador Scortechini

84

Figura 23. Men emergente y sus distintas opciones.


El submen Orientacin ofrece alternativas de representacin para cada equipo.
Para eso muestra un men con distintas imgenes, cuando el usuario selecciona
una de ellas se produce un evento de men que dispara el mtodo
onCambiarIcono que recupera la opcin seleccionada, prepara una imagen mapa
de bits con ese smbolo y luego cambia la imagen original mostrada por el botn por
la nueva seleccin.

Figura 24. Ejemplo de un pequeo diagrama de flujo.

Proyecto Integrador Scortechini

85
El submen Configurar genera un evento que llama a la funcin onDialogar,
dependiendo del tipo de equipo, sta crea una ventana de dilogo que permite
introducir y visualizar informacin relativa a ese equipo (cuando se trate cada equipo
en particular ms adelante, se ampliar este punto).
Mientras que el submen Borrar sirve para eliminar un equipo del proceso, como
consecuencia se destruye el botn que representa a ese equipo en la pantalla y
tambin el objeto que contiene toda su informacin.

Corriente

En este proyecto se supone que la corriente es una sola fase en la que no ocurren
reacciones qumicas. El estado de agregacin del sistema lo determina
automticamente el mtodo evaluarFase de la biblioteca termodinmica. Si la
corriente cae en la regin de dos fases se muestra un mensaje de error y se le pide
al usuario que considere una separacin flash. Para ello se cre el men Flash que
se detallar ms adelante. La corriente se representa mediante una flecha.

Figura 25. Representacin de una corriente.


A continuacin se muestra un anlisis de los grados de libertad.
Tabla 5. Anlisis de Corriente
Variables

Ecuaciones

Tipo

Cantidad Tipo

Temperatura (T)

Presin (P)

Cantidad

Suma de fracciones igual a uno 1

Composiciones (zi o i) N
Caudal (F)

Total

N+3

Grados de Libertad

Total
N+2

Proyecto Integrador Scortechini

86
En la tabla anterior, y de aqu en adelante, N es el nmero de compuestos que
intervienen en el proceso. Si se conoce este nmero es posible saber el nmero
mximo de grados de libertad del sistema. Por ejemplo, si se proporcionan caudal,
temperatura, presin y N-1 composiciones la corriente quedar completamente
especificada y podr resolverse (Himmelblau, 1997) (Henley-Seader, 2000).
Cuando se selecciona el submen, o herramienta de, Corriente, el mtodo que se
activa crea un objeto de la clase Corriente. sta contiene ocho mtodos:

__init__:

Este

mtodo

recibe

como

parmetros

un

objeto

clase

BaseDeDatos con el que crea un atributo BD que es la base de datos


propia de la corriente, y el objeto clase Proyecto. Tambin crea los atributos
Nombre, Caudal, T y P que contienen la temperatura y la presin de la
corriente, Composicion que es un diccionario compuesto:fraccin para
almacenar la composicin molar o en masa del objeto. Los atributos PM,
Composicion2, Tbub, Tdew, fase almacenarn el peso molecular medio,
la composicin alternativa en masa o molar, la temperatura de burbuja, la de
roco, el estado de agregacin respectivamente cuando se calculen
automticamente esas propiedades. A los atributos anteriores se les asigna
un valor inicial simblico, generado automticamente, despus de su
creacin. Ms adelante el usuario podr visualizar esos valores, modificarlos
por smbolos propios o reemplazarlos por datos si as lo desea. Si el usuario
decidi trabajar con caudales molares en la configuracin general del
proceso, entonces el diccionario Composicion hace referencia a la
composicin molar y tanto el diccionario Composicion2 como el trmino
Composicin alternativa se refieren a la composicin en masa. En cambio
cuando se trabaja con caudales msicos la Composicion alude a las
fracciones en masa y la Composicion2 junto con la Composicin alternativa
corresponden a las fracciones molares. Otros atributo como H, V, S, G,
U, y A sirven para guardar las propiedades termodinmicas entalpa,
volumen, entropa, energa libre de Gibbs, energa interna y energa de
Helmholtz molares o especficas de la mezcla dependiendo de con qu tipo
de caudales se est trabajando. ecs e inc son listas donde se almacenarn
las ecuaciones e incgnitas propias de la corriente, GL que representa a los
grados de libertad, unidades que es un diccionario propiedad:unidad para

Proyecto Integrador Scortechini

87
relacionar el nombre de cada propiedad con su correspondiente unidad y ref
que es un diccionario smbolo:atributo que relaciona los smbolos de las
incgnitas con el correspondiente atributo de la corriente donde deber
colocarse el resultado una vez que sea resuelta.

Actualizar: Este mtodo sirve para llevar a cabo el proceso de actualizacin


de la corriente, intentando resolver las ecuaciones de la corriente. Para ello
llama

las

funciones

Buscar_Incognitas,

Formular_Ecuaciones

CalcularGL, si los grados de libertad son cero se llama al mtodo Resolver


y luego a Calcular_Props.

Buscar_Incognitas: Esta funcin sirve para identificar las propiedades de la


corriente cuyo valor es desconocido. Esos valores los debe ingresar el usuario
a travs del dilogo de configuracin de corriente, este tema se tratar ms
adelante con mayor detalle. La funcin Buscar_Incognitas primero reinicia la
lista de incgnitas y el diccionario de referencias (si tenan algo, se vacan),
luego considera el caudal, la temperatura, la presin y cada una de las
composiciones y revisa, uno por uno, sus valores con una estructura tryexcept. El bloque dentro del try intenta convertir el valor de la propiedad en
un nmero real, si tiene xito significa que el valor de esa propiedad es
conocido, no hace nada y pasa a la siguiente propiedad. Si no puede hacer lo
anterior, interpreta que el valor de esa propiedad es desconocido y se trata de
un smbolo algebraico, entonces ejecuta el bloque de sentencias despus de
except que agrega el valor simblico a la lista de incgnitas y al diccionario
ref agrega el par propiedad:valor simblico.

Formular_Ecuaciones: Este mtodo se encarga de generar automticamente


las ecuaciones asociadas a la corriente, en realidad se trata slo de una

=1 = 1 =1 1 = 0, donde zi representa la fraccin (molar o en

peso) de la especie i en la corriente. Para eso utiliza la funcin sum que


suma las fracciones de los compuestos,

luego le resta uno a la suma y

guarda el resultado en una variable local llamada ec. Despus utiliza una
estructura try-except para hacer una prueba. En el bloque try intenta
convertir ec en un nmero real, si esto tiene xito pueden suceder dos
cosas: que la ec sea cero en cuyo caso significa que todas las
composiciones son conocidas y verifican la ecuacin de restriccin, entonces
no hace nada; o que la suma sea un nmero real distinto de cero, en cuyo

Proyecto Integrador Scortechini

88
caso todas las fracciones son conocidas (sino no podra convertir a ec en
real) pero su suma es distinta de la unidad, lo que significa que los datos son
incompatibles y entonces muestra un mensaje en pantalla notificando el
problema. Si no puede convertir a ec en nmero real, entonces significa que
debe haber al menos una composicin desconocida y agrega ec a la lista de
ecuaciones ecs.

Calcular_GL: Sirve para calcular el nmero de grados de libertad de la


corriente que se obtiene como la diferencia entre la longitud (cantidad de
elementos) de la lista de incgnitas y la longitud de la lista de ecuaciones.

Resolver: Es un mtodo que sirve para intentar resolver la ecuacin de


restriccin de la corriente. Para ello, primero verifica que todas las
composiciones excepto una sean conocidas. Si ese es el caso se tiene una
ecuacin con una incgnita que puede resolverse. Entonces llama a la
funcin solve de la biblioteca Sympy de Python, le pasa como argumento
la ecuacin de restriccin y la instruccin que devuelva un diccionario
smbolo:valor como respuesta. Luego, le pasa al diccionario ref la clave del
diccionario respuesta, ref devuelve el nombre de la propiedad de la corriente
que est asociado con ese smbolo,

le asigna el valor calculado a ese

atributo. Posteriormente disminuye en uno el nmero de grados de libertad,


elimina la composicin calculada de la lista de incgnitas y tambin elimina la
ecuacin pues ya fue resuelta. Si existe ms de una composicin
desconocida no hace nada.

Calcular_Props: Esta funcin sirve para calcular el peso molecular medio, la


composicin alternativa, la temperatura de burbuja y de roco, evaluar el
estado de agregacin del sistema. Tambin calcula las propiedades
termodinmicas entalpa, volumen, entropa, etc. molares o especficas. Para
eso, crea un objeto de la clase SistemaTermodinamico. Le enva como
parmetros la temperatura, la presin, la composicin, la lista de compuestos,
la temperatura y presin de referencia, los modelos termodinmicos
seleccionados. Adems le pasa una lista con los nombres de las propiedades
que

desea

obtener

como

respuesta.

El

funcionamiento

del

objeto

SistemaTermodinamico se explic en el Captulo 4: Termodinmica.


Cuando se completan esos clculos los resultados se almacenan en las
variables apropiadas de la corriente.

Proyecto Integrador Scortechini

89

CalcularH1: Es una funcin que asiste a otra, externa a la clase Corriente,


encargada de realizar el balance de energa. Por razones de claridad se
pospone la explicacin de este mtodo hasta que se trate el balance de
energa en la seccin dedicada a la clase Mezclador, pues all se revela su
utilidad.

Cuando se selecciona la opcin Configurar del men pop-up el mtodo


onDialogar

crea

un

objeto

de

la

clase

DialogoCorriente.

La

clase

DialogoCorriente sirve para crear una ventana que le permita al usuario visualizar
la informacin conocida de esa corriente, si es que hay datos disponibles (o sea si
fueron ingresados previamente), modificarla, ingresar datos nuevos, realizar
clculos, etc. El DialogoCorriente recibe como parmetros: el objeto Proyecto, el
objeto Corriente al que representa y la base de datos de propiedades. Luego el
dialogo se muestra en pantalla.
La pantalla de configuracin de corriente est compuesta por once paneles, la
creacin de estos junto con los componentes que contienen, est codificada en el
mtodo __init__ de la clase DialogoCorriente. El primer panel contiene un texto
esttico que nos informa el propsito del dilogo (configurar la corriente). El segundo
panel contiene dos textos, el primero identifica la propiedad de la corriente (el
nombre) y el segundo muestra su valor (por ejemplo, F01). Los paneles tercero,
cuarto y quinto, contienen un texto esttico que identifica la propiedad de la
corriente, un control de texto que permite introducir o visualizar su valor y una lista
desplegable que muestra la unidad de esa propiedad, donde la propiedad es el
caudal, la temperatura y la presin respectivamente. El sexto panel tiene un texto
esttico a los efectos de informar que se usa para configurar la composicin y una
tabla que muestra la composicin de la corriente y tambin permite modificarla; cada
fila representa un compuesto y en la nica columna se muestra su fraccin molar o
en peso de acuerdo con lo elegido en la configuracin general del proceso. El
sptimo panel sirve para visualizar propiedades de la corriente como peso molecular
medio, composicin en masa si se trabaja con caudales molares y viceversa, punto
de burbuja y de roco, estado de agregacin, entalpa, entropa, energa libre,
interna, de Helmholtz, volumen molares. Estos valores pueden visualizarse cuando
la corriente est completamente resuelta. Los paneles octavo, noveno y dcimo
muestran textos estticos para visualizar las incgnitas, las ecuaciones y los grados

Proyecto Integrador Scortechini

90
de libertad asociados a la corriente respectivamente. El ltimo panel contiene tres
botones: Aceptar, Actualizar y Cancelar.
A continuacin se muestra una imagen de la pantalla con algunos datos cargados:

Figura 26. Dilogo de configuracin de corriente.


El botn Cancelar tiene asociado un mtodo, llamado onCancelar que cierra la
ventana del dilogo y destruye todos sus componentes visuales (mas no los objetos
Proyecto, Corriente y BaseDeDatos) sin recuperar ninguna informacin, por lo tanto
no hay cambios en los valores de las propiedades.

Proyecto Integrador Scortechini

91
El botn Aceptar tiene enlazado el mtodo onAceptar que llama a la funcin
onRecuperar , despus llama al mtodo Actualizar del objeto clase Corriente y
luego al mtodo onCancelar. La funcin onRecuperar se encarga de guardar los
cambios en las propiedades antes de actualizar la corriente. Para eso, tiene
diccionarios que relacionan los componentes del dilogo (que se ven en pantalla)
con los atributos del objeto Corriente (que no se ven directamente en pantalla) y
funciones intrnsecas para recuperar los datos ingresados o las opciones
seleccionadas. Estos datos se recuperan como cadenas de caracteres, el
equivalente a una palabra; en el caso de las unidades de las propiedades, se
almacenan en ese formato en un diccionario, del objeto clase Corriente, tipo
propiedad:unidad. Pero los valores de la temperatura, la presin, la composicin y el
caudal no deben almacenarse como cadenas de caracteres; si se trata de datos
(valores conocidos) se tienen que almacenar como nmeros reales, en cambio si su
valor es desconocido deben guardarse como un smbolo algebraico. Para hacer eso
posible se utiliza una estructura llamada excepcin que tiene el formato:
Try:
Bloque de sentencias
Except:
Bloque de sentencias alternativas
Las sentencias contenidas en el bloque try (intentar) tratan de convertir los valores
de cada propiedad ingresados por el usuario en un nmero real, si tienen xito
entonces quiere decir que se trata de valores conocidos y se guardan como nmeros
reales. Pero si se produce una falla se genera la excepcin y se ejecuta el bloque de
cdigo contenido dentro del except (excepto). Esto implica que es imposible
convertir el valor ingresado por el usuario (por ejemplo, x2) a nmero real entonces
se interpreta que se trata de una incgnita, se crea un smbolo algebraico que lo
represente a partir de esa cadena de caracteres (x2) y se guarda el valor como un
smbolo. Aqu hay una diferencia importante con los simuladores comerciales,
algunos como UNISIM, no permiten ingresar caracteres que no sean numricos en
las tablas de composicin y si se dejan espacios en blanco, en vez de interpretarlos
como valores desconocidos, ajusta automticamente a cero los valores respectivos;
otros interpretan los espacios en blanco como incgnitas, pero no permiten ingresar
Proyecto Integrador Scortechini

92
un smbolo que las represente, esta representacin es interna y esos programas
asignan un cdigo especial que identifican como incgnita pero que es ajeno al
usuario y ste no lo puede editar.
El botn Actualizar desencadena un evento de botn que llama al mtodo
OnActualizar. ste ejecuta la funcin onRecuperar, despus invoca al mtodo
Actualizar del objeto clase Corriente y activa el mtodo OnCargar para recargar
la informacin de la corriente. La diferencia con respecto al botn Aceptar es que
Actualizar no cierra la ventana del dilogo. OnCargar se encarga de actualizar los
valores de caudal, temperatura y presin de la corriente y llama al mtodo
SetCompo. La funcin SetCompo revisa el diccionario de composicin del objeto
clase Corriente, relaciona el nombre de cada compuesto con el nmero de fila en la
tabla de composicin que corresponde a esa especie, convierte el valor de la
fraccin molar (o en peso) a una cadena de caracteres y la asigna a la celda
apropiada en la tabla. Despus se invoca al mtodo SetEIGL que se encarga de
recuperar la lista de ecuaciones, la de incgnitas y el nmero de grados de libertad
de la corriente, los convierte en cadenas de caracteres y luego le asigna esa cadena
al valor de los textos estticos en los paneles que muestran esos datos.
Como resultado de los pasos anteriores la pantalla del dilogo se actualiza. A
continuacin se muestra un ejemplo de la parte inferior de la pantalla:

Figura 27. Generacin de incgnitas, ecuaciones y grados de libertad.


Si se agrega una composicin ms a la tabla, por ejemplo reemplazar wMetanol por
0.10, y se oprime el botn Actualizar sucede algo interesante:

Proyecto Integrador Scortechini

93

Figura 28. Resolucin de ecuaciones de corriente.


La corriente no est completamente resuelta pues el nmero de grados de libertad
no es cero, sin embargo el dato agregado es suficiente para determinar
completamente la composicin de la corriente. Los mtodos de revisin y resolucin
del objeto clase Corriente son capaces de detectar esta situacin. As, al actualizar,
estos nuevos resultados se muestran en pantalla y el sistema queda esperando
nueva informacin.
Adems, cuando se conocen temperatura, presin y composicin (molar o msica)
completa de la corriente es posible calcular el peso molecular medio, la composicin
alternativa (msica o molar), punto de burbuja, de roco y las propiedades
Proyecto Integrador Scortechini

94
termodinmicas intensivas de mezcla. Si ocurre este suceso se llama al mtodo
Calcular_Props que se encarga de calcular las propiedades mencionadas
anteriormente.
Para eso se utiliza la biblioteca de funciones termodinmicas. Se crea un objeto
clase SistemaTermodinamico al que se le enva como argumentos: el objeto
corriente, su temperatura, su presin, la composicin, el modelo de gases, el modelo
de lquidos, el tipo de caudales con que se trabaja. Luego este objeto se encarga de
realizar el clculo de todas las propiedades y devuelve sus resultados, los que se
pueden visualizar en el panel Propiedades del dialogo de corriente. Los detalles de
los clculos implicados se describieron en el captulo de Termodinmica.

Nodo Divisor

En este proyecto se supone para el nodo divisor que Q = W = 0, y que en el proceso


no interviene el balance de energa.

Figura 29. Representacin grfica de un nodo divisor.


Est implcito el hecho de que las temperaturas, presiones y composiciones de las
corrientes de entrada y de salida son idnticas. La cuenta del nmero total de
variables, del nmero total de restricciones y de grados de libertad es la siguiente:

Proyecto Integrador Scortechini

95
Tabla 6. Anlisis de Nodo Divisor
Variables

Ecuaciones

Tipo

Cantidad Tipo

Cantidad

Temperatura (T)

Balances de Materia

Presin (P)

Igualdad de composicin de F, P1 y P2 2(N-1)

Composicin (zi o i) 3N

TF=TP1=TP2

Caudal (F)

PF=PP2=PP3

Suma de fracciones igual a uno

Total

2N+6

Total

3N+9

Grados de Libertad

N+3

Slo se tiene en cuenta un balance de masa porque como


, = ,1 = ,2 1
Entonces los N balances de masa por componente:
, = 1 ,1 + 2 ,2 1

Se reducen al balance de masa global:


= 1 + 2
As, el nmero mximo de grados de libertad de un nodo divisor es N+3. Por
ejemplo, si se especifica el caudal de la alimentacin, su composicin, su
temperatura y presin, junto con uno de los caudales de salida se pueden resolver
todas las ecuaciones del nodo divisor (Himmelblau, 1997) (Sifuentes, 2000).
Cuando se selecciona el submen, o herramienta de, Nodo Divisor, el mtodo que
se activa crea un objeto de la clase Nodo_Divisor. sta contiene cinco mtodos:

__init__: Este mtodo recibe como atributos un objeto clase BaseDeDatos


con el que crea un atributo BD que es la base de datos del nodo divisor, y el
objeto clase Proyecto. Tambin crea los atributos Nombre, Entrada que
contiene el nombre de la corriente de alimentacin del nodo, Salida1 y
Salida2 que contienen los nombres de las corrientes de salida del nodo,
Proyecto Integrador Scortechini

96
Corrientes que es un diccionario tipo nombre:objeto corriente que relaciona
el nombre de las corrientes del nodo con los objetos clase Corrientes que las
representan, Propiedades es un diccionario que almacena el caudal, la
temperatura y la presin de las corrientes que interactan con el nodo;
Composicion que es un diccionario cuyas claves son los nombres de los
compuestos que interviene en el proceso y cuyos valores son diccionarios que
relacionan el nombre de las corrientes del nodo con la fraccin de cada
compuesto en esa corriente. ecs, inc y GL cumplen una funcin anloga
a los atributos homnimos de la clase Corriente, slo que aqu las
ecuaciones, incgnitas y grados de libertad se refieren al nodo divisor. ref es
un diccionario que se usa para relacionar los smbolos de las incgnitas con la
corriente a la que estn asociadas y la propiedad correspondiente.

Actualizar: Llama a los mtodos Buscar_Incognitas, Formular_Ecuaciones


y CalcularGL. Cuando hay cero grados de libertad se invoca a la funcin
Resolver.

El mtodo Buscar_Incognitas cumplen la misma funcin que el mtodo


homnimo de la clase Corriente pero aqu las propiedades se refieren al
nodo divisor.

Formular_Ecuaciones: Esta funcin sirve para generar automticamente la


ecuacin del balance de masa que se reduce a:
= 1 + 2
porque las composiciones de las corrientes son idnticas, al igual que las
temperaturas y las presiones. Estas condiciones tambin generan una serie
de ecuaciones:
, = ,1 1 1
,1 = ,2 1 1
= 1
= 2
= 1
= 2
Adems se importan las ecuaciones de restriccin de las corrientes del nodo y
se asegura que ninguna de las ecuaciones sea trivial, o sea que haya alguna
incgnita en ellas y que no sean identidades. Agrega las ecuaciones
generadas a la lista de ecuaciones del nodo divisor y, a partir de esta lista, se
Proyecto Integrador Scortechini

97
genera la cadena de caracteres a mostrar en el dialogo de configuracin del
equipo.

Los mtodos Calcular_GL y Resolver: Cumplen la misma funcin que los


mtodos homnimos de la clase Corriente pero aqu los grados de libertad
se refieren al nodo divisor y cuando estos se anulan se intenta resolver las
ecuaciones del equipo.

Cuando se selecciona la opcin Configurar del men emergente asociado a un


botn de nodo divisor, el mtodo onDialogar crea un objeto de la clase
DialogoNodoDivisor (que hereda de las superclases: wxFrame y Componentes), le
enva como parmetros al objeto clase Proyecto, al objeto clase Nodo_Divisor
que representa al equipo homnimo y la base de datos de propiedades, y lo muestra
en pantalla.
La clase DialogoNodoDivisor sirve para crear una ventana que le permita al usuario
visualizar la informacin conocida de ese nodo, si es que hay datos disponibles (o
sea si fueron ingresados previamente), modificarla, ingresar datos nuevos, realizar
clculos, etc.

Figura 30. Dilogo de configuracin de un nodo divisor.


Proyecto Integrador Scortechini

98
La pantalla est compuesta por once paneles, la creacin de estos junto con los
componentes que contienen, est codificada en el mtodo __init__ de la clase
DialogoNodoDivisor. El primer panel contiene un texto esttico que nos informa el
propsito del dilogo (configurar el nodo). El segundo panel contiene dos textos, uno
que nos indica el atributo que se muestra (nombre) y el otro es el nombre del equipo
(D001). Los paneles tercero, cuarto y quinto sirven para seleccionar las corrientes
del nodo; el texto esttico nos indica qu atributo estamos configurando y la lista
desplegable nos muestra un listado de corrientes del proceso que se pueden
seleccionar como entrada o salida. El sexto panel contiene una tabla que sirve para
visualizar, o modificar, las propiedades (caudal, temperatura y presin) de las
corrientes del equipo; las filas corresponden a las corrientes y las columnas a las
propiedades. El sptimo panel sirve para visualizar o modificar la composicin de las
corrientes desde una tabla, nuevamente las filas corresponden a las corrientes y las
columnas a los compuestos de la lista de compuestos del proceso. Los paneles
octavo, noveno y dcimo muestran las incgnitas, las ecuaciones y los grados de
libertad del nodo divisor. El ltimo panel contiene los botones de comando Aceptar,
Cargar, Actualizar y Cancelar.
A modo de ejemplo, se generaron tres corrientes: F01, F02 y F03 de modo tal
que ninguna de ellas se pueda resolver por s misma. Luego se cre un objeto
Nodo_Divisor. A continuacin se muestra su pantalla de configuracin con la
seleccin de las corrientes:

Figura 31. Seleccin de corrientes del nodo divisor.

Proyecto Integrador Scortechini

99
El paso siguiente es apretar el botn Cargar que genera un evento de botn y
llama al mtodo OnCargar. ste sirve para importar los correspondientes objetos
Corriente junto con sus datos. Para eso recupera la opcin seleccionada de cada
lista desplegable y la asigna al atributo correspondiente (Entrada, Salida1 o Salida2)
del nodo divisor, luego recupera del diccionario de Equipos del proceso los
correspondientes objetos Corriente y los agrega a una lista de Corrientes del
nodo. Despus, hace una revisin de las propiedades y la composicin de cada
corriente, recupera sus valores, los convierte en cadenas de caracteres y los ubica
en la celda apropiada de la tabla correspondiente que se muestra en pantalla.
Tambin

almacena

estos

datos

en

los

diccionarios

de

Propiedades

Composicin del objeto Nodo_Divisor. El resultado es el siguiente:

Figura 32. Carga de datos en dilogo de nodo divisor.


Cabe destacar como, despus de haber seleccionado las corrientes del nodo, los
nombres de las filas en las tablas cambiaron para mostrar los nombres de esas
corrientes, ahora que son conocidas.

Proyecto Integrador Scortechini

100
Los botones Aceptar, Actualizar y Cancelar, junto con sus mtodos asociados,
funcionan de manera anloga a sus homlogos de la clase Corriente pero operan
sobre el nodo divisor.
Veamos un ejemplo de lo que sucede si oprimimos el botn Actualizar:

Figura 33. Actualizacin de un nodo divisor.

Proyecto Integrador Scortechini

101
Si se introducen los siguientes datos: F3=595; T2=290K; P1=200000Pa y c2=0.06; y
luego se hace clic en Actualizar se obtiene el siguiente resultado:

Figura 34. Resolucin completa de un nodo divisor.


De este modo, ha quedado resuelto el equipo y todas sus corrientes.

Mezclador
Por razones prcticas se ha decidido combinar los equipos Mezclador de
Corrientes y Tanque Agitado Continuo en uno solo llamado, a partir de ahora,
Mezclador. Se representa as:

Figura 35. Representacin grfica de un mezclador.


Proyecto Integrador Scortechini

102
Entonces el recuento de variables y ecuaciones para el mezclador es:
Tabla 7. Anlisis de Mezclador
Variables

Ecuaciones

Tipo

Cantidad Tipo

Cantidad

Temperatura (T)

Balances de Materia

Presin (P)

Balances de Energa

Composicin (zi o i) 3N
Caudal (F)

Flujo de Calor (Q)

Suma de fracciones igual a uno 3

Flujo de Trabajo (W s) 1
Total

3N+11

Grados de Libertad

Total

N+4

2N+7

Entonces especificando el valor de 2N+7 variables se puede resolver completamente


el mezclador, las combinaciones pueden ser muy variadas (Himmelblau, 1997)
(Scenna, 1999).
Cuando se activa el submen, o herramienta de, Mezclador, se crea un objeto de la
clase Mezclador que tiene seis mtodos:

__init__: Este mtodo recibe como atributos un objeto clase BaseDeDatos


con el que crea un atributo BD que es la base de datos del mezclador y el
objeto clase Proyecto. Tambin crea los atributos Nombre, Entrada1 y
Entrada2 que contendrn los nombres de las corrientes de alimentacin del
mezclador, Salida que contendr el nombre de la corriente de salida del
mezclador cuando las seleccione el usuario; Corrientes, Propiedades,
Composicion, ecs, inc, ref y GL cumplen una funcin idntica a los
atributos homnimos de la clase Nodo_Divisor, slo que aqu se refieren al
mezclador.

Actualizar: Es un mtodo que lleva a cabo el proceso de actualizacin del


objeto mezclador. Para ello llama a las funciones Buscar_Incognitas,
Formular_Ecuaciones y CalcularGL. Si el sistema tiene cero grados de
libertad, entonces llama al mtodo Resolver.

Proyecto Integrador Scortechini

103

Buscar_Incognitas: Este mtodo revisa los valores de las propiedades de las


corrientes del mezclador y de los atributos calor y trabajo de este ltimo. Si
alguno de esos valores no es un nmero real, lo convierte en un smbolo
algebraico, lo agrega a la lista de incgnitas y crea una referencia
smbolo:atributo.

Formular_Ecuaciones: Esta funcin se encarga de plantear los balances de


masa por componente haciendo uso del lgebra Lineal. Por ejemplo para un
sistema con tres componentes y tres corrientes: F1, F2 y F3 (salida):
11
[21
31

12
22
32

13
1
1 11 + 2 12 3 13
0
23 ] [ 2 ] = [1 21 + 2 22 3 23 ] = [0]
33
3
1 31 + 2 32 3 33
0

Tambin plantea el balance de energa para un sistema en estado


estacionario.
[1

3 ] [1

3 ] + +

= 1 1 + 2 2 3 3 + + = + + = 0
Adems importa las ecuaciones de restriccin de las corrientes.
Para formular el balance de energa llama al mtodo CalcularH1 de cada
una de sus corrientes para intentar calcular su entalpa. El mtodo
CalcularH1 de una corriente calcula la entalpa de la misma a partir de la
siguiente frmula:

0
1 = [(
+
0 )

(1) +

=1

+ [ ( ) +

=1

() ]

() ]

Donde el subndice j identifica a la corriente, zi es la fraccin molar (o


msica, segn con qu tipo de caudales trabaje el usuario) del componente i
en la corriente j, H0 vale 0 a T0i, esta ltima es la temperatura de referencia
para la especie i, es la fraccin de vapor de la corriente, Tj es la
temperatura de la corriente j, CpLi y CpGi son las capacidades calorficas
molares (o especficas) del compuesto i como lquido y como vapor
respectivamente y Hvi es el calor de vaporizacin de la especie i. La
funcin toma los siguientes valores (Smith, 1997):
={

0,
1,

Y
Proyecto Integrador Scortechini

104
( )

0.38
= (0 ) (
)
( )
0

Si estn disponibles todos los valores de las variables necesarias para


evaluar las frmulas anteriores, entonces CalcularH1 devuelve un nmero
como resultado. En caso contrario devuelve un smbolo algebraico del tipo
HNombre de la corriente.
Luego examina los valores de Q y W s para estudiar si son datos conocidos o
expresiones simblicas. Si cualquiera de las propiedades anteriores es un
dato aparecer en el balance de energa como un nmero, sino aparecer
como un smbolo. Luego se intenta convertir la ecuacin de balance de
energa en nmero real, si tiene xito verifica que sea igual a cero entonces
no hace nada; pero si resulta distinto de cero significa que el balance es
inconsistente y se muestra un mensaje de error. En caso contrario significa
que existen incgnitas, entonces verifica que sea slo una e intenta resolverla
o agrega la ecuacin a la lista de ecuaciones a la espera de ms informacin.
Cuando se tiene una incgnita el balance de energa puede resolverse. Si la
incgnita es Q o W s entonces asigna el resultado obtenido a esos atributos
del mezclador. Sino, se trata de la temperatura de una corriente, despeja el
valor de H1j y estudia su signo. Si ste es negativo la corriente se encuentra
en estado lquido y ajusta a 0, sino se trata de un gas y vale 1. Despus
calcula la temperatura de burbuja de esa corriente, vuelve a plantear la
ecuacin de H1j (slo que ahora la nica incgnita es la temperatura T j), la
resuelve y guarda el resultado en el atributo T de la corriente
correspondiente. Finalmente elimina la ecuacin y la incgnita resuelta de las
respectivas listas y disminuye en uno el nmero de grados de libertad.

CalcularGL: Igual que en los equipos anteriores.

Resolver: Igual que en los equipos anteriores.

Cuando se selecciona la opcin Configurar del men emergente asociado a un


botn de mezclador, el mtodo onDialogar crea un objeto de la clase
DialogoMezclador (que hereda de las superclases: wxFrame y Componentes), le
enva como parmetros al objeto clase Proyecto, al objeto clase Mezclador que
representa al equipo homnimo y la base de datos de propiedades, y lo muestra en
pantalla.

Proyecto Integrador Scortechini

105
La clase DialogoMezclador sirve para crear una ventana que le permita al usuario
visualizar la informacin conocida de ese mezclador, si es que hay datos disponibles
(o sea si fueron ingresados previamente), modificarla, ingresar datos nuevos, realizar
clculos, etc.

Figura 36. Dilogo de configuracin de un mezclador.


La pantalla est compuesta por trece paneles, la creacin de stos junto con los
componentes que contienen, est codificada en el mtodo __init__ de la clase
DialogoMezclador. El primer panel contiene un texto esttico que nos informa el
propsito del dilogo (configurar el equipo). El segundo panel contiene dos textos,
uno que nos indica el atributo que se muestra (nombre) y el otro es el nombre del
equipo (M001). Los paneles tercero, cuarto y quinto sirven para seleccionar las

Proyecto Integrador Scortechini

106
corrientes del mezclador; el texto esttico nos indica qu atributo estamos
configurando y la lista desplegable nos muestra una lista de corrientes del proceso
que se pueden seleccionar como entrada o salida. Los paneles sexto y sptimo
sirven para ingresar el flujo de calor y la potencia (flujo de trabajo) en el eje junto con
sus unidades. El octavo panel contiene una tabla que sirve para visualizar o
modificar las propiedades (caudal, temperatura y presin) de las corrientes del
equipo; las filas de la tabla corresponden a las corrientes y las columnas a las
propiedades. El noveno panel sirve para visualizar o modificar la composicin de las
corrientes desde una tabla, nuevamente las filas corresponden a las corrientes y las
columnas a los compuestos de la lista de compuestos del proceso. Los paneles
dcimo, dcimo primero y dcimo segundo muestran las incgnitas, las ecuaciones y
los grados de libertad del mezclador. El ltimo panel contiene los botones de
comando Aceptar, Cargar, Actualizar y Cancelar.
A modo de ejemplo, se generaron tres corrientes: F01, F02 y F03 de modo tal
que ninguna de ellas se pueda resolver por s misma. Luego se cre un objeto
Mezclador. A continuacin se muestra la parte superior de la pantalla con la
seleccin de las corrientes:

Figura 37. Seleccin de corrientes del mezclador.


El paso siguiente es apretar el botn Cargar que genera un evento de botn y
llama al mtodo OnCargar. ste sirve para importar los correspondientes objetos
Corriente junto con sus datos. Para eso recupera la opcin seleccionada de cada
lista desplegable y la asigna al atributo correspondiente (Entrada1, Entrada2 o
Salida) del mezclador, luego recupera del diccionario de Equipos del proceso los
correspondientes objetos Corriente y los agrega a una lista de Corrientes del
mezclador. Despus, hace una revisin de las propiedades y la composicin de cada
corriente, recupera sus valores, los convierte en cadenas de caracteres y los ubica
en la celda apropiada de la tabla correspondiente que se muestra en pantalla.
Proyecto Integrador Scortechini

107
Tambin

almacena

estos

datos

en

los

diccionarios

de

Propiedades

Composicin del objeto Mezclador. El resultado es el siguiente:

Figura 38. Carga de datos en dilogo de mezclador.


Si a continuacin se oprime el botn Cancelar se invoca al mtodo OnCancelar
que cierra la ventana y destruye al objeto DialogoMezclador, pero no al objeto
Mezclador, adems la seleccin de las corrientes persiste.
En cambio cuando se hace clic sobre el botn Aceptar o Actualizar se llama a la
funcin Actualizar, del mezclador, que identifica las incgnitas, formula las
ecuaciones y calcula el nmero de grados de libertad. Si se tienen cero grados de
libertad, llama al mtodo Resolver para calcular todas las incgnitas del equipo.

Proyecto Integrador Scortechini

108
Despus se asignan los valores hallados a los respectivos atributos de las corrientes
y del mezclador.
Finalmente se invoca al mtodo OnCargar para recargar la informacin y que el
usuario pueda visualizarla en pantalla.
La diferencia es que Aceptar cierra el dilogo despus de completar los clculos,
mientras que Actualizar lo deja abierto para poder visualizar los resultados.
Veamos un ejemplo:

Figura 39. Actualizacin y resolucin de un mezclador.

Proyecto Integrador Scortechini

109

Flash

A un separador flash ingresa una corriente que se separa en otras dos que estn en
equilibrio, en este proyecto se supone que W=0 pero no Q. Se puede representar de
la siguiente manera:

Figura 40. Representacin grfica de un flash.


Los grados de libertad del flash se calculan as:
Tabla 8. Anlisis de Flash
Variables
Tipo

Ecuaciones
Cantidad Tipo

Cantidad

Temperatura (TA, TL, TV) 3

Balances de Materia

Presin (PA, PL, PV)

Balances de Energa

Composicin (zi o i)

3N

Relaciones de equilibrio

Caudal (F)

TL=TV (Equilibrio de fases)

Flujo de Calor (Q)

PL=PV (Equilibrio de fases)

Suma de fracciones igual a uno 3


Total
Grados de Libertad

3N+10

Total

2N+6

N+4

As, si se especifican los valores de N+4 variables independientes se puede resolver


el flash.
Por razones de simplicidad este equipo se model de forma modular secuencial, es
decir para poder resolver los clculos se debe especificar completamente la corriente
de entrada, es decir proveer N-1 composiciones, temperatura, presin y caudal de la
misma; definir el flujo de calor (en caso de operacin adiabtica, ingresar 0), y la
Proyecto Integrador Scortechini

110
temperatura o la presin de equilibrio de una corriente de salida. Luego el programa
calcula las salidas del flash.
Cuando se activa el submen, o herramienta de, Flash, el mtodo que asociado
crea un objeto de la clase Flash que tiene seis mtodos:

__init__: Este mtodo recibe como parmetros un objeto BaseDeDatos y


otro tipo

Proyecto. Luego crea los atributos Nombre, Alimentacin,

Vapor, Lquido, beta (fraccin de vapor) y Calor. Los campos


Corrientes, ecs, inc, ref y GL cumplen una funcin idntica a los
atributos homnimos de la clase Nodo_Divisor, pero aqu se refieren al flash.

Actualizar: Es un mtodo que lleva a cabo el proceso de actualizacin del


equipo flash. Lo hace llamando a las funciones Buscar_Incognitas,
Formular_Ecuaciones y CalcularGL. Cuando hay cero grados de libertad,
entonces llama al mtodo Resolver.

Buscar_Incognitas: Este mtodo revisa los valores de las propiedades de las


corrientes del flash y de los atributos beta y Calor de este ltimo. Si alguno
de esos valores no es un nmero real, lo convierte en un smbolo algebraico,
lo agrega a la lista de incgnitas y crea una referencia smbolo:atributo.

Formular_Ecuaciones: Esta funcin se encarga de plantear las ecuaciones


asociadas con el flash.
Los balances de masa por componente se formulan haciendo uso del lgebra
Lineal. Por ejemplo para un flash con dos componentes y tres corrientes: F, L
y V:
1
[
2

1
2

1
1 1 1
0
]

[
]
=
[
]=[ ]

2
2 2 2
0

Tambin se plantea un balance de energa:


+ = 0
Adems existen relaciones de equilibrio de fases para los componentes:
1 1 1 = 0
2 2 2 = 0

Proyecto Integrador Scortechini

111
donde =

= 1,2 y estos valores son calculados internamente

por el programa haciendo uso de las funciones de la biblioteca


termodinmica.
Ms relaciones de igualdad de temperatura y presin debido al equilibrio de
fases:
=
=
Finalmente las ecuaciones de restriccin de cada corriente.

= 1 1 3
=1

El subndice i hace referencia a las especies qumicas presentes en el


sistema (N) y el subndice j indica la corriente a la que se aplica la ecuacin
(3 corrientes).

CalcularGL: Se encarga de calcular en nmero de grados de libertad en base


a la cantidad de incgnitas y de ecuaciones.

Resolver: Esta funcin implementa los clculos flash descriptos al final del
apartado La clase SistemaTermodinamico de este captulo, para calcular
todas las propiedades desconocidas.

Cuando se selecciona la opcin Configurar del men emergente asociado a un


botn de flash, el mtodo onDialogar crea un objeto de la clase DialogoFlash (que
hereda de las superclases: wxFrame y Componentes), le enva como parmetros al
objeto clase Proyecto, al objeto clase Flash que representa al equipo homnimo y
la base de datos de propiedades, y lo muestra en pantalla.
La clase DialogoFlash sirve para crear una ventana que le permita al usuario
visualizar la informacin conocida de ese equipo, si es que hay datos disponibles (o
sea si fueron ingresados previamente), modificarla, ingresar datos nuevos, realizar
clculos, etc.
La pantalla est compuesta por trece paneles, la creacin de stos junto con los
componentes que contienen, est codificada en el mtodo __init__ de la clase
Proyecto Integrador Scortechini

112
DialogoFlash. El primer panel contiene un texto esttico que nos informa el
propsito del dilogo (configurar el equipo). El segundo panel contiene dos textos,
uno que nos indica el atributo que se muestra (nombre) y el otro es el nombre del
equipo (FL001). Los paneles tercero, cuarto y quinto sirven para seleccionar las
corrientes del flash; el texto esttico nos indica qu atributo estamos configurando y
la lista desplegable nos muestra una lista de corrientes del proceso que se pueden
seleccionar como entrada o salida. El sexto panel nos permite ingresar el flujo de
calor para el caso de que la alimentacin se caliente antes de entrar en el separador,
sin se debe ingresar 0 (operacin adiabtica). El sptimo mostrar la fraccin de
vapor una vez que sea calculada. El octavo panel contiene una tabla que sirve para
visualizar o modificar las propiedades (caudal, temperatura y presin) de las
corrientes del equipo. El noveno panel sirve para visualizar o modificar la
composicin de las corrientes desde una tabla. Los paneles dcimo, dcimo primero,
y dcimo segundo muestran las incgnitas, las ecuaciones y los grados de libertad
del equipo. El ltimo panel contiene los botones de comando Aceptar, Cargar,
Actualizar y Cancelar.
A modo de ejemplo, se generaron tres corrientes: A, L y V. Se completaron
todos los atributos de la alimentacin A, luego se cre un objeto Flash. A
continuacin se muestra su pantalla de configuracin con la seleccin de las
corrientes:

Figura 41. Dilogo de configuracin de flash.


Luego se debe apretar el botn Cargar que genera un evento de botn y llama al
mtodo OnCargar. ste sirve para importar los correspondientes objetos
Proyecto Integrador Scortechini

113
Corriente junto con sus datos. Para eso recupera la opcin seleccionada de cada
lista desplegable y la asigna al atributo correspondiente (Alimentacin, Lquido o
Vapor) del flash. Luego recupera del diccionario de Equipos del proceso los
correspondientes objetos Corriente y los agrega a una lista de Corrientes del
equipo. Despus, hace una revisin de las propiedades y la composicin de cada
corriente, recupera sus valores, los convierte en cadenas de caracteres y los ubica
en la tabla correspondiente que se muestra en pantalla. Tambin almacena estos
datos en los diccionarios de Propiedades y Composicin del objeto Flash.
Si a continuacin se oprime el botn Cancelar se invoca al mtodo OnCancelar
que cierra la ventana y destruye al objeto DialogoFlash, pero no al objeto Flash,
adems la seleccin de las corrientes persiste.
En cambio cuando se hace clic sobre el botn Aceptar o Actualizar se llama a la
funcin Actualizar, del flash, que identifica las incgnitas, formula las ecuaciones y
calcula el nmero de grados de libertad. Si se tienen cero grados de libertad, llama al
mtodo Resolver para calcular todas las incgnitas del equipo. Despus se asignan
los valores hallados a los respectivos atributos de las corrientes y del flash.
Finalmente se invoca al mtodo OnCargar para recargar la informacin y que el
usuario pueda visualizarla en pantalla.
La diferencia es que Aceptar cierra el dilogo despus de completar los clculos,
mientras que Actualizar lo deja abierto para poder visualizar los resultados.
A continuacin se muestra una pantalla del simulador y otras de UNISIM donde se
resuelve un problema y se presentan los resultados. Puede observarse que los
resultados concuerdan.

Proyecto Integrador Scortechini

114

Figura 42. Actualizacin y resolucin de flash.

Figura 43. Representacin de un flash en UNISIM.

Proyecto Integrador Scortechini

115

Figura 44. Resultados de clculo flash con UNISIM.

Intercambiador de Calor

Se representa el intercambiador de calor de la siguiente manera.

Figura 45. Representacin grfica de un intercambiador de calor.


En este proyecto se supone que W=0 para el intercambiador, pero no Q. Entonces el
anlisis de grados de libertad es el mostrado en la siguiente tabla.

Proyecto Integrador Scortechini

116
Tabla9: Anlisis de Intercambiador de Calor
Variables
Ecuaciones
Tipo
Cantidad Tipo
Temperatura (T)
4
Balances de Materia
Presin (P)
4
Balance de Energa
Composicin (zi o wi) 4N
Igualdad de composicin
Caudal (F)
4
Suma de fracciones igual a uno
Flujo de Calor (Q)
1
Definicin de Q
DTML
1
Definicin de DTML
Eficiencia
1
Definicin de E
A
1
Ley de Transferencia de calor
UD
1
Total
4N+17
Total
Grados de Libertad
2N+8

Cantidad
2
1
2N-2
4
1
1
1
1
2N+9

De modo que si se dan los valores de 2N+8 variables independientes es posible


resolver completamente el intercambiador.
Cuando se selecciona el submen, o herramienta de, Intercambiador de Calor, el
mtodo que asociado crea un objeto de la clase IntercambiadorDeCalor que tiene
los mtodos descriptos a continuacin:

__init__: Este mtodo recibe como parmetros un objeto BaseDeDatos y


otro tipo Proyecto. Luego crea los atributos Nombre, Ac (Alimentacin
Caliente), Af (Alimentacin Caliente), Pc (Producto Caliente), Pf
(Producto fro), Configuracin inicialmente vacos. Tambin U, Area,
DTML y Calor inicialmente con valores simblicos. Los campos
Corrientes, Propiedades, Composicin, ecs, inc, ref y GL cumplen
una funcin idntica a los atributos homnimos de la clase Nodo_Divisor,
pero aqu se refieren al intercambiador.

Actualizar: Es un mtodo que lleva a cabo el proceso de actualizacin del


equipo.

Para

eso

llama

los

mtodos

Buscar_Incognitas,

Formular_Ecuaciones y CalcularGL. Cuando hay cero grados de libertad,


entonces llama al mtodo Resolver.

Buscar_Incognitas: Este mtodo revisa los valores de las propiedades de las


corrientes del intercambiador y de los atributos U y Area de este ltimo. Si
alguno de esos valores no es un nmero real, lo convierte en un smbolo

Proyecto Integrador Scortechini

117
algebraico, lo agrega a la lista de incgnitas y crea una referencia
smbolo:atributo.

Formular_Ecuaciones: Esta funcin se encarga de plantear los balances de


masa de la siguiente manera:
=
=
Tambin se plantea un balance de energa:
+ = 0
Adems existen restricciones de igualdad de composicin:
, , = 0 1 1
, , = 0 1 1
donde zi es la composicin de la especie i en la corriente indicada.
Tambin las ecuaciones de restriccin de cada corriente.
Plantea una ecuacin de definicin de Q que relaciona el flujo de calor, que
ocurre dentro del equipo (subsistemas), con la variacin de entalpa de uno de
los fluidos. Por ejemplo:
= ( )
Otra ecuacin es la que define a la diferencia de temperatura media
logartmica:
(1 2 ) (2 1 )

,
[(1 2 )(2 1 )]
2 1
=
=
(21 )
(2 2 ) (1 1 )
,

{ [(2 2 )(1 1 )]

Proyecto Integrador Scortechini

118
La ecuacin de definicin de eficiencia es:
(2 1 )
(1 1 )
=

(2 1 )
(2 1 )
(1 2 )
{(1 2 )

, >
,

>

, <

Donde Cc y Cf son las capacidades de flujo trmico de las corrientes.


=
Adems los subndices f y c hacen referencia a las corrientes fras y
calientes. Mientras que 1 y 2 se refieren a entrada o alimentacin y salida o
producto respectivamente (Kern, 1999).
Finalmente la ley de transferencia de calor es:
=

CalcularGL: Se encarga de calcular en nmero de grados de libertad en base


a la cantidad de incgnitas y de ecuaciones.

Resolver: Este mtodo llama a la funcin solve de la librera SymPy a la


que le pasa la lista de ecuaciones a resolver y la orden de devolver un
diccionario smbolo:valor en caso de encontrar una solucin. Si encuentra una
solucin nica asigna los valores hallados a las propiedades correspondientes
de las corrientes o del intercambiador, sino no hace nada.

Cuando el usuario selecciona la opcin Configurar del men emergente asociado a


un botn de intercambiador de calor, la funcin onDialogar crea un objeto de la
clase DialogoIntercambiadorDeCalor, le enva como parmetros al objeto clase
Proyecto, al objeto clase IntercambiadorDeCalor que representa al equipo
homnimo y la base de datos de propiedades, y lo muestra en pantalla.
La clase DialogoIntercambiadorDeCalor sirve para crear una ventana que le
permita al usuario visualizar la informacin conocida de ese equipo, si es que hay
datos disponibles (o sea si fueron ingresados previamente), modificarla, ingresar
datos nuevos, realizar clculos, etc.
La pantalla est compuesta por dieciocho paneles, la creacin de stos junto con los
componentes que contienen, est codificada en el mtodo __init__ de la clase
DialogoIntercambiadorDeCalor. El primer panel muestra el ttulo del dilogo, el

Proyecto Integrador Scortechini

119
segundo el nombre del equipo. Los cuatro paneles siguientes sirven para
seleccionar las corrientes que interactan con el intercambiador. El sexto panel
permite seleccionar el modo de operacin (flujo paralelo o flujo contracorriente), el
sptimo permite ingresar o visualizar el coeficiente global de transferencia de calor,
el octavo est reservado para el rea de intercambio de calor, el noveno para la
diferencia de temperatura media logartmica y el dcimo permite visualizar el calor
intercambiado por las corriente cuando sea calculado por el sistema. El dcimo
primer panel muestra la eficiencia de intercambio calrico cuando pueda ser
calculado automticamente. Los restantes muestran propiedades, composicin,
incgnitas, ecuaciones, grados de libertad y botones de comando como en los
dems dilogos.
A continuacin se muestra una pantalla tpica de configuracin con los datos de las
corrientes cargados.

Figura 46. Configuracin de un intercambiador de calor.

Proyecto Integrador Scortechini

120
Cuando se hace clic en el botn Actualizar, se resuelven automticamente los
caudales faltantes, la temperatura desconocida, la diferencia de temperatura media
logartmica y la eficiencia.

Figura 47. Actualizacin de un intercambiador de calor.


Todava queda un grado de libertad. Si se especifica que el rea de intercambio
calrico es de 10m2 y se vuelve a actualizar, el equipo se resuelve completamente.

Proyecto Integrador Scortechini

121

Figura 48. Resolucin completa de un intercambiador de calor.

Mens Auxiliares

El resto de los mens del simulador permiten acceder a funciones complementarias


que nos permiten realizar consultas a la base de datos, elegir las herramientas que
deseamos ver y obtener ayuda. A continuacin se hace una breve descripcin de
ellos.

El men Herramientas

Este men agrupa a los submens: Consultar Biblioteca, Agregar Compuesto,


Editar Compuesto, Balance de Masa, Balance de Energa y Documentar.

Proyecto Integrador Scortechini

122

Figura 49. Men Herramientas.


Cuando se selecciona el submen Consultar Biblioteca se llama al mtodo
OnConsultarBiblioteca del mdulo Metodos. Esa funcin crea un dialogo que le
permite al usuario seleccionar compuestos presentes en la base de datos y luego
presenta una tabla que muestra las propiedades de esas especies que figuran en la
base de datos. Para ello construye un objetos de la case DialogoConsultaBiblioteca
que sirve para fabricar el dilogo y mostrarlo en pantalla.
La seleccin del submen Agregar Compuesto abre un dilogo que permite
incorporar un nuevo compuesto a la base de datos.
En cambio el submen Editar Compuesto le permite al usuario visualizar en
pantalla las propiedades de un compuesto qumico y modificar sus valores.
Los restantes submens de Herramientas no se programaron por falta de tiempo.

Proyecto Integrador Scortechini

123

Figura 50. Dilogo de Consulta a Biblioteca.

Proyecto Integrador Scortechini

124

Figura 51. Dilogo para agregar nuevo compuesto.

Figura 52. Dilogo para editar compuesto.

El Men Ver

Los submens que contiene son Barra de Herramientas y Barra de Estado.


Cuando se selecciona alguno de ellos el programa llama a una funcin que sirve
para cambiar el estado de visibilidad del elemento al que hacen alusin. Por defecto
la barra de herramientas y la de estado estn visibles, pero si el usuario necesita
Proyecto Integrador Scortechini

125
ms espacio en pantalla y desea ocultarlas entonces puede seleccionar estos
submens. Si en el futuro desea hacerlas visibles nuevamente solo debe ingresar al
men Ver y seleccionar la opcin correspondiente.

Figura 53. Opciones del men Ver.

El Men Ayuda

Este men posee dos submens: Acerca de los Autores y Manual de Usuario.
Cuando se selecciona el primero de ellos el mtodo OnAcerca crea un dilogo que
sirve para mostrar informacin, en este caso del autor de este proyecto, y lo
despliega en pantalla. Manual de Usuario llama a la funcin OnManual que le
ordena al sistema operativo que abra el archivo que contiene el manual de usuario
para proporcionar ayuda. Por razones de tiempo no se alcanz a desarrollar un
manual de usuario, pero ste se reemplaz con un archivo similar al captulo 5 de
este informe donde se explican los componentes del programa y a los Anexos que
contienen ejemplos de aplicacin, con la esperanza de orientar al usuario del
simulador.

Proyecto Integrador Scortechini

126

Figura 54. El men Ayuda.

Figura 55. Dilogo Acerca de los Autores.

Proyecto Integrador Scortechini

127

Bibliografa

Aspen Technology Inc. (2003). HYSYS Tutorial & Applications. Cambridge.


Geankoplis, C. J. (1998). Procesos de Transporte y Operaciones Unitarias (3
Edicin ed.). Mexico: CECSA.
Henley-Seader. (2000). Operaciones de Separacin por Etapas en Ingeniera
Qumica. Mxico D.F.: Editorial Revert S.A.
Himmelblau, D. M. (1997). Principios Bsicos y Clculos en Ingeniera Qumica.
Mxico D.F.: Prentice Hall.
HoneyWell. (2010). UNISIM Design. London.
Kern, D. Q. (1999). Procesos de Transferencia de Calor. Mxico D. F.: CECSA.
Scenna, N. J. (1999). Modelado, Simulacin y Optimizacin de Procesos Qumicos.
Sifuentes, M. (2000). Simulacin de Procesos en Ingeniera Qumicia. Mxico D.F.:
Plaza y Valds Editores.

Proyecto Integrador Scortechini

128

Captulo 6: Problemas y dificultades


Introduccin

Durante la ejecucin de este proyecto se encontraron algunos problemas y


dificultades que actuaron como restricciones. Algunos de ellos fueron resueltos,
otros se podran resolver pero no se ha encontrado una solucin satisfactoria y para
algunos otros no se conoce solucin. A continuacin se har una descripcin
detallada de estos inconvenientes.

Resolucin de ecuaciones

Originalmente se haba considerado la posibilidad de que el simulador fuera


orientado a ecuaciones. Como se explic en el primer captulo, en un producto de tal
naturaleza, se van generando ecuaciones en cada instancia del proceso (equipo u
operacin). Estas ecuaciones se van acumulando en una estructura de datos, por
ejemplo una lista general de ecuaciones o un diccionario que tenga como claves los
nombres de cada equipo y como valores una lista con las ecuaciones pertenecientes
a cada uno, que pertenezca a un objeto de nivel superior a todos los equipos, en
nuestro caso el candidato ideal para eso es el objeto clase Proyecto que
representa al proceso como un todo.
As, cada vez que se introduzca informacin o se realice alguna modificacin en
algn equipo, se debera actualizar la lista de ecuaciones y una lista de incgnitas
asociada. Una vez que se rena suficiente informacin acerca del proceso, ste
debera ser capaz de resolver todo el sistema de ecuaciones, o al menos parte de l.
Este enfoque permitira plantear los balances de materia y energa de modo general
e igual para todos los equipos, sin hacer distincin entre ellos ni hacer
consideraciones especiales lo cual simplificara mucho la tarea de programacin.
Cuando se intent implementar lo anterior, se hizo uso de la biblioteca Sympy de
Python. Esta librera contiene herramientas que permiten representar variables en
forma simblica, plantear ecuaciones, simplificarlas y resolver sistemas de

Proyecto Integrador Scortechini

129
ecuaciones no lineales que son el caso ms comn y, tambin, el ms difcil que se
presenta en los procesos en estado estacionario.
La funcin que se encarga de resolver sistemas de ecuaciones se llama solve y
recibe como primer argumento la lista de ecuaciones y como segundo argumento la
lista de incgnitas que debe tratar de despejar. Como respuesta devuelve un
diccionario incgnita:valor. Como mtodo de resolucin emplea principalmente el
mtodo de Newton-Raphson, pero tambin tiene programados otros algoritmos
numricos para casos especiales o para determinados tipos de problemas.
Lamentablemente no siempre se pudo resolver algunos tipos de ecuaciones
planteados, a veces ecuaciones simples como la ecuacin de Antoine o las
ecuaciones de equilibrio de fases cuando se cumple la ley de Raoult; en otros casos
ecuaciones ms complejas como aquellas que involucran coeficientes de actividad,
factores de compresibilidad o volmenes molares a partir de ecuaciones de estado.
Se observ que esta limitacin se presenta con alta frecuencia en casos de
ecuaciones que poseen ms de una incgnita, y con menor frecuencia, en
ecuaciones de una incgnita. En otros casos, el tiempo de resolucin se extenda de
manera inaceptable (30min a ms de 1h).
La causa de estos inconvenientes puede ser una limitacin en los algoritmos de
resolucin.
Como consecuencia de esto, se tuvo que cambiar el enfoque de simulacin desde
un simulador orientado a ecuaciones hacia uno hbrido, en el que se plantean
ecuaciones especficas para cada tipo de equipo. Para otros casos como los
clculos de punto de roco y de burbuja se tuvieron que programar algoritmos
particulares para esos problemas. Algo similar ocurri con los clculos de factores de
compresibilidad, coeficientes de fugacidad y de actividad. Adems del incremento
considerable de la cantidad del cdigo, tambin se produjo un notable incremento en
la complejidad del mismo, se tuvieron que agregar algoritmos de control y de
verificacin para asegurarse de que las soluciones tuvieran significado fsico (por
ejemplo temperaturas absolutas, volmenes molares positivos, factores de
compresibilidad y volmenes positivos y reales en vez de complejos, etc.).
Una ventaja derivada de esto fue un incremento en la eficiencia de resolucin. Por
ejemplo, en un mezclador, si cualesquiera dos de sus corrientes tienen la misma
Proyecto Integrador Scortechini

130
temperatura y la misma concentracin, y la temperatura de la tercera es
desconocida, sta debe ser igual a la temperatura conocida y las corrientes son
isotrmicas. Se puede llegar a la misma conclusin haciendo un balance de energa,
pero este procedimiento es demasiado complejo para un caso tan simple. En cambio
se cre una subrutina que compare los valores de las temperaturas conocidas, si se
encuentra dos iguales, entonces establece el valor de la temperatura faltante igual al
valor de las otras dos.
Otra ventaja fue un mayor grado de detalle en el modelado de las operaciones.
Como desventaja se perdi la visin global del proceso. Esto fue una limitacin
importante porque, en algunos casos, no se podan resolver todas las ecuaciones,
pero una consideracin integral hubiera permitido resolver unas cuntas proveyendo
informacin suficiente para avanzar en la resolucin de las restantes.
Una solucin alternativa hubiera sido el desarrollo de una nueva biblioteca de
mtodos numricos, sin embargo es una tarea de complejidad considerable que
queda fuera del alcance de este proyecto, por eso se descart esta posibilidad.

Niveles de iteracin

Al no aplicarse un enfoque global de todo el proceso, la resolucin de las ecuaciones


para ciertos tipos de procesos, como aquellos con derivacin (bypass) y reciclo,
requiere de varios niveles de iteracin. Por ejemplo, un nivel de iteracin que
resuelva clculos termodinmicos, otro nivel de iteracin que resuelva las
ecuaciones particulares de cada equipo y un nivel superior de iteracin que resuelva
las ecuaciones del proceso global. Los dos primeros niveles de iteracin pudieron
programarse, pero no se tuvo xito con el ltimo nivel del proceso global.
Los principales inconvenientes fueron el aumento drstico del tiempo de cmputo,
debido a la necesidad de iterar a nivel del proceso y tener que revisar todos los
equipos de ste, y la entrada en ciclos infinitos que ocurra porque los datos de los
equipos no eran totalmente compatibles. Una pequea perturbacin (variacin) en
los datos, hace que el mtodo numrico produzca soluciones oscilantes con amplitud
creciente, de modo que se presenta la inestabilidad y la divergencia. Mientras la

Proyecto Integrador Scortechini

131
computadora sea capaz de representar los nmeros resultantes contina iterando,
pero nunca encuentra la solucin, entonces se crea as el ciclo infinito del que no
sale nunca. Por lo que resulta necesario incorporar restricciones o elementos de
convergencia para subsanar este inconveniente. Por ejemplo, definir una tolerancia
del error y comparar los valores calculados con los de la iteracin anterior; si el valor
absoluto de la diferencia es menor que la tolerancia establecida entonces se da por
finalizado el proceso de clculo.
En el caso de bypass y de reciclo, sera factible crear un mdulo especial que
agrupe varios componentes (corrientes, nodo divisor, mezclador) que simule estos
casos especiales cuando el mezclador y el nodo divisor estn uno a continuacin del
otro. Tambin para esos casos, se presenta la necesidad de iterar a un nivel mayor y
se presenta el incremento del tiempo de cmputo y la aparicin de ciclos infinitos.

Clculo de temperaturas y balances de energa

La mayora de las propiedades de las soluciones son funciones de la temperatura.


Cuando la temperatura del sistema es desconocida, las ecuaciones que se plantean
se vuelven grandes (con muchos trminos), con expresiones racionales y
complicadas, lo que impide su resolucin directa y dificulta mucho su resolucin
numrica.
Esta situacin se solucion recurriendo a simplificaciones, por ejemplo considerar los
trminos ideales y descartar los trminos correctores, para obtener una solucin
aproximada. Luego al comparar los resultados obtenidos con aquellos de clculos
rigurosos se encontraron errores menores al 1% en los valores de entalpa y
menores al 5% en las temperaturas. Por lo tanto el problema se solucion
adecuadamente.

Eliminacin de equipos

Cuando se desea eliminar un equipo del proceso se debe seleccionar la opcin


Borrar del men contextual asociado a ese equipo. Este submen genera un

Proyecto Integrador Scortechini

132
evento de men que llama al mtodo OnBorrar, ste tiene xito al borrar el botn
imagen que representa al equipo en el diagrama de flujo, pero no logr conseguir la
eliminacin del diccionario de Equipos del objeto Proyecto que representa al
proceso.
La razn detrs de este problema pertenece al dominio informtico y no se ha
encontrado una solucin.

Reconstruccin del diagrama de flujo


Cuando se abre un proyecto existente, se carga el objeto de clase Proyecto desde
el archivo donde se guard el proceso. Sin embargo este objeto no es visible, ni
accesible, para el usuario. Entonces se procede a la reconstruccin del diagrama de
flujo. Para eso se invocan los mtodos descriptos en captulos anteriores para
generar los botones que representan a los equipos, slo que este caso se omite el
diagnstico del tipo de equipo, no se solicita el nombre ni se determinan las
coordenadas porque todo esto est almacenado dentro de cada objeto tipo equipo.
En la prctica se observa que los botones de todos los equipos de un mismo tipo
aparecen apilados en las mismas coordenadas, uno arriba del otro, forzando al
usuario a volver a acomodarlos en sus posiciones originales.
Se han ensayado soluciones para este problema pero todas fueron infructuosas y
generaron problemas mayores. Este problema tambin pertenece al campo de la
informtica

Conexin de los equipos

En los simuladores comerciales los conos de los equipos que estn conectados por
lneas rectas o quebradas para indicar el flujo del proceso. Si bien Python posee
toda una biblioteca de dibujo, no se sistematiz el dibujo de estas interconexiones
entre los equipos por falta de tiempo. Sin embargo esto es un detalle meramente
visual que no afecta los clculos.

Proyecto Integrador Scortechini

133

Captulo 7: Conclusiones
Los hechos relatados y las experiencias acumuladas durante la ejecucin de este
proyecto han permitido arribar a las siguientes conclusiones:

Fue posible crear un programa de computadora capaz de resolver los clculos


asociados a las operaciones unitarias de transferencia de calor y de masa.

Se tuvo xito al desarrollar una interface grfica de usuario para el programa.

El autor de este proyecto se enriqueci fruto del aprendizaje de la


programacin orientada a objetos y su aplicacin a la Ingeniera Qumica.

Se crearon exitosamente objetos informticos que representen corrientes de


proceso, nodos divisores, mezcladores, intercambiadores de calor y flashes.

La biblioteca Termodinmica que se desarroll alcanz un alto rendimiento en


el clculo de propiedades.

Se programaron eficientemente el balance de materia y el de energa para los


equipos modelados.

La interface grfica de usuario del programa simplifica y mejora la


comunicacin con el usuario.

La calidad de los clculos programados es comparable con la de los


simuladores comerciales.

El tiempo estimado para la ejecucin del proyecto se ha visto triplicado.

Se obtuvo un programa que sirve adecuadamente como plataforma para su


aplicacin a la mejora educativa.

Los resultados obtenidos pueden servir para el desarrollo de un producto


mejorado en el futuro.

El simulador creado es compatible con varios sistemas operativos gracias a


que est codificado utilizando software libre. Adems pueden extenderse sus
funcionalidades agregando nuevos mdulos que simulen otros equipos o tipos
de proceso.

Es necesario conocimiento y experiencia con mtodos de Anlisis Numrico


para poder comprender y mejorar las herramientas disponibles de resolucin
de ecuaciones, ajuste de datos o de funciones, etc. Esos mtodos no forman
parte del programa de la carrera en la actualidad.

Proyecto Integrador Scortechini

134

Para que el simulador funcione de forma ms efectiva y que puedan


completarse muchas otras utilidades deseables para este programa, se
requerir de un equipo multidisciplinario de profesionales.

La gestin y transmisin de la informacin entre objetos es una tarea crucial


para el buen funcionamiento del simulador. Lo anterior supone un trabajo de
programacin importante y complejo, que si no hace correctamente o si es
mal interpretado, da origen a errores, prdida de datos, genera trabajo
adicional, alarga los tiempos.

No fue posible lograr la propagacin de la informacin entre los objetos que


simulan equipos de proceso cuando stos no estn directamente conectados.

A medida que aumenta la complejidad del proceso simulado se incrementa de


forma exponencial la sensibilidad de los sistemas de ecuaciones generados.
Muchas veces esto compromete la capacidad para llegar a una solucin. Esta
dificultad es un problema de matemtica aplicada para el cual no existe una
solucin universal, sino que depende de tcnicas avanzadas que varan con
el caso de estudio y quedan fuera del alcance de este proyecto.

Proyecto Integrador Scortechini

135

Anexo A: Clculos Termodinmicos


Sistemas Ideales
Mezclas de gases ideales

Ejemplo 1: Una mezcla equimolar de gases ideales compuesta por metil etil cetona y
tolueno se encuentra a 50C y 25kPa. Estimar las propiedades termodinmicas H, V,
S, G, U y A para la mezcla.
Primero se crea un objeto BaseDeDatos y luego un objeto Proyecto.
BDD = BaseDeDatos('BDD.xls')#Crea la Base de Datos
pro0 = Proyecto(BDD)#Crea el objeto Proyecto
A continuacin se hace la configuracin del sistema:
pro0.Sistema_Unidades = u'Sistema Internacional'
pro0.Lista_Compuestos = [u'Metil Etil cetona', u'Tolueno']
pro0.Tipo_Caudal = u'Molares'
pro0.Modelo_Liquido = u'Ideal'
pro0.Modelo_Gases = u'Ideal'
pro0.Nombre = 'pro1'
Despus se establecen las condiciones de temperatura, presin y composicin:
T = 323.15#K
P = 25000.0#Pa
z = {u'Metil Etil cetona':0.50, u'Tolueno':0.50}
Finalmente se arma una lista para indicar qu propiedades se desean obtener y se
crea un

objeto de la clase Ideal al que se le manda esta informacin como

parmetro.
claves01 = [('Hiid', 'Hiid'), ('Hid', 'Hid'), ('Vid', 'Vid'), ('Uiid', 'Uiid'), ('Uid', 'Uid'),
('Siid', 'Siid'), ('Sid', 'Sid'), ('Giid', 'Giid'), ('Gid', 'Gid'), ('Aiid', 'Aiid'),
Proyecto Integrador Scortechini

136
('Aid', 'Aid')]
ideal1 = Ideal(pro0, T, P, sorted(z), [z[i] for i in sorted(z)], u"Gas", BDD, claves01)
La informacin de respuesta es:
Sistema [u'Metil Etil cetona', u'Tolueno']
Hiid= [ 27922.63 25643.13]
Hid= 26782.88
Vid= 0.107466764
Uiid= [ 25235.96 22956.46]
Uid= 24096.21
Siid= [ 90.37015358 76.76191955]
Sid= 89.33
Giid= [-1280.49 837.52]
Gid= -2084.11
Aiid= [-3967.16 -1849.15]
Aid= -4770.78

Las variables con el subndice i son listas que muestran las propiedades de las
especies individuales, en el orden en que aparecen en la lista Sistema. Las dems
variables tienen un nico valor numrico que es la propiedad de la mezcla. El
subndice id sirve para indicar que el sistema se comporta idealmente. Todos los
resultados estn en unidades del Sistema Internacional.
La solucin ideal

Ejemplo 2: Suponiendo que el sistema 2-propanol/agua conforme una solucin ideal


30% molar de 2-propanol a 293K y 10000Pa. Calcular H, V, S, U, G y A.
Nuevamente se comienza creando un proyecto, se lo configura y despus se arma
un objeto tipo Ideal al que se le pasan las especificaciones del problema.
pro1 = Proyecto(BDD)#Crea el objeto Proyecto
Proyecto Integrador Scortechini

137
#Configuracin General
pro1.Sistema_Unidades = u'Sistema Internacional'
pro1.Lista_Compuestos = [u'Isopropanol', u'Agua']
pro1.Tipo_Caudal = u'Molares'
pro1.Modelo_Liquido = u'Ideal'
pro1.Modelo_Gases = u'Ideal'
pro1.Nombre = 'pro1'
#Especificacin de T, P y composicin
T = 293.0#K
P = 100000.0#Pa
z = {u'Isopropanol':0.30, u'Agua':0.70}
#SOLUCIN IDEAL
#Ideal-Ideal
Ideal2 = Ideal(pro1, T, P, sorted(z), [z[i] for i in sorted(z)], u"Lquido Subenfriado",
BDD, claves01)
La respuesta obtenida es:
Sistema: [u'Isopropanol', u'Agua']
Hiid= [ -6051.38 -11036.01]
Hid= -7546.77
Vid= 3.55731761232e-05
Uiid= [ -6053.19 -11043.66]
Uid= -7550.33
Siid= [-18.14 -33.89]
Sid= -17.79
Giid= [ -736.36 -1106.24]
Gid= -2334.3
Aiid= [ -738.17 -1113.89]
Aid= -2337.86

Proyecto Integrador Scortechini

138

Sistemas no ideales
Propiedades residuales
Ecuacin del Virial

Ejemplo 3: Consideremos nuevamente la mezcla equimolar de metil etil cetona y


tolueno a 50 y 25kPa. Calculemos ahora las propiedades residuales de la mezcla y
de sus componentes.
Se repiten los pasos previos de configuracin del sistema:
pro2 = Proyecto(BDD)
pro2.Sistema_Unidades = u'Sistema Internacional'
pro2.Lista_Compuestos = [u'Metil Etil cetona', u'Tolueno']
pro2.Tipo_Caudal = u'Molares'
pro2.Modelo_Liquido = u'Ideal'
pro2.Modelo_Gases = u'Virial'
pro2.Nombre = 'pro2'
#Especificacin de T, P y composicin
T = 323.15#K
P = 25000.0#Pa
z = {u'Metil Etil cetona':0.50, u'Tolueno':0.50}
claves2 = [('HiR', 'HiR'), ('HR', 'HR'), ('VR', 'VR'), ('UiR', 'UiR'), ('UR', 'UR'),
('SiR', 'SiR'), ('SR', 'SR'), ('GiR', 'GiR'), ('GR', 'GR'), ('AiR', 'AiR'), ('AR', 'AR')]
Luego se crea un objeto Virial:
virial1 = Virial(pro2, T, P, sorted(z), [z[i] for i in sorted(z)], u"Gas", BDD, claves2)
Los resultados devueltos son:
Sistema: [u'Metil Etil cetona', u'Tolueno']
HiR= [-128.42 -170.07]
HR= -149.11
VR= -0.00161839770276
UiR= [ -93.76 -123.59]
Proyecto Integrador Scortechini

139
UR= -108.54
SiR= [-0.2902 -0.3824]
SR= -0.3359
GiR= [-34.66 -46.48]
GR= -40.3
AiR= [ 0. 0.]
AR= 0.0
Algunos resultados obtenidos para la mezcla en Introduccin a la Termodinmica en
Ingeniera Qumica de Smith, Van Ness y Abbot, 5 Edicin, captulo 13, pgina 540
son: HR= -149.0J/mol, SR= -0.3359J/(molK) y V= 0.10585m3/mol y como Vgi=
0.10747m3/mol entonces VR= -0.0162m3/mol. Todos los resultados concuerdan muy
bien.

Ecuaciones cbicas de estado

Ejemplo 4: Ahora se resuelve el problema anterior utilizando las ecuaciones de


estado de Redlich-Kwong, Soave-Redlich-Kwong y de Peng-Robinson. Slo se
presentan y se comparan los valores de las propiedades de la mezcla obtenidos con
el simulador.
Tabla 10. Comparacin de propiedades residuales entre ecuaciones de
estado
Ecuacin HR(J/mol) VR(m3/mol)

SR(J/molK) UR(J/mol) GR(J/mol) AR(J/mol)

RK

-68.08

-0.001028

-0.1315

-42.37

-25.59

0.1102

SRK

-96.57

-0.001179

-0.2081

-67.10

-29.32

0.1451

PR

-98.87

-0.001757

-0.2127

-54.95

-30.15

13.7746

Los resultados obtenidos por distintas ecuaciones de estado son consistentes entre
s y con el modelo Virial. Las diferencias observadas entre ellos son inherentes a
cada modelo.

Proyecto Integrador Scortechini

140
Coeficiente de Actividad

Ejemplo 5: Para el sistema Acetona/Cloroformo/Metanol a 15C y 250kPa calcular


los coeficientes de actividad. La composicin molar es 15% Acetona, 25%
Cloroformo y 60% Metanol.
Para resolver este problema se aplicarn los modelos de Margules, de Van Laar y de
Wilson. Primero debe crearse un objeto clase proyecto, luego se debe configurar
cambiando el modelo de lquido en cada caso. Finalmente se crean los respectivos
objetos de la clase Margules, Van Laar o Wilson:
mar1 = Margules(s1, sci.array([z[i] for i in sorted(z)]), s1.BD['Actividad'])
vLr1 = VanLaar(s2, sci.array([z[i] for i in sorted(z)]), s2.BD['Actividad'])
wil = Wilson(s3, s3.BD['Actividad'], sci.array([z[i] for i in sorted(z)]), T,
sci.array([BDD.PM[i]/BDD.d[i] for i in sorted(z)]))
Los resultados devueltos por estos objetos se muestran a continuacin:
MARGULES
Sistema: ['Acetona', 'Cloroformo', 'Metanol']
Matriz de coeficientes:
[[ 0.

-0.8404 0.6184]

[-0.561 0.

0.832 ]

[ 0.5788 1.7365 0.

]]

lnGamma = [-0.0904 0.3513 0.0269]


Gamma = [ 0.9136 1.4209 1.0273]

VAN LAAR
Sistema: ['Acetona', 'Cloroformo', 'Metanol']
Matriz de coeficientes:
[[ 0.

-0.8643 0.6184]

[-0.5899 0.

0.9356]

[ 0.5797 1.886 0.

]]

Proyecto Integrador Scortechini

141
lnGamma = [ 0.1411 0.4707 0.1099]
Gamma = [ 1.1515 1.6011 1.1162]
WILSON
Sistema: ['Acetona', 'Cloroformo', 'Metanol']
Matriz de coeficientes:
[[

0.

485.8339464 -478.6692648]

[-2120.6683496

0.

-1513.7477696]

[ 2281.5109328 7087.7968344

0.

]]

lnGamma = [ 0.0034 0.38402 0.15664]


Gamma = [ 1.0034 1.4682 1.1696]
Donde las filas y columnas de las matrices de coeficientes representan coeficientes
de interaccin binaria entre compuestos y se corresponden con los compuestos de
forma exacta a como se han enumerado en la lista Sistema(1: Acetona, 2:
Cloroformo y 3: Metanol). El mismo orden se mantiene para las listas lnGamma y
Gamma que muestran el logaritmo natural del coeficiente de actividad y ese
coeficiente para cada compuesto de la mezcla.

Proyecto Integrador Scortechini

142

Anexo B: Clculos de Corriente


Ejemplo 6: Una torre de fraccionamiento de petrleo obtiene 4000kmol/h de un
combustible con composicin molar 80% de n-octano, 15% de n-heptano y el resto
n-hexano. El producto se enfra hasta 300K a una presin de 120kPa. Se desea
conocer la composicin en masa, el peso molecular medio, el punto de burbuja, el
punto de roco, el estado de agregacin y las propiedades termodinmicas: H, S, G,
V, U y A molares de la mezcla. Utilizar el modelo del gas ideal para los gases y la
solucin ideal para los lquidos.
Primero se debe abrir el simulador. Luego se debe hacer clic en la herramienta de
Configuracin General de la barra de herramientas o en el men Configuracin
seleccionar el submen Configuracin General. Se abrir entonces un dilogo, all
se deben seleccionar las opciones: Sistema Internacional en Sistema de Unidades;
n-Heptano, n-Hexano y n-Octano en Lista de compuestos; Molares en Tipo de
Caudal; Ideal en Modelo para Gases y Modelo para Lquidos. La pantalla debe verse
as:

Figura 56. Configuracin general para el Ejemplo 6.


Debe hacerse clic en el botn Aceptar.
Proyecto Integrador Scortechini

143
El prximo paso es crear un objeto Corriente haciendo clic sobre la herramienta con
forma de flecha o seleccionando la opcin Corriente en el men Insertar. Se abrir
un dilogo que permite nombrar a la nueva corriente, ingresar un nombre, por
ejemplo F35, y hacer clic en Aceptar. Entonces aparecer un cono con forma de
flecha azul sobre el rea de diseo. Al hacer clic con el botn derecho del mouse
aparecer un men emergente cerca del cono. Cuando se selecciona la opcin
Configurar se abre un dilogo de configuracin de corriente.

Figura 57. Dilogo de configuracin de corriente del Ejemplo 6.


Luego se debe escribir 4000 y seleccionar la opcin kmol/h en Caudal; 300 y K en
Temperatura; 120000 y Pa en Presin; e introducir 0.15 y 0.80 en la tabla de
composicin para n-heptano y n-octano respectivamente (el sistema calcular la
composicin restante).

Figura 58. Completando los datos de la corriente.


Proyecto Integrador Scortechini

144
A continuacin se debe hacer clic en el botn Actualizar y con la informacin provista
el programa resolver la corriente.

Figura 59. Corriente del Ejemplo 6 resuelta.


Ejemplo 7: Una mezcla 50% de agua, 30% de metanol y el resto de acetona se
encuentra a 318K y 150000Pa. La composicin se expresa en porcentaje en masa.
Se desea conocer el peso molecular medio de la solucin, la composicin molar, el
punto de burbuja, el de roco, el estado de agregacin y las propiedades
termodinmicas: entalpa, entropa, energa libre de Gibbs, volumen, energa interna
y energa de Helmholtz todas molares. Utilizar el modelo Virial para representar
gases y la ecuacin de Wilson para modelar lquidos.

Proyecto Integrador Scortechini

145
Los pasos preliminares son los mismos que en ejemplo 6. Slo que deben
seleccionarse Acetona, Agua y Metanol como componentes; Virial en Modelo para
Gases y Wilson en Modelo para Lquidos. Luego se introducen los datos del
problema en el dilogo de configuracin de corriente y al hacer clic en Actualizar se
obtienen los resultados. Como el caudal es desconocido se debe introducir un
smbolo en su lugar, por ejemplo Alim.

Figura 60. Propiedades de la corriente del Ejemplo 7.

Proyecto Integrador Scortechini

146

Anexo C: Clculos de Nodo Divisor


Ejemplo 8: Se desea dividir una corriente A de 350mol/h compuesta por Etanol y
Agua a una presin de 120kPa. Una de las corrientes (B) de producto tiene un
caudal de 218mol/h, la otra (C) se encuentra a 340K y est compuesta 30% por
Etanol. Determinar completamente las propiedades de presin y temperatura de
todas las corrientes, sus caudales y composiciones.
Primero se deben crear las corrientes y cargar la informacin conocida como se
ilustr en el Anexo B. Luego hay que crear un nodo divisor seleccionando el
submen Nodo Divisor del men Insertar o la herramienta con forma triangular
roja. Despus de nombrar el nuevo equipo y hacer clic en la opcin Configurar del
men contextual se abrir el dilogo de configuracin del nodo divisor.

Figura 61. Dilogo de configuracin de nodo divisor para el Ejemplo 8.


Despus se debe seleccionar A, B y C como Entrada, Salida 1 y Salida 2
respectivamente; y presionar el botn cargar.

Proyecto Integrador Scortechini

147

Figura 62. Carga de datos para el Ejemplo 8.


A continuacin se debe presionar el botn Actualizar para intentar resolver el
problema o visualizar las incgnitas restantes y saber qu datos hay que ingresar.

Figura 63. Nodo divisor y corrientes del Ejemplo 8 resueltos.

Proyecto Integrador Scortechini

148

Anexo D: Clculos de Mezclador


Ejemplo 9: Se tiene una corriente de 2300kg/h constituida 60% de Etileno, 30% de
Agua y el resto Dixido de Carbono a 500K. Otra corriente se compone en un 50%
de Dixido de Azufre y 50% de Monxido de Carbono a 500kPa. Si estas corrientes
se mezclan para dar 5800kg/h de producto a 425K, encontrar el caudal de la
segunda alimentacin y su temperatura, as como la composicin de la corriente de
salida. Utilizar la ecuacin de Soave-Redlich-Kwong como modelo de gas.
Primero se crean objeto corriente y se cargan los datos conocidos. Luego se agrega
un mezclador haciendo clic en la herramienta de mezclador (tringulo verde) o el
men correspondiente y se abre el dilogo de configuracin.

Figura 64. Dilogo de configuracin de mezclador para el Ejemplo 9.


Despus de seleccionar las corrientes, cargar los datos y actualizar el mezclador se
obtiene.
Proyecto Integrador Scortechini

149

Figura 65. Resultados del Ejemplo 9.

Proyecto Integrador Scortechini

150

Proyecto Integrador Scortechini

Você também pode gostar