Open in CoCalc

Problema N° 1

Referencia: Problema 19.1 McCabe (2002)

Un método de separar acetona de acetato de celulosa consiste en pasar una corriente de aire sobre las fibras de acetato de celulosa. Para conocer las propiedades de las mezclas aire-acetona, el departamento de control de proceso necesita una gráfica de humedad para el sistema aire-acetona. Después de una investigación, se encontró que sería satisfactorio un intervalo de humedad de 0 a 6.0 kg/kg y de temperatura de 5 °C a 55 °C. Trace las siguientes regiones de una gráfica de humedad para el sistema aire-acetona a la presión total de 101,325 kPa.

  1. [2 pto] Líneas de humedad porcentual para 50 % y 100 %
  2. [2 pto] Volumen saturado contra temperatura
  3. [1 pto] Calor latente de la acetona contra temperatura
  4. [1 pto] Calor húmedo contra humedad
  5. [3 pto] Líneas de enfriamiento adiabático para temperaturas de saturación adiabática de 20 °C y 40 °C
  6. [3 pto] Líneas de temperatura de bulbo húmedo de 20 °C y 40 °C.

Los datos necesarios son:

Para el vapor de acetona, Cp = 1.47 kJ/(kg K) y h/(MBky) = 1.7 kJ/(kg K)

