SharedTareas / Tarea 4.2 | Torre de enfriamiento y deshumidificador.sagews.htmlOpen in CoCalc
Authors: Esteban Richmond-Salazar, Erick Solano
Description: Soluciones a Tareas Masa 2
Problema N° 1

Problema N° 1

AuthorEsteban Richmond-Salazar
Date2018-06-06T20:02:42
Projectc8d6174e-82a9-4a2a-ba1f-b0b5a9e871b3
LocationTareas/Tarea 4.2 | Torre de enfriamiento y deshumidificador.sagews
Original fileTarea 4.2 | Torre de enfriamiento y deshumidificador.sagews

Problema N° 1

Referencia: Adaptado de Ejemplo 13.9 de Coulson & Richardson, Volumen 1 (1999)

Se va a enfriar agua desde 55 °C hasta 25 °C por contacto a contracorriente con aire que entra a 23 °C con una humedad relativa de 25 %. El aire fluye a 2000 m3/(m2 h) y el agua a 950 kg/(m2 h). La resistencia a la transferencia de calor y de masa puede suponerse que se encuentra en la fase gaseosa y el coeficiente volumétrico global de transferencia de masa puede obtenerse de KY'a/ρG = 0.2 s-1.

Tomando la presión como 97.0 kPa calcule:

  1. Condiciones del aire de salida (humedad absoluta, humedad relativa, temperatura y entalpía)
  2. Altura de relleno que se requiere
  3. Relación entre el flujo de gas empleado con respecto al flujo mínimo requerido
