Está en la página 1de 165

Proyecto Integrador Scortechini

UNIVERSIDAD NACIONAL DE CÓRDOBA
Facultad de Ciencias Exactas, Físicas y Naturales
Departamento de Química Industrial y Aplicada
Escuela de Ingeniería Química

DESARROLLO DE UN SIMULADOR DE PROCESOS QUÍMICOS

Proyecto Integrador de la Facultad de Ciencias Exactas, Físicas y Naturales
de la Universidad Nacional de Córdoba conforme
a los requisitos para obtener el título de Ingeniero Químico

por

JULIÁN ANDRÉS SCORTECHINI

Córdoba
2015

Proyecto Integrador Scortechini

El proyecto Integrador DESARROLLO DE UN SIMULADOR DE PROCESOS
QUÍMICOS desarrollado por el alumno Julián Andrés Scortechini ha sido dirigido por
la Prof. MCs. Ing. Susana Martínez Riachi.
Directora del Proyecto Integrador
Nombre y Lugar de Trabajo
…………………….
firma

UNIVERSIDAD NACIONAL DE CÓRDOBA
Facultad de Ciencias Exactas, Físicas y
Naturales

El presente proyecto integrador de la carrera de Ingeniería Química ha sido
aprobado el .…/.…/.….. , mereciendo la calificación de ......(……………………)

Tribunal Evaluador
Nombre

Nombre

Nombre

Proyecto Integrador Scortechini

Proyecto Integrador Scortechini .

Proyecto Integrador Scortechini .i DEDICATORIA Dedico este trabajo a mis padres quienes con esfuerzo. sacrificio y mucho amor me han guiado durante toda mi vida.

a la Señorita Florencia Buraschi y a la Señorita Vanesa Mascietti quienes han contribuido a la ejecución de este proyecto de manera inestimable en calidad de amigos. al Señor Laureano Bonetto. a todo el personal de la empresa PHASETY. a los Ingenieros Susana Martínez Riachi y Daniel L. El autor de esta obra valora personalmente al Ingeniero Martín E. También se desea agradecer al Señor Ariel Arguello. a la Señora María José Luna de Bonetto y al joven Augusto Bonetto Luna por su constante aliento y por haber colaborado con el autor de este proyecto proporcionando materiales para su ejecución. Gaitán. como así también a toda la Escuela de Ingeniería Química quienes han contribuido al desarrollo de este proyecto proporcionando apoyo.ii AGRADECIMIENTOS El autor de este proyecto desea agradecer al Señor Rogelio Andrés Scortechini y a la Señora Nelda Estela Soria por su constante aliento y paciencia durante la confección de este trabajo. Yorio. a la Señora Florencia Foresi de Bonetto. a la Señorita Violeta Bonetto Foresi. conocimientos. al Señor Andrés Bonetto. materiales e instalaciones. al Señor Maximiliano Duarte. compañeros y colaboradores. al Señor Mauro Domingo. Proyecto Integrador Scortechini . Se agradece muy atentamente a la Señora Olga Scortechini.

......... 1 Historia .......................................................................................... 13 Características de los Simuladores Comerciales ............................................ 21 Programación orientada a objetos .................... 20 Capítulo 3: Programación ................................................................................................................................................................ 10 Simuladores Híbridos.......................................................................... 1 Introducción .............................................. 6 Simulación estacionaria y dinámica..................................................................................... 8 Simuladores Secuenciales-Modulares ......................................................................................................................................................................................................................................................................................iii ÍNDICE GENERAL Capítulo 1: Introducción a la simulación de procesos .................. ....................................................................... 21 Introducción .................................................................................................... 15 Nuestro Simulador .............. 28 Proyecto Integrador Scortechini ......................................................................................... 5 Simulación cualitativa y cuantitativa ....................... 3 Clasificación de los métodos de simulación ............................... 26 Herencia ..................................................................................................................................................................................................................................... 20 Objetivos Generales............. 20 Objetivos Específicos ........................................................................................................................................................................................................ 22 Definición de objeto ......................... 22 Definición de Mensaje................................... 18 Bibliografía ........................................... 26 Selección del lenguaje de programación ............................................................... 19 Capítulo 2: Objetivos ................................................................................. 24 Definición de Clase ... 1 Hoy........................................................................................................ 7 Simuladores Globales u orientados a ecuaciones ............................................................................................................................................................................... 6 Clasificación de simuladores ....................

......................................................................................................................................................iv El lenguaje Python ............................................................................................................................................................................................................................................................................................................................................... 62 La clase Proyecto................................................... 72 Corriente .......... 65 Los primeros pasos ........................................................................................................................................................................................................ 60 La clase Pantalla ..................................... 115 Menús Auxiliares ...... 57 Bibliografía ...................................................................................................... 40 Propiedades Residuales de las Mezclas ............................................................ 30 Bibliografía ........................... 37 La solución ideal ........................ 60 Introducción ........................................................................................................................................................................................................................ 109 Intercambiador de Calor............................................. 51 Biblioteca de Funciones Termodinámicas...................................................................................................................................................... 85 Nodo Divisor ................. 45 Propiedades en Exceso de las Mezclas líquidas ................................................................... 33 Introducción ................................................ 32 Capítulo 4: Termodinámica .................................................... 37 Mezclas de gases ideales ..................................................................................................................................................................................................................... 94 Mezclador ............................................................................................................................................................................................................................. 60 La clase BaseDeDatos............................................... 121 El menú Herramientas ........................................... 101 Flash .................... 33 Propiedades termodinámicas generales ............................................................................. 63 La clase SistemaTermodinamico .................................................................................. 39 Propiedades Residuales de las Sustancias puras ................................................................................ 34 Sistemas ideales ............................................ 121 Proyecto Integrador Scortechini ........................................ 59 Capítulo 5: Objetos Desarrollados................... 38 Sistemas no ideales ........................................

............ 133 Anexo A: Cálculos Termodinámicos ............................................................. 132 Capítulo 7: Conclusiones .................................. 135 La solución ideal . 128 Niveles de iteración ................................................................................. 138 Propiedades residuales .................. 124 El Menú Ayuda .................................................................................................................................................................................................... 135 Sistemas Ideales .................................................................................................................................................................. 142 Anexo C: Cálculos de Nodo Divisor ....................................................................................................................................................................... 136 Sistemas no ideales ........................................... 125 Bibliografía ...................................................... 135 Mezclas de gases ideales .................. 131 Reconstrucción del diagrama de flujo ....................................... 132 Conexión de los equipos ... 148 Proyecto Integrador Scortechini ....................................................... 140 Anexo B: Cálculos de Corriente ...................................................... 130 Cálculo de temperaturas y balances de energía ..... 128 Introducción .......................................................................................................................................................................................v El Menú Ver .............................................................................................................................................................. 131 Eliminación de equipos ............................................................... 128 Resolución de ecuaciones ...................................................................... 127 Capítulo 6: Problemas y dificultades ......................................................... 138 Coeficiente de Actividad ......................................................................................................................................................................................................................................................................................... 146 Anexo D: Cálculos de Mezclador .......................................................

Bi. k (subíndices) Especie química IBM International Business Machines Corp. b. j. I Ai. id (Supraíndice) ideal. relativo a una solución ideal K relación de equilibrio.  CAS Cp  d DFI DTML. ΔTML  E (Supraíndice)      ej.vi ÍNDICE DE ABREVIATURAS  A a. y/x  Coeficiente binario de la ecuación de Wilson  Energía de interacción binaria en la ecuación de Wilson ln logaritmo natural M Propiedad genérica  Potencial químico Mac OS Macintosh Operating System Proyecto Integrador Scortechini . Ci AIChe atm B beta. F f  Operador de derivación parcial Parámetro de la Ecuación Actividad Parámetros de las ecuaciones cúbicas de estado Constantes de la ecuación de Antoine American Institute of Chemical Engineers Atmósfera Segundo coeficiente Virial Fracción de vapor Computer Algebra System Capacidad calorífica molar Variación Operador de derivación total Diagrama de Flujo de Información Diferencia de Temperatura Media Logarítmica tolerancia del error Exceso Constantes de las ecuaciones cúbicas de estado elemplo Electronic Numerical Integrator And Computer Ecuaciones de Estado etcétera Caudal de corriente fugacidad coeficiente de fugacidad de una especie pura Cociente entre los coeficientes de fugacidad en fase gaseosa y  en fase líquida FORTRAN Formula Translator G Energía libre de Gibbs  Coeficiente de actividad gi (Supraíndice) gas ideal GL Grados de Libertad GPSS General Purpose Simulation System H Entalpía molar i. q. ENIAC EOS etc.

vii MATLAB MS n N ni NRTL NumPy P p Pc PDF PM Pr PR Pydoc Pyxls Q R R (Supraíndice) 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 Número de moles Número total de especies químicas Número de moles de la especie "i" Non-Random Two-Liquid Numerical Python Presión presión parcial Presión crítica formato de documento portátil Peso molecular Presión crítica Ecuación de Peng-Robinson Python Document Python Excel Flujo de calor Constante de los gases ideales Residual Research ANd Development Ecuación de Redlich-Kwong Entropía molar Operador de Sumatoria saturación de un líquido o vapor Scientific Python Simulation Script Propiedad molar parcial Ecuación de Soave-Redlich-Kwong Symbolic Python Temperatura Temperatura crítica Temperatura reducida Energía interna molar Coeficiente global de transferencia de calor Volumen molar Volumen crítico Factor acéntrico en cálculos termodinámicos. Fracción en masa. Flujo de trabajo Winter Simulation Conference Fracción molar en fase líquida Fracción molar en fase gaseosa Fracción molar global Factor de compresibilidad Factor de compresibilidad en el punto crítico Fugacidad de una especie en solución Coeficiente de fugacidad de una especie en solución Proyecto Integrador Scortechini .

Parámetros de los modelos de actividad 78 Figura 18. Diálogo para nombrar un nuevo equipo 82 Figura 23. Ejemplo de un pequeño diagrama de flujo 84 Figura 25. Menú Insertar del simulador 82 Figura 22. Generación de incógnitas. Diálogo de configuración para Cp líquidos 78 Figura 17. Actualización de un nodo divisor Proyecto Integrador Scortechini 100 . Resolución de ecuaciones de corriente 93 Figura 29. Pantalla de Configuración de HYSYS 73 Figura 10. Selección de corrientes del nodo divisor 98 Figura 32. Carga de datos en diálogo de nodo divisor 99 Figura 33. Mezclador como ejemplo de clase 26 Figura 5. Procedimiento para calcular la temperatura de burbuja 67 Figura 8. Diálogo para nombrar el proyecto 80 Figura 20. Diálogo de configuración de corriente 90 Figura 27. Menú Archivo del simulador 79 Figura 19. Diálogo de configuración de un nodo divisor 97 Figura 31. Comunicación entre objetos a través de mensajes 24 Figura 4. Modelo de un flash 23 Figura 3. Mensaje de error durante la configuración de Cp líquidos 77 Figura 16. Pantalla de selección de compuestos de UNISIM 74 Figura 13. Representación gráfica de un nodo divisor 94 Figura 30.viii ÍNDICE DE FIGURAS Figura 1. Otra pantalla de Configuración de HYSYS 73 Figura 11. Clase Equipo como superclase de otras 28 Figura 6. Diálogo de apertura de proyectos 80 Figura 21. Diálogo de configuración general 76 Figura 15. Menú emergente y sus distintas opciones 84 Figura 24. Representación de una corriente 85 Figura 26. Pantalla del simulador 60 Figura 7. ecuaciones y grados de libertad 92 Figura 28. Procedimiento para calcular la temperatura de rocío 68 Figura 9. Pantalla de configuración de UNISIM 74 Figura 12. Representación gráfica de un objeto 22 Figura 2. Menú de configuración general del simulador 75 Figura 14.

126 Figura 55. Actualización y resolución de flash 114 Figura 43. Carga de datos para el Ejemplo 8. 146 Figura 62. 143 Figura 58. Nodo divisor y corrientes del Ejemplo 8 resueltos. 149 Proyecto Integrador Scortechini . Configuración de un intercambiador de calor. 147 Figura 63. Diálogo de Consulta a Biblioteca. Corriente del Ejemplo 6 resuelta. Diálogo para agregar nuevo compuesto. Diálogo de configuración de flash 112 Figura 42. Diálogo de configuración de nodo divisor para el Ejemplo 8. 147 Figura 64. 145 Figura 61. Actualización de un intercambiador de calor. Resolución completa de un nodo divisor 101 Figura 35. 122 Figura 50. 119 Figura 47. Propiedades de la corriente del Ejemplo 7. 126 Figura 56. Configuración general para el Ejemplo 6. Diálogo Acerca de los Autores. Actualización y resolución de un mezclador 108 Figura 40. Representación de un flash en UNISIM 114 Figura 44. 143 Figura 59. Diálogo de configuración de un mezclador 105 Figura 37. 142 Figura 57. Resultados de cálculo flash con UNISIM 115 Figura 45. Resolución completa de un intercambiador de calor. 125 Figura 54. 144 Figura 60. Representación gráfica de un flash 109 Figura 41. Menú Herramientas. 124 Figura 52. Selección de corrientes del mezclador 106 Figura 38. El menú Ayuda. Diálogo de configuración de mezclador para el Ejemplo 9. Diálogo de configuración de corriente del Ejemplo 6. Representación gráfica de un mezclador 101 Figura 36. 115 Figura 46. 121 Figura 49. Diálogo para editar compuesto.ix Figura 34. 120 Figura 48. Resultados del Ejemplo 9. 148 Figura 65. 123 Figura 51. Completando los datos de la corriente. Representación gráfica de un intercambiador de calor. Opciones del menú Ver. 124 Figura 53. Carga de datos en diálogo de mezclador 107 Figura 39.

Análisis de Flash 109 Tabla 9: Análisis de Intercambiador de Calor 116 Tabla 10. Comparación de propiedades residuales entre ecuaciones de estado Proyecto Integrador Scortechini 139 . Análisis de Mezclador 102 Tabla 8.x ÍNDICE DE TABLAS Tabla 1. Análisis de Nodo Divisor 95 Tabla 7. Tabla 3. Factores ponderados para seleccionar el lenguaje de programación 9 10 29 Tabla 4. Parámetros de las ecuaciones cúbicas de estado 43 Tabla 5. Principales Características de los Simuladores Modulares Secuenciales. Principales características de los simuladores Globales u orientados a ecuaciones Tabla 2. Análisis de Corriente 85 Tabla 6.

cálculos vectoriales. así como cálculos termodinámicos avanzados. Objetos. ecuación Virial. Se optó por el diseño de un programa híbrido que combine los mejores aspectos de los simuladores modulares secuenciales y de aquellos orientados a ecuaciones. Python. de energía o de equilibrio de fases. Química. También se construyó una interface gráfica de usuario moderna. El proceso de modelado de cada operación se basa en la identificación de las propiedades desconocidas. El software permite además representar el diagrama de flujo del proceso a simular. que permita una comunicación eficiente y amigable con el usuario. Balances. La comunicación con el usuario se realiza mediante diálogos que hacen el proceso de configuración cómodo y natural. seleccionar compuestos entre una lista de más de 450 especies químicas orgánicas e inorgánicas y trabajar con caudales molares o másicos. la abstracción de las mismas con símbolos algebraicos. solución ideal. Ingeniería. Educativo. Van Laar y Wilson. Entre las ecuaciones se encuentran algunas generales como las del balance de masa. las de restricción como la suma de fracciones molares igual a uno y otras específicas como aquellas propias de un modelo termodinámico o una operación en particular. Híbrido.xi RESUMEN Palabras clave: Simulador. La misma permite una configuración del sistema de unidades. ecuaciones de Margules. Cada equipo se caracteriza mediante un objeto informático constituido por atributos que simbolizan las propiedades del equipo y métodos que implementan su comportamiento e interacciones. Se utilizó el lenguaje de programación Python para codificar el proyecto por sus excelentes recursos de programación orientada a objetos. El programa obtenido es capaz de realizar balances de materia y de energía. Para la resolución de esas ecuaciones se utilizaron herramientas de cálculo propias del lenguaje Python y en casos excepcionales se programaron métodos numéricos específicos para un tipo particular de problema. Proyecto Integrador Scortechini . el planteo de ecuaciones y la contabilización del número de grados de libertad. En el presente proyecto se desarrolló un simulador de procesos químicos con fines educativos. identificando a cada equipo o accesorio de proceso con un ícono característico. ecuaciones cúbicas de estado. numéricos y simbólicos aplicables a la Ingeniería. con gran precisión. Posee una amplia variedad de modelos termodinámicos disponibles como ecuación del gas ideal.

el estadístico William Sealy Gosset. el usuario no podría distinguir los sucesos simulados de los reales. de ahí el uso que hizo Gosset en sus publicaciones del seudónimo "Student". un método matemático sencillo para ir aproximando el valor del número Pi a partir de sucesivos intentos. Proyecto Integrador Scortechini . Guinness prohibió a sus empleados la publicación de cualquier tipo de artículo independientemente de su contenido. ya aplicaba sus conocimientos estadísticos allí. sino también a desarrollar variedades de cebada cuya mayor robustez permitiese que la producción no se viese afectada por las variaciones en el suelo y el clima. para evitar que su empleador lo detectara. se habla entonces del grado de aproximación con que dicho programa refleja el comportamiento real de los sistemas simulados. El especial interés de Gosset en el cultivo de la cebada le llevó a especular que el diseño de experimentos debería dirigirse no sólo a mejorar la producción media. para simular procesos industriales.1 Capítulo 1: Introducción a la simulación de procesos Introducción El objetivo de todo simulador consiste en reproducir la realidad de la mejor manera posible. Para evitar futuras filtraciones de información confidencial. En 1812 Laplace mejoró y corrigió la solución de Buffon y desde entonces se conoce como solución Buffon-Laplace. Historia La historia de la simulación nace en 1777 con el planteo del problema “La aguja de Buffon”. La experiencia demuestra que a medida que se incrementa la capacidad de simulación también aumenta la complejidad del software. como también en su propia explotación agrícola. Si existiera un simulador capaz de representar las condiciones de la realidad. basados en la lógica. que trabajaba en la destilería de Arthur Guinness. Posteriormente. Las herramientas informáticas implementan una serie de modelos matemáticos y algoritmos de decisión. Sin embargo en la práctica ésta resulta tan compleja que ningún programa de computadora puede reproducirla totalmente.

otra tecnología alternativa al GPSS basada en FORTRAN. La sencillez de uso de este sistema lo popularizó como el lenguaje de simulación más usado de la época.  El trabajo de Stanislaw Ulam. El resultado fue SIMULA I. el Royal Norwegian Computing Center inició en 1961 el desarrollo del programa SIMULA con ayuda de Univac. IBM desarrolló entre 1960 y 1961 el Sistema de Simulación de Propósito General o General Purpose Simulation System (GPSS).2 Es por esta razón que su logro más famoso se conoce como la "distribución t de Student". Proyecto Integrador Scortechini . Para aquel entonces. Por otro lado. Esperando. que de otra manera hubiera sido conocida como la "distribución t de Gosset”. El GPSS se diseñó para realizar simulaciones de teleprocesos involucrando por ejemplo: control de tráfico urbano. de manera que las simulaciones en los cambios de estado de las máquinas marcaran el estado definitivo de la producción de la planta. Este trabajo produjo además el primer libro sobre simulación: “The Art of Simulation” (1963). Complementariamente a los desarrollos llevados a cabo por RAND e IBM. Keith Douglas Tocher desarrolló un programa de simulación general cuya principal tarea era la de simular el funcionamiento de una planta de producción donde las máquinas alternaban por los estados: Ocupado. reservas de pasajes de avión. en 1963 se desarrolló SIMSCRIPT. más enfocada a usuarios que no tenían por qué ser obligatoriamente expertos informáticos en RAND CORPORATION. A mediados de la década de 1940 dos hechos sentaron las bases para la rápida evolución del campo de la simulación:  La construcción de las primeras computadoras de propósito general como el ENIAC. En 1960. John Von Neumann y otros científicos para usar el método de Montecarlo en computadoras modernas y solucionar problemas de difusión de neutrones en el diseño y desarrollo de la bomba de hidrógeno. Este hito histórico abrió las puertas a la aplicación de la simulación en el campo del proceso de control industrial así como a las sinergias que generaba esta simulación basada en la experimentación y técnicas de análisis para descubrir soluciones exactas a problemas clásicos de la industria y la ingeniería. No disponible y Fallo. etc. Ulam y Von Neumann ya estuvieron presentes en el proyecto Manhattan. gestión de llamadas telefónicas.

