Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Soluciones a Tareas Masa 2

Views: 20693

Problema 1

Referencia: Problema 17-D3 Wankat

Una columna cromatográfica está rellena con una resina de intercambio iónico en su forma de calcio. La columna mide 0,75 m y la velocidad superficial es de 15 cm/min. A la columna se le alimenta una disolución de glucosa de 75 g/L, después de 2 min la concentración cambia a 100 g/L de glucosa. Encuentre el perfil de concentración de salida (idealizado) de la columna. Datos adicionales ԑ_p = 0, ԑ_e = 0,4, qGq_G/(g/L) = 0,51 cGc_G/(g/L)

html('<h2>Solución</h2>') cA = var('cA') L = 75 # cm t0 = 0 # min c0 = 0 # mol/L t1 = 0 c1 = 75 # g/L t2 = 2 # min c2 = 100 # g/L u_s = 15.0 # cm/min # Datos adicionales eps_e = 0.4 eps_p = 0 Kd = 1 rho_f = 1 # kg/L *** rho_p = 1 # kg/L *** qA(cA) = 0.51*cA print("Usando modelo para onda de choque") DqDc (c_antes, c_desp) = (qA(cA = c_desp)-qA(cA = c_antes))/(c_desp-c_antes) rho_S = (rho_p - eps_p*rho_f)/(1-eps_p) u_inter = u_s / eps_e uA(c_antes,c_desp) = u_inter/(1 + (1-eps_e)/eps_e * eps_p * Kd + (1-eps_e)*(1-eps_p)/eps_e * rho_S * DqDc(c_antes,c_desp)) u_sh1 = uA(c0, c1) u_sh2 = uA(c1, c2) t_s1 = t1 + L/u_sh1 t_s2 = t2 + L/u_sh2 line([(t0, c0),(t1,c0),(t1,c1),(t2,c1),(t2,c2),(t_s2,c2)], xmax = t_s2+2, axes_labels=['$t$/min','$c_F$/(g/L)']) show ("$u_{sh1} = $", numerical_approx(u_sh1, digits=4), " cm/min; $u_{sh2} = $", numerical_approx(u_sh2, digits=4), " cm/min") if(t_s1 <= t_s2): show("Las ondas de choque no coinciden") gr_onda1 = line([(t0,0),(t1,0),(t_s1, L)], legend_label='Onda de choque 1') gr_onda2 = line([(t0,0),(t2,0),(t_s2, L)], legend_label='Onda de choque 2', axes_labels=['$t$/min','$L$/cm'], color = 'green', xmax = t_s2+2,) gr_perfil = line([(t0,c0),(t_s1,c0),(t_s1,c1)]) + line([(t_s1,c1),(t_s2,c1),(t_s2,c2),(t_s2+2,c2)], axes_labels=['$t$/min','$c_{sale}$/(g/L)']) show(gr_onda1+gr_onda2) show ("$t_{esc1} = $", numerical_approx(t_s1, digits=3), " min; $t_{esc2} = $", numerical_approx(t_s2, digits=3), " min") else: show("Las ondas de choque coinciden y se genera una tercera") t_inter = t2*u_sh2/(u_sh2-u_sh1) z_inter = u_sh1*t_inter u_sh3 = uA(c0, c2) show ("$u_{sh3} = $", numerical_approx(u_sh3, digits=4), " cm/min; $t_{inter} = $", numerical_approx(t_inter, digits=4), " min; $z_{inter} = $", numerical_approx(z_inter, digits=4), " cm") t_s3 = t_inter+(L-z_inter)/u_sh3 gr_onda1 = line([(t0,0),(t1,0),(t_inter, z_inter)], legend_label='Onda de choque 1') gr_onda2 = line([(t0,0),(t2,0),(t_inter, z_inter)], legend_label='Onda de choque 2', color = 'green') gr_onda3 = line([(t_inter,z_inter),(t_s3, L)], legend_label='Onda de choque 3', color = 'red', axes_labels=['$t$/min','$L$/cm'], xmax = t_s3+2) gr_perfil = line([(t0,c0),(t_s3,c0),(t_s3,c1),(t_s3+2,c1)], axes_labels=['$t$/min','$c_{sale}$/(g/L)']) show(gr_onda1+gr_onda2+gr_onda3) show(gr_perfil)

Solución

Usando modelo para onda de choque
ush1=u_{sh1} = 21.25\displaystyle 21.25 cm/min; ush2=u_{sh2} = 21.25\displaystyle 21.25 cm/min
Las ondas de choque no coinciden
tesc1=t_{esc1} = 3.53\displaystyle 3.53 min; tesc2=t_{esc2} = 5.53\displaystyle 5.53 min

Problema 2

Referencia: Problema 17-D12 Wankat

Una columna rellena con carbón activado se usa para adsorber acetona de agua a 25 °C. Se puede aproximar la isoterma de Langmuir: q=0.190c1+0.146cq = \frac{0.190 c}{1 + 0.146 c}, estando qq en mol/kg y cc en mol/m³. Las propiedades del lecho son: Kd=1.0K_d = 1.0, ρs\rho_s = 1820 kg/m³, εe=0.434ε_e = 0.434 y εp=0.57ε_p = 0.57. El lecho tiene 0.50 m de longitud y su diámetro interno es 0.08 m. La tasa de flujo es 0.32 L/min.

  1. Si al principio el lecho está limpio (c=q=0c=q=0), determine la curva de concentración a la salida en función del tiempo si se alimenta una corriente que contiene acetona con concentración de 50 mol/m³ en el momento t=0t=0.
  2. Si al principio el lecho está saturado con un líquido que contiene acetona a una concentración de 50 mol/m³, calcule el perfil de concentración a la salida, cuando el lecho se eluye con agua pura (c=0c=0) a partir de t=0t=0. Calcule los tiempos de salida para concentraciones de [50, 40, 30, 15, 5, 0] mol/m³. Trace la curva de concentración a la salida en función del tiempo.

Nota: Puede trabajar tanto en unidades de masa como de cantidad de sustancia.