html('<h2>Solución</h2>')# ========== Datos del enunciadot_L_entra       =   55        # °Ct_L_sale        =   25        # °Ct_G_entra       =   23        # °CY_R_entra       =    0.2500   # Pa/Paq_G_entra       = 2000        # m³/(m² h)L_entra         =  950        # kg/(m² h)K_Y_a_div_rho_G =    0.2*3600 # h^-1 <-- s^-1p_t             =   97.0      # kPat, L            = var ('t, L')# ========== Constantes y parámetros generalesM_A             =   18.01    # aguaM_B             =   28.84    # airet_0             =    0.01    # [°C]R               =    8.314   # [kJ/(kmol K)]# Kloppers, J. C., & Kröger, D. G. (2004) https://doi.org/10.1080/104077890504113p_A_sat(t)      =  10^(10.79586*(1-273.16/(t+273.15)) + 5.02808*log(273.16/(t+273.15),10) + 1.50474*10^-4 * (1-10^(-8.29692*((t+273.15)/273.16 - 1))) + 4.2873*10^-4 * (10^(4.76955*(1-273.16/(t+273.15))) - 1) + 2.786118312) / 1000   # kPaC_pBG(t)        =  (1045.356 - 0.3161783*(t+273.15) + 7.083814*10^-4*(t+273.15)^2 - 2.705209*10^-7*(t+273.15)^3) / 1000  # kJ/(kg K)C_pAG(t)        =  (1360.5 + 2.31334*(t+273.15) - 2.46784*10^-10*(t+273.15)^5 + 5.91332 * 10^-13*(t+273.15)^6) / 1000    # kJ/(kg K)C_pAL(t)        =  (8155.99 - 28.0627*(t+273.15) + 0.0511283*(t+273.15)^2 - 2.17582*10^-13 * (t+273.15)^6)/1000          # kJ/(kg K)lambda_A(t)     =  (3483181.4 - 5862.7703*(t+273.15) + 12.139568*(t+273.15)^2 - 0.0140290431*(t+273.15)^3) / 1000        # kJ/kglambda_A0       =  lambda_A(0)# ========== FuncionesC_s(t, Y)       =  C_pBG(t) + C_pAG(t)*YY_s(t, p)       =  M_A*p_A_sat(t)/(M_B*(p-p_A_sat(t)))H(t,Y)          =  C_s(t, Y) * (t-t_0) + lambda_A(t_0) * YH_s(t,p)        =  C_s(t, Y_s(t,p)) * (t-t_0) + lambda_A(t_0) * Y_s(t, p)v_H(t,Y,p)      =  R*(t+273.15)/p * (1/M_B+Y/M_A)rho_G(T, Y, p)  =  p*(M_B+M_A*Y)/(R*(T+273.15))# ========== Condiciones de entradap_A_entra       =  Y_R_entra*p_A_sat(t_G_entra)Y_entra         =  M_A/M_B * p_A_entra/(p_t-p_A_entra)C_s_entra       =  C_s(t_G_entra, Y_entra)H_entra         =  H(t_G_entra,Y_entra)v_H_entra       =  v_H(t_G_entra, Y_entra, p_t)rho_G_entra     =  rho_G(t_G_entra, Y_entra, p_t)G_s             =  q_G_entra/v_H_entraprint "pA_entra = %8.3g kPa" %p_A_entraprint "Y'entra  = %8.3g kg/kg" %Y_entraprint "Cs_entra = %8.4g kJ/(kg K)" %C_s_entraprint "H'entra  = %8.3g kJ/kg" %H_entraprint "vH_entra = %8.3g m³/kg" %v_H_entraprint "G's      = %8.4g kg/(m² h)" %G_s# ========== Línea de operaciónH_G(t,L,Gs)     =  L*C_pAL(t)/Gs * (t-t_L_sale) + H_entraH_sale          =  H_G(t_L_entra, L_entra, G_s)# ========== Flujo limitante de gasLdivG_lim       =  var('LdivG_lim')Relac_lim(t)    =  solve(H_G(t,LdivG_lim,1) == H_s(t,p_t), LdivG_lim)[0].rhs()sol_Rel_lim     =  find_local_minimum(Relac_lim(t), t_L_sale, t_L_entra)    # Devuelve [L(t_eq), t_eq]G_s_min         =  L_entra/sol_Rel_lim[0]t_eq            =  sol_Rel_lim[1]# ========== Condiciones de salidaN               = 30 # Cantidad de etapas de cálculoH_eq_menos_H(t) = H_s(t,p_t)-H_G(t,L_entra,G_s)Delta_H         =  (H_sale-H_entra)/Nlista_H_G       =  [H_entra + Delta_H*i for i in range(N+1)]lista_t_I       =  [find_root(H_G(t,L_entra,G_s) == H_g, t_L_sale-0.1, t_L_entra+0.1) for H_g in lista_H_G]lista_t_eq      =  [find_root(H_s(t,p_t) == H_g, 0, t_L_entra+0.1) for H_g in lista_H_G]lista_H_I       =  [H_s(t_I,p_t) for t_I in lista_t_I]lista_t_G       =  vector(RR, N+1)lista_t_G[0]    =  t_G_entraif lista_t_I[0] == lista_t_G[0]:    DH_DtG      =  10^100else:    DH_DtG    =  (lista_H_I[0]-lista_H_G[0])/(lista_t_I[0]-lista_t_G[0])for i in range(1,N+1):    lista_t_G[i]     = lista_t_I[i-1] - (lista_H_I[i-1] - lista_H_G[i])/DH_DtG    if lista_t_G[i]  < lista_t_eq[i]:        lista_t_G[i] = lista_t_eq[i]    DH_DtG         = (lista_H_I[i]-lista_H_G[i])/(lista_t_I[i]-lista_t_G[i])t_G_sale        =  lista_t_G[N]Y_sale          =  numerical_approx(solve(H(t_G_sale,Y) == lista_H_G[N], Y)[0].rhs())Yn_sale         =  Y_sale * M_B/M_Ay_sale          =  Yn_sale/(1+Yn_sale)p_A_sale        =  p_t*y_saleY_R             =  p_A_sale/p_A_sat(t_G_sale)# ========== Altura del relleno# Paso f(H) --> g(t)g(t)            =  derivative(H_G(t,L_entra, G_s)) / (H_s(t,p_t)-H_G(t,L_entra, G_s))integral_g      =  numerical_integral(g, t_L_sale, t_L_entra)graf_NTU        =  plot(g, xmin = t_L_sale, xmax = t_L_entra, axes_labels = ['$t$/($\degree$C)', r'$\frac{d H\'(t)}{H^{*}-H}$'], fill = 'axis', color = 'red')N_tOG           =  integral_g[0]H_tOG_entra     =  G_s*(1+Y_entra)/(K_Y_a_div_rho_G*rho_G_entra)rho_G_sale      =  rho_G(t_G_sale, Y_sale, p_t)H_tOG_sale      =  G_s*(1+Y_sale)/(K_Y_a_div_rho_G*rho_G_sale)H_tOG_prom      =  mean([H_tOG_entra, H_tOG_sale])graf_Hs     = plot(H_s(t,p_t), xmin = min(t_L_sale,t_G_entra) , xmax = t_L_entra+5, legend_label = "$H\'_s(t)$", axes_labels=['$t$','$H\'_G$'])graf_Gmin   = line([(t_L_sale, H_entra),(t_L_entra, H_G(t_L_entra,Relac_lim(t_eq),1))], color = 'red', legend_label = "$\\frac{L C_{p,A,L}}{G\'_{s,min}}$")graf_lop    = line([(t_L_sale, H_entra),(t_L_entra, H_G(t_L_entra,L_entra,G_s))], color = 'purple', legend_label = "$H\'_G (t_L)$") \graf_HG_tG  = line(zip(lista_t_G,lista_H_G), color = 'green', legend_label = "$H\'_G (t_G)$")graf_1      = graf_Hs + graf_lop + graf_HG_tGgraf_2      = graf_Hs + graf_lop + graf_Gminprint "\n","a) Condiciones del aire de salida"graf_1.show(figsize=(6,4))graf_1.show(xmin = min(t_L_sale,t_G_entra), xmax = t_G_sale+0, ymax = H_s(t_G_sale+2,p_t), figsize=(6,4))print "\n"print "Y'sale   = %8.3g kg/kg" %Y_saleprint "YR       = %8.3g %%" %(Y_R*100)print "H'sale   = %8.3g kJ/kg" %H_saleprint "tG_sale  = %8.3g °C (con %s deltas, ΔH = %.4g kJ/kg)" %(t_G_sale, N, Delta_H)print "\n","b) Altura de relleno"graf_NTU.show(figsize=(6,4))print "\n","N_tOG = %s" %numerical_approx(N_tOG, digits=4)print "H_tOG,entra = %s m" %numerical_approx(H_tOG_entra, digits=4)print "H_c = %s m" %numerical_approx(N_tOG * H_tOG_entra, digits=4), "<--- Tomando solo H_tOG a la entrada"print "H_tOG,sale = %s m" %numerical_approx(H_tOG_sale, digits=4)print "H_tOG,prom = %s m" %numerical_approx(H_tOG_prom, digits=4)print "H_c = %s m" %numerical_approx(N_tOG * H_tOG_prom, digits=4), "<--- Considerando H_tOG promedio"print "\n","c) Relación Gs/Gsmin"graf_2.show()print "\n","G's/G's,mín = %s" %numerical_approx(G_s/G_s_min, digits=4), "<--- Respuesta"print "G's,mín  = %s kg/(m² h)" %numerical_approx(G_s_min, digits=4)########## Final del código ##########

