Introducción
Se presenta el caso general de una reacción de velocidad finita, y luego el caso de una reacción infinitamente rápida, para realzar las diferencias entre el primer caso y el segundo.
El caso de reacción instantánea se inspira en un problema propuesto por (Smith & Corripio, 1995).
Caso más común: La reacción no es instantánea
Generalmente, lo primero que el diseñador hace es buscar, o establecer experimentalmente la expresión cinética que gobierna la reacción que se va a llevar a cabo en el reactor.
En el caso de una reacción suficientemente rápida para que se pueda clasificar como “instantánea”, la expresión cinética no existe, o es irrelevante, porque el valor de la constante de reacción es “infinito”.
Lo anterior significa que, como “infinito” es un concepto, y no un número, no es posible construir ninguna expresión cinética como la siguiente, por ejemplo, que es la que se aplica en la mayoría de los casos.
Como en la ecuación precedente Ci es la concentración del reaccionante i expresada en masa por unidad de volumen (M/L3), k es una constante cinética, y n es el orden de reacción respecto del reaccionante Ci.
Para el caso de la forma cinética de la ecuación anterior, las unidades de k se pueden obtener despejando k de la ecuación anterior y substituyendo las unidades de las variables que quedan a la derecha del signo igual.
Cuando se despeja k, se obtiene la siguiente ecuación:
Si se escribe la ecuación anterior en función de las unidades de cada facto, se obtiene la siguiente expresión para la unidades de k.
Si reemplazamos estas unidades en la ecuación cinética, obtendremos lo siguiente.
También se sabe que a la expresión anterior debe añadírsele los flujos másicos de reaccionantes que ingresan al reactor, y el flujo másico que sale de éste y el flujo másico de la especie que desaparece por reacción.
Un ejemplo
Supóngase que se trata de formular los balances para una reacción que se represente mediante la siguiente estequiometria:
y que, en la ecuación anterior, a y b representan el número de moles de las especies A, B, que se requiere para formar c moles de C.
Si se acepta que lo expresado anteriormente ocurre, y que la reacción se lleva a cabo en un reactor perfectamente agitado las velocidades de reacción estarán relacionadas a los coeficientes estequiométricos (Wikipedia, 2018) de la siguiente forma.
La expresión anterior es útil porque permite expresar la velocidad de desaparición/aparición de cualquiera de las especies que toman parte en la reacción si se conoce la expresión cinética de una de ellas, que generalmente es la del producto.
Utilizando estos conceptos es posible formular balances diferenciales de masa para cada una de las especies químicas que intervienen en la reacción.
Si se acepta que FA denota el flujo volumétrico de la especie A, que FB denota el flujo volumétrico de B, y que FC denota el flujo volumétrico que sale del reactor (que de acuerdo al tiempo medio de residencia V/F y a la velocidad de reacción, que son dos parámetros que determinan la conversión puede contener A, B y C), se puede formular la siguiente ecuación para las especies que intervienen en la reacción, en función de la velocidad de formación de la especie C, que -para fines del ejemplo- se asume que puede representarse por medio de la expresión siguiente.
Las ecuaciones para las especies A, B, y C pueden formularse de la manera siguiente.
Las condiciones iniciales para las ecuaciones precedentes pueden ser las siguientes: hay dos opciones para el valor inicial de V que dependen de si la simulación comienza con el reactor lleno, o con el reactor vacío, significando con ello que no abarque el tiempo de llenado y el tiempo de estabilización del nivel de sus contenidos, o que sí lo haga.
@ t=0 CA=CAo, CB=CBo, CC=0, V=V, ó V=0
La ecuación restante es la que relaciona el volumen de reacción con el tiempo, y es la siguiente.
En la última ecuación dV/dt es diferente de cero sólo cuando el volumen inicial es cero, y/o cuando se produce una perturbación en FA, FB, o en ambos, lo que el analista hace para estudiar la velocidad de recuperación del reactor respecto de diferentes valores de la perturbación a parámetros de control constantes, o vice-versa.
Segundo Caso: La Reacción es instantánea
Si la reacción es instantánea entonces, como ya se ha dicho, no es posible formular ecuaciones cinéticas como las que se muestran en la sección anterior, y se debe asumir (por lo menos eso es lo que se ha hecho en este artículo) que las especies que intervienen en la reacción forman el producto instantáneamente, de acuerdo a la estequiometria de que se trate, o de acuerdo a proporciones empíricas preestablecidas.
La estequiometria
La estequiometria es muy sencilla y se puede encontrar en la literatura muy fácilmente. Se basa en que, para obtener nitrato de amonio se debe hacer reaccionar amoníaco en estado gaseoso con ácido nítrico, lo que -como es de imaginar- desprende una cantidad de energía considerable.
Otra manera de producir nitrato de amonio consiste en producir previamente una solución de amoníaco al 30% y hacer que ésta reaccione con una solución de ácido nítrico de 55%.
Este último camino es el que se ha utilizado en este artículo.
La estequiometria se resume en la siguiente tabla.

