Powered by CoCalc

Problema N° 1

Valor: 10 puntos

Referencia: Adaptado de Problema 10.D11 Wankat (2008)

Deseamos destilar una mezcla de etanol y agua para producir 1000 kg/d de destilado. El producto destilado contiene 80 % de etanol y 20 % de agua (fracciones molares). Se debe usar una relación de reflujo externa R = L/D = 2.0. La columna trabaja a 1 atm y usará anillos Pall de plástico de 16 mm.
Metanol = 46 u; Magua = 18 u; suponga gas ideal; μL = 0,52 cP a 80 °C; ρL = 0,82 g/mL.
Calcule el diámetro en la parte superior de la columna para los siguientes casos:
  1. La operación es a 75 % de la inundación.
  2. La operación es a una caída de presión de 200 Pa/m (0,25 pulgadas de agua por pie de relleno).
  3. Se requiere trabajar a no más de 75 % de inundación ni a más de 200 Pa/m.
  4. Repita la parte a, pero con una alimentación para producir 10 000 kg/d.

Datos EVL para el sistema etanol-agua a 1 atm, fracciones molares. (Fuente: Tabla 2-1 Wankat 2a ed.)


# ================= Datos del enunciado =================
W_D       = 1000/24/3600    # [kg/d] --> [kg/s]
x_D       =   0.80          # [mol/mol] (fracción)
R_D       =   2.0
P_t       = 101.325         # [kPa]
R         =   8.3145        # [kJ/(kmol K)]

M_EtOH    =  46             # [u]
M_H2O     =  18             # [u]
mu_L      =   0.52*10^-3    # [cP] --> [Pa s] a 80 °C
rho_L     = 820             # [kg/m³]

D_p       = 16/1000         # [mm]


# ====================== Solución =======================
html('<h2>Solución</h2>')   # Solo es útil para el índice

C_f         =  97           # [ft²/ft³] Tabla 10-3 Wankat
print "C_f    =", C_f, "ft²/ft³"

# ******* Datos de la gráfica de Eckert para una caída de presión de 200 Pa/m *******
# Leídos de la Figura 6.34 de Treybal (1980)
Eckert_Flv  = [0.012, 0.015, 0.020, 0.030, 0.040, 0.060, 0.080, 0.100, 0.150, 0.200, 0.300, 0.400, 0.600, 0.800, 1.000, 1.5000, 2.0000, 3.0000, 4.0000, 5.0000, 6.0000, 8.0000,10.0000]
Eckert_200  = [0.054, 0.053, 0.052, 0.049, 0.047, 0.044, 0.041, 0.039, 0.035, 0.031, 0.026, 0.022, 0.017, 0.014, 0.011, 0.0077, 0.0057, 0.0038, 0.0026, 0.0020, 0.0016, 0.0011, 0.0008]
Eckert_In   = [0.321, 0.318, 0.311, 0.296, 0.278, 0.250, 0.226, 0.206, 0.165, 0.133, 0.099, 0.077, 0.053, 0.041, 0.032, 0.0201, 0.0140, 0.0087, 0.0055, 0.0041, 0.0032, 0.0021, 0.0015]
datos_200   =  zip(Eckert_Flv, Eckert_200)  # Forma pares de datos (x,y)
datos_Inun  =  zip(Eckert_Flv, Eckert_In)
Fc_200      =  spline(datos_200)            # Spline para interpolar
Fc_Inun     =  spline(datos_Inun)

# ******* Interpolación de temperatura de equilibrio vs composición del vapor *******
datos_yT  =  zip(y_eq_EtOH, T_eq)
T_eq_y    =  spline(datos_yT)


# ***** Balance de masa *****
M_D       =  M_EtOH * x_D + M_H2O * (1-x_D)  # [kg/kmol]

y_V = x_L =  x_D            # Condensador total ==> x0 = y1
M_L = M_V =  M_D            # [kg/kmol]

F_D       =  W_D/M_D        # [kmol/s], flujo molar destilado
F_L       =  R_D * F_D      # [kmol/s], flujo molar reflujo
F_V       =  F_L + F_D      # [kmol/s], flujo molar vapor

W_L       =  F_L * M_L      # [kg/s], flujo másico líquido tope
W_V       =  F_V * M_V      # [kg/s], flujo másico vapor tope

print "M_L = M_V  =", M_V.n(digits=3), "kg/kmol"

# ***** Propiedades del vapor *****
T_V       =  T_eq_y(y_V)    # [°C]
rho_V     =  P_t*M_V/(R*(T_V+273.15))   # [kg/m³]
print "T_V    = %.3g °C" %T_V
print "rho_V  = %.3g kg/m³" %rho_V

