Powered by CoCalc
print "Problema N° 1"
# Valor: 10 puntos
# Referencia: Problema 15.D6 Wankat (2008)
# ----------------------------------------
# Una columna de destilación trabaja a reflujo total, separando metanol y etanol.
# La volatilidad relativa promedio es 1,69. La operación es a 101,3 kPa.
# Se obtienen fracciones molares de metanol y_sale = 0,972 y y_entra = 0,016.
#
# a. Si hay 7,5 m de relleno, determine H_tOG promedio, para ello considere la siguiente expresión del N_tOG.
#     N_{tOG}= \frac{1}{1- \alpha } \ln \left( \frac{y_{entra}(1-y_{sale})}{y_{sale}(1-y_{entra})} \right)+ \ln \left( \frac{1-y_{entra}}{1-y_{sale}} \right)
# b. Compruebe los resultados de la parte a mediante el cálculo gráfico usando un diagrama de McCabe-Thiele.
#     N_{tOG}= \int_{y_{entra}}^{y_{sale}} \frac{1}{y^{*}-y} \,dy
#     Para generar la curva de equilibrio se emplea la ecuación: y^{*}= \frac{ \alpha x}{1+\left( \alpha -1\right)x}

%var x

# Datos del enunciado
alfa    = 1.69
p_t     = 101.3 # kPa
y_entra = 0.016
y_sale  = 0.972
h_c     = 7.5 # m

y_eq(x) = alfa*x/(1+(alfa-1)*x)
y(x) = x

print "Parte a)"

N_tOG = 1/(1-alfa) * ln((y_entra*(1-y_sale))/(y_sale*(1-y_entra)))+ln((1-y_entra)/(1-y_sale))
H_tOG = h_c / N_tOG

# Muestra el resultado formateado, lo que está entre símbolos de dólar se mostrará en formato matemático, para ello se escribe en LaTeX
show (r'$N_{tOG} = \frac{1}{1-\alpha } \ln \left ( \frac{y_{entra} ( 1-y_{sale} )} {y_{sale} (1-y_{entra} )} \right ) + \ln \left (\frac{1-y_{entra}}{1-y_{sale}} \right ) = %s$' %n(N_tOG, digits=4))
show (r'$H_{tOG} = h_c / N_{tOG} = %s$ m' %n(H_tOG, digits=3))

print "Parte b)"

plot(y_eq, x, 0, 1, thickness=2, axes_labels=['$x$','$y$'], title = 'Diagrama de McCabe-Thiele', fontsize=16) \
    + plot(y, x, 0, 1, color = 'black') \
    + line([(0, y_entra), (y_entra, y_entra)]) \
    + text('$y_{entra}$', (-0.05, y_entra), fontsize=16) \
    + line([(0, y_sale),(y_sale, y_sale)]) \
    + text('$y_{sale}$', (-0.05, y_sale), fontsize=16)

f = 1/(y_eq-y)
N_tOG = integral_numerical(f,y_entra, y_sale)[0]
H_tOG = h_c / N_tOG

plot(f, y_entra, y_sale, axes_labels=['$y$','$\\frac{1}{(y^*-y)}$'], fill = 'axis', fontsize=16) \
    + text('$y_{entra}$', (y_entra, -5), fontsize=16) \
    + text('$y_{sale}$', (y_sale, -5), fontsize=16) \
    + text('$N_{tOG} = %s$' %n(N_tOG, digits=4), (0.5,50), fontsize=16) \
    + text('$H_{tOG} = %s$ m' %n(H_tOG, digits=3), (0.5,40), fontsize=16)

integral_numerical(f,y_entra, y_sale)


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

Problema N° 1 Parte a)
NtOG=11αln(yentra(1ysale)ysale(1yentra))+ln(1yentra1ysale)=14.67N_{tOG} = \frac{1}{1-\alpha } \ln \left ( \frac{y_{entra} ( 1-y_{sale} )} {y_{sale} (1-y_{entra} )} \right ) + \ln \left (\frac{1-y_{entra}}{1-y_{sale}} \right ) = 14.67
HtOG=hc/NtOG=0.511H_{tOG} = h_c / N_{tOG} = 0.511 m
Parte b)
(14.669839458035776, 1.4712504881271106e-06)
print "Problema N° 2"
# Valor: 10 puntos
# Referencia: Problema 12.D8 Wankat (2008)
# ----------------------------------------
# Se van a procesar 10,9 kmol/h de una solución acuosa concentrada de amoniaco en una columna de arrastre. La alimentación contiene 0,90 kmol/h de amoniaco y 10 kmol/h de agua. Se desea que la corriente de agua a la salida contenga una fracción molar de amonico de 0,010. El gas de arrastre es aire puro, con una tasa de flujo de 9 kmol/h. La operación es a 40 °C y a 100,66 kPa. Suponga que el aire es insoluble, que el agua es no volátil y que el separador de arrastre es isotérmico.
#
# a. Calcule la cantidad de etapas de equilibrio necesarias, incluyendo la fracción.
# b. Calcule la tasa mínima de flujo de aire.

# Datos del enunciado
L_entra = 10.9 # kmol/h
L_NH3_entra = 0.90 # kmol/h
L_s = 10 # kmol/h
x_sale = 0.010
Y_entra = 0
G_s = 9 # kmol/h
t = 40 # °C
p_t = 100.66 # kPa
M_NH3 = 17
M_H2O = 18
M_aire = 29

# Datos de equilibrio
X_W = [0.40,  0.30, 0.25, 0.20, 0.15, 0.10, 0.075, 0.05, 0.04, 0.03, 0.025, 0.020, 0.016, 0.012, 0.0] # kg/kg, relación masa
p_A = [ 719,   454,  352,  260,  179,  110,  79.7,   51, 40.1, 29.6,  24.4,  19.3,  15.3,  11.5, 0.0] # mmHg

# Cálculo de relaciones mol
X_entra = L_NH3_entra/L_s
X_sale = x_sale/(1-x_sale)

# Conversión de datos de equilibrio a relaciones molares
Xeq = [X_W[i]*M_H2O/M_NH3 for i in range(len(X_W))]
Yeq = [p_A[i]/(p_t*760/101.325 - p_A[i]) for i in range(len(p_A))]

# Descarto los datos correspondientes a concentraciones mucho mayores a las de operación para ajustar mejor a un polinomio.
i = 0
n_i = 0
while i <= len(Xeq):
    if Xeq[i] <= X_entra:
        n_i=i-1
        i = len(Xeq)
    i += 1

datos_eq = zip([Xeq[i] for i in range(n_i, len(Xeq))],[Yeq[i] for i in range(n_i, len(Yeq))])

print "Ajuste de los datos de equilibrio"
print "---------------------------------"
# Se definen estas variables para ajustar a un polinomio de 3er grado
%var X, a1, a2, a3, m

modelo(X) = a1*X+a2*X^2+a3*X^3

ajuste = find_fit(datos_eq, modelo)
ajuste
Y_eq(X) = modelo(a1=ajuste[0].rhs(),a2=ajuste[1].rhs(),a3=ajuste[2].rhs())
show(r'$Y^* = %s$' %Y_eq(X))

print "Parte a): etapas de equilibrio"
print "------------------------------"

Y_op(X) = L_s/G_s*X - L_s/G_s*X_sale+Y_entra
Y_sale = Y_op(X_entra)

# Cálculo de las etapas ideales
XY_etapas = [(X_sale, Y_entra)]        # Primer punto de la escalera (X,Y)

forget()
Xi = X_sale
while Xi < X_entra:
    Yi = Y_eq(Xi)
    XY_etapas.append((Xi,Yi))         # Guarda el punto (X,Y*)
    Xi = solve(Y_op(X)==Y_eq(Xi), X, to_poly_solve = True)[0].rhs()
    XY_etapas.append((Xi,Yi))         # Guarda el punto (X,Y)

N_p = (len(XY_etapas)-3)/2 +(X_entra-XY_etapas[len(XY_etapas)-2][0])/(XY_etapas[len(XY_etapas)-1][0]-XY_etapas[len(XY_etapas)-2][0])

# Gráfica
plot (Y_eq, xmin=0, ymin=0, title = 'Relaciones mol', axes_labels = ['$X_{NH_3}$', '$Y_{NH_3}$'], legend_label='Curva de equilibrio', frame=True) \
    + plot(Y_op, (X_sale,X_entra), color='red', legend_label='Curva de operac.') \
    + scatter_plot(datos_eq, xmax = X_entra, ymax = Y_eq(X_entra)) \
    + line([(X_sale, 0), (X_sale, Y_entra), (0, Y_entra)], color='purple') \
    + line([(X_entra, 0), (X_entra, Y_eq(X_entra))], color='purple') \
    + line(XY_etapas, color='green', legend_label='Etapas') \
    + text (r'$N_p = $ %s' %N_p.n(digits=3),((X_entra+X_sale)/1.5,(Y_entra+Y_sale)/4))

