CoCalc Public FilesTercer parcial / Ejemplo membranas.sagewsOpen with one click!
Authors: Esteban Richmond-Salazar, Erick Solano
Views : 59
Description: Ejemplo de permeación de gases
Compute Environment: Ubuntu 18.04 (Deprecated)
# Se está probando a nivel de planta piloto un sistema de separación de aire (21 % O2, 79 % N2) mediante permeación gaseosa perfectamente mezclada. Las pruebas iniciales se han realizado a una presión de 1013 kPa. El aire se alimenta a un flujo de 10 000 cm³/s en condiciones estándar, el área total de las membranas es de 10 m2, para el material utilizado la permeabilidad del oxígeno es de 150 000 barrer/cm y la del nitrógeno de 45 000 barrer/cm. La caída de presión del lado de alta presión es de un 10 % con respecto a la alimentación (PR = 90 % PF), mientras que en el permeado la presión es de 98 kPa. Todas las presiones son absolutas. # Determine: # a) La composición y flujo del permeado que se obtiene con las condiciones actuales con el modelo de mezcla perfecta. # b) Si se desea una concentración de oxígeno en la corriente de permeado de por lo menos 35 %, hasta qué presión ha de llevarse la alimentación para alcanzar este grado de separación. Indique además los flujos de las corrientes de salida. # c) Calcule la parte (a) para el modelo de flujo cruzado. # ****** Datos del enunciado *********** F_F = 10000/(100)^3 # [m³/s] TPE y_F = [0.21, 0.79] A_m = 10 # [m²] P_F = 1013 # [kPa] P_R = 0.9 * P_F # [kPa] P_P = 98 # [kPa] barrer_cm = 10^(-10) * (1/1000 * 1/1000) *(1/1) *(100)^2 * (76/101.325) # [m³ m/(s m² kPa)] ; 1 barrer = 10^-10 (cm³ cm)/(s cm² cmHg) q = [150000*barrer_cm, 45000*barrer_cm] C = len(y_F) # Número de componentes # *** Modelo de flujo cruzado *** N_etapas = 500 # Número de etapas y_R = matrix (RR, C, N_etapas+1) y_P = matrix (RR, C, N_etapas+1) F_R = vector (RR, N_etapas+1) Delta_F_P = vector (RR, N_etapas+1) Delta_th = vector (RR, N_etapas+1) Delta_A = A_m/N_etapas # Fijo Delta A Delta_theta = var('Delta_theta') j = 0 F_R[0] = F_F for i in range(C): y_R[i,j] = y_F[i] for j in range(1, N_etapas+1): Delta_F_Pj = F_R[j-1] * Delta_theta # ΔfP_{j} = fR_{j-1} * Δθ_{j} Delta_F_R = Delta_F_Pj # ΔfR_{j} = ΔfP_{j} F_Rj = F_R[j-1] - Delta_F_R # fR_{j} = fR_{j-1} - ΔfR_{j} sum_yP(Delta_theta) = 0 # Inicializa la sumatora de yP_i for i in range(C): sum_yP(Delta_theta) = sum_yP + q[i]*y_R[i,j-1]*F_R[j-1]*P_R*Delta_A*(Delta_theta+1) / (F_Rj * (q[i]*P_P*Delta_A + q[i]*P_R*Delta_A*Delta_theta + Delta_F_Pj) + q[i]*P_R*Delta_A*Delta_F_Pj*(Delta_theta+1)) Delta_th[j] = find_root(sum_yP == 1, 1E-10, 0.999) # Encuentra el valor de Δθ para la etapa Delta_F_P[j] = F_R[j-1] * Delta_th[j] # ΔfP_{j} = fR_{j-1} * Δθ_{j} Delta_F_R = Delta_F_P[j] # ΔfR_{j} = ΔfP_{j} F_R[j] = F_R[j-1] - Delta_F_R # fR_{j} = fR_{j-1} - ΔfR_{j} for i in range(C): #y_P[i,j] = q[i]*y_R[i,j-1]*F_R[j-1]*P_R*Delta_A*(Delta_th[j]+1) / (F_R[j] * (q[i]*P_P*Delta_A + q[i]*P_R*Delta_A*Delta_th[j] + Delta_F_P[j]) + q[i]*P_R*Delta_A*Delta_F_P[j]*(Delta_th[j]+1)) y_P[i,j] = F_R[j-1]*P_R*q[i]*y_R[i,j-1]*Delta_A / (F_R[j]*(q[i]*Delta_A*(P_P*(1-Delta_th[j]) + P_R*Delta_th[j]) + (1-Delta_th[j])*Delta_F_P[j]) + P_R*q[i]*Delta_A*Delta_F_P[j]) y_R[i,j] = (F_R[j-1]*y_R[i,j-1]-Delta_F_P[j]*y_P[i,j])/F_R[j] theta = sum(Delta_th) F_P = F_F - F_R[N_etapas] yP = vector (RR, C) yR = vector (RR, C) for i in range(C): yP[i] = Delta_F_P.dot_product(y_P[i]) / F_P yR[i] = y_R[i, N_etapas] gr_yP0 = line(zip(range(N_etapas+1), y_P[0]), color='purple', legend_label = "O2 permeado", axes_labels=['Etapas','Fracc. molar']) gr_yP1 = line(zip(range(N_etapas+1), y_P[1]), color='red' , legend_label = "N2 permeado") graf_yP = gr_yP0 + gr_yP1 gr_yR0 = line(zip(range(N_etapas+1), y_R[0]), linestyle = '--', color ='blue' , legend_label = 'O2 retenido') gr_yR1 = line(zip(range(N_etapas+1), y_R[1]), linestyle = '--', color ='lightblue', legend_label = 'N2 retenido') graf_yR = gr_yR0 + gr_yR1 graf_y = graf_yP + graf_yR print "y_P(i) = ", [round(yP[i], 4) for i in range(C)] print "y_R(i) = ", [round(yR[i], 4) for i in range(C)] print "theta = ", round(theta, 4) graf_y # *************** Final del código ***************
y_P(i) = [0.4219, 0.5781] y_R(i) = [0.2014, 0.7986] theta = 0.0398