# ***** Parámetro de flujo *****
F_lv      =  W_L/W_V * sqrt(rho_V/(rho_L-rho_V))
print "F_lv   =", F_lv.n(digits=3)

print "==============================\nParte a) 75 % de la inundación \n=============================="
f_inun    =  0.75
F_c       =  numerical_approx(Fc_Inun(F_lv), digits = 3)
A_C_inun  =  numerical_approx(sqrt(W_V^2*C_f*mu_L^0.1/(rho_V*(rho_L-rho_V)*F_c)), digits=3)  # [m²]
A_C       =  numerical_approx(A_C_inun/f_inun, digits = 3)   # [m²]
D_C       =  numerical_approx(sqrt(4*A_C/pi), digits = 3)    # [m]

print "F_c    =", F_c
print "A_C_in =", A_C_inun, "m²"
print "A_C    =", A_C, "m²"
print "D_C    =", D_C, "m  <----- Respuesta"
print "Dc/Dp  =", D_C/D_p

if D_C/D_p < 8:
    print "Posible canalización hacia las paredes"
elif D_C/D_p >= 40:
    print "Posible mala distribución de líquido y vapor"
else:
    print "Relación OK"

A_C_parte_a  =  A_C
D_C_parte_a  =  D_C

print "=====================================\nParte b) Caída de presión de 200 Pa/m\n====================================="
F_c       =  numerical_approx(Fc_200 (F_lv), digits=3)
A_C       =  numerical_approx(sqrt(W_V^2*C_f*mu_L^0.1/(rho_V*(rho_L-rho_V)*F_c)), digits=3)  # [m²]
D_C       =  numerical_approx(sqrt(4*A_C/pi), digits = 3)       # [m]

print "F_c    =", F_c
print "A_C    =", A_C, "m²"
print "D_C    =", D_C, "m  <----- Respuesta"
print "Dc/Dp  =", D_C/D_p

if D_C/D_p < 8:
    print "Posible canalización hacia las paredes"
elif D_C/D_p >= 40:
    print "Posible mala distribución de líquido y vapor"
else:
    print "Relación OK"

print "=======================================\nParte c) Inundación y caída de presión\n======================================="
print "Los cálculos son los mismos de las partes a y b."
print "Se toma el caso que de el diámetro mayor para cumplir ambas condiciones."
if A_C_parte_a > A_C:
    print "Define la fracción de inundación"
    A_C    = A_C_parte_a
    D_C    = D_C_parte_a
else:
    print "Define la caída de presión"

print "A_C    =", A_C, "m²"
print "D_C    =", D_C, "m  <----- Respuesta"


print "========================================\nParte d) f_inun= 75 %, F_D = 10 000 kg/d\n========================================"
W_D       = 10000/24/3600   # [kg/d] --> [kg/s]

F_D       =  W_D/M_D        # [kmol/s]
F_L       =  R_D * F_D      # [kmol/s]
F_V       =  F_L + F_D      # [kmol/s]
W_L       =  F_L * M_L      # [kg/s]
W_V       =  F_V * M_V      # [kg/s]

# F_lv y F_c son igual a la parte a porque se mantiene la misma relación de flujos
F_c       =  numerical_approx(Fc_Inun(F_lv), digits = 3)
A_C_inun  =  numerical_approx(sqrt(W_V^2*C_f*mu_L^0.1/(rho_V*(rho_L-rho_V)*F_c)), digits=3)  # [m²]
A_C       =  numerical_approx(A_C_inun/f_inun, digits = 3)   # [m²]
D_C       =  numerical_approx(sqrt(4*A_C/pi), digits = 3)    # [m]

print "F_c    =", F_c
print "A_C_in =", A_C_inun, "m²"
print "A_C    =", A_C, "m²"
print "D_C    =", D_C, "m  <----- Respuesta"
print "Dc/Dp  =", D_C/D_p

if D_C/D_p < 8:
    print "Posible canalización hacia las paredes"
elif D_C/D_p >= 40:
    print "Posible mala distribución de líquido y vapor"
else:
    print "Relación OK"

# ******************** Final del código ***********************n

Solución