como las que se ejecutan en las animaciones de imágenes creadas por computadora. CHEMCAD. cuentan con interfaces gráficas de usuario modernas y amigables. aun expandiéndose pero a menor velocidad que en las décadas pasadas. 2014). de manera que se mostraba el efecto que los múltiples cambios en los parámetros tenían sobre los datos. (LANDER. En 1981 Aparecen los softwares para la simulación de procesos químicos en PC. SIMSCI (PRO II). Gracias también a los desarrollos obtenidos en la generación de datos y a las técnicas de optimización y representación de datos. los psicólogos advirtieron que los seres humanos percibían mejor los cambios en el desarrollo de las situaciones si miraban gráficos o incluso imágenes en movimiento o animaciones generadas a partir de dichos datos. Durante este periodo se desarrollaron avanzadas herramientas de modelado y de análisis de resultados. la simulación llega a su fase de expansión donde comienza a aplicarse en múltiples campos. El empleo del formato de matriz se debía al uso tradicional que se hacía de la matriz en los modelos matemáticos. etc. lugar donde desde entonces y hasta ahora se archivan los lenguajes de simulación y aplicaciones derivadas. ASPEN.3 En 1967 se fundó el WSC (Winter Simulation Conference). Anteriormente. siendo en la actualidad el referente en lo que a avances en el campo de los sistemas de simulación se refiere. Los simuladores disponibles en la actualidad se caracterizan por una alta calidad para representar los procesos simulados. Sin embargo. los datos de salida obtenidos de una simulación por computadora se presentaban en una tabla o matriz. Proyecto Integrador Scortechini . También ha aumentado su potencia de cálculo y de procesamiento de la información de la mano con la evolución de la tecnología disponible en las computadoras de hoy en día y con la mejora en los modelos matemáticos usados para representar fenómenos fisicoquímicos. Hoy En la actualidad la simulación de procesos se encuentra en un estado de desarrollo avanzado. HYSIM. Pronto aparecen programas tales como: DESIGN II.

el plan de experimentación. existen programas que ya cuentan con modelos implementados para casos especiales. Implementación del modelo en la computadora: El modelo es implementado utilizando algún lenguaje de programación. Los datos pueden ser provistos por bases de datos. las variables de interés. se debe establecer si el usuario necesita una simulación o una optimización. Proyecto Integrador Scortechini . Finalmente. Este modelo simple se irá enriqueciendo como resultado de varias iteraciones. el tiempo disponible. Los aspectos relevantes del sistema real dependen de la formulación del problema. el tipo de perturbaciones a estudiar. Los mismos deberán ser procesados adecuadamente para darles el formato exigido por el modelo. Existen lenguajes específicos de simulación que facilitan esta tarea. Formulación del modelo: Esta etapa es un arte. también. el tratamiento estadístico de los resultados.4 Actualmente la simulación de procesos se ve como un procedimiento sistemático compuesto por las siguientes etapas: Formulación del problema: En este paso debe quedar perfectamente establecido el objeto de la simulación. Es necesario establecer la frontera del sistema a estudiar y las interacciones con el medioambiente que serán consideradas. se utilizan las herramientas de depuración provistas por el entorno de programación. la complejidad de la interfaz del simulador. etc. Se debe establecer si el simulador será operado por el usuario o si el usuario sólo recibirá los resultados. Definición del sistema: El sistema a simular debe estar perfectamente definido. La misma comienza con el desarrollo de un modelo simple que captura los aspectos relevantes del sistema real. Para ello. para un ingeniero de seguridad los aspectos relevantes de una planta son diferentes de los aspectos considerados por un ingeniero químico o electromecánico para el mismo sistema. Verificación: En esta etapa se comprueba que no se hayan cometidos errores durante la implementación del modelo. experimentos de laboratorios o mediciones realizadas en un equipo real. Se deben definir lo más detalladamente posible los siguientes factores: los resultados que se esperan del simulador. Colección de datos: La naturaleza y cantidad de datos necesarios están determinadas por la formulación del problema y del modelo.

se deberán recolectar datos adicionales para refinar la estimación de los parámetros críticos. Documentación: Incluye la elaboración de la documentación técnica y manuales de uso. Proyecto Integrador Scortechini . Interpretación: Se analiza la sensibilidad del modelo con respecto a los parámetros que tienen asociados la mayor incertidumbre. Si es necesario. datos bibliográficos o de sistemas similares. según el tipo de procesos (batch o continuo). etc. Implementación: Conviene acompañar al usuario en la etapa de implementación para evitar el mal manejo del simulador o el mal empleo de los resultados del mismo. variables cuantitativas o cualitativas. Esta documentación será de utilidad para el posterior perfeccionamiento del simulador (Tarifa. 2015). Clasificación de los métodos de simulación Las herramientas de simulación pueden clasificarse según diversos criterios. si involucra el tiempo (estacionario o dinámico -incluye a los equipos batch-). Esto se lleva a cabo comparando las predicciones del modelo con: mediciones realizadas en el sistema real. si maneja variables estocásticas o determinísticas. también. Los resultados obtenidos son debidamente recolectados y procesados. Como resultado de esta etapa puede surgir la necesidad de modificar el modelo o recolectar datos adicionales. por ejemplo. A continuación se expondrán brevemente las características de los distintos tipos de herramientas de simulación generalmente utilizadas. el tiempo de simulación y el número de simulaciones. La documentación técnica debe contar con una descripción detallada del modelo y de los datos. Experimentación: En esta etapa se realizan las simulaciones de acuerdo al diseño previo. se debe incluir la evolución histórica de las distintas etapas del desarrollo. Diseño de experimentos: En esta etapa se decide las características de los experimentos a realizar: el tiempo de arranque.5 Validación: En esta etapa se comprueba la exactitud del modelo desarrollado.

Simulación estacionaria y dinámica. o bien con relación a un valor dado o de referencia. etc. etc. 0). en cambio. y como su nombre lo indica. el modelo matemático estará constituido por un sistema de ecuaciones Proyecto Integrador Scortechini . en general se trabaja con valores tales como (+. por lo que el sistema de ecuaciones deberá estudiar o reflejar en el modelo las variaciones de las variables de interés con las coordenadas espaciales (modelos a parámetros distribuidos). ya sea para representar el comportamiento de equipos batch. En este caso.6 Simulación cualitativa y cuantitativa La simulación cualitativa tiene por objeto principalmente el estudio de las relaciones causales y las tendencias temporales cualitativas de un sistema. supervisión y diagnóstico de fallas. a diferencia del valor numérico (cuantitativo). Por lo tanto. -. Son varios los campos de aplicación de la simulación cualitativa. Para ello se procede a la resolución de los balances de materia. la simulación dinámica plantea los balances dependientes del tiempo. entonces deberá utilizarse un sistema de ecuaciones diferenciales a derivadas parciales (según el número de coordenadas espaciales consideradas). análisis e interpretación de alarmas. Un ejemplo puede ser la variación radial de la composición en un plato en una columna de destilación. junto a las ecuaciones de restricción que imponen aspectos funcionales y operacionales del sistema. por ejemplo el análisis de tendencias. La simulación en estado estacionario implica resolver los balances de un sistema que no involucra la variable temporal. energía y cantidad de movimiento. o bien para analizar la evolución que se manifiesta en el transitorio entre dos estados estacionarios para un equipo o una planta completa. La simulación cuantitativa. Llamamos valores cualitativos de una variable. La simulación cuantitativa abarca principalmente la simulación en estado estacionario y la simulación en estado dinámico. a su signo. control estadístico de procesos. Por otra parte. a través de un modelo matemático del mismo. es aquella que describe numéricamente el comportamiento de un proceso. como así también la propagación de perturbaciones a través de un proceso dado. ya sea absoluto. la variación de las propiedades con la longitud y el radio en un reactor tubular.

7 diferenciales ordinarias cuya variable diferencial es el tiempo. 1999). Como modelo determinístico consideramos aquél en el cual las ecuaciones dependen de parámetros y variables conocidos con certeza. ciertas variables estarán sujetas a incertidumbre. Por ejemplo. En este caso. también los resultados del modelo estarán asociados a una ley de probabilidad. o ambas simultáneamente. Existen numerosos procesos que sólo pueden simularse desde este punto de vista. la simulación puede también clasificarse en determinística o estocástica. En cambio en un modelo estocástico. es decir que no existe incertidumbre ni leyes de probabilidades asociadas a las mismas. abarcando tanto las coordenadas espaciales como la temporal. se deberá resolver un sistema de ecuaciones diferenciales a derivadas parciales. en la cual existen variables de interés que no tienen un comportamiento continuo. Desde el punto de vista de los fenómenos o sistemas que se estudian. que podrá ser expresada por funciones de distribución de probabilidad. como su nombre lo indica. En esta obra estudiaremos únicamente los modelos determinísticos. dejando de lado los procesos estocásticos y la simulación de los mismos. Por último. Clasificación de simuladores Los simuladores de procesos pueden dividirse en los siguientes tipos según el enfoque bajo el cual se plantea el modelo matemático que representa el proceso a simular:  simuladores globales u orientados a ecuaciones  simuladores secuenciales modulares  simuladores híbridos o modular secuencial-simultáneo Proyecto Integrador Scortechini . también cabe mencionar la simulación de eventos discretos. Desde este punto de vista se deben utilizar modelos especiales para tratar funciones semicontinuas y en presencia de eventos discretos (Scenna. por lo tanto. la simulación o diseño de plantas batch multiproducto o multipropósito. En caso contrario. poseen características que imponen un modelo discreto para contemplar ciertos eventos de interés.

la solución numérica para grandes sistemas exige estimaciones iniciales apropiadas. De ello se desprende la magnitud del sistema que represente el modelo de una planta completa típica (Himmelblau. De esta forma el problema se traduce en resolver un gran sistema de ecuaciones algebraicas. Es por ello que los primeros simuladores comerciales adoptaron principalmente la arquitectura modular. Además. se plantea el modelo matemático que representa al proceso construyendo un gran sistema de ecuaciones algebraicas que representa a todo el conjunto o planta a simular. En efecto. De esta manera. por ejemplo. resulta difícil asignar el problema a un sector específico de la planta. no existían los medios apropiados (principalmente hardware) para la resolución numérica de sistemas de ecuaciones de gran dimensión. era la imposibilidad de identificar los sectores de la planta en correspondencia con el sistema de ecuaciones que lo representa. En la década del 70. cuando se generan los primeros simuladores. es decir próximas a un entorno de la solución. El principal problema asociado a la filosofía de resolución global u orientada a ecuaciones es la convergencia del sistema y la consistencia de las soluciones que se encuentran. producir múltiples soluciones. o bien inicializar Proyecto Integrador Scortechini . 1997). en detrimento de la global (Scenna. Una de las críticas fundamentales para la operación de los mismos que se realizaba a menudo por parte de usuarios no entrenados. 1999). dado que una vez que se hubo armado el sistema total. Como ejemplo puede citarse en problemas típicos de simulación de columnas de destilación por métodos rigurosos el sistema de ecuaciones puede llegar a contener más de mil variables. por lo general altamente no lineales. éste está integrado y se pierde la correspondencia biunívoca entre el equipo y el subsistema de ecuaciones que lo representa. estas dificultades han sido la causa que ha limitado el desarrollo de este tipo de simuladores en forma masiva. si existieran inconvenientes durante la simulación. Históricamente. los sistemas altamente no lineales como los que corresponden a modelos de plantas químicas pueden.8 Simuladores Globales u orientados a ecuaciones Bajo el enfoque de la simulación global u orientada a ecuaciones. de lo contrario pueden presentarse serios inconvenientes.

1. debido a que los módulos están orientados y definidos en forma rígida. menor confiabilidad en los resultados y más problemas de convergencia (soluciones sin sentido físico). resulta imposible agregar restricciones y/o variables. dado que el sistema se plantea orientado a ecuaciones. Tabla 1. por lo tanto se simplifican los problemas de diseño. Desaparece la distinción entre variables de proceso y parámetros operativos. además de la expresión analítica de la función de optimización. esto es. Además. ya que solo basta con plantear las restricciones y la función de optimización. 2000). 2000). El modelo es la integración de todos los subsistemas. debiéndose proceder tipo “caja negra” (Sifuentes. Más difícil de usar por "no especialistas". Resolución simultánea del sistema de ecuaciones algebraicas (no lineales) resultante. A mayor complejidad. Esta flexibilidad es imposible en los simuladores secuenciales modulares. Las principales características (virtudes y defectos históricamente remarcados) se resumen en la Tabla 1. Una ventaja importante es que puede logarse una velocidad de convergencia cuadrática. Necesita una mejor inicialización (mejor cuanto mayor sea el problema a resolver). es posible incorporar fácilmente las expresiones de restricción para definir problemas de optimización en forma directa. esto es.9 convenientemente (Sifuentes. Principales características de los simuladores Globales u orientados a ecuaciones Cada equipo se representa por las ecuaciones que lo modelan. Proyecto Integrador Scortechini . mayor que en los simuladores secuenciales. Mayor velocidad de convergencia. como se verá más adelante.

2. cada equipo: bomba. Modulares Biblioteca de módulos (uno para cada equipo) Flow sheet: Equivale a un grafo orientado o dígrafo Orden de resolución fijo (iteraciones) Tres niveles de iteración (se incorpora otro si se desea optimizar) 1. Se incrementa la dificultad cuando se plantea un problema de optimización (funcionan como cajas negras). Poco versátiles. Módulos en sí (ej. Variables de iteración (reciclos). flash.). válvula. Dado que se puede analizar específicamente la performance de los distintos métodos de resolución es factible lograr un modelo robusto y eficiente para cada módulo específico. La información ingresada por el usuario (relacionable con equipos o corrientes) resulta fácilmente chequeable e interpretable. 3. pero muy flexibles. no ideales. muy confiables y bastante robustos. (Himmelblau. intercambiadores de calor.. Optimización Modelos individuales resueltos eficientemente. topología diversa del equipo. etc. el comportamiento del método de resolución propuesto. Cálculos fisicoquímicos. es decir. el sentido de la información coincide con el “flujo físico” en la planta. esto es sistemas ideales.10 Simuladores Secuenciales-Modulares Los simuladores modulares secuenciales se basan en módulos de simulación independientes que siguen aproximadamente la misma filosofía que las operaciones unitarias. etc. ya que es posible analizar bajo todas las circunstancias posibles. 4. Métodos de convergencia robustos. En esta filosofía se tiene como ventaja el hecho que cada sistema de ecuaciones es resuelto con una metodología que resulta adecuada para el mismo. Los problemas de diseño (selección de parámetros) son más difíciles de resolver. columna. Proyecto Integrador Scortechini . 1997) Tabla 2. Principales Características de los Simuladores Secuenciales. es simulado a través de modelos específicos para el mismo y además. etc. distintas variantes. Fácilmente comprendido por ingenieros "no especialistas en simulación".

impone cierta rigidez que sacrifica. En general. como ser topología. en un simulador modular se define cada módulo por un sistema de ecuaciones independiente que se resuelve de la manera óptima. Esto implica una ventaja en el sentido que se podrían utilizar progresivamente distintos niveles de cálculo dependiendo de la etapa del proyecto en la que se realiza la simulación. pérdidas de calor al ambiente. o si hay condensadores parciales o totales-. etc. según sea el caso.11 Conceptualmente. ya que de esta manera se impone una dirección al flujo de información entre módulos. fijada la orientación en el cálculo (esto es dadas las entradas calcular las salidas del equipo). para cada módulo de simulación (equipo) deberá plantearse su modelo matemático. todo esto teniendo en cuenta los grados de libertad. mientras que deben calcularse las corrientes de salida y los correspondientes parámetros de operación si correspondiera. Obviamente. 1999) Resumiendo. Por otra parte. -por ejemplo el número de entradas y salidas a una torre de destilación. la compatibilidad entre el número de ecuaciones y de incógnitas. las combinaciones posibles de especificación de variables son enormes. lograr que el sistema de ecuaciones sea compatible y tenga tantas incógnitas como ecuaciones no implica necesariamente una única opción. aprovechando el conocimiento que proviene de la experiencia y análisis Proyecto Integrador Scortechini . en la mayoría de los casos existirán varias combinaciones de valores posibles. (Scenna. existen variantes para cada módulo que tienen en cuenta varios factores. es decir. la posibilidad de encontrar asignaciones tales que minimicen el tiempo de cómputo. o bien en función de los datos disponibles hasta el momento. En efecto. Sin embargo esto resulta conveniente desde otro punto de vista. existirán varias posibilidades de asignación de parámetros de equipos. a fin de obtener un sistema con solución única. es decir. ya que debemos analizar las variables o parámetros de operación del equipo.). bajo esta filosofía. o sea las alimentaciones a los equipos. Esto según comentamos. para encarar la solución de cualquier sistema de ecuaciones deben diferenciarse los valores conocidos y los que deben calcularse. El enfoque en la teoría secuencial modular por definición supone que se conocen (especifican) las variables de las corrientes de entrada. Además. incrementándose en forma dramática la cantidad de módulos a disponer si se quisiera cubrir todas las posibilidades. subordinados sin embargo a las limitaciones que ha impuesto la especificación de variables seleccionada. o bien el nivel de las hipótesis realizadas (si se considera hidráulica de platos o no.

Proyecto Integrador Scortechini . dado que en la filosofía modular. 2000) La estrategia de contemplar los grados de libertad posibles en la orientación de los módulos 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 cómputo al reducir el número de corrientes iteradoras. será necesario representar un equipo real de la planta mediante la conexión de varios módulos disponibles en la biblioteca de módulos del simulador. Estas corrientes de información por lo general coinciden con las corrientes físicas de la planta. y por último. Se debe iterar al nivel de cálculos fisicoquímicos. Lo mismo sucede con los equipos (nodos del dígrafo). pero no necesariamente en todos los casos. a nivel del DFI o diagrama de flujo de la planta completa. Este diagrama matemáticamente es un dígrafo. se puede afirmar que bajo el procedimiento de la filosofía modular secuencial se introducen tres niveles característicos de iteración. Más aún. se introduce un nuevo nivel de iteración. si éste contiene reciclos será necesario disponer de un procedimiento de cálculo iterativo para resolver los balances del proceso completo. uno de los problemas que se originan es la conexión de los módulos según el proceso a simular y las rigideces que ello impone.12 del método de convergencia para cada caso en particular. Desde el punto de vista del análisis numérico. para problemas en los cuales se defina la optimización de alguna performance del proceso expresada según una función objetivo y las variables de optimización correspondientes. por sobre el nivel correspondiente al DFI. En algunas oportunidades. En síntesis. por definición los módulos resultan orientados. No obstante. en el cual los nodos son los módulos de equipos conectados uno a uno a través de las corrientes que los vinculan. (Sifuentes. llamado diagrama de flujo de información (DFI). las cuales se representan como arcos dirigidos. a diferencia de los simuladores orientados a ecuaciones donde existe sólo uno. al construirse el diagrama de flujos del sistema. La representación del diagrama de flujo (flow sheet) del proceso se traduce a un diagrama similar. de módulos de equipos.

Otro nombre con el que se conoce este enfoque es modular secuencial-simultáneo. mientras que para el resto se mantiene la filosofía modular. mientras que hacia el simulador los traduciría en un único sistema de ecuaciones a ser resuelto. tomando como dato el diagrama de flujo del proceso. etc. En este caso existiría una especie de banco o biblioteca de “módulos conteniendo subsistemas de ecuaciones de balance genéricas”. los valores de las variables a resolverse simultáneamente. programación orientada a objetos. Stephanopoulos. se logra fácilmente generar algoritmos que cumplan respecto del armado de un sistema de ecuaciones global. este sistema lógico (generación del sistema de ecuaciones que representa la planta completa). Las estimaciones correspondientes pueden ser volcadas en forma conveniente a la Proyecto Integrador Scortechini .13 Simuladores Híbridos Es posible plantear el desarrollo de simuladores combinando la estrategia modular y la orientada a ecuaciones de forma tal de aprovechar los aspectos positivos de ambas metodologías lo máximo posible. recursividad. En otras palabras. Es por ello que a esta filosofía también se la conoce como “two-tear” o “de dos niveles jerárquicos”. 1999) Con el advenimiento de nuevos paradigmas de programación (que. Leone.. y en el otro secuencialmente. (Scenna. 1997). la inicialización podría resolverse con la misma estrategia. a partir de los subsistemas. es decir. Geo. que provea por su cálculo. se las resolverá simultáneamente. y no módulos de equipos (Henning. en cada iteración. ya que se trabaja en uno con las variables tratadas simultáneamente.). esto es. G. es posible. a diferencia de los lenguajes estructurados. a través de la identificación de las corrientes de entrada .. sería la interfaz hacia el usuario. elaborando de esta manera. la misma tarea lógica que debe realizarse en un simulador secuencial para administrar los módulos parciales que representan la planta completa. 1990) (Himmelblau. la gran matriz que representa el sistema global de ecuaciones de toda la planta. presentaría a éste los equipos en un formalismo o lenguaje natural (como un simulador modular). hacen posible la manipulación de información simbólica. H.. que “arme” el sistema de ecuaciones correspondientes a los equipos seleccionados y de alguna forma considerar las interconexiones entre los mismos. se trata de encontrar una secuencia acíclica. Consecuentemente. diagramar una “interfaz inteligente o lógica”. Además.salida como variables de conexión. Para ello se selecciona un grupo de variables sobre las cuales se procederá según la filosofía global.

Más aún. Dado que los nuevos simuladores tienden a dotar al usuario de la facilidad de simular la planta tanto en estado estacionario como dinámico. La diferencia radicaría en la estructura asociada al problema matemático y en la estrategia de resolución del sistema de ecuaciones de gran dimensión. tanto matemáticos como estructurales. como la simulación estacionaria y dinámica. Esto por otra parte. solo implica agregar un paquete de ecuaciones adicionales a las contenidas en la “biblioteca” de módulos-ecuaciones del simulador (Scenna. la implementación de modelos específicos. que presentaría al usuario “equipos” o variables con su “interpretación” física. transparencia y flexibilidad hacia el usuario. esto es.14 inicialización del sistema global. para optar entre una filosofía u otra. migrar a la filosofía global (Sifuentes. Debe balancearse entonces velocidad de convergencia vs robustez al resolver sistemas de ecuaciones de elevada dimensión. optimización. A medida que evolucionan los algoritmos y el software correspondiente para la solución de grandes sistemas de ecuaciones. sería indistinguible respecto de uno modular. 1999). Proyecto Integrador Scortechini . pero hacia el simulador los traduciría al lenguaje matemático. ya que en una filosofía orientada a ecuaciones. las variables correspondientes en el sistema global de ecuaciones asociado a la planta completa. a través de la interfaz inteligente. Esto permitirá además mayor flexibilidad en el planteo de problemas muy diversos. es conveniente para el desarrollo de estos simuladores. En definitiva. Se espera que en el futuro los modelos estén basados progresivamente en la filosofía global u orientada a ecuaciones debido al progreso del software y hardware. existe en nuestros días una diversidad de productos comerciales que parcialmente llevan a la práctica los principios aquí discutidos. que como sabemos tiene una velocidad de convergencia cuadrática contra una menor del sistema modular. así como también. etc. la performance del sistema en cuanto a comunicación amigable. 2000). En efecto. uno de los condicionantes es la relativa necesidad de utilizar un criterio orientado a ecuaciones al enfrentar la simulación dinámica de plantas completas. mayor es la facilidad con que puede implementarse esta nueva filosofía en el diseño de simuladores de uso general. obligará al usuario a conocer cada vez más los detalles.

 Multi-Flow sheet: Se puede instalar un número ilimitado de diagramas de flujo en una simulación. y guardados en disco. corrientes. esta es automáticamente calculada. Los “templates” (plantillas) pueden ser construidos específicamente con paquetes de fluidos.).15 Características de los Simuladores Comerciales Entre los programas de simulación que se encuentran disponibles en el mercado actualmente se puede mencionar a: HYSIM. Los cálculos de las propiedades físicas son realizados automáticamente para cada fase. Los resultados de cualquier cálculo pasan automáticamente a otra corriente u operación que esté afectada por el cálculo. reacciones.  Los cálculos de equilibrio de fase pueden ser automáticamente realizados por el método apropiado para el diagrama de flujo. La información parcial (insuficiente para permitir un cálculo completo) también es dirigida bidireccionalmente a través del diagrama de proceso. 2010)  Sub-flow sheets y flow sheet “templates”: Cada diagrama de flujo posee un paquete de fluidos (componentes. etc. CHEMCAD. Ventajas  Metodología de cálculo en estado estacionario: los cálculos en el diagrama de flujo son realizados automáticamente cuando el usuario aporta información. Un subdiagrama aparece como una operación multientrada/salida y es resuelto automáticamente como cualquier otra operación. especificaciones del proceso. A continuación se expondrán algunas de las principales ventajas y desventajas de estos productos. UNISIM. así como también integrar algebraicamente. operaciones. Una vez que la composición y dos variables de estado (presión.  Metodología de cálculo en estado dinámico: cada operación unitaria individual contiene la información necesaria para calcular su respuesta dinámica. temperatura. propiedades. 2013) Proyecto Integrador Scortechini . propagando los resultados a través del diagrama de flujo. fracción de vapor o entalpía) son conocidas para una corriente.. (HoneyWell. La información de cualquier locación es accesible en cualquier momento. (Godoy-Rodríguez. etc.

 Amplia base de datos de propiedades físicas de componentes puros (más de 1900). 2003) Proyecto Integrador Scortechini .  CHEMCAD no toma atajos. (Collantes-Wilmer. en MS Word o MS Excel. puntos de burbuja y rocío a diferentes temperaturas y presiones. utilizando funciones termodinámicas y la base de datos de sustancias puras desde Excel. usa correlaciones rigurosas de transferencia de masa aprobadas por reconocidas instituciones como el AIChE. (Wikispaces. 2007)  Disponibilidad de los métodos de Pitzer y NRTL para electrolitos fuertes y débiles. formación de dos fases líquidas. Concentración. Excel y AutoCAD (para producir diagramas de ingeniería).  Conexión con Visual Basic/ Excel que le permite programar sus propias operaciones unitarias dentro del diagrama de proceso. diagramas de fases.  Modelos rigurosos de equipos con platos y empaques aleatorios.  Predicción de azeótropos.  Poderosa herramienta de Optimización de Procesos. Estos métodos han sido modificados para incluir parámetros de interacción dependientes de la temperatura.  Preselección automática de modelos termodinámicos (CHEMCAD detecta el tipo de sustancias en la catálogo de componentes y recomienda un modelo termodinámico automáticamente. Esta característica es excelente para un manejo más veloz en simulaciones grandes y complejas. (Worldpress. diagramas presión-temperatura vs.  Destilaciones Reactivas con hasta 20 reacciones.  Modelos de torres sencillas y rigurosas con cortes laterales. (Cabrera Benítez. 2015)  Herramienta de Análisis de Sensibilidad  Interfaces con Lotus 1-2-3.16  Diagramas de Flujo y Reportes configurables. (Aspen Technology Inc.  Poderosas capacidades de gráfico: curvas de destilación/absorción.  Datos exportables a Excel. 2011)  Convergencia de operaciones unitarias independientes del diagrama de proceso. no supone etapas ideales. 2006)  Equilibrio Líquido-Líquido y Vapor-Líquido  Estimación de propiedades físicas de productos no definidos  Incluyen paquetes termodinámicos especiales para AMINAS y POLIMEROS.

 HYSIM y UNISIM: o Tienen las opciones de configuración general y preferencias dispersas en múltiples submenús de diferentes menús que no siguen un orden lógico. Proyecto Integrador Scortechini . o Sólo posee el método de la temperatura media logarítmica para el intercambio de calor y asume que ésta ocurre en condiciones ideales. o Poseen múltiples barras de herramientas con opciones variadas de tipos y configuraciones de equipos que ocupan demasiado espacio en pantalla. El usuario no puede ingresar los datos en distintos tipos de unidades. o El sistema de unidades se selecciona al principio y todos los datos ingresados posteriormente deben estar en el sistema elegido. o Si bien los cuadros de diálogo son amigables están sobrecargados con pestañas y subventanas que vuelven los procesos de configuración tediosos al pasear al usuario por una gran cantidad de pantallas y opciones. o Sólo muestra los resultados finales en los archivos de documentación y no etapas de cálculo intermedias. si se encuentra con alguno lo ajusta a creo (Aspen Technology Inc. 2010).17  Parámetros de interacción binaria y terciaria.  Predicción automática del pH de la solución. Desventajas  CHEMCAD: o Sólo tiene programados cierta cantidad de problemas tipo para cada equipo. 2003) (HoneyWell. o No toleran datos faltantes en la composición de las corrientes de entrada.  Datos de equilibrio de reacción de electrolitos en los sistemas industriales más comunes.

También se pretendió que se solicitara la mínima cantidad de información posible al usuario y que el simulador determinase en base a esa información propiedades tales como número de fases. composición de ellas. o calculada por el programa. En el presente proyecto se propuso además mejorar los aspectos de comunicación entre el programa y el usuario de modo que fuera más amigable y natural. que podía ser considerable en procesos grandes. también fue necesario que el simulador posea herramientas exclusivas de cada operación a simular que le permitieran resolver algunas incógnitas de manera más rápida y eficiente. se propagase hacia adelante y hacia atrás en el proceso afectando a todos los equipos relacionados directa o indirectamente por dichos eventos. Se buscó que el producto fuera bidireccional. Sin embargo para simplificar esta tarea. cálculo de temperaturas por correlación con valores de entalpía. o sea que la información ingresada por el usuario. etc.18 Nuestro Simulador Este proyecto pretendía crear un simulador de tipo híbrido que combinara la mayor velocidad de convergencia de los simuladores orientados a ecuaciones con la especificidad para cada equipo característica de los programas modulares secuenciales. Proyecto Integrador Scortechini . En los capítulos finales del informe se retomará este punto y se realizará un análisis de los resultados obtenidos. También resultó de interés que fuera predictor-corrector de modo que no solicitase estimaciones iniciales de las variables a resolver y que luego de cada iteración los resultados hallados fueran corregidos hasta minimizar el error asociado con ellos a un nivel aceptable. Era deseable que el software abordara de manera genérica el proceso como un todo siguiendo la lógica orientada a ecuaciones.

LANDER. J. (2007). Sifuentes. (2006). Cambridge. (2015).19 Bibliografía Aspen Technology Inc.: Plaza y Valdés Editores.com/Ventajas+y+desventajas Worldpress. Recuperado el 15 de Septiembre de 2014.com/formacion-con-simulacion/el-mundo-en- movimiento/historia-de-la-simulacion/ Scenna. UNISIM Design. Tarifa. London. Cyrius Technology Inc. de https://simulacionprocesos. (2015). Diseño e Implementación de un Simulador de un SPU. Simulación y Optimización de Procesos Químicos. Recuperado el 15 de Abril de 2015. N. Modelado.wikispaces. (Mayo de 2011). Rosario. Godoy-Rodríguez. HoneyWell.F. México D. Universidad Nacional de Jujuy. Simulación de Procesos en Ingeniería Químicia. Recuperado el 20 de Abril de 2015. M.files. F. (2013). (2000). de https://unitorunozeydiio. Handbook of Unit Operations using CHEMCAD. (U. de http://www. Cabrera Benítez.wordpress. Principios Básicos y Cálculos en Ingeniería Química. (1997). D. (15 de Septiembre de 2014). (1999). Teoría y Modelos de Simulación. E. (2003). Ed. Worldpress.F.: Prentice Hall. México D. Wikispaces.com/2011/05/chemcad. HYSYS Tutorial & Applications.landersimulation. E.) Recuperado el 20 de Abril de 2015 Himmelblau.pdf Proyecto Integrador Scortechini . D. M. Collantes-Wilmer. (2010).

Proyecto Integrador Scortechini . 8. etc. Programar los balances de materia y energía para los distintos equipos de proceso. Detectar fallas. 2. Estudiar la programación orientada a objetos y la técnica de las interfaces gráfica de usuario. Desarrollar los elementos visuales (menús. Optimizar lo programado. 2. Objetivos Específicos 1. Crear un programa de computadora capaz de resolver los cálculos asociados a las operaciones unitarias de transferencia de calor y de masa. mensajes.20 Capítulo 2: Objetivos Objetivos Generales 1. Crear módulos computacionales que representen a los compuestos químicos y a los equipos involucrados en un proceso industrial. 6. 4. botones. 3. Realizar pruebas. Desarrollar una interface gráfica de usuario para el programa antes mencionado. 7. 5.) que conformarán la interface de comunicación con el usuario. Desarrollar una biblioteca de funciones que realicen cálculos termodinámicos típicos y necesarios para el cálculo de propiedades fisicoquímicas. Realizar un relevamiento de las tecnologías existentes. Confeccionar el manual de usuario. 9. Integrar los elementos anteriores con los módulos de cálculo.

energía. continuando este proceso hasta alcanzar un nivel de complejidad lo suficientemente bajo para que las tareas involucradas puedan ser realizadas por una computadora. posición. Un objeto es la representación computacional de un concepto del mundo real que contiene toda la información necesaria para definirlo. sus propiedades tales como dimensiones físicas. Los métodos pueden modificar los atributos del objeto al que pertenecen y también los de otra entidad. de esta forma se implementan informáticamente las acciones en las que se ha descompuesto el problema del mundo real. que son una serie de instrucciones que operan sobre las variables involucradas en el proceso y producen un determinado resultado. Esto se debió a la necesidad de modelar de una forma más natural la realidad y también debido a la complejidad creciente de los problemas a abordar. Las interacciones con otros objetos que forman parte del escenario se llevan a cabo mediante mensajes que intercambian los objetos. Esta información se compone de atributos y métodos. Hacia la última década del siglo pasado y la primera del presente fue ganando impulso otra filosofía. temperatura. Proyecto Integrador Scortechini . la programación orientada a objetos. Los atributos son las características del objeto. color. Mientras que los métodos son funciones que se encargan de implementar los comportamientos que determinan sus acciones propias.21 Capítulo 3: Programación Introducción En el siglo pasado se ha utilizado la programación estructurada como paradigma de resolución de problemas. Este nuevo paradigma se basa en la descomposición de los problemas en objetos. etc. La estructura informática básica de la programación estructurada es el procedimiento o la función. Por lo tanto esta filosofía se caracteriza por la descomposición del problema en verbos. acciones que deben ser llevadas a cabo en un orden determinado para conseguir resolver el problema original. masa. Aquella consiste en descomponer un problema complejo en problemas más simples y éstos en otros más sencillos.

Un objeto es. por ejemplo). un intercambiador de calor. 2015). un evaporador. porque “filosofía” sólo hay una y lenguajes muchos (Tarifa. por lo tanto. Los objetos en programación se usan para modelar objetos o entidades del mundo real (una bomba. Representación gráfica de un objeto. En este capítulo se presentan los conceptos básicos de la programación orientada a objetos desde un punto de vista global. La siguiente figura muestra una representación visual de un objeto. Los atributos del objeto (estado) y lo que el objeto puede hacer (comportamiento) están expresados por las variables y los métodos que componen el objeto respectivamente. Proyecto Integrador Scortechini . que conviene conocer y estudiar. y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos. la representación en un programa de un concepto. que resulta válido para cualquier lenguaje de programación. Lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la “filosofía” (o adquiera la forma de pensar) y después el lenguaje.22 Programación orientada a objetos La programación orientada a objetos es una “filosofía”. con su teoría y su metodología. Definición de objeto Un objeto es un conjunto de variables (o datos) y métodos (o funciones) relacionados entre sí. un modelo de programación. Figura 1. Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones orientadas a objetos.

es posible que un objeto desee exponer alguna de sus variables miembro. Estos métodos se denominan formalmente métodos instancia o métodos miembro. En la programación orientada a objetos un objeto en particular se denomina una instancia. por razones prácticas. Proyecto Integrador Scortechini . Modelo de un flash. un objeto podría tener métodos. De esta forma. El diagrama anterior muestra las variables del objeto en el núcleo o centro del mismo y los métodos rodeando el núcleo y protegiéndolo de otros objetos del programa. Este dibujo conceptual es la representación ideal de un objeto y es el ideal que los programadores suelen buscar. De todos modos. Además de variables. Este hecho de empaquetar o proteger las variables miembro con métodos miembro se denomina encapsulación. Sin embargo.23 Estas variables reciben el nombre de variables instancia o variables miembro porque se refieren al estado de un objeto en particular. el hecho de encapsular las variables y las funciones miembro relacionadas proporciona dos importantes beneficios a los programadores de aplicaciones:  Capacidad de crear módulos: El código fuente de un objeto puede escribirse y mantenerse independiente del código fuente del resto de los objetos. La siguiente figura muestra un equipo modelado como un objeto: Figura 2. ya que cambian el estado de una instancia u objeto particular. un objeto puede pasarse fácilmente de una parte a otra del programa. o proteger otras de sus propios métodos o funciones miembro.

Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones miembro (métodos de B). De esta forma. Comunicación entre objetos a través de mensajes. 2. Los objetos de un programa interactúan y se comunican entre ellos por medio de mensajes. el objeto que recibe el mensaje necesita más información para saber exactamente lo que tiene que hacer. el objeto A manda un mensaje al objeto B. Figura 3. En general. Definición de Mensaje Normalmente un único objeto por sí solo no es muy útil. El método o función miembro que debe ejecutar. Las tres partes que componen un mensaje son: 1.24  Protección de la información: Un objeto tendrá una interfaz pública perfectamente definida que otros objetos podrán usar para comunicarse con él. un objeto aparece como un componente más de un programa o una aplicación que contiene muchos otros. Proyecto Integrador Scortechini . El objeto al cual se manda el mensaje. Esta información se pasa junto con el mensaje en forma de parámetro. Es precisamente haciendo uso de esta interacción que se consigue una funcionalidad de mayor orden y modelar comportamientos mucho más complejos. los objetos pueden mantener información privada y pueden cambiar el modo de operar de sus funciones miembros sin que esto afecte a otros objetos que usen estas funciones miembro. En ocasiones.

). etc. “CalcularGL” (calcula los grados de libertad) y “Resolver”. por lo tanto los mensajes representan todas las posibles interacciones que pueden realizarse entre objetos. método y parámetros) son suficiente información para que el objeto que recibe el mensaje ejecute el método o la función miembro solicitada. Los mensajes proporcionan dos ventajas importantes:  El comportamiento de un objeto está completamente determinado (a excepción del acceso directo a variables miembro públicas) por sus métodos.  Los objetos no necesitan formar parte del mismo proceso. Pero un mezclador intercambia información de propiedades con el diálogo de configuración de mezclador y responde sólo a su botón. de incógnitas. pero el botón desencadena la creación del diálogo y le envía a éste último el correspondiente objeto mezclador. Proyecto Integrador Scortechini . Los parámetros que necesita ese método. que pertenece a otro objeto superior clase “Pantalla”. Así. Por ejemplo un objeto de la clase “Nodo_Divisor” tiene un método “__init__” que crea automáticamente algunos atributos (nombre. lista de ecuaciones. ni siquiera residir en un mismo ordenador para mandarse mensajes entre ellos (y de esta forma interactuar). que pertenece a un objeto superior clase “Proyecto”. Otro método “Actualizar” que se encarga de incorporar nueva información proveniente del diálogo de ese nodo y trata de cambiar el estado del nodo (valor de sus propiedades) si es posible. estos métodos definen completamente el comportamiento del objeto “Nodo_Divisor”. es independiente del botón. Otros métodos cuyo propósito es evidente son: “Buscar_Incognitas”. Estas tres partes del mensaje (objeto destinatario. y también lo es del objeto diálogo que no tiene superiores.25 3. “Formular_Ecuaciones”. El objeto “Mezclador”. Por ejemplo un botón de mezclador es un objeto diferente del diálogo de mezclador y del objeto clase “Mezclador”.

Figura 4. estamos en condiciones de introducir otra de las características básicas de la programación orientada a objetos: el uso de la herencia. De igual manera. De este modo todos los objetos de una misma clase tienen atributos y métodos en común. Los métodos y las Proyecto Integrador Scortechini . Con el mero hecho de conocer a qué clase pertenece un objeto. ya se sabe bastante sobre él. los objetos se definen a partir de clases. El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente todo su comportamiento. Como hemos visto. El árbol de herencias o jerarquía de clases puede ser tan extenso como necesitemos.26 Definición de Clase Una clase es una plantilla que define las variables y los métodos que son comunes para todos los objetos de un cierto tipo. Herencia Una vez que hemos visto el concepto de clase y el de objeto. Mezclador como ejemplo de clase. pero ambas pertenecen a la misma clase y tienen los mismos tipos de atributos. Sin embargo el valor de los atributos de una instancia en particular puede diferir del valor de esos mismos atributos en otra instancia. el hecho de que una instancia ejecute uno de sus métodos en un determinado momento no implica que todas las instancias de la misma clase deban imitar ese comportamiento. Entonces se conocen como subclases o clases derivadas. Además. no estamos limitados a un único nivel de herencia. pero además pueden introducir características particulares propias que las diferencian.

Normalmente. La herencia proporciona las siguientes ventajas:  Las clases derivadas o subclases proporcionan comportamientos especializados a partir de los elementos comunes que hereda de la clase base. que a su vez pueden contener otros. Proyecto Integrador Scortechini . pero cuya implementación depende de las características particulares de cada una de ellas. pero gran parte de estos comportamientos no se definen ni se implementan totalmente. La herencia es una herramienta clave para abordar la resolución de un problema de forma organizada.27 variables miembro se heredarán hacia abajo a través de todos los niveles de la jerarquía. El propósito de una clase abstracta es servir de modelo base para la creación de otras clases derivadas.  Los programadores pueden implementar las llamadas superclases abstractas. A través del mecanismo de herencia los programadores pueden reutilizar el código de la superclase tantas veces como sea necesario. otros programadores pueden hacer uso de estas superclases detallando esos comportamientos con subclases especializadas. De esta forma. Es posible emplear esta técnica para descomponer un problema de cierta magnitud en un conjunto de problemas subordinados a él. Por consiguiente. que definen comportamientos genéricos. la capacidad de descomponer un problema o concepto en un conjunto de objetos relacionados entre sí cuyo comportamiento es fácilmente identificable puede ser extraordinariamente útil para el desarrollo de programas informáticos. Las clases abstractas definen e implementan parcialmente comportamientos. cuanto más abajo está una clase en la jerarquía de clases. pues permite definir una relación jerárquica entre todos los conceptos que se están manejando. más especializado es su comportamiento. La resolución del problema original se consigue cuando se han resuelto cada uno de los problemas subordinados.

Debe contar con bibliotecas de funciones que puedan simplificar la codificación de operaciones matemáticas complejas (cálculo vectorial. Proyecto Integrador Scortechini . Debe ser posible y relativamente fácil crear aplicaciones. La razón de esto es que ese modelo se adapta perfectamente a la forma de modelar los equipos de proceso y operaciones unitarias en Ingeniería Química. integración. Debe soportar la programación orientada a objetos. 3. 2. Debe tener una sintaxis los más sencilla posible.28 Figura 5. 5. gráficos. Clase Equipo como superclase de otras. etc. ajuste de funciones. Se eligió a la programación orientada a objetos como paradigma de programación para codificar la interface gráfica de usuario así como todos los cálculos a realizar durante este proyecto.). 4. Selección del lenguaje de programación Luego de haber seleccionado el estilo de programación el próximo paso fue elegir un lenguaje de programación. Los factores considerados para la selección fueron los siguientes: 1. El lenguaje debe ser compatible con múltiples sistemas operativos.

etc.30 . de modo que la suma de los factores sea la unidad.60 5 1.29 6.60 7 1.20 8 1.50 0.20 8 1.40 10 0.90 operativos Programación orientada a objetos Sintaxis simple y clara Bibliotecas de funciones Crear aplicaciones Escritura de archivos Compatibilidad con otros programas TOTAL 1. Como posibles candidatos se consideró a FORTRAN.00 0. Factores ponderados para seleccionar el lenguaje de programación Ítem Factor FORTRAN C++ Python Calificación Puntaje Calificación Puntaje Calificación Puntaje Compatibilidad con sistemas 0. C++ y Python.05 Proyecto Integrador Scortechini 9.05 7 0.20 8 1.40 6 1.80 0.50 0. Tabla 3.20 7 1. programas de representación gráfica.80 0. Para tomar la decisión se utilizó el método de los factores ponderados.05 8 0.35 7 0.80 0.20 10 2.50 5 0.40 8 0.45 6. Entonces para cada alternativa se multiplica el puntaje de cada ítem por su factor de peso y después se suman para obtener el puntaje final.50 9 0. 7.00 9 1. Aquella opción que tenga el mayor puntaje total es la mejor.10 5 0.60 6 1. Debe tener la capacidad de escribir archivos que permitan preservar la información. pero también documentar (que también sea legible por el usuario).35 10 0. Debe ser compatible con otros programas tales como gestores de bases de datos.20 9 1.00 7. planillas de cálculo. y luego calificar cada alternativa con un puntaje del 0 al 10 donde 0 es el peor y 10 es el mejor.40 9 1. A continuación se muestra la tabla de factores ponderados. Éste consiste en asignarle a cada uno de los puntos enumerados arriba un factor de peso.

2009). y aun así muchas cosas siguen siendo al menos igual de fácil en Python que en esos lenguajes (Lutz. Debido a sus tipos de datos más generales Python puede aplicarse a un dominio de problemas mayor que C++ o incluso FORTRAN. y ofrece mucha mayor estructura y soporte para programas grandes que lo que lo que pueden ofrecer los códigos de C++ o archivos por lotes. escribir programas descartables. siendo un lenguaje de muy alto nivel. Python es un lenguaje interpretado. Algunos de estos módulos proveen funcionalidades como: entrada/salida a archivos. El intérprete puede usarse interactivamente. o como ejemplos para empezar a aprender a programar en Python. y ayuda a realizar tareas velozmente. El lenguaje Python Python es más fácil de usar que otros lenguajes de programación. Por otro lado. C++ o Java por varios motivos: Proyecto Integrador Scortechini . 2009). Mac OS X y Unix.30 En base a los resultados anteriores. Python permite escribir programas compactos y legibles. entiéndase programación estructurada). Los programas en Python generalmente son más cortos que sus programas equivalentes en FORTRAN. Python permite separar un programa en módulos que pueden reutilizarse en otros programas en Python. o probar funciones cuando se hace desarrollo de programas de abajo hacia arriba (estrategia Top-Down. Python tiene tipos de datos de alto nivel incorporados como arreglos de tamaño flexible y diccionarios. está disponible para sistemas operativos Windows. e incluso interfaces a sistemas de interfaz gráfica de usuario como Tk o wxPython (van Rossum. Viene con una gran colección de módulos estándar que se pueden usar como base de programas. llamadas al sistema. el lenguaje de programación seleccionado para realizar la tarea de programación fue Python. lo que facilita experimentar con características del lenguaje. lo cual permite ahorrar mucho tiempo durante el desarrollo ya que no es necesario compilar el código ni enlazar librerías. Python es fácil de usar.

 la agrupación de instrucciones se hace por sangría en vez de apertura y cierre de llaves. 2011). (Bressert.31  los tipos de datos de alto nivel permiten expresar operaciones complejas en una sola instrucción. que está basada en NumPy pero permite alcanzar un nivel de programación superior. Posee funciones matemáticas avanzadas como integración. Python Científico). Computer Algebra System) completo y al mismo tiempo es más simple. Otra biblioteca interesante es SciPy (Scientific Python. calcular límites y derivadas.  no es necesario declarar los tipos de dato de las variables lo que permite cambiar de tipo de dato fácilmente. Programming Python. integración en forma simbólica (indefinida) y cálculo de integrales (definidas). esto es imposible en otros lenguajes. resolución de Proyecto Integrador Scortechini . SymPy (Symbolic Python. Constituye un Sistema Computacional de Álgebra (CAS. ajuste de datos experimentales por varias técnicas. etc. es fácil agregar una nueva función o módulo al intérprete de Python. optimización. Además Python cuenta con muchas bibliotecas muy útiles para los propósitos de este proyecto (Lutz. 2013). fácil de usar y de extender que otros programas como MatLab o MathCad. NumPy Cookbook. Python es extensible: si ya se tiene un programa en C++. También es posible enlazar el intérprete de Python a una aplicación hecha en C++ y usarlo como lenguaje de extensión o de comando para esa aplicación. 2011) (Idris. Permite representar variables en forma simbólica. funciones estadísticas y de análisis matemático y numérico (Idris. ya sea para realizar operaciones críticas a velocidad máxima. expansión en series de potencias. 2012). Python Simbólico) es una librería para cálculo simbólico. También tiene funciones de álgebra lineal. Los argumentos de las funciones no tienen que ser obligatorios ya que admite argumentos opcionales sin declaración explícita. o para enlazar programas Python con bibliotecas que tal vez sólo estén disponibles en forma binaria (por ejemplo bibliotecas gráficas específicas de un fabricante). La biblioteca NumPy (Numerical Python. transformada de Fourier. resolución de ecuaciones diferenciales ordinarias. Python Numérico) permite realizar cálculos vectoriales y matriciales de un modo más natural.

De este modo permite ahorrar mucho tiempo y esfuerzo que supone el desarrollo de tales herramientas. Haenel. van Rossum. Gouillart. (Haenel. Bibliografía Bressert. Sebatopol: O'Reilly. G. PDFReport permite crear archivos PDF. E.). xlwt hace lo mismo con planillas Excel. Idris. Birmingham: PACKT Publising Ltd. Los párrafos anteriores revelan una ventaja importante del lenguaje Python: todas esas bibliotecas con funciones ya están definidas y disponibles. E. (2015). (2011). Gouillart. NumPy and SciPy.32 ecuaciones diferenciales y algebraicas en varias variables. Sebastopol: O´Reilly. Otras bibliotecas permiten la interacción con otros programas. etc. Otro peligro potencial es que estos módulos fueron desarrollados por diferentes especialistas para propósitos distintos. Lutz. docx permite escribir y editar documentos Word. NumPy Cookbook. M. Sin embargo presentan la desventaja de ser limitados en algunos aspectos debido a que están dirigidos a un público científico general y no exclusivamente para químicos. (2013). Universidad Nacional de Jujuy. I. (2012). (2009). Idris. El Tutorial de Python. I. M. & Varoquaux. Python Software Fundation. EuroScipy tutorial team. E. (2011). además son muy fáciles de usar. Numpy 1.5 Beginner's Guide. & Varoquaux. por lo tanto no siempre son compatibles cuando deben trabajar juntos o interactuar. (2013). Birmingham: PACKT Publishing Ltd. Proyecto Integrador Scortechini . Sebastopol: O'Reilly. Tarifa. Python Scientific Lecture Notes. (2009). 2013). Programming Python. Lutz. Incluso existen interfaces para AutoCad. Learning Python (4° Edición ed. Teoría y Modelos de Simulación.

1997). economía de los mismos y en su factibilidad. Las ecuaciones cúbicas de estado como la de Redlich-Kwong. Cuando cada una de las especies de una mezcla.33 Capítulo 4: Termodinámica Introducción Los cálculos termodinámicos son fundamentales en cualquier proceso industrial para calcular transferencias de calor. El modelo de gas ideal resulta útil para representar sistemas gaseosos a bajas presiones (menor a 10atm). potencia de bombas. Cada modelo resulta apropiado para una determinada clase de compuestos y de condiciones físicas. Puede presentar desviaciones con respecto a los datos experimentales de hasta un 10% (Henley-Seader. así como la mezcla misma. equilibrio de fases. Producen estimaciones aceptables de presión de vapor. Éstos tienen incidencia central en el diseño de procesos. 2007). la ecuación del gas ideal es ampliamente utilizada tanto para gases puros como para mezclas gaseosas. gaseoso o líquidos (Pedersen. La ecuación del Virial es un modelo derivado de la mecánica estadística. La solución ideal es adecuada para representar mezclas líquidas de compuestos isómeros u homólogos o muy diluidos a presiones bajas y moderadas. se cumplen la ley de Dalton de la aditividad de las presiones parciales y la ley de Amagat de aditividad de los volúmenes de las especies puras.5 veces la crítica y compuestos no polares o sus mezclas. composición de las fases. es el único que tiene un fundamento teórico y se aplica para sistemas gaseosos para los que produce resultados en buen acuerdo con las mediciones experimentales para densidades de aproximadamente la mitad de la densidad crítica. siguen la ley de los gases ideales. refinan el término que da cuenta de las interacciones moleculares. densidades y fugacidades a presiones moderadas (entre 15 y 50atm) tanto para sistemas no polares como polares. Soave-RedlichKwong y Peng-Robinson. de ahí su importancia (Himmelblau. temperaturas al menos 2. Por ejemplo. La selección de los modelos termodinámicos utilizados para modelar gases y líquidos es de particular interés. cálculos de equilibrio y otros más. Esta ecuación no tiene en cuenta el tamaño molecular ni el potencial asociado a la energía de interacción molecular. 2000). Cuando se Proyecto Integrador Scortechini . transferencia de masa.

y al mismo tiempo le agrega valor como producto. P representa a la presión y T a la temperatura. de una solución se tiene que: 𝑛𝑀 = 𝑀(𝑇.34 tienen soluciones líquidas que contienen especies polares o que forman puentes de hidrógeno se pueden utilizar los modelos de Margules. 1997). como se muestra a continuación.𝑛1 . Así. M. n i es el número de moles de la especie “i” y nj el de la especie “j”. los cálculos termodinámicos son de naturaleza compleja. la extensión de las reacciones químicas. 2000).𝑛𝑁 ) 𝑁 𝜕(𝑛𝑀) 𝜕(𝑛𝑀) 𝜕(𝑛𝑀) 𝑑(𝑛𝑀) = [ ] ∙ 𝑑𝑃 + [ ] ∙ 𝑑𝑇 + ∑ [ ] ∙ 𝑑𝑛𝑖 𝜕𝑃 𝑇.…. Propiedades termodinámicas generales Para una propiedad genérica. Proyecto Integrador Scortechini . Además. Lo anterior impacta directamente en la precisión de los resultados obtenidos al calcular entalpías. puede verse que la selección de modelos termodinámicos debe hacerse cuidadosamente y en función de la naturaleza química del sistema con que se esté trabajando. entre otros. volúmenes molares. equilibrios de fases. rara vez son directos sino que requieren procesos iterativos de resolución y también criterios fisicoquímicos para la evaluación de los resultados obtenidos. Las propiedades mencionadas en el párrafo anterior determinan los requerimientos de combustibles o energéticos. las dimensiones de los equipos de proceso necesarios.𝑛 𝜕𝑛𝑖 𝑇. Por lo tanto la capacidad de realizar estos cálculos es lo que diferencia a un simulador de procesos de una mera calculadora o de un programa de cálculo matemático.𝑛 𝜕𝑇 𝑃. etc. tipos de materiales a utilizar. entropías. Van Laar o de Wilson.𝑃.𝑃. Éstos reflejan la desviación del comportamiento ideal a través del coeficiente de actividad y proporcionan resultados más realistas que la solución ideal (Smith. Esto a su vez tiene una importante incidencia en la economía de los procesos industriales y afecta su sustentabilidad económica e interés empresarial (Sifuentes.𝑛 𝑖=1 𝑗 Donde n es el número de moles totales del sistema.

de la especie ‘i’ tal como existe en la solución”. Entonces surge inmediatamente que: 𝜕(𝑛𝐺) 𝐺̅𝑖 = [ ] = 𝜇𝑖 𝜕𝑛𝑖 𝑇. el valor de esta propiedad difiere del valor de la correspondiente propiedad molar de la especie pura debido a la influencia que ejercen los otros constituyentes de la solución.𝑛 𝜕𝑇 𝑃.𝑃. se obtiene la relación fundamental entre propiedades termodinámicas: 𝑁 𝜕(𝑛𝐺) 𝜕(𝑛𝐺) 𝜕(𝑛𝐺) 𝑑(𝑛𝐺) = [ ] ∙ 𝑑𝑃 + [ ] ∙ 𝑑𝑇 + ∑ [ ] ∙ 𝑑𝑛𝑖 𝜕𝑃 𝑇. Equivalentemente: 𝑁 𝑑(𝑛𝐺) = (𝑛𝑉) ∙ 𝑑𝑃 − (𝑛𝑆) ∙ 𝑑𝑇 + ∑ 𝜇𝑖 ∙ 𝑑𝑛𝑖 𝑖=1 Aquí V representa al volumen molar.𝑛 𝑗 Se define además una propiedad molar parcial genérica como: ̅𝑖 = [ 𝑀 𝜕(𝑛𝑀) ] 𝜕𝑛𝑖 𝑇.𝑛 𝑗 Proyecto Integrador Scortechini .𝑃. De donde surge que: 𝜕(𝑛𝐺) [ ] = (𝑛𝑉) 𝜕𝑃 𝑇.𝑛 𝑖=1 𝑗 Donde G es la energía de Gibbs molar.𝑃. M.𝑛 𝑗 Su significado es “el valor de la propiedad molar.𝑛 𝜕(𝑛𝐺) [ ] = 𝜇𝑖 𝜕𝑛𝑖 𝑇. S a la entropía molar y i al potencial químico de la especie “i”.𝑛 𝜕𝑛𝑖 𝑇.𝑛 𝜕(𝑛𝐺) [ ] = −(𝑛𝑆) 𝜕𝑇 𝑃.𝑃.35 Para el caso particular de la energía de Gibbs y un sistema cerrado.

𝑛 𝑖=1 Con la ayuda de las siguientes relaciones: 𝑑𝑛𝑖 = 𝑥𝑖 ∙ 𝑑𝑛 + 𝑛 ∙ 𝑑𝑥𝑖 𝑑(𝑛𝑀) = 𝑛 ∙ 𝑑𝑀 + 𝑀 ∙ 𝑑𝑛 Se llega a 𝑁 𝜕𝑀 𝜕𝑀 ̅𝑖 ∙ (𝑥𝑖 ∙ 𝑑𝑛 + 𝑛 ∙ 𝑑𝑥𝑖 ) 𝑛𝑑𝑀 + 𝑀𝑑𝑛 = 𝑛 ∙ [ ] ∙ 𝑑𝑃 + 𝑛 ∙ [ ] ∙ 𝑑𝑇 + ∑ 𝑀 𝜕𝑃 𝑇.𝑥 Proyecto Integrador Scortechini .𝑥 𝑖=1 Que equivale a 𝑁 𝑁 𝑖=1 𝑖=1 𝜕𝑀 𝜕𝑀 ̅𝑖 ∙ 𝑑𝑥𝑖 ] ∙ 𝑛 + [𝑀 − ∑ 𝑥𝑖 ∙ 𝑀 ̅𝑖 ] ∙ 𝑑𝑛 = 0 [𝑑𝑀 − [ ] ∙ 𝑑𝑃 − [ ] ∙ 𝑑𝑇 − ∑ 𝑀 𝜕𝑃 𝑇.𝑥 La única forma de que se cumpla siempre la igualdad anterior es que ambos términos sean cero.𝑛 𝜕𝑇 𝑃.𝑥 𝜕𝑇 𝑃.36 Luego: 𝑁 𝜕𝑀 𝜕𝑀 ̅𝑖 ∙ 𝑑𝑛𝑖 𝑑(𝑛𝑀) = 𝑛 ∙ [ ] ∙ 𝑑𝑃 + 𝑛 ∙ [ ] ∙ 𝑑𝑇 + ∑ 𝑀 𝜕𝑃 𝑇.𝑥 𝜕𝑇 𝑃.𝑥 𝜕𝑇 𝑃. Si ahora la diferenciamos: 𝑁 𝑁 ̅𝑖 + ∑ 𝑀 ̅𝑖 ∙ 𝑑𝑥𝑖 𝑑𝑀 = ∑ 𝑥𝑖 ∙ 𝑑𝑀 𝑖=1 𝑖=1 Reemplazando en el primer corchete… 𝑁 ̅𝑖 = [ ∑ 𝑥𝑖 ∙ 𝑑𝑀 𝑖=1 𝜕𝑀 𝜕𝑀 ] ∙ 𝑑𝑃 + [ ] ∙ 𝑑𝑇 𝜕𝑃 𝑇. Por lo tanto: 𝑁 𝑁 ̅𝑖 = 0 ↔ 𝑀 = ∑ 𝑥𝑖 ∙ 𝑀 ̅𝑖 𝑀 − ∑ 𝑥𝑖 ∙ 𝑀 𝑖=1 𝑖=1 Esta ecuación se conoce como relación de actividad o principio de adicionabilidad y es la clave para calcular las propiedades de la solución a partir de las propiedades molares parciales de sus componentes.

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 presión 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 presión igual a su presión parcial en la mezcla”. H. Entonces: ̅ 𝑔𝑖 = 𝐻 𝑔𝑖 𝐻 𝑖(𝑇. U.𝑃) 𝑖(𝑇. yi es la fracción molar de la especie “i” en la mezcla gaseosa y P es la presión total del sistema. y la energía interna.𝑝𝑖 La propiedad no puede ser el volumen.𝑃) = 𝑀 𝑔𝑖 ) 𝑀 𝑖(𝑇. Proyecto Integrador Scortechini .𝑃) Porque la entalpía.𝑃) ̅ 𝑔𝑖 = 𝑈 𝑔𝑖 𝑈 𝑖(𝑇.𝑥 𝜕𝑇 𝑃.𝑃) 𝑖(𝑇.𝑥 Sistemas ideales Mezclas de gases ideales Se define la presión parcial de una especie en una mezcla de gases ideales como: 𝑝𝑖 = 𝑦𝑖 ∙ 𝑃 Donde pi es la presión parcial. de un gas ideal no son funciones de la presión. Además aplicando la definición de propiedad molar parcial a la relación fundamental de propiedades se tiene que: 𝑑𝐺̅𝑖 = [ 𝜕𝐺̅𝑖 𝜕𝐺̅𝑖 ] ∙ 𝑑𝑃 + [ ] ∙ 𝑑𝑇 = 𝑉̅𝑖 ∙ 𝑑𝑃 − 𝑆𝑖̅ ∙ 𝑑𝑇 𝜕𝑃 𝑇. En símbolos algebraicos: ̅𝑖(𝑇.37 La ecuación anterior se conoce como la ecuación de Gibbs-Duhem.

𝑝𝑖 ) = 𝑆𝑖(𝑇.𝑃) 𝑖(𝑇.𝑃) 𝑖=1 𝑁 𝑔𝑖 𝑆(𝑇.𝑃) 𝑖=1 𝑁 𝑔𝑖 𝑈(𝑇.𝑃) = = 𝑖=1 𝑁 ̅ 𝑔𝑖 ∑ 𝑦𝑖 ∙ 𝑆𝑖(𝑇.𝑃) 𝑖(𝑇.𝑃) 𝑖(𝑇.38 𝑔𝑖 𝑔𝑖 𝑔𝑖 ̅ 𝑆𝑖(𝑇.𝑃) 𝑖=1 𝑁 𝑔𝑖 𝐺(𝑇.𝑃) = 𝑆𝑖(𝑇.𝑃) 𝑖=1 − 𝑅 ∑ 𝑦𝑖 ∙ 𝑙𝑛(𝑦𝑖 ) 𝑖=1 𝑁 ̅ 𝑔𝑖 ∑ 𝑦𝑖 ∙ 𝐺𝑖(𝑇.𝑃) − 𝑅 ∙ 𝑙𝑛(𝑦𝑖 ) ̅ 𝑔𝑖 = 𝐻 ̅ 𝑔𝑖 − 𝑇 ∙ 𝑆̅ 𝑔𝑖 = 𝐻 𝑔𝑖 − 𝑇 ∙ 𝑆 𝑔𝑖 + 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝑦𝑖 ) 𝐺𝑖(𝑇.𝑃) 𝑖=1 𝑔𝑖 = ∑ 𝑦𝑖 ∙ 𝐻𝑖(𝑇.𝑃) = 𝑁 ̅ 𝑔𝑖 ∑ 𝑦𝑖 ∙ 𝐻 𝑖(𝑇.𝑃) 𝑖=1 𝑁 + 𝑅 ∙ 𝑇 ∙ ∑ 𝑦𝑖 ∙ 𝑙𝑛(𝑦𝑖 ) 𝑖=1 La solución ideal El equivalente de una mezcla de gases ideales cuando el estado de agregación es líquido se llama solución ideal.𝑃) 𝑖(𝑇.𝑃) 𝑔𝑖 = ∑ 𝑦𝑖 ∙ 𝑈𝑖(𝑇.𝑃) = 𝑁 ̅ 𝑔𝑖 ∑ 𝑦𝑖 ∙ 𝑈 𝑖(𝑇. Se define una solución ideal como aquella para la que: 𝐺̅𝑖𝑖𝑑 = 𝐺𝑖 + 𝑅 ∙ 𝑇 ∙ ln(𝑥𝑖 ) De lo anterior se desprende que: ̅𝑖𝑖𝑑 = 𝐻𝑖 𝐻 ̅𝑖𝑖𝑑 = 𝑈𝑖 𝑈 𝑉̅𝑖𝑖𝑑 = 𝑉𝑖 𝑆𝑖̅ 𝑖𝑑 = 𝑆𝑖 − 𝑅 ∙ ln(𝑥𝑖 ) Proyecto Integrador Scortechini .𝑃) = 𝑁 𝑔𝑖 ∑ 𝑦𝑖 ∙ 𝑆𝑖(𝑇.𝑃) 𝑖=1 = 𝑔𝑖 ∑ 𝑦𝑖 ∙ 𝐺𝑖(𝑇.𝑃) Aplicando ahora la relación de actividad a las propiedades anteriores se pueden calcular las correspondientes propiedades de la mezcla: 𝑁 𝑔𝑖 𝐻(𝑇.

Entonces es necesario agregar un término corrector en el cálculo de cada propiedad para dar cuenta de esta interacción entre las moléculas de las sustancias que componen la solución. gaseosa o líquida. Para mezclas de gases el término corrector recibe el nombre de propiedad residual. Estas ecuaciones permiten calcular las propiedades molares de las especies tal como existen en la mezcla líquida.39 Donde xi es la fracción molar de la especie “i” en la mezcla líquida. Proyecto Integrador Scortechini . de modo tal que ya no se puede suponer que cada molécula existe en forma independiente del resto surgen energías de interacción que modifican los valores de las propiedades dados por las leyes ideales. cuando se forman puentes de hidrógeno o cuando las fuerzas intermoleculares o la fuerza iónica son considerables. está compuesta por especies con momento dipolar elevado. mientras que para soluciones líquidas se le llama propiedad en exceso. Aplicando el principio de actividad podemos calcular las respectivas propiedades de la solución a partir de las propiedades parciales de sus componentes: 𝑁 𝐻 𝑖𝑑 = ∑ 𝑥𝑖 ∙ 𝐻𝑖 𝑖=1 𝑁 𝑈 𝑖𝑑 = ∑ 𝑥𝑖 ∙ 𝑈𝑖 𝑖=1 𝑁 𝑆 𝑖𝑑 = ∑ 𝑥𝑖 ∙ 𝑆𝑖 − 𝑅 ∙ ∑ 𝑥𝑖 ∙ 𝑙𝑛(𝑥𝑖 ) 𝑖=1 𝑁 𝐺 𝑖𝑑 𝑁 𝑖=1 𝑁 = ∑ 𝑥𝑖 ∙ 𝐺𝑖 + 𝑅 ∙ 𝑇 ∙ ∑ 𝑥𝑖 ∙ 𝑙𝑛(𝑥𝑖 ) 𝑖=1 𝑖=1 Sistemas no ideales Cuando una solución.

Cuando la especie “i” se encuentra en una mezcla de gases ideales. Para la energía de Gibbs molar: Proyecto Integrador Scortechini . se tiene que: ̅ 𝑔𝑖 = 𝐺 𝑔𝑖 + 𝑅 ∙ 𝑇 ∙ ln(𝑦𝑖 ) = Γ𝑖(𝑇) + 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝑦𝑖 ∙ 𝑃) 𝐺𝑖(𝑇. Se puede escribir: 𝑔𝑖 𝐺𝑖 = Γ(𝑇) + 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝑃) Donde (T) es una función de la temperatura que debe determinarse experimentalmente.𝑃) 𝑁 = ∑ 𝑦𝑖 ∙ Γ𝑖(𝑇) + 𝑅 ∙ 𝑇 ∙ ∑ 𝑦𝑖 ∙ 𝑙𝑛(𝑦𝑖 ∙ 𝑃) 𝑖=1 𝑖=1 Para los gases reales existen relaciones análogas: 𝐺𝑖 = Γ𝑖(𝑇) + 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝑓𝑖 ) Donde fi es la fugacidad de la especie “i” en la mezcla gaseosa. La fugacidad tiene una ventaja respecto de la presión parcial que se demostrará inmediatamente.𝑃) 𝑖 Para la mezcla de gases ideales: 𝑁 𝑔𝑖 𝐺(𝑇.40 Propiedades Residuales de las Sustancias puras Cuando la temperatura se mantiene constante. la relación fundamental de propiedades para una especie pura se reduce a: 𝑔𝑖 𝑑𝐺𝑖 = 𝑉𝑖 𝑔𝑖 ∙ 𝑑𝑃(𝑇 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒) Como para los gases ideales vale que: 𝑃 ∙ 𝑉 𝑔𝑖 = 𝑅 ∙ 𝑇 Entonces: 𝑔𝑖 𝑑𝐺𝑖 = 𝑅 ∙ 𝑇 ∙ 𝑑𝑃 = 𝑅 ∙ 𝑇 ∙ 𝑑(𝑙𝑛𝑃) (𝑇 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒) 𝑃 De aquí surge que la energía libre de un gas ideal es función de la temperatura y de la presión. Una propiedad residual se define como la diferencia entre el valor de la propiedad real y el valor de la propiedad del gas ideal.

Ecuación del Virial Una ecuación de estado alternativa a la ley de los gases ideales es la ecuación del Virial que.41 𝑓𝑖 𝑔𝑖 𝐺𝑖𝑅 = 𝐺𝑖 − 𝐺𝑖 = 𝑅 ∙ 𝑇 ∙ 𝑙𝑛 ( ) 𝑃 Se define. truncada a dos términos. la energía de Gibbs residual y la real. por conveniencia el coeficiente de fugacidad de una especie “i” en una mezcla gaseosa como: 𝜙𝑖 = 𝑓𝑖 𝑓𝑖𝑖𝑑 = 𝑓𝑖 𝑃 Entonces: 𝐺𝑖𝑅 = 𝑅𝑇 ∙ ln 𝜙𝑖 𝑃 ln 𝜙𝑖 = ∫ (𝑍𝑖 − 1) ∙ 0 𝑑𝑃 (𝑇 = 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒) 𝑃 De esta forma se puede calcular el valor del coeficiente de fugacidad a partir de datos experimentales del factor de compresibilidad. y a partir de aquel la fugacidad. La ecuación anterior se puede poner en términos de las propiedades reducidas: 𝑍 = 1+( 𝐵 ∙ 𝑃𝑐 𝑃𝑟 )∙ 𝑅 ∙ 𝑇𝑐 𝑇𝑟 El paréntesis se puede modelar como una correlación tipo Pitzer: 𝐵 ∙ 𝑃𝑐 0 1 = 𝐵(𝑇 + 𝜔 ∙ 𝐵(𝑇 𝑟) 𝑟) 𝑅 ∙ 𝑇𝑐 Donde B0 y B1 son funciones de la temperatura reducida Tr: Proyecto Integrador Scortechini . Z. se define así: 𝑍 = 1+ 𝐵∙𝑃 𝑅∙𝑇 Donde Z es el factor de compresibilidad y B es el segundo coeficiente Virial. además.

𝑦 Donde: 𝜕𝐵 𝑅 𝑑𝐵 0 𝑑𝐵1 = ∙( +𝜔∙ ) 𝜕𝑇 𝑃𝑐 𝑑𝑇𝑟 𝑑𝑇𝑟 𝑑𝐵 0 0.7224 = 𝑑𝑇𝑟 𝑇𝑟5.2 Para una especie pura “i”: 𝑍𝑖 − 1 = 𝐵𝑖0 ∙ 𝑃𝑟𝑖 𝑃𝑟𝑖 𝐵𝑖 ∙ 𝑃𝑖𝑐 𝑃𝑟𝑖 𝐵𝑖 ∙ 𝑃 + 𝜔𝑖 ∙ 𝐵𝑖1 ∙ =( )∙ = 𝑇𝑟𝑖 𝑇𝑟𝑖 𝑅 ∙ 𝑇𝑐𝑖 𝑇𝑟𝑖 𝑅∙𝑇 De la definición del coeficiente de fugacidad se desprende que: 𝑙𝑛𝜙𝑖𝑉𝑖𝑟𝑖𝑎𝑙 𝑃 𝐵𝑖 = ∙ ∫ 𝑑𝑃 = 𝑍𝑖 − 1 𝑅∙𝑇 0 A partir de lo anterior se pueden calcular todas las demás propiedades termodinámicas: 𝐻𝑖𝑅 𝜕𝑙𝑛𝜙𝑖𝑉𝑖𝑟𝑖𝑎𝑙 𝑃 𝐵𝑖 𝜕𝐵𝑖 = −𝑇 ∙ [ ] = ∙( − ) 𝑅𝑇 𝜕𝑇 𝑅 𝑇 𝜕𝑇 𝑃.083 − 0.𝑦 𝑈𝑖𝑅 𝑃 𝜕𝐵𝑖 = ∙ 𝑅𝑇 𝑅 𝜕𝑇 𝑆𝑖𝑅 𝑃 𝜕𝐵𝑖 =− ∙ 𝑅 𝑅 𝜕𝑇 𝑉𝑖𝑅 𝜕𝑙𝑛𝜙𝑖𝑉𝑖𝑟𝑖𝑎𝑙 𝐵𝑖 =[ ] = 𝑅𝑇 𝜕𝑃 𝑅∙𝑇 𝑇.2 Proyecto Integrador Scortechini .139 − 0.6 𝑑𝐵1 0.422 𝑇𝑟1.6 𝐵1 = 0.42 𝐵 0 = 0.172 𝑇𝑟4.6752 = 𝑑𝑇𝑟 𝑇𝑟2.

.42748 0 1 0.37464 + 1. características de cada ecuación de estado.42748 1 − √2 1 + √2 0.26992 ∙ 𝜔2 A partir de la expresión de la ecuación de estado se pueden obtener expresiones para el factor de compresibilidad tanto de gases como de líquidos: 𝑍𝑉 = 1 + 𝛽 − 𝑞 ∙ 𝛽 ∙ 𝑍−𝛽 (𝑍 + 𝜖 ∙ 𝑏) ∙ (𝑍 + 𝜎 ∙ 𝑏) 𝑍 𝐿 = 𝛽 + (𝑍 + 𝜖 ∙ 𝑏) ∙ (𝑍 + 𝜎 ∙ 𝑏) ∙ ( 1+𝛽−𝑍 ) 𝑞∙𝛽 Proyecto Integrador Scortechini .574 ∙ 𝜔 − 0.43 Ecuaciones cúbicas de estado Otro modelo diferente para describir el comportamiento de gases son las ecuaciones cúbicas de estado. Los símbolos .176 ∙ 𝜔2 𝑓𝑃𝑅(𝜔) = 0.  y  son constantes y  es una función de la temperatura reducida y del factor acéntrico. Parámetros de las ecuaciones cúbicas de estado Ecuación (Tr) Redlich-Kwong 𝑇𝑟 −1⁄2 Soave-Redlich- ⁄ 2 ⁄ 2 [1 + 𝑓(𝜔) ∙ (1 − 𝑇𝑟1 2 )] Kwong (SRK) Peng-Robinson (PR) [1 + 𝑓(𝜔) ∙ (1 − 𝑇𝑟1 2 )]     0 1 0. La expresión general de la ecuación cúbica de estado es: 𝑃= 𝑎(𝑇) 𝑅∙𝑇 − (𝑉 − 𝑏) (𝑉 + 𝜖 ∙ 𝑏) ∙ (𝑉 + 𝜎 ∙ 𝑏) Donde a(T) y b son: 𝑎(𝑇) = Ψ ∙ 𝛼(𝑇𝑟 ) ∙ (𝑅 ∙ 𝑇𝑐 )2 𝑃𝑐 𝑏 =Ω∙ 𝑅 ∙ 𝑇𝑐 𝑃𝑐 Donde Tr es la temperatura reducida y Pr es la presión reducida.45724 𝑓𝑆𝑅𝐾(𝜔) = 0.08664 0.07780 0.54226 ∙ 𝜔 − 0.480 + 1. . Tabla 4.08664 0.

q y  son funciones que se definen a continuación: 𝛽= 𝑞= 𝑏∙𝑃 𝑃𝑟 =Ω∙ 𝑅∙𝑇 𝑇𝑟 𝑎(𝑇) Ψ ∙ 𝛼(𝑇𝑟 ) = 𝑏∙𝑅∙𝑇 Ω ∙ 𝑇𝑟 Con estas relaciones podemos calcular el coeficiente de fugacidad de una especie pura: 𝑙𝑛𝜙𝑖𝐸𝑂𝑆 = 𝑍𝑖 − 1 − 𝑙𝑛(𝑍𝑖 − 𝛽𝑖 ) − 𝑞𝑖 ∙ 𝐼𝑖 Donde Ii es: 𝐼𝑖 = 1 𝑍𝑖 + 𝜎 ∙ 𝛽𝑖 ∙ 𝑙𝑛 ( ) 𝜎−𝜖 𝑍𝑖 + 𝜖 ∙ 𝛽𝑖 Luego se pueden calcular todas las propiedades residuales de una especie pura: 𝐺𝑖𝑅 = 𝑙𝑛𝜙𝑖𝐸𝑂𝑆 𝑅∙𝑇 𝐻𝑖𝑅 𝑇 𝑑𝛼 = 𝑍𝑖 − 1 + [ ∙ − 1] ∙ 𝑞𝑖 ∙ 𝐼𝑖 𝑅∙𝑇 𝛼 𝑑𝑇 𝑈𝑖𝑅 𝑇 𝑑𝛼 =[ ∙ − 1] ∙ 𝑞𝑖 ∙ 𝐼𝑖 𝑅∙𝑇 𝛼 𝑑𝑇 𝑆𝑖𝑅 𝑇 𝑑𝛼 = 𝑙𝑛(𝑍𝑖 − 1) + ∙ ∙𝑞 ∙𝐼 𝑅 𝛼 𝑑𝑇 𝑖 𝑖 𝑉𝑖𝑅 𝑍𝑖 − 1 = 𝑅∙𝑇 𝑃 Proyecto Integrador Scortechini .44 Donde los supraíndices V y L hacen referencia a las fases vapor y líquido respectivamente.

𝑃. se puede medir experimentalmente a partir de datos de compresibilidad: 𝑃 𝑃 𝜕(𝑛𝑍 − 𝑛) 𝑑𝑃 𝑑𝑃 𝑙𝑛(𝜙̂𝑖 ) = ∫ [ ] ∙ = ∫ (𝑍̅𝑖 − 1) ∙ 𝜕𝑛𝑖 𝑃 𝑃 0 0 𝑇.𝑛 𝑗 Entonces: 𝐺̅𝑖𝑅 = 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝜙̂𝑖 ) Proyecto Integrador Scortechini . la energía de Gibbs residual se define como: 𝑛𝐺 𝑅 = 𝑛𝐺 − 𝑛𝐺 𝑔𝑖 La energía de Gibbs molar parcial de un componente “i” en la mezcla real está dada por: 𝐺̅𝑖 = 𝜇𝑖 = Γ𝑖(𝑇) + 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝑓̂𝑖 ) Donde 𝑓̂𝑖 es la fugacidad de la especie “i” tal como existe en la solución real. igual que en el caso de una especie pura.45 Propiedades Residuales de las Mezclas Para una mezcla de gases. Recordemos la misma propiedad para una especie en una mezcla de gases ideales: 𝑔𝑖 𝑔𝑖 𝐺𝑖̅ = 𝜇𝑖 = Γ𝑖(𝑇) + 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝑦𝑖 ∙ 𝑃) Restando las dos últimas ecuaciones se obtiene la energía de Gibbs molar parcial residual de la especie “i”: 𝑔𝑖 𝐺̅𝑖𝑅 = 𝐺̅𝑖 − 𝐺𝑖̅ = 𝑅 ∙ 𝑇 ∙ 𝑙𝑛 ( 𝑓̂𝑖 ) 𝑦𝑖 ∙ 𝑃 Por conveniencia se define el coeficiente de fugacidad de la especie “i” tal como existe en la mezcla real como: 𝜙̂𝑖 = 𝑓̂𝑖 𝑦𝑖 ∙ 𝑃 La conveniencia de esta propiedad proviene del hecho que.

