⚖️
Balances de Materia en Ingeniería de Procesos
Laboratorio de Industrias · 7° TQ · EEST N°1 "Gral. Savio" Saladillo
🎮 Simuladores → 🧮 Calculadora →

Balances de Materia

Procesos no reactivos · Estado estacionario · Felder & Rousseau (2004) · Himmelblau (1997)

Felder & Rousseau (2004)
Himmelblau (1997)
Python para verificación
3 ejemplos integrados

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.
COR-A · N₂ 280 kg/h = 10 kmol/h COR-B · H₂ 30 kmol/h (calculado) MIX 101 COR-C · MEZCLA SALIDA 40 kmol/h · y_N₂=0.25 · y_H₂=0.75
✍️ 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/h
y_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.
F = 32 kg/h xB=0.125 T-101 T = 28 kg/h 100% A M = 35 kg/h xB=0.286 D = ? kg/h xB=0.614 E = ? kg/h xA=0.534
✍️ 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/h
x_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.
A — Húmedo A = 2200 lb (calculado) DRY-101 🔥 Pérd. 59.1% B = 1300 lb vapor Producto seco 900 lb · hum. 7%
✍️ 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 ✓

Referencias bibliográficas

[1] Felder, R. M. & Rousseau, R. W. (2004). Principios elementales de los procesos químicos (3.ª ed.). Limusa Wiley. — Referencia principal, Caps. 3-4.
[2] Himmelblau, D. M. (1997). Principios básicos y cálculos en ingeniería química (6.ª ed.). Prentice-Hall Hispanoamericana. — Material complementario.
[3] Repositorio GitHub: lemeit/bm — Código fuente de los simuladores y esta guía. Licencia: MIT. Acceso libre.