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.

 

Acerca de

Professor of modeling and simulation, and process design at Escuela Politécnica Nacional, in Quito, Ecuador. . In the past I was a P4, P5, and D1 at the Organization for the Prohibition of Chemical Weapons, located in the Kingdom pf the Netherlands

Publicado en Sin categoría

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

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

Únete a otros 1.770 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
A %d blogueros les gusta esto: