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

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

APERTURA DE VÁLVULA POR DISMINUCIÓN DE LA DEMANDA EN UNA CENTRAL DE GENERACIÓN TERMOELÉCTRICA

En este artículo vamos a tratar, en forma teórica, qué es lo que hace cuando disminuye la demanda de potencia eléctrica en una de las turbinas de una central hidroeléctrica, versus las horas “pico”, que son aquellos períodos durante los que la demanda es máxima, y todo el caudal para el que fue diseñada la turbina debe pasar por ella.

Es obvio que debe haber una conducción de agua paralela a la turbina por la que debe pasar una cantidad que no va a generar potencia eléctrica, porque el agua que pasa por ella no pasa por la turbina.

En este caso hay que cerrar la válvula de la línea paralela, parcial, o totalmente, si la línea paralela termina antes del ingreso del agua a la turbina, o también se puede simplemente bombear el agua a la presa, que está ubicada a una altura considerable sobre la casa de turbinas, lo cual es costoso porque estamos hablando de cientos de metros de altura, y de caudales considerables.

Una manera de solventar el problema es cerrar la válvula de la línea paralela, parcial o totalmente, constituyendo el óbice en este caso, en que la válvula de la línea tendría que soportar una presión muy elevada sobre su compuerta.

Esto se soluciona construyendo una chimenea que debe colocarse antes de la válvula, para que la presión se disipe en ella en forma de una columna de agua, de manera de poder cerrar o abrir la válvula, con comodidad y sin el riesgo de una explosión por elevación de presión.

DESCRIPCIÓN DEL PROBLEMA

Pensamos, para plantear nuestro problema en la situación que se esquematiza en seguidamente.

CHIMENEA

Figura 1. Representación de la instalación

Entonces, con referencia a la Figura 1 lo que tenemos es una presa ubicada a a 200 m de altura de la cota de nivel cero, con un tubo de aducción de 5,000 m de largo y dos metros de diámetro.

SOLUCIÓN DEL PROBLEMA

La primera pregunta que debemos hacernos es cuál será la velocidad del agua en el tubo de aducción, y para estos fines utilizamos la ecuación siguiente que obtuvimos de (Joaquín Ocón García y Gabriel Tojo Barreiro, 1963).

Ecuacion1

Se asume que la p2=20 atm y que el diámetro interno del tubo es 2.00 m (no nos ocupamos de diámetros nominales ni de otros detalles que no sean importantes para el cálculo mismo, lo que no quiere decir que eso mismo es lo que habría que hacer en un caso real). La densidad del agua se toma (Google) como 9.870 kN7m3, y el factor de conversión es de 101.3 kPa/atm.

El criterio que se usó para determinar la velocidad del agua dentro del tubo fue que buscar una velocidad tal que lw sea igual a hf, que- de acuerdo a la referencia mencionada es igual a:

Ecuacion2

Donde L es la longitud de la tubería, D su diámetro interno u la velocidad del agua dentro de ella, g la aceleración gravitatoria, y “psi” el factor de rozamiento, que para una tubería de rugosidad relativa de 0.5 es 0.75 (véase (Joaquín Ocón García y Gabriel Tojo Barreiro, 1963))

Si se insertan los números en la primera ecuación se obtiene un pérdida por rozamiento equivalente a 406 m H2O .

Si se asume una velocidad de 2 m/s, se puede calcular un Número de Reynolds de 4 x 106 y con un “psi”de 0.75, se puede estimar un hf=429 m con lo que la velocidad se puede estimar en alrededor de 2.1 m/s. Se podría montar un programa de iteración para determinar el valor de u con mayor exactitud.

Lo que es muy importante es saber qué potencia genera el agua que pasa por el tubo aductor a esa velocidad, en especial en un país que, como el mío ha construido tantas centrales hidroeléctricas.

Para calcular la potencia es necesario multiplicar la velocidad por el caudal por la densidad, y por la diferencia de alturas entre el plano cero y el espejo de agua en la presa.

Si esto hacemos, obtendremos lo siguiente:

Ecuacion3

Este resultado equivale a 12,315 kW, o –lo que es lo mismo- 12.315 MW, que es una potencia considerable.

 

A continuación, utilizamos la ecuación tan conocida para calcular el caudal que pasa por una válvula (Luyben, 1973), que es la siguiente:

Ecuacion4

En este caso, como queremos investigar qué es lo que pasa con el caudal que pasa a través de la válvula cuando varía la presión, usaremos la ecuación a un valor de kv fijo, y observaremos qué es lo que pasa con el caudal cuando varía la presión p2. Para hacer esto calcularemos el valor de kv a caudal completo, que es el siguiente.