Solución

pA_entra = 0.702 kPa
Y'entra = 0.00455 kg/kg
Cs_entra = 1.015 kJ/(kg K)
H'entra = 34.7 kJ/kg
vH_entra = 0.887 m³/kg
G's = 2256 kg/(m² h)
a) Condiciones del aire de salida
Y'sale = 0.0229 kg/kg
YR = 86.8 %
H'sale = 87.6 kJ/kg
tG_sale = 28.8 °C (con 30 deltas, ΔH = 1.761 kJ/kg)
b) Altura de relleno
N_tOG = 0.5450
H_tOG,entra = 2.762 m
H_c = 1.505 m <--- Tomando solo H_tOG a la entrada
H_tOG,sale = 2.835 m
H_tOG,prom = 2.799 m
H_c = 1.525 m <--- Considerando H_tOG promedio
c) Relación Gs/Gsmin
G's/G's,mín = 5.224 <--- Respuesta
G's,mín = 431.8 kg/(m² h)

Problema N° 2

Referencia: Adaptación de problema 7.10 de Treybal

Se tiene una corriente de 1.3 m3/s de aire, con 38.0 °C de bulbo seco y 30.0 °C de bulbo húmedo, que se desea deshumidificar llevándolo hasta una temperatura de bulbo húmedo de 15.0 °C por contacto con agua a 10.0 °C fluyendo a contracorriente en una torre rellena. Se utilizará 1.4 veces el flujo mínimo de líquido.

Calcule:

  1. Condiciones del aire de salida (humedad, entalpía, temperaturas)
  2. Temperatura del agua de salida
