Balances de Materia
Procesos no reactivos · Estado estacionario · Felder & Rousseau (2004) · Himmelblau (1997)
Principios fundamentales
📐 Marco conceptual
Ley de conservación
La materia no se crea ni se destruye. En procesos no reactivos sin acumulación: Entrada = Salida
Sistema abierto
Permite transferencia de masa a través de la frontera (volumen de control). Caso general en ingeniería de procesos.
Estado estacionario
Las variables no cambian con el tiempo ⟹ Acumulación = 0 ⟹ ∑ entradas = ∑ salidas
Balance por componente
Se escribe una ecuación para cada especie química presente. La suma de fracciones másicas o molares = 1 es una ecuación adicional por corriente.
Grados de libertad
G.L. = Nº variables incógnita − Nº ecuaciones independientes. Para resolver el sistema se requiere G.L. = 0.
Metodología sistemática (Felder, Cap. 4)
1
Interpretar el problema
Identificar todos los datos explícitos e implícitos. Determinar las incógnitas del sistema. Establecer si el proceso es estacionario o transitorio, reactivo o no reactivo.
2
Dibujar el diagrama de flujo de proceso (PFD)
Representar todos los equipos, corrientes y sus composiciones conocidas. Etiquetar variables conocidas e incógnitas. El PFD es la base visual del análisis.
3
Elegir la base de cálculo
Seleccionar un tiempo (ej. 1 hora) o una cantidad de masa (ej. 100 kg de alimentación) como referencia. Simplifica el sistema algebraico.
4
Analizar grados de libertad
Contar variables desconocidas y ecuaciones independientes disponibles (balances globales, balances por componente, relaciones de composición, datos del problema).
5
Plantear y resolver las ecuaciones
Escribir el balance global y los balances por componente. Resolver el sistema algebraico por sustitución, eliminación o métodos matriciales (NumPy).
6
Verificar con un balance independiente
Sustituir los valores obtenidos en un balance no utilizado en la resolución. Si se satisface, el sistema es consistente. Reportar con unidades y cifras significativas correctas.
Ejemplos resueltos
EJEMPLO 3.1
Mezclador de gases N₂ + H₂
🧪 Mezclador
Enunciado: Una corriente de 280 kg/h de N₂ puro se mezcla con H₂ puro. La corriente de salida total es de 40 kgmol/h. Hallar el flujo de H₂ necesario y la composición molar de la mezcla resultante.
✍️ Solución manual — Base: 1 hora
Flujo N₂n_N₂ = 280 kg/h ÷ 28 kg/kmol = 10 kmol/h
Balance globaln_N₂ + n_H₂ = C → 10 + n_H₂ = 40 → n_H₂ = 30 kmol/h
y_H₂30 / 40 = 0.750
y_N₂10 / 40 = 0.250
Flujo H₂
30kmol/h
y_N₂
0.250
y_H₂
0.750
G.L.
0
PYTHON · Verificación
# Ejemplo 3.1 — Mezclador N₂ + H₂ (Felder §3.3) # Base de cálculo: 1 hora de operación PM_N2 = 28 # kg/kmol flujo_N2_kg = 280 # kg/h (dato) C_total = 40 # kmol/h (dato) # Balance molar de N₂ n_N2 = flujo_N2_kg / PM_N2 # = 10 kmol/h # Balance global → incógnita n_H₂ n_H2 = C_total - n_N2 # Composición molar yN2 = n_N2 / C_total yH2 = n_H2 / C_total print(f"n_N₂ = {n_N2:.3f} kmol/h") print(f"n_H₂ = {n_H2:.3f} kmol/h ← incógnita") print(f"y_N₂ = {yN2:.4f} | y_H₂ = {yH2:.4f}") print(f"Verificación suma: {yN2 + yH2:.4f} == 1.0")
✓ Resultado verificado
n_N₂ = 10.000 kmol/h | n_H₂ = 30.000 kmol/hy_N₂ = 0.2500 | y_H₂ = 0.7500 | Σ = 1.0000 ✓
EJEMPLO 3.2
Columna de destilación — 3 componentes
⚗️ Destilación
Datos: Alimentación F = 32 kg/h (x_B = 0.125, x_C = 0.875). Tope T = 28 kg/h (100% A). Lateral M = 35 kg/h (x_B = 0.286). Corriente de recirculación E (x_A = 0.534, x_B = 0.466). Fondo D (x_B = 0.614, x_C = 0.386).
Incógnitas: E, D, x_MA.
Incógnitas: E, D, x_MA.
✍️ Resolución algebraica matricial
Bal. globalF + E = T + M + D → E − D = T + M − F = 31
Bal. comp. BF·x_FB + E·x_EB = M·x_MB + D·x_DB → 0.466E − 0.614D = 6.01
Sistema[A][x] = [b] → det A ≠ 0 → solución única
E88 kg/h
D57 kg/h
x_MA0.543
E (reflujo)
88kg/h
D (fondo)
57kg/h
x_MA
0.543
G.L.
0
PYTHON · NumPy — Álgebra Matricial
import numpy as np # Ejemplo 3.2 — Columna de Destilación (Felder §3.5) # Datos del problema (todos en kg/h) F, T, M = 32, 28, 35 xF_B, xM_B = 0.125, 0.286 xE_A, xE_B = 0.534, 0.466 xD_B, xD_C = 0.614, 0.386 # Sistema de ecuaciones: A·[E, D] = b # Bal. global: E - D = T + M - F # Bal. comp. B: xE_B·E - xD_B·D = M·xM_B - F·xF_B A = np.array([[1, -1], [xE_B, -xD_B]]) b = np.array([T + M - F, M * xM_B - F * xF_B]) E, D = np.linalg.solve(A, b) # Composición de M (balance componente A) xM_A = (E * xE_A - T) / M xM_C = 1 - xM_B - xM_A print(f"E = {E:.2f} kg/h (reflujo)") print(f"D = {D:.2f} kg/h (fondo)") print(f"x_MA = {xM_A:.4f} x_MB = {xM_B:.4f} x_MC = {xM_C:.4f}") # Verificación — balance componente A bal_A = E * xE_A - (T + M * xM_A) print(f"Verificación bal. A: {bal_A:.4f} ≈ 0 ✓")
✓ Resultado verificado
E = 88.00 kg/h | D = 57.00 kg/hx_MA = 0.5430 | x_MB = 0.2860 | x_MC = 0.1710
Verificación bal. A: 0.0000 ≈ 0 ✓
EJEMPLO 3.3
Secado de pieles en secador rotatorio
🌡️ Secado
Planteamiento: Un secador rotatorio procesa pieles húmedas. El producto de salida tiene 900 lb con 7% de humedad en base húmeda. La pérdida de peso en el secador es del 59.1% respecto a la alimentación. Determinar: (a) alimentación inicial A, (b) agua extraída B, (c) % de agua eliminada.
✍️ Resolución — Base: sólido seco
Agua final900 × 0.07 = 63 lb
Piel seca900 − 63 = 837 lb (= base de cálculo)
Alimentación A837 / (1 − 0.591) = 2200 lb
Agua extraída B2200 × 0.591 = 1300 lb
% agua eliminada1300 / (2200 − 837) × 100 = 95.6%
Alimentación A
2200lb
Agua extraída B
1300lb
% eliminado
95.6%
Piel seca
837lb
PYTHON · Verificación
# Ejemplo 3.3 — Secado de Pieles (Felder §3.6) # Base de cálculo: piel seca (componente tie) peso_final = 900 # lb — dato hum_final = 0.07 # fracción base húmeda — dato perdida = 0.591 # fracción de pérdida de peso — dato # Composición del producto seco agua_final = peso_final * hum_final # 63 lb piel_seca = peso_final - agua_final # 837 lb (tie component) # La piel seca no se pierde: A × (1 - perdida) = piel_seca A = piel_seca / (1 - perdida) B = A * perdida # agua extraída en el secador agua_inicial = A - piel_seca porc_eliminado = B / agua_inicial * 100 relacion = B / piel_seca print(f"Alimentación A = {A:.1f} lb") print(f"Agua extraída B = {B:.1f} lb") print(f"% agua eliminada = {porc_eliminado:.1f}%") print(f"lb agua/lb piel = {relacion:.3f}") # Verificación: A = peso_final + B print(f"Verificación: {A:.1f} = {peso_final} + {B:.1f} → {abs(A - peso_final - B) < 0.1}")
✓ Resultado verificado
Alimentación A = 2200.0 lb | Agua extraída B = 1300.0 lb% agua eliminada = 95.6% | lb agua/lb piel = 1.554
Verificación: 2200.0 = 900 + 1300.0 → True ✓