print "Parte b): flujo mínimo de aire"
print "------------------------------"

assume(X>=X_sale); assume(X<=X_entra)                # Define los límites de X dónde buscar la relación limitante

Y_op_lim(m, X) = m*X - m*X_sale+Y_entra              # Línea de operación en términos de m = Ls/Gs
solve(Y_op_lim(m, X)==Y_eq(X), m)                    # Encuentra los valores de m donde se igualan las ecuaciones
m_lim = solve(Y_op_lim(m, X)==Y_eq(X), m)[0].rhs()   # Como hay varios puntos devuelve una función de X
forget()                                             # Elimina los límites de X puestos anteriormente

mX_lim = find_local_minimum(m_lim, X_sale, X_entra)  # Devuelve [m_mín, X(m_mín)]
Gs_min = numerical_approx(L_s/mX_lim[0], digits=3)

# Gráfica
plot (Y_eq, xmin=0, ymin=0, title = 'Flujo limitante', axes_labels = ['$X_{NH_3}$', '$Y_{NH_3}$'], legend_label='Curva de equilibrio', frame=True) \
    + plot(Y_op_lim(mX_lim[0], X), (X_sale,X_entra), color='red', legend_label='Curva de operac. limitante') \
    + scatter_plot(datos_eq, xmax = X_entra, ymax = Y_eq(X_entra)) \
    + line([(X_sale, 0), (X_sale, Y_entra), (0, Y_entra)], color='purple') \
    + line([(X_entra, 0), (X_entra, Y_eq(X_entra))], color='purple') \
    + text (r'$L_{s}/G_{s,min} = $ %s' %n(mX_lim[0], digits=3),((X_entra+X_sale)/1.5,(Y_entra+Y_sale)/1.5)) \
    + text (r'$G_{s,min} = $ %s kmol/h' %Gs_min,((X_entra+X_sale)/1.5,(Y_entra+Y_sale)/2))


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

Problema N° 2 Ajuste de los datos de equilibrio --------------------------------- [a1 == 1.1622481266398468, a2 == 3.584023125602682, a3 == 6.155802797375869]
Y=6.155802797375869X3+3.584023125602682X2+1.1622481266398468XY^* = 6.155802797375869*X^3 + 3.584023125602682*X^2 + 1.1622481266398468*X
Parte a): etapas de equilibrio ------------------------------
Parte b): flujo mínimo de aire ------------------------------ [m == 11/180948813492613392610*(10024966910517068438455*X^3 + 5836722588971025848730*X^2 + 1892766775495436291178*X)/(99*X - 1)]
print "Problema N° 3"
# Valor: 10 puntos
# Referencia: Problema 10.6-6 Geankoplis (1999)
#
# Una corriente de gas contiene 4,0 % de NH3 (fracción molar) y su contenido de amoniaco se reduce a 0,5 % en una torre de absorción rellena que opera a 293 K y 1,013*10⁵ Pa. El flujo de agua pura de entrada es de 68,0 kmol/h y el flujo total de gas de entrada es de 57,8 kmol/h. El diámetro de la torre es 0,747 m. Los coeficientes de transferencia de masa de película son F_G a = 0,0739 kmol/(s m³) y F_L a = 0,169 kmol/(s m³). Determine lo siguiente por método gráfico:
#
#  a. Calcule la altura de la torre usando k'ya (FGa).
#  b. Calcule la altura de la torre usando K'ya (FOGa).

y_entra = 0.04
y_sale = 0.005
T = 293 # K
p_t = 1.013*10^5 # Pa
L_s = 68.0 # kmol/h
x_entra = 0
G_entra = 57.8 # kmol/h
D_c = 0.747 # m
FGa = 0.0739 # kmol/(s m³)
FLa = 0.169 # kmol/(s m³)

# Datos de equilibrio
datos_x_eq = [0,   0.0208, 0.0258, 0.0309, 0.0405, 0.0503, 0.0737, 0.096, 0.137, 0.175, 0.210, 0.241, 0.297]
datos_p_NH3 = [0,   12,     15,     18.2,   24.9,   31.7,   50.0,   69.6,  114,   166,   227,   298 ,  470  ] # mmHg