46
Para poder calcular las propiedades residuales, el siguiente paso es escribir la
relación fundamental de propiedades para la mezcla real y para una mezcla de
gases ideales. 𝑁 𝑛𝐺 𝑛𝑉 𝑛𝐻 𝐺

̅𝑖 𝑑
(
)=
∙ 𝑑𝑃 −
∙ 𝑑𝑇

+

∙ 𝑑𝑛𝑖 𝑅
∙𝑇 𝑅
∙𝑇 𝑅
∙ 𝑇2 𝑅
∙𝑇 𝑖
=1 𝑁 𝑔𝑖 𝑛𝐺

𝑔𝑖 𝑛𝑉
𝑔𝑖 𝑛𝐻
𝑔𝑖 𝐺𝑖
̅ 𝑑
(
)=
∙ 𝑑𝑃 −
∙ 𝑑𝑇 + ∑
∙ 𝑑𝑛𝑖 𝑅
∙𝑇 𝑅
∙𝑇 𝑅
∙ 𝑇2 𝑅
∙𝑇 𝑖
=1

Haciendo la diferencia se obtiene la relación fundamental para propiedades
residuales: 𝑁 𝑛𝐺

𝑅 𝑛𝑉
𝑅 𝑛𝐻
𝑅 𝐺
̅𝑖𝑅 𝑑
(
)=
∙ 𝑑𝑃 −
∙ 𝑑𝑇