Ilustración 1. Cálculos estequiométricos
Breve explicación de la Ilustración 1
- Se parte de una estadística acerca del uso de fertilizantes químicos que estimaba que, en el año 2014, se requerían 105,000 toneladas métricas (TM) anuales (www.fao.org/faostat/en/#data/RF/visualize, s.f.) de fertilizantes químicos.
- Se estimó, para propósitos de construir el caso que, de la cantidad citada, se requerirían 96,000 TM/año de nitrato de amonio de 100%, que la instalación industrial trabajaría 8,000 horas/año, y que cada reactor produciría un décimo del total requerido, lo que implicaría 1,200 kg/h, que equivalen a 3.33 x 10-1 kg/s de nitrato de amonio.
- Como el reactor produce una solución de nitrato de amonio de 66.5% la cantidad producida por año es igual a (1,200+603.8)kg/h=14,430 TM/año.
- De esta última cantidad, como la tabla se construyó en Excel, se calcula mediante estequiometria simple las masas de 100% de amoniaco y ácido nítrico.
- Se calcula luego la masa de agua necesaria para reducir los reaccionantes a soluciones de 30%, y 55%, respectivamente.
- Se suman las cantidades de reactivo y las cantidades de agua obteniéndose la masa de nitrato de amonio de la que se partió, y la concentración porcentual de la solución en peso.
Conceptualización del programa
El programa simula la alimentación de las masas por segundo de las soluciones, a las concentraciones citadas, asumiéndose que la alimentación se convierte instantáneamente en la solución de nitrato de amonio ya mencionada en cuanto llega a la masa reaccionante contenida en el reactor perfectamente agitado, pero -al mismo tiempo- la solución acuosa del producto tiene la densidad de una solución de nitrato de amonio al 66.5%.
Los datos se presentan en kg/s, y los resultados del cálculo se presentan en m3/s. Estos flujos se obtienen de la división de las masas alimentadas para sus respectivas densidades, que -en cada caso- se obtuvieron de fuentes bibliográficas.
El flujo volumétrico de producto se obtiene (reacción instantánea) dividiendo las masas alimentadas para la densidad de la solución de nitrato de amonio, que no es igual a las densidades de las soluciones que se alimentan.
El programa tiene un valor de hset, que corresponde al nivel de operación del reactor, fijándose de esta manera el volumen del reactor, que puede cambiarse, y que -en la práctica- se maneja mediante una alarma de nivel alto (LAH), cuyo valor deseado, que puede ser cambiado por el operador, determina el nivel de la mezcla reaccionante en el reactor.
Para fines de correr el programa el nivel se fijó en 0.50 m, pero podría fijarse cualquier otro valor lo que tan solo implicaría cambiar el dato en la interface de usuario, que se presenta a continuación. En realidad el nivel de la mezcla reaccionante debe especificarse para estimar apropiadamente la potencia de agitación, así como el tipo y número de paletas de agitación, y de agitadores.

Ilustración 2. Interface de usuario del programa
La densidad de la solución de nitrato de amonio se obtuvo por extrapolación lineal y ajuste de la recta resultante, debido a que en la bibliografía sólo se presentan densidades hasta el 50% en peso, porque el nitrato de amonio en solución se comercializa en soluciones de 50%, como máximo.
El gráfico de extrapolación y ajuste se muestra a continuación.

Ilustración 3. Extrapolación y ajuste de los valores extrapolados de densidad de nitrato de amonio a diferentes concentraciones porcentuales
Resultados
Los resultados de la ejecución del programa se muestran a continuación, en forma de tabla, y en forma gráfica.

Ilustración 4. Resultados de la ejecución del programa

Ilustración 5. Gráfica de los resultados de la ejecución del programa

Ilustración 6. Resultados de la ejecución del programa: Se puede observar el nivel de operación
Control del Reactor
En el reactor se controlan los flujos mediante un controlador PID, y dos controladores PI. La subrutina que los maneja es general para un controlador PID.
Los controladores de alimentación son dos controladores que deberían haberse simulado como de proporción, pero que terminaron operando independientemente (cuestión de una línea extra de código, que no se añadió).
El programa de simulación
A continuación se muestra el código del programa.
Option Explicit
Dim F31, F32, Tiempo, Deltah As Variant
Dim DeltaFHNO3, TdFHNO3, DeltaFNH3, TdFNH3, DeltaFNH4NO3, TdFNH4NO3, DeltaF1, TdF1, DeltaF2, TdF2, DeltaF3, TdF3 As Variant
Dim Kc2, Ti2, F2set As Variant
Dim L, vH2O, Ds, CpR, Tempwo, RoH2O, U, DeltaHr, CpH2O, Taster As Variant
Dim Tiempo_Marcador As Boolean
Dim ffF, KcF, TiF, SumCorrF, Ffset, Ff, pF, FNH3set As Variant
Dim FHNO3set, FHNO3, KcHNO3, TiHNO3 As Variant
Dim siga, VR, hf, Constaprint, SumF3, SumFNH4NO3, FlujoMedioF3, FlujoMedioNH4NO3, RoNH4NO3 As Variant
Dim DeltaV, V, Fs, F, p, Corr, hRset, BD As Variant
Dim Pi, F1, F2, F3, Kv1, Kv2, Kv3, Deltap1, Deltap2, Deltap3, ff1, ff2, ff3, Ro1, Ro2, Ro3, T As Variant
Dim ffHNO3, ffNH3, ffNH4NO3, FNH3, FNH4NO3, FsetHNO3, FsetNH3, FNH4NO3set As Variant
Dim Fset, Kv, Kc, Ti, SumCorr, Deltap As Variant
Dim TiNH3, KcNH4NO3, TiNH4NO3, DeltaPHNO3, DeltaPNH3, DeltaPNH4NO3, KcNH3, RoHNO3, RoNO3, SumCorrHNO3, SumCorrNH3, SumCorrNH4NO3, SumCorr1, SumCorr2, SumCorr3 As Variant
Dim Deltat, Tmax, DR, hR, hR_Fisica As Variant
Dim KvHNO3, KvNH3, KvNH4NO3, Deltaprint, RoNH3, Fila As Variant
Sub Nirato_de_Amonio2()
‘Ingreso de variables y parámetros
KvHNO3 = Worksheets(“Hoja2”).Cells(2, 3)
KvNH3 = Worksheets(“Hoja2”).Cells(3, 3)
KvNH4NO3 = Worksheets(“Hoja2”).Cells(4, 3)
L = Worksheets(“Hoja2”).Cells(8, 3)
Ds = Worksheets(“Hoja2”).Cells(9, 3)
CpR = Worksheets(“Hoja2”).Cells(10, 3)
Tempwo = Worksheets(“Hoja2”).Cells(11, 3)
vH2O = Worksheets(“Hoja2”).Cells(12, 3)
RoH2O = Worksheets(“Hoja2”).Cells(13, 3)
DeltaPHNO3 = Worksheets(“Hoja2”).Cells(14, 3)
DeltaPNH3 = Worksheets(“Hoja2”).Cells(15, 3)
CpH2O = Worksheets(“Hoja2”).Cells(17, 3)
U = Worksheets(“Hoja2”).Cells(18, 3)
DeltaHr = Worksheets(“Hoja2”).Cells(19, 3)
RoHNO3 = Worksheets(“Hoja2”).Cells(20, 3)
RoNH3 = Worksheets(“Hoja2”).Cells(21, 3)
RoNH4NO3 = Worksheets(“Hoja2”).Cells(22, 3)
DR = Worksheets(“Hoja2”).Cells(23, 3)
hR_Fisica = Worksheets(“Hoja2”).Cells(24, 3)
DeltaPNH4NO3 = Worksheets(“Hoja2”).Cells(27, 3)
hR = Worksheets(“Hoja2”).Cells(28, 3)
DR = Worksheets(“Hoja2”).Cells(29, 3)
ffHNO3 = Worksheets(“Hoja2”).Cells(33, 3)
ffNH3 = Worksheets(“Hoja2”).Cells(34, 3)
hRset = Worksheets(“Hoja2”).Cells(36, 3)
BD = Worksheets(“Hoja2”).Cells(37, 3)
Deltat = Worksheets(“Hoja2”).Cells(40, 3)
Tmax = Worksheets(“Hoja2”).Cells(41, 3)
Deltaprint = Worksheets(“Hoja2”).Cells(42, 3)
Constaprint = Worksheets(“Hoja2”).Cells(43, 3)
FHNO3set = Worksheets(“Hoja2”).Cells(44, 3)
KcHNO3 = Worksheets(“Hoja2”).Cells(45, 3)
TiHNO3 = Worksheets(“Hoja2”).Cells(46, 3)
KcNH3 = Worksheets(“Hoja2”).Cells(47, 3)
TiNH3 = Worksheets(“Hoja2”).Cells(48, 3)
FNH3set = Worksheets(“Hoja2”).Cells(49, 3)
KcNH4NO3 = Worksheets(“Hoja2”).Cells(50, 3)
TiNH4NO3 = Worksheets(“Hoja2”).Cells(51, 3)
TdFNH4NO3 = Worksheets(“Hoja2”).Cells(52, 3)
FNH4NO3set = Worksheets(“Hoja2”).Cells(53, 3)
Pi = 3.14159
SumCorrHNO3 = 0: SumCorrNH3 = 0: SumCorrNH4NO3 = 0
FlujoMedioNH4NO3 = 0: DeltaFHNO3 = 0: TdFHNO3 = 0: DeltaFNH3 = 0: TdFNH3 = 0: DeltaFNH4NO3 = 0
‘========================================
‘Limpieza
Worksheets(“Hoja3”).Range(“a1:j17”).Clear
Worksheets(“Hoja3”).Cells(1, 2) = “KcNH4NO3= ” & KcNH4NO3 & ” TiNH4NO3= ” & TiNH4NO3 & ” TdFNH4NO3= ” & TdFNH4NO3 & ” KvNH4NO3 = ” & KvNH4NO3 & “DeltaPNH4NO3= ” & DeltaPNH4NO3
Worksheets(“Hoja3”).Range(“A3:j15”).HorizontalAlignment = xlCenter
Call Recuadro
‘Limpieza2
Worksheets(“Hoja3”).Range(“a15:j17”).Clear
Fila = 3
Call Titulos(Fila)
ffHNO3 = 0#: ffNH3 = 0: ffNH4NO3 = 0: hR = 0: siga = 1: _
VR = 0: SumCorr = 0: Pi = 3.14159: SumFNH4NO3 = 0: Tiempo_Marcador = True
‘************************************************
For T = 0 To Tmax Step Deltat
If T = 0 Then
FHNO3 = 0: FNH3 = 0: FNH4NO3 = 0
Call Resultados(T, hR, FHNO3, FNH3, _
FNH4NO3, ffHNO3, ffNH3, ffNH4NO3, RoHNO3, RoNH3, RoNH4NO3)
GoTo Fin
End If
Call Balance_de_Masa2(ffHNO3, ffNH3, ffNH4NO3, RoHNO3, RoNH3, RoNH4NO3, Deltat _
, DeltaPHNO3, DeltaPNH3, DeltaPNH4NO3, KvHNO3, KvNH3, KvNH4NO3, hR, _
DR, FHNO3, FNH3, FNH4NO3, hRset, BD, siga, VR, hR_Fisica, Kc, Ti, SumCorr, _
Pi, FlujoMedioNH4NO3, SumFNH4NO3, T, Taster, FHNO3set, KcHNO3, TiHNO3, SumCorrHNO3, KcNH3, TiNH3, SumCorrNH3, FNH3set _
, KcNH4NO3, TiNH4NO3, SumCorrNH4NO3, FNH4NO3set, DeltaFHNO3, TdFHNO3, DeltaFNH3, TdFNH3, DeltaFNH4NO3, TdFNH4NO3)
If (hR >= hRset) And (Tiempo_Marcador = True) Then
Taster = T
Tiempo_Marcador = False
ElseIf hR >= hR_Fisica Then
End
End If
If T >= Deltaprint Then
Call Resultados(T, hR, FHNO3, FNH3, _
FNH4NO3, ffHNO3, ffNH3, ffNH4NO3, RoHNO3, RoNH3, RoNH4NO3)
Deltaprint = Deltaprint + Constaprint
End If
Fin:
Next T
‘========================================
Call Resultados(T, hR, FHNO3, FNH3, _
FNH4NO3, ffHNO3, ffNH3, ffNH4NO3, RoHNO3, RoNH3, RoNH4NO3)
FlujoMedioNH4NO3 = (SumFNH4NO3 / RoNH4NO3) / (Tmax – Taster)
Worksheets(“Hoja3”).Cells(Fila, 4) = “Flujo medio NH4NO3= ” & Round(FlujoMedioNH4NO3, 7) & ” m^3/s ”
Worksheets(“Hoja3”).Cells(Fila + 1, 3) = “Producción es : ” & Round(SumFNH4NO3 / (Tmax – Taster), 2) & ” kg/s de NH4NO3 de 66.5%” & ” Produccion Anual Estimada es ” & Round(SumFNH4NO3 / (Tmax – Taster), 2) * 3600 * 8000 / 1000 & ” TM/año”
Worksheets(“Hoja3”).Cells(Fila + 2, 3) = “Taster= ” & Round(Taster, 0) & ” s”
End Sub
Sub Titulos(Fila)
Worksheets(“Hoja3”).Cells(Fila, 2) = “T,s”
Worksheets(“Hoja3”).Cells(Fila, 3) = “hR,m”
Worksheets(“Hoja3”).Cells(Fila, 4) = “FHNO3 alimentado al reactor, m3/s”
Worksheets(“Hoja3”).Cells(Fila, 5) = “ffHNO3”
Worksheets(“Hoja3”).Cells(Fila, 6) = “FNH3 alimentado al reactor, m3/s”
Worksheets(“Hoja3”).Cells(Fila, 7) = “ffNH3”
Worksheets(“Hoja3”).Cells(Fila, 8) = “NH4NO3 formado en reactor, m3/s”
Worksheets(“Hoja3”).Cells(Fila, 9) = “FNH4NO3 sale de reactor, m3/s”
Worksheets(“Hoja3”).Cells(Fila, 10) = “ffNH4NO3”
Fila = Fila + 1
End Sub
Sub Resultados(T, hR, FHNO3, FNH3, FNH4NO3, ffHNO3, ffNH3, ffNH4NO3, RoHNO3, RoNH3, RoNH4NO3)
Worksheets(“Hoja3”).Cells(Fila, 2) = T
Worksheets(“Hoja3”).Cells(Fila, 3) = hR
Worksheets(“Hoja3”).Cells(Fila, 4) = (FHNO3 / RoHNO3)
Worksheets(“Hoja3”).Cells(Fila, 5) = ffHNO3
Worksheets(“Hoja3”).Cells(Fila, 6) = (FNH3 / RoNH3)
Worksheets(“Hoja3”).Cells(Fila, 7) = ffNH3
Worksheets(“Hoja3”).Cells(Fila, 8) = (FHNO3 + FNH3) / RoNH4NO3
Worksheets(“Hoja3”).Cells(Fila, 9) = (FNH4NO3 / RoNH4NO3)
Worksheets(“Hoja3”).Cells(Fila, 10) = ffNH4NO3
Fila = Fila + 1
End Sub
Sub Balance_de_Masa2(ff1, ff2, ff3, Ro1, Ro2, _
Ro3, Deltat, Deltap1, Deltap2, Deltap3, _
Kv1, Kv2, Kv3, h, D, F1, F2, F3, hset, BD, siga, V, _
hf, Kc, Ti, SumCorr, Pi, FlujoMedioF·, SumF3, T, Taster, F1set, Kc1, Ti1, SumCorr1, Kc2, Ti2, SumCorr2, F2set, Kc3, Ti3, _
SumCorr3, F3set, DeltaF1, TdF1, DeltaF2, TdF2, DeltaF3, TdF3)
Call ControlPID_Flujo(ff1, Kc1, Ti1, SumCorr1, F1set, F1, Deltat, TdF1, DeltaF1, T, 0)
F1 = Kv1 * ff1 * Sqr(Deltap1) ‘en kg/s
Call ControlPID_Flujo(ff2, Kc2, Ti2, SumCorr2, F2set, F2, Deltat, TdF2, DeltaF2, T, 0)
F2 = Kv2 * ff2 * Sqr(Deltap2) ‘ en kg/s
If (h >= hset) Then ‘
F31 = F3
Call ControlPID_Flujo(ff3, Kc3, Ti3, SumCorr3, F3set, F3, Deltat, TdF3, DeltaF3, T, 0)
F3 = Kv3 * ff3 * Sqr(Deltap3) ‘ En kg/s Deltap en kPa^0.5_
F32 = F3
If (F32 = 0) Or (F31 = 0) Then
DeltaF3 = 0
Else
DeltaF3 = F31 – F32
End If
SumF3 = SumF3 + F3 * Deltat ‘Suma la producción en kg
End If
‘Actualización de h
DeltaV = (((F1 + F2) / Ro3) – (F3 / Ro3)) * Deltat ‘ Fs En m3/s
V = V + DeltaV
h = V / (Pi * D ^ 2 / 4)
End Sub
Sub ControlPID_Flujo(ffF, KcF, TiF, SumCorrF, Ffset, Ff, Deltat, TdF, DeltaF, Tiempo, Bi)
SumCorrF = SumCorrF + (Ffset – Ff) * Deltat
pF = ((KcF * (Ffset – Ff)) + ((KcF / TiF) * SumCorrF) – (KcF * TdF) * (DeltaF / Deltat)) + Bi
If pF > 103.42 Then
pF = 103.42
SumCorrF = 0
ElseIf pF < 20.68 Then
pF = 20.68
SumCorrF = 0
End If
ffF = (pF – 20.68) / (103.42 – 20.68)
End Sub
Trabajos Citados
(s.f.). Recuperado el February de 2018, de http://www.fao.org/faostat/en/#data/RF/visualize.
Smith, C., & Corripio, A. (1995). Control Automático de Procesos: Teoría y Práctica. Mexico: Limusa-Noriega Editores.
Wikipedia. (24th de February de 2018). Obtenido de https://en.wikipedia.org/wiki/Reaction_rate