Ecuacion5

El concepto fundamental es que cuando disminuye el caudal, la presión incremental que actuaría sobre la compuerta se “traslada” a la chimenea, que tiene el mismo diámetro de la tubería en forma de una columna de agua.

Así, por ejemplo, si el caudal disminuye en 6 m3/s, esto equivaldría a una presión que se “traslada” a la chimenea igual a

Ecuacion6

Si se toma en cuenta que (Google) cada kPa equivale a 0.10194 m H2O, es fácil calcular la evolución de la columna de agua con la disminución de caudal. Debe aclararse que la columna de agua podría, en principio, tener cualquier diámetro (acordémonos de la famosa “Paradoja Hidrostática”), pero debe tener el mismo diámetro debido al volumen, que tiene que ver con el caudal que circula por el tubo de aducción.

Para los fines consiguientes preparé un sencillo programa en Excel™ en el que en la primera parte todas las direcciones son absolutas, que se muestran a continuación.

TablaExcel1

Figura 2 Primera parte del programa Excel™

TablaExcel2

 

GraficoExcel2

A continuación, se presentan los resultados en forma gráfica, porque siempre son más decidores que una tabla. Obsérvese que las escalas están invertidas, que es una de las gracias del Excel™.

GraficoExcel1png

Trabajos Citados

Joaquín Ocón García y Gabriel Tojo Barreiro. (1963). Problemas de Ingeniería Química, Operaciones Básicas (Vol. I). Madrid, España: Editorial Aguilar.

Luyben, W. L. (1973). Process Modeling, Simulation, and Control for Chemical Engineers (Vol. 1). Tokyo: McGraw-Hill Kogakush, Ltd.

 

Publicado en Sin categoría

EXTRACCIÓN CON REACCIÓN EN ETAPAS EN SERIE

INTRODUCCIÓN GENERAL

Este artículo (Franks, 1972) se inspira en el problema de ejemplo de la referencia, que es un libro magnífico cuyos programas están escritos en FORTRAN IV, que yo utilicé cuando era estudiante, que implicaba programar en tarjetas IBM™ de cartón, que había que perforar en máquinas especiales que creo recordar que se llamaban Perforadoras Hollerith (es cuestión de mirar en Google). Cada tarjeta equivalía a una línea de programación. Se entregaba el programa y se debería esperar entre doce y 24 horas para recibir el programa lleno dee errores. La única manera de probarlo era volver a entregarlo y esperar otras 12 a 24 horas. En U.S.A. los centros de computo estaban abiertos 24 horas al día.

El año de publicación de (Franks, 1972) me recuerda la ridiculez de  algunas bibliotecas nuestras nuestro  Tercer Mundo donde  no se acepten donaciones de libros que tengan más de cinco años de antigüedad, como si se le pudiera poner límites al comienzo y al fin de la simulación y la modelización, cosa que a mí me parece una soberana simpleza, porque el cálculo infinitesimal, imprescindible para integrar las ecuaciones de cualquier modelo lo inventó (Newton, 1846); y la geometría analítica la inventó Descartes por esos años también.

Lo que vino mucho después fue la invención del primer computador, el ENIAC, que funcionaba en base a tubos al vacío, cuyo primer “programa” consistió en el cálculo del número “pi” con setecientas cifras decimales, y que requería que cada nueva programación requiriese que se reconfigure el cableado, hasta que Steve Jobs y Bill Gates, muchísimo tiempo después, en un pasado bastante reciente, pero mayor a cinco años, hicieron accesible un poder computacional muy considerable del que cada persona puede valerse en su casa.

Lo qué venga después, nadie lo sabe, pero pretender limitar el infinito acervo del conocimiento humano en sus diferentes aplicaciones a los” últimos cinco años” es una necedad digna de un burro en aguacero, que provoca risa al principio, y –al final- mucha pena y desconsuelo.

Disculpen la filosofía, pero esto de desechar los libros que tengan más de cinco años es algo que me atormenta desde que lo instituyeron, y espero que algún momento sea desechado por constituir una insensatéz digna de Ripley.

INTRODUCCIÓN AL PROBLEMA

El problema que plantea Franks es muy interesante, y –como es totalmente generalizado y no tiene valores de energías de reacción, ni de temperaturas, ni de ningún otro parámetro no fue fácil de resolver. Por esto tampoco estoy absolutamente convencido de que esté resuelto apropiadamente.

En eso ustedes, que son los lectores, tienen la palabra.