+

∙ 𝑑𝑛𝑖 𝑅
∙𝑇 𝑅
∙𝑇 𝑅
∙ 𝑇2 𝑅
∙𝑇 𝑖
=1

Reemplazando 𝐺𝑖

̅ 𝑅 𝑅
∙𝑇

por 𝑙𝑛(𝜙̂𝑖 ): 𝑁 𝑛𝐺

𝑅 𝑛𝑉
𝑅 𝑛𝐻
𝑅 𝑑
(
)=
∙ 𝑑𝑃 −
∙ 𝑑𝑇 + ∑ 𝑙𝑛(𝜙̂𝑖 ) ∙ 𝑑𝑛𝑖 𝑅
∙𝑇 𝑅
∙𝑇 𝑅
∙ 𝑇2 𝑖
=1

Tenemos entonces las siguientes relaciones: 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝑉
̅𝑖𝑅
=[
] 𝑅
∙𝑇 𝜕𝑃 𝑇

,𝑦
̅𝑖𝑅 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝐻

= −𝑇 ∙ [
] 𝑅
∙𝑇 𝜕𝑇 𝑃

,𝑦
̅𝑖𝑅
̅𝑖𝑅 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝑈 𝐻 𝑉

̅𝑖𝑅
=
−𝑃∙
= −𝑇 ∙ [
] −𝑃∙[
] 𝑅
∙𝑇 𝑅∙𝑇 𝑅
∙𝑇 𝜕𝑇
𝑃,𝑦 𝜕𝑃 𝑇

,𝑦
̅𝑖𝑅 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝑆𝑖
̅ 𝑅 𝐻 𝐺

̅𝑖𝑅
=

= −𝑇 ∙ [
] − 𝑙𝑛(𝜙̂𝑖 ) 𝑅 𝑅

∙𝑇 𝑅∙𝑇 𝜕𝑇
𝑃,𝑦
Aplicando ahora el principio de actividad podemos calcular todas las propiedades
residuales de la mezcla:

Proyecto Integrador Scortechini

47 𝑁 𝑁 𝑖

=1 𝑖

=1 𝐺𝑅 𝐺

̅𝑖𝑅
= ∑ 𝑦𝑖 ∙
= ∑ 𝑦𝑖 ∙ 𝑙𝑛(𝜙̂𝑖 ) 𝑅
∙𝑇 𝑅
∙𝑇 𝑁 𝑁 𝑖

=1 𝑖

=1 𝜕𝑙𝑛

(𝜙̂𝑖 ) 𝑉𝑅 𝑉

̅𝑖𝑅
= ∑ 𝑦𝑖 ∙
= ∑ 𝑦𝑖 ∙ [
] 𝑅
∙𝑇 𝑅
∙𝑇 𝜕𝑃 𝑇

,𝑦 𝑁 𝑁 𝑖

=1 𝑖

=1

̅𝑖𝑅 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝐻𝑅 𝐻

= ∑ 𝑦𝑖 ∙
= −𝑇 ∙ ∑ 𝑦𝑖 ∙ [
] 𝑅
∙𝑇 𝑅
∙𝑇 𝜕𝑇
𝑃,𝑦 𝑁 𝑁 𝑁

̅𝑖𝑅 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝑈𝑅 𝐻 𝑃

∙ 𝑉̅𝑖𝑅
= ∑ 𝑦𝑖 ∙ (

) = −𝑇 ∙ ∑ 𝑦𝑖 ∙ [
] − 𝑃 ∙ ∑ 𝑦𝑖 ∙ [
] 𝑅
∙𝑇 𝑅
∙𝑇 𝑅∙𝑇 𝜕𝑇
𝑃,𝑦 𝜕𝑃 𝑇

,𝑦 𝑖
=1 𝑖

=1 𝑖

=1 𝑁 𝑁 𝑁 𝑖

=1 𝑖

=1 𝑖

=1

̅𝑖𝑅 𝜕𝑙𝑛
(𝜙̂𝑖 ) 𝑆𝑅 𝐻 𝐺

̅𝑖𝑅
= ∑ 𝑦𝑖 ∙ (

) = −𝑇 ∙ ∑ 𝑦𝑖 ∙ [
] − ∑ 𝑦𝑖 ∙ 𝑙𝑛(𝜙̂𝑖 ) 𝑅 𝑅

∙𝑇 𝑅∙𝑇 𝜕𝑇 𝑃

,𝑦

Ecuación del Virial

Cuando adoptamos la ecuación del Virial como modelo para representar a una
mezcla de gases reales, necesitamos definir las siguientes propiedades “cruzadas”
que se obtienen por combinación de las propiedades de los componentes puros: 𝑍𝑐𝑖𝑗
= 𝑍𝑐𝑖

+ 𝑍𝑐𝑗
2 𝑇𝑐𝑖𝑗

= (𝑇𝑐𝑖 ∙ 𝑇𝑐𝑗 )
⁄3 𝑉𝑐𝑖𝑗

= ( 𝑃𝑐𝑖𝑗

= 𝑉𝑐𝑖

1

1⁄
2

∙ (1 − 𝑘𝑖𝑗 )
3

1 3
+ 𝑉𝑐𝑗

2

) 𝑍𝑐𝑖𝑗

∙ 𝑅 ∙ 𝑇𝑐𝑖𝑗 𝑉𝑐𝑖𝑗 𝜔𝑖𝑗

= 𝜔𝑖

+ 𝜔𝑗
2

Proyecto Integrador Scortechini

48
Donde los kij son coeficientes de interacción intermolecular que se obtienen a partir
de ajustes de datos experimentales.
La temperatura reducida y la presión reducida cruzadas son entonces: 𝑇𝑟𝑖𝑗
= 𝑇 𝑇𝑐𝑖𝑗 𝑃𝑟𝑖𝑗

= 𝑃 𝑃𝑐𝑖𝑗

La forma más simple y rápida de calcular las propiedades residuales de la mezcla es
la siguiente. Se define el segundo coeficiente Virial de la mezcla como: 𝑁 𝑁 𝐵

= ∑ ∑ 𝑦𝑖 ∙ 𝑦𝑗 ∙ 𝐵𝑖𝑗 𝑖
=1 𝑗=1

Donde los segundos coeficientes Viriales cruzados, Bij, están dados por: 𝐵𝑖𝑗
= 𝑅

∙ 𝑇𝑐𝑖𝑗
0
1
∙ (𝐵(𝑇
+ 𝜔𝑖𝑗 ∙ 𝐵(𝑇
) 𝑟𝑖𝑗
) 𝑟𝑖𝑗
) 𝑃𝑐𝑖𝑗

Las funciones B0 y B1 son las mismas que se definieron anteriormente para la
ecuación del Virial, sólo que esta vez están evaluadas en T rij en vez de Tr.
Y la derivada del segundo coeficiente Virial de la mezcla respecto de la temperatura
es: 𝑁 𝑁 𝑑𝐵𝑖𝑗 𝑑𝐵

= ∑ ∑ 𝑦𝑖 ∙ 𝑦𝑗 ∙ 𝑑𝑇 𝑑𝑇 𝑖

=1 𝑗=1

Donde:
0

1 𝑑𝐵

(𝑇𝑟𝑖𝑗) 𝑑𝐵
(𝑇𝑟𝑖𝑗) 𝑑𝐵𝑖𝑗 𝑅

=
∙(
+ 𝜔𝑖𝑗 ∙
) 𝑑𝑇 𝑃𝑐𝑖𝑗 𝑑𝑇𝑟𝑖𝑗 𝑑𝑇𝑟𝑖𝑗

Nuevamente las derivadas de B0 y de B1 respecto de la temperatura reducida las
mismas que definieron antes, sólo que ahora se evalúan en la T rij.

Proyecto Integrador Scortechini

Éstos se pueden obtener con la siguiente fórmula: 𝑁 𝑁 𝑃 1 𝑙𝑛𝜙̂𝑘 = ∙ [𝐵𝑘𝑘 + ∙ ∑ ∑ 𝑦𝑖 ∙ 𝑦𝑗 ∙ (2𝛿𝑖𝑘 − 𝛿𝑖𝑗 )] 𝑅∙𝑇 2 𝑖=1 𝑗=1 Donde: 𝛿𝑖𝑗 = 2 ∙ 𝐵𝑖𝑗 − 𝐵𝑖𝑖 − 𝐵𝑗𝑗 Ecuaciones cúbicas de estado Para que las ecuaciones de estado se puedan aplicar a una mezcla es necesario definir el parámetro cruzado: 𝑎𝑖𝑗 = √𝑎𝑖 ∙ 𝑎𝑗 ∙ (1 − 𝑘𝑖𝑗 ) Los parámetros a y b de la mezcla se definen así: 𝑁 𝑁 𝑎 = ∑ ∑ 𝑦𝑖 ∙ 𝑦𝑗 ∙ 𝑎𝑖𝑗 𝑖=1 𝑗=1 Proyecto Integrador Scortechini .49 Entonces. las propiedades residuales de la mezcla son: 𝑅 𝐺𝑉𝑖𝑟𝑖𝑎𝑙 𝐵∙𝑃 = 𝑅∙𝑇 𝑅∙𝑇 𝑅 𝐻𝑉𝑖𝑟𝑖𝑎𝑙 𝑃 𝐵 𝑑𝐵 = ∙( − ) 𝑅∙𝑇 𝑅 𝑇 𝑑𝑇 𝑅 𝑉𝑉𝑖𝑟𝑖𝑎𝑙 𝐵 = 𝑅∙𝑇 𝑅∙𝑇 𝑅 𝑅 𝑅 𝑈𝑉𝑖𝑟𝑖𝑎𝑙 𝐻𝑉𝑖𝑟𝑖𝑎𝑙 𝑃 ∙ 𝑉𝑉𝑖𝑟𝑖𝑎𝑙 𝑃 𝑑𝐵 = − =− ∙ 𝑅∙𝑇 𝑅∙𝑇 𝑅∙𝑇 𝑅 𝑑𝑇 𝑅 𝑅 𝑅 𝑆𝑉𝑖𝑟𝑖𝑎𝑙 𝐻𝑉𝑖𝑟𝑖𝑎𝑙 𝐺𝑉𝑖𝑟𝑖𝑎𝑙 𝑃 𝑑𝐵 = − =− ∙ 𝑅 𝑅∙𝑇 𝑅∙𝑇 𝑅 𝑑𝑇 Para los cálculos de equilibrio líquido-vapor son de interés los coeficientes de actividad de las especies en solución.

Además se definen los parámetros molares parciales como: 𝑁 𝑎̅𝑖 = 2 ∙ √𝑎𝑖 ∙ ∑ 𝑦𝑗 ∙ √𝑎𝑗 ∙ (1 − 𝑘𝑖𝑗 ) 𝑗=1 𝑏̅𝑖 = 𝑏𝑖 𝑞̅𝑖 = 𝑞 ∙ ( 𝑎̅𝑖 𝑏̅𝑖 − ) 𝑎 𝑏 El coeficiente de fugacidad de una especia tal como existe en solución es: 𝑙𝑛𝜙̂𝑖𝐸𝑂𝑆 = 𝑏𝑖 ∙ (𝑍 − 1) − 𝑙𝑛(𝑍 − 𝛽) − 𝑞̅𝑖 ∙ 𝐼 𝑏 Entonces con estas relaciones podemos calcular todas las propiedades residuales de la mezcla: 𝑁 𝐺𝑅 = ∑ 𝑦𝑖 ∙ 𝑙𝑛𝜙̂𝑖 𝑅∙𝑇 𝑖=1 𝐻𝑅 𝜕𝑞 =𝑍−1+𝑇∙ ∙𝐼 𝑅∙𝑇 𝜕𝑇 𝑆𝑅 𝜕𝑞 = 𝑙𝑛(𝑍 − 𝛽) + [𝑞 + 𝑇 ∙ ] ∙ 𝐼 𝑅 𝜕𝑇 (𝑍 − 1) 𝑉𝑅 = 𝑅∙𝑇 𝑃 𝑈𝑅 𝐻𝑅 𝑃 ∙ 𝑉𝑅 𝜕𝑞 = − =𝑇∙ ∙𝐼 𝑅∙𝑇 𝑅∙𝑇 𝑅∙𝑇 𝜕𝑇 Donde: 𝜕𝑞 1 𝜕𝑎 1 =𝑞∙( ∙ − ) 𝜕𝑇 𝑎 𝜕𝑇 𝑇 Proyecto Integrador Scortechini .50 𝑁 𝑏 = ∑ 𝑦𝑖 ∙ 𝑏𝑖 𝑖=1 Los parámetros . q. ZV ZL e I de la mezcla se definen igual que para una sustancia pura. pero en función de los parámetros de la mezcla.

Proyecto Integrador Scortechini . obtenemos una ecuación análoga para las propiedades molares parciales en exceso: ̅𝑖𝐸 = 𝑀 ̅𝑖 − 𝑀 ̅𝑖𝑖𝑑 𝑀 Las propiedades en exceso están relacionadas con las propiedades residuales de la mezcla y de las especies puras de la siguiente manera: 𝑁 𝑀𝐸 = 𝑀𝑅 − ∑ 𝑥𝑖 ∙ 𝑀𝑖𝑅 𝑖=1 Es interesante destacar que las propiedades en exceso sólo tienen sentido para las soluciones.51 𝑁 𝑁 𝜕𝑎𝑖𝑗 𝜕𝑎 = ∑ ∑ 𝑦𝑖 ∙ 𝑦𝑗 ∙ 𝜕𝑇 𝜕𝑇 𝑖=1 𝑗=1 𝜕𝑎𝑖𝑗 𝜕𝑎𝑗 𝜕𝑎𝑖 = (𝑎𝑗 ∙ + 𝑎𝑖 ∙ )⁄2 ∙ 𝑎𝑖𝑗 𝜕𝑇 𝜕𝑇 𝜕𝑇 𝜕𝑎𝑖 𝑎𝑖 𝜕𝛼𝑖 = ∙ 𝜕𝑇 𝛼𝑖 𝜕𝑇 𝜕𝛼𝑖 √𝑇𝑟𝑖 =− ∙ 𝑓(𝜔𝑖 ) ∙ √𝛼𝑖 𝜕𝑇 𝑇 Propiedades en Exceso de las Mezclas líquidas Las propiedades en exceso marcan el grado de apartamiento de una solución líquida real respecto de la solución ideal. pero no para las especies puras. a diferencia de las propiedades residuales (Smith. Entonces se definen como la diferencia entre el valor de la propiedad para la solución real en estado líquido y el valor de la misma propiedad para la solución ideal en las mismas condiciones de presión y temperatura. Para una propiedad genérica M: 𝑀𝐸 = 𝑀 − 𝑀𝑖𝑑 Si se deriva la ecuación anterior respecto del número de moles de una especie “i”. 1997).

las ecuaciones anteriores se escriben: 𝐺 𝐸 = 𝐺 − 𝐺 𝑖𝑑 𝐺̅𝑖𝐸 = 𝐺̅𝑖 − 𝐺̅𝑖𝑖𝑑 Donde: 𝐺̅𝑖 = Γ𝑖(𝑇) + 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝑓̂𝑖 ) 𝐺̅𝑖𝑖𝑑 = Γ𝑖(𝑇) + 𝑅 ∙ 𝑇 ∙ 𝑙𝑛(𝑥𝑖 ∙ 𝑓𝑖 ) Entonces: 𝑓̂𝑖 𝐺̅𝑖𝐸 = 𝑅 ∙ 𝑇 ∙ 𝑙𝑛 ( ) 𝑥𝑖 ∙ 𝑓𝑖 𝑓̂𝑖 es la fugacidad de la especie “i” en la mezcla líquida. Por conveniencia se define el coeficiente de actividad de la especie “i” en solución como: 𝛾𝑖 = 𝑓̂𝑖 𝑥𝑖 ∙ 𝑓𝑖 Luego: 𝐺̅𝑖𝐸 = 𝑅 ∙ 𝑇 ∙ 𝑙𝑛𝛾𝑖 El mismo procedimiento se puede aplicar a la relación fundamental de propiedades. 𝑁 𝑛𝐺 𝑛𝑉 𝑛𝐻 𝐺̅𝑖 𝑑( )= ∙ 𝑑𝑃 − ∙ 𝑑𝑇 + ∑ ∙ 𝑑𝑛𝑖 𝑅∙𝑇 𝑅∙𝑇 𝑅 ∙ 𝑇2 𝑅∙𝑇 𝑖=1 𝑁 𝑛𝐺 𝑖𝑑 𝑛𝑉 𝑖𝑑 𝑛𝐻 𝑖𝑑 𝐺̅𝑖𝑖𝑑 𝑑( )= ∙ 𝑑𝑃 − ∙ 𝑑𝑇 + ∑ ∙ 𝑑𝑛𝑖 𝑅∙𝑇 𝑅∙𝑇 𝑅 ∙ 𝑇2 𝑅∙𝑇 𝑖=1 𝑁 𝑛𝐺 𝐸 𝑛𝑉 𝐸 𝑛𝐻 𝐸 𝐺̅𝑖𝐸 𝑑( )= ∙ 𝑑𝑃 − ∙ 𝑑𝑇 + ∑ ∙ 𝑑𝑛𝑖 𝑅∙𝑇 𝑅∙𝑇 𝑅 ∙ 𝑇2 𝑅∙𝑇 𝑖=1 Proyecto Integrador Scortechini .52 Aplicadas a la energía de Gibbs molar. mientras que f i es la fugacidad de la especie “i” pura al estado líquido.

𝑥 𝑁 𝑁 𝑖=1 𝑖=1 ̅𝑖𝐸 𝐻𝐸 𝐻 𝜕𝑙𝑛𝛾𝑖 = ∑ 𝑥𝑖 ∙ = −𝑇 ∙ ∑ 𝑥𝑖 ∙ [ ] 𝑅∙𝑇 𝑅∙𝑇 𝜕𝑇 𝑃.𝑥 Aplicando.𝑥 𝑁 𝑁 𝑁 𝑖=1 𝑖=1 𝑖=1 ̅𝑖𝐸 𝑈𝐸 𝐻 𝑃 ∙ 𝑉̅𝑖𝐸 𝜕𝑙𝑛𝛾𝑖 𝜕𝑙𝑛𝛾𝑖 = ∑ 𝑥𝑖 ∙ ( − ) = −𝑇 ∙ ∑ 𝑥𝑖 ∙ [ ] − 𝑃 ∙ ∑ 𝑥𝑖 ∙ [ ] 𝑅∙𝑇 𝑅∙𝑇 𝑅∙𝑇 𝜕𝑇 𝑃.𝑥 𝑉̅𝑖𝐸 𝜕𝑙𝑛𝛾𝑖 =[ ] 𝑅∙𝑇 𝜕𝑃 𝑇.𝑥 𝑁 𝑁 𝑁 𝑖=1 𝑖=1 𝑖=1 ̅𝑖𝐸 𝑆𝐸 𝐻 𝐺̅𝑖𝐸 𝜕𝑙𝑛𝛾𝑖 = ∑ 𝑥𝑖 ∙ ( − ) = −𝑇 ∙ ∑ 𝑥𝑖 ∙ [ ] − ∑ 𝑥𝑖 ∙ 𝑙𝑛𝛾𝑖 𝑅 𝑅∙𝑇 𝑅∙𝑇 𝜕𝑇 𝑃.𝑥 𝜕𝑃 𝑇.𝑥 Proyecto Integrador Scortechini .𝑥 𝜕𝑃 𝑇.𝑥 ̅𝑖𝐸 ̅𝑖𝐸 𝑈 𝐻 𝑃 ∙ 𝑉̅𝑖𝐸 𝜕𝑙𝑛𝛾𝑖 𝜕𝑙𝑛𝛾𝑖 = − = −𝑇 ∙ [ ] −𝑃∙[ ] 𝑅∙𝑇 𝑅∙𝑇 𝑅∙𝑇 𝜕𝑇 𝑃.53 𝑁 𝑛𝐺 𝐸 𝑛𝑉 𝐸 𝑛𝐻 𝐸 𝑑( )= ∙ 𝑑𝑃 − ∙ 𝑑𝑇 + ∑ 𝑙𝑛𝛾𝑖 ∙ 𝑑𝑛𝑖 𝑅∙𝑇 𝑅∙𝑇 𝑅 ∙ 𝑇2 𝑖=1 De las ecuaciones anteriores se desprenden las siguientes relaciones: 𝐺̅𝑖𝐸 = 𝑙𝑛𝛾𝑖 𝑅∙𝑇 ̅𝑖𝐸 𝐻 𝜕𝑙𝑛𝛾𝑖 = −𝑇 ∙ [ ] 𝑅∙𝑇 𝜕𝑇 𝑃.𝑥 ̅𝑖𝐸 𝑆𝑖̅ 𝐸 𝐻 𝐺̅𝑖𝐸 𝜕𝑙𝑛𝛾𝑖 = − = −𝑇 ∙ [ ] − 𝑙𝑛𝛾𝑖 𝑅∙𝑇 𝑅∙𝑇 𝑅∙𝑇 𝜕𝑇 𝑃. ahora el principio de actividad podemos calcular todas las propiedades en exceso de la solución líquida: 𝑁 𝑁 𝑖=1 𝑖=1 𝐺𝐸 𝐺̅𝑖𝐸 = ∑ 𝑥𝑖 ∙ = ∑ 𝑥𝑖 ∙ 𝑙𝑛𝛾𝑖 𝑅∙𝑇 𝑅∙𝑇 𝑁 𝑁 𝑖=1 𝑖=1 𝑉𝐸 𝑉̅𝑖𝐸 𝜕𝑙𝑛𝛾𝑖 = ∑ 𝑥𝑖 ∙ = ∑ 𝑥𝑖 ∙ [ ] 𝑅∙𝑇 𝑅∙𝑇 𝜕𝑃 𝑇.