cA = var('cA') q(cA) = 0.190*cA/(1+0.146*cA) K_d = 1.0 rho_S = 1820 # kg/m³ eps_e = 0.434 eps_p = 0.57 L_bed = 0.50 # m D_bed = 0.08 # m Q_F = 0.32/1000 # m³/min print("Parte a - Onda de choque") t0 = -100 # min c0 = 0 t1 = 0 # min c1 = 50 # mol/m³ A_bed = pi()/4*D_bed^2 # m² u_s = Q_F / A_bed # m/min u_inter = u_s / eps_e # m/min print("Área del lecho = %.4g m²" %A_bed) print("Velocidad superficial = %.4g m/min" %u_s) print("Velocidad intersticial = %.4g m/min" %u_inter) DqDc (c_antes, c_desp) = (qA(c_desp)-qA(c_antes))/(c_desp-c_antes) uA(c_antes,c_desp) = u_inter/(1 + (1-eps_e)/eps_e * eps_p * K_d + (1-eps_e)*(1-eps_p)/eps_e * rho_S * DqDc(c_antes,c_desp)) u_sh1 = uA(c0, c1) t_s1 = t1 + L_bed/u_sh1 t_max = t_s1+500 show ("$u_{sh1} = $", numerical_approx(u_sh1, digits=4), " m/min") line([(t0, c0),(t1,c0),(t1,c1),(t_s1,c1),(t_max,c1)], xmax=t_max, axes_labels=['$t$/min','$c_F$/(mol/L)']) line([(t0,0),(t1,0),(t_s1, L),(t_max, L)], xmax=t_max, axes_labels=['$t$/min','$L$/(m)']) line([(t0,c0),(t_s1,c0),(t_s1,c1),(t_max,c1)], xmax=t_max, axes_labels=['$t$/min','$c_{sale}$/(mol/L)']) print("Parte b - Onda difusa") t0 = -100 # min c0 = 50 t1 = 0 # min c1 = 0 # mol/m³ conc = [50, 40, 30, 15, 5, 0] # mol/m³. u_A(cA) = u_inter/(1 + (1-eps_e)/eps_e * eps_p * K_d + (1-eps_e)*(1-eps_p)/eps_e * rho_S * derivative(q)) t_esc = [numerical_approx(L_bed/u_A(c), digits=4) for c in conc] print("Tiempos de salida en minutos:", t_esc) t_max = t_esc[5] lista_tc = list(zip(t_esc,conc)) lista_tc.insert(0,(t0,c0)) line([(t0, c0),(t1,c0),(t1,c1),(t_s1,c1),(t_max,c1)], xmax=t_max, axes_labels=['$t$/min','$c_F$/(mol/L)']) line(lista_tc, xmax=t_max, axes_labels=['$t$/min','$c_{sale}$/(mol/L)']) # ********** Final del código **********
Parte a - Onda de choque Área del lecho = 0.005027 m² Velocidad superficial = 0.06366 m/min Velocidad intersticial = 0.1467 m/min
ush1=u_{sh1} = 0.0002809\displaystyle 0.0002809 m/min
Parte b - Onda difusa Tiempos de salida en minutos: [15.54, 20.07, 28.78, 70.90, 226.8, 666.9]
# **************** NUEVO ****************** html('<h2>Solución</h2>') cA = var('cA') # F = Dar flujo y área transversal, con ello calcular u_S F = 0.30/1000 # m³/min Dc = 6/100 # m Ac = pi/4*Dc^2 Hc = 80 # cm t0 = 0 # min c0 = 0 # mol/L t1 = 5 # min inicio alimentación c1 c1 = 0.01 # mol/L t2 = t1+10 # min inicio alimentación c2 c2 = 0.015 # mol/L t3 = t2+15 # min inicio alimentación c3 c3 = 0 # mol/L t4 = t3+60 # min final operación u_s = F/Ac*100 # cm/min print("u_s = %.3g cm/min"%u_s) # Datos adicionales eps_e = 0.4 eps_p = 0.1 Kd = 1.0 #rho_S = 1.465 # kg/L qA(cA) = 20*cA/(1+350*cA) rho_f = 0.78 rho_b = 1.2 rho_p = (rho_b - eps_e*rho_f)/(1-eps_e) rho_S = (rho_p - eps_p*rho_f)/(1-eps_p) print("Densidad de la partícula, rho_p = %.3g kg/L"%rho_p) print("Densidad del sólido, rho_S = %.3g kg/L"%rho_S) # Perfil alimentación line([(t0, c0),(t1,c0),(t1,c1),(t2,c1),(t2,c2),(t3,c2),(t3,c3),(t4,c3)], xmin = t0, axes_labels=['$t$/min','$c_F$/(g/L)']) print("Usando modelo para onda de choque") DqDc (c_antes, c_desp) = (qA(cA = c_desp)-qA(cA = c_antes))/(c_desp-c_antes) u_inter = u_s / eps_e uA_sh(c_antes,c_desp) = u_inter/(1 + (1-eps_e)/eps_e * eps_p * Kd + (1-eps_e)*(1-eps_p)/eps_e * rho_S * DqDc(c_antes,c_desp)) #uA_sh(c_antes,c_desp) = u_inter/(1 + (1-eps_e)/eps_e * rho_p * DqDc(c_antes,c_desp)) u_sh1 = uA_sh(c0, c1) u_sh2 = uA_sh(c1, c2) t_s1 = t1 + Hc/u_sh1 t_s2 = t2 + Hc/u_sh2 t_s3 = 0 print("Tiempo que tardaría en recorrer Hc onda de choque 1, Delta t_sh1 = %.3g min" %(Hc/u_sh1)) print("Tiempo que tardaría en recorrer Hc onda de choque 2, Delta t_sh2 = %.3g min" %(Hc/u_sh2)) print("Momento en que saldría onda de choque 1, t_sh1 = %.3g min" %(t_s1)) print("Momento en que saldría onda de choque 2, t_sh2 = %.3g min" %(t_s2)) [t_s1, t_s2, t_s3] show ("$u_{sh1} = $", numerical_approx(u_sh1, digits=4), " cm/min; $u_{sh2} = $", numerical_approx(u_sh2, digits=4), " cm/min") if(t_s1 <= t_s2): show("Las ondas de choque no coinciden") gr_onda1 = line([(t0,0),(t1,0),(t_s1, Hc)], legend_label='Onda de choque 1') gr_onda2 = line([(t0,0),(t2,0),(t_s2, Hc)], legend_label='Onda de choque 2', axes_labels=['$t$/min','$L$/cm'], color = 'green', xmax = t_s2+2,) gr_perfil = line([(t0,c0),(t_s1,c0),(t_s1,c1)]) + line([(t_s1,c1),(t_s2,c1),(t_s2,c2),(t_s2+2,c2)], axes_labels=['$t$/min','$c_{sale}$/(g/L)']) show(gr_onda1+gr_onda2) show ("$t_{esc1} = $", numerical_approx(t_s1, digits=3), " min; $t_{esc2} = $", numerical_approx(t_s2, digits=3), " min") else: show("Las ondas de choque coinciden y se genera una tercera") t_inter = t1+(t2-t1)*u_sh2/(u_sh2-u_sh1) z_inter = u_sh1*(t_inter-t1) u_sh3 = uA_sh(c0, c2) show ("$u_{sh3} = $", numerical_approx(u_sh3, digits=4), " cm/min; $t_{inter} = $", numerical_approx(t_inter, digits=4), " min; $z_{inter} = $", numerical_approx(z_inter, digits=4), " cm") t_s3 = t_inter+(Hc-z_inter)/u_sh3 gr_onda1 = line([(t0,0),(t1,0),(t_inter, z_inter)], legend_label='Onda de choque 1') gr_onda2 = line([(t0,0),(t2,0),(t_inter, z_inter)], legend_label='Onda de choque 2', color = 'green') gr_onda3 = line([(t_inter,z_inter),(t_s3, Hc)], legend_label='Onda de choque 3', color = 'red', axes_labels=['$t$/min','$L$/cm'], xmax = t_s3+2) gr_perfil = line([(t0,c0),(t_s3,c0),(t_s3,c2)], axes_labels=['$t$/min','$c_{sale}$/(g/L)']) show(gr_onda1+gr_onda2+gr_onda3) print("Tiempo salida onda de choque 3 = %.3g min"%t_s3) # Onda difusa print("Onda difusa") conc = [c2+i*(c3-c2)/9 for i in range(10)] # mol/m³. u_A(cA) = u_inter/(1 + (1-eps_e)/eps_e * eps_p * Kd + (1-eps_e)*(1-eps_p)/eps_e * rho_S * derivative(qA)) #u_A(cA) = u_inter/(1 + (1-eps_e)/eps_e * rho_p * derivative(qA)) t_esc = [t3+numerical_approx(Hc/u_A(c), digits=4) for c in conc] print("Tiempos de salida en minutos:", t_esc) t_max = t_esc[5] lista_tc = list(zip(t_esc,conc)) lista_tc.insert(0,(max(t_s2,t_s3),c2)) #line([(t0, c0),(t1,c0),(t1,c1),(t_s1,c1),(t_max,c1)], xmax=t_max, axes_labels=['$t$/min','$c_F$/(mol/L)']) gr_perfil + line(lista_tc, xmax = t4)