html('<h2>Solución</h2>') ########## Datos de equilibrio datos_t1 = [ 10 , 20 , 30 , 40 , 50 , 56.1, 60 , 70 , 80 ] # °C datos_pvap = [115.6, 179.6, 281.0, 420.1, 620.9, 760.0, 860.5, 1189.4, 1611.0] # mmHg datos_t2 = [ 0, 20, 40, 56.1, 60, 80] # °C datos_lambda = [564, 552, 536, 521 , 517, 495] # kJ/kg ########## Datos del enunciado Yp_min = 0 # kg/kg Yp_max = 6 # kg/kg t_min = 5 # °C t_max = 55 # °C p_t = 101.325 # kPa C_pAG = 1.47 # kJ/(kg K) h_div_MBky = 1.7 # kJ/(kg K) ########## Datos adicionales M_A = 58.08 # acetona M_B = 28.97 # aire R = 8.314 # [kJ/(kmol K)] t_0 = 0.01 # [°C] C_pBG(t) = R/M_B * (3.355 + 0.575*10^-3*(t+273.15) - 0.016*10^ 5/(t+273.15)^2) # [kJ/(kmol K)] ########## Ajuste de datos # Conversión de unidades datos_pvap = [p_mmHg * 101.325/760 for p_mmHg in datos_pvap] # kPa # Unir los valores en pares datos_tpv = zip(datos_t1, datos_pvap) datos_tlam = zip(datos_t2, datos_lambda) # Ajuste a un modelo %var a0, a1, a2, a3, a4 modelo(t) = a0 + a1*t + a2*t^a3 ajuste = find_fit (datos_tpv, modelo, solution_dict = True) p_A_sat(t) = modelo(a0 = ajuste[a0], a1 = ajuste[a1], a2 = ajuste[a2], a3 = ajuste[a3]) # Los spline son útiles para interpolar pero no permiten extrapolar p_vap = spline(datos_tpv) lambda_ = spline(datos_tlam) lambda_0 = lambda_(t_0) ########## Funciones %var t, Yp Y_p (t, pt) = p_A_sat(t)/(p_t-p_A_sat(t))*M_A/M_B # [kg/kg] Y_s (t, pt) = M_A*p_A_sat(t)/(M_B*(pt-p_A_sat(t))) # [kg/kg] C_s (t, Yp) = C_pBG(t) + C_pAG*Yp # [kJ/(kg K)] H (t, Yp) = C_s(t, Yp) * (t-t_0) + lambda_0 * Yp # [kJ/kg] H_s (t, pt) = C_s(t, Y_s(t,pt)) * (t-t_0) + lambda_0 * Y_s(t,pt) # [kJ/kg] v_H (t, Yp, pt) = R*(t+273.15)/pt * (1/M_B+Yp/M_A) # [m³/kg] # ************************** SOLUCIÓN ************************** COLOR=sorted(colors) ########## a) Líneas de humedad porcentual para 50 % y 100 % Y_P1 = 0.50 Y_P2 = 1.00 gr_YP50 = plot(Y_P1 * Y_s(t, p_t), t_min, t_max, legend_label="50 %" , color='blue') gr_YP100 = plot(Y_P2 * Y_s(t, p_t), t_min, t_max, legend_label="100 %", color='green') gr_YP = gr_YP50 + gr_YP100 gr_YP.show(title='Humedad porcentual', ymin=Yp_min, ymax=Yp_max, axes_labels=['$t$/($\degree$C)', '$Y\'$/(kg/kg)'], figsize=(6,4)) ########## b) Volumen saturado v_sat(t, pt) = v_H (t, Y_s(t, pt), pt) gr_vsat = plot(v_sat(t, p_t), xmin=t_min, xmax=t_max, axes_labels = ['$t$/($\degree$C)', '$v_s$/(m^3/kg)'], figsize=(6,4)) gr_vsat.show(title = 'Volumen saturado') ########## c) Calor latende de la acetona gr_lambda = plot(lambda_, t_min, t_max, axes_labels = ['$t$/($\degree$C)', '$\lambda$/(kJ/kg)']) gr_lambda.show(title = 'Calor latende de la acetona', figsize=(6,4)) ########## d) Calor húmedo gr_calhum = plot(C_pBG(t_0) + C_pAG*Yp, xmin=Yp_min, xmax=Yp_max, axes_labels = ['$Y\'$/(kg/kg)', '$C_s$/(kJ/kg K)'], figsize=(6,4)) gr_calhum.show(title = 'Calor h\'umedo') ########## e) Líneas de enfriamiento adiabático de 20 °C y 40 °C #N = 11 # Número de puntos de cálculo #lista_tsa = [t_min + (t_max-t_min)/(N-1) * i for i in range(N)] #lista_Ysa = [Y_s(tsa, p_t) for tsa in lista_tsa] t_sa1 = 20 # °C t_sa2 = 40 # °C Yp_1(t) = (lambda_(t_sa1)*Y_s(t_sa1,p_t) - C_pBG*(t-t_sa1))/(C_pAG*(t-t_sa1) + lambda_(t_sa1)) Yp_2(t) = (lambda_(t_sa2)*Y_s(t_sa2,p_t) - C_pBG*(t-t_sa2))/(C_pAG*(t-t_sa2) + lambda_(t_sa2)) gr_tsa20 = plot(Yp_1, t_sa1, t_max, legend_label="$t_{sa} = $"+str(t_sa1)+" $\degree$C" , color='blue') gr_tsa40 = plot(Yp_2, t_sa2, t_max, legend_label="$t_{sa} = $"+str(t_sa2)+" $\degree$C" , color='red') gr_tsa = gr_YP100 + gr_tsa20 + gr_tsa40 gr_tsa.show(title = 'L\'ineas de enfriamiento adiab\'atico', xmin= t_min, ymin=Yp_min, ymax=3, axes_labels=['$t$/($\degree$C)', '$Y\'$/(kg/kg)'], figsize=(6,4)) ########## f) Líneas de temperatura de bulbo húmedo de 20 °C y 40 °C t_w1 = 20 # °C t_w2 = 40 # °C Yw_1(t) = (Y_s(t_w1,p_t) - h_div_MBky/lambda_(t_w1) *(t-t_w1)) Yw_2(t) = (Y_s(t_w2,p_t) - h_div_MBky/lambda_(t_w2) *(t-t_w2)) gr_tw20 = plot(Yw_1, t_w1, t_max, legend_label="$t_{w} = $"+str(t_w1)+" $\degree$C" , color='purple') gr_tw40 = plot(Yw_2, t_w2, t_max, legend_label="$t_{w} = $"+str(t_w2)+" $\degree$C" , color='orange') gr_tw = gr_YP100 + gr_tw20 + gr_tw40 #gr_tw.show(title = 'L\'ineas de temperatura de bulbo h\'umedo', xmin= t_min, ymin=Yp_min, ymax=3, axes_labels=['$t$/($\degree$C)', '$Y\'$/(kg/kg)'], figsize=(6,4)) gr_twsa = gr_tw + gr_tsa gr_twsa.show(title = 'L\'ineas de temperatura de bulbo h\'umedo y sat adiab', xmin= t_min, ymin=Yp_min, ymax=3, axes_labels=['$t$/($\degree$C)', '$Y\'$/(kg/kg)'], figsize=(6,4))