C_f = 97 ft²/ft³ M_L = M_V = 40.4 kg/kmol T_V = 78.3 °C rho_V = 1.4 kg/m³ F_lv = 0.0276 ============================== Parte a) 75 % de la inundación ============================== F_c = 0.300 A_C_in = 0.0126 m² A_C = 0.0168 m² D_C = 0.146 m <----- Respuesta Dc/Dp = 9.15 Relación OK ===================================== Parte b) Caída de presión de 200 Pa/m ===================================== F_c = 0.0497 A_C = 0.0310 m² D_C = 0.199 m <----- Respuesta Dc/Dp = 12.4 Relación OK ======================================= Parte c) Inundación y caída de presión ======================================= Los cálculos son los mismos de las partes a y b. Se toma el caso que de el diámetro mayor para cumplir ambas condiciones. Define la caída de presión A_C = 0.0310 m² D_C = 0.199 m <----- Respuesta ======================================== Parte d) f_inun= 75 %, F_D = 10 000 kg/d ======================================== F_c = 0.300 A_C_in = 0.126 m² A_C = 0.168 m² D_C = 0.463 m <----- Respuesta Dc/Dp = 28.9 Relación OK

Problema N° 2

Valor: 5 puntos

Referencia: Problema 10.D5 Wankat (2008)

Se está probando un nuevo tipo de relleno. Se destila una mezcla de metanol-agua a reflujo total a 101,3 kPa, la columna empleada utiliza un rehervidor parcial. La sección rellena tiene 1 m de longitud. Medimos una concentración molar de metanol de 96 % en el líquido que sale del condensador y de 4 % molar de metanol en el líquido del vaporizador. ¿Cuál es la HETP de este relleno, con este flujo de gas?

# Datos de EVL para el sistema metanol-agua a 1 atm, fracciones molares (Fuente: Tabla 2-7 Wankat 2a ed.)
xe_metanol = [0.000, 0.020, 0.040, 0.060, 0.080, 0.100, 0.150, 0.200, 0.300, 0.400, 0.500, 0.600, 0.700, 0.800, 0.900, 0.950, 1.000]
ye_metanol = [0.000, 0.134, 0.230, 0.304, 0.365, 0.418, 0.517, 0.579, 0.665, 0.729, 0.779, 0.825, 0.870, 0.915, 0.958, 0.979, 1.000]
T_e        = [100.0,  96.4,  93.5,  91.2,  89.3,  87.7,  84.4,  81.7,  78.0,  75.3,  73.1,  71.2,  69.3,  67.6,  66.0,  65.0,  64.5]

# Datos del enunciado
p_t        = 101.3         # [kPa]
H_C        =   1           # [m]
x_D        =   0.96        # [mol/mol] (fracción)
x_B        =   0.04        # [mol/mol] (fracción)


# ***************** Solución *******************
html('<h2>Solución</h2>')

# Ajuste de datos de equilibrio
datos_eq   =  zip(xe_metanol, ye_metanol)          # Crea lista con cada par de valores (x*, y*)
y_eq       =  spline(datos_eq)

# Composiciones de entrada y salida
y_fondo    =  y_eq(x_B)
x_fondo    =  y_fondo
y_tope     =  x_D

# Etapas
# Cálculo de composiciones (escalera)
xy_etapas  =  [(x_B, x_B), (x_B, y_fondo), (y_fondo,y_fondo)]
N_i = 0
x_n        =  y_fondo
while x_n < x_D:
    y_n   = y_eq(x_n)
    xy_etapas.append((x_n,y_n))
    x_1   = x_n
    x_n   = y_n
    xy_etapas.append((x_n,y_n))
    N_i  += 1

# Cálculo del número de etapas (incluyendo la fracción)
N_etapas   =  N_i + (x_D-x_1)/(x_n-x_1)
N_p        =  N_etapas - 1

# Cálculo del HETP
HETP       =  numerical_approx(H_C / N_p, digits = 3)

# *************** Mostrar resultados ******************
# Gráficas
# Gráfica de McCabe-Thiele
graf_eq    =  scatter_plot(datos_eq, facecolor = "none", axes_labels = ["$x_{\\mathrm{metOH}}$","$y_{\mathrm{metOH}}$"]) \
            + line([(0,0),(1,1)], color = "black") \
            + plot(y_eq, xmin = 0, xmax = 1, color = "red")

# Líneas de composición de destilado y fondos
graf_comp  = line([(x_B,0),(x_B,x_B)]) + line([(x_D,0),(x_D,y_tope)]) + text("$x_B$", (x_B,-0.05)) + text("$x_D$", (x_D,-0.05))

# Escalera
graf_escal = line(xy_etapas, color = "purple") + text("R", ((x_fondo+x_B)/3, (x_B+y_fondo)/1.8))

graf_eq + graf_comp + graf_escal

print "Número de etapas =", numerical_approx(N_etapas, digits = 3)
print "Número de platos =", numerical_approx(N_p     , digits = 3)
show("$HETP = H_C/N_p =$", HETP, "m")

# ************* Final del código ***************

Solución

Número de etapas = 4.77 Número de platos = 3.77
HETP=HC/Np=HETP = H_C/N_p = 0.265\displaystyle 0.265 m