# Conversión de presiones parciales a fracciones molares
datos_y_eq = [pA/(p_t*760/101325) for pA in datos_p_NH3]

# Datos de equilibrio en relaciones molares
datos_X_eq = [x/(1-x) for x in datos_x_eq]
datos_Y_eq = [pA/(p_t*760/101325-pA) for pA in datos_p_NH3]

Y_entra = y_entra/(1-y_entra)
Y_sale = y_sale/(1-y_sale)
X_entra = x_entra/(1-x_entra)

# Descarto los datos correspondientes a concentraciones mucho mayores a las de operación para ajustar mejor a un polinomio.
i = 0
n_i = len(datos_y_eq)
while i < len(datos_y_eq):
    if datos_y_eq[i] >= y_entra:
        n_i=i
        i = len(datos_y_eq)
    i += 1

Datos_eq = zip([datos_X_eq[i] for i in range(n_i+1)],[datos_Y_eq[i] for i in range(n_i+1)])
datos_eq = zip([datos_x_eq[i] for i in range(n_i+1)],[datos_y_eq[i] for i in range(n_i+1)])

# Ajuste de datos de equilibrio a polinomio de 3er grado
%var x, X, xI, yI, a0, a1, a2, a3
modelo(x) = a1*x + a2*x^2 + a3*x^3

ajuste = find_fit(datos_eq,modelo, solution_dict=True)
y_eq(x)=modelo(a1=ajuste[a1], a2=ajuste[a2], a3=ajuste[a3])

ajuste = find_fit(Datos_eq,modelo, solution_dict=True)
Y_eq(X)=modelo(a1=ajuste[a1], a2=ajuste[a2], a3=ajuste[a3])

# Área de la columna
A_c = pi/4 * D_c^2 # m²
show (r'$A_c = \frac{\pi}{4} D_c^2 = %s \text{ m}^2$' %(n(A_c, digits=4)))

# Balance de masa
G_s = G_entra*(1-y_entra)
G_sale = G_s*(1+Y_sale)
Y_op(X) = L_s/G_s * X -L_s/G_s * X_entra + Y_sale
y_op(x) = Y_op(x/(1-x))/(1+Y_op(x/(1-x)))

X_sale = numerical_approx(solve(Y_op(X)==Y_entra, X)[0].rhs())
x_sale = X_sale/(1+X_sale)

# ***** Gráfica en relaciones molares *****
plot(Y_op(X), xmin=X_entra, ymin=Y_sale, xmax=X_sale, ymax=Y_entra, legend_label='Curva de operac.', color = 'red') \
    + plot(Y_eq(X), xmin=0, ymin=0, xmax=datos_X_eq[n_i], ymax=datos_Y_eq[n_i], title = 'Relaciones mol', axes_labels = ['$X_{NH_3}$', '$Y_{NH_3}$'], legend_label='Curva de equilibrio') \
    + scatter_plot(Datos_eq, ymin=0)

# Cálculo de las composiciones en la interfase
x_BM(xI,xL) = ((1-xL)-(1-xI))/ln((1-xL)/(1-xI))
y_BM(yI,yG) = ((1-yG)-(1-yI))/ln((1-yG)/(1-yI))

kpxa(xI,xL) = FLa/x_BM(xI,xL)
kpya(yI,yG) = FGa/y_BM(yI,yG)

n_seg = 5         # Cantidad de segmentos para calcular Delta_y
Delta_y = (y_entra-y_sale)/n_seg
lista_y = [y_sale+Delta_y*i for i in range(n_seg+1)]
lista_x = [find_root(y_op == yop, x_entra, x_sale) for yop in lista_y]

lista_xI = []
lista_yI = []

# Para cada (x,y) calcula (xI,yI)
for i in range(n_seg+1):
    xop = lista_x[i]
    yop = lista_y[i]

    # Valor preliminar de xI, yI
    sol_I = solve([yI == -FLa/FGa * xI + FLa/FGa * xop + yop, yI == y_eq(xI)], xI,yI, solution_dict = True)
    xI0 = sol_I[0][xI]
    yI0 = sol_I[0][yI]

    # Itera para encontrar un mejor estimado de xI, yI
    err_x = 1
    err_y = 1
    tol = 1e-16
    it = 0

    while it < 10 and (err_x > tol or err_y > tol):
        it += 1
        sol_I = solve([yI == -kpxa(xI0,xop)/kpya(yI0,yop) * xI + kpxa(xI0,xop)/kpya(yI0,yop) * xop + yop, yI == y_eq(xI)], xI,yI, solution_dict = True)
        err_x = abs(xI0-sol_I[0][xI])
        err_y = abs(yI0-sol_I[0][yI])
        xI0 = sol_I[0][xI]
        yI0 = sol_I[0][yI]

    lista_xI.append(xI0)
    lista_yI.append(yI0)
    if(it==10): print "Excesivas iteraciones"