Solución

u_s = 10.6 cm/min Densidad de la partícula, rho_p = 1.48 kg/L Densidad del sólido, rho_S = 1.56 kg/L
Usando modelo para onda de choque Tiempo que tardaría en recorrer Hc onda de choque 1, Delta t_sh1 = 31.7 min Tiempo que tardaría en recorrer Hc onda de choque 2, Delta t_sh2 = 7.98 min Momento en que saldría onda de choque 1, t_sh1 = 36.7 min Momento en que saldría onda de choque 2, t_sh2 = 23 min [10.0768000000000*pi + 5, 2.53964800000000*pi + 15, 0]
ush1=u_{sh1} = 2.527\displaystyle 2.527 cm/min; ush2=u_{sh2} = 10.03\displaystyle 10.03 cm/min
Las ondas de choque coinciden y se genera una tercera
ush3=u_{sh3} = 3.366\displaystyle 3.366 cm/min; tinter=t_{inter} = 18.37\displaystyle 18.37 min; zinter=z_{inter} = 33.79\displaystyle 33.79 cm
Tiempo salida onda de choque 3 = 32.1 min Onda difusa Tiempos de salida en minutos: [36.72, 37.42, 38.38, 39.73, 41.74, 44.88, 50.24, 60.49, 84.07, 160.3]