html('<h2>Solución</h2>')# ========== Datos del enunciadoq_G_entra       =    1.3      # m³/st_G_entra       =   38        # °Ct_w_entra       =   30        # °Ct_w_sale        =   15        # °Ct_L_entra       =   10        # °CL_div_Lmin      =    1.4# ========== Otros datosp_t             =  101.325    # kPaN_Le            =    0.855# El resto de funciones y constantes ya definidas en problema 1# ========== Condiciones de entradaY_w_entra       =  Y_s(t_w_entra, p_t)Y_entra         =  Y_w_entra - (t_G_entra - t_w_entra)*N_Le^(2/3)*C_pBG(t_G_entra)/lambda_A(t_w_entra)*(t_G_entra-t_w_entra)C_s_entra       =  C_s(t_G_entra, Y_entra)H_entra         =  H(t_G_entra,Y_entra)v_H_entra       =  v_H(t_G_entra, Y_entra, p_t)G_s             =  q_G_entra/v_H_entraprint "Y'w,entra = %8.3g kg/kg" %Y_w_entraprint "Y'entra  = %8.3g kg/kg" %Y_entraprint "Cs_entra = %8.4g kJ/(kg K)" %C_s_entraprint "H'entra  = %8.3g kJ/kg" %H_entraprint "vH_entra = %8.3g m³/kg" %v_H_entraprint "G's      = %8.4g kg/(m² h)" %G_s# ========== Condiciones de salidat_G_sale        =  t_w_saleY_sale          =  Y_s(t_w_sale, p_t)C_s_sale        =  C_s(t_G_sale, Y_sale)H_sale          =  H(t_G_sale,Y_sale)v_H_entra       =  v_H(t_G_sale, Y_sale, p_t)print ""print "a) Condiciones de salida del aire"print "Por el proceso de deshumidificación se sabe que el aire sale saturado"print "t_G,sale = t_w = %.3g °C" %t_G_saleprint "Y'sale   = %8.3g kg/kg" %Y_saleprint "H'sale   = %8.3g kJ/kg" %H_sale# ========== Línea de operaciónH_G(t,L,Gs)     =  L*C_pAL(t)/Gs * (t-t_L_entra) + H_salet_L_max         =  find_root(H_s(t, p_t) == H_entra, t_L_entra, t_G_entra)# ========== Flujo mínimo de líquidoLdivG_lim       =  var('LdivG_lim')Relac_lim(t)    =  solve(H_G(t,LdivG_lim,1) == H_s(t,p_t), LdivG_lim)[0].rhs()sol_Rel_lim     =  find_local_maximum(Relac_lim(t), t_L_entra, t_L_max)    # Devuelve [L(t_eq), t_eq]L_min           =  sol_Rel_lim[0]*G_st_eq            =  sol_Rel_lim[1]L_entra         =  L_div_Lmin * L_mint_L_sale        =  find_root(H_G(t, L_entra, G_s) == H_entra, t_L_entra, t_L_max)# ========== Gráficagraf_Hs     = plot(H_s(t,p_t), [t_L_entra-1, t_L_max+1], legend_label = "$H\'_s(t)$", axes_labels=['$t$','$H\'_G$'])graf_Lmin   = plot(H_G(t,L_min,G_s), [t_L_entra, t_L_max], color = 'red', legend_label = "$\\frac{L_{min} C_{p,A,L}}{G\'_{s}}$")graf_lop    = plot(H_G(t,L_entra,G_s), [t_L_entra, t_L_sale], color = 'purple', legend_label = "$H\'_G (t_L)$") \graf_P2     = graf_Hs + graf_Lmin + graf_lopprint "\n","b) Temperatura del líquido de salida"graf_P2.show(figsize=(6,4))print "\n"print "L'min    = %8.3g kg/s" %L_minprint "L'       = %8.3g kg/s" %L_entraprint "t_L,sale = %8.3g °C" %t_L_sale, "<-----"########## Final del código ##########

Solución

Y'w,entra = 0.0273 kg/kg
Y'entra = 0.0034 kg/kg
Cs_entra = 1.014 kJ/(kg K)
H'entra = 47 kJ/kg
vH_entra = 0.89 m³/kg
G's = 1.461 kg/(m² h)
a) Condiciones de salida del aire
Por el proceso de deshumidificación se sabe que el aire sale saturado
t_G,sale = t_w = 15 °C
Y'sale = 0.0107 kg/kg
H'sale = 42.1 kJ/kg
b) Temperatura del líquido de salida
L'min = 0.255 kg/s
L' = 0.357 kg/s
t_L,sale = 14.8 °C <-----