print "***** Parte (a), usando k'_y a *****"
# ***** Gráfica en fracciones molares *****
# Líneas que muestran pendiente -k'x/k'y
lxyI = line([(lista_x[0], lista_y[0]), (lista_xI[0], lista_yI[0])], color = 'gray')
for i in range(n_seg):
    lxyI = lxyI + line([(lista_x[i+1], lista_y[i+1]), (lista_xI[i+1], lista_yI[i+1])], color = 'gray')

show(plot(y_op(x), xmin=x_entra, ymin=y_sale, xmax=x_sale, ymax=y_entra, legend_label='Curva de operac.', color = 'red') \
    + plot(y_eq(x), xmin=0, ymin=0, xmax=datos_x_eq[n_i], ymax=datos_y_eq[n_i], title = 'Fracciones mol', axes_labels = ['$x_{NH_3}$', '$y_{NH_3}$'], legend_label='Curva de equilibrio') \
    + scatter_plot(datos_eq, ymin=0) \
    + lxyI )

f = [1/(lista_y[i]-lista_yI[i]) for i in range(n_seg+1)]
datos_f = zip(lista_y, f)

modelo(x) = a0+a1*x+a2*x^2+a3/x
ajuste = find_fit(datos_f,modelo, solution_dict=True)
f_int(x)=modelo(a0=ajuste[a0], a1=ajuste[a1], a2=ajuste[a2], a3=ajuste[a3])

integral_f = numerical_integral(f_int, y_sale, y_entra)
corr = 1/2*ln((1-y_sale)/(1-y_entra))
N_tG = integral_f[0]+corr

show(plot(f_int, xmin=y_sale, xmax=y_entra, axes_labels = ['$y_{NH_3}$', '$\\frac{1}{y_{NH_3}-y_{NH_3, I}}$'], fill = 'axis') \
    + scatter_plot(datos_f) )

show (r'$N_{tG} = \int_{y_{sale}}^{y_{entra}}{\frac{1}{y-y_I}} + \frac{1}{2} \ln{\frac{1-y_{entra}}{1-y_{sale}}} = %s + %s = %s$' %(n(integral_f[0], digits=4),n(corr, digits=2),n(N_tG, digits=4)))

H_tG = (G_entra/(3600*kpya(x_sale,lista_xI[n_seg])*A_c) + G_sale/(3600*kpya(x_entra,lista_xI[0])*A_c))/2 # m
h_c = H_tG * N_tG # m

show (r'$H_{tG,prom} = %s \text{ m}$' %(n(H_tG, digits=4)))
show (r'$h_{c} = H_{tG} N_{tG} = %s \text{ m}$' %(n(h_c, digits=3)))


print "***** Parte (b), usando K'_y a *****"
# ***** Gráfica en fracciones molares *****
# Líneas verticales
lxyI = line([(lista_x[0], lista_y[0]), (lista_x[0], y_eq(lista_x[0]))], color = 'gray')
for i in range(n_seg):
    lxyI = lxyI + line([(lista_x[i+1], lista_y[i+1]), (lista_x[i+1], y_eq(lista_x[i+1]))], color = 'gray')

show(plot(y_op(x), xmin=x_entra, ymin=y_sale, xmax=x_sale, ymax=y_entra, legend_label='Curva de operac.', color = 'red') \
    + plot(y_eq(x), xmin=0, ymin=0, xmax=datos_x_eq[n_i], ymax=datos_y_eq[n_i], title = 'Fracciones mol', axes_labels = ['$x_{NH_3}$', '$y_{NH_3}$'], legend_label='Curva de equilibrio') \
    + scatter_plot(datos_eq, ymin=0) \
    + lxyI )

f = [1/(lista_y[i]-y_eq(lista_x[i])) for i in range(n_seg+1)]
datos_f = zip(lista_y, f)