Digo esto porque Franks quiso crear un sistema genérico de programar, que él llamó DYFLO, que no es muy fácil (por lo menos para mí) de desentrañar, porque implicaría leerse todo el libro, lo que probablemente me habría tomado más años que los que me quedan, y habría consistido en una simple (ni tan simple porque en esos años todavía no había procesadores de texto como Word™, de Office™) copia, que no habría venido al caso. La época en que se publicó, y los medios de que en ese momento se disponía, dificulta que algunas expresiones puedan leerse con claridad, y además -y francamente- copiar textualmente algo que ya está escrito no es el objeto de este blog, que intenta ser una aventura –muy modesta por cierto- en el ejercicio de crear y de pensar.Además, no se debe olvidar que Franks, por tratarse de un problema general, no podría haber suministrado ninguna solución concreta.

EL PROBLEMA

El problema consiste en una reacción que se lleva a cabo en un tren de reactores de dos fases: la una de reacción y la otra de extracción, interesando maximizar la producción de la especie C.

La ecuación es la siguiente.

Ecuacion

Esta reacción, que se realiza en etapas que son perfectamente agitadas, pero que –en algún momento se dejan en reposo para que la especie C, que es la que interesa, pase de la fase catalítica a una fase en la que se disuelve preferentemente gracias a un coeficiente de reparto D, que Franks determina a priori mediante una subrutina que requiere de datos de equilibrio líquido-vapor, que desde ya les digo no utilicé, y que como ustedes podrán apreciar si examinan el código estimé de una manera non muy sancta.

Como queda dicho, las reacciones se llevan a cabo en N etapas y lo que interesa es maximizar la concentración de C, que pasa de la fase A, a la fase B.

LA SOLUCIÓN

Con inmenso respeto a Franks, para resolver el problema usé las ecuaciones que se encuentran en las páginas de la cita bibliográfica, que me da la impresión que difieren de las ecuaciones del código FORTRAN IV que se cita en la fuente mencionada.

Como sucede en la resolución de este tipo de problemas al principio obtuve resultados absurdos que determinaron que hubiesen de realizarse un respetable número de cambios en el concepto mismo y –naturalmente- también en el código del programa, que fue Visual Basic Applications (VBA) de Excel™ para Mac, versión 2016, que no dispone de opciones que las otras versiones tenían, y tiene algún error en el mecanografiado mismo, que hace que las líneas del programa se junten, que estoy seguro que solucionarán en algún momento .

Para que puedan orientarse en la solución del programa les incluyo la interface de usuario y, también el código.

No usé las célebres subrutinas de integración de Franks, INT, e INTI, sino –lo digo con infinita humildad- la mía propia, que consiste en simplemente integrar por rectángulos.

LA INTERFACE DE USUSARIO

La interface de usuario se muestra a continuación, y me parece que no amerita mayor explicación ya que pienso que se explica por sí sola.

Aquí va:

Interfase de Usuario

Al final reduje el número de etapas a dos, lo que implica que hay una etapa -1, que no es una etapa, sino que es la alimentación, y dos etapas, que son la uno y la dos.

RESULTADOS DE LA EJECUCIÓN DEL PROGRAMA

 

RESULTADOS

Se puede observar que las sumas de las fracciones molares son aproximadamente iguales a uno, y que la fracción molar de C en la fase de extracción de la etapa tres es igual a 0.29.

EL CÓDIGO

Dim x(20, 20), T(5), Deltax(8, 8), Tiempo As Double

Dim i, n As Integer

Sub Extraccion()

‘Encerado

For n = 1 To 5

For i = 1 To 5

x(i, n) = 0

Next i

Next n

 

‘Limpieza

Worksheets(“Sheet1”).Range(“a32:h80”).Clear

‘Ingreso de variables

Af = Worksheets(“Sheet1”).Cells(8, 3)

Ar = Worksheets(“Sheet1”).Cells(9, 3)

HA = Worksheets(“Sheet1”).Cells(10, 3)

HB = Worksheets(“Sheet1”).Cells(11, 3)

 

EF = Worksheets(“Sheet1”).Cells(14, 3)

ER = Worksheets(“Sheet1”).Cells(15, 3)

FluA = Worksheets(“Sheet1”).Cells(16, 3)

FluB = Worksheets(“Sheet1”).Cells(17, 3)

‘Estan fuera de la etapa 1

x(1, 0) = Worksheets(“Sheet1”).Cells(18, 3)

x(2, 0) = Worksheets(“Sheet1”).Cells(19, 3)

x(3, 0) = Worksheets(“Sheet1”).Cells(20, 3)

x(4, 0) = Worksheets(“Sheet1”).Cells(21, 3)

