Algunas Disquisiciones Sobre el Punto de Burbuja

Un poco de filosofía

Cuando uno adquiere el compromiso de escribir un blog, también adquiere el de mantenerlo, y a veces éste último es el más difícil de cumplir. Por las estadísticas de visitas al aitio Web, el tema de diseño de plantas es lo que más gusta, pero es el tema más difícil de abordar porque toma un tiempo muy grande.

Con respecto al tema del diseño de plantas, el amable lector Ingeniero Químico debe reconocer que para diseñar una planta (en realidad, un instalación industrial constituida de varias plantas) hay que primero saber diseñar los equipos, y que para diseñarlos hay que tener muy claros los conceptos de los fenómenos de transferencia, y de la termodinámica.

Por eso se me ocurrió el tema que queda señalado, para lo que hube de ponerme a mirar los conceptos que les menciono con mucha claridad, que en mi formación (del siglo pasado), no los recibí ni en pregrado, ni en postgrado.

El tema y su tratamiento

La primera cosa que me ocurrió fue que había que elegir un problema. Y para eso busqué primero un algoritmo, en el libro Smith, que usé en mi post grado, pero la verdad es que me desilusioné, porque no es un libro algorítmico, porque es de la época en que el IBM 1130, que tenía menos memoria que mi iPhone.

Entonces me acoré de un libro que, en su tiempo me pareció complicado, el famoso Multicomponent Distillation, de (Holland), que sí es algorítmico, y por lo tanto hecho para aplicar los métodos que allí se exponen en la computadora, aunque coincidentemente hayan sido publicados, los dos, en 1962.

Leyendo a Holland me enteré que él se había basado en el famoso libro de Brown, para tratar el tema, y entonces me dije que quizá podría ser de interés para mis lectores, y por eso lo abordé.

El concepto

Para Holland –y para todos, por lo menos hasta que nos damos cuenta (y hablo por mi), la destilación flash es una destilación multicomponente de una sola etapa. ¿Verdad de Perogrullo?: Si y no, porque una vez que se lee la afirmación de Holland, es obvia, y antes no lo es.

¿Genialidad de Holland de presentar el tema de los multicomponentes en forma algorítmica?, o sabía que venía el IBM 360, que haría aplicable todo lo que él propone en su libro? Nunca lo sabremos. La verdad es que en mi postgrado trabajábamos esos problemas con unos calculadores carísimos a tubos de vacío, de cuatro operaciones.

Más conceptos

Uno debe aproximarse A las mezclas multicomponentes en la dirección que va desde el líquido hacia el vapor si de una expansión flash se trata.

Si así se procede entonces lo que primero se encuentra es el punto de burbuja, que es la temperatura a la que se forma la primera burbuja (realmente es el comienzo de la ebullición). Pero como se trata de una mezcla no se empieza a evaporar hasta que no se llega al punto de rocío, que es la temperatura a la que se comienza a formar vapor. Entre estas dos temperaturas hay una zona de transición.

El punto de burbuja

Aquí yo voy a utilizar los subíndices que usé en mi programa, para evitar confusiones.

La primera ecuación es una verdad termodinámica más grande que una casa, que lo único que dice es que la suma de las fracciones molares en fase líquida multiplicada por el coeficiente de reparto K(zz), que es igual a y(kk)/x(kk).

En el caso que nos ocupa, y habiendo sido Holland profesor del Departamento de Ingeniería Química del Agricultural and Mechanical College of Texas, el ejemplo, que él tomó de (Brown) corresponde a una mezcla de hidrocarburos n-C2, n-C3, i-C3, n-C4, i-C4, n-C5, i-C5, y n-C6.

En esos tiempos se trabajaba en psia, y las tablas de Holland, que él toma del Natural Gasoline Asssociation of América, se presentan en forma de expansiones polinomiales de K(zz)=f(T), a 50 psia, donde la temperatura está en grados Rankine.

En este punto me di cuenta que las tablas de Holland que yo estaba mirando no abarcaban los compuestos iso y entonces procedí a modificar la mezcla sumando las fracciones molares de los hidrocarburos normales  a las de los iso y tomando esa suma como si se tratase de sólo de hidrocarburos normales.

Después me di cuenta que algunas combinaciones de coeficientes estaban bien, porque obtenían los valores de Brown y otras no, pero ya estaba metido en el baile y debí hacerles algunas “correcciones” (educated guesses), hasta que obtuve números de K(kk) que hacían lógica, ya que mientras más pesado es el hidrocarburo menor es su volatilidad, y menor es su K(kk).

De todo esto resultó que de siete hidrocarburos que aparecen en el problema de Brown yo me reduje a cinco, como les indico a continuación.

Figura1

Figura 1. Valores de K para la estimación de Punto de burbuja de la alimentación

La condición para poder calcular el punto de burbuja, que se convierte en ecuación es la siguiente.

Ecuacion1

El problema se reduce, entonces a encontrar la temperatura que satisfaga la ecuación anterior, que –escrita como función- queda como se muestra a continuación, y se conoce como la curva de temperatura de punto de burbuja de la mezcla de alimentación al tambor flash.

Ecuacion2