Solución

Problema N° 2

Referencia: Problema 19.3 McCabe (2002)

Una torre de enfriamiento a contracorriente con relleno celular de 76 cm fue diseñada para una temperatura de aproximación de 6 °C y un intervalo de enfriamiento de 9 °C cuando la temperatura de bulbo húmedo es de 24 °C. La sección transversal de la torre es de 11 m * 11 m, y las velocidades de los flujos de aire y agua son 14 810 m³/min a 32 °C y 22.7 m³/min.

  1. [8 pto] ¿Cuál es la entalpía del aire a la entrada y la variación de entalpía a través de la torre?
  2. [4 pto] Calcule NTU y HTU para estas condiciones.
  3. [8 pto] ¿Cuánto relleno más sería necesario si la temperatura del bulbo húmedo fuera de 26 °C y la temperatura de aproximación fuera de 4 °C?
html('<h2>Solución</h2>') ########## Datos del enunciado H_c = 76 # cm D_t_aprox = 6 # °C Delta_tL = 9 # °C t_w = 24 # °C A_c = 11*11 # m² q_G_entra = 14810 # m³/min t_G_entra = 32 # °C q_L_entra = 22.7 # m³/min ########## Datos adicionales p_t = 101.325 # kPa R = 8.314 # kJ/(kmol K) t_0 = 0.01 # °C N_Le = 0.855 M_A = 18.01 # agua M_B = 28.84 # aire lambda_A(t) = 2501.6 + 2.2908456564*t-0.0015914753*t^2 # [kJ/kg] C_pAL(t) = R/M_A * (8.712 + 1.25 *10^-3*(t+273.15) - 0.18 *10^-6*(t+273.15)^2) # [kJ/(kg K)] C_pAG(t) = R/M_A * (3.470 + 1.450*10^-3*(t+273.15) + 0.121*10^ 5/(t+273.15)^2) # [kJ/(kg K)] C_pBG(t) = R/M_B * (3.355 + 0.575*10^-3*(t+273.15) - 0.016*10^ 5/(t+273.15)^2) # [kJ/(kg K)] # Constantes de Antoine para el agua, [0.01 °C a 100 °C], log10 P_sat/kPa = A - B / (t/°C + C) A = 7.110969267248 B = 1681.106698364 C = 229.2939885035 p_A_sat(t) = 10^(A-B/(t+C)) # [kPa] ########### Funciones C_s(t, Y) = C_pBG(t) + C_pAG(t)*Y Y_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) * Y H_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) ########## Condiciones del líquido rho_L = 997 # kg/m³ t_L_sale = t_w + D_t_aprox # °C t_L_entra = t_L_sale + Delta_tL # °C L_entra = q_L_entra*rho_L/A_c # kg/(m² min) ########## Condiciones del aire Y_w = Y_s(t_w, p_t) Y_entra = Y_w - (t_G_entra - t_w)*N_Le^(2/3)*C_pBG(t_G_entra)/lambda_A(t_w) 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_entra * A_c) # Línea de operación H_G(tL) = L_entra*C_pAL(tL)/G_s * (tL-t_L_sale) + H_entra H_sale = H_G(t_L_entra) print "***** Parte a *****" print "tL_sale = %8.3f" %t_L_sale, "°C" print "tL_entra = %8.3f" %t_L_entra, "°C" print "L'_entra = %8.3f" %L_entra, "kg/(m² min)" print "Y'_w = %8.3f" %Y_w, "kg/kg" print "Y'_entra = %8.3f" %Y_entra, "kg/kg" print "Cs_entra = %8.3f" %C_s_entra, "kJ/(kg K)" print "H'_entra = %8.3f" %H_entra, "kJ/kg" print "vH_entra = %8.3f" %v_H_entra, "m³/kg" print "G's = %8.3f" %G_s, "kg/(m² min)" print "H'_sale = %8.3f" %H_sale, "kJ/kg" print "Delta H = %8.3f" %(H_sale-H_entra), "kJ/kg" print "" print "***** Parte b *****" ########## NTU y HTU %var t plot(H_s(t,p_t), xmin = min(t_L_sale,t_G_entra)-5 , xmax = t_L_entra+2, legend_label = "$H\'_s(t)$", axes_labels=['$t$/($\degree$C)','$H\'_G$/(kJ/kg)']) \ + 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)$", figsize=(6,4)) # 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) # *********** Resultados, parte b) ******************************************************** 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', figsize=(6,4)) print "Se hace cambio de variable para integrar más fácilmente en función de t en vez de H\'" N_tOG = integral_g[0] H_tOG = H_c/N_tOG # cm print "" print "NTU = N_tOG = %8.3f" %N_tOG print "HTU = H_tOG = %8.3f cm = %5.2f m" %(H_tOG, H_tOG/100) print "" print "***** Parte c *****" t_w = 26 # °C D_t_aprox = 4 # °C ########## Nuevas condiciones del líquido t_L_sale = t_w + D_t_aprox # °C t_L_entra = t_L_sale + Delta_tL # °C L_entra = q_L_entra*rho_L/A_c # kg/(m² min) ########## Nuevas condiciones del aire Y_w = Y_s(t_w, p_t) Y_entra = Y_w - (t_G_entra - t_w)*N_Le^(2/3)*C_pBG(t_G_entra)/lambda_A(t_w) 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_entra * A_c) ########## Nueva línea de operación H_G(tL) = L_entra*C_pAL(tL)/G_s * (tL-t_L_sale) + H_entra H_sale = H_G(t_L_entra) print "tL_sale = %8.3f °C" %t_L_sale print "tL_entra = %8.3f °C" %t_L_entra print "Y'_w = %8.3f kg/kg" %Y_w print "Y'_entra = %8.3f kg/kg" %Y_entra print "Cs_entra = %8.3f kJ/(kg K)" %C_s_entra print "H'_entra = %8.3f kJ/kg" %H_entra print "vH_entra = %8.3f m³/kg" %v_H_entra print "G's = %8.3f kg/(m² min)" %G_s ########## Nuevo NTU plot(H_s(t,p_t), xmin = min(t_L_sale,t_G_entra)-5 , xmax = t_L_entra+2, legend_label = "$H\'_s(t)$", axes_labels=['$t$/($\degree$C)','$H\'_G$/(kJ/kg)']) \ + 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)$", figsize=(6,4)) # 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) 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', figsize=(6,4)) N_tOG = integral_g[0] H_c_nueva = N_tOG * H_tOG Delta_Z = H_c_nueva - H_c print "" print "NTU = N_tOG = %7.4g" %N_tOG print "Nueva H_c = %7.4g cm" %H_c_nueva print "Diferencia = %7.4g cm" %Delta_Z

Solución

***** Parte a ***** tL_sale = 30.000 °C tL_entra = 39.000 °C L'_entra = 187.040 kg/(m² min) Y'_w = 0.019 kg/kg Y'_entra = 0.016 kg/kg Cs_entra = 1.043 kJ/(kg K) H'_entra = 73.526 kJ/kg vH_entra = 0.891 m³/kg G's = 137.446 kg/(m² min) H'_sale = 124.889 kJ/kg Delta H = 51.363 kJ/kg ***** Parte b *****
Se hace cambio de variable para integrar más fácilmente en función de t en vez de H' NTU = N_tOG = 1.829 HTU = H_tOG = 41.560 cm = 0.42 m ***** Parte c ***** tL_sale = 30.000 °C tL_entra = 39.000 °C Y'_w = 0.021 kg/kg Y'_entra = 0.019 kg/kg Cs_entra = 1.049 kJ/(kg K) H'_entra = 81.736 kJ/kg vH_entra = 0.895 m³/kg G's = 136.762 kg/(m² min)
NTU = N_tOG = 2.621 Nueva H_c = 108.9 cm Diferencia = 32.91 cm