Escolar Documentos
Profissional Documentos
Cultura Documentos
por
Crdoba
2015
Tribunal Evaluador
Nombre
Nombre
Nombre
i
DEDICATORIA
Dedico este trabajo a mis padres quienes con esfuerzo, sacrificio y mucho amor me
han guiado durante toda mi vida.
ii
AGRADECIMIENTOS
iii
NDICE GENERAL
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
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
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
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
23
24
26
28
60
67
68
73
73
74
74
75
76
77
78
78
79
80
80
82
82
84
84
85
90
92
93
94
97
98
99
100
ix
Figura 34. Resolucin completa de un nodo divisor
101
101
105
106
107
108
109
112
114
114
115
115
119
120
121
122
123
124
124
125
126
126
142
143
143
144
145
146
147
147
148
149
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
43
85
95
102
109
116
139
xi
RESUMEN
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:
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.
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
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).
6
Simulacin cualitativa y cuantitativa
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
8
Simuladores Globales u orientados a ecuaciones
9
convenientemente (Sifuentes, 2000). Las principales caractersticas (virtudes y
defectos histricamente remarcados) se resumen en la Tabla 1.1.
10
Simuladores Secuenciales-Modulares
Modulares
Clculos fisicoqumicos.
Mdulos en s (ej. flash, columna, etc.).
Variables de iteracin (reciclos).
Optimizacin
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,
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.
13
Simuladores Hbridos
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,
15
ser
construidos
especficamente
con
paquetes
de
fluidos,
16
Poderosas
capacidades
de
grfico:
curvas
de
destilacin/absorcin,
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)
17
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).
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
19
Bibliografa
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
20
Captulo 2: Objetivos
Objetivos Generales
1.
2.
Objetivos Especficos
1.
2.
3.
4.
5.
6.
7.
8.
9.
21
Captulo 3: Programacin
Introduccin
22
Definicin de objeto
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:
24
Definicin de Mensaje
2.
25
3.
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:
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.
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.
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
28
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
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
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
31
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
33
Captulo 4: Termodinmica
Introduccin
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.
()
()
()
() = [
] + [
] + [
]
,
,
,,
=1
35
Para el caso particular de la energa de Gibbs y un sistema cerrado, se obtiene la
relacin fundamental entre propiedades termodinmicas:
()
()
()
() = [
] + [
] + [
]
,
,
,,
=1
() = () () +
=1
()
]
,,
36
Luego:
() = [ ] + [ ] +
,
,
=1
( + )
+ = [ ] + [ ] +
,
,
=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
+
=
=1
=1
= [
=1
] + [ ]
,
,
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.
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
=
= ln( )
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
40
Propiedades Residuales de las Sustancias puras
( )
= () ( )
= () + ()
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( ) = () + ( )
(,)
(,)
= () + ( )
=1
=1
41
= = ( )
Entonces:
= ln
ln = ( 1)
0
( = )
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+
42
0 = 0.083
0.422
1.6
1 = 0.139
0.172
4.2
+ 1
=(
)
=
=
= 1
0
= [
] = (
)
,
=
=[
] =
,
Donde:
0
1
= (
+
)
0 0.6752
=
2.6
1 0.7224
=
5.2
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:
=
()
( ) ( + ) ( + )
( ) ( )2
(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
( + ) ( + )
= + ( + ) ( + ) (
1+
)
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:
=
()
( )
=
1
+
(
)
Luego se pueden calcular todas las propiedades residuales de una especie pura:
= 1 + [
1]
=[
1]
= ( 1) +
1
=
45
Propiedades Residuales de las Mezclas
= = () + ( )
Restando las dos ltimas ecuaciones se obtiene la energa de Gibbs molar parcial
residual de la especie i:
= = (
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:
= ( )
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
(
)=
=1
Reemplazando
por ( ):
(
)=
+ ( )
2
=1
=[
]
( )
= [
]
( )
( )
= [
] [
]
( )
= [
] ( )
,
Aplicando ahora el principio de actividad podemos calcular todas las propiedades
residuales de la mezcla:
47
=1
=1
=
= ( )
=1
=1
( )
=
= [
]
=1
=1
( )
=
= [
]
( )
( )
= (
) = [
] [
]
,
=1
=1
=1
=1
=1
=1
( )
= (
) = [
] ( )
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
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:
=
=
=1 =1
Donde los segundos coeficientes Viriales cruzados, Bij, estn dados por:
=
0
1
((
+ (
)
)
)
=1 =1
Donde:
0
()
()
=
(
+
)
49
Entonces, las propiedades residuales de la mezcla son:
= ( )
1
=
[ + (2 )]
2
=1 =1
Donde:
= 2
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
50
=
=1
= 2 (1 )
=1
=
= (
( 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
=
( )
=
=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).
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
53
(
)=
+
2
=1
= [
]
=[
]
= [
] [
]
,
,
= [
]
,
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
= (
) = [
]
54
Ecuacin de Margules
= [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
=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):
= 2=
Luego:
2
(1 )
=1
=1 ( )
= (
| =[
] 2[
]
,
1
=1 + (1 )
=1
56
Ecuacin de Wilson
=1
=1
= 1 [ ] [
]
=1
Donde los ij son los coeficientes de Wilson que son una funcin exponencial de la
temperatura:
=
( )
2
Entonces la entalpa molar parcial en exceso de la especie k se calcula con la
siguiente frmula:
=1 ( )
=1 ( )
= (
| =[
] + [
]
2
,
=1
( )
=1
=1
57
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:
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.
59
Bibliografa
60
La clase Pantalla
61
Las superclases de Pantalla son:
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).
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.
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.
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:
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.
__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
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:
los
atributos:
Sistema_Unidades,
Tipo_Caudal,
Modelo_Gases,
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
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):
67
Leer P, {xi}, constantes. Ajustar todas las i=1.
Calcular =
=1
sat
=1( )( )
Evaluar {Pisat}.
Calcular {yi} con =
No
Es T<?
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.
().
Es cada i <?
No
Recalcular
Pjsat
y Troco.
Es T<?
No
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:
=
70
Entonces aplicando la definicin de Ki al balance de masa resulta:
=
1 + ( 1)
1 + ( 1)
=
=1
=
=1
1=0
1 + ( 1)
1=0
1 + ( 1)
= =
=1
( 1)
=0
1 + ( 1)
( 1)2
=
[1 + ( 1)]2
=1
+ ( ) ( 1 ) = 0 = 1
()
( )
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:
=
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.
73
74
75
76
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.
78
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.
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.
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.
82
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.
84
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.
Ecuaciones
Tipo
Cantidad Tipo
Temperatura (T)
Presin (P)
Cantidad
Composiciones (zi o i) N
Caudal (F)
Total
N+3
Grados de Libertad
Total
N+2
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
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.
las
funciones
Buscar_Incognitas,
Formular_Ecuaciones
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
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.
desea
obtener
como
respuesta.
El
funcionamiento
del
objeto
89
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
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:
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:
93
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
95
Tabla 6. Anlisis de Nodo Divisor
Variables
Ecuaciones
Tipo
Cantidad Tipo
Cantidad
Temperatura (T)
Balances de Materia
Presin (P)
Composicin (zi o i) 3N
TF=TP1=TP2
Caudal (F)
PF=PP2=PP3
Total
2N+6
Total
3N+9
Grados de Libertad
N+3
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.
97
genera la cadena de caracteres a mostrar en el dialogo de configuracin del
equipo.
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:
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
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:
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:
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:
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 Trabajo (W s) 1
Total
3N+11
Grados de Libertad
Total
N+4
2N+7
103
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
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
() ]
() ]
0,
1,
Y
Proyecto Integrador Scortechini
104
( )
0.38
= (0 ) (
)
( )
0
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.
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:
107
Tambin
almacena
estos
datos
en
los
diccionarios
de
Propiedades
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:
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:
Ecuaciones
Cantidad Tipo
Cantidad
Balances de Materia
Balances de Energa
Composicin (zi o i)
3N
Relaciones de equilibrio
Caudal (F)
3N+10
Total
2N+6
N+4
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:
1
2
1
1 1 1
0
]
[
]
=
[
]=[ ]
2
2 2 2
0
111
donde =
= 1 1 3
=1
Resolver: Esta funcin implementa los clculos flash descriptos al final del
apartado La clase SistemaTermodinamico de este captulo, para calcular
todas las propiedades desconocidas.
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:
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.
114
115
Intercambiador de Calor
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
Para
eso
llama
los
mtodos
Buscar_Incognitas,
117
algebraico, lo agrega a la lista de incgnitas y crea una referencia
smbolo:atributo.
,
[(1 2 )(2 1 )]
2 1
=
=
(21 )
(2 2 ) (1 1 )
,
{ [(2 2 )(1 1 )]
118
La ecuacin de definicin de eficiencia es:
(2 1 )
(1 1 )
=
(2 1 )
(2 1 )
(1 2 )
{(1 2 )
, >
,
>
, <
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.
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.
121
Mens Auxiliares
El men Herramientas
122
123
124
El Men Ver
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.
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.
126
127
Bibliografa
128
Resolucin de ecuaciones
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
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.
Eliminacin de equipos
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.
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.
133
Captulo 7: Conclusiones
Los hechos relatados y las experiencias acumuladas durante la ejecucin de este
proyecto han permitido arribar a las siguientes conclusiones:
134
135
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
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
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
138
Sistemas no ideales
Propiedades residuales
Ecuacin del Virial
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.
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.
140
Coeficiente de Actividad
-0.8404 0.6184]
[-0.561 0.
0.832 ]
[ 0.5788 1.7365 0.
]]
VAN LAAR
Sistema: ['Acetona', 'Cloroformo', 'Metanol']
Matriz de coeficientes:
[[ 0.
-0.8643 0.6184]
[-0.5899 0.
0.9356]
[ 0.5797 1.886 0.
]]
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.
]]
142
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.
144
A continuacin se debe hacer clic en el botn Actualizar y con la informacin provista
el programa resolver la corriente.
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.
146
147
148
149
150