modelo(x) = a0+a1*x+a2*x^2+a3/x
ajuste = find_fit(datos_f,modelo, solution_dict=True)
f_int(x)=modelo(a0=ajuste[a0], a1=ajuste[a1], a2=ajuste[a2], a3=ajuste[a3])

integral_f = numerical_integral(f_int, y_sale, y_entra)
corr = 1/2*ln((1-y_sale)/(1-y_entra))
N_tOG = integral_f[0]+corr

show( plot(f_int, xmin=y_sale, xmax=y_entra, axes_labels = ['$y_{NH_3}$', '$\\frac{1}{y_{NH_3}-y_{NH_3}^*}$'], fill = 'axis') \
    + scatter_plot(datos_f))

show (r'$N_{tOG} = \int_{y_{sale}}^{y_{entra}}{\frac{1}{y-y^*}} + \frac{1}{2} \ln{\frac{1-y_{entra}}{1-y_{sale}}} = %s + %s = %s$' %(n(integral_f[0], digits=4),n(corr, digits=2),n(N_tOG, digits=4)))

x_tope = x_entra
x_fondo = x_sale
xI_tope = lista_xI[0]
xI_fondo = lista_xI[n_seg]
y_tope = y_sale
y_fondo = y_entra
yI_tope = lista_yI[0]
yI_fondo = lista_yI[n_seg]

# *** Verificar estos cálculos ***

m_tope = (yI_tope-y_eq(x_tope))/(xI_tope-x_tope)
m_fondo = (yI_fondo-y_eq(x_fondo))/(xI_fondo-x_fondo)

Kpya_tope = 1/(1/kpya(yI_tope,y_tope)+m_tope/kpxa(xI_tope,x_tope))
Kpya_fondo = 1/(1/kpya(yI_fondo,y_fondo)+m_fondo/kpxa(xI_fondo,x_fondo))

show (r'$m_{tope} = %s, {K^\prime_{y}a}_{tope} = %s$ kmol/(s m³)' %(n(m_tope, digits=4),n(Kpya_tope, digits=4)))
show (r'$m_{fondo} = %s, {K^\prime_{y}a}_{fondo} = %s$ kmol/(s m³)' %(n(m_fondo, digits=4),n(Kpya_fondo, digits=4)))

H_tOG = (G_entra/(3600*Kpya_fondo*A_c) + G_sale/(3600*Kpya_tope*A_c))/2 # m
h_c = H_tOG * N_tOG # m

show (r'$H_{tOG,prom} = %s \text{ m}$' %(n(H_tOG, digits=4)))
show (r'$h_{c} = H_{tOG} N_{tOG} = %s \text{ m}$' %(n(h_c, digits=3)))


# ********* Final del código *************
Problema N° 3
Ac=π4Dc2=0.4383 m2A_c = \frac{\pi}{4} D_c^2 = 0.4383 \text{ m}^2
***** Parte (a), usando k'_y a *****
NtG=ysaleyentra1yyI+12ln1yentra1ysale=4.497+0.018=4.515N_{tG} = \int_{y_{sale}}^{y_{entra}}{\frac{1}{y-y_I}} + \frac{1}{2} \ln{\frac{1-y_{entra}}{1-y_{sale}}} = 4.497 + 0.018 = 4.515
HtG,prom=0.4789 mH_{tG,prom} = 0.4789 \text{ m}
hc=HtGNtG=2.16 mh_{c} = H_{tG} N_{tG} = 2.16 \text{ m}
***** Parte (b), usando K'_y a *****
NtOG=ysaleyentra1yy+12ln1yentra1ysale=3.363+0.018=3.381N_{tOG} = \int_{y_{sale}}^{y_{entra}}{\frac{1}{y-y^*}} + \frac{1}{2} \ln{\frac{1-y_{entra}}{1-y_{sale}}} = 3.363 + 0.018 = 3.381
mtope=0.7007,Kyatope=0.05671m_{tope} = 0.7007, {K^\prime_{y}a}_{tope} = 0.05671 kmol/(s m³)
mfondo=0.8663,Kyafondo=0.05543m_{fondo} = 0.8663, {K^\prime_{y}a}_{fondo} = 0.05543 kmol/(s m³)
HtOG,prom=0.6421 mH_{tOG,prom} = 0.6421 \text{ m}
hc=HtOGNtOG=2.17 mh_{c} = H_{tOG} N_{tOG} = 2.17 \text{ m}