por lo tanto sus derivadas respecto de la presión o de la temperatura son nulas y la ecuación no sirve para calcular entalpías y volúmenes en exceso. 1968). 𝐴𝑖𝑗 = 𝑙𝑛𝛾𝑖∞ 𝐴𝑗𝑖 = 𝑙𝑛𝛾𝑗∞ Desafortunadamente los coeficientes de la ecuación de Margules generalmente se consideran como constantes. Sólo sirve para calcular los coeficientes de actividad y. en base al principio de actividad. a falta de correlaciones adecuadas que proporcionen sus valores como función de la presión y de la temperatura.54 Ecuación de Margules La ecuación de Margules escrita para un sistema multicomponente proporciona una expresión para el coeficiente de actividad (Oliver. Para calcular las demás propiedades en exceso se puede recurrir a la relación entre las propiedades residuales de la solución y las de los compuestos puros: Proyecto Integrador Scortechini . la energía de Gibbs molar en exceso. 𝑁 𝑁 ∑ ∑ 𝑥𝑗 𝑥𝑘 𝐴𝑖𝑗𝑘 𝑁 𝑙𝑛𝛾𝑖 = [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 parámetros de interacción terciaria que se calculan a partir de los anteriores con la siguiente fórmula: 1 𝐴𝑖𝑗𝑘 = (𝐴𝑖𝑗 + 𝐴𝑗𝑖 + 𝐴𝑖𝑘 + 𝐴𝑘𝑖 + 𝐴𝑗𝑘 + 𝐴𝑘𝑗 ) 2 En ausencia de datos experimentales los parámetros binarios se pueden calcular a partir de los coeficientes de actividad a dilución infinita para sistemas binarios.

Proyecto Integrador Scortechini . 2000): 𝐴′𝑖𝑗 𝐴𝑖𝑗 = 𝑅𝑇 𝐴′𝑖𝑗 se considera constante a presión constante. La fórmula es la misma que para la ecuación de Margules.𝑥 1 − 𝑥𝑖 𝑥𝑖 ∑𝑗=1 𝑥𝑗 𝐴𝑖𝑗 + (1 − 𝑥𝑖 ) ∑𝑁 𝑗=1 𝑥𝑗 𝐴𝑗𝑖 Y a partir del principio de actividad se puede calcular la entalpía en exceso de la solución. Entonces la derivada respecto de la temperatura de los coeficientes es: 𝐴′𝑖𝑗 𝑑𝐴𝑖𝑗 𝐴𝑖𝑗 =− 2=− 𝑑𝑇 𝑅𝑇 𝑇 Luego: 2 ̅𝑖𝐸 ∑𝑁 (1 − 𝑥𝑖 ) ∑𝑁 𝐻 𝜕𝑙𝑛𝛾𝑖 𝑗=1 𝑥𝑗 𝐴𝑖𝑗 𝑗=1 𝑥𝑗 (𝐴𝑖𝑗 − 𝐴𝑗𝑖 ) = −𝑇 ∙ ( | =[ ] −2∙[ ] ∙ 𝑙𝑛𝛾𝑖 𝑁 𝑅∙𝑇 𝜕𝑇 𝑃. Para calcular el volumen en exceso es necesario recurrir a la misma relación que en la sección anterior. En ausencia de datos más precisos los coeficientes de Van Laar pueden calcularse a partir de los coeficientes de actividad a dilución infinita de sistemas binarios.55 𝑁 𝑀 = 𝑀 − ∑ 𝑥𝑖 ∙ 𝑀𝑖𝑅 𝐸 𝑅 𝑖01 Ecuación de Van Laar La ecuación de Van Laar para un sistema multicomponente provee una expresión para calcular los coeficientes de actividad de las especies: 𝑙𝑛𝛾𝑖 = ∑𝑁 𝑗=1 𝑥𝑗 𝐴𝑖𝑗 1 − 𝑥𝑖 (1 − 𝑥𝑖 ) ∑𝑁 𝑗=1 𝑥𝑗 𝐴𝑗𝑖 2 ∙[ ] 𝑁 𝑥𝑖 ∑𝑁 𝑗=1 𝑥𝑗 𝐴𝑖𝑗 + (1 − 𝑥𝑖 ) ∑𝑗=1 𝑥𝑗 𝐴𝑗𝑖 Donde los Aij son los parámetros de la ecuación de Van Laar y son funciones de la temperatura (Henley-Seader.

𝑥 𝑅𝑇 ∙ ∑𝑗=1 𝑥𝑗 Λ 𝑘𝑗 𝑅𝑇 ∙ (∑𝑁 𝑥 Λ ) 𝑖=1 𝑗=1 𝑗 𝑖𝑗 Luego con el principio de actividad se puede calcular la entalpía en exceso. Para calcular éste último hay que utilizar la relación entre las propiedades residuales de la mezcla y de los compuestos puros. A falta de mejores datos. pero no el volumen en exceso. Proyecto Integrador Scortechini . La derivada de los coeficientes de Wilson respecto de la temperatura está dada por: 𝑑Λ 𝑖𝑗 (𝜆𝑖𝑗 − 𝜆𝑖𝑖 ) = ∙ Λ 𝑖𝑗 𝑑𝑇 𝑅𝑇 2 Entonces la entalpía molar parcial en exceso de la especie “k” se calcula con la siguiente fórmula: 𝑁 ̅𝑘𝐸 ∑𝑁 𝑥𝑖 ∙ Λ 𝑖𝑘 ∙ ∑𝑁 𝐻 𝜕𝑙𝑛𝛾𝑘 𝑗=1 𝑥𝑗 (𝜆𝑘𝑗 − 𝜆𝑘𝑘 )Λ 𝑘𝑗 𝑗=1 𝑥𝑗 (𝜆𝑖𝑘 − 𝜆𝑖𝑗 )Λ 𝑖𝑗 = −𝑇 ∙ ( | =[ ] + ∑[ ] 2 𝑁 𝑅∙𝑇 𝜕𝑇 𝑃. 2000).56 Ecuación de Wilson La ecuación de Wilson proporciona el coeficiente de actividad para una mezcla líquida multicomponente: 𝑁 𝑁 𝑗=1 𝑖=1 𝑥𝑖 Λ 𝑖𝑘 𝑙𝑛𝛾𝑘 = 1 − 𝑙𝑛 [∑ 𝑥𝑗 Λ 𝑘𝑗 ] − ∑ [ 𝑁 ] ∑𝑗=1 𝑥𝑗 Λ 𝑖𝑗 Donde los ij son los coeficientes de Wilson que son una función exponencial de la temperatura: Λ 𝑖𝑗 = 𝑉𝑗 −(𝜆𝑖𝑗−𝜆𝑖𝑖 ) ∙ 𝑒 𝑅𝑇 𝑉𝑖 Vi y Vj son los volúmenes molares de las especies “i” y “j” a la misma temperatura que la mezcla (Henley-Seader. los coeficientes de Wilson se pueden obtener a partir de los coeficientes de actividad a dilución infinita de sistemas binarios: 𝑙𝑛𝛾𝑖∞ = −𝑙𝑛Λ 𝑖𝑗 + 1 − Λ𝑗𝑖 𝑙𝑛𝛾𝑗∞ = −𝑙𝑛Λ𝑗𝑖 + 1 − Λ 𝑖𝑗 Pero como estas expresiones no son explícitas se debe recurrir a un procedimiento iterativo de resolución.

 Van Laar: contiene métodos para calcular el coeficiente de actividad de todas las especies en una mezcla de líquidos según el modelo de Van Laar. coeficientes de fugacidad. “CalcularPropiedades2” es una función que calcula los valores de entalpía. función de Gibbs. coeficientes de fugacidad.  EOS: calcula los parámetros de las ecuaciones de estado. energía de Gibbs.57 Biblioteca de Funciones Termodinámicas Se trata de un módulo que contiene la definición de varias clases. energía interna.  Virial: calcula el segundo coeficiente Virial. energía interna y volumen molar para mezclas de gases ideales y soluciones ideales. entropía. energía de Helmholtz. entropía. Contiene el método “CalcularComposicion” que se encarga de calcular las fracciones en peso a partir de las fracciones molares. Esas clases tienen atributos (propiedades características) y métodos (funciones) característicos de cada modelo termodinámico. entalpía. si se trabaja con caudales molares o las fracciones molares en base a las fracciones en peso si se trabaja con caudales másicos. el punto de rocío y de determinar el estado de agregación del sistema. el factor de compresibilidad. entropía.  Wilson: contiene métodos para calcular el coeficiente de actividad de todas las especies en una mezcla de líquidos según el modelo de Wilson. descompone a cada propiedad como Proyecto Integrador Scortechini . entalpía. energía interna y volumen residuales para mezclas de gases o en exceso para mezclas líquidas. El método “CalcularPropiedades1” se encarga de calcular el punto de burbuja. entropía. Para eso. energía de Helmholtz.  Margules: contiene métodos para calcular el coeficiente de actividad de todas las especies en una mezcla de líquidos según el modelo de Margules. volumen molar y función de Helmholtz para el sistema. energía de Gibbs.  SistemaTermodinamico: Esta clase hace uso de todas las anteriores. el factor de compresibilidad. también calcula el peso molecular medio de la mezcla. energía de Helmholtz. Las clases que integran la librería son:  Ideal: calcula entalpía. energía de Gibbs. energía interna y volumen residuales para mezclas de gases o en exceso para mezclas líquidas.

Más adelante se desarrollan los detalles de programación relacionados con este tema. se realiza la suma y se obtiene el valor de las propiedades de la mezcla real. Una vez que se dispone de ambos término. crea un objeto de la clase apropiada (Ideal. si el estado es líquido. primero realiza un cálculo flash para determinar la proporción de cada fase y su composición. el término corrector corresponde a las propiedades en exceso. de acuerdo al estado de agregación del sistema y al modelo termodinámico elegido para representar esa fase. uno menos la fracción de vapor. Así. El término ideal se calcula creando un objeto de la clase “Ideal”. para la fase líquida). EOS. Virial. Proyecto Integrador Scortechini . Si el sistema existe en un equilibrio líquido vapor. Si el estado de agregación es gas el término corrector son las propiedades residuales. Margules. luego se realizan los cálculos pertinentes para cada fase y después se suman los resultados multiplicados por una fracción (fracción de vapor para la fase vapor y fracción de líquido. le envía los parámetros que éste necesite y le solicita que calcule las residuales o en exceso. que realiza los cálculos y devuelve los resultados.58 la suma de dos términos: ideal y corrector. etc.).

Smith. Phase Behavior of Petroleum Reservoir Fluids.F. E. (2000). M.: Prentice Hall. Scenna. D. Simulación y Optimización de Procesos Químicos.F. México D. N. Oliver. Principios Básicos y Cálculos en Ingeniería Química. Industrial & Engineering Chemistry Fundamentals. (1997).59 Bibliografía Henley-Seader. Taylor & Francis Group. Pedersen. México D.A. (1999). Simulación de Procesos en Ingeniería Químicia.F. México D. Proyecto Integrador Scortechini . Himmelblau. (1997). D.: Plaza y Valdés Editores. Operaciones de Separación por Etapas en Ingeniería Química. Modelado. M.: McGraw Hill.: Editorial Reverté S. Sifuentes. (2000).F. (2007). Introducción a la Termodinámica en Ingeniería Química (5° Edición ed. México D. J. (1968). C.).

Proyecto Integrador Scortechini . Desde la pantalla principal se controla el funcionamiento global del proceso a simular. Pantalla del simulador. Para crear la pantalla se diseñó una clase llamada Pantalla. los aspectos técnicos de Ingeniería Química y aquellos detalles informáticos que se consideren de interés.60 Capítulo 5: Objetos Desarrollados Introducción En el presente capítulo se presentarán los objetos creados que componen el simulador de procesos. La clase Pantalla La pantalla es uno de los componentes más importantes porque es el principal elemento de comunicación con el usuario y el primero con el que éste hace contacto. En cada caso se explicará la función que cumple el componente. Figura 6. La siguiente figura muestra una imagen de una pantalla típica. Ésta hereda de cuatro superclases y tiene dos métodos.

61 Las superclases de Pantalla son:  wx. etc. El otro método crea la barra y cada una de sus herramientas. Otro método se encarga de crear los menús y submenús en base a la información provista por el método anterior. los íconos de cada submenú. otras que codifican la creación de menús contextuales (o emergentes. posee menos métodos. agregar un equipo nuevo. y el texto a desplegar en la barra de estado cuando se selecciona alguno de ellos.  BarraH: Es una clase similar a Menus. el método 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. las agrega a la barra y luego le asigna la barra de herramientas al objeto de la clase Pantalla. nombres de los submenús de cada uno. La última función es la responsable de crear la barra de menú. Por ejemplo: las funciones que responden a la selección de distintos menús o herramientas como crear un nuevo proyecto. abrir un proceso guardado. guardar los cambios. también llamados “pop-up”).Frame: Esta clase contiene una serie de variables y funciones que permiten construir automáticamente una pantalla vacía y algunos métodos que implementan comportamientos básicos. El primero de ellos devuelve una estructura de datos que proporciona el nombre de cada herramienta. de agregarle los menús creados y de asignar la barra de menú al objeto Pantalla. También funciones que permiten mover los íconos por la pantalla. En el caso de los objetos del tipo Pantalla este método recibe dos argumentos: uno es un objeto tipo base de datos y otro Proyecto Integrador Scortechini . Como ésta es un poco más simple que una barra de menús. el método con que se debe responder ante la selección del menú. sólo que se encarga de crea la barra de herramientas.  Menus: Contiene un método que devuelve una estructura de datos que establece el nombre de cada uno de los menús que se mostrarán en la barra de menú.  Métodos: Es una clase que contiene a todas las funciones que determinan el comportamiento de las funciones que cumple la pantalla. Los métodos de Pantalla son:  __init__: En general este método se ejecuta automáticamente cada vez que se crea el objeto que lo contiene y se utiliza para llevar a cabo tareas que se sabe son necesarias siempre.

esto parece trivial pero si no se hiciera. mezclador. incluyendo los equipos que se vayan a crear. Además define una serie de diccionarios que sirven de referencia para relacionar los nombres de los equipos. La clase BaseDeDatos contiene cuatro métodos:  __init__: En este caso el método __init__ utiliza la función open_workbook de la biblioteca xlrd para abrir el archivo “BDD. Finalmente da la instrucción para mostrar la ventana en pantalla.  crearBarraEst: Esta función crea la barra de estado y le asigna el valor inicial “Listo”. la de herramientas y la de estado. y centra la ventana de la aplicación en la pantalla de la computadora. intercambiador de calor. etc. los botones que representan sus íconos. El objeto de la clase Proyecto es el que acumulará toda la información relativa al proceso. sus identidades (números enteros negativos que Python genera automáticamente y usa para identificar los componentes) y sus tipos (corriente. Luego se posiciona en la primera hoja del documento y lee el número de filas y de columnas. las unidades de éstas y los nombres de todos los compuestos Proyecto Integrador Scortechini .xls” que contiene la base de datos. Después llama a los métodos para crear la barra de menú. La clase BaseDeDatos Esta clase sirve para crear un objeto almacene todas las propiedades físicas disponibles en la base de datos. las herramientas básicas (minimizar. El método __init__ crea automáticamente el marco de la pantalla.62 objeto tipo Proyecto. se crearía la pantalla de la aplicación pero no se vería nada en la pantalla de la computadora. También crea listas que almacenan los símbolos de cada propiedad. maximizar y cerrar) y un panel en blanco. Luego construye una ventana con barras de desplazamiento que será el paño de diseño para representar el diagrama de flujo del proceso y está contenida en la ventana de la aplicación. el ícono del sistema. La base de datos contiene toda la información de las propiedades fisicoquímicas de 469 compuestos.). la barra de título. El objeto resultante servirá para proveer información que asista a otras funciones que realizan los cálculos durante del proceso.

 guardar: Esta función sirve para agregar nueva información a la base de datos (archivo Excel). devuelve su valor. se perderían al Proyecto Integrador Scortechini . 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). la pantalla y todos los componentes visuales contenidos en ella son destruidos y no queda evidencia de su existencia. Necesita dos parámetros: el nombre del nuevo atributo y su valor. En el futuro se hará mención de sus nombres pero no se repetirá su explicación.  __setitem__: Esta función sirve para crear un nuevo atributo del objeto. entonces agrega el atributo con el nombre proporcionado y le asigna el valor provisto. Si los datos del proceso se almacenaran en el objeto tipo Pantalla. además construye un diccionario que relaciona el nombre de cada propiedad y el nombre de cada compuesto con la dirección de la celda de la planilla que contiene el valor numérico. Recibe como argumento el nombre del atributo y. incluyendo los equipos que forman parte de éste.  __getitem__: Es un método que sirve para recuperar el valor de un atributo del objeto. Luego guarda el archivo y la información se incorpora permanentemente a la base de datos. de lo contrario se produce un error. busca la dirección de cada par compuestopropiedad y escribe el valor correspondiente en esa celda. La clase Proyecto Así como la pantalla ayuda a visualizar de forma gráfica el proceso y es la parte encargada de interactuar con el usuario. Dada una lista con los símbolos de las propiedades y otra con los valores para cada compuesto.63 disponibles. Después 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). Los últimos dos métodos cumplen la misma función en cualquier objeto. si existe. al cerrar la aplicación. el objeto de la clase Proyecto es la verdadera estructura que almacena toda la información del proceso. La diferencia está en que.

 datosActividad: Este método sirve para almacenar los coeficientes de las ecuaciones de Margules. recargar toda la información. ampliarla. si la lista de compuestos no está vacía y el modelo de líquidos Proyecto Integrador Scortechini . Van Laar o de Wilson para cada pareja de compuestos. que servirán para almacenar el nombre de cada equipo y el objeto correspondiente que contiene su información. En cambio el objeto clase Proyecto es un huésped de la pantalla. etc. entonces no hace nada. pero que puede sobrevivir después de cerrar la ventana de la aplicación y. si se guarda en un archivo. permite preservar toda la información generada. entonces establece como temperatura de referencia para cada compuesto su temperatura normal de ebullición (Geankoplis. libre. Si el objeto Proyecto ya tiene definida una lista de compuestos. etc. mezclador. modificarla.  calcularTref: Esta función sirve para establecer la temperatura de referencia que será utilizada a la hora de realizar cálculos de entalpía. tanque_agitado_continuo. energía interna. flash y destilador) y como valores a diccionarios. visualizarla. es posible abrir el archivo de datos. y sus propiedades en la base de datos. Molelo_Liquido que contiene cadenas de caracteres. Además se construye una lista vacía que servirá para almacenar los nombres de los compuestos que intervienen en el proceso. mientras que las mezclas gaseosas o mezclas líquido-vapor tendrán entalpías positivas. el modelo utilizado para representar a los gases y a los líquidos respectivamente. en caso que el modelo seleccionado por el usuario en la configuración del sistema para representar a los líquidos no sea la solución ideal. Esto tiene como consecuencia que la entalpía de mezclas líquidas tendrán valores negativos de entalpía. Tipo_Caudal. inicialmente vacíos. También define los atributos: Sistema_Unidades. intercambiador_de_calor. el tipo de caudal. entropía. 1998). que sirven para especificar: el sistema de unidades. inicialmente vacías. Modelo_Gases. nodo_divisor. que interactúa con ésta. Así cuando se abra nuevamente el programa. Para ello.64 cerrar el programa. y un diccionario llamado “Equipos” que contiene como claves a los tipos de equipos que puede simular el programa (corriente. Si la lista de compuestos está vacía. La clase Proyecto posee cinco métodos:  __init__: Este método recibe como parámetro un objeto de la clase BaseDeDatos y crea un atributo al que le asigna este parámetro.

También crea un documento Word nuevo donde se documentarán todos los cálculos realizados.xls” y se posiciona en la hoja cuyo nombre es igual al modelo de líquido. lee los valores de los coeficientes en las columnas siguientes y los almacena en un diccionario. Para cada pareja. Posee una función __init__ que define automáticamente algunas propiedades características de todo sistema termodinámico. Por ejemplo. Si la lista de compuestos está vacía. calcularPropiedades1 y calcularPropiedades2. Estos valores los recibe de un equipo de proceso como una corriente y luego los guarda en variables adecuadas. La función calcularComposicion tiene como propósito calcular el peso molecular medio de la mezcla y determinar la composición en masa si la composición está dada como fracciones molares o la composición molar en caso contrario. su presión. si la composición viene dada como fracción molar. abre el archivo “Actividad. etc. su composición. su temperatura. no hace nada. Después llama a las funciones: calcularComposicion a la que le envía como parámetro la composición del sistema. busca su nombre en la primera columna y. se calcula la fracción en peso mediante la siguiente fórmula: 𝜔𝑖 = 𝑧𝑖 ∙ 𝑃𝑀𝑖 𝑁 ∑𝑖=1 𝑧𝑖 ∙ 𝑃𝑀𝑖 Proyecto Integrador Scortechini . el nombre del sistema.  __getitem__  __setitem__ La clase SistemaTermodinamico Esta clase se utiliza para calcular todas las propiedades termodinámicas de una mezcla multicomponente. lo agrega a una lista de datos faltantes para solicitar posteriormente al usuario que ingrese esos datos a través de un diálogo. forma todas las combinaciones posibles de dos compuestos (sistemas binarios). si lo encuentra.65 no es la solución ideal. si no encuentra el nombre del sistema. por ejemplo una corriente de proceso. Para eso.

calcularTdew y evaluarFase. zi. la fracción molar. Cuando se completan estos cálculos. el peso molecular del compuesto “i” y el número de componentes de la mezcla respectivamente. PMi y N son la fracción en masa.66 Donde i. Cuando la composición está dada por fracciones en masa. Los pesos moleculares de los componentes del sistema los obtiene de la base de datos de propiedades. Con ese fin implementa el procedimiento mostrado a continuación (Smith. Además ∑𝑁 𝑖=1 𝑧𝑖 ∙ 𝑃𝑀𝑖 es el peso molecular medio de la mezcla. 1997): Proyecto Integrador Scortechini . se escribe un párrafo en el documento Word con el valor del peso molecular medio y se agregan dos tablas: una que muestra la composición molar y otra que muestra la composición en peso. La función calcularTbub sirve para determinar la temperatura de burbuja de una solución a partir de su presión y de su composición molar. La función calcularPropiedades1 tiene por objeto determinar la temperatura de burbuja. la fracción molar se calcula mediante: 𝑧𝑖 = 𝜔𝑖 ⁄𝑃𝑀𝑖 𝑁 ∑𝑖=1 𝜔𝑖 ⁄𝑃𝑀𝑖 Donde ∑𝑁 𝑖=1 𝜔𝑖 ⁄𝑃𝑀𝑖 es el peso molecular medio de la mezcla. la temperatura de rocío de la mezcla. Para eso llama a las funciones calcularTbub.

Elegir una especie “j” de referencia. {i}. {i}. sat Evaluar {Pi }. No ¿Es T<? Sí Guardar Tburbuja. Evaluar {i}. Calcular Pjsat con 𝑃𝑗𝑠𝑎𝑡 = 𝑃 𝑠𝑎𝑡 𝑠𝑎𝑡 ∑𝑁 𝑖=1(𝑥𝑖 ∙𝛾𝑖 ⁄Φ𝑖 )∙(𝑃𝑖 ⁄𝑃𝑗 ) 𝐵𝑗 Calcular Tburbuja con 𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 = 𝐴 𝑠𝑎𝑡 𝑗 −𝑙𝑛𝑃𝑗 . Procedimiento para calcular la temperatura de burbuja. 𝐵 𝑖 Calcular {Tisat} con la ecuación 𝑇𝑖𝑠𝑎𝑡 = 𝐴 −𝑙𝑛𝑃 − 𝐶𝑖 . Volver a evaluar Tburbuja. Evaluar {Pisat}. Por Proyecto Integrador Scortechini . Calcular {yi} con 𝑦𝑖 = 𝑥𝑖 ∙𝛾𝑖 ∙𝑃𝑖𝑠𝑎𝑡 𝑃∙Φ𝑖 . Fijar tolerancia del error: . La propiedad i se define como el cociente entre el coeficiente de fugacidad de la especie “i” en solución y el coeficiente de fugacidad de la especie “i” pura en la condición de saturación. Φ𝑖 = 𝜙̂𝑖 𝜙𝑖𝑠𝑎𝑡 Los coeficientes de actividad y los de fugacidad se evalúan de acuerdo a los modelos que haya seleccionado el usuario para representar líquidos y gases. constantes. Calcular 𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 = ∑𝑁 𝑖=1 𝑥𝑖 ∙ 𝑖 𝑇𝑖𝑠𝑎𝑡 . {xi}. − 𝐶𝑗 . Ajustar todas las i=1. {yi} Figura 7.67 Leer P. Calcular Pjsat.

¿Es T<? No Sí Guardar Trocío. Evaluar {Pisat}. de Van Laar. Evaluar {i}. 1997): Leer P. Ajustar todas las i=1 y todas las i =1. 𝛾𝑖 𝐵𝑗 𝑖 𝑠𝑎𝑡 𝑗 −𝑙𝑛𝑃𝑗 − 𝐶𝑗 . Calcular Pjsat con 𝑃𝑗𝑠𝑎𝑡 = 𝑃 ∙ ∑𝑁 𝑖=1 Recalcular Trocío con 𝑇𝑟𝑜𝑐í𝑜 = 𝐴 𝑃 𝑠𝑎𝑡 𝑦𝑖 ∙Φ𝑖 ∙ (𝑃𝑗𝑠𝑎𝑡). Procedimiento para calcular la temperatura de rocío. Elegir una especie “j” de referencia. Evaluar {i} ¿Es cada i <? No Sí Recalcular Pjsat y Trocío. {i}. constantes. Calcular {xi} con 𝑥𝑖 = 𝑦𝑖 ∙𝑃∙Φ𝑖 𝛾𝑖 ∙𝑃𝑖𝑠𝑎𝑡 . etc. Calcular Pjsat y volver a calcular Trocío. Para ello implementa el procedimiento mostrado a continuación (Smith. 𝑖=1 𝑦𝑖 ∙ 𝑇𝑖 sat Evaluar {Pi }. {i}. de Wilson.68 ejemplo: ecuación de Margules. Además T=|Tburbuja-Tburbuja anterior| El método calcularTdew determina la temperatura de rocío de una solución a partir de su presión y de su composición molar. Evaluar {Pisat} y {i}. Proyecto Integrador Scortechini . Calcular {Tisat} con la ecuación 𝑇𝑖𝑠𝑎𝑡 = 𝐵𝑖 𝐴𝑖 −𝑙𝑛𝑃 − 𝐶𝑖 . ecuaciones de estado. Calcular {xi} con 𝑥𝑖 = 𝑦𝑖 ∙𝑃∙Φ𝑖 𝛾𝑖 ∙𝑃𝑖𝑠𝑎𝑡 . {yi} Figura 8. Normalizar los valores de xi. Fijar tolerancia del error: . ecuación del Virial. {yi}. 𝑠𝑎𝑡 Estimar 𝑇𝑟𝑜𝑐í𝑜 = ∑𝑁 .

69 Donde T=|Trocío-Trocío anterior| La función evaluar fase compara la temperatura del sistema con la temperatura de burbuja y la temperatura de rocío. Si la temperatura es menor que la temperatura de burbuja. Si la temperatura es igual al punto de rocío se trata de un vapor saturado. de modo que: 𝐹 =𝐿+𝑉 Se define a la fracción de vapor  como la proporción del sistema que forma la fase vapor. También se define a la relación de equilibrio Ki como: 𝐾𝑖 = 𝑦𝑖 𝑥𝑖 Proyecto Integrador Scortechini . Si la temperatura del sistema se encuentra entre la temperatura de burbuja y la de rocío entonces se tiene una mezcla de líquido y vapor. Luego el balance de masa de una especie “i” se reduce a: 𝑧𝑖 = (1 − 𝛽) ∙ 𝑥𝑖 + 𝛽 ∙ 𝑦𝑖 Donde zi es la fracción molar global de la especie “i” en F. xi es la fracción molar en la fase líquida e yi es la fracción molar en la fase vapor. 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 líquido. mientras que si es mayor el sistema es un gas. Si la temperatura coincide con el punto de burbuja se trata de un líquido saturado. entonces: 𝛽= 𝑉 𝐹 De donde 𝑉 = 𝛽 ∙ 𝐹 𝑦 𝐿 = (1 − 𝛽) ∙ 𝐹. Para resolver esta situación se invoca a la función “calculoFlash”. El resultado de esta evaluación se almacena como una cadena de caracteres en el atributo “fase” del sistema. La función “calculoFlash” se basa en el principio de conservación de la masa de las especies que forman parte del sistema y en el hecho que las corrientes de líquido y vapor están en equilibrio. el sistema se encuentra como líquido subenfriado.

70 Entonces aplicando la definición de Ki al balance de masa resulta: 𝑦𝑖 = 𝑧𝑖 ∙ 𝐾𝑖 1 + 𝛽 ∙ (𝐾𝑖 − 1) 𝑥𝑖 = 𝑧𝑖 1 + 𝛽 ∙ (𝐾𝑖 − 1) Como en un sistema ∑ 𝑥𝑖 = ∑ 𝑦𝑖 = 1. Para iniciar el cálculo se obtiene una estimación inicial de  a partir de la relación: 𝛽−1 𝑇 − 𝑇𝑟𝑜𝑐í𝑜 = 0 − 1 𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 − 𝑇𝑟𝑜𝑐í𝑜 Proyecto Integrador Scortechini . 𝑁 𝑑𝐹 𝑧𝑖 ∙ (𝐾𝑖 − 1)2 = −∑ [1 + 𝛽 ∙ (𝐾𝑖 − 1)]2 𝑑𝛽 𝑖=1 Esto permite aplicar el método de Newton para encontrar el valor de  y garantizar su convergencia. se obtienen dos funciones: 𝑁 𝐹𝑦 = ∑ 𝑖=1 𝑁 𝐹𝑥 = ∑ 𝑖=1 𝑧𝑖 ∙ 𝐾𝑖 −1=0 1 + 𝛽 ∙ (𝐾𝑖 − 1) 𝑧𝑖 −1=0 1 + 𝛽 ∙ (𝐾𝑖 − 1) Por conveniencia se define: 𝑁 𝐹 = 𝐹𝑦 − 𝐹𝑥 = ∑ 𝑖=1 𝑧𝑖 ∙ (𝐾𝑖 − 1) =0 1 + 𝛽 ∙ (𝐾𝑖 − 1) La conveniencia de esta función es que su derivada es siempre negativa y por lo tanto F es monótona decreciente. 𝑑𝐹 𝐹 𝐹 + ( ) ∙ (𝛽𝑗 − 𝛽𝑗−1 ) = 0 ↔ 𝛽𝑗 = 𝛽𝑗−1 − (𝑁𝑒𝑤𝑡𝑜𝑛) 𝑑𝐹 𝑑𝛽 ( ) 𝑑𝛽 Donde el subíndice j de  representa el número de iteración.

se aplica el método de Newton hasta que se encuentra un valor final de . pero si es gaseoso entonces se corresponde con las propiedades residuales. energía interna.𝑏𝑢𝑟𝑏𝑢𝑗𝑎 − 𝛾𝑖.𝑟𝑜𝑐í𝑜 𝜙̂𝑖 − 𝜙̂𝑖. entropía. En cada caso las propiedades y parámetros se han calculado programando directamente las respectivas fórmulas que se presentaron en este capítulo. Van Laar y Wilson. energía libre de Gibbs. mientras que si es gaseoso el término ideal alude a una mezcla de gases ideales. Con éste se vuelven a estimar xi e yi. Si el sistema se encuentra en esta líquido el término ideal se refiere a una solución ideal. Virial. Se ha creado un clase particular para cada modelo termodinámico desarrollado en éste capítulo: mezcla de gases ideales. 1999).𝑏𝑢𝑟𝑏𝑢𝑗𝑎 − 𝜙̂𝑖. Ecuaciones cúbicas de estado que incluye Redlich-Kwong. xi e yi con los cuales se pueden calcular los caudales de líquido. Soave-Redlich-Kwong y Peng-Robinson. Cada propiedad se plantea como la suma de dos términos: un término ideal y otro corrector. volumen y energía de Helmholtz molares o específicas dependiendo de si el usuario decidió trabajar con composiciones molares o en masa. el programa Proyecto Integrador Scortechini . con estos valores iniciales se pueden obtener los Ki según: 𝐾𝑖 = 𝑦𝑖 𝛾𝑖 ∙ 𝑃𝑖𝑠𝑎𝑡 = 𝑥𝑖 𝑃 ∙ Φ𝑖 Entonces se pueden evaluar las funciones F y dF/d.𝑟𝑜𝑐í𝑜 𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 − 𝑇𝑟𝑜𝑐í𝑜 Los valores de los coeficientes de actividad y de fugacidad para el rocío y la burbuja se obtuvieron durante el proceso de cálculo de las respectivas temperaturas. Margules.𝑟𝑜𝑐í𝑜 𝜙̂𝑖. El término corrector cuando el sistema es líquido son las propiedades en exceso. y se evalúan de nuevo {i} y {𝜙̂𝑖 }. solución ideal. El procedimiento se repite hasta obtener valores constantes de .71 Las estimaciones iniciales de {i} y {𝜙̂𝑖 } surgen de: 𝛾𝑖 − 𝛾𝑖.𝑟𝑜𝑐í𝑜 𝑇 − 𝑇𝑟𝑜𝑐í𝑜 = = 𝛾𝑖. de vapor y queda determinada la composición de cada fase (Scenna. En función del estado de agregación del sistema. La función calcularPropiedades2 sirve para calcular las propiedades termodinámicas intensivas de la mezcla: entalpía. Así.

que a su vez abren otras ventanas con respectivo su arsenal de pestañas y más columnas. ofrece muy pocos menús en la barra. quedando éste saturado con muchos submenús. sólo son tres: “File”. “Format”. El menú “Specifications” debería preceder a “Thermophysical” y a “Run Simulation”. y sus nombres no permiten inferir fácilmente su función. tipo de caudales. Algo similar ocurre con UNISIM (HoneyWell. 2003). “View”. Esto hace de la configuración un proceso largo y tedioso para el usuario abrumándolo con demasiadas opciones (Aspen Technology Inc. “Edit”. “Run Simulation” y antes que el menú “Specifications” donde se eligen el sistema de unidades. compuestos que intervienen en el proceso. Los primeros pasos Un defecto observado en los simuladores comerciales es que los submenús que sirven para hacer la configuración del sistema están dispersos en distintos menús que se encuentran separados. Proyecto Integrador Scortechini . “Tools” y “Help”. suma los términos ideal y corrector para obtener la propiedad real del sistema. 2010). De modo que la mayoría de los submenús están en “Tools”. En el caso de HYSYS. éste se encuentra en la sexta posición después de “File”. Una vez que dispone de los resultados. A su vez cada submenú ofrece una cantidad excesiva de posibilidades de configuración distribuidas en múltiples pestañas y columnas. Por ejemplo CHEMCAD posee un menú llamado “ThermoPhysical” que permite seleccionar los paquetes de funciones termodinámicas.72 diagnostica automáticamente que tipo de propiedades deben calcularse y crea un objeto de la clase correspondiente. etc.

Figura 10. Proyecto Integrador Scortechini .73 Figura 9. Pantalla de Configuración de HYSYS. Otra pantalla de Configuración de HYSYS.

Pantalla de selección de compuestos de UNISIM. Una de las características del programa desarrollado es que todos los elementos necesarios para operarlo se presentan en un orden lógico y son fáciles de utilizar. de la lista de compuestos. Pantalla de configuración de UNISIM.74 Figura 11. Proyecto Integrador Scortechini . el primer menú se llama Configuración y sirve para establecer las condiciones generales del proceso (configuración general. Así. Figura 12. de los modelos termodinámicos o del tipo de caudales). del sistema de unidades.

listas desplegables. también se le enlazó el evento de menú y el método al que debe responder en caso de que se produzca dicho evento. El submenú “General” permite configurar todo el sistema (los demás submenús permiten hacer configuraciones de ítems puntuales). Tiene un método __init__ que se encarga de crear la ventana de diálogo que ofrece al usuario todas las opciones de configuración y que se muestra a continuación: Proyecto Integrador Scortechini .Frame que permite la creación de ventanas.. y “Componentes”. Cuando se selecciona se produce un evento de menú (esto ocurre siempre que se selecciona un menú o submenú). Menú de configuración general del simulador. que contiene definiciones de componentes visuales tales como: texto estático. etc. Cuando se definió cada submenú en el módulo “menus”. El método “onConfGral” crea un objeto de la clase “DialogoConfGral” (definido en el módulo “dialogos”) y le envía como parámetros el objeto de la clase “Proyecto” que representa al proceso y otro objeto de la clase “BaseDeDatos”. El método enlazado al submenú “General” se llama “onConfGral” y su definición se encuentra en la biblioteca “metodos”.75 Figura 13. desarrollada en este proyecto. La clase “DialogoConfGral” hereda de dos superclases: wx. así como funciones que automatizan su creación en masa para aumentar la eficiencia del proceso y ahorrar código. botones. control de texto.

Para ello crea una ventana con barras de desplazamiento que contendrá a todos los paneles. se seleccionen Proyecto Integrador Scortechini . después llama a las funciones que hereda de la clase “Componentes” para la creación automática de un panel por cada ítem a configurar. y un tercer método agrega los paneles a la ventana principal del diálogo. Después tiene un método que permite agregar los componentes creados a unos algoritmos llamados “sizers” (dimensionadores) que se encargan de hacer la distribución física (Layout) de esos componentes en la pantalla para asegurarse que quepan. cuando el usuario seleccione el Sistema Internacional o el Sistema Inglés como sistema de unidades. modelos de gases y de líquidos. un cuadro de lista para seleccionar los compuestos que forman parte del proceso y listas desplegables con opciones de unidades para propiedades particulares. Diálogo de configuración general.76 Figura 14. El método “OnRadio” se encarga de hacer que. si es que ésta existe (sino no hace nada). textos estáticos que indican el ítem que se configura en cada panel. luego asigna los dimensionadores a los correspondientes paneles. Finalmente llama al método “cargar” que intenta cargar información a partir del proceso. cajas de botones de radio para seleccionar el sistema de unidades.

Si el usuario acepta los datos se escriben en los respectivos archivos Excel. Si el usuario omite algún dato el sistema le muestra un mensaje de error indicándole que debe completar todos los campos. pues estos datos son indispensables para los cálculos posteriores. si es así entonces no hace nada. Después llama al método “revisarActividad” que hace algo similar pero para los coeficientes de la ecuación de actividad. en caso contrario crea un objeto de la clase “CpLDialog” que abre otra ventana de diálogo y le muestra al usuario una tabla componentes-coeficientes. de los contrario sus valores se utilizan para los cálculos del proceso actual pero no estarán disponibles para otros procesos diferentes. Finalmente. También estos diálogos le muestran al usuario del programa un mensaje ofreciéndole incorporar los datos ingresados de forma permanente a la base de datos. invitándolo a ingresar la información faltante. Mensaje de error durante la configuración de Cp líquidos. El método “OnRecuperar” responde al evento de presión del botón “Aceptar” y se encarga de revisar todos los controles que se muestran en el diálogo para recuperar las opciones seleccionadas y se las asigna al atributo correspondiente del objeto “Proyecto” que representa al proceso. llama al método “onCerrar” que cierra la ventana y destruye a su objeto asociado. Proyecto Integrador Scortechini . Cabe aclarar que el usuario debe completar obligatoriamente todas las celdas de las tablas mostradas por los dos diálogos anteriores. Figura 15. si el modelo de líquidos es la solución ideal esta función no hace nada. Luego llama a la función “revisarCpL” que verifica que los coeficientes para calcular la capacidad calorífica líquida de los compuestos seleccionados estén en la base de datos.77 automáticamente las unidades correspondientes en las listas desplegables de las respectivas propiedades. pero el objeto tipo Proyecto retiene toda la información recolectada.

selecciona las opciones correspondientes en las cajas de botones de radio. que se muestran en pantalla. cuadro de lista. Proyecto Integrador Scortechini . Parámetros de los modelos de actividad. Esta función se invoca automáticamente. etc. lista de compuestos. las opciones son: Sistema Internacional. a través del método __init__. Tiene una lista que relaciona los atributos de proceso (sistema de unidades. etc. las unidades de todas las propiedades se seleccionan automáticamente. Sistema Inglés y Sistema Personalizado.78 Figura 16. de lo contrario el usuario debe seleccionar las unidades para formar su propio sistema de unidades personalizado. Si el usuario selecciona cualquiera de los dos primeros. cada vez que se abre la ventana de diálogo después de haber creado todos los componentes visuales de la misma. Diálogo de configuración para Cp líquidos. listas desplegables. El primer panel permite seleccionar el sistema de unidades a utilizar. Entonces revisa los atributos del proceso y. Figura 17.) con los respectivos componentes visuales que muestran su contenido en pantalla. si tienen asignado algún valor. La función “cargar” hace el trabajo opuesto a “OnRecuperar”.

El quinto panel ofrece opciones para modelar líquidos (solución ideal. Este submenú tiene enlazado un evento de menú al que responde llamando a la función “onNuevoProc” que crea un diálogo estándar de wxPython de ingreso de Proyecto Integrador Scortechini .). Los restantes permiten configurar unidades de propiedades particulares. Cuando se ha completado la selección. El cuarto le ofrece varios modelos para representar gases entre los que están el gas ideal.79 El segundo panel permite seleccionar los compuestos que se utilizarán en el proceso de una lista con 469 compuestos. Si se desea crear un nuevo proceso se debe seleccionar el submenú “Nuevo”. se debe oprimir el botón “Aceptar” para guardar la selección o “Cancelar” para salir sin recuperar ninguna selección. caudales. Los restantes submenús del menú “Configuración” permiten hacer configuraciones análogas a “General” pero sólo de los atributos sugeridos por sus nombres (Lista de compuestos. la ecuación Virial y tres ecuaciones de estado cúbicas. Menú Archivo del simulador. Luego se debe continuar con el menú “Archivo” que se encuentra inmediatamente a continuación del menú “Configuración”. de Van Laar o de Wilson). Figura 18. la mayoría orgánicos. ecuación de Margules. etc. El tercer panel permite optar por caudales másicos o molares.

Si se desea modificar un proceso que ya existe. Proyecto Integrador Scortechini .80 texto para preguntar el nombre que se le desea dar al nuevo proceso. seleccionar éste último y entonces el programa abre el archivo y carga toda la información disponible. Figura 19. Luego llama al método “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. Se debe buscar la carpeta donde esté guardado el archivo. Éste responde al evento de menú llamando al método “onAbrir” que muestra un diálogo estándar de wxPython para la apertura de archivos. Diálogo para nombrar el proyecto. entonces se debe seleccionar el submenú “Abrir”. Diálogo de apertura de proyectos. recupera el texto ingresado y se lo asigna al atributo Nombre del objeto “Proyecto”. Figura 20.

o la herramienta equivalente de la barra de herramientas. Una vez completados estos primeros pasos preliminares. nodo divisor. se genera un evento de menú y se llama al método “onIcono”. “Guardar como” tiene asociado un método que abre un diálogo muy parecido a aquel para abrir un archivo. etc. en vez de texto. una imagen característica que se usa para representar a cada equipo (esa imagen coincide con el ícono del submenú correspondiente) y de enlazarle una serie de eventos. Para construir el diagrama de flujo de proceso. por falta de tiempo. mezcladores. si el diccionario no está vacío (o sea. entonces crea un botón imagen con el ícono que representa a esa clase de equipo y los enlaza con el objeto correspondiente que contiene la información de ese equipo. mezclador. Esta función se encarga de crear un botón que muestre. Éste contiene submenús que nos permiten crear corrientes de proceso. 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 información disponible acerca de ellos.). El submenú “Cerrar” está enlazado a un método llamado “OnSalir” que cierra la ventana del simulador y destruye todos los objetos creados. Cuando se selecciona cualquiera de estos submenús. El submenú “Imprimir” se pensó con el fin de imprimir el contenido de la pantalla de la computadora. pero éste sirve para guardar. etc. Los recursos necesarios para eso se encuentran en el menú “Insertar”. debemos crear equipos y agregarlos al paño de diseño en la ventana principal.81 Además el método “Abrir” invoca a otro llamado “generarFlowsheet” que se encarga de reconstruir el diagrama de flujo del proceso. pero no se realizó la programación para implementar esa función primero por no considerarse prioritaria y. Proyecto Integrador Scortechini . al final. Para eso revisa el diccionario “Equipos” del objeto clase “Proyecto” clave por clave (corriente. respectivamente. si hay equipos de ese tipo). Los submenús “Guardar” y “Guardar como” sirven para guardar los cambios en un proceso existente y para guardar un proyecto recién creado. nodos divisores.

Proyecto Integrador Scortechini .82 Figura 21. se recupera el texto ingresado y se guarda en una variable llamada “nombre”. Menú Insertar del simulador. cuando el usuario hace clic sobre el botón “OK”. Luego se llama al método “preguntarNombre” que abre un diálogo estándar de ingreso de texto para preguntarle al usuario el nombre que desea darle a ese equipo. Figura 22. Diálogo para nombrar un nuevo equipo. primero recupera el nombre del submenú seleccionado (o herramienta seleccionada) para saber de qué tipo de equipo se trata y guarda este valor en una variable llamada “tipo”. Para eso.

estando éste dentro de los límites del botón. que pertenece al panel principal de la aplicación. se llama al método “buscarIcono”. que tiene un diccionario usado para obtener el nombre del archivo de imagen usado para representar a cada tipo de equipo. ‘Flash’:{} (No hay ningún flash diccionario vacío)} De forma análoga existe un diccionario “Equipos” que pertenece a la pantalla principal. Después se crea un objeto que se encargará de acumular la información del equipo.. “Configurar” y “Borrar”. el evento menú contextual. El método “crearPopup” es el encargado de fabricar el menú emergente. al que se le pasa como argumento el tipo de equipo. ‘F035’:botónF035}. para ello. Entonces se crea un botón de imagen. ‘F035’:objetoF035}. su tipo y el botón que lo representa. guarda la referencia de los botones. ‘Tanque_Agitado_Continuo’:{‘T-001’:objetoT-001}. pero en vez de objetos clase equipo. y que tiene como fondo la imagen creada anteriormente. A cada uno de los botones creados se le enlaza este evento y. Esta función tiene la finalidad de enlazar un menú contextual (también llamado emergente o Pop-up en inglés) al botón en cuestión. si es un intercambiador de calor se crea un objeto de la clase Intercambiador. etc. ‘Flash’:{} (No hay ningún flash diccionario vacío)} Uno de los eventos enlazados al botón es de particular interés. y se establecen referencias que relacionan al nombre del equipo con el objeto que almacenará sus datos y con el botón sobre el paño que es la parte del equipo que el usuario verá. después llama al método “crearPopup” y le asigna al botón el menú contextual. Para ello tiene que determinar primero el nombre del equipo. si es una corriente se crea un objeto de la clase Corriente. Este evento ocurre cuando el usuario hace clic con el botón derecho del mouse. Proyecto Integrador Scortechini . crea un menú y tres submenús: “Orientación”.83 A continuación. en respuesta al mismo. se ejecuta la función “onShowPopup”. El objeto que representa al equipo se agrega al diccionario de “Equipos” del objeto clase “Proyecto” dentro del diccionario correspondiente al tipo de equipo. ‘Tanque_Agitado_Continuo’:{‘T-001’:botónT-001}. a partir de éste se crea una imagen tipo mapa de bits y se la guarda en la variable llamada “bmp”. por ejemplo: Equipos = {‘Corriente’:{‘F01’:objetoF01. Equipos = {‘Corriente’:{‘F01’:botónF01.

84

Figura 23. Menú emergente y sus distintas opciones.
El submenú “Orientación” ofrece alternativas de representación para cada equipo.
Para eso muestra un menú con distintas imágenes, cuando el usuario selecciona
una de ellas se produce un evento de menú que dispara el método
“onCambiarIcono” que recupera la opción seleccionada, prepara una imagen mapa
de bits con ese símbolo y luego cambia la imagen original mostrada por el botón por
la nueva selección.

Figura 24. Ejemplo de un pequeño diagrama de flujo.

Proyecto Integrador Scortechini

85
El submenú “Configurar” genera un evento que llama a la función “onDialogar”,
dependiendo del tipo de equipo, ésta crea una ventana de diálogo que permite
introducir y visualizar información relativa a ese equipo (cuando se trate cada equipo
en particular más adelante, se ampliará este punto).
Mientras que el submenú “Borrar” sirve para eliminar un equipo del proceso, como
consecuencia se destruye el botón que representa a ese equipo en la pantalla y
también el objeto que contiene toda su información.

Corriente

En este proyecto se supone que la corriente es una sola fase en la que no ocurren
reacciones químicas. El estado de agregación del sistema lo determina
automáticamente el método “evaluarFase” de la biblioteca termodinámica. Si la
corriente cae en la región de dos fases se muestra un mensaje de error y se le pide
al usuario que considere una separación flash. Para ello se creó el menú “Flash” que
se detallará más adelante. La corriente se representa mediante una flecha.

Figura 25. Representación de una corriente.
A continuación se muestra un análisis de los grados de libertad.
Tabla 5. Análisis de Corriente
Variables

Ecuaciones

Tipo

Cantidad Tipo

Temperatura (T)

1

Presión (P)

1

Cantidad

Suma de fracciones igual a uno 1

Composiciones (zi o i) N
Caudal (F)

1

Total

N+3

Grados de Libertad

Total
N+2

Proyecto Integrador Scortechini

1

86
En la tabla anterior, y de aquí en adelante, N es el número de compuestos que
intervienen en el proceso. Si se conoce este número es posible saber el número
máximo de grados de libertad del sistema. Por ejemplo, si se proporcionan caudal,
temperatura, presión 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 método que se
activa crea un objeto de la clase “Corriente”. Ésta contiene ocho métodos:

__init__:

Este

método

recibe

como

parámetros

un

objeto

clase

“BaseDeDatos” con el que crea un atributo “BD” que es la base de datos
propia de la corriente, y el objeto clase “Proyecto”. También crea los atributos
“Nombre”, “Caudal”, “T” y “P” que contienen la temperatura y la presión de la
corriente, “Composicion” que es un diccionario compuesto:fracción para
almacenar la composición molar o en masa del objeto. Los atributos “PM”,
“Composicion2”, “Tbub”, “Tdew”, “fase” almacenarán el peso molecular medio,
la composición alternativa en masa o molar, la temperatura de burbuja, la de
rocío, el estado de agregación respectivamente cuando se calculen
automáticamente esas propiedades. A los atributos anteriores se les asigna
un valor inicial simbólico, generado automáticamente, después de su
creación. Más adelante el usuario podrá visualizar esos valores, modificarlos
por símbolos propios o reemplazarlos por datos si así lo desea. Si el usuario
decidió trabajar con caudales molares en la configuración general del
proceso, entonces el diccionario “Composicion” hace referencia a la
composición molar y tanto el diccionario “Composicion2” como el término
“Composición alternativa” se refieren a la composición en masa. En cambio
cuando se trabaja con caudales másicos la “Composicion” alude a las
fracciones en masa y la “Composicion2” junto con la “Composición alternativa”
corresponden a las fracciones molares. Otros atributo como “H”, “V”, “S”, “G”,
“U”, y “A” sirven para guardar las propiedades termodinámicas entalpía,
volumen, entropía, energía libre de Gibbs, energía interna y energía de
Helmholtz molares o específicas de la mezcla dependiendo de con qué tipo
de caudales se esté trabajando. “ecs” e “inc” son listas donde se almacenarán
las ecuaciones e incógnitas propias de la corriente, “GL” que representa a los
grados de libertad, “unidades” que es un diccionario propiedad:unidad para

Proyecto Integrador Scortechini

la temperatura.  Buscar_Incognitas: Esta función sirve para identificar las propiedades de la corriente cuyo valor es desconocido. Si no puede hacer lo anterior. Para ello llama a las funciones “Buscar_Incognitas”. este tema se tratará más adelante con mayor detalle. luego considera el caudal. se vacían). la presión y cada una de las composiciones y revisa. entonces ejecuta el bloque de sentencias después de “except” que agrega el valor simbólico a la lista de incógnitas y al diccionario “ref” agrega el par propiedad:valor simbólico. sus valores con una estructura tryexcept. en cuyo Proyecto Integrador Scortechini . Después utiliza una estructura try-except para hacer una prueba. luego le resta uno a la suma y guarda el resultado en una variable local llamada “ec”. La función “Buscar_Incognitas” primero reinicia la lista de incógnitas y el diccionario de referencias (si tenían algo.  Actualizar: Este método sirve para llevar a cabo el proceso de actualización de la corriente. si los grados de libertad son cero se llama al método “Resolver” y luego a “Calcular_Props”. si tiene éxito significa que el valor de esa propiedad es conocido.  Formular_Ecuaciones: Este método se encarga de generar automáticamente las ecuaciones asociadas a la corriente. o que la suma sea un número real distinto de cero. En el bloque “try” intenta convertir “ec” en un número real. interpreta que el valor de esa propiedad es desconocido y se trata de un símbolo algebraico.87 relacionar el nombre de cada propiedad con su correspondiente unidad y “ref” que es un diccionario símbolo:atributo que relaciona los símbolos de las incógnitas con el correspondiente atributo de la corriente donde deberá colocarse el resultado una vez que sea resuelta. donde zi representa la fracción (molar o en peso) de la especie “i” en la corriente. en realidad se trata sólo de una 𝑁 ∑𝑁 𝑖=1 𝑧𝑖 = 1 ↔ ∑𝑖=1 𝑧𝑖 − 1 = 0. Esos valores los debe ingresar el usuario a través del diálogo de configuración de corriente. Para eso utiliza la función “sum” que suma las fracciones de los compuestos. intentando resolver las ecuaciones de la corriente. uno por uno. no hace nada y pasa a la siguiente propiedad. 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 ecuación de restricción. El bloque dentro del “try” intenta convertir el valor de la propiedad en un número real. entonces no hace nada. “Formular_Ecuaciones” y “CalcularGL”.

 Resolver: Es un método que sirve para intentar resolver la ecuación de restricción de la corriente. lo que significa que los datos son incompatibles y entonces muestra un mensaje en pantalla notificando el problema. Le envía como parámetros la temperatura. crea un objeto de la clase “SistemaTermodinamico”.88 caso todas las fracciones son conocidas (sino no podría convertir a “ec” en real) pero su suma es distinta de la unidad. Además le pasa una lista con los nombres de las propiedades que desea obtener como respuesta. la presión. Entonces llama a la función “solve” de la biblioteca “Sympy” de Python. elimina la composición calculada de la lista de incógnitas y también elimina la ecuación pues ya fue resuelta. la composición alternativa. Si no puede convertir a “ec” en número real. le asigna el valor calculado a ese atributo. Para eso. entonces significa que debe haber al menos una composición desconocida y agrega “ec” a la lista de ecuaciones “ecs”. “ref” devuelve el nombre de la propiedad de la corriente que está asociado con ese símbolo. entropía. la composición. volumen. Proyecto Integrador Scortechini . le pasa como argumento la ecuación de restricción y la instrucción que devuelva un diccionario símbolo:valor como respuesta.  Calcular_GL: Sirve para calcular el número de grados de libertad de la corriente que se obtiene como la diferencia entre la longitud (cantidad de elementos) de la lista de incógnitas y la longitud de la lista de ecuaciones.  Calcular_Props: Esta función sirve para calcular el peso molecular medio. etc. Luego. la temperatura y presión de referencia. evaluar el estado de agregación del sistema. la lista de compuestos. la temperatura de burbuja y de rocío. Si ese es el caso se tiene una ecuación con una incógnita que puede resolverse. Cuando se completan esos cálculos los resultados se almacenan en las variables apropiadas de la corriente. le pasa al diccionario “ref” la clave del diccionario respuesta. El funcionamiento del objeto “SistemaTermodinamico” se explicó en el “Capítulo 4: Termodinámica”. molares o específicas. Para ello. También calcula las propiedades termodinámicas entalpía. los modelos termodinámicos seleccionados. primero verifica que todas las composiciones excepto una sean conocidas. Si existe más de una composición desconocida no hace nada. Posteriormente disminuye en uno el número de grados de libertad.

El primer panel contiene un texto estático que nos informa el propósito del diálogo (configurar la corriente). cuarto y quinto. el primero identifica la propiedad de la corriente (el nombre) y el segundo muestra su valor (por ejemplo. La pantalla de configuración de corriente está compuesta por once paneles. El sexto panel tiene un texto estático a los efectos de informar que se usa para configurar la composición y una tabla que muestra la composición de la corriente y también permite modificarla. composición en masa si se trabaja con caudales molares y viceversa. si es que hay datos disponibles (o sea si fueron ingresados previamente). la temperatura y la presión respectivamente. las ecuaciones y los grados Proyecto Integrador Scortechini .89  CalcularH1: Es una función que asiste a otra. el objeto “Corriente” al que representa y la base de datos de propiedades. donde la propiedad es el caudal. realizar cálculos. Estos valores pueden visualizarse cuando la corriente está completamente resuelta. energía libre. Los paneles tercero. interna. punto de burbuja y de rocío. cada fila representa un compuesto y en la única columna se muestra su fracción molar o en peso de acuerdo con lo elegido en la configuración general del proceso. Los paneles octavo. Por razones de claridad se pospone la explicación de este método hasta que se trate el balance de energía en la sección dedicada a la clase “Mezclador”. ingresar datos nuevos. Cuando se selecciona la opción “Configurar” del menú pop-up el método “onDialogar” crea un objeto de la clase “DialogoCorriente”. encargada de realizar el balance de energía. Luego el dialogo se muestra en pantalla. estado de agregación. pues allí se revela su utilidad. La clase “DialogoCorriente” sirve para crear una ventana que le permita al usuario visualizar la información conocida de esa corriente. volumen molares. la creación de estos junto con los componentes que contienen. “F01”). modificarla. El “DialogoCorriente” recibe como parámetros: el objeto “Proyecto”. está codificada en el método __init__ de la clase “DialogoCorriente”. externa a la clase “Corriente”. un control de texto que permite introducir o visualizar su valor y una lista desplegable que muestra la unidad de esa propiedad. entropía. entalpía. de Helmholtz. contienen un texto estático que identifica la propiedad de la corriente. El séptimo panel sirve para visualizar propiedades de la corriente como peso molecular medio. noveno y décimo muestran textos estáticos para visualizar las incógnitas. El segundo panel contiene dos textos. etc.

por lo tanto no hay cambios en los valores de las propiedades. Diálogo de configuración de corriente. Corriente y BaseDeDatos) sin recuperar ninguna información. Proyecto Integrador Scortechini .90 de libertad asociados a la corriente respectivamente. El último panel contiene tres botones: “Aceptar”. “Actualizar” y “Cancelar”. llamado “onCancelar” que cierra la ventana del diálogo y destruye todos sus componentes visuales (mas no los objetos Proyecto. El botón “Cancelar” tiene asociado un método. A continuación se muestra una imagen de la pantalla con algunos datos cargados: Figura 26.

en vez de interpretarlos como valores desconocidos. si tienen éxito entonces quiere decir que se trata de valores conocidos y se guardan como números reales. en el caso de las unidades de las propiedades. el equivalente a una palabra. La función “onRecuperar” se encarga de guardar los cambios en las propiedades antes de actualizar la corriente. después llama al método “Actualizar” del objeto clase “Corriente” y luego al método “onCancelar”. Aquí hay una diferencia importante con los simuladores comerciales. algunos como UNISIM. “x2”) a número real entonces se interpreta que se trata de una incógnita. se almacenan en ese formato en un diccionario. Pero si se produce una falla se genera la excepción y se ejecuta el bloque de código contenido dentro del “except” (excepto). otros interpretan los espacios en blanco como incógnitas. no permiten ingresar caracteres que no sean numéricos en las tablas de composición y si se dejan espacios en blanco. si se trata de datos (valores conocidos) se tienen que almacenar como números reales. Para eso. Pero los valores de la temperatura. la composición y el caudal no deben almacenarse como cadenas de caracteres. Estos datos se recuperan como cadenas de caracteres.91 El botón “Aceptar” tiene enlazado el método “onAceptar” que llama a la función “onRecuperar” . ajusta automáticamente a cero los valores respectivos. pero no permiten ingresar Proyecto Integrador Scortechini . se crea un símbolo algebraico que lo represente a partir de esa cadena de caracteres (“x2”) y se guarda el valor como un símbolo. en cambio si su valor es desconocido deben guardarse como un símbolo algebraico. Para hacer eso posible se utiliza una estructura llamada “excepción” 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 número real. del objeto clase “Corriente”. la presión. tiene diccionarios que relacionan los componentes del diálogo (que se ven en pantalla) con los atributos del objeto “Corriente” (que no se ven directamente en pantalla) y funciones intrínsecas para recuperar los datos ingresados o las opciones seleccionadas. Esto implica que es imposible convertir el valor ingresado por el usuario (por ejemplo. tipo propiedad:unidad.

ecuaciones y grados de libertad. Después se invoca al método “SetEIGL” que se encarga de recuperar la lista de ecuaciones. Generación de incógnitas. y se oprime el botón “Actualizar” sucede algo interesante: Proyecto Integrador Scortechini . Si se agrega una composición más a la tabla. temperatura y presión de la corriente y llama al método “SetCompo”. La función “SetCompo” revisa el diccionario de composición del objeto clase “Corriente”. esta representación es interna y esos programas asignan un código especial que identifican como incógnita pero que es ajeno al usuario y éste no lo puede editar. relaciona el nombre de cada compuesto con el número de fila en la tabla de composición que corresponde a esa especie. La diferencia con respecto al botón “Aceptar” es que “Actualizar” no cierra la ventana del diálogo. la de incógnitas y el número de grados de libertad de la corriente.10. por ejemplo reemplazar wMetanol por 0. Éste ejecuta la función “onRecuperar”. Como resultado de los pasos anteriores la pantalla del diálogo se actualiza. después invoca al método “Actualizar” del objeto clase “Corriente” y activa el método “OnCargar” para recargar la información de la corriente. “OnCargar” se encarga de actualizar los valores de caudal.92 un símbolo que las represente. El botón “Actualizar” desencadena un evento de botón que llama al método “OnActualizar”. A continuación se muestra un ejemplo de la parte inferior de la pantalla: Figura 27. los convierte en cadenas de caracteres y luego le asigna esa cadena al valor de los textos estáticos en los paneles que muestran esos datos. convierte el valor de la fracción molar (o en peso) a una cadena de caracteres y la asigna a la celda apropiada en la tabla.

93

Figura 28. Resolución de ecuaciones de corriente.
La corriente no está completamente resuelta pues el número de grados de libertad
no es cero, sin embargo el dato agregado es suficiente para determinar
completamente la composición de la corriente. Los métodos de revisión y resolución
del objeto clase “Corriente” son capaces de detectar esta situación. Así, al actualizar,
estos nuevos resultados se muestran en pantalla y el sistema queda esperando
nueva información.
Además, cuando se conocen temperatura, presión y composición (molar o másica)
completa de la corriente es posible calcular el peso molecular medio, la composición
alternativa (másica o molar), punto de burbuja, de rocío y las propiedades
Proyecto Integrador Scortechini

94
termodinámicas intensivas de mezcla. Si ocurre este suceso se llama al método
“Calcular_Props” que se encarga de calcular las propiedades mencionadas
anteriormente.
Para eso se utiliza la biblioteca de funciones termodinámicas. Se crea un objeto
clase “SistemaTermodinamico” al que se le envía como argumentos: el objeto
corriente, su temperatura, su presión, la composición, el modelo de gases, el modelo
de líquidos, el tipo de caudales con que se trabaja. Luego este objeto se encarga de
realizar el cálculo 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 cálculos implicados se describieron en el capítulo de Termodinámica.

Nodo Divisor

En este proyecto se supone para el nodo divisor que Q = W = 0, y que en el proceso
no interviene el balance de energía.

Figura 29. Representación gráfica de un nodo divisor.
Está implícito el hecho de que las temperaturas, presiones y composiciones de las
corrientes de entrada y de salida son idénticas. La cuenta del número total de
variables, del número total de restricciones y de grados de libertad es la siguiente:

Proyecto Integrador Scortechini

95
Tabla 6. Análisis de Nodo Divisor
Variables

Ecuaciones

Tipo

Cantidad Tipo

Cantidad

Temperatura (T)

3

Balances de Materia

1

Presión (P)

3

Igualdad de composición de F, P1 y P2 2(N-1)

Composición (zi o i) 3N

TF=TP1=TP2

2

Caudal (F)

PF=PP2=PP3

2

Suma de fracciones igual a uno

3

Total

2N+6

Total

3

3N+9

Grados de Libertad

N+3

Sólo se tiene en cuenta un balance de masa porque como 𝑧𝑖
,𝐹 = 𝑧𝑖,𝑃1 = 𝑧𝑖,𝑃2 𝑝𝑎𝑟𝑎 1 ≤ 𝑖 ≤ 𝑁
Entonces los N balances de masa por componente: 𝐹
∙ 𝑧𝑖,𝐹 = 𝑃1 ∙ 𝑧𝑖,𝑃1 + 𝑃2 ∙ 𝑧𝑖,𝑃2 𝑝𝑎𝑟𝑎 1 ≤ 𝑖 ≤ 𝑁

Se reducen al balance de masa global: 𝐹
= 𝑃1 + 𝑃2
Así, el número máximo de grados de libertad de un nodo divisor es N+3. Por
ejemplo, si se especifica el caudal de la alimentación, su composición, su
temperatura y presión, junto con uno de los caudales de salida se pueden resolver
todas las ecuaciones del nodo divisor (Himmelblau, 1997) (Sifuentes, 2000).
Cuando se selecciona el submenú, o herramienta de, “Nodo Divisor”, el método que
se activa crea un objeto de la clase “Nodo_Divisor”. Ésta contiene cinco métodos:

__init__: Este método recibe como atributos un objeto clase “BaseDeDatos”
con el que crea un atributo “BD” que es la base de datos del nodo divisor, y el
objeto clase “Proyecto”. También crea los atributos “Nombre”, “Entrada” que
contiene el nombre de la corriente de alimentación del nodo, “Salida1” y
“Salida2” que contienen los nombres de las corrientes de salida del nodo,
Proyecto Integrador Scortechini

incógnitas y grados de libertad se refieren al nodo divisor. a partir de esta lista. Cuando hay cero grados de libertad se invoca a la función “Resolver”.𝑆𝑎𝑙𝑖𝑑𝑎1 = 𝑧𝑖. “inc” y “GL” cumplen una función análoga a los atributos homónimos de la clase “Corriente”.  Formular_Ecuaciones: Esta función sirve para generar automáticamente la ecuación del balance de masa que se reduce a: 𝐶𝑎𝑢𝑑𝑎𝑙 𝐸𝑛𝑡𝑟𝑎𝑑𝑎 = 𝐶𝑎𝑢𝑑𝑎𝑙 𝑆𝑎𝑙𝑖𝑑𝑎1 + 𝐶𝑎𝑢𝑑𝑎𝑙 𝑆𝑎𝑙𝑖𝑑𝑎2 porque las composiciones de las corrientes son idénticas.𝐸𝑛𝑡𝑟𝑎𝑑𝑎 = 𝑧𝑖. Agrega las ecuaciones generadas a la lista de ecuaciones del nodo divisor y. “Propiedades” es un diccionario que almacena el caudal.𝑆𝑎𝑙𝑖𝑑𝑎2 𝑝𝑎𝑟𝑎 1 ≤ 𝑖 ≤ 𝑁 − 1 𝑇𝐸𝑛𝑡𝑟𝑎𝑑𝑎 = 𝑇𝑆𝑎𝑙𝑖𝑑𝑎1 𝑇𝐸𝑛𝑡𝑟𝑎𝑑𝑎 = 𝑇𝑆𝑎𝑙𝑖𝑑𝑎2 𝑃𝐸𝑛𝑡𝑟𝑎𝑑𝑎 = 𝑃𝑆𝑎𝑙𝑖𝑑𝑎1 𝑃𝐸𝑛𝑡𝑟𝑎𝑑𝑎 = 𝑃𝑆𝑎𝑙𝑖𝑑𝑎2 Además se importan las ecuaciones de restricción de las corrientes del nodo y se asegura que ninguna de las ecuaciones sea trivial. la temperatura y la presión de las corrientes que interactúan 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 fracción de cada compuesto en esa corriente.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. sólo que aquí las ecuaciones.𝑆𝑎𝑙𝑖𝑑𝑎1 𝑝𝑎𝑟𝑎 1 ≤ 𝑖 ≤ 𝑁 − 1 𝑧𝑖. se Proyecto Integrador Scortechini . o sea que haya alguna incógnita en ellas y que no sean identidades. “Formular_Ecuaciones” y “CalcularGL”. “ecs”.  Actualizar: Llama a los métodos “Buscar_Incognitas”. “ref” es un diccionario que se usa para relacionar los símbolos de las incógnitas con la corriente a la que están asociadas y la propiedad correspondiente. al igual que las temperaturas y las presiones. Estas condiciones también generan una serie de ecuaciones: 𝑧𝑖.  El método “Buscar_Incognitas” cumplen la misma función que el método homónimo de la clase “Corriente” pero aquí las propiedades se refieren al nodo divisor.

ingresar datos nuevos. Diálogo de configuración de un nodo divisor.97 genera la cadena de caracteres a mostrar en el dialogo de configuración del equipo. y lo muestra en pantalla. al objeto clase “Nodo_Divisor” que representa al equipo homónimo y la base de datos de propiedades. etc. le envía como parámetros al objeto clase “Proyecto”. Cuando se selecciona la opción “Configurar” del menú emergente asociado a un botón de nodo divisor. Proyecto Integrador Scortechini . el método “onDialogar” crea un objeto de la clase “DialogoNodoDivisor” (que hereda de las superclases: wxFrame y Componentes). La clase “DialogoNodoDivisor” sirve para crear una ventana que le permita al usuario visualizar la información conocida de ese nodo. Figura 30. modificarla. realizar cálculos. si es que hay datos disponibles (o sea si fueron ingresados previamente).  Los métodos “Calcular_GL” y “Resolver”: Cumplen la misma función que los métodos homónimos de la clase “Corriente” pero aquí los grados de libertad se refieren al nodo divisor y cuando estos se anulan se intenta resolver las ecuaciones del equipo.

El séptimo panel sirve para visualizar o modificar la composición de las corrientes desde una tabla. El sexto panel contiene una tabla que sirve para visualizar. noveno y décimo muestran las incógnitas. “Actualizar” y “Cancelar”. cuarto y quinto sirven para seleccionar las corrientes del nodo. El segundo panel contiene dos textos.98 La pantalla está compuesta por once paneles. las ecuaciones y los grados de libertad del nodo divisor. está codificada en el método __init__ de la clase “DialogoNodoDivisor”. Proyecto Integrador Scortechini . Los paneles tercero. A modo de ejemplo. se generaron tres corrientes: “F01”. el texto estático 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. las filas corresponden a las corrientes y las columnas a las propiedades. El último panel contiene los botones de comando “Aceptar”. la creación de estos junto con los componentes que contienen. El primer panel contiene un texto estático que nos informa el propósito del diálogo (configurar el nodo). “Cargar”. o modificar. “F02” y “F03” de modo tal que ninguna de ellas se pueda resolver por sí misma. Selección de corrientes del nodo divisor. Los paneles octavo. Luego se creó un objeto “Nodo_Divisor”. A continuación se muestra su pantalla de configuración con la selección de las corrientes: Figura 31. las propiedades (caudal. nuevamente las filas corresponden a las corrientes y las columnas a los compuestos de la lista de compuestos del proceso. temperatura y presión) de las corrientes del equipo. uno que nos indica el atributo que se muestra (nombre) y el otro es el nombre del equipo (D001).

Salida1 o Salida2) del nodo divisor. después de haber seleccionado las corrientes del nodo. Cabe destacar como. Carga de datos en diálogo de nodo divisor. Para eso recupera la opción seleccionada de cada lista desplegable y la asigna al atributo correspondiente (Entrada. los convierte en cadenas de caracteres y los ubica en la celda apropiada de la tabla correspondiente que se muestra en pantalla. recupera sus valores. También almacena estos datos en los diccionarios de “Propiedades” y “Composición” del objeto “Nodo_Divisor”. Éste sirve para importar los correspondientes objetos “Corriente” junto con sus datos. El resultado es el siguiente: Figura 32. luego recupera del diccionario de “Equipos” del proceso los correspondientes objetos “Corriente” y los agrega a una lista de “Corrientes” del nodo. los nombres de las filas en las tablas cambiaron para mostrar los nombres de esas corrientes. Proyecto Integrador Scortechini . ahora que son conocidas. Después.99 El paso siguiente es apretar el botón “Cargar” que genera un evento de botón y llama al método “OnCargar”. hace una revisión de las propiedades y la composición de cada corriente.

junto con sus métodos asociados. Proyecto Integrador Scortechini . Veamos un ejemplo de lo que sucede si oprimimos el botón “Actualizar”: Figura 33. Actualización de un nodo divisor. funcionan de manera análoga a sus homólogos de la clase “Corriente” pero operan sobre el nodo divisor. “Actualizar” y “Cancelar”.100 Los botones “Aceptar”.

Representación gráfica de un mezclador. “Mezclador”.06. P1=200000Pa y c2=0. y luego se hace clic en “Actualizar” se obtiene el siguiente resultado: Figura 34. Se representa así: Figura 35. a partir de ahora. ha quedado resuelto el equipo y todas sus corrientes.101 Si se introducen los siguientes datos: F3=595. Mezclador Por razones prácticas se ha decidido combinar los equipos “Mezclador de Corrientes” y “Tanque Agitado Continuo” en uno solo llamado. De este modo. Proyecto Integrador Scortechini . T2=290K. Resolución completa de un nodo divisor.

sólo que aquí se refieren al mezclador. 1997) (Scenna. “Entrada1” y “Entrada2” que contendrán los nombres de las corrientes de alimentación del mezclador. las combinaciones pueden ser muy variadas (Himmelblau. “Formular_Ecuaciones” y “CalcularGL”. “Salida” que contendrá el nombre de la corriente de salida del mezclador cuando las seleccione el usuario. Análisis de Mezclador Variables Ecuaciones Tipo Cantidad Tipo Cantidad Temperatura (T) 3 Balances de Materia N Presión (P) 3 Balances de Energía 1 Composición (zi o i) 3N Caudal (F) 3 Flujo de Calor (Q) 1 Suma de fracciones igual a uno 3 Flujo de Trabajo (W s) 1 Total 3N+11 Grados de Libertad Total N+4 2N+7 Entonces especificando el valor de 2N+7 variables se puede resolver completamente el mezclador. Proyecto Integrador Scortechini . “ref” y “GL” cumplen una función idéntica a los atributos homónimos de la clase “Nodo_Divisor”. o herramienta de. Cuando se activa el submenú. se crea un objeto de la clase “Mezclador” que tiene seis métodos:  __init__: Este método recibe como atributos un objeto clase “BaseDeDatos” con el que crea un atributo “BD” que es la base de datos del mezclador y el objeto clase “Proyecto”. “Propiedades”. “inc”. Si el sistema tiene cero grados de libertad. “ecs”. “Corrientes”. “Composicion”.102 Entonces el recuento de variables y ecuaciones para el mezclador es: Tabla 7. Para ello llama a las funciones “Buscar_Incognitas”. “Mezclador”. También crea los atributos “Nombre”. 1999). entonces llama al método “Resolver”.  Actualizar: Es un método que lleva a cabo el proceso de actualización del objeto mezclador.

esta última es la temperatura de referencia para la especie “i”. según con qué tipo de caudales trabaje el usuario) del componente “i” en la corriente “j”.  es la fracción de vapor de la corriente. zi es la fracción molar (o másica. 1997): 𝛽={ 0. Si alguno de esos valores no es un número real.103  Buscar_Incognitas: Este método revisa los valores de las propiedades de las corrientes del mezclador y de los atributos calor y trabajo de este último. H0 vale 0 a T0i.  Formular_Ecuaciones: Esta función se encarga de plantear los balances de masa por componente haciendo uso del Álgebra Lineal. F2 y F3 (salida): 𝑧11 [𝑧21 𝑧31 𝑧12 𝑧22 𝑧32 𝑧13 𝐹1 𝐹1 ∙ 𝑧11 + 𝐹2 ∙ 𝑧12 − 𝐹3 ∙ 𝑧13 0 𝑧23 ] ∙ [ 𝐹2 ] = [𝐹1 ∙ 𝑧21 + 𝐹2 ∙ 𝑧22 − 𝐹3 ∙ 𝑧23 ] = [0] 𝑧33 −𝐹3 𝐹1 ∙ 𝑧31 + 𝐹2 ∙ 𝑧32 − 𝐹3 ∙ 𝑧33 0 También plantea el balance de energía para un sistema en estado estacionario. El método “CalcularH1” de una corriente calcula la entalpía de la misma a partir de la siguiente fórmula: 𝑁 0 𝐻1𝑗 = ∑ 𝑧𝑖 ∙ [𝐻𝑖(𝑇 +∫ 0𝑖 ) (1−𝛽)∙𝑇𝑗 +𝛽∙𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 𝑗 𝑇0𝑖 𝑖=1 𝑁 + ∑ 𝑧𝑖 ∙ [𝛽 ∙ ∆𝐻𝑣𝑖(𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 𝑗) + 𝛽 ∙ ∫ 𝑇𝑗 𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 𝑗 𝑖=1 𝐶𝑝𝐿𝑖(𝑇) ∙ 𝑑𝑇] 𝐶𝑝𝐺𝑖(𝑇) ∙ 𝑑𝑇] Donde el subíndice “j” identifica a la corriente. La función  toma los siguientes valores (Smith. Por ejemplo para un sistema con tres componentes y tres corrientes: F1. 1. lo agrega a la lista de incógnitas y crea una referencia símbolo:atributo. 𝑝𝑎𝑟𝑎 𝑙í𝑞𝑢𝑖𝑑𝑜𝑠 𝑝𝑎𝑟𝑎 𝑔𝑎𝑠𝑒𝑠 Y Proyecto Integrador Scortechini . [𝐹1 𝐹2 −𝐹3 ] ∙ [𝐻𝐹1 𝐻𝐹2 𝐻𝐹3 ] + 𝑄 + 𝑊𝑠 = 𝐹1 ∙ 𝐻𝐹1 + 𝐹2 ∙ 𝐻𝐹2 − 𝐹3 ∙ 𝐻𝐹3 + 𝑄 + 𝑊𝑠 = ∆𝐻 + 𝑄 + 𝑊𝑠 = 0 Además importa las ecuaciones de restricción de las corrientes. Para formular el balance de energía llama al método “CalcularH1” de cada una de sus corrientes para intentar calcular su entalpía. lo convierte en un símbolo algebraico. Tj es la temperatura de la corriente “j”. CpLi y CpGi son las capacidades caloríficas molares (o específicas) del compuesto “i” como líquido y como vapor respectivamente y ΔHvi es el calor de vaporización de la especie “i”.

se trata de la temperatura de una corriente.  Resolver: Igual que en los equipos anteriores. Si la incógnita es Q o W s entonces asigna el resultado obtenido a esos atributos del mezclador. Cuando se selecciona la opción “Configurar” del menú emergente asociado a un botón de mezclador. le envía como parámetros al objeto clase “Proyecto”. sino aparecerá como un símbolo. vuelve a plantear la ecuación de “H1j” (sólo que ahora la única incógnita es la temperatura “T j”).  CalcularGL: Igual que en los equipos anteriores. al objeto clase “Mezclador” que representa al equipo homónimo y la base de datos de propiedades. sino se trata de un gas y  vale 1. despeja el valor de “H1j” y estudia su signo.38 = ∆𝐻𝑣𝑖(𝑇0𝑖 ) ∙ ( ) (𝐹ó𝑟𝑚𝑢𝑙𝑎 𝑑𝑒 𝑊𝑎𝑡𝑠𝑜𝑛) 𝑇𝑐𝑖 − 𝑇0𝑖 Si están disponibles todos los valores de las variables necesarias para evaluar las fórmulas anteriores. entonces “CalcularH1” devuelve un número como resultado. Luego se intenta convertir la ecuación de balance de energía en número real. En caso contrario devuelve un símbolo algebraico del tipo HNombre de la corriente. la resuelve y guarda el resultado en el atributo “T” de la corriente correspondiente. entonces verifica que sea sólo una e intenta resolverla o agrega la ecuación a la lista de ecuaciones a la espera de más información. Cuando se tiene una incógnita el balance de energía puede resolverse. Si cualquiera de las propiedades anteriores es un dato aparecerá en el balance de energía como un número. Luego examina los valores de Q y W s para estudiar si son datos conocidos o expresiones simbólicas. En caso contrario significa que existen incógnitas.104 ∆𝐻𝑣𝑖(𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 𝑗) 𝑇𝑐𝑖 − 𝑇𝑏𝑢𝑟𝑏𝑢𝑗𝑎 𝑗 0. pero si resulta distinto de cero significa que el balance es inconsistente y se muestra un mensaje de error. Después calcula la temperatura de burbuja de esa corriente. Proyecto Integrador Scortechini . Sino. Si éste es negativo la corriente se encuentra en estado líquido y ajusta  a 0. el método “onDialogar” crea un objeto de la clase “DialogoMezclador” (que hereda de las superclases: wxFrame y Componentes). Finalmente elimina la ecuación y la incógnita resuelta de las respectivas listas y disminuye en uno el número de grados de libertad. si tiene éxito verifica que sea igual a cero entonces no hace nada. y lo muestra en pantalla.

105 La clase “DialogoMezclador” sirve para crear una ventana que le permita al usuario visualizar la información conocida de ese mezclador. El segundo panel contiene dos textos. modificarla. la creación de éstos junto con los componentes que contienen. está codificada en el método __init__ de la clase “DialogoMezclador”. etc. uno que nos indica el atributo que se muestra (nombre) y el otro es el nombre del equipo (M001). La pantalla está compuesta por trece paneles. realizar cálculos. si es que hay datos disponibles (o sea si fueron ingresados previamente). El primer panel contiene un texto estático que nos informa el propósito del diálogo (configurar el equipo). Figura 36. Diálogo de configuración de un mezclador. ingresar datos nuevos. cuarto y quinto sirven para seleccionar las Proyecto Integrador Scortechini . Los paneles tercero.

Los paneles sexto y séptimo sirven para ingresar el flujo de calor y la potencia (flujo de trabajo) en el eje junto con sus unidades. recupera sus valores. El paso siguiente es apretar el botón “Cargar” que genera un evento de botón y llama al método “OnCargar”. nuevamente las filas corresponden a las corrientes y las columnas a los compuestos de la lista de compuestos del proceso. las ecuaciones y los grados de libertad del mezclador. Éste sirve para importar los correspondientes objetos “Corriente” junto con sus datos. décimo primero y décimo segundo muestran las incógnitas. se generaron tres corrientes: “F01”. Luego se creó un objeto “Mezclador”. Selección de corrientes del mezclador. El octavo panel contiene una tabla que sirve para visualizar o modificar las propiedades (caudal. el texto estático 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. “F02” y “F03” de modo tal que ninguna de ellas se pueda resolver por sí misma. las filas de la tabla corresponden a las corrientes y las columnas a las propiedades. temperatura y presión) de las corrientes del equipo. “Actualizar” y “Cancelar”. Proyecto Integrador Scortechini . “Cargar”. los convierte en cadenas de caracteres y los ubica en la celda apropiada de la tabla correspondiente que se muestra en pantalla. luego recupera del diccionario de “Equipos” del proceso los correspondientes objetos “Corriente” y los agrega a una lista de “Corrientes” del mezclador. A continuación se muestra la parte superior de la pantalla con la selección de las corrientes: Figura 37. Para eso recupera la opción seleccionada de cada lista desplegable y la asigna al atributo correspondiente (Entrada1. El último panel contiene los botones de comando “Aceptar”. A modo de ejemplo. Los paneles décimo.106 corrientes del mezclador. Entrada2 o Salida) del mezclador. El noveno panel sirve para visualizar o modificar la composición de las corrientes desde una tabla. Después. hace una revisión de las propiedades y la composición de cada corriente.

del mezclador. que identifica las incógnitas. El resultado es el siguiente: Figura 38. llama al método “Resolver” para calcular todas las incógnitas del equipo. pero no al objeto “Mezclador”. Proyecto Integrador Scortechini . formula las ecuaciones y calcula el número de grados de libertad. Si se tienen cero grados de libertad. En cambio cuando se hace clic sobre el botón “Aceptar” o “Actualizar” se llama a la función “Actualizar”. Si a continuación se oprime el botón “Cancelar” se invoca al método “OnCancelar” que cierra la ventana y destruye al objeto “DialogoMezclador”. Carga de datos en diálogo de mezclador. además la selección de las corrientes persiste.107 También almacena estos datos en los diccionarios de “Propiedades” y “Composición” del objeto “Mezclador”.

La diferencia es que “Aceptar” cierra el diálogo después de completar los cálculos. Veamos un ejemplo: Figura 39.108 Después se asignan los valores hallados a los respectivos atributos de las corrientes y del mezclador. Actualización y resolución de un mezclador. Proyecto Integrador Scortechini . Finalmente se invoca al método “OnCargar” para recargar la información y que el usuario pueda visualizarla en pantalla. mientras que “Actualizar” lo deja abierto para poder visualizar los resultados.

PV) 3 Balances de Energía 1 Composición (zi o i) 3N Relaciones de equilibrio N Caudal (F) 3 TL=TV (Equilibrio de fases) 1 Flujo de Calor (Q) 1 PL=PV (Equilibrio de fases) 1 Suma de fracciones igual a uno 3 Total Grados de Libertad 3N+10 Total 2N+6 N+4 Así. ingresar 0). Representación gráfica de un flash. temperatura.109 Flash A un separador flash ingresa una corriente que se separa en otras dos que están en equilibrio. Por razones de simplicidad este equipo se modeló de forma modular secuencial. es decir proveer N-1 composiciones. si se especifican los valores de N+4 variables independientes se puede resolver el flash. Análisis de Flash Variables Tipo Ecuaciones Cantidad Tipo Cantidad Temperatura (TA. Se puede representar de la siguiente manera: Figura 40. es decir para poder resolver los cálculos se debe especificar completamente la corriente de entrada. Los grados de libertad del flash se calculan así: Tabla 8. presión y caudal de la misma. TL. TV) 3 Balances de Materia N Presión (PA. definir el flujo de calor (en caso de operación adiabática. en este proyecto se supone que W=0 pero no Q. PL. y la Proyecto Integrador Scortechini .

 Buscar_Incognitas: Este método revisa los valores de las propiedades de las corrientes del flash y de los atributos “beta” y “Calor” de este último. Luego crea los atributos “Nombre”. “beta” (fracción de vapor) y “Calor”. el método que asociado crea un objeto de la clase “Flash” que tiene seis métodos:  __init__: Este método recibe como parámetros un objeto “BaseDeDatos” y otro tipo “Proyecto”. “Alimentación”. Lo hace llamando a las funciones “Buscar_Incognitas”. Luego el programa calcula las salidas del flash. o herramienta de. entonces llama al método “Resolver”. Los balances de masa por componente se formulan haciendo uso del Álgebra Lineal. lo convierte en un símbolo algebraico. Si alguno de esos valores no es un número real.110 temperatura o la presión de equilibrio de una corriente de salida. “Flash”. “ref” y “GL” cumplen una función idéntica a los atributos homónimos de la clase “Nodo_Divisor”. “Líquido”.  Actualizar: Es un método que lleva a cabo el proceso de actualización del equipo flash.  Formular_Ecuaciones: Esta función se encarga de plantear las ecuaciones asociadas con el flash. Cuando hay cero grados de libertad. lo agrega a la lista de incógnitas y crea una referencia símbolo:atributo. “Vapor”. Cuando se activa el submenú. “inc”. pero aquí se refieren al flash. L y V: 𝑧1𝐴 [𝑧 2𝐴 𝑧1𝐿 𝑧2𝐿 𝐹 𝑧1𝑉 𝑧1𝐹 ∙ 𝐹 − 𝑧1𝐿 ∙ 𝐿 − 𝑧1𝑉 ∙ 𝑉 0 ] ∙ [ ] = [ ]=[ ] 𝐿 𝑧2𝑉 𝑧2𝐹 ∙ 𝐹 − 𝑧2𝐿 ∙ 𝐿 − 𝑧2𝑉 ∙ 𝑉 0 𝑉 También se plantea un balance de energía: 𝐹 ∙ 𝐻𝐹 − 𝐿 ∙ 𝐻𝐿 − 𝑉 ∙ 𝐻𝑉 + 𝑄 = 0 Además existen relaciones de equilibrio de fases para los componentes: 𝑦1 − 𝐾1 ∙ 𝑥1 = 0 𝑦2 − 𝐾2 ∙ 𝑥2 = 0 Proyecto Integrador Scortechini . Los campos “Corrientes”. “ecs”. “Formular_Ecuaciones” y “CalcularGL”. Por ejemplo para un flash con dos componentes y tres corrientes: F.

Más relaciones de igualdad de temperatura y presión debido al equilibrio de fases: 𝑇𝐿 = 𝑇𝑉 𝑃𝐿 = 𝑃𝑉 Finalmente las ecuaciones de restricción de cada corriente. etc. el método “onDialogar” crea un objeto de la clase “DialogoFlash” (que hereda de las superclases: wxFrame y Componentes). Cuando se selecciona la opción “Configurar” del menú emergente asociado a un botón de flash. si es que hay datos disponibles (o sea si fueron ingresados previamente). La pantalla está compuesta por trece paneles.111 donde 𝐾𝑖 = 𝛾𝑖 ∙𝑃𝑖𝑠𝑎𝑡 𝑃∙Φ𝑖 𝑝𝑎𝑟𝑎 𝑖 = 1. le envía como parámetros al objeto clase “Proyecto”. La clase “DialogoFlash” sirve para crear una ventana que le permita al usuario visualizar la información conocida de ese equipo. al objeto clase “Flash” que representa al equipo homónimo y la base de datos de propiedades.  CalcularGL: Se encarga de calcular en número de grados de libertad en base a la cantidad de incógnitas y de ecuaciones.2 y estos valores son calculados internamente por el programa haciendo uso de las funciones de la biblioteca termodinámica.  Resolver: Esta función implementa los cálculos flash descriptos al final del apartado “La clase SistemaTermodinamico” de este capítulo. para calcular todas las propiedades desconocidas. ingresar datos nuevos. está codificada en el método __init__ de la clase Proyecto Integrador Scortechini . realizar cálculos. y lo muestra en pantalla. modificarla. 𝑁 ∑ 𝑧𝑖𝑗 = 1 𝑝𝑎𝑟𝑎 1 ≤ 𝑗 ≤ 3 𝑖=1 El subíndice “i” hace referencia a las especies químicas presentes en el sistema (N) y el subíndice “j” indica la corriente a la que se aplica la ecuación (3 corrientes). la creación de éstos junto con los componentes que contienen.

se generaron tres corrientes: “A”. Éste sirve para importar los correspondientes objetos Proyecto Integrador Scortechini . A continuación se muestra su pantalla de configuración con la selección de las corrientes: Figura 41. uno que nos indica el atributo que se muestra (nombre) y el otro es el nombre del equipo (FL001). décimo primero. El primer panel contiene un texto estático que nos informa el propósito del diálogo (configurar el equipo). “L” y “V”. “Actualizar” y “Cancelar”. luego se creó un objeto “Flash”. Los paneles décimo. cuarto y quinto sirven para seleccionar las corrientes del flash. Luego se debe apretar el botón “Cargar” que genera un evento de botón y llama al método “OnCargar”. Se completaron todos los atributos de la alimentación “A”. Diálogo de configuración de flash. El séptimo mostrará la fracción de vapor una vez que sea calculada. El octavo panel contiene una tabla que sirve para visualizar o modificar las propiedades (caudal. sinó se debe ingresar 0 (operación adiabática). El sexto panel nos permite ingresar el flujo de calor para el caso de que la alimentación se caliente antes de entrar en el separador.112 “DialogoFlash”. El último panel contiene los botones de comando “Aceptar”. el texto estático 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. A modo de ejemplo. Los paneles tercero. “Cargar”. y décimo segundo muestran las incógnitas. El noveno panel sirve para visualizar o modificar la composición de las corrientes desde una tabla. El segundo panel contiene dos textos. las ecuaciones y los grados de libertad del equipo. temperatura y presión) de las corrientes del equipo.

Para eso recupera la opción seleccionada de cada lista desplegable y la asigna al atributo correspondiente (Alimentación. Finalmente se invoca al método “OnCargar” para recargar la información y que el usuario pueda visualizarla en pantalla. La diferencia es que “Aceptar” cierra el diálogo después de completar los cálculos. del flash. En cambio cuando se hace clic sobre el botón “Aceptar” o “Actualizar” se llama a la función “Actualizar”. Si a continuación se oprime el botón “Cancelar” se invoca al método “OnCancelar” que cierra la ventana y destruye al objeto “DialogoFlash”. recupera sus valores. que identifica las incógnitas.113 “Corriente” junto con sus datos. También almacena estos datos en los diccionarios de “Propiedades” y “Composición” del objeto “Flash”. A continuación se muestra una pantalla del simulador y otras de UNISIM donde se resuelve un problema y se presentan los resultados. Después se asignan los valores hallados a los respectivos atributos de las corrientes y del flash. Luego recupera del diccionario de “Equipos” del proceso los correspondientes objetos “Corriente” y los agrega a una lista de “Corrientes” del equipo. Líquido o Vapor) del flash. hace una revisión de las propiedades y la composición de cada corriente. Proyecto Integrador Scortechini . Si se tienen cero grados de libertad. los convierte en cadenas de caracteres y los ubica en la tabla correspondiente que se muestra en pantalla. además la selección de las corrientes persiste. pero no al objeto “Flash”. mientras que “Actualizar” lo deja abierto para poder visualizar los resultados. Puede observarse que los resultados concuerdan. llama al método “Resolver” para calcular todas las incógnitas del equipo. Después. formula las ecuaciones y calcula el número de grados de libertad.

114 Figura 42. Representación de un flash en UNISIM. Actualización y resolución de flash. Figura 43. Proyecto Integrador Scortechini .

Figura 45. Entonces el análisis de grados de libertad es el mostrado en la siguiente tabla. En este proyecto se supone que W=0 para el intercambiador. pero no Q. Representación gráfica de un intercambiador de calor. Intercambiador de Calor Se representa el intercambiador de calor de la siguiente manera. Resultados de cálculo flash con UNISIM. Proyecto Integrador Scortechini .115 Figura 44.

Luego crea los atributos “Nombre”. “Area”. Si alguno de esos valores no es un número real.  Actualizar: Es un método que lleva a cabo el proceso de actualización del equipo. lo convierte en un símbolo Proyecto Integrador Scortechini . Los campos “Corrientes”. “ecs”.  Buscar_Incognitas: Este método revisa los valores de las propiedades de las corrientes del intercambiador y de los atributos “U” y “Area” de este último. “Af” (Alimentación Caliente). entonces llama al método “Resolver”. “Pc” (Producto Caliente). También “U”. “Ac” (Alimentación Caliente). “DTML” y “Calor” inicialmente con valores simbólicos. “inc”. pero aquí se refieren al intercambiador. “Propiedades”. Para eso llama a los métodos “Buscar_Incognitas”. “ref” y “GL” cumplen una función idéntica a los atributos homónimos de la clase “Nodo_Divisor”. Cuando se selecciona el submenú. “Intercambiador de Calor”. Cuando hay cero grados de libertad. “Formular_Ecuaciones” y “CalcularGL”.116 Tabla9: Análisis de Intercambiador de Calor Variables Ecuaciones Tipo Cantidad Tipo Temperatura (T) 4 Balances de Materia Presión (P) 4 Balance de Energía Composición (zi o wi) 4N Igualdad de composición Caudal (F) 4 Suma de fracciones igual a uno Flujo de Calor (Q) 1 Definición de Q DTML 1 Definición de DTML Eficiencia 1 Definición de E A 1 Ley de Transferencia de calor UD 1 Total 4N+17 Total Grados de Libertad 2N+8 Cantidad 2 1 2N-2 4 1 1 1 1 2N+9 De modo que si se dan los valores de 2N+8 variables independientes es posible resolver completamente el intercambiador. el método que asociado crea un objeto de la clase “IntercambiadorDeCalor” que tiene los métodos descriptos a continuación:  __init__: Este método recibe como parámetros un objeto “BaseDeDatos” y otro tipo “Proyecto”. “Pf” (Producto frío). “Composición”. o herramienta de. “Configuración” inicialmente vacíos.

𝑓𝑙𝑢𝑗𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑐𝑜𝑟𝑟𝑖𝑒𝑛𝑡𝑒 𝑙𝑛[(𝑇1𝐶 − 𝑇2𝑓 )⁄(𝑇2𝑐 − 𝑇1𝑓 )] ∆𝑇2 − ∆𝑇1 = = 𝑙𝑛(∆𝑇2⁄∆𝑇1 ) (𝑇2𝐶 − 𝑇2𝑓 ) − (𝑇1𝑐 − 𝑇1𝑓 ) .𝐴𝑐 − 𝑧𝑖. Por ejemplo: 𝑄 = 𝐴𝑓 ∙ (𝐻𝑃𝑓 − 𝐻𝐴𝑓 ) Otra ecuación es la que define a la diferencia de temperatura media logarítmica: (𝑇1𝐶 − 𝑇2𝑓 ) − (𝑇2𝑐 − 𝑇1𝑓 ) ∆𝑇𝑀𝐿 . También las ecuaciones de restricción de cada corriente.𝑃𝑐 = 0 𝑝𝑎𝑟𝑎 1 ≤ 𝑖 ≤ 𝑁 − 1 𝑧𝑖. que ocurre dentro del equipo (subsistemas). lo agrega a la lista de incógnitas y crea una referencia símbolo:atributo.𝑃𝑓 = 0 𝑝𝑎𝑟𝑎 1 ≤ 𝑖 ≤ 𝑁 − 1 donde zi es la composición de la especie “i” en la corriente indicada.  Formular_Ecuaciones: Esta función se encarga de plantear los balances de masa de la siguiente manera: 𝐴𝑐 = 𝑃𝑐 𝐴𝑓 = 𝑃𝑓 También se plantea un balance de energía: 𝐴𝑐 ∙ 𝐻𝐴𝑐 + 𝐴𝑓 ∙ 𝐻𝐴𝑓 − 𝑃𝑐 ∙ 𝐻𝑃𝑐 − 𝑃𝑓 ∙ 𝐻𝑃𝑓 = 0 Además existen restricciones de igualdad de composición: 𝑧𝑖.117 algebraico. con la variación de entalpía de uno de los fluidos.𝐴𝑓 − 𝑧𝑖. 𝑓𝑙𝑢𝑗𝑜 𝑝𝑎𝑟𝑎𝑙𝑒𝑙𝑜 { 𝑙𝑛[(𝑇2𝐶 − 𝑇2𝑓 )⁄(𝑇1𝑐 − 𝑇1𝑓 )] Proyecto Integrador Scortechini . Plantea una ecuación de definición de Q que relaciona el flujo de calor.

𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝑑𝑒 𝑓𝑙𝑢𝑗𝑜 𝑡é𝑟𝑚𝑛𝑖𝑐𝑜 = 𝑐𝑎𝑢𝑑𝑎𝑙 ∙ 𝑐𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝑐𝑎𝑙𝑜𝑟í𝑓𝑖𝑐𝑎 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 Además los subíndices “f” y “c” hacen referencia a las corrientes frías y calientes. y lo muestra en pantalla. El primer panel muestra el título del diálogo. la función “onDialogar” crea un objeto de la clase “DialogoIntercambiadorDeCalor”.118 La ecuación de definición de eficiencia es: (𝑇2𝑓 − 𝑇1𝑓 ) (𝑇1𝑐 − 𝑇1𝑓 ) 𝜀= (𝑇2𝑓 − 𝑇1𝑓 ) (𝑇2𝑐 − 𝑇1𝑓 ) (𝑇1𝑐 − 𝑇2𝑐 ) {(𝑇1𝑐 − 𝑇2𝑓 ) . si es que hay datos disponibles (o sea si fueron ingresados previamente).  Resolver: Este método llama a la función “solve” de la librería “SymPy” a la que le pasa la lista de ecuaciones a resolver y la orden de devolver un diccionario símbolo:valor en caso de encontrar una solución. 𝑠𝑖 𝐶𝑐 > 𝐶𝑓 𝑦 𝑝𝑎𝑟𝑎𝑙𝑒𝑙𝑜 . Mientras que “1” y “2” se refieren a entrada o alimentación y salida o producto respectivamente (Kern. sino no hace nada. etc. la creación de éstos junto con los componentes que contienen. al objeto clase “IntercambiadorDeCalor” que representa al equipo homónimo y la base de datos de propiedades. Si encuentra una solución única asigna los valores hallados a las propiedades correspondientes de las corrientes o del intercambiador. modificarla. Cuando el usuario selecciona la opción “Configurar” del menú emergente asociado a un botón de intercambiador de calor. 1999). le envía como parámetros al objeto clase “Proyecto”. Finalmente la ley de transferencia de calor es: 𝑄 = 𝑈 ∙ 𝐴 ∙ ∆𝑇𝑀𝐿  CalcularGL: Se encarga de calcular en número de grados de libertad en base a la cantidad de incógnitas y de ecuaciones. está codificada en el método __init__ de la clase “DialogoIntercambiadorDeCalor”. La pantalla está compuesta por dieciocho paneles. 𝑠𝑖 𝐶𝑐 < 𝐶𝑓 𝑝𝑎𝑟𝑎 𝑎𝑚𝑏𝑜𝑠 𝑓𝑙𝑢𝑗𝑜𝑠 Donde Cc y Cf son las capacidades de flujo térmico de las corrientes. 𝑠𝑖 𝐶𝑐 > 𝐶𝑓 𝑦 𝑐𝑜𝑛𝑡𝑟𝑎𝑐𝑜𝑟𝑟𝑖𝑒𝑛𝑡𝑒 . La clase “DialogoIntercambiadorDeCalor” sirve para crear una ventana que le permita al usuario visualizar la información conocida de ese equipo. ingresar datos nuevos. realizar cálculos. el Proyecto Integrador Scortechini .

ecuaciones. Configuración de un intercambiador de calor. Proyecto Integrador Scortechini . el octavo está reservado para el área de intercambio de calor. composición. El sexto panel permite seleccionar el modo de operación (flujo paralelo o flujo contracorriente). Los cuatro paneles siguientes sirven para seleccionar las corrientes que interactúan con el intercambiador. grados de libertad y botones de comando como en los demás diálogos. Los restantes muestran propiedades. A continuación se muestra una pantalla típica de configuración con los datos de las corrientes cargados. El décimo primer panel muestra la eficiencia de intercambio calórico cuando pueda ser calculado automáticamente.119 segundo el nombre del equipo. el séptimo permite ingresar o visualizar el coeficiente global de transferencia de calor. Figura 46. el noveno para la diferencia de temperatura media logarítmica y el décimo permite visualizar el calor intercambiado por las corriente cuando sea calculado por el sistema. incógnitas.

120 Cuando se hace clic en el botón “Actualizar”. el equipo se resuelve completamente. Figura 47. se resuelven automáticamente los caudales faltantes. la diferencia de temperatura media logarítmica y la eficiencia. Si se especifica que el área de intercambio calórico es de 10m2 y se vuelve a actualizar. Todavía queda un grado de libertad. la temperatura desconocida. Proyecto Integrador Scortechini . Actualización de un intercambiador de calor.

El menú Herramientas Este menú agrupa a los submenús: “Consultar Biblioteca”. elegir las herramientas que deseamos ver y obtener ayuda. “Balance de Energía” y “Documentar”. Proyecto Integrador Scortechini . “Agregar Compuesto”. Resolución completa de un intercambiador de calor. Menús Auxiliares El resto de los menús del simulador permiten acceder a funciones complementarias que nos permiten realizar consultas a la base de datos.121 Figura 48. “Balance de Masa”. A continuación se hace una breve descripción de ellos. “Editar Compuesto”.

Para ello construye un objetos de la case “DialogoConsultaBiblioteca” que sirve para fabricar el diálogo y mostrarlo en pantalla.122 Figura 49. Menú Herramientas. En cambio el submenú “Editar Compuesto” le permite al usuario visualizar en pantalla las propiedades de un compuesto químico y modificar sus valores. Cuando se selecciona el submenú “Consultar Biblioteca” se llama al método “OnConsultarBiblioteca” del módulo “Metodos”. Esa función crea un dialogo que le permite al usuario seleccionar compuestos presentes en la base de datos y luego presenta una tabla que muestra las propiedades de esas especies que figuran en la base de datos. Proyecto Integrador Scortechini . Los restantes submenús de Herramientas no se programaron por falta de tiempo. La selección del submenú “Agregar Compuesto” abre un diálogo que permite incorporar un nuevo compuesto a la base de datos.

Diálogo de Consulta a Biblioteca. Proyecto Integrador Scortechini .123 Figura 50.

El Menú Ver Los submenús que contiene son “Barra de Herramientas” y “Barra de Estado”. Diálogo para agregar nuevo compuesto. Diálogo para editar compuesto. Cuando se selecciona alguno de ellos el programa llama a una función que sirve para cambiar el estado de visibilidad del elemento al que hacen alusión. Por defecto la barra de herramientas y la de estado están visibles.124 Figura 51. Figura 52. pero si el usuario necesita Proyecto Integrador Scortechini .

Opciones del menú Ver. El Menú Ayuda Este menú posee dos submenús: “Acerca de los Autores” y “Manual de Usuario”. y lo despliega en pantalla. con la esperanza de orientar al usuario del simulador. Si en el futuro desea hacerlas visibles nuevamente solo debe ingresar al menú “Ver” y seleccionar la opción correspondiente. Proyecto Integrador Scortechini . Figura 53. Cuando se selecciona el primero de ellos el método “OnAcerca” crea un diálogo que sirve para mostrar información. “Manual de Usuario” llama a la función “OnManual” que le ordena al sistema operativo que abra el archivo que contiene el manual de usuario para proporcionar ayuda. en este caso del autor de este proyecto. Por razones de tiempo no se alcanzó a desarrollar un manual de usuario.125 más espacio en pantalla y desea ocultarlas entonces puede seleccionar estos submenús. pero éste se reemplazó con un archivo similar al capítulo 5 de este informe donde se explican los componentes del programa y a los Anexos que contienen ejemplos de aplicación.

126 Figura 54. Diálogo Acerca de los Autores. El menú Ayuda. Figura 55. Proyecto Integrador Scortechini .

(2010). Cambridge.F. (1998). Henley-Seader. London. Scenna. Sifuentes.). (2003).: Plaza y Valdés Editores. M.F. HoneyWell. F. (1997). D. México D. México D.A.127 Bibliografía Aspen Technology Inc. Principios Básicos y Cálculos en Ingeniería Química. J. Himmelblau. Q.F. J. (1999). Simulación de Procesos en Ingeniería Químicia. UNISIM Design. Geankoplis.: CECSA.: Editorial Reverté S. Procesos de Transporte y Operaciones Unitarias (3° Edición ed. (2000). HYSYS Tutorial & Applications. Modelado. Simulación y Optimización de Procesos Químicos. Mexico: CECSA. N. M. C. Procesos de Transferencia de Calor. D. (1999). (2000). Kern. Operaciones de Separación por Etapas en Ingeniería Química. México D.: Prentice Hall. Proyecto Integrador Scortechini . México D.

se hizo uso de la biblioteca Sympy de Python. éste debería ser capaz de resolver todo el sistema de ecuaciones. Cuando se intentó implementar lo anterior. Algunos de ellos fueron resueltos. Esta librería contiene herramientas que permiten representar variables en forma simbólica. Como se explicó en el primer capítulo. A continuación se hará una descripción detallada de estos inconvenientes.128 Capítulo 6: Problemas y dificultades Introducción Durante la ejecución de este proyecto se encontraron algunos problemas y dificultades que actuaron como restricciones. cada vez que se introduzca información o se realice alguna modificación en algún equipo. Este enfoque permitiría plantear los balances de materia y energía de modo general e igual para todos los equipos. o al menos parte de él. plantear ecuaciones. Resolución de ecuaciones Originalmente se había considerado la posibilidad de que el simulador fuera orientado a ecuaciones. se debería actualizar la lista de ecuaciones y una lista de incógnitas asociada. Así. que pertenezca a un objeto de nivel superior a todos los equipos. otros se podrían resolver pero no se ha encontrado una solución satisfactoria y para algunos otros no se conoce solución. Una vez que se reúna suficiente información acerca del proceso. en un producto de tal naturaleza. simplificarlas y resolver sistemas de Proyecto Integrador Scortechini . por ejemplo una lista general de ecuaciones o un diccionario que tenga como claves los nombres de cada equipo y como valores una lista con las ecuaciones pertenecientes a cada uno. sin hacer distinción entre ellos ni hacer consideraciones especiales lo cual simplificaría mucho la tarea de programación. se van generando ecuaciones en cada instancia del proceso (equipo u operación). Estas ecuaciones se van acumulando en una estructura de datos. en nuestro caso el candidato ideal para eso es el objeto clase “Proyecto” que representa al proceso como un todo.

Algo similar ocurrió con los cálculos de factores de compresibilidad. etc. también. Además del incremento considerable de la cantidad del código. en un mezclador. La causa de estos inconvenientes puede ser una limitación en los algoritmos de resolución. En otros casos. Como consecuencia de esto. Para otros casos como los cálculos de punto de rocío y de burbuja se tuvieron que programar algoritmos particulares para esos problemas. pero también tiene programados otros algoritmos numéricos para casos especiales o para determinados tipos de problemas. Como método de resolución emplea principalmente el método de Newton-Raphson.129 ecuaciones no lineales que son el caso más común y. Lamentablemente no siempre se pudo resolver algunos tipos de ecuaciones planteados. Como respuesta devuelve un diccionario incógnita:valor. en otros casos ecuaciones más complejas como aquellas que involucran coeficientes de actividad. también se produjo un notable incremento en la complejidad del mismo. volúmenes molares positivos. Se observó que esta limitación se presenta con alta frecuencia en casos de ecuaciones que poseen más de una incógnita. factores de compresibilidad o volúmenes molares a partir de ecuaciones de estado. Por ejemplo.). a veces ecuaciones simples como la ecuación de Antoine o las ecuaciones de equilibrio de fases cuando se cumple la ley de Raoult. el más difícil que se presenta en los procesos en estado estacionario. La función 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 incógnitas que debe tratar de despejar. se tuvieron que agregar algoritmos de control y de verificación para asegurarse de que las soluciones tuvieran significado físico (por ejemplo temperaturas absolutas. si cualesquiera dos de sus corrientes tienen la misma Proyecto Integrador Scortechini . el tiempo de resolución se extendía de manera inaceptable (30min a más de 1h). coeficientes de fugacidad y de actividad. y con menor frecuencia. en ecuaciones de una incógnita. se tuvo que cambiar el enfoque de simulación desde un simulador orientado a ecuaciones hacia uno híbrido. en el que se plantean ecuaciones específicas para cada tipo de equipo. Una ventaja derivada de esto fue un incremento en la eficiencia de resolución. factores de compresibilidad y volúmenes positivos y reales en vez de complejos.

por eso se descartó esta posibilidad. de modo que se presenta la inestabilidad y la divergencia. la resolución de las ecuaciones para ciertos tipos de procesos. otro nivel de iteración que resuelva las ecuaciones particulares de cada equipo y un nivel superior de iteración que resuelva las ecuaciones del proceso global. Mientras la Proyecto Integrador Scortechini . si se encuentra dos iguales. sin embargo es una tarea de complejidad considerable que queda fuera del alcance de este proyecto. un nivel de iteración que resuelva cálculos termodinámicos. Los principales inconvenientes fueron el aumento drástico del tiempo de cómputo. Esto fue una limitación importante porque. como aquellos con derivación (bypass) y reciclo. requiere de varios niveles de iteración. pero una consideración integral hubiera permitido resolver unas cuántas proveyendo información suficiente para avanzar en la resolución de las restantes. Una pequeña perturbación (variación) en los datos. ésta debe ser igual a la temperatura conocida y las corrientes son isotérmicas.130 temperatura y la misma concentración. Niveles de iteración Al no aplicarse un enfoque global de todo el proceso. Por ejemplo. no se podían resolver todas las ecuaciones. y la temperatura de la tercera es desconocida. Una solución alternativa hubiera sido el desarrollo de una nueva biblioteca de métodos numéricos. pero este procedimiento es demasiado complejo para un caso tan simple. hace que el método numérico produzca soluciones oscilantes con amplitud creciente. entonces establece el valor de la temperatura faltante igual al valor de las otras dos. en algunos casos. Los dos primeros niveles de iteración pudieron programarse. pero no se tuvo éxito con el último nivel del proceso global. debido a la necesidad de iterar a nivel del proceso y tener que revisar todos los equipos de éste. Como desventaja se perdió la visión global del proceso. y la entrada en ciclos infinitos que ocurría porque los datos de los equipos no eran totalmente compatibles. Se puede llegar a la misma conclusión haciendo un balance de energía. En cambio se creó una subrutina que compare los valores de las temperaturas conocidas. Otra ventaja fue un mayor grado de detalle en el modelado de las operaciones.

con expresiones racionales y complicadas. nodo divisor. 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. También para esos casos. Por lo tanto el problema se solucionó adecuadamente. Cuando la temperatura del sistema es desconocida. Luego al comparar los resultados obtenidos con aquellos de cálculos rigurosos se encontraron errores menores al 1% en los valores de entalpía y menores al 5% en las temperaturas. Eliminación de equipos Cuando se desea eliminar un equipo del proceso se debe seleccionar la opción “Borrar” del menú contextual asociado a ese equipo. definir una tolerancia del error y comparar los valores calculados con los de la iteración anterior. lo que impide su resolución directa y dificulta mucho su resolución numérica.131 computadora sea capaz de representar los números resultantes continúa iterando. Cálculo de temperaturas y balances de energía La mayoría de las propiedades de las soluciones son funciones de la temperatura. se presenta la necesidad de iterar a un nivel mayor y se presenta el incremento del tiempo de cómputo y la aparición de ciclos infinitos. si el valor absoluto de la diferencia es menor que la tolerancia establecida entonces se da por finalizado el proceso de cálculo. Esta situación se solucionó recurriendo a simplificaciones. Este submenú genera un Proyecto Integrador Scortechini . pero nunca encuentra la solución. Por ejemplo. por ejemplo considerar los términos ideales y descartar los términos correctores. En el caso de bypass y de reciclo. mezclador) que simule estos casos especiales cuando el mezclador y el nodo divisor están uno a continuación del otro. sería factible crear un módulo especial que agrupe varios componentes (corrientes. las ecuaciones que se plantean se vuelven grandes (con muchos términos). para obtener una solución aproximada.

Se han ensayado soluciones para este problema pero todas fueron infructuosas y generaron problemas mayores. Si bien Python posee toda una biblioteca de dibujo. forzando al usuario a volver a acomodarlos en sus posiciones originales. éste tiene éxito al borrar el botón imagen que representa al equipo en el diagrama de flujo. uno arriba del otro. sólo que este caso se omite el diagnóstico del tipo de equipo. para el usuario. En la práctica se observa que los botones de todos los equipos de un mismo tipo aparecen apilados en las mismas coordenadas. no se sistematizó el dibujo de estas interconexiones entre los equipos por falta de tiempo. Entonces se procede a la reconstrucción del diagrama de flujo. pero no logró conseguir la eliminación del diccionario de “Equipos” del objeto “Proyecto” que representa al proceso. Sin embargo esto es un detalle meramente visual que no afecta los cálculos. Sin embargo este objeto no es visible. no se solicita el nombre ni se determinan las coordenadas porque todo esto está almacenado dentro de cada objeto tipo equipo.132 evento de menú que llama al método “OnBorrar”. La razón detrás de este problema pertenece al dominio informático y no se ha encontrado una solución. se carga el objeto de clase “Proyecto” desde el archivo donde se guardó el proceso. ni accesible. Reconstrucción del diagrama de flujo Cuando se abre un proyecto existente. Este problema también pertenece al campo de la informática Conexión de los equipos En los simuladores comerciales los íconos de los equipos que están conectados por líneas rectas o quebradas para indicar el flujo del proceso. Proyecto Integrador Scortechini . Para eso se invocan los métodos descriptos en capítulos anteriores para generar los botones que representan a los equipos.

 Se tuvo éxito al desarrollar una interface gráfica de usuario para el programa.  Se obtuvo un programa que sirve adecuadamente como plataforma para su aplicación a la mejora educativa.  La biblioteca Termodinámica que se desarrolló alcanzó un alto rendimiento en el cálculo de propiedades. ajuste de datos o de funciones. Esos métodos no forman parte del programa de la carrera en la actualidad.133 Capítulo 7: Conclusiones Los hechos relatados y las experiencias acumuladas durante la ejecución de este proyecto han permitido arribar a las siguientes conclusiones:  Fue posible crear un programa de computadora capaz de resolver los cálculos asociados a las operaciones unitarias de transferencia de calor y de masa.  Se programaron eficientemente el balance de materia y el de energía para los equipos modelados.  La interface gráfica de usuario del programa simplifica y mejora la comunicación con el usuario. mezcladores.  Es necesario conocimiento y experiencia con métodos de Análisis Numérico para poder comprender y mejorar las herramientas disponibles de resolución de ecuaciones. nodos divisores.  La calidad de los cálculos programados es comparable con la de los simuladores comerciales. intercambiadores de calor y flashes. Además pueden extenderse sus funcionalidades agregando nuevos módulos que simulen otros equipos o tipos de proceso. Proyecto Integrador Scortechini . etc.  El tiempo estimado para la ejecución del proyecto se ha visto triplicado.  El simulador creado es compatible con varios sistemas operativos gracias a que está codificado utilizando software libre.  Se crearon exitosamente objetos informáticos que representen corrientes de proceso.  El autor de este proyecto se enriqueció fruto del aprendizaje de la programación orientada a objetos y su aplicación a la Ingeniería Química.  Los resultados obtenidos pueden servir para el desarrollo de un producto mejorado en el futuro.

Esta dificultad es un problema de matemática aplicada para el cual no existe una solución universal. genera trabajo adicional. sino que depende de técnicas avanzadas que varían con el caso de estudio y quedan fuera del alcance de este proyecto. da origen a errores. que si no hace correctamente o si es mal interpretado.  A medida que aumenta la complejidad del proceso simulado se incrementa de forma exponencial la sensibilidad de los sistemas de ecuaciones generados.134  Para que el simulador funcione de forma más efectiva y que puedan completarse muchas otras utilidades deseables para este programa. alarga los tiempos. Muchas veces esto compromete la capacidad para llegar a una solución. Lo anterior supone un trabajo de programación importante y complejo. se requerirá de un equipo multidisciplinario de profesionales.  No fue posible lograr la propagación de la información entre los objetos que simulan equipos de proceso cuando éstos no están directamente conectados. pérdida de datos. Proyecto Integrador Scortechini .  La gestión y transmisión de la información entre objetos es una tarea crucial para el buen funcionamiento del simulador.

('Gid'. 'Hid'). 'Vid'). 'Uid').Modelo_Gases = u'Ideal' pro0. 'Sid').xls')#Crea la Base de Datos pro0 = Proyecto(BDD)#Crea el objeto Proyecto A continuación se hace la configuración del sistema: pro0.Sistema_Unidades = u'Sistema Internacional' pro0.Lista_Compuestos = [u'Metil Etil cetona'.Tipo_Caudal = u'Molares' pro0. 'Uiid'). ('Aiid'. Primero se crea un objeto “BaseDeDatos” y luego un objeto “Proyecto”. ('Siid'.50. S.Modelo_Liquido = u'Ideal' pro0.135 Anexo A: Cálculos Termodinámicos Sistemas Ideales Mezclas de gases ideales Ejemplo 1: Una mezcla equimolar de gases ideales compuesta por metil etil cetona y tolueno se encuentra a 50°C y 25kPa.50} Finalmente se arma una lista para indicar qué propiedades se desean obtener y se crea un objeto de la clase “Ideal” al que se le manda esta información como parámetro. 'Gid').Nombre = 'pro1' Después se establecen las condiciones de temperatura. ('Uiid'. BDD = BaseDeDatos('BDD. ('Hid'. U y A para la mezcla. V. ('Uid'. claves01 = [('Hiid'.0#Pa z = {u'Metil Etil cetona':0. 'Giid'). Estimar las propiedades termodinámicas H. 'Hiid'). u'Tolueno':0. ('Giid'. presión y composición: T = 323. ('Vid'. G. u'Tolueno'] pro0. 'Aiid').15#K P = 25000. 'Siid'). ('Sid'. Proyecto Integrador Scortechini .

u"Gas".16 -1849. en el orden en que aparecen en la lista “Sistema”. Todos los resultados están en unidades del Sistema Internacional. se lo configura y después se arma un objeto tipo “Ideal” al que se le pasan las especificaciones del problema. pro1 = Proyecto(BDD)#Crea el objeto Proyecto Proyecto Integrador Scortechini .46] Uid= 24096. BDD. V. G y A. U.13] Hid= 26782. Nuevamente se comienza creando un proyecto. T.37015358 76.76191955] Sid= 89.136 ('Aid'. La solución ideal Ejemplo 2: Suponiendo que el sistema 2-propanol/agua conforme una solución ideal 30% molar de 2-propanol a 293K y 10000Pa.21 Siid= [ 90.78 Las variables con el subíndice “i” son listas que muestran las propiedades de las especies individuales. Las demás variables tienen un único valor numérico que es la propiedad de la mezcla.63 25643.33 Giid= [-1280.88 Vid= 0. sorted(z). 'Aid')] ideal1 = Ideal(pro0.11 Aiid= [-3967. El subíndice “id” sirve para indicar que el sistema se comporta idealmente. S.49 837. P. Calcular H.15] Aid= -4770.96 22956.52] Gid= -2084. claves01) La información de respuesta es: Sistema [u'Metil Etil cetona'.107466764 Uiid= [ 25235. [z[i] for i in sorted(z)]. u'Tolueno'] Hiid= [ 27922.

86 Proyecto Integrador Scortechini .30. u'Agua'] pro1.70} #SOLUCIÓN IDEAL #Ideal-Ideal Ideal2 = Ideal(pro1.3 Aiid= [ -738. u'Agua'] Hiid= [ -6051.24] Gid= -2334.01] Hid= -7546.Nombre = 'pro1' #Especificación de T. BDD. P y composición T = 293. u'Agua':0.Modelo_Liquido = u'Ideal' pro1.0#Pa z = {u'Isopropanol':0.Tipo_Caudal = u'Molares' pro1.77 Vid= 3.89] Aid= -2337. P. T. [z[i] for i in sorted(z)].0#K P = 100000.137 #Configuración General pro1.79 Giid= [ -736.89] Sid= -17.17 -1113.Lista_Compuestos = [u'Isopropanol'.38 -11036.66] Uid= -7550. claves01) La respuesta obtenida es: Sistema: [u'Isopropanol'.55731761232e-05 Uiid= [ -6053.19 -11043.Sistema_Unidades = u'Sistema Internacional' pro1.33 Siid= [-18.36 -1106.14 -33. u"Líquido Subenfriado".Modelo_Gases = u'Ideal' pro1. sorted(z).

07] HR= -149.Tipo_Caudal = u'Molares' pro2. claves2) Los resultados devueltos son: Sistema: [u'Metil Etil cetona'. ('SR'.138 Sistemas no ideales Propiedades residuales Ecuación del Virial Ejemplo 3: Consideremos nuevamente la mezcla equimolar de metil etil cetona y tolueno a 50° y 25kPa. ('HR'.Nombre = 'pro2' #Especificación de T.00161839770276 UiR= [ -93. ('SiR'. 'GR'). P y composición T = 323.11 VR= -0. [z[i] for i in sorted(z)].59] Proyecto Integrador Scortechini . Calculemos ahora las propiedades residuales de la mezcla y de sus componentes.Lista_Compuestos = [u'Metil Etil cetona'. ('GR'.15#K P = 25000.42 -170.Sistema_Unidades = u'Sistema Internacional' pro2. 'SiR'). 'HiR').50. 'AR')] Luego se crea un objeto “Virial”: virial1 = Virial(pro2.50} claves2 = [('HiR'. ('GiR'. ('VR'. 'GiR'). 'HR'). ('AiR'. Se repiten los pasos previos de configuración del sistema: pro2 = Proyecto(BDD) pro2.0#Pa z = {u'Metil Etil cetona':0. P. u'Tolueno':0. u'Tolueno'] HiR= [-128. ('AR'.Modelo_Liquido = u'Ideal' pro2. 'SR'). BDD. 'UR'). ('UiR'. T. u"Gas". 'AiR').76 -123. ('UR'. sorted(z). 'VR').Modelo_Gases = u'Virial' pro2. 'UiR'). u'Tolueno'] pro2.

87 -0.32 0.10585m3/mol y como Vgi= 0.10 -29.] AR= 0. Ecuaciones cúbicas de estado Ejemplo 4: Ahora se resuelve el problema anterior utilizando las ecuaciones de estado de Redlich-Kwong.57 -0.10747m3/mol entonces VR= -0.2127 -54.001757 -0. página 540 son: HR= -149. capítulo 13.3359 GiR= [-34.139 UR= -108.3359J/(molK) y V= 0.54 SiR= [-0.0J/mol. Van Ness y Abbot.37 -25.48] GR= -40. 5° Edición.1451 PR -98. Tabla 10.3 AiR= [ 0. SR= -0.2081 -67.15 13.1315 -42.7746 Los resultados obtenidos por distintas ecuaciones de estado son consistentes entre sí y con el modelo Virial.0 Algunos resultados obtenidos para la mezcla en “Introducción a la Termodinámica en Ingeniería Química” de Smith.59 0. Las diferencias observadas entre ellos son inherentes a cada modelo. Sólo se presentan y se comparan los valores de las propiedades de la mezcla obtenidos con el simulador. Proyecto Integrador Scortechini .001179 -0.66 -46.0162m3/mol.2902 -0.3824] SR= -0. 0.95 -30.08 -0.001028 -0. Todos los resultados concuerdan muy bien. Comparación de propiedades residuales entre ecuaciones de estado Ecuación HR(J/mol) VR(m3/mol) SR(J/molK) UR(J/mol) GR(J/mol) AR(J/mol) RK -68. Soave-Redlich-Kwong y de Peng-Robinson.1102 SRK -96.

5797 1. “Van Laar” o “Wilson”: mar1 = Margules(s1.3513 0.9356] [ 0.5899 0.7365 0.PM[i]/BDD. sci. ]] lnGamma = [-0. 25% Cloroformo y 60% Metanol. Finalmente se crean los respectivos objetos de la clase “Margules”. s3. s2.5788 1. 'Metanol'] Matriz de coeficientes: [[ 0.0904 0. sci.140 Coeficiente de Actividad Ejemplo 5: Para el sistema Acetona/Cloroformo/Metanol a 15°C y 250kPa calcular los coeficientes de actividad. de Van Laar y de Wilson. T.886 0. 0. La composición molar es 15% Acetona.6184] [-0.6184] [-0. -0.array([z[i] for i in sorted(z)]).BD['Actividad']. Para resolver este problema se aplicarán los modelos de Margules.BD['Actividad']) vLr1 = VanLaar(s2.832 ] [ 0.BD['Actividad']) wil = Wilson(s3.array([z[i] for i in sorted(z)]). Primero debe crearse un objeto clase proyecto.561 0. sci.array([z[i] for i in sorted(z)]). -0.8404 0.array([BDD. 'Cloroformo'.8643 0.d[i] for i in sorted(z)])) Los resultados devueltos por estos objetos se muestran a continuación: MARGULES Sistema: ['Acetona'. luego se debe configurar cambiando el modelo de líquido en cada caso. 'Metanol'] Matriz de coeficientes: [[ 0. sci. 0.0273] VAN LAAR Sistema: ['Acetona'. s1.4209 1. 'Cloroformo'.0269] Gamma = [ 0. ]] Proyecto Integrador Scortechini .9136 1.

141 lnGamma = [ 0.1696] Donde las filas y columnas de las matrices de coeficientes representan coeficientes de interacción binaria entre compuestos y se corresponden con los compuestos de forma exacta a como se han enumerado en la lista “Sistema”(1: Acetona.0034 1.0034 0.8339464 -478. ]] lnGamma = [ 0.6692648] [-2120.4682 1. 2: Cloroformo y 3: Metanol).5109328 7087.15664] Gamma = [ 1.4707 0.7477696] [ 2281. -1513. Proyecto Integrador Scortechini .1515 1. 'Cloroformo'.1099] Gamma = [ 1.1411 0.1162] WILSON Sistema: ['Acetona'.7968344 0.38402 0. 'Metanol'] Matriz de coeficientes: [[ 0. 485. El mismo orden se mantiene para las listas “lnGamma” y “Gamma” que muestran el logaritmo natural del coeficiente de actividad y ese coeficiente para cada compuesto de la mezcla.6683496 0.6011 1.

V. el punto de rocío. Proyecto Integrador Scortechini . Primero se debe abrir el simulador. Se desea conocer la composición en masa. Luego se debe hacer clic en la herramienta de “Configuración General” de la barra de herramientas o en el menú “Configuración” seleccionar el submenú “Configuración General”. Debe hacerse clic en el botón Aceptar. el punto de burbuja. n-Heptano. Se abrirá entonces un diálogo. G. U y A molares de la mezcla. La pantalla debe verse así: Figura 56. allí se deben seleccionar las opciones: Sistema Internacional en Sistema de Unidades. Molares en Tipo de Caudal.142 Anexo B: Cálculos de Corriente Ejemplo 6: Una torre de fraccionamiento de petróleo obtiene 4000kmol/h de un combustible con composición molar 80% de n-octano. 15% de n-heptano y el resto n-hexano. el estado de agregación y las propiedades termodinámicas: H. Ideal en Modelo para Gases y Modelo para Líquidos. S. el peso molecular medio. Configuración general para el Ejemplo 6. Utilizar el modelo del gas ideal para los gases y la solución ideal para los líquidos. El producto se enfría hasta 300K a una presión de 120kPa. n-Hexano y n-Octano en Lista de compuestos.

Diálogo de configuración de corriente del Ejemplo 6. y hacer clic en Aceptar. Al hacer clic con el botón derecho del mouse aparecerá un menú emergente cerca del ícono. 120000 y Pa en Presión. Proyecto Integrador Scortechini . Luego se debe escribir 4000 y seleccionar la opción kmol/h en Caudal. Entonces aparecerá un ícono con forma de flecha azul sobre el área de diseño. Se abrirá un diálogo que permite nombrar a la nueva corriente. 300 y K en Temperatura. por ejemplo F35. Cuando se selecciona la opción Configurar se abre un diálogo de configuración de corriente.15 y 0. e introducir 0.80 en la tabla de composición para n-heptano y n-octano respectivamente (el sistema calculará la composición restante). Figura 57. ingresar un nombre. Figura 58.143 El próximo paso es crear un objeto Corriente haciendo clic sobre la herramienta con forma de flecha o seleccionando la opción Corriente en el menú Insertar. Completando los datos de la corriente.

el estado de agregación y las propiedades termodinámicas: entalpía.144 A continuación se debe hacer clic en el botón Actualizar y con la información provista el programa resolverá la corriente. Corriente del Ejemplo 6 resuelta. Ejemplo 7: Una mezcla 50% de agua. energía libre de Gibbs. el de rocío. Se desea conocer el peso molecular medio de la solución. entropía. 30% de metanol y el resto de acetona se encuentra a 318K y 150000Pa. volumen. la composición molar. Proyecto Integrador Scortechini . energía interna y energía de Helmholtz todas molares. La composición se expresa en porcentaje en masa. el punto de burbuja. Utilizar el modelo Virial para representar gases y la ecuación de Wilson para modelar líquidos. Figura 59.

Figura 60. Luego se introducen los datos del problema en el diálogo de configuración de corriente y al hacer clic en Actualizar se obtienen los resultados. por ejemplo “Alim”. Sólo que deben seleccionarse Acetona. Propiedades de la corriente del Ejemplo 7. Virial en Modelo para Gases y Wilson en Modelo para Líquidos. Como el caudal es desconocido se debe introducir un símbolo en su lugar. Proyecto Integrador Scortechini . Agua y Metanol como componentes.145 Los pasos preliminares son los mismos que en ejemplo 6.

146

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

Figura 61. Diálogo de configuración de nodo divisor para el Ejemplo 8.
Después se debe seleccionar “A”, “B” y “C” como “Entrada”, “Salida 1” y “Salida 2”
respectivamente; y presionar el botón cargar.

Proyecto Integrador Scortechini

147

Figura 62. Carga de datos para el Ejemplo 8.
A continuación se debe presionar el botón “Actualizar” para intentar resolver el
problema o visualizar las incógnitas restantes y saber qué datos hay que ingresar.

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

Proyecto Integrador Scortechini

148

Anexo D: Cálculos de Mezclador
Ejemplo 9: Se tiene una corriente de 2300kg/h constituida 60% de Etileno, 30% de
Agua y el resto Dióxido de Carbono a 500K. Otra corriente se compone en un 50%
de Dióxido de Azufre y 50% de Monóxido de Carbono a 500kPa. Si estas corrientes
se mezclan para dar 5800kg/h de producto a 425K, encontrar el caudal de la
segunda alimentación y su temperatura, así como la composición de la corriente de
salida. Utilizar la ecuación de Soave-Redlich-Kwong como modelo de gas.
Primero se crean objeto corriente y se cargan los datos conocidos. Luego se agrega
un mezclador haciendo clic en la herramienta de mezclador (triángulo verde) o el
menú correspondiente y se abre el diálogo de configuración.

Figura 64. Diálogo de configuración de mezclador para el Ejemplo 9.
Después de seleccionar las corrientes, cargar los datos y actualizar el mezclador se
obtiene.
Proyecto Integrador Scortechini

Proyecto Integrador Scortechini . Resultados del Ejemplo 9.149 Figura 65.

150 Proyecto Integrador Scortechini .