Esto significa, que la función puede graficarse (de hecho Hollan lo muestra en su página 16, Cáp.2, donde manifiesta que en vez del método numérico de Newton-Raphson se debe usar el método de Regula Falsi, que funciona con dos aproximaciones.

El gráfico obtenido fue el siguiente.

Figura2

Figura 2. Trazo de la Función de Punto de Burbuja

Lo interesante de todo esto, por lo menos para mí, es que la discusión acerca de qué método numérico usar para determinar el Punto de Burbuja de la mezcla no es importante porque cualquiera puede leer el  gráfico anterior, y saber ipso-facto, que el punto de burbuja es 570oR “y piquillo”.

Sin embargo de lo anteriormente expuesto, Holland anota en la página 15, que es posible obtener el punto de burbuja usando el método de Newton-Raphson.

Ecuacion3

Y, claro, después de todas las peripecias que he narrado, yo también apliqué el método anterior, usando como primera aproximación 400oR, obteniendo, en ¡98 iteraciones!, en la primera versión de este artículo tenía yo una equivocación en la derivada y en la subrutina de cáculo de punto de burbuja, por eso el cambio de texto.

Pto.Burbuja570.497733705646oRL=98

Las concentraciones que usé para la alimentación fueron las siguientes:

Figura4

Figura 3. Concentraciones de alimentación

Los coeficientes polinomiales que mencioné antes fueron los siguientes:

Figura5

Figura 4. Coeficientes polinomiales para el vaso de K de cada hidrocarburo

El programa

Option Base 1

Option Explicit

Dim Arrayx(1 To 10) As Variant

Dim ArrayA(1 To 10, 1 To 10) As Variant

Dim ArrayK(1 To 20) As Variant

Dim ArrayKp(1 To 20) As Variant

Dim i, j, NC, kk, L, Fila As Integer

Dim T As Double

Dim Sum, Sumr, Tv, Tn, MM, MMM, MMMM, Sump As Variant

Dim De_Nuevo As String

Dim HH As Double

 

Sub DESTILACION()

Fila = 36: Sum = 0: Sumr = 0

‘Limpieza

Worksheets(“Hoja1”).Range(“A36:f300”).Clear

Arrayx(1) = Worksheets(“Hoja1”).Cells(2, 3)

Arrayx(2) = Worksheets(“Hoja1”).Cells(3, 3)

Arrayx(3) = Worksheets(“Hoja1”).Cells(4, 3)

Arrayx(4) = Worksheets(“Hoja1”).Cells(5, 3)

Arrayx(5) = Worksheets(“Hoja1”).Cells(6, 3)

‘x(6) = Worksheets(“Hoja1”).Cells(7, 3)

‘x(7) = Worksheets(“Hoja1”).Cells(8, 3)

NC = 5

ArrayA(1, 1) = Worksheets(“Hoja1”).Cells(9, 3)

ArrayA(2, 1) = Worksheets(“Hoja1”).Cells(10, 3)

ArrayA(3, 1) = Worksheets(“Hoja1”).Cells(11, 3)

ArrayA(4, 1) = Worksheets(“Hoja1”).Cells(12, 3)

ArrayA(1, 2) = Worksheets(“Hoja1”).Cells(14, 3)

ArrayA(2, 2) = Worksheets(“Hoja1”).Cells(15, 3)

ArrayA(3, 2) = Worksheets(“Hoja1”).Cells(16, 3)

ArrayA(4, 2) = Worksheets(“Hoja1”).Cells(17, 3)

ArrayA(1, 3) = Worksheets(“Hoja1”).Cells(22, 3)

ArrayA(2, 3) = Worksheets(“Hoja1”).Cells(23, 3)

ArrayA(3, 3) = Worksheets(“Hoja1”).Cells(24, 3)

ArrayA(4, 3) = Worksheets(“Hoja1”).Cells(25, 3)

ArrayA(1, 4) = Worksheets(“Hoja1”).Cells(26, 3)

ArrayA(2, 4) = Worksheets(“Hoja1”).Cells(27, 3)

ArrayA(3, 4) = Worksheets(“Hoja1”).Cells(28, 3)

ArrayA(4, 4) = Worksheets(“Hoja1”).Cells(29, 3)

ArrayA(1, 5) = Worksheets(“Hoja1”).Cells(30, 3)

ArrayA(2, 5) = Worksheets(“Hoja1”).Cells(31, 3)

ArrayA(3, 5) = Worksheets(“Hoja1”).Cells(32, 3)

ArrayA(4, 5) = Worksheets(“Hoja1”).Cells(33, 3)

 

T = Worksheets(“Hoja1”).Cells(13, 3)

T = T + 459.67

For kk = 1 To NC

ArrayK(kk) = 0

Next kk

Call Calculo_de_K(T, ArrayA(), ArrayK(), NC)

Call Imprimir_Resultados(Fila, ArrayK(), kk, NC)

Call Calculo_Funcion_Temperatura_Burbuja_Rocio(ArrayK(), Arrayx(), T, Fila, Sum, Sumr)

Tv = 700

Call Calculo_del_Punto_Burbuja(Tv, Tn, ArrayA(), ArrayK(), ArrayKp(), Fila, Arrayx())

End Sub

Sub Calculo_de_K(T, ArrayA(), ArrayK(), NC)

For kk = 1 To NC

ArrayK(kk) = T * (ArrayA(1, kk) + ArrayA(2, kk) * T + ArrayA(3, kk) * T ^ 2 + ArrayA(4, kk) * T ^ 3) ^ 3

Next kk

 

End Sub

Sub Imprimir_Resultados(Fila, ArrayK(), kk, NC)

For kk = 1 To NC

Worksheets(“Hoja1”).Cells(Fila, 1) = “K(” & kk & “)=” & ArrayK(kk)

Fila = Fila + 1

Next kk

End Sub

Sub Calculo_Funcion_Temperatura_Burbuja_Rocio(ArrayK(), Arrayx(), T, Fila, Sum, Sumr)

Worksheets(“Hoja1”).Cells(Fila, 1) = “T,oR”

Worksheets(“Hoja1”).Cells(Fila, 2) = “Fb(T)”

‘Worksheets(“Hoja1”).Cells(Fila, 3) = “Fr(T)”

Fila = Fila + 1

For T = 100 To 600 Step 10

For kk = 1 To NC

ArrayK(kk) = T * (ArrayA(1, kk) + ArrayA(2, kk) * T + ArrayA(3, kk) * T ^ 2 + ArrayA(4, kk) * T ^ 3) ^ 3

Sum = Sum + ArrayK(kk) * Arrayx(kk)

‘Sumr = Sumr + (1 / ArrayK(kk)) * Arrayx(kk)

Next kk

Worksheets(“Hoja1”).Cells(Fila, 1) = T

Worksheets(“Hoja1”).Cells(Fila, 2) = Sum – 1

‘Worksheets(“Hoja1”).Cells(Fila, 3) = Sumr – 1

Sum = 0: Sumr = 0: Fila = Fila + 1

Next T

End Sub

Sub Calculo_del_Punto_Burbuja(Tv, Tn, ArrayA(), ArrayK(), ArrayKp(), Fila, Arrayx())

Sum = 0: Sump = 0: L = 0

De_Nuevo:

For kk = 1 To NC

ArrayK(kk) = Tv * (ArrayA(1, kk) + ArrayA(2, kk) * Tv + ArrayA(3, kk) * Tv ^ 2 + ArrayA(4, kk) * Tv ^ 3) ^ 3

Sum = Sum + ArrayK(kk) * Arrayx(kk)

Next kk

 

For kk = 1 To NC

MM = (ArrayA(1, kk) + ArrayA(2, kk) * Tv + ArrayA(3, kk) * Tv ^ 2 + ArrayA(4, kk) * Tv ^ 3) * 2

MMM = ArrayA(2, kk) + 2 * ArrayA(3, kk) * Tv + 3 * ArrayA(4, kk) * Tv ^ 2

MMMM = (ArrayA(1, kk) + ArrayA(2, kk) * Tv + ArrayA(3, kk) * Tv ^ 2 + ArrayA(4, kk) * Tv ^ 3) ^ 3

ArrayKp(kk) = 3 * Tv * MM * MMM + MMMM

Sump = Sump + ArrayKp(kk) * Arrayx(kk)

Next kk

 

Tn = Tv – (((Sum – 1) / Sump))

If Abs(Tn – Tv) < 0.01 Then

Worksheets(“Hoja1”).Cells(Fila, 1) = “Pto.Burbuja” & Tn & ” oR” & “L=” & L

Exit Sub

Else

Tv = Tn: Sum = 0: Sump = 0

L = L + 1

End If

If L > 100 Then

 

Worksheets(“Hoja1”).Cells(Fila, 1) = “L=” & L

Exit Sub

Else

GoTo De_Nuevo

End If

 

End Sub

 

Trabajos Citados

Buford D. Smith et al. (1963). Design of Equilibrium Stage Processes. New York, New York, U.S.A.: McGraw-Hill Book Company.

Charles Holland (1963). Multicomponent Distillation. Englewood Cliffs, New Jersey: Prentice Hall, Inc.

George Granger Brown et al. (1960, 7th printing). Unit Operations. (J. W. Sons, Ed.) New York, New York, U.S.A.: John Wiley & Sons.

 

 

Publicado en Sin categoría

Una Planta para Digestión de Excremento de Pollos

El problema

De acuerdo a como yo lo entiendo, salvo mejores y más ilustrados criterios, la cría de pollos para suministrar carne al mercado consumidor tiene un problema que consiste en que durante el ciclo de vida del pollo éste defeca y en que la defecación constituye un desecho que es muy contaminante y que al momento presente se soluciona mezclando la defecación del animal con virutas de madera y cascarilla de arroz, en una proporción cercana al 80% para las virutas y la cascarilla, versus un 20% para la defecación.

Esta mezcla se utiliza como abono, y esa es la manera mediante la que se dispone de este desecho, que -si se me permite- no es la más eficiente, pero que -según yo entiendo es la que prevalece al momento.

Una solución propuesta

La solución que se propone en este artículo, no es original, ya que implica una digestión mediante enzimas y bacterias liofilizadas que se se añade a la mezcla sólida que constituye “el abono”, a la que se añade agua para poder implementar el proceso de separación de los sólidos insolubles como virutas y otros ya mencionados.

En el video que acompaño se muestran algunas facetas del procesamiento que consiste de las siguientes operaciones:

  1. Filtración para obtener un medio líquido que presuntamente contiene el excremento.
  2. Digestión enzimática en la que la que, según yo colijo las enzimas reducen o degradan el sustrato (que es el excremento), para que los fragmentos producidos por las bacterias puedan pasar a través de las membranas celulares.
  3. Filtración del fluido tratado como queda explicado en (2), y tratamiento con perhidrol de 20 volúmenes.
  4. Tratamiento con on reductor para quitar el color.
  5. Tratamiento con arcilla decolorante y filtración
  6. Obtención del resultado final, que en mi opinión (habría que confirmarlo por medio de análisis) es agua químicamente pura (H2O).

 

Comentarios al experimento y a los resultados

El experimento es un segundo intento que, por causas fuera de mi control, quedó librado a su propia dinámica por diez días, y que por eso, en lo que hace a concentraciones, los datos no pueden considerarse definitivos, ni mucho menos ya que el volumen original disminuyó notablemente después de la difusión molecular que se produjo durante el tiempo de “abandono” del experimento y aumentó por el agua que debí añadirle, y por el perhidrol que también se añadió en la etapa de clarificación.

Para que puedan darse cuenta les incluyo una gráfica de las concentraciones con las fechas en que estas fueron determinadas, para que vean ustedes que cuando en el video digo “13 g/l” eso constituye un valor al que se llegó  al séptimo día del experimento.

Concentraciones_experimento

Figura 1 Concentraciones de enzimas y sólidos

Lo que sí es innegable, es que el experimento demuestra que de la solución/suspensión de excrementos de color negro, puede obtenerse agua para rehuso, o para devolución a la corriente de donde se sacó.

También es innegable es que para deshacerse de los excrementos por digestión se hace necesario el diseñar e implementar una planta de procesamiento de desechos que demuestre tener ventaja económica sobre la opción “convertir el excremento en abono”.

Para los fines consiguientes trataré de añadir a este artículo un diagrama simplificado de flujo de la dicha planta, que debería sincronizarse con la producción de excremento de los animales.

Esto último quiere decir que la planta debería digerir los excrementos, que seguirían conteniendo virutas y cascarilla, porque esto facilita su recolección manual, a la misma velocidad con que ese producen: Esto debería ser función de la concentración de las enzimas, como lo predice la ecuación de la descomposición del sustrato S (ver J.J. Dunn, E. Heinzle, J Ingham, J.E. Prenosil, Biological Reaction Engineering, VCH Verlagsgeselschaft, mbH, D.-6940, Weinheim (Federal Republic of Germany), 1992, p.65) en donde se puede ver que de acuerdo al modelo de Michaelis Menten, la velocidad de digestión de un sustrato es igual a:

Ecuacion1

donde

Ecuacion2

Donde S es la concentración del sustrato, y Eo es la concentración inicial de la enzima, lo que implica decir que mientras más alta sea la concentración inicial de la enzima (todo dentro de ciertos límites) más grande será la velocidad inicial de reacción.

Una configuración de planta muy preliminar

Es obvio que se requiere trabajar mucho más en esta idea, que es lo que intentaré hacer en el futuro, si Dios permite.

Entretanto incluyo una configuración preliminar que intenta duplicar lo que se ha hecho hasta ahora, sujeto a mil condiciones, especialmente las económicas.

Va la planta

Planta

Figura 2. Configuración preliminar de la planta

AGRADECIMIENTO

El autor cumple con el grato deber de agradecer a la Sra. Marta Guillen, quien proporcionó las muestras de abono, y a la Compañía Ricaurte-Guarderas Cia. Ltda., que proporcionó la mezcla de enzimas y bacterias liofilizadas con que se trabajó.

 

 

 

 

 

Publicado en DISEÑO DE PLANTAS, Tecnología

Un Método Para Estimar la Resistencia del Medio Filtrante en un Filtro-Prensa

Del libro de (Earle, 1983) obtuve la fórmula siguiente, que en la versió electrónica tiene un error tipográfico que, ya corregido obtiene la expresión siguiente, que es la base del artículo.

Formula1

En la ecuación anterior, w es la concentración de sólidos por unidad de volumen, V es el volumen filtrado,  es la viscosidad en N-s/m2, t es el tiempo en segundos, y  es la caída de presión a través la torta en N/m2.

Si se ejecuta el paréntesis curvo en el denominador de la fórmula anterior, se obtiene la siguiente expresión.

Formula2

Tanto en la primera ecuación, cuanto en la segunda L corresponde a la resistencia del medio filtrante, que –dicho sea de paso, no tomé en cuenta en mi artículo anterior (Simulación de la operación de un filtro prensa) , porque en estricto sentido, ese valor debe determinarse experimentalmente haciendo mediciones sobre el equipo físico, del que yo no dispongo.

Sin embargo de lo que queda dicho, se me ocurrió que debería haber una manera de determinar la resistencia del medio filtrante mediante la formulación de una ecuación lineal que tuviese una pendiente y una ordenada al origen y, para los fines consiguientes se me ocurrió trabajar con la ecuación de Earle quya mencioné, y tratar de encontrar la expresión de la línea recta,

Para este fin escribí la última ecuación de la manera que muestro a continuación,

Formula3

Y pasé la A al numerador para obtener la expresión que muestro a continuación.

Formula4

Después de haber manipulado la ecuación de la manera que queda descrita, despejé el , porque lo que tenía en mientes era una filtración a velocidad constante, habiendo obtenido la expresión que consigno a continuación.

Formula5

A continuación escribí la ecuación de la manera siguiente, expresión en la que ya puede vislumbrarse la forma lineal, en donde ∆P/v debe quedar como variable dependiente, y    debe quedar como variable independiente; y donde  y  son conjuntos de parámetros que no cambian durante la filtración, y  es la resistencia específica de la torta expresada en m/kg y L, que es lo que se busca, es la ordenada al origen.

Para estos fines escribí la ecuación anterior e la siguiente forma

Formula6

Y luego la reescribí como muestro a continuación.

Formula7

Y la dividí por el grupo de parámetros que son comunes a los dos términos, para obtener la siguiente ecuación, que es la que utilicé para conatruir rl gráfico que muestro en este artículo, que es la expresión deseada.

Formula8

Para lograr los valores  requeridos para el gráfico ejecuté el programa de mi anterior artículo cuatro veces para velocidades constantes cercanas, que presento en forma de matriz, del cual utilicé la primera y la segunda columnas.

 

 

Tabla Excel

Figura 1. Resultado de cuatro ejecuciones del programa de simulación de operación de filtro prensa en modalidad velocidad constante

Como es obvio, la primera columna resulta de dividir la penúltima columna por la última columna. De la manera explicada pude obtener el siguiente resultado del que se puede concluir que la resistencia del medio filtrante virtual es igual a 6×10-12 m de lodo que se filtra. (http://www.filtration-and-separation.com/filter-table.htm, s.f.)

Grafico Excel

Figura 2. Gráfico V/A vs. Dp/v

Conclusiones

  1. Si se acepta el desarrollo presentado, la ordenada al origen es igual a 6E-12 m, que sería el valor de la resistencia del medio filtrante.
  2. Esto es tan sólo una lucubración matemática. Sería interesante comparar este valor con valores experimentales.
  3. El resultado aquí obtenido, es puramente teórico. Esto quiere decir que se ajusta a todo lo que estaablece la teoría de la filtración, aunque, de la bibliografía revisada y de los modelos realizados se puede deducir que el orden de magnitud de las resistencias de los medios es Pa, y el orden de magnitud de las resistencias de las tortas es kPa, y que las determinaciones de las resistencias del medio filtrante se establecen experimentalmente.

Trabajos Citados

(n.d.). Retrieved June 25, 2017, from http://www.filtration-and-separation.com/filter-table.htm

Earle, R. L. (1983). Unit Operations in Food Processing. (P. Press, Ed.) New York, New York, U.S.A.: Pergamon Press.

 

Publicado en Sin categoría

Simulación de la operación de un filtro prensa

El modelo matemático

Para propósitos de operación general un filtro prensa puede manejarse, mediante los respectivos controles, a velocidad constante, o a presión constante. Es por esto que el modelo que se ha presentado permite simular la operación en estas dos modalidades.

Sin embargo de lo que queda dicho, (George Granger Brown and Associates, 1950) indica muy acertadamente que el arranque del filtro prensa debe realizarse a una velocidad constante adecuada, para permitir que se empiece a formar la torta, cosa que no ocurriría si la operación comienza a una presión constante elevada de 500 kPa, por ejemplo.

El modelo no considera estos refinamientos, aunque podría haberlo hecho, incluyendo el tiempo de llenado del filtro, en que no se observa el egreso de filtrado porque el lodo que ingresa está llenando el filtro.

Por estas razones indicaremos brevemente los modelos matemáticos de presión constante y de velocidad constante, en ese orden, para que los amables lectores puedan comprender cómo funciona el modelo.

Filtración a presión constante

En este caso la caída de presión a través del filtro es un parámetro más, ya que –por ser parámetro- su valor no varíadurante el tiempo virtual de la simulación.

Hay muchísimas fuentes que pueden utilizarse para fines de modelar el funcionamiento del filtro. La Ecuación fundamental para la filtración utiliza el enfoque clásico de los Fenómenos de Transporte en Ingeniería Química, que no es otro que el postular una fuerza motriz que promueve el fenómeno, que es una magnitud que se encuentra en el numerador, que no es otra que la caída de presión ΔP, y en el denominador se utiliza la s (Perry)uma de las resistencias, que está dada por la Resistencia de la torta, que es variable, porque su espesor crece a medida que progresa la filtración, hasta llegar hasta el borde del marco del filtro, punto en el cual la filtración debe interrumpirse so pena de que la presión aumente hasta un valor que produzca la explosión del marco o de la unión de la tela que une un marco con otro, fenómeno que no es tan raro como podría parecer, si no se utiliza un control automático que cierre la válvula de entrada del lodo a una presión dada.

La ecuación fundamental para la filtración es entonces la siguiente, que se publicó inicialmente en Trans. Inst. Chem. Engnrs.,1938, con el nombre de Ecuación de Carmán, que la reproduce  (Perry).

Ecuacion I

En el modelo que yo desarrollé tomé la resistencia del medio filtrante como cero, porque ese parámetro debe determinarse experimentalmente.

Como ya hemos dicho, el primer término del denominador corresponde a la resistencia de la torta, y el segundo representa la resistencia del medio filtrante, que se debe determinar experimentalmente, y que yo lo asumí como cero, precisamente por esta causa.

Quedando así las cosas, cuando el filtrado se realiza a presión constante ΔP es un parámetro más, como lo son α, la resistencia específica del filtro, W es la masa de sólidos suspendidos en el lodo, y μ es la viscosidad cinemática, en N-s/m2 y r es la resistencia del medio filtrante.

Como yo he escogido la nomenclatura de (Earle, 1983) la anterior fórmula se maneja, con los símbolos del autor citado, de la siguiente manera.

Ecuacion II

Como escogí que la resistencia del medio filtrante sea cero, entonces en mí artículo, la velocidad de filtración de un proceso a ΔP constante se representaría de la siguiente forma.

Ecuacion III

Donde W representar la masa total de sólidos en el lodo, que es igual a la concentración de sólidos w (símbolo algébrico en minúscula) multiplicado por el volumen de lodo filtrado,

Ecuacion IV

Si se combinan las dos expresiones obtiene la siguiente ecuación:

Ecuacion V

De la expresion anterior se puede escribir la ecuación que permite calcular la velocidad de filtración en modalidad de filtración a presión constante, que es la siguiente.

Ecuacion VI

Lo que quiere decir que, a presión constante la velocidad varía, y que depende del valor de la caída de presión impuesta por el operador y limitada por el fabricante del equipo.

Filtración a velocidad constante

Si se utiliza la ecuación de Carmán se obtiene la expresión diferencial para la caída de presión en filtración a velocidad constante, que es la siguiente.

Ecuacion VII

La misma que, una vez que se efectúan las integraciones, queda como se muestra a continuación.

Ecuacion VIII

Cálculos comunes a ambas modalidades

Hay cálculos que se deben realizar de igual manera, sin que la modalidad de operación tenga que ver con ello, y son: el volumen filtrado, y y el espesor del cake o torta, que al final es el parámetro que determina la duración de la filtración.

Las expresiones para esto son las que siguen.

Volumen filtrado

El volumen filtrado se representa por medio de la siguiente expresión.

Ecuaccion IX

Masa de la torta o cake

La actualización de la masa de torta se reduce a un balance de masa de los sólidos que se van depositando sobre el medio filtrante, que se puede representar por medio de las dos expresiones siguientes donde  es la porosidad del cake o torta.

Ecuacion X

De donde la expresión para Lc puede expresarse de la siguiente manera:

EcuacionXI

La simulación del filtro prensa

La simulación del filtro prensa viene a cuento a raíz de una investigación que estoy haciendo sobre la digestión de excremento de pollos por medio de bacterias liofilizadas mezcladas con enzimas. Las enzimas segmentan el sustrato para que éste pueda pasar a través de las membranas celulares de las bacterias y éstas lo metabolicen.

En el argot de aquellos que usan el excremento como abono, éste se conoce como “gallinaza”, y consiste de una mezcla del excremento propiamente dicho con virutas de madera y cascarilla de arroz, mezcla que hace que la operación manual de recolección se facilite debido a la gomosidad del excremento, que es la reesponsable de la adherencia de éste a las virutas y a la cascarilla, sustancias con las que forma una sola masa macrocópicamente heterogénea.

Esta mezcla, que es fácil de recolectar, se convierte en su estado original en un obstáculo para la para la digestión bacteriana, porque las enzimas digieren con menos facilidad la madera y la cascarilla, que es fibrosa; y porque el análisis de los sólidos digeridos, se dificulta mucho, como me di cuenta cuando, al principio, quise digerir la mezcla en su totalidad (excremento, viruta, y cascarilla); y porque, además, las virutas y la cascarilla constituyen aproximadamente un ochenta por ciento de la mezcla.

Entendido esto me di cuenta que debía utilizar filtración para separar los sólidos, de manera de poder aprovechar más eficientemente las enzimas sólo para la digestión del excremento.

También me di cuenta de que después de la digestión debía separar los sólidos no digeribles, también por filtración.

Fue entonces que debí ponerme a aprender los que es un filtro prensa, y cómo se maneja, a más de aquilatar la importancia de la profundidad de las cámaras, que son las que le dan la capacidad al filtro, ya que una vez que estas se llenan con torta explotarían si inadvertidamente se excede su capacidad, como sucedería si se quisiera seguir filtrando.

La profundidad de las cámaras, la superficie total de filtración, y el modo de operación (a velocidad constante o a presión constante, o mixto (George Granger Brown and Associates, 1950)) tienen, evidentemente, importancia superlativa para la especificación de un filtro, así como las tienen las propiedades fisicoquímicas del filtrado como la viscosidad, por ejemplo y la porosidad de la torta o “cake” que se forma sobre el medio filtrante.

De todas estas lucubraciones nació la idea de simular un filtro prensa, porque si no se dispone del equipo, la mejor manera de adquirir alguna idea de cómo funciona y de los parámetros de operación que son importantes, es la experimentación virtual, o simulación, ya que no conlleva riesgos de mojarse (como le ocurrió a una estudiante hace años, cuando visitabamos una empresa) si al operador se le va la mano en la presión o se olvida de cerrar la válvula de alimentación cuando el filtro está lleno; ni de incurrir en costos, porque el “equipo” sólo existe en la memoria del computador.

Para los fines consiguientes simulé la operación del filtro tanto a presión constante como a velocidad constante, lo que me permito mostrar a continuación.

Operación a presión constante

A continuación muestro la interface de usuario de la operación a presión constante.

PRIMERA INTERFASE USUARIO

 

Figura 1. Interface de usuario para operación a presión constante

FIGURA2

Figura 2. Filtración a presión constante

FIGURA 3

Figura 3. Operación a presión constante

FIGURA 4

Figura 4. Filtración a presión constante

Como se puede ver de la gráfica anterior, la “presión constante” que en este caso fue de 50 kPa, produce una velocidad de filtración constante haccia el término de la filtración, que se evidencia en el quiebre de la curva de volumen de filtrado.

Filtrado a velocidad constante

A continuación se presenta un ejemplo de filtración a velocidad constante utilizando el mismo programa, que sirve para ilustrar las dos modalidades. Lo primero que puede observarse es que los parámetros de impresión deben cambiar en función de los diferentes tiempos de ejecución de las dos modalidades de operación.

Segunda Interface de usuario

Figura 5. Interfase de usuario para operación a velocidad constante

Figura6

Figura 6. Filtrado a velocidad constante

Figura7

Figura 7. Filtrado a velocidad constante

Figura8

Figura 8. Filtrado a velocidad constante

Datos de filtración de Brown (George Granger Brown and Associates, 1950)

Los gráficos que siguen corresponden a la tabulación de los datos de operación de un filtro real, que presenta Brown, en su excelente libro Unit Operations  al que hube de imponerle un área para poder establecer la velocidad del filtrado.  El autor citado no proporciona más datos que una escueta tabla. No se conocen ni la profundidad de las cámaras, pero sí se advierte que es un filtro que opera a 25º kPa.

Obsérvese el quiebre en la gráfica de la presión, que se debe, en mi opinión, a que la filtración comienza cuando se abre una válvula para dejar pasar el lodo hacia el filtro, y a que deben llenarse todas las cámaras del filtro (y formarse la torta contra la superficie filtrante del marco) antes que la filtración propiamente dicha comience. Pienso que ésta es la razón por la que entre tiempo igual a cero y tiempo igual a un minuto el autor no consigna datos, que los he asumido como ceros.

Decidí colocar estos datos reales que datan de antes de 1950, que es el año de la primera impresión del libro, porque me pareció que había que darle algún viso de realidad, y de comparación. a la simulación, y porque –cosa rara- no encontré otro ejemplo en los otros libros de que dispongo, que no son muchos, y porque probablemente no busqué con suficiente acuciosidad.

La duración de una filtración depende de la velocidad a la que se pasa el lodo, de la presión a la que se pasa, y de las especificaciones del filtro

En un principio pensé en hacer algunos cambios a los parámetros de operación de “mi” filtro para obtener datos que se pudiesen comparar con los de Brown, pero luego desistí de ello. Sin embargo creo que aprendí mucho, porue la difeerencia entre “mucho” y “nada” es infinita.

Figura9

Figura 9. Datos de un filtro real elaborados a partir de un problema de Brown

Código del programa

A continuación he pegado el código del programa, para todo aquél que desee implementarlo.

Option Explicit

Dim epsilon, So, k1, nnu, v, Rop, Deltat, Deltap, w, Lc, P, epsilonv, epsilonn, PB, Tiempo As Double

Dim Deltaprint, Inc, Vol_Filtrado, Dp, r As Double

Dim N, Fila As Integer

Dim A, B, C, D, E, FF, Modo_filtracion As String

 

Sub filtro()

epsilon = Worksheets(“Hoja1”).Cells(2, 3)

‘epsilon = epsilonv

So = Worksheets(“Hoja1”).Cells(3, 3)

k1 = Worksheets(“Hoja1”).Cells(4, 3)

nnu = Worksheets(“Hoja1”).Cells(5, 3)

v = Worksheets(“Hoja1”).Cells(6, 3)

Rop = Worksheets(“Hoja1”).Cells(7, 3)

Deltat = Worksheets(“Hoja1”).Cells(8, 3)

w = Worksheets(“Hoja1”).Cells(9, 3)

Lc = Worksheets(“Hoja1”).Cells(10, 3)

PB = Worksheets(“Hoja1”).Cells(11, 3)

Deltaprint = Worksheets(“Hoja1”).Cells(12, 3)

Inc = Worksheets(“Hoja1”).Cells(13, 3)

A = Worksheets(“Hoja1”).Cells(14, 3)

Deltap = Worksheets(“Hoja1”).Cells(16, 3)

r = Worksheets(“Hoja1”).Cells(17, 3)

Modo_filtracion = Worksheets(“Hoja1”).Cells(15, 3)

If Modo_filtracion = “Dp constante” Then

 

Else

Deltap = 0

End If

 

Worksheets(“Hoja1”).Range(“a20:f5000”).Clear

Fila = 20: Tiempo = 0: Vol_Filtrado = 0

If Modo_filtracion = “v constante” Then

Call velocidad_constante

Call Escritura_de_Titulos(Fila, “Tiempo,s”, “Lc,m”, “Volumen Filtrado,m3”, “DeltaP, Pa”, “v,m/s”)

Else

Call presion_constante

Call Escritura_de_Titulos(Fila, “Tiempo,s”, “Lc,m”, “Volumen Filtrado,m3”, “DeltaP, kPa”, “v,m/s”)

End If

 

Do

 

Tiempo = Tiempo + Deltat

Call Volumen(v, A, Vol_Filtrado, Deltat)

If Modo_filtracion = “v constante” Then

 

Call Caida_de_Presion(w, r, nnu, Vol_Filtrado, Deltap, Tiempo, A)

 

 

Else ‘Const Press. Filtration, Earle

v = (Deltap * A) / (nnu * Vol_Filtrado * w * r) ‘ Earle, Unit Operations in Food Processing Const. Press. Filtration

‘ Eq 10-12

End If

 

Call Actualizacion_Lc(Vol_Filtrado, w, Lc, Deltat, epsilon, A, Rop)

 

If Tiempo = Deltat Xor Tiempo >= Deltaprint Then

Call Escritura_de_Resultados(Fila, Tiempo, Lc, Inc, Deltaprint, Deltap, v, Vol_Filtrado)

End If

 

Loop While Lc <= PB

End Sub

 

Sub Caida_de_Presion(w, r, nnu, Vol_Filtrado, Deltap, Tiempo, A)

Deltap = (Vol_Filtrado ^ 2 * nnu * w * r) / (2 * A ^ 2 * Tiempo)

 

End Sub

Sub Actualizacion_Lc(Vol_Filtrado, w, Lc, Deltat, epsilon, A, Rop)

Lc = ((w * Vol_Filtrado) / (A * (1 – epsilon) * Rop))

End Sub

Sub Escritura_de_Titulos(Fila, A, B, C, D, E)

Worksheets(“Hoja1”).Cells(Fila, 1) = A

Worksheets(“Hoja1”).Cells(Fila, 2) = B

Worksheets(“Hoja1”).Cells(Fila, 3) = C

Worksheets(“Hoja1”).Cells(Fila, 4) = D

Worksheets(“Hoja1”).Cells(Fila, 5) = E

‘Worksheets(“Hoja1”).Cells(Fila, 6) = FF

Fila = Fila + 1

End Sub

Sub Escritura_de_Resultados(Fila, Tiempo, Lc, Inc, Deltaprint, Deltap, v, Vol_Filtrado)

Worksheets(“Hoja1”).Cells(Fila, 1) = Tiempo

Worksheets(“Hoja1”).Cells(Fila, 2) = Lc

Worksheets(“Hoja1”).Cells(Fila, 3) = Vol_Filtrado

Worksheets(“Hoja1”).Cells(Fila, 4) = Deltap / 1000 ‘kPa

Worksheets(“Hoja1”).Cells(Fila, 5) = v ‘m/s

‘Worksheets(“Hoja1”).Cells(Fila, 6) = Vol_Filtrado ‘m^3

Fila = Fila + 1

Deltaprint = Deltaprint + Inc

End Sub

Sub Volumen(v, A, Vol_Filtrado, Deltat)

Vol_Filtrado = Vol_Filtrado + (v * A) * Deltat

End Sub

Comentarios generales

Como comentarios me parece que hay que resaltar que se debe utilizar una bomba de desplazamiento positivo capaz de presiones considerables. Es también imprescindible hacer algunas pruebas porque colocar un valor de viscosidad en una interface de usuario es relativamente fácil, pero medir la viscosidad de una mezcla como la que menciono al principio de éste artículo es una cosa que, por el momento, no me imagino como hacer.

Se debe así mismo llevar a cabo un análisis financiero para determinar cuál habría de ser la duración de los ciclos de filtrado versus los ciclos de desarme y lavado, ya que la duración de los primeros debe ser más larga que la duración de los últimos, y –de nuevo- eso tiene que ver con todas las variable y parámetros que antes mencioné.

Otro libro que es importantísimo, y que se encuentra en la Internet es el del Profesor Earle (Earle, s.f.).

En general, investigando el asunto me i cuenta que la bibliografía es muy dispersa y los enfoques también, y que –como en todo- todos son iguales, pero hay algunos más iguales que otros.

Trabajos Citados

Earle. (s.f.). Unit Operations in Food Processing . Recuperado el 22 de June de 2017, de nzifst.org.nz

George Granger Brown and Associates. (1950). Unit Operations (Seveth printing, February, 1960 ed.). (o. W. Sons, Ed.) New York, New York, U.S.A.: John Wiley & Sons.

 

 

 

Publicado en Sin categoría

LA INFLUENCIA DE LA COTA DE SUCCIÓN EN LA DESCARGA DE UN TANQUE CILÍNDRICO HORIZONTAL

Este problema fue propuesto por (Franks, 1972), y me pareció pertinente el tratar de resolverlo porque tiene que ver con la succión de una bomba centrífuga y , por tanto, con la cota positiva de succión de ésta, relacionada con la NPSH, que, extrañamente, se menciona sólo de pasada y sin ejemplos concretos que yo haya podido encontrar, en importantes libros de la profesión como por ejemplo (George Granger Brown y Asociados, 1960), (Warren L. McCabe y Julian C. Smith, 1956), y (John H. Perry, Robert H. Perry, Cecil Chilton, Sidney Kirkpatrick et. al., 1963), y amén de las clases que se dictaban cuando yo fui estudiante, el siglo pasado.

Por supuesto que la formación que se imparte debe haber cambiado cambiado.

Para la resolución de este problema me basé en (http://www.engineeringtoolbox.com/npsh-net-positive-suction-head-d_634.html, s.f.).

El problema trata de la descarga de un carro-tanque de ferrocarril. El autor proporciona un esquema básico, que me permito reproducir a continuación, y pregunta de qué manera afecta el vaciado del tanque al flujo de descarga que la bomba proporciona, y obliga al estudiante a aclarar conceptos tales como presión manométrica y presión absoluta, entre otros, que yo pienso que son fundamentales en la profesión de la Ingeniería Química, que básicamente trata de procesos de transformación en donde el transporte de fluidos por medio de bombas y cañerías entre procesos, es básico.

El esquema del problema es el siguiente. En él la línea de descarga va hasta el fondo del tanque cilíndrico, y se debe notar que la línea mencionada está dotada de una válvula de pie, que permite el paso del fluido sólo cuando la bomba succiona. Esta válvula es la que permite que la línea permanezca siempre llena de fluido, incluyendo la coraza de la bomba, cuando se ceba la bomba, si es que no se trata de una bomba autocebante.

(Franks, 1972) también proporciona la curva de la bomba en función del flujo de fluido, así como las pérdidas en la línea de succión en la misma forma esto se muestra a continuación de la Figura 1.

DIBUJO TANQUE BOMBA

Figura 1 Esquema básico del problema de la descarga del tanque cilíndrico hacia un tanque de almacenamiento externo

PUNTO OPERACION DE BOMBA

Figura 2 Datos del problema que muestran las cotas de la bomba y las de pérdidas por rozamiento

Las funciones que se muestran en la Figura 2 son ligeramente diferentes a las que usé en la resolución del problema, por asunto de exactitud de factores de conversión entre las unidades que se usaban en el tiempo de (Franks, 1972) y las que se usan ahora. Esto básicamente no afecta significativamente los resultados.

Las Versiones de Excel™ y las funciones trigonométricas inversas

Aunque ustedes no lo crean, el primer problema consistió en que el VBA de la versión 316 de Excel™, de 2016, no contiene funciones trigonométricas inversas, y es deficitaria en las herramientas de depuración del programa, que los usuarios del mundo de esa versión hacen públicas en las redes.

Acudí, entonces a mi buen amigo, Ing. Javier Yacelga, de la Escuela Politécnica Nacional de Quito, Ecuador, quien me auxilió, y a quien agradezco sentidamente por orientarme en la actualización de la Máquina Virtual de mi Mac, que posee una versión de Excel de 2010, que tiene funciones trigonométricas inversas, pero que, y eso no lo sabíamos, no dispone de la función Arccos, que en VBA es llama Acos.

Ese pequeño gran inconveniente me puso en aprietos porque la función mencionada se requiere para el cálculo del volumen de fluido que queda en el tanque por lo que hube de utilizar la tabla que se reproduce en (http://esatjournals.net/ijret/2016v05/i04/IJRET20160504001.pdf, s.f.), que –a su vez- se origina en (Perry, 2001).

Esta tabla, que en realidad es una matriz, tiene en su primera columna la proporción entre la altura h del tanque y su diámetro, y en la otra columna tiene la fracción correspondiente de volumen que queda en el tanque, cuando este se encuentra en proceso de vaciado. Yo habría preferido una solución más “elegante”, pero la solución de la interpolación fue la que al final funcionó.

El asunto, entonces se redujo a montar una matriz bidimensional de cien elementos, en la que, calculando previamente la fracción de volumen que en un instante dado de la ejecución del programa contenía el tanque, permite aplicar interpolación lineal en cada intervalo de integración para, extrapolada la razón de altura a diámetro, multiplicarla por este último valor y obtener un valor actualizado de altura h.

Todo lo anterior se puede apreciar del código del programa y en los gráficos que se presentan más adelante.

El modelo matemático

El modelo matemático es muy simple. Consta esencialmente de una sola ecuación. Para calcular la variación del volumen y para que todos los miembros de la ecuación se expresen en alturas de fluido o cotas, eché mano (de eso se trata cuando uno no sabe) del genio de (Franks, 1972), utilizando la siguiente ecuación diferencial que (¡Oh sorpresa!) se integra en la subrutina que se llama Integracion (sin tilde) del programa que más adelante muestro.

La ecuación en cuestión es la siguiente en la que los dos últimos términos corresponden a la cota de succión.

ECUACION DIFERENCIAL

La suma del volumen extraído del tanque se almacena en la variable SumVol del programa, que permite calcular el volumen extraído del tanque y, luego, la fracción que en el queda. Este es el valor que se interpola en la matriz que ya mencioné, en cada intervalo de integración, y lo pueden apreciar en la subrutina Interpolacion.

La interface de usuario es la siguiente.

INTREFACE CE UDUARIO

Figura 3 Interfase de usuario del programa de la descarga del tanque

El código del programa se muestra a continuación.

Option Explicit

Option Base 0

 

Dim hh, R, numero, alfan, alfav, L, AA, BB, v, F, Fp, Q, DeltaQ, Deltah, Tmax, Deltaprint, Deltat, Tiempo As Double

Dim Lt, DT, g, SumVol, x, hv, hn, xx, Pi, NPSH, AAA, Htot, fc, HDcalc, h, Vol_Rest, Vol_Tanque, cociente, Incremento, vv As Double

Dim N, Fila, NN As Integer

Dim A, B, C, D, E, FF, GG, II, JJ As String

Dim ArrayHD(100), Arrayhff(100) As Variant

 

Sub altura()

SumVol = 0

L = Worksheets(“Hoja1”).Cells(2, 3)

R = Worksheets(“Hoja1”).Cells(3, 3)

h = Worksheets(“Hoja1”).Cells(4, 3)

Q = Worksheets(“Hoja1”).Cells(5, 3)

Tmax = Worksheets(“Hoja1”).Cells(6, 3)

Deltat = Worksheets(“Hoja1”).Cells(7, 3)

Deltaprint = Worksheets(“Hoja1”).Cells(8, 3)

DT = Worksheets(“Hoja1”).Cells(9, 3)

g = Worksheets(“Hoja1”).Cells(10, 3)

Lt = Worksheets(“Hoja1”).Cells(11, 3)

Incremento = Worksheets(“Hoja1”).Cells(12, 3)

Fila = 17: Pi = 4 * Atn(1)

ArrayHD(0) = 0.01: Arrayhff(0) = 0.00169

ArrayHD(1) = 0.02: Arrayhff(1) = 0.00477

ArrayHD(2) = 0.03: Arrayhff(2) = 0.00874

ArrayHD(3) = 0.04: Arrayhff(3) = 0.01342

ArrayHD(4) = 0.05: Arrayhff(4) = 0.01869

ArrayHD(5) = 0.06: Arrayhff(5) = 0.0245

ArrayHD(6) = 0.07: Arrayhff(6) = 0.03077

ArrayHD(7) = 0.08: Arrayhff(7) = 0.03748

ArrayHD(8) = 0.09: Arrayhff(8) = 0.04458

ArrayHD(9) = 0.1: Arrayhff(9) = 0.05204

ArrayHD(10) = 0.11: Arrayhff(10) = 0.05985

ArrayHD(11) = 0.12: Arrayhff(11) = 0.06797

ArrayHD(12) = 0.13: Arrayhff(12) = 0.07639

ArrayHD(13) = 0.14: Arrayhff(13) = 0.08509

ArrayHD(14) = 0.15: Arrayhff(14) = 0.09406

ArrayHD(15) = 0.16: Arrayhff(15) = 0.10327

ArrayHD(16) = 0.17: Arrayhff(16) = 0.11273

ArrayHD(17) = 0.18: Arrayhff(17) = 0.1224

ArrayHD(18) = 0.19: Arrayhff(18) = 0.13229

ArrayHD(19) = 0.2: Arrayhff(19) = 0.14238

ArrayHD(20) = 0.21: Arrayhff(20) = 0.15266

ArrayHD(21) = 0.22: Arrayhff(21) = 0.16312

ArrayHD(22) = 0.23: Arrayhff(22) = 0.17375

ArrayHD(23) = 0.24: Arrayhff(23) = 0.18455

ArrayHD(24) = 0.25: Arrayhff(24) = 0.1955

ArrayHD(25) = 0.26: Arrayhff(25) = 0.2066

ArrayHD(26) = 0.27: Arrayhff(26) = 0.21784

ArrayHD(27) = 0.28: Arrayhff(27) = 0.22921

ArrayHD(28) = 0.29: Arrayhff(28) = 0.2407

ArrayHD(29) = 0.3: Arrayhff(29) = 0.25231

ArrayHD(30) = 0.31: Arrayhff(30) = 0.26348

ArrayHD(31) = 0.32: Arrayhff(31) = 0.27587

ArrayHD(32) = 0.33: Arrayhff(32) = 0.28779

ArrayHD(33) = 0.34: Arrayhff(33) = 0.29981

ArrayHD(34) = 0.35: Arrayhff(34) = 0.31192

ArrayHD(35) = 0.36: Arrayhff(35) = 0.3241

ArrayHD(36) = 0.37: Arrayhff(36) = 0.33636

ArrayHD(37) = 0.38: Arrayhff(37) = 0.34869

ArrayHD(38) = 0.39: Arrayhff(38) = 0.36108

ArrayHD(39) = 0.4: Arrayhff(39) = 0.37353

ArrayHD(40) = 0.41: Arrayhff(40) = 0.38603

ArrayHD(41) = 0.42: Arrayhff(41) = 0.39858

ArrayHD(42) = 0.43: Arrayhff(42) = 0.41116

ArrayHD(43) = 0.44: Arrayhff(43) = 0.42379

ArrayHD(44) = 0.45: Arrayhff(44) = 0.43644

ArrayHD(45) = 0.46: Arrayhff(45) = 0.44912

ArrayHD(46) = 0.47: Arrayhff(46) = 0.46182

ArrayHD(47) = 0.48: Arrayhff(47) = 0.47454

ArrayHD(48) = 0.49: Arrayhff(48) = 0.48727

ArrayHD(49) = 0.5: Arrayhff(49) = 0.5

ArrayHD(50) = 0.51: Arrayhff(50) = 0.51273

ArrayHD(51) = 0.52: Arrayhff(51) = 0.52546

ArrayHD(52) = 0.53: Arrayhff(52) = 0.53818

ArrayHD(53) = 0.54: Arrayhff(53) = 0.55088

ArrayHD(54) = 0.55: Arrayhff(54) = 0.56356

ArrayHD(55) = 0.56: Arrayhff(55) = 0.57621

ArrayHD(56) = 0.57: Arrayhff(56) = 0.58884

ArrayHD(57) = 0.58: Arrayhff(57) = 0.60142

ArrayHD(58) = 0.59: Arrayhff(58) = 0.61397

ArrayHD(59) = 0.6: Arrayhff(59) = 0.62647

ArrayHD(60) = 0.61: Arrayhff(60) = 0.63892

ArrayHD(61) = 0.62: Arrayhff(61) = 0.65131

ArrayHD(62) = 0.63: Arrayhff(62) = 0.66364

 

ArrayHD(63) = 0.64: Arrayhff(63) = 0.6759

ArrayHD(64) = 0.65: Arrayhff(64) = 0.68808

ArrayHD(65) = 0.66: Arrayhff(65) = 0.70019

ArrayHD(66) = 0.67: Arrayhff(66) = 0.71221

ArrayHD(67) = 0.68: Arrayhff(67) = 0.72413

ArrayHD(68) = 0.69: Arrayhff(68) = 0.73652

ArrayHD(69) = 0.7: Arrayhff(69) = 0.74769

ArrayHD(70) = 0.71: Arrayhff(70) = 0.7593

ArrayHD(71) = 0.72: Arrayhff(71) = 0.77079

ArrayHD(72) = 0.73: Arrayhff(72) = 0.78216

ArrayHD(73) = 0.74: Arrayhff(73) = 0.7934

ArrayHD(74) = 0.75: Arrayhff(74) = 0.8045

ArrayHD(75) = 0.76: Arrayhff(75) = 0.81545

ArrayHD(76) = 0.77: Arrayhff(76) = 0.82625

ArrayHD(77) = 0.78: Arrayhff(77) = 0.83688

ArrayHD(78) = 0.79: Arrayhff(78) = 0.84734

ArrayHD(79) = 0.8: Arrayhff(79) = 0.85762

ArrayHD(80) = 0.81: Arrayhff(80) = 0.86771

ArrayHD(81) = 0.82: Arrayhff(81) = 0.8776

ArrayHD(82) = 0.83: Arrayhff(82) = 0.88727

ArrayHD(83) = 0.84: Arrayhff(83) = 0.89673

ArrayHD(84) = 0.85: Arrayhff(84) = 0.90594

ArrayHD(85) = 0.86: Arrayhff(85) = 0.91491

ArrayHD(86) = 0.87: Arrayhff(86) = 0.92361

ArrayHD(87) = 0.88: Arrayhff(87) = 0.93203

ArrayHD(88) = 0.89: Arrayhff(88) = 0.94015

ArrayHD(89) = 0.9: Arrayhff(89) = 0.94796

ArrayHD(90) = 0.91: Arrayhff(90) = 0.95542

ArrayHD(91) = 0.92: Arrayhff(91) = 0.96252

ArrayHD(92) = 0.93: Arrayhff(92) = 0.96923

ArrayHD(93) = 0.94: Arrayhff(93) = 0.9755

ArrayHD(94) = 0.95: Arrayhff(94) = 0.98131

ArrayHD(95) = 0.96: Arrayhff(95) = 0.98658

ArrayHD(96) = 0.97: Arrayhff(96) = 0.99126

ArrayHD(97) = 0.98: Arrayhff(97) = 0.99523

ArrayHD(98) = 0.98: Arrayhff(98) = 0.99831

ArrayHD(99) = 1#: Arrayhff(99) = 1

‘Limpieza

Worksheets(“Hoja1”).Range(“a17:l200”).Clear

 

Call Titulos(Fila, “Tiempo, s”, “Q, m3/s”, “Htanque, m”, “SumVol, m3”, “h,m”, “NPSH,m”, “vv^2/(2*g))”, “”, “”)

‘*********************************************************

hv = 0.01: SumVol = 0: DeltaQ = 0

NPSH = 0

‘*********************************************************

‘*********************************************************

For Tiempo = 0 To Tmax Step Deltat

If (Tiempo = 0 Or Tiempo >= Deltaprint) Then

Call Resultados(Fila, Tiempo, Htot, Deltaprint, Q, SumVol, h, Incremento, NPSH, vv, g)

End If

Call Interpolacion(Q, L, SumVol, h, Arrayhff, ArrayHD, Pi, NN)

Call Integracion(Q, DeltaQ, h, Lt, DT, g, Deltat, SumVol, Pi, NPSH, vv)

Next Tiempo

‘*********************************************************

‘*********************************************************

End Sub

‘*********************************************************

‘*********************************************************

Function hp(Q) As Double

hp = -1000000000# * (Q ^ 3) + 170093# * (Q) ^ 2 – 1415 * (Q) – 833.67 * Q + 7.214

End Function

‘*********************************************************Function hf(Q)

Function hf(Q) As Double

hf = 155708 * (Q ^ 2) + 0.000000000002 * Q – 0.000000000000001

End Function

‘*********************************************************

Sub Integracion(Q, DeltaQ, h, Lt, DT, g, Deltat, SumVol, Pi, NPSH, vv)

vv = Q / (Pi * DT ^ 2 / 4)

NPSH = h + (((vv) ^ 2) / (2 * g))

AAA = hp(Q) – hf(Q) + NPSH

DeltaQ = AAA * (Deltat * Pi * DT ^ 2 * g) / (4 * Lt)

Q = Q + DeltaQ

SumVol = SumVol + Q * Deltat

End Sub

‘***********************************************************

Sub Titulos(Fila, A, B, C, D, E, FF, GG, II, JJ)

Worksheets(“Hoja1”).Cells(Fila, 5) = A

Worksheets(“Hoja1”).Cells(Fila, 6) = B

Worksheets(“Hoja1”).Cells(Fila, 7) = C

Worksheets(“Hoja1”).Cells(Fila, 8) = D

Worksheets(“Hoja1”).Cells(Fila, 9) = E

Worksheets(“Hoja1”).Cells(Fila, 10) = FF

Worksheets(“Hoja1”).Cells(Fila, 11) = GG

Worksheets(“Hoja1”).Cells(Fila, 12) = II

Worksheets(“Hoja1”).Cells(Fila, 13) = JJ

Fila = Fila + 1

End Sub

‘***********************************************************

Sub Resultados(Fila, Tiempo, Htot, Deltaprint, Q, SumVol, h, Incremento, NPSH, vv, g)

Worksheets(“Hoja1”).Cells(Fila, 5) = Tiempo

Worksheets(“Hoja1”).Cells(Fila, 6) = Q

Worksheets(“Hoja1”).Cells(Fila, 7) = h

Worksheets(“Hoja1”).Cells(Fila, 8) = SumVol

Worksheets(“Hoja1”).Cells(Fila, 9) = h

Worksheets(“Hoja1”).Cells(Fila, 10) = NPSH

Worksheets(“Hoja1”).Cells(Fila, 11) = (vv ^ 2 / (2 * g))

‘Worksheets(“Hoja1”).Cells(Fila, 12) = ArrayHD(NN)

‘Worksheets(“Hoja1”).Cells(Fila, 12) = NN

Fila = Fila + 1

If Tiempo <> 0 Then

Deltaprint = Deltaprint + Incremento

End If

End Sub

‘***********************************************************

 

Sub Interpolacion(Q, L, SumVol, h, Arrayhff(), ArrayHD(), Pi, NN)

Vol_Rest = Pi * R ^ 2 * L – SumVol

Vol_Tanque = Pi * R ^ 2 * L

‘***************************************************************

For NN = 0 To 99

On Error GoTo 1000

fc = (Vol_Rest / Vol_Tanque)

If fc <= Arrayhff(NN) Then

cociente = (ArrayHD(NN) – ArrayHD(NN – 1)) / (Arrayhff(NN) – Arrayhff(NN – 1))

HDcalc = ((-Arrayhff(NN) + fc) * cociente) + ArrayHD(NN)

h = HDcalc * 2 * R

Exit For

End If

Next NN

1000

End Sub

Los Resultados

A continuación, se muestran los resultados del programa, que tiene tres asuntos que me parece interesante resaltar.

El primero a primera es la definición del número π, que es un número irracional, aproximable por medio de una serie, que se podría calcular, pero que nadie hace, y que se puede definir mediante la expresión 4 * Atn(1) porque VBA calcula Atn(1) mediante una serie.

El segundo aspecto es el que tiene que ver con el atrapamiento de un error, que evita que, en este caso particular de este programa, el programa se “cuelgue” en la interpolación, que en principio es muy simple, y que en este caso se aplicó mediante la expresión On Error GoTo 1000, donde 1000 es una etiqueta que hace que el programa se salga de la interpolación si el usuario ha exagerado el tiempo virtual de ejecución.

El tercer aspecto es Option Explicit, que obliga al programador a declarar todas y cada una de las variables que utiliza.

Los resultados siguen.

NPSH Y VOLUMEN SUCCIONADO

Figura 4 Cota de succión y volumen succionado vs- tiempo

CAUDAL DE LA BOMBA

Figura 5 Variación del volumen entregado pot la bomba vs. tiempo

VARIACION DE ALTURA VERSUS TIEMPO

Figura 6 Variación de la altura del fluido en el tanque vs. tiempo

Comentarios a los resultados

El primer aspecto que resalta es que la bomba no funciona en su punto de operación al comienzo (tengan la gentileza de comparar la Figura 2 con la Figura 5) pero eventual y paradójicamente regresa a él al final del proceso.

La curva de la altura del fluido en el tanque debe salir tener la característica de “S”. Tiene un pequeño segmento al final que se debe al tiempo virtual un poquito largo y/o al intervalo de impresión. Tratar de acertar una combinación perfecta no justifica el tiempo que esto implica.

La cota de succión tiene la misma forma que la gráfica de altura, que –me imagino era lo que (Franks, 1972) tuvo en mente al plantear el problema.

La bomba, y esto no es una crítica, ni muchísimo menos, debe ser (cuestión de buscar en Google un catálogo de bombas centrífugas) una bomba de pequeño caballaje y, por ende, entrega un caudal bajo a una presión. Esta fue la razón por la que ejecuté el programa para un cilindro de tan sólo un metro de largo. Al respecto cabe imaginarse Imagínense el tiempo de descarga para un vagón tanque de 12 o 15m de largo, y el de un tren con cien vagones, que no es inusual.

Nota Final

La solución que yo les ofrezco aquí no es “la solución”. Puede haber otras de acuerdo al punto de vista que se tome. En mi opinión es un problema de un maestro, que es muy interesante, y que se presta para pensar largamente acerca de una serie de conceptos y situaciones en el transporte de fluidos.

Trabajos Citados

Franks, R. G. (1972). Modeling and Simulation in Chemical Engineering (Vol. I). (Wiley-Interscience, Ed.) New York, U.S.A.: Wiley-Interscience.

George Granger Brown y Asociados. (1960). Unit Operations (Vol. I). (J. W. Sons, Ed.) New York, U.S.A.: John Wiley & Sons.

http://esatjournals.net/ijret/2016v05/i04/IJRET20160504001.pdf. (s.f.). Recuperado el 21 de May de 2017

http://www.engineeringtoolbox.com/npsh-net-positive-suction-head-d_634.html. (s.f.). Recuperado el 21 de May de 2017

John H. Perry, Robert H. Perry, Cecil Chilton, Sidney Kirkpatrick et. al. (1963). Chemical Engineers’ Handbook (4th ed., Vol. I). (R. H. John H. Perry, Ed.) New York, New York, U.S.A.: McGraw-Hill Book Company.

Perry. (2001). Handbook of Chemical Engineering (6th ed.). Méjico, Méjico.

Warren L. McCabe y Julian C. Smith. (1956). Unit Operations of Chemical Engineering. (M.-H. B. Company, Ed.) New York, U.S.A.: McGraw-Hill Book Company/Editorial Novaro-México.

 

Publicado en Sin categoría

COMPORTAMIENTO DINÁMICO DE UNA BOMBA, UN REACTOR Y UNA LÍNEA DE CONDUCCIÓN DE TOLUENO

En este artículo abordaremos el funcionamiento de una bomba centrífuga cuyas curvas características, conjuntamente con la curva del sistema se muestran a continuación, lo que a su vez determina la curva operativa del sistema.

Como se puede apreciar en la Figura 1, se trata de una comba que se puede usar con diferentes motores, de diferentes velocidades y potencias.

Para objeto de ejemplificar el sistema se escogió un tanque figurativamente ubicado en la granja de tanques, unido a un reactor mediante una línea de 1000m de longitud, de acero inoxidable (Franks, 1972), de acuerdo al siguiente esquema, que es mío, porque –y esto lo digo como un elogio, los problemas de Franks son abiertos, lo que incrementa su dificultad a la vez que los hace más beneficiosos para el que los resuelve, porque si los datos son incongruentes, las respuestas también lo serán.

Una bomba es, en muchos sentidos, un sistema autocontrolado, lo que quiere decir que, dependiendo de la longitud de la línea, que es la que produce el rozamiento, de las revoluciones por minuto del impulsor y de su diámetro y del diámetro de succión y de descarga, llega un momento en el que el flujo se estabiliza y el sistema llega a su funcionamiento estacionario.

En nuestro caso el sistema, de estabilizó, de acuerdo a la simulación cuyo código se suministra más adelante, de la manera que se muestra a continuación.

BOMBA SIN CONTROL

Figura1 Bomba estabilizada, sin control

CURVA BOMBA PEERLESS

Figura 2. Curvas de la bomba usada en este artículo

De acuerdo al catálogo respectivo la bomba tiene una succión de cuatro pulgadas y una eyección de 2.5 pulgadas.

El problema establece que debe haber un controlador de flujo, y que entre el tanque de la granja (que es una aportación mía) y la descarga de la línea debe haber un reactor que está acolchonado con un gas, que presumiblemente debe ser nitrógeno.

Yo no tomé en cuenta el electo dinámico del colchón de gas, porque me pareció que habría sido un trabajo innecesario que no se justificaba.

En tratando de encontrar una manera de resolver el problema me encontré con dos ecuaciones interesantes.

La primera ecuación que encontré fue la de Colebrook-White (Pipe Flow), que es la siguiente, y que me parece muy interesante e importante.

Ecuación Colebrook-White

Esta ecuación es adimensional: se puede usar en el sistema SI sin ningún problema y es válida en tanto en cuanto el Re sea mayor que 4000 (http://www.viscopedia.com/viscosity-tables/substances/toluene/), lo que se comprueba mediante la siguiente tabla que confeccioné mediante el uso de la ecuación antes mencionada con la ecuación de Coolebrook-White y Darcy Weisbach, que reproduzco a continuación, que permite calcular la velocidad de un fluido en un ducto cuyo diámetro hidráulico se conozca, y cuyo hf se conozca también, que reproduzco a continuación.

EcuaciónColebrook-White-Darcy Weisbach

En esta ecuación Sf=hf/L, que no es otra cosa que la pendiente de la gradiente hidráulica. (https://fluiddynamics.eu/2013/03/10/colebrook-white-and-darcy-weisbach-combined/, 2017).

Y como la suerte me sonrió, también encontré la forma imperial (por las unidades, me imagino) de la ecuación de Hazen-Williams, que tiene, precisamente por lo de “imperial” las arcaicas unidades en las que me formé, que cito a continuación.

Ecuación de Hazen-Williams

En esta ecuación, hf es la pérdida por rozamiento en pies de agua, L es el largo en pies de la tubería, C es un coeficiente de fricción, que para el acero es igual a 120 gpm son galones por minuto norteamericanos, no “imperiales”, y d es el diámetro interior de la tubería, en pulgadas (http://www.pipeflow.com/pipe-pressure-drop-calculations/pipe-friction-loss, 2017).

Pues, una vez que hube barajado las ecuaciones pude confeccionar la siguiente tabla, que reproduzco a continuación.

TABLA EXCEL

Figura 4 Condensado general con línea de cuatro pulgadas

Con la tabla anterior pude confeccionar los siguientes gráficos, que para nosotros los ingenieros siempre hacen mucho más sentido que las tablas.

De esta suerte pude generarlos siguientes cuadros, que ya explicaré como se utilizaron para obtener la solución (en realidad una de las soluciones) al problema.

hf vs. Q

Figura 4 hf, en m vs. Q en m3/s

H1 vs. RPM

Figura 5. H1 de la bomba vs. RPM del rodete

BOMBA CONTROLADA

Figura 6 Bomba controlada

LA INTERFACE DE USUARIO

Esta parte del trabajo es muy parecida d las anteriores. Cuando inserte el código del programa explicaré con mayor detalle el aspecto del control de la bomba, que difiere en algo en la manera de manipular el flujo.

La interface se muestra a continuación.

Interface de usuario

Figura 7 Interface de usuario del programa de simulación

Hay algunas cosas que no se usaron, como la K que proponía Franks como coeficiente de rozamiento, y alguna otra que parecía pertinente, y que luego deseché.

EL CONTROL DE LA BOMBA

Siendo una bomba centrífuga era posible colocar una válvula y un controlador de flujo, pero con una línea de 1 km de largo no me pareció adecuado.

Por esto opté por controlar las revoluciones, y porque (ver la curva de la bomba) estamos hablando de una máquina de 30 a 60 HP.

En este caso el control consiste simplemente en desconectar automáticamente la bomba cuando el flujo se pasa del valor de consigna, y reconectarla a un valor menor de revoluciones.

Franks tiene una ecuación que permite calcular el momento de inercia del volante de la bomba, para que ésta no se demore mucho en bajar su velocidad, porque no se debe olvidar que mientras el rotor gira en la dirección de bombeo, la bomba bombea y alimenta materia prima al reactor.

EL CÓDIGO DEL PROGRAMA

El código del programa se muestra a continuación. Es simple y sigue los lineamientos de uno de mis libros. Las únicas dos subrutinas que se deben mirar con alguna atención son las de control y las de integración de la ecuación diferencial de la bomba con su línea de 2.5 pulgadas y su reactor, que yo lo he imaginado de 2m de altura.

Aquí va el código:

Option Explicit

Dim Q, L, Pi, ID, A, g, H1, HT, HR, Deltat, Deltaprint, Tiempo, Tmax, K, DeltaQ, SumCorr, N As Double

Dim Qset, p, f, Kc, Ti, Qcal As Double

Dim Paso As String

Dim Fila As Integer

Sub HW()

N = Worksheets(“Sheet1”).Cells(25, 3) ‘RPM

‘Debug.Print “Q=”, Q

L = Worksheets(“Sheet1”).Cells(26, 3)

Pi = Worksheets(“Sheet1”).Cells(27, 3)

ID = Worksheets(“Sheet1”).Cells(28, 3)

A = Worksheets(“Sheet1”).Cells(29, 3)

g = Worksheets(“Sheet1”).Cells(30, 3)

H1 = Worksheets(“Sheet1”).Cells(31, 3)

HR = Worksheets(“Sheet1”).Cells(32, 3)

HT = Worksheets(“Sheet1”).Cells(33, 3)

Deltat = Worksheets(“Sheet1”).Cells(35, 3)

Deltaprint = Worksheets(“Sheet1”).Cells(36, 3)

Tmax = Worksheets(“Sheet1”).Cells(37, 3)

Kc = Worksheets(“Sheet1”).Cells(38, 3)

Ti = Worksheets(“Sheet1”).Cells(39, 3)

Qset = Worksheets(“Sheet1”).Cells(40, 3)

Fila = 45: SumCorr = 0: H1 = 0.0841 * N – 90.973 ‘Caracteristica de la bomba

Q = 0: Paso = “SI”

‘Limpieza de espacio de escritura

Worksheets(“Sheet1”).Range(“A45:e300”).Clear

Call Impresion_Titulos(Fila)

‘*************************************

For Tiempo = 0 To Tmax Step Deltat

Call Control_Flujo(Q, Qset, Error, Deltat, SumCorr)

If Q < Qset Then

Call Integracion(H1, HR, K, Q, Deltat, L, A, DeltaQ)

End If

If Tiempo = 0 Then

Call Impresion_Resultados(Fila, Tiempo, Q, Tmax, DeltaQ)

ElseIf Tiempo >= Deltaprint Then

Call Impresion_Resultados(Fila, Tiempo, Q, Tmax, DeltaQ)

Deltaprint = Deltaprint + Tmax / 300

End If

‘Debug.Print “Tiempo=”, Tiempo

Next Tiempo

‘*************************************

End Sub

Sub Impresion_Titulos(Fila)

Worksheets(“Sheet1”).Cells(Fila, 1) = “Tiempo, s”

Worksheets(“Sheet1”).Cells(Fila, 2) = “Q, m3/s”

Worksheets(“Sheet1”).Cells(Fila, 3) = “DeltaQ”

Fila = Fila + 1

End Sub

Sub Integracion(H1, HR, K, Q, Deltat, L, A, DeltaQ)

DeltaQ = ((H1 – HR – (261684 * (Q) ^ 2 + 1171.5 * Q – 2.1544))) * (A * g * Deltat / L)

Q = Q + DeltaQ

End Sub

Sub Impresion_Resultados(Fila, Tiempo, Q, Tmax, DeltaQ)

Worksheets(“Sheet1”).Cells(Fila, 1) = Tiempo

Worksheets(“Sheet1”).Cells(Fila, 2) = Q

Worksheets(“Sheet1”).Cells(Fila, 3) = DeltaQ

Fila = Fila + 1

End Sub

Sub Control_Flujo(Q, Qset, Error, Deltat, SumCorr)

If (Q >= Qset And Paso = “SI”) Then

Q = Qset

Paso = “NO”

End If

End Sub

 

Trabajos citados

(s.f.). Obtenido de dulmeier.com

Earle, R. (1983). Unit Operations in Food Processing (2nd Edition ed., Vol. i). (P. Press, Ed.) New York, U.S.A.: Pergamon Press.

Franks, R. G. (1972). Modeling and Simulation in Chemical Engineering (Vol. I). (W. Intersciense, Ed.) New York, New York, U.S.A.: Wiley Intersciense.

http://www.pipeflow.com/pipe-pressure-drop-calculations/pipe-friction-loss. (30 de April de 2017). Obtenido de http://www.pipeflow.com/pipe-pressure-drop-calculations/pipe-friction-loss

http://www.viscopedia.com/viscosity-tables/substances/toluene/. (s.f.). Recuperado el 30th de April de 2017, de http://www.viscopedia.com/viscosity-tables/substances/toluene/

https://fluiddynamics.eu/2013/03/10/colebrook-white-and-darcy-weisbach-combined/. (30 de April de 2017). Obtenido de https://fluiddynamics.eu/2013/03/10/colebrook-white-and-darcy-weisbach-combined/:

Pipe Flow. (s.f.). Recuperado el 19th de April de 2017, de http://www.pipeflow.com/pipe-presssure-drop-calculations/pipe-friction-factors#Colebrook_White

viscopedia.com. (s.f.). Recuperado el 19 de April de 2017, de http://www.anton-Parr.com

Publicado en DISEÑO DE PLANTAS, MODELADO Y SIMULACIÓN DE PROCESOS, Sin categoría

MODELO DINÁMICO DE DOS TANQUES ACOPLADOS MEDIANTE UN TUBERÍA Y UNA VÁLVULA

En este artículo abordaremos un problema muy parecido al que presenta (Franks, 1972),  no tanto porque sea difícil, ni mucho menos, sino porque para resolverlo se debe tener claro cuál es la presión inicial dentro del tanque No.2, que está cerrado en su parte superior.

La disposición de los tanques se presenta en la figura siguiente donde las dimensiones están en centímetros.

TANQUES

Figura 1 Disposición física de los tanques

Las condiciones iniciales del problema estipulan que en el tanque número uno preexiste una cierta altura de agua, y que el tanque número 2 tiene otra, lo que hace que el aire tenga un volumen inicial dado, que –a su vez- de da una presión inicial.

La pregunta es a qué presión inicial se encuentra el aire en el tanque, y la respuesta (salvo mejores y más autorizados criterios) es que la presión inicial es igual a la altura multiplicada por el peso específico (Google), cálculo que se hace antes de entrar al ciclo iterativo, porque una vez que se abra la válvula, lo que se produce al principio del ciclo iterativo, la altura del agua en ese tanque comienza a aumentar y el aire comienza a comprimirse.

Es importante tener en cuenta que, aunque la presión del aire en el tanque número dos aumente, su masa se mantendrá constante.

El que la presión aumente en el taque número 2 produce un aumento en el flujo que sale del mismo.

Si se observa los signos de los flujos de los tanques, lo que se puede notar en el código que adjunto se podrá notar que el flujo uno, F1 que sale del tanque número uno es negativo y el flujo dos, F2, que ingresa al tanque uno es positivo, lo que se invierte cuando se trata de los flujos que ingresan al tanque dos.

En el programa hay una subrutina muy pequeña que para cada iteración calcula el volumen que va ocupando al agua, que es un volumen que se va restando del volumen.

Es muy fácil copiar el programa que acompaño y ejecutarlo para diferentes alturas de agua en el tanque número 2, para tener un “feel” de cómo funciona el sistema.

El VBA que se usó es la versión 316, que –para mantenerse de acuerdo con los tiempos- es una aplicación que ejecuta el programa compilado (al menos esa es mi impresión), lo que limita el colocar el cursor sobre una variable para conocer cuál es su valor.

La única herramienta con que cuenta el programador en esta versión es el comando “Debug.Print” que permite que el programa imprima lo que uno quiera, pero que le resta velocidad porque la impresión es muy lenta en comparación con la ejecución.

En los resultados, que también acompaño, se ve que las alturas de agua convergen casi al mismo valor, lo que no es posible porque el tanque dos tiene una masa de aire, que se comprime, pero que no puede desaparecer.

Como el tamaño de los tanques no es pequeño, pero como no se ha incluido el rozamiento, que habría actuado en ambos sentidos, el programa converge muy rápidamente, por las razones anotadas.

Si se hubiese incluido rozamiento y la válvula hubiese estado a mitad de camino de los dos tanques los rozamiento se hubiesen cancelado además de que hubiesen necesitado de una subrutina de convergencia que le hubiese restado velocidad a la ejecución.

Seguidamente acompaño la internase de usuario, los resultados numéricos y los gráficos respectivos.

Grafico1

Figura 2 Interface de usuario y resultados numéricos tabulares

GRAFICO123BIS

Figura 3 Resultados en forma gráfica

Acompaño también, seguidamente el código VBA.

Dim Fila As Integer

Sub Tanques()
‘Ingreso de variables
D1 = Worksheets(“Sheet2”).Cells(4, 3)
Dt = Worksheets(“Sheet2”).Cells(5, 3)
L = Worksheets(“Sheet2”).Cells(6, 3)
D2 = Worksheets(“Sheet2”).Cells(7, 3)
h1H2O = Worksheets(“Sheet2”).Cells(8, 3)
Deltat = Worksheets(“Sheet2”).Cells(9, 3)
Tmax = Worksheets(“Sheet2”).Cells(10, 3)
NuH2O = Worksheets(“Sheet2”).Cells(11, 3)
GammaAgua = Worksheets(“Sheet2”).Cells(12, 3)
RoH2O = Worksheets(“Sheet2”).Cells(13, 3)
g = Worksheets(“Sheet2”).Cells(14, 3)
Deltatprint = Worksheets(“Sheet2”).Cells(15, 3)
GammaAire = Worksheets(“Sheet2”).Cells(16, 3)
‘Paire = Worksheets(“Sheet2”).Cells(17, 3)
k = Worksheets(“Sheet2”).Cells(18, 3)

h2H2O = Worksheets(“Sheet2”).Cells(19, 3)
‘Calculo de la pression del aire en cilindro dos
Paire = D2 * GammaAire ‘ D2 es la altura del cilindro vacio
Pi = 3.14159
n = (0.01183 * Pi * ((D2) ^ 3) / 4) / (0.00831 * 293) ‘ g moles aire
‘Debug.Print “Paire=”, Paire

‘Debug.Print “n=”, n
‘Limpieza

Worksheets(“Sheet2”).Range(“A20:g50”).Clear
Fila = 20
Call Titulos(Fila)
‘Uasd = 2
‘Uas = 2 ‘m/s

‘*******************************
For Tiempo = 0 To Tmax Step Deltat

If Tiempo = 0 Then
Call Resultados(Fila, Tiempo, h1H2O, h2H2O, 0, Deltatprint, F1, F2, Q, Paire)
ElseIf Tiempo >= 2 * Deltatprint Then

Call Resultados(Fila, Tiempo, h1H2O, h2H2O, 1, Deltatprint, F1, F2, Q, Paire)

End If

Call ActualizacionPaire(n, Pi, D2, h2H2O, Paire)
Call Estimacion_Flujo_Izquierdo(k, h1H2O, F1, Paire, GammaAgua)
Call Estimacion_Flujo_Derecho(k, h2H2O, Paire, F2, GammaAire, V2, GammaAgua, D2, Pi)
Call Integracion_Tanque_Uno(h1H2O, F1, F2, Deltat, Q, h2H2O, Pi, D1)
Call Integracion_Tanque2(Pi, D2, Deltat, F1, F2, V2, h2H2O)

Next Tiempo
Call Resultados(Fila, Tiempo, h1H2O, h2H2O, 1, Deltatprint, F1, F2, Q, Paire)
End Sub

‘****************************************************
Sub Estimacion_Flujo_Derecho(k, h2H2O, Paire, F2, GammaAire, V2, GammaAgua, D2, Pi)

F2 = k * Sqr(h2H2O * GammaAgua + Paire)
‘Debug.Print “F2=”, F2, “Paire=”; Paire
End Sub
‘****************************************************
Sub Integracion_Tanque2(Pi, D2, Deltat, F1, F2, V2, h2H2O)
A2 = Pi * D2 * D2 / 4
Deltah2H2O = (F1 – F2) * Deltat / A2
h2H2O = h2H2O + Deltah2H2O
V2 = A2 * (h2H2O – ((22.4 * 0.0067 * 22.4) / 1000))
End Sub
‘****************************************************
Sub Estimacion_Flujo_Izquierdo(k, h1H2O, F1, Paire, GammaAgua)

F1 = k * Sqr(h1H2O * GammaAgua)
‘Debug.Print “F1=”, F1
End Sub
‘****************************************************
Sub Integracion_Tanque_Uno(h1H2O, F1, F2, Deltat, Q, h2H2O, Pi, D1)
A1 = Pi * D1 * D1 / 4
Deltah1H2O = -(1 / A1) * (F1 – F2) * Deltat
h1H2O = h1H2O + Deltah1H2O
‘Debug.Print “h1H2O=”, h1H2O
End Sub
‘****************************************************
Sub Titulos(Fila)
Worksheets(“Sheet2”).Cells(Fila, 1) = “Tiempo, s”
Worksheets(“Sheet2”).Cells(Fila, 2) = “h1H2O, m”
Worksheets(“Sheet2”).Cells(Fila, 3) = “h2H2O, m”
Worksheets(“Sheet2”).Cells(Fila, 4) = “F1, m3/s”
Worksheets(“Sheet2”).Cells(Fila, 5) = “F2,m3/s”
Worksheets(“Sheet2”).Cells(Fila, 6) = “Paire, kPa”
Fila = Fila + 1
End Sub
‘****************************************************
Sub Resultados(Fila, Tiempo, h1H2O, h2H2O, KK, Deltatprint, F1, F2, Q, Paire)

Worksheets(“Sheet2”).Cells(Fila, 1) = Tiempo
Worksheets(“Sheet2”).Cells(Fila, 2) = h1H2O
Worksheets(“Sheet2”).Cells(Fila, 3) = h2H2O
‘Worksheets(“Sheet2”).Cells(Fila, 4) = Q
Worksheets(“Sheet2”).Cells(Fila, 4) = F1
Worksheets(“Sheet2”).Cells(Fila, 5) = F2
Worksheets(“Sheet2”).Cells(Fila, 6) = Paire

Fila = Fila + 1
If KK >= 1 Then
Deltatprint = Deltatprint + Deltatprint
End If
End Sub
‘****************************************************
Sub ActualizacionPaire(n, Pi, D2, h2H2O, Paire)
Paire = (n * 0.00831 * 2932) / (Pi * D2 * D2 * (D2 – h2H2O) / 4)
‘Debug.Print “Paire=”, Paire,
End Sub

Trabajo Citado

Franks, R. G. (1972). Modeling and Simulatión in Chemical Engineering (Vol. I). (W. Intersciece, Ed.) New York, U.S.A.: Wiley Intersciece.

 

Publicado en Sin categoría

Enter your email address to follow this blog and receive notifications of new posts by email.

Únete a otros 1.766 seguidores

Categorías
Artículos y comentarios sobre modelado y simulación de plantas, y equipos de la industria química, con ejemplos
PREGUNTAS O INQUIETUDES
PUEDEN ENVIAR SUS PREGUNTAS/INQUIETUDES RESPECTO DE ARTÍCULOS DEL BLOG, O TEMAS AFINES A gasteaux@hotmail.com ASUNTO: BLOG DE INGENIERÍA QUÍMICA