x(5, 0) = Worksheets(“Sheet1”).Cells(22, 3)

T(1) = Worksheets(“Sheet1”).Cells(23, 3)

T(2) = Worksheets(“Sheet1”).Cells(24, 3)

T(3) = Worksheets(“Sheet1”).Cells(25, 3)

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

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

D = FluA / FluB

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

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

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

R = 0.008314 ‘kJ/(K-kgmole)

Fila = 33

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

For Tiempo = 0 To Tmax Step Deltat

‘Debug.Print Tiempo

If Tiempo = 0 Then

Call Escritura_Titulos(Fila)

‘Fila = Fila + 1

 

Call Escritura_Resultados(Fila, i, n, x(), Deltatprint, Tmax, Tiempo)

Fila = Fila + 1

ElseIf Tiempo >= Deltatprint Then

Call Escritura_Titulos(Fila)

Call Escritura_Resultados(Fila, n, i, x(), Deltatprint, Tmax, Tiempo)

Fila = Fila + 1

Else

For n = 1 To 4

For i = 1 To 4

Call Reaccion(x(), Af, Ar, EF, ER, T(), R, RR, HA, n, kF, kR, RCT1, RCT2, RCT3, RCT4)

Call Integracion(n, i, FluA, FluB, x(), RCT1, RCT2, RCT3, RCT4, HA, HB, Deltat, Fila, kF, kR, D)

 

Next i

Next n

End If

 

 

Next Tiempo

 

Call Escritura_Titulos(Fila)

Call Escritura_Resultados(Fila, i, n, x(), Deltatprint, Tmax, Tiempo)

End Sub

 

Sub Reaccion(x(), Af, Ar, EF, ER, T(), R, RR, HA, n, kF, kR, RCT1, RCT2, RCT3, RCT4)

kF = Af * Exp((-EF / (R * (T(n) + 273.2))))

kR = Ar * Exp((-ER / (R * (T(n) + 273.2))))

RR = HA * (kF * x(i, n – 1) * x(i + 1, n)) – kR * (x(i + 3, n) * x(i + 4, 4))

RCT1 = -RR

RCT2 = -RR

RCT3 = RR

RCT4 = RR

 

 

End Sub

 

Sub Integracion(n, i, FluA, FluB, x(), RCT1, RCT2, RCT3, RCT4, HA, HB, Deltat, Fila, kF, kR, D)

‘A

Deltax(i, n) = ((FluA * (x(i, n – 1) – x(i, n)) + (kF * RCT1)) / HA) * Deltat

x(i, n) = x(i, n) + Deltax(i, n)

‘B

Deltax(i + 1, n) = ((FluA * (x(i + 1, n – 1) – x(i + 1, n)) + (kF * RCT2)) / HA) * Deltat

x(i + 1, n) = x(i + 1, n) + Deltax(i + 1, n)

‘C

Deltax(i + 2, n) = ((FluA * (x(i + 2, n – 1) – x(i + 2, n)) + FluB * (x(i + 2, n + 1) – x(i + 2, n)) + (kR * RCT3)) / (HA + D * HB)) * Deltat

 

 

x(i + 2, n) = x(i + 2, n) + Deltax(i + 2, n)

‘D

Deltax(i + 3, n) = ((FluA * (x(i + 3, n – 1) – x(i + 3, n)) + (kR * RCT4)) / HA) * Deltat

x(i + 3, n) = x(i + 3, n) + Deltax(i + 3, n)

End Sub

 

 

Sub Escritura_Titulos(Fila)

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

Worksheets(“Sheet1”).Cells(Fila, 1) = “etapa n=-1”

Worksheets(“Sheet1”).Cells(Fila + 1, 1) = “etapa n=1”

Worksheets(“Sheet1”).Cells(Fila + 2, 1) = “etapa n=2”

Worksheets(“Sheet1”).Cells(Fila + 3, 1) = “etapa n=3”

 

End Sub

Sub Escritura_Resultados(Fila, i, n, x(), Deltatprint, Tmax, Tiempo)

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

Columna = 1

For n = 0 To 3

For i = 1 To 5

 

Columna = Columna + 1

Worksheets(“Sheet1”).Cells(Fila, Columna) = x(i, n)

 

Next i

Columna = 1

Fila = Fila + 1

Next n

Deltatprint = Deltatprint + Tmax / 3

 

End Sub

Trabajos Citados

Franks, R. G. (1972). Modelling and Simulation in Chemical Engineering. New York, U.S.A: Wylwy-Interscience.

Newton, I. S. (1846). Principia Mathematica. London, U.K.

 

 

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.758 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