Para el ejemplo 4.1.1.1 del texto, los valores conocidos son:
La fracción molar de CO2 en la fase gaseosa (calculada con la ley de Henry) es:
Que es igual al número de moles (n), porque en el ejercicio se toma como base 1 mol de solución, entonces, el volumen de CO2, calculado con la ecuación del gas ideal:
\[ \begin{gathered} P\cdot V = n\cdot R\cdot T\\[5mm] V = \dfrac{n \cdot R \cdot T}{P} \end{gathered} \] |
Para condiciones de temperatura y presión estándar, es:
Donde Qty.gasConstant, es la constante (R) del gas ideal en J/K*mol, Qty.stdT es la temperatura estándar en K y Qty.stdP es la presión estándar en atm (el resultado es convertido a litros).
El volumen de 1 mol de agua VH2O se calcula asumiendo que su densidad es 1 g/ml y que el volumen de CO2 es despreciable (peso molecular: 18.02 g/mol):
Observe que la densidad del agua ha sido invertida (Qty(1 g/ml).inverse()), porque para convertir los gramos a mililitros, se requiere la inversa de la densidad.
Finalmente, el volumen de CO2 por volumen de H2O, es:
En la calculadora JavaScript ya están implementadas las funciones y los métodos que permiten generar funciones arbitrarias a partir de datos tabulados, así como los métodos que permiten interpolar datos puntuales.
La función para interpolar un valor a partir de dos puntos y un valor conocidos es inLin. Esta función recibe el valor a interpolar (xc), los valores "x" del primer y segundo punto y los valores "y" del primer y segundo punto, siendo "x" la variable independiente y "y" (que se les recuerda se lee "ye") la variable dependiente. Así, para el primer ejemplo de la sección 4.2, es decir calcular valores de "y" para valores de "x" iguales a 15 y 18, se escribe:
Y para interpolar el valor de "x" para un valor de "y" igual a 17:
El método que permite generar (por interpolación lineal) una función arbitraria a partir de datos "x" y "y" conocidos, es inLin1. Este método debe ser llamado desde una matriz cuya primera fila son los datos "x" y la segunda los datos "y" (siendo, como de costumbre, "x" la variable independiente y "y" la variable dependiente). Así, para los datos tabulados del segundo ejemplo del subtítulo 4.2 del texto, las funciones de interpolación se generan con las siguientes instrucciones:
Ahora, con la función "fx", se interpolan los valores de "y" para valores de x iguales a: 8, 20, 21, 1.2 y 0.5, donde los resultados se muestran con una precisión de 12 dígitos, para que tengan la misma precisión de la calculadora HP (recuerden que la calculadora HP trabaja con 12 dígitos de precisión, mientras que la calculadora JavaScript trabaja con 17 dígitos de precisión):
Si así se requiere, se pueden interpolar los 5 valores a la vez, empleando el método estándar map:
Igualmente, con la función "fy", se interpolan valores de "x" para valores de "y" iguales a: 0.5, 10, 17, 23 y 30
De la misma manera, se pueden interpolar los 5 valores a la vez con map:
Alternativamente se pueden emplear los métodos inLineal y splineLineal en lugar de inLin1.
La función para el cálculo de una etapa de absorción, cuando se conocen los datos de entrada y las funciones de "x" y "y", ha sido programada con el nombre absor1l0x0v0y0. Esta función recibe el flujo molar inicial de líquido (L0 en kmol/h), la fracción molar inicial de soluto en el líquido (x0), el flujo molar inicial de gas (V0 en kmol/h), la fracción molar inicial de soluto en el gas (y0), la función de "x" (fx) y la función de "y" (fy).
Para resolver, con esta función, el ejemplo 4.2.1.1 del texto, se procede de la siguiente manera:
Primero se guardan, los valores conocidos:
Con la constante de Henry (H) y la presión del gas (PA), se programan las funciones "fx" y "fy":
Entonces, con todos los datos requeridos, se llama a la función absor1l0x0v0y0 y se obtienen los resultados requeridos:
Para el ejemplo 4.2.1.2 del texto, se procede de la siguiente manera:
Se guardan los datos conocidos:
Con la presión parcial inicial del metanol (PA0) y la presión de operación (P), se calcula la fracción molar inicial de metanol (y0):
Con los datos tabulados disponibles, para 39.9 y 59.4 grados Celsius:
Se calculan las fracciones molares para una temperatura de 45 °C, empleando el método JavaScript estándar map (estudiada en Informática 1) y la función inLin:
En esta instrucción, la función que se manda a map recibe cada uno de los elementos de "x" (_), así como su índice (i), pero como en el cálculo no se emplean los valores de "x", se denota ese hecho recibiendo los valores en la variable "_". En la función (para cada elemento "i") se calcula (por interpolación) el valor de la presión parcial del metanol para la temperatura T (45 °C), empleando las presiones parciales conocidas (vpa1[i] y vpa2[i]) a 39.9 y 59.4 grados Celsius. El resultado de la interpolación se divide entre la presión total "P", con lo que se obtiene la fracción molar ("y") de metanol, la cual se redondea al quinto dígito después del punto (round(5))./p>
Entonces se crean las funciones de interpolación:
Con todos los datos necesarios, se llama a la función absor1l0x0v0y0, con lo que se calculan los flujos y composiciones a la salida de la etapa de equilibrio:
Finalmente, con los kmol de soluto absorbidos por el líquido (L1*x1), divididos entre los kmol iniciales en la fase gaseosa (V0*y0), se calcula el porcentaje de metanol recuperado:
El programa, para el caso donde no se conoce el flujo inicial de líquido (L0) pero sí el porcentaje de absorción (pa) se denomina absor1x0v0y0pa.
Para resolver el ejemplo 4.2.2 con esta función, se procede de la siguiente manera:
Primero, como de costumbre, se guardan en variables los datos conocidos:
Al igual que en el ejemplo anterior, con PA0 y P, se calcula la fracción molar inicial de metanol:
Como los datos de equilibrio son los mismos que en el anterior ejemplo, se calculan los valores de "y" para 45 °C, de la misma forma:
Y de la misma manera se crea la función de interpolación que devuelve "x" para un valor conocido de "y":
Entonces se llama a la función absor1x0v0y0pa, para calcular los flujos y composiciones desconocidos:
Las diferencias en los resultados, comparados con los obtenidos con la calculadora HP, se deben, por una parte a la mayor precisión con la que se trabaja en JavaScript y por otra a que en esta solución, los valores interpolados de las presiones parciales no han sido redondeados al primer dígito después del punto. Para obtener un resultado más cercano al de la calculadora, se puede redondear las presiones parciales al primer dígito:
Con lo que ahora se obtiene:
No obstante, en la práctica no es necesario hacer ese redondeo, porque al trabajar JavaScript con mayor precisión que la calculadora HP, se sobreentiende que el resultado más confiable es el obtenido en JavaScript.
La función para este caso se denomina absor1x0x1v0y0. Esta función recibe las fracciones molares inicial (x0) y final (x1) de soluto en la fase líquida, el flujo molar inicial de gas (V0), la fracción molar inicial de soluto en el gas (y0) y la función de equilibrio, que devuelve el valor de "y" para un valor conocido de "x" (fx). Devuelve los flujos molares inicial (L0) y final (L1) de líquido, el flujo molar final de gas (V1) y la fracción molar final de soluto en el gas (x1).
Para calcular, con esta función, los flujos y composiciones faltantes, para el caso de la absorción de CO2 (ejemplo 4.2.1.1), asumiendo que no se conoce el flujo molar inicial de líquido (L0) y que sí se conoce la fracción molar final de soluto en el líquido (xn), se procede de la siguiente manera:
Se guardan los datos conocidos:
Y se llama a la función absor1x0x1v0y0:
El ejemplo 4.2.1.1 puede ser resuelto iterativamente con absor1l1x1xnv1y1. Para ello se asume la fracción molar final de soluto (x1), con absor1l1x1xnv1y1 se calcula el flujo molar inicial de líquido (L0), hasta que el valor calculado sea igual al valor conocido.
Primero se guardan los valores conocidos:
Entonces se programa y resuelve (con el método de la bisección) la función que devuelve la diferencia entre el valor calculado (r.L0) y el valor conocido L0:
Finalmente, llamando a esta función, se obtienen los flujos y fracciones desconocidos:
La función que permite calcular los flujos y composiciones de salida, de una torre de absorción con múltiples etapas, conociendo los flujos de entradas y el porcentaje de soluto a absorber (pa) se denomina absorNl0x0v0y0, esta función recibe el flujo molar inicial de líquido (L0), la fracción molar inicial de soluto en el líquido (x0), el flujo molar inicial de gas (V0), la fracción molar inicial de soluto en el gas (y0) y el porcentaje de soluto a absorber (pa). Devuelve el flujo molar final de líquido (Ln), la fracción molar de soluto en el líquido (xn), el flujo molar final de gas (V1) y la fracción molar final de soluto en el gas (y1).
La función que permite calcular el número de etapas teóricas para lograr que el líquido salga con una determinada fracción molar de soluto (xn) y que el gas (V1) salga con una determinada fracción molar de soluto (y1), se denomina absorNl0x0xnv1y1. Esta función recibe el flujo molar inicial de líquido (L0), la fracción molar inicial de soluto en el líquido (x0), la fracción molar final de soluto en el líquido (xn), el flujo molar final de gas (V1), la fracción molar final de soluto en el gas (y1) y la función de equilibrio (que devuelve la fracción de soluto en el líquido "x" para un valor conocido de la fracción molar de soluto en el gas "y").
Para resolver el ejemplo 4.3.1, primero se guardan los datos conocidos:
Como todos los datos necesarios son conocidos, se llama a la función absorNl0x0v0y0pa para resolver el ejercicio:
Para resolver el ejemplo 4.3.3.1, primero se guardan los datos conocidos:
Igualmente se guarda la presión, pero como está en Pa, primero se convierte a mmHg y el resultado se redondea al segundo dígito después del punto:
Con estos datos se llama a la función absorNl0x0v0y0pa para calcular los flujos y composiciones de salida:
Con los datos de equilibrio (disponibles en forma de presiones parciales para la fase gaseosa), se crea la función de equilibrio "fy":
Entonces se llama a la función absor1Nl0x0xnv1y1 para calcular el número de etapas teóricas necesarias para lograr la separación requerida:
Para calcular el número de etapas reales, simplemente se divide este resultado entre la eficiencia de las etapas teóricas:
Para resolver el ejemplo 4.3.3.2, se procede de la siguiente manera:
Primero, se guardan los datos conocidos, llevando a cabo las conversiones de unidades que son necesarias:
Con los datos de equilibrio (disponibles en forma de presiones parciales para la fase gaseosa), se crea la función de equilibrio "fy":
Entonces se programa y resuelve (con Regula Falsi) la función que, en base a un porcentaje de absorción (de SO2) asumido (pa), devuelve la diferencia entre el número de etapas conocidas (nec) y el número de etapas calculadas (n), hasta que esa diferencia es prácticamente 0:
Llamando a esta función, se obtiene el porcentaje de soluto que puede ser absorbido en el equipo:
Se guardan en variables los datos conocidos:
Entonces se programa la función que recibe el valor asumido para el flujo molar inicial del líquido (L0) y con el mismo y los valores guardados en las variables, se calculan los flujos y composiciones finales y con esos valores, se calcula el número de etapas requeridos.
Como la función absorNl1x1xnv1y1 devuelve 500 etapas, cuando el número de etapas es mayor o igual a 500 (valor para el cual se asume que el número de etapas es infinito), se aprovecha ese valor para que la función devuelva el número de etapas calculado menos 500, más 1, valor que es positivo cuando el número de etapas es infinito y negativo cuando no lo es:
Entonces, a diferencia del ejemplo del texto, donde se resuelve el problema por simple tanteo, para resolver la ecuación se emplea el método incremental, que, justamente, busca el cambio de signo para encontrar la solución.
Llamando al método incremental con un valor inicial (xi) de L0 igual al flujo de gas (V0), un incremento (dx) igual a 10 (kmol/h) y una precisión exactitud de 4 dígitos, se obtiene el flujo mínimo de líquido (L0) requerido:
La función para el cálculo analítico del flujo mínimo de líquido (L0) se denomina absorLmin. Esta función recibe la fracción molar inicial de soluto en el líquido (x0), el flujo molar de gas (V0) en kmol/h, la fracción molar inicial de soluto en el gas (y0), el porcentaje de absorción (pa) y la función de equilibrio para calcular "x" conociendo "y" (fy). Devuelve el flujo molar mínimo de líquido en kmol/h.
Para resolver con esta función, el ejemplo 4.2.2 del texto, que opera bajo las mismas condiciones del ejemplo 4.4.1, simplemente se guardan los valores conocidos y se llama a la función:
Con lo que se obtiene un resultado similar al del ejemplo 4.3.1. Se hace notar que en el texto, la presión (1.5e5_Pa) es incorrecta, su valor debería ser 7.2e4_Pa, que es el valor del ejemplo 4.3.1 y con el cual se obtiene el resultado mostrado en el texto.
La función para el cálculo simplificado del número de etapas teóricas, por el método de Kremser, ha sido programada con el nombre absorKremser. Esta función recibe el flujo molar inicial de líquido (L0), la fracción molar inicial de soluto en el líquido (x0), el flujo molar final de líquido (Ln), el flujo molar inicial de gas (V0), la fracción molar inicial de soluto en el gas (y0), el flujo molar final de gas (V1), la fracción molar final de soluto en el gas (y1) y la constante de la ley de Herny (H). Devuelve el número de etapas teóricas.
Para resolver el ejemplo 4.5.1, para los mismas condiciones de operación que el ejemplo 4.3.3.1, se procede de la siguiente forma:
Primero se guardan los datos conocidos:
Se calculan los flujos y composiciones finales (con absorNl0x0v0y0pa:
Se calcula el coeficiente de la ley de Henry, ajustando a una línea recta: y = a+b*x (grupos funcionales: 1 y x), los tres primeros puntos, de los datos de equilibrio conocidos, con el método de los mínimos cuadrados (mincuad). La constante de Henry es el segundo coeficiente (c[1]) de la ecuación ajustada (la pendiente de la recta: b), en este caos no se requieren ni la ecuación ajustada (f) ni el coeficiente de correlación (r):
Finalmente, se llama a absorKremser para calcular el número de etapas teóricas:
La referencia detallada de las funciones presentadas en este y en el anterior capítulo (incluido el codigo de los programas elaborados), está disponible en el siguiente enlace (donde se irán incorporando otras funciones a medida que se las presente y utilice):
Referencia funciones disponibles