Académique Documents
Professionnel Documents
Culture Documents
COCHABAMBA-BOLIVIA
DICIEMBRE 2005
Contenido
Contenido ........................................................................................................ i
Nomenclatura y unidades ............................................................................ vii
i
4.3. Operación Poli-trópica.......................................................................... 33
4.4. Ejemplos usando GNU Octave.............................................................. 34
Ejemplo 4.1. Operación adiabática para reacción irreversible de primer-orden
.................................................................................................................... 34
Ejemplo 4.2. Operación adiabática para reacción irreversible de segundo-
orden........................................................................................................... 37
Ejemplo 4.3. Operación poli-trópica para reacción reversible....................... 40
Ejemplo 4.4. Operación poli-trópica para reacción irreversible de primer-orden
.................................................................................................................... 42
Ejemplo 4.5. Reacciones en serie................................................................. 44
ii
7.3. Ley de velocidad para reacciones heterogéneas .................................... 76
7.4. Ejemplos usando GNU Octave.............................................................. 77
Ejemplo 7.1. Reacción en fase gaseosa en un reactor de lecho empacado con
caída de presión.......................................................................................... 77
Ejemplo 7.2. Diseño de un reactor de lecho empacado para una reacción
catalítica en fase gaseosa ........................................................................... 83
Ejemplo 7.3. Reacción exotérmica reversible en fase gaseosa en un reactor
de lecho empacado...................................................................................... 89
Referencias bibliográficas............................................................................ 97
iii
Anexo 3. Plan Global de la Materia ........................................................... 123
1. Identificación ........................................................................................... 123
2. Justificación general ................................................................................ 124
3. Propósitos generales ................................................................................ 125
4. Objetivos generales .................................................................................. 125
5. Estructuración en unidades didácticas y su descripción .......................... 125
5.1. Balances de masa y energía en sistemas homogéneos con reacciones
Químicas ................................................................................................... 125
5.1.1. Objetivos de la unidad .................................................................... 125
5.1.2. Contenido ........................................................................................ 125
5.1.3. Metodología de enseñanza .............................................................. 126
5.2. Estequiometría de las reacciones químicas .......................................... 126
5.2.1. Objetivos de la unidad .................................................................... 126
5.2.2. Contenido ........................................................................................ 126
5.2.3. Metodología de enseñanza .............................................................. 126
5.3. Modelado y análisis de reactores ideales homogéneos......................... 126
5.3.1. Objetivos de la unidad .................................................................... 127
5.3.2. Contenido ........................................................................................ 127
5.3.3. Metodología de enseñanza .............................................................. 127
5.4. Comportamiento real de los reactores en sistemas homogéneos ........... 128
5.4.1. Objetivos de la unidad .................................................................... 128
5.4.2. Contenido ........................................................................................ 128
5.4.3. Metodología de enseñanza .............................................................. 128
5.5. Reacciones en sistemas heterogéneos ................................................. 128
5.5.1. Objetivos de la unidad .................................................................... 128
5.5.2. Contenido ........................................................................................ 129
5.5.3. Metodología de enseñanza .............................................................. 129
6. Evaluación............................................................................................... 129
7. Cronograma ............................................................................................. 129
8. Disposiciones generales ........................................................................... 129
9. Bibliografía .............................................................................................. 130
iv
Índice de figuras
v
Figura 26: Caída de presión relativa en función de la masa de catalizador para
la reacción irreversible A → B (ej. 1) ........................................................ 80
Figura 27: Conversión en función de la masa de catalizador para la reacción
irreversible A → 3B (ej. 1) ........................................................................ 81
Figura 28: Caída de presión relativa en función de la masa de catalizador para
la reacción irreversible A → 3B (ej. 1) ...................................................... 81
Figura 29: Conversión en función de la masa de catalizador para la reacción
irreversible A → 1/3B (ej. 1) .................................................................... 82
Figura 30: Caída de presión relativa en función de la masa de catalizador para
la reacción irreversible A → 1/3B (ej. 1) .................................................. 82
Figura 31: Conversión en función de la masa de catalizador sin caída de
presión (ej. 2) ........................................................................................... 86
Figura 32: Conversión en función de la masa de catalizador con caída de
presión (ej. 2) ........................................................................................... 88
Figura 33: Caída de presión relativa en función de la masa de catalizador (ej. 2)
................................................................................................................ 88
Figura 34: Conversión en función de la masa de catalizador (ej. 3) ................ 92
Figura 35: Caída de presión relativa en función de la masa de catalizador (ej. 3)
................................................................................................................ 92
Figura 36: Temperatura en función de la masa de catalizador (ej. 3).............. 93
vi
Nomenclatura y unidades
vii
Símbolo Definición Unidades SI
Símbolos Griegos
viii
Capítulo 1. Objetivos y alcance del
trabajo
1.1. Introducción
1
computadoras personales, el trabajo de modelado y análisis de los reactores se
ha visto facilitado y simplificado. Los textos de edición reciente hacen énfasis
en el uso de diferentes programas como MATLAB, POLYMATH, y otros. Pero,
lamentablemente estos paquetes son comerciales, por lo que su uso representa
un costo monetario para adquirir la licencia. Como alternativa, dentro la carre-
ra de Ingeniería Química de la UMSS, se ha identificado un software de distri-
bución libre; éste es GNU Octave.
¿Qué es Octave? Octave es un lenguaje de alto nivel para realizar cálculos nu-
méricos en el computador, y también es un programa interprete. Éste ofrece
una interfaz de usuario interactiva, orientada a una línea de comandos, pero
también puede ser utilizado en modo no interactivo, leyendo sus órdenes desde
un fichero.
2
El objetivo de la materia no es enseñar como usar o identificar métodos numé-
ricos apropiados para resolver los problemas, y hacerlo significaría el no cum-
plimiento del propósito general. Es así que se necesita de alguna herramienta,
en este caso un software, que sea flexible, rápido y fácil de emplear. Se ha
identificado a GNU OCTAVE para utilizarlo complementariamente al curso de
Diseño de Reactores. Este trabajo, entonces, pretende proporcionar y difundir
a estudiantes y docentes el uso de este software en la materia, además de ser
un texto complementario y de referencia.
1.3. Objetivos
La realización del trabajo comenzó con una revisión teórica y bibliográfica, que
permitió realizar una selección de los problemas que se presentan. El análisis y
modelado de los reactores son los dos factores que se tomaron en cuenta para
3
éste propósito. La optimación no ha sido abordada debido a que es un tema de
especialización; además que, indirectamente, a partir del análisis del compor-
tamiento de los reactores puede plantearse una estrategia de optimación
4
Capítulo 2. Balances de masa y ener-
gía en sistemas homogéneos con re-
acciones químicas
5
la acumulación de masa, (II) la entrada neta de masa al sistema por convec-
ción, (III) la entrada neta de masa por difusión y (IV) la generación neta de ma-
sa en el sistema por reacción química. Una especie química puede participar
en más de dos reacciones simultáneamente, por lo que su velocidad de forma-
ción debe considerar a cada una de estas reacciones [Baerns, 1999],
Ri = ∑ α ij r j
j
A diferencia del balance de masa, éste balance de calor es global y no por espe-
cie química. En la expresión anterior ρ y CP son la densidad de la mezcla de
6
reacción, respectivamente; λ la conductividad térmica, T y ∆HR las propiedades
termodinámicas temperatura y calor de reacción.
o bien
7
Nt N
= 1 + δ A0 X A = 1 − δy A0 X A = 1 − εX A
Nt0 Nt0
N& T P0
V& = V&0 t
N& t 0 T0 P
T P0
V& = (1 − εX A )
T0 P
8
que generalizando escribimos como [Fogler, 2001]
ri = α i r
donde αi es el coeficiente estequiométrico de la especie i que tiene valores nega-
tivos para los reactivos y valores positivos para los productos.
E
k = k 0 exp −
RT
donde k0 es el factor pre-exponencial o factor de frecuencia, E la energía de
activación, R la constante universal de los gases, y T la temperatura absoluta.
La concentración de las especies químicas son los moles por unidad de volu-
men,
Ni
Ci = para sistemas de lote
V
N&
Ci = i para sistemas de flujo
V&
Para sistemas de fase líquida, V y V& se consideran constantes.
9
2.5. Ecuaciones reversibles
Una reacción reversible se trata como dos reacciones. Por ejemplo, la reacción
A ⇔ B se escribe [Fogler, 2001]
A→B r1 = k1C A
B→A r2 = k 2 C A
La velocidad neta de formación de A es por tanto [Fogler, 2001]
R A = − r1 + r2 = − k1C A + k 2 C B
En el equilibrio RA = 0 y se tiene
C B k1
KC = =
C A k2
donde KC es la constante de equilibrio. Reescribiendo se tiene [Fogler, 2001]
C
− R A = k1 C A − B
KC
10
Capítulo 3. Reactor Tanque Agitado
Discontinuo
Este reactor, conocido también como reactor por lotes o batch, no tiene flujo de
entrada de reactivos ni flujo de salida de productos, N& i 0 = N& i = 0 . Para modelar
11
En la Tabla 1 se listan tamaños representativos (junto con el de un objeto co-
nocido comparable) y los costos de reactores tanques agitados. Todos estos
reactores están recubiertos de vidrio y los precios incluyen la chaqueta de ca-
lentamiento-enfriamiento, motor, mezclador y bafles. Los tanques agitados
pueden operar a temperaturas entre –7 °C y 230 °C, y presiones de hasta 7
atm [Fogler, 2001].
12
removerse o suministrarse la misma cantidad de flujo de calor generada o con-
sumida durante la reacción química. Esto último se consigue a través de una
transferencia de calor adecuada con un medio refrigerante. Resulta evidente
que para reacciones extremadamente exotérmicas o endotérmicas, no es posi-
ble conservar la temperatura constante.
Además del balance de masa, que es el mismo que el caso isotérmico, debe
resolverse el balance de energía. Todo el calor generado o consumido por reac-
ción química, se traduce en un aumento o disminución de la temperatura de la
mezcla de reacción. Así, el balance de calor (energía), asumiendo que la capa-
cidad calorífica es constante o un promedio entre las temperaturas de opera-
ción, resulta [Baerns, 1999]
= V ∑ r j (− ∆H Rj )
dT
MC P
dt j
13
o en términos de moles de cada una de las especies química participantes,
= V ∑ r j (− ∆H Rj )
dT
∑N C
i
i Pi
dt j
= UA(Ta − T ) + V ∑ r j (− ∆H Rj )
dT
MC P
dt j
= UA(Ta − T ) + V ∑ r j (− ∆H Rj )
dT
∑N C
i
i Pi
dt j
14
Por calentamiento de un ácido di-carboxílico se produce vapor de agua y su
anhídrido correspondiente,
R(COOH)2 → H2O + R(CO)2O ∆HR = 75 kJ/mol
o bien,
A→B+C
La cinética de esta reacción esta descrita por una ley de potencia como reac-
ción de primer orden con respecto al ácido di-carboxílico,
r = kCA k = 6,4 × 1017 exp (-25 000/T ) min-1
N A = N A0 (1 − X A )
NA
R A = − r = −kC A = −k
V
por lo que el balance de masa se reescribe como
dX A
= k (1 − X A )
dt
El tiempo de reacción se determina integrando la expresión anterior,
X A = 0 , 40 dX A
t=∫
X A =0 k (1 − X A )
La relación entre temperatura y conversión es
T = T0 + ∆Tad . X A
15
por lo que la constante cinética se escribe como
25000
k = 6,4 × 1017 exp −
0 T + ∆Tad . X A
fnc_ej1.m
function f=fnc_ej1(XA)
T0=603; #K
deltaTad=-200; #K
T=T0+deltaTad*XA;
k=6.4e17*exp(-25000/T); #min-1
f=1/(k*(1-XA));
endfunction
ej1.m
clear
XA0=0;
XA=0.40;
t=quad("fnc_ej1",XA0,XA) #min
disp("tiempo en min")
16
Ejemplo 3.2. Perfiles de conversión y temperatura para operación adiabá-
tica
Los esteres de ácido maléico, debido a sus dos grupos reactivos (doble enlace y
grupo carboxílico), son productos intermedios de interés comercial. Estos pue-
den ser producidos mediante la reacción del anhídrido maleico con un alcohol,
o bien,
A+B→C
17
CA0 = 4,55 kmol/m3
CB0 = 5,34 kmol/m3
ρ = 990 kg/m3
CP = 2 kJ/(kg K)
E = 105 000 kJ/kmol
k0 = 4,92 × 1015 m3/(kmol h)
= Vr (− ∆H R )
dT
MC P
dt
escrita en forma explícita como
dT r (− ∆H R )
=
dt ρC P
fnc_ej2.m
function dudt=fnc_ej2(u,t)
XA=u(1);
18
T=u(2);
CA0=4.55; #kmol/m3
CB0=5.34; #kmol/m3
deltaHR=-33500; #kJ/kmol
rho=990; #kg/m3
CP=2; #kJ/(kg K)
E=105000; #kJ/kmol
k0=4.92e15; #m3/(kmol h)
R=8.314; #kJ/(kmol K)
MB=CB0/CA0;
CA=CA0*(1-XA);
CB=CA0*(MB-XA);
k=k0*exp(-E/(R*T));
r=k*CA*CB;
dudt(1)=r/CA0;
dudt(2)=r*(-deltaHR)/(rho*CP);
endfunction
ej2.m
clear
XA0=0;
T0=323; #K
u0=[XA0 T0]';
t=linspace(0,0.6,30)'; #h
u=lsode("fnc_ej2",u0,t);
XA=u(:,1);
T=u(:,2); #K
xlabel("Tiempo, t/h"), ylabel("Conversión, XA"), plot(t,XA,"-@17;;")
pause
xlabel("Tiempo, t/h"), ylabel("Temperatura, T/K"), plot(t,T,"-@33;;")
La solución (Figura 1) muestra que después de 0,6 horas se alcanza una con-
versión casi del 100 % y una temperatura máxima y constate (típico de la ope-
ración adiabática) de 400 K. El perfil de temperatura es el mismo que el de
conversión, ya que la temperatura del sistema de reacción es una función li-
near de la conversión.
19
1
0.9
0.8
0.7
Conversión, XA
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6
Tiempo, t/h
400
390
380
Temperatura, T/K
370
360
350
340
330
320
0 0.1 0.2 0.3 0.4 0.5 0.6
Tiempo, t/h
20
Ejemplo 3.3. Perfiles de conversión y temperatura para operación poli-
trópica
fnc_ej3.m
function dudt=fnc_ej3(u,t)
global Ta
XA=u(1);
T=u(2);
CA0=4.55; #kmol/m3
CB0=5.34; #kmol/m3
deltaHR=-33500; #kJ/kmol
rho=990; #kg/m3
CP=2; #kJ/(kg K)
E=105000; #kJ/kmol
k0=4.92e15; #m3/(kmol h)
R=8.314; #kJ/(kmol K)
V=5; #m3
A=20; #m2
U=0.5*3600; #kJ/(h m2 K)
21
MB=CB0/CA0;
CA=CA0*(1-XA);
CB=CA0*(MB-XA);
k=k0*exp(-E/R/T);
r=k*CA*CB;
dudt(1)=r/CA0;
dudt(2)=U*A/(rho*V*CP)*(Ta-T)+r*(-deltaHR)/(rho*CP);
endfunction
ej3.m
clear
global Ta
XA0=0;
T0=323; #K
u0=[XA0 T0]';
t=linspace(0,1,30)'; #h
Tai=[330 335]'; #K
n=length(Tai);
for i=1:n
Ta=Tai(i);
u=lsode("fnc_ej3",u0,t);
XA(:,i)=u(:,1);
T(:,i)=u(:,2);
endfor
xlabel("Tiempo, t/h"), ylabel("Temperatura, T/K"), plot(t,T(:,1),"-
@17;Ta=330 K;",t,T(:,2),"-@33;Ta=335 K;")
pause
xlabel("Tiempo, t/h"), ylabel("Conversión, XA"), plot(t,XA(:,1),"-
@17;;",t,XA(:,2),"-@33;;")
La solución, que se presentan en las figuras más abajo, muestra que la tempe-
ratura media de 330 K para el fluido refrigerante causa una mayor remoción
de calor producido por la reacción química, por lo que no se sobrepasa la tem-
peratura de operación de 100 ºC. Obsérvese que un aumento de 5 ºC en el
medio refrigerante ocasiona una diferencia de 20 ºC entre las temperaturas
máximas de operación. Este efecto, que una diferencia pequeña en la tempera-
tura del medio refrigerante, causa un cambio considerable en la temperatura
de operación del reactor, se conoce como sensibilidad de parámetros.
22
380
Ta=330 K
Ta=335 K
370
360
Temperatura, T/K
350
340
330
320
0 0.2 0.4 0.6 0.8 1
Tiempo, t/h
0.9
0.8
0.7
Conversión, XA
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
Tiempo, t/h
Figura 4: Conversión en función del tiempo (ej.3)
23
Ejemplo 3.4. Análisis de sensibilidad
E C Fe E
k = k 0 exp − = k0
'
exp −
RT CH + K f RT
donde Kf es la constante de hidrolización de nitrato de hierro (III).
24
donde P es la presión de operación del reactor y Ps es la presión de saturación
de vapor de agua. Los datos cinéticos y termodinámicos son:
25
fnc_ej4a.m
function dudt=fnc_ej4a(u,t)
global D
XA=u(1);
T=u(2);
k0prima=1.5e16*60; #min-1
E=105000; #J/mol
Kf=10; #mol/m3
deltaHR=-94800; #J/mol
deltaHV=40660; #J/mol
R=8.314; #J/(mol K)
CP=4100; #J/(kg K)
CFe=20; #mol/m3
CH=100; #mol/m3
Ps=4.97e10*exp(-4890/T); #Pa
CA0=3000; #mol/m3
P=1.01325e5; #Pa
rho=1000; #kg/m3
T0=293; #K
Ta=T0;
k0=k0prima*CFe/(CH+Kf);
dudt(1)=k0*exp(-E/(R*T))*(1-XA);
dudt(2)=D*(Ta-T)+(-deltaHR*CA0/(rho*CP)-1/2*Ps/(P-
Ps)*deltaHV*CA0/(rho*CP))*dudt(1);
endfunction
ej4a.m
clear
global D
XA0=0;
T0=293; #K
u0=[XA0 T0]';
t=linspace(0,25,30)'; #min
Di=[.05 .10 .20 .30 .35 .40 .425 .45 .50 .60]'; #min-1
n=length(Di);
for i=1:n
D=Di(i);
u=lsode("fnc_ej4a",u0,t);
XA(:,i)=u(:,1);
T(:,i)=u(:,2);
endfor
grid
xlabel("Tiempo, t/min"), ylabel("Temperatura, T"), plot(t,T,"-@")
pause
axis([0 25 0 1]);
xlabel("Tiempo, t/min"), ylabel("Conversión, XA"), plot(t,XA,"-@;;")
axis("auto"); grid
26
360
line 1
line 2
350 line 3
line 4
line 5
340 line 6
line 7
line 8
Temperatura, T
330 line 9
line 10
320
310
300
290
0 5 10 15 20 25
Tiempo, t/min
0.8
Conversión, XA
0.6
0.4
0.2
0
0 5 10 15 20 25
Tiempo, t/min
27
Según la Figura 5 la temperatura de operación es sensible a los cambios pe-
queños en los valores D desde 0,40 min-1 a 0,60 min-1. Esta situación hace que
la operación del reactor no sea estable en este rango de valores, aunque se al-
cance 100 % de conversión (Figura 6). La estabilidad, y por tanto la seguridad,
es un factor a tomar en cuenta durante la operación del reactor
Ahora se analiza la estabilidad cuando D = 0,9 min-1 para los siguientes valo-
res de temperatura inicial (T0 = Ta)):
Nro. T0/K Nro. T0/K
1 293 5 300
2 296 6 301
3 298 7 302
4 299
fnc_ej4b.m
function dudt=fnc_ej4b(u,t)
global Ta
XA=u(1);
T=u(2);
k0prima=1.5e16*60; #min-1
E=105000; #J/mol
Kf=10; #mol/m3
deltaHR=-94800; #J/mol
deltaHV=40660; #J/mol
R= 8.314; #J/(mol K)
CP=4100; #J/(kg K)
CFe=20; #mol/m3
CH=100; #mol/m3
Ps=4.97e10*exp(-4890/T); #Pa
CA0=3000; #mol/m3
P=1.01325e5; #Pa
rho=1000; #kg/m3
D=0.9; #min-1
k0=k0prima*CFe/(CH+Kf);
dudt(1)=k0*exp(-E/(R*T))*(1-XA);
dudt(2)=D*(Ta-T)+(-deltaHR*CA0/(rho*CP)-1/2*Ps/(P-
Ps)*deltaHV*CA0/(rho*CP))*dudt(1);
endfunction
28
ej4b.m
clear
global Ta
XA0=0;
t=linspace(0,10,30)'; #min
Tai=[293 296 298 299 300 301 302]'; #K
T0i=Tai;
n=length(Tai);
for i=1:n
Ta=Tai(i);
T0=T0i(i);
u0=[XA0 T0]';
u=lsode("fnc_ej4b",u0,t);
XA(:,i)=u(:,1);
T(:,i)=u(:,2);
endfor
grid
xlabel("Tiempo, t/min"), ylabel("Temperatura, T"), plot(t,T,"-@")
pause
xlabel("Tiempo, t/min"), ylabel("Conversión, XA"), plot(t,XA,"-@;;")
grid
340
line 1
335 line 2
line 3
line 4
330
line 5
line 6
325 line 7
Temperatura, T
320
315
310
305
300
295
290
0 2 4 6 8 10
Tiempo, t/min
29
1
0.9
0.8
0.7
Conversión, XA
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10
Tiempo, t/min
30
Capítulo 4. Reactor Tanque Agitado
Continuo
Entre los reactores de flujo está el tanque agitado continuo (TAC). Este tipo de
reactor se opera en estado estacionario, es decir no hay acumulación de masa
en su interior. Para modelar su comportamiento se supone mezclado ideal y
por tanto las concentraciones y temperatura en el efluente son las mismas que
en el interior del reactor[J. Carberry, 1976].
31
La caracterísca más importante de un reactor agitado continuo es la agitación.
Una primera aproximación que describe más apropiadamente su funciona-
miento se basa en la suposición de que su contenido esta perfectamente mez-
clado. Como consecuencia de ello, la corriente de salida o efluente tiene la
misma composición que la masa de reacción contenida en el tanque.
32
4.2. Operación Adiabática
∑ N& i0 C Pi (T0 − T ) + V ∑ r j (− ∆H Rj ) = 0
i j
33
mentarse imponiendo un perfil de temperatura sobre la serie de tanques para
suprimir reacciones secundarias no deseadas.
34
mentación, que consiste solo en A, es 4 mol/L y entra al reactor a 20 ºC. Otros
datos son:
k = 1,8 × 105 exp (−6000/T ) s-1
∆HR = −46 000 cal/mol
El tiempo espacial τ se define como la relación V / V&0 . Para una reacción irre-
ej1.m
clear
rho=1.2*1e3; #g/L
CP=0.9; #cal/(g K)
V=10; #L
Vpunto0=200/1e3; #L/S
CA0=4; #mol/l
T0=20+273.15; #K
deltaHR=-46000; #cal/mol
35
tau=V/Vpunto0;
deltaTad=CA0*(-deltaHR)/(rho*CP);
T=linspace(250,500)'; #K
k=1.8e5.*exp(-6000./T); #s-1
XA_bm=k.*tau./(1+k.*tau);
XA_be=(T-T0)./deltaTad;
0.8
Conversión, XA
0.6
0.4
0.2
0
250 300 350 400 450 500
Temperaura, T/K
36
Ejemplo 4.2. Operación adiabática para reacción irreversible de segundo-
orden
Datos adicionales:
N A0 X A = Vr = VkC A2 = VkC A2 0 (1 − X A )
2
1 + 2kτC A0 − 1 + 4kτC A0
XA =
2kτC A0
37
T = T0 +
(− ∆H R ) XA
C PA + C PI
que escrita como XA = f (T) es
C PA + C PI
X A = (T − T0 )
(− ∆H R )
ej2.m
clear
CPA=15; #cal/(mol K)
CPI=18; #cal/(mol K)
V=1000; #dm3
Vpunto0=10; #dm3/S
CA0=4; #mol/l
T0=300; #K
deltaHR=-3300; #cal/mol
E=15000; #cal/mol
kref=0.0005; #dm3/(mol min) a 300K
Tref=300; #K
R=1.987; #cal/(mol K)
tau=V/Vpunto0;
deltaTad=-deltaHR/(CPA+CPI);
T=linspace(250,450)'; #K
k=kref.*exp(E/R.*(1./Tref-1./T));
XA_bm=(1+2.*k.*tau.*CA0-(1+4.*k.*tau.*CA0).^0.5)./(2.*k.*tau.*CA0);
XA_be=(T-T0)./deltaTad;
Por tanto, bajo las condiciones de operación, solo es posible una temperatura y
conversión, que son 388 K y 0,88; respectivamente.
38
1
Conversión, XA 0.8
0.6
0.4
0.2
0
250 300 350 400 450
Temperatura, T/K
0.8
Conversión, XA
0.6
0.4
0.2
0
250 300 350 400 450
Temperatura, T/K
39
Éste decremento de 20 grados en la temperatura de entrada resultada en tres
estados posibles de operación. Es evidente que habría que operar el reactor a
la temperatura de 345 K para alcanzar la conversión de 0,66.
N& A0 = 10 mol/s
CA0 = 2 mol/dm3
UA = 2000 J/(s K)
V = 500 dm3
Ta = 40 °C
k1 (373 K) = 0,001 s-1
CPA = CPB = 40 J/(mol K)
E1 = 150 kJ/mol
KC (350 K) = 100
T0 = 27 °C
C X
V&0 C A0 X A = Vk1 C A0 (1 − X A ) − A0 A
KC
Por manipulación algebraica, expresamos la conversión como función única de
la temperatura:
40
k1τ
XA =
1
1 + k1τ 1 +
KC
ej3.m
clear
NpuntoA0=10; # mol/s
CA0=2; #mol/dm3
UA=2000; #J/(s K)
V=500; # dm3
Ta=40+273.15; #K
k1ref= 0.001; #s-1 a 373 K
CPA=40; #J/(mol K)
CPB=CPA;
E1=150e3; #J/mol
KCref=100; #a 350 K
T0=27+273.15; #K
R=8.314; #J/(mol K)
deltaHR=-80e3; #J/mol
Vpunto0=NpuntoA0/CA0;
tau=V/Vpunto0;
T=linspace(350,500)'; #K
k1=k1ref.*exp(E1/R.*(1/373-1./T));
KC=KCref.*exp(deltaHR/R.*(1/350-1./T));
XA_bm=k1.*tau./(1+k1.*tau.*(1+1./KC));
XA_be=(UA.*(T-Ta)./NpuntoA0+CPA.*(T-T0))./-deltaHR;
41
1
Conversión, XA 0.8
0.6
0.4
0.2
0
360 380 400 420 440 460 480 500
Temperaura, T/K
Figura 12: Conversión en función de la temperatura (ej. 3)
Los resultados indican que son posibles dos estados estacionarios de operación
que corresponden a temperaturas de 381 K y 431 K, con conversiones de 0,21
y 0,36; respectivamente.
42
Ta = 300 K
τ = 100 min
∆HR = −7500 cal/mol
k(350K) = 6,6 × 10-3 min-1
E = 40 000 cal/mol
ej4.m
clear
CPA=20; #cal/(mol K)
CPI=30; #cal/(mol K)
UA=8000; #cal/(min K)
Ta=300; #K
NpuntoA0=80; #mol/min
T0=450; #K
deltaHR=-7500; #cal/mol
E=40000; #cal/mol
kref=6.6e-3; #min-1 a 350 K
Tref=350; #K
R=1.987; #cal/(mol K)
tau=100; #min
T=linspace(300,420)';#K
k=kref.*exp(E/R.*(1./Tref-1./T));
XA_bm=(k.*tau)./(1+k.*tau);
XA_be=(UA/NpuntoA0.*(T-Ta)+(CPA+CPI).*(T-T0))./-deltaHR;
axis([300 420 0 1]);
xlabel("Temperaura, T/K"), ylabel("Conversión, XA")
plot(T,XA_bm,"1;;",T,XA_be,"3;;")
axis("auto");
43
1
Conversión, XA 0.8
0.6
0.4
0.2
0
300 320 340 360 380 400 420
Temperaura, T/K
Datos adicionales:
CPA = CPB = CPC = 200 J/(mol K)
44
k1(300K) = 3,3 min-1
E1 = 9900 cal/mol
k2(500K) = 4,58 min-1
E2 = 27 000 cal/mol
∆HR1 = -55 000 J/mol
∆HR2 = -71 500 J/mol
UA = 40 000 J/(min K)
Ta = 57 ºC
RB = r2 = k 2 C A , entonces
k1τC A k1τC A0
CB = =
1 + k 2τ (1 + k1τ )(1 + k 2τ )
Formulamos el balance de energía:
N& A0 C PA (T0 − T ) + UA(Ta − T ) + V [r1 (− ∆H R1 ) + r2 (− ∆H R 2 )] = 0
sustituyendo r1 y r2, luego reacomodando se tiene
(− ∆H R1 )k1τ
(− ∆H R 2 )k1τk 2τ
+ = C PA (1 + κ )(T − TC )
1 + k1τ (1 + k1τ )(1 + k 2τ ) 144
1444442444443
42444
R (T )
3
G (T )
donde
UA
κ=
&
N A0 C PA
y
45
T0 + κTa
Tc =
1+ κ
G(T) es la llamada curva de generación de calor, y R(T) la curva de remoción de
calor. La intersección de ambas representa la temperatura de operación del
reactor.
Fichero solución:
ej5.m
clear
CA0=0.3; #mol/dm3
UA=40000; #J/(min K)
V=10; # dm3
Vpunto0=1000; #dm3/min
Ta=57+273.15; #K
k1ref= 3.3; #min-1 a 300 K
k2ref= 4.58; #min-1 a 500 K
CPA=200; #J/(mol K)
CPB=CPA;
E1=9900; #cal/mol
E2=27000; #cal/mol
T0=283; #K
R=1.987; #cal/(mol K)
deltaHR1=-55000; #J/mol
deltaHR2=-71500; #J/mol
tau=V/Vpunto0;
T=linspace(250,750)'; #K
k1=k1ref.*exp(E1/R.*(1/300-1./T));
k2=k2ref.*exp(E2/R.*(1/500-1./T));
kapa=UA/(Vpunto0*CA0*CPA);
Tc=(T0+kapa*Ta)/(1+kapa);
rem_calor=CPA*(1+kapa).*(T-Tc);
gen_calor=(-deltaHR1*tau.*k1)./(1+tau.*k1)+(-
deltaHR2.*k1*tau.*k2*tau)./((1+tau.*k1).*(1+tau.*k2));
46
160000
R(T)
G(T)
140000
120000
100000
R(T), G(T)
80000
60000
40000
20000
-20000
200 300 400 500 600 700 800
Temperaura, T/K
47
Capítulo 5. Reactor Tubular Conti-
nuo
Además de los reactores TAC y por lotes, otro tipo de reactor de uso más gene-
ral en la industria es el reactor tubular continuo (RTC), que consiste en un tu-
bo cilíndrico y normalmente operado en estado estacionario. Para los fines de
ésta exposición, se considera sistemas en los que el flujo es altamente turbu-
lento y el campo de flujo se puede describir a través del modelo de flujo pistón
o tapón. Como consecuencia de esta suposición no se establecen gradiente ra-
diales de concentración y temperatura, pero si varían a lo largo del reactor.
48
Por consiguiente, la velocidad de reacción, que es una función de la concentra-
ción para todas las reacciones con excepción de las de orden cero, también
varía axialmente. Resulta más conveniente tener el volumen del reactor V como
variable independiente en lugar de la longitud del reactor, y por tanto el balan-
ce de moles sobre el reactor tubular se escribe como
dN& i
= Ri
dV
= ∑ r j (− ∆H Rj )
dT
M& C P
dV j
= ∑ r j (− ∆H Rj )
dT
∑ N& C
i
i Pi
dV j
49
blecido. Si la temperatura es conocida en cada punto del reactor puede susti-
tuirse en las ecuaciones de velocidad y luego utilizarse un procedimiento de
integración numérica de la ecuación de diseño.
M& C P
dT
=U
dA
(Ta − T ) + ∑ r j (− ∆H Rj )
dV dV j
donde el término dA/dV representa el área específica a que para un tubo cilín-
drico recto es 4/D,
50
La temperatura a la entrada es 923 K y la presión total de 1 bar se considera
constante a lo largo del reactor. La reacción es endotérmica, ∆HR = 126
kJ/mol. La capacidad calorífica de la mezcla de reacción para el rango de tem-
peratura de operación tiene el valor CP = 2,2 kJ/(kg K). Se determinar el valor
del tiempo espacial τ requerido para alcanzar 50 % de conversión.
dN& A
= RA
dV
o bien
dX A
C A0V&0 =r
dV
El tiempo espacial τ se define como V V&0 , por lo tanto se tiene que
0,5 C A0 dX A
τ =∫
0 r
Se debe expresar ahora r como función únicamente de la conversión:
1− X A
r = kPA = kPA0
1 + εX A
ya que PA0 = C A0 RT0 ,
0,5 dX A
τ =∫
0 1− X A
kRT0
1 + εX A
1
donde ε = δy A0 =
11
Finalmente k es función de la temperatura, la que a su vez es función de la
conversión según la relación
N& Ao (− ∆H R )
T = T0 + XA
M& C P
fnc_ej1.m
function f=fnc_ej1(XA)
51
NpuntoA0=1; #kmol/h
NpuntoI=10; #kmol/h
T0=923; #K
deltaHR=126e3; #kJ/kmol
CP=2.2; #kJ/(kg K)
R=8.3086e-2; #(Pa m3)/(kmol K)
MA=56; #Kg/Kmol peso molecular
MI=18; #Kg/Kmol peso molecular
epsilon=1/11;
Mpunto=NpuntoA0*MA+NpuntoI*MI; #Kg/h
deltaTad=(NpuntoA0*-deltaHR)/(Mpunto*CP); #K
T=T0+deltaTad*XA;
k=1.75e15*exp(-32000/T); #Kmol/(m3 h bar)
f=(1+epsilon*XA)/(k*R*T0*(1-XA));
endfunction
ej1.m
clear
XA0=0;
XA=0.50;
tau=quad("fnc_ej1",XA0,XA) #h
disp("tiempo en horas")
52
Ejemplo 5.2. Perfiles de conversión y temperatura para operación adiabá-
tica de una reacción reversible
Datos adicionales:
k(273K) = 0,035 dm3/(mol min)
E = 70 000 J/mol
HºA(25 ºC) = −40 kJ/mol
HºB(25 ºC) = −30 kJ/mol
HºC(25 ºC) = −45 kJ/mol
CPA = 25 J/(mol K)
CPB = 15 J/(mol K)
CPC = 20 J/(mol K)
KC(25 ºC) = 25 000
C C2
en la que (− R A ) = k1 C A C B −
KC
53
Para ésta operación adiabática, el balance de energía es
fcn_ej2.m
function dudt=fnc_ej2(u,t)
XA=u(1);
T=u(2);
T0=77+273.15; #K
P0=508.5e3; #Pa
NpuntoA0=20; #mol/s
HA0=-40e3; #J/mol a 25 ºC
HB0=-30e3; #J/mol a 25 ºC
HC0=-45e3; #J/mol a 25 ºC
CPA=25; #J/(mol K)
CPB=15; #J/(mol K)
CPC=20; #J/(mol K)
k1ref= 0.035/60/1000; #m3/(mol s) a 273 K
E1=70e3; #J/mol
KCref=25000; #a 298 K
R=8.314; #J/(mol K)
deltaHR=2*HC0-HA0-HB0;
k1=k1ref*exp(E1/R*(1/273-1/T));
54
KC=KCref*exp(deltaHR/R*(1/298-1/T));
CA0=0.5*P0/(R*T0);
CA=CA0*T0/T*(1-XA);
CB=CA0*T0/T*(1-XA);
CC=2*CA0*T0/T*XA;
RA=-k1*(CA*CB-CC^2/KC);
dudt(1)=-RA/NpuntoA0;
dudt(2)=-RA*-deltaHR/(NpuntoA0*(1-XA)*CPA+NpuntoA0*(1-
XA)*CPB+2*NpuntoA0*XA*CPC);
endfunction
ej2.m
clear
XA0=0;
T0=77+273.15; #K
u0=[XA0 T0]';
V=linspace(0,0.25,30)'; #m3
u=lsode("fnc_ej2",u0,V);
XA=u(:,1);
T=u(:,2); #K
A=0.01; #m2
z=V/A;
xlabel("Longitud, z/m"), ylabel("Conversión, XA"), plot(z,XA,"-@17;;")
pause
xlabel("Longitud, z/m"), ylabel("Temperatura, T/K"), plot(z,T,"-@33;;")
55
0.9
0.8
0.7
0.6
Conversión, XA
0.5
0.4
0.3
0.2
0.1
0
0 5 10 15 20 25
Longitud, z/m
800
750
700
650
Temperatura, T/K
600
550
500
450
400
350
0 5 10 15 20 25
Longitud, z/m
56
Ejemplo 5.3. Perfiles de conversión y temperatura para operación poli-
trópica de una reacción de primer orden
D = 1/6 ft
CPA = 20 Btu/(lbmol ºR)
CPB = 15 Btu/(lbmol ºR)
∆HR = −8000 Btu/lbmol
3000 −1
k = exp 7,82 − h
T / °R
U = 5 Btu/(ft2 h ºR)
N& A N& A0 (1 − X A ) T 1− X A
CA = = = C A0 0
V& T P0 T 1 + εX A
V&0 (1 + εX A )
T0 P
P0
donde ε = 1 , ya que entra puro A, y C A0 = .
RT0
N& A C PA
dT 4U
= (Ta − T ) + r (− ∆H R )
dV D
o bien
57
dT
4U
(Ta − T ) + r (− ∆H R )
= D
dV N& A0 (1 − X A )C PA
fnc_ej3.m
function dudt=fnc_ej3(u,V)
XA=u(1);
T=u(2);
D=1/6; #ft
T0=650; #ºR
Ta=630; #ºR
P0=50; #atm
CPA=20; #Btu/(lbmol ºR)
CPB=15; #Btu/(lbmol ºR)
deltaHR=-8000; #Btu/lbmol
k=exp(7.82-3000/T); #h-1
U=5; #Btu/(ft2 h ºR)
R=0.7302; #(ft3 atm)/(lbmol ºR)
epsilon=1;
CA0=P0/(R*T0); #lbmol/ft3
CA=CA0*T0/T*(1-XA)/(1+epsilon*XA);
r=k*CA;
NpuntoA=1; #lbmol/h
dudt(1)=r/NpuntoA;
dudt(2)=(4*U/D*(Ta-T)+r*-deltaHR)/(NpuntoA*(1-XA)*CPA);
endfunction
ej3.m
clear
XA0=0;
T0=650; #ºR
u0=[XA0 T0]';
V=linspace(0,1,30)'; #ft3
u=lsode("fnc_ej3",u0,V);
XA=u(:,1);
T=u(:,2); #K
xlabel("Volumen, V/ft3"), ylabel("Conversión, XA"), plot(V,XA,"-@17;;")
pause
xlabel("volumen, V/ft3"), ylabel("Temperatura, T/K"), plot(V,T,"-
@33;;")
58
0.9
0.8
0.7
0.6
Conversión, XA
0.5
0.4
0.3
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
Volumen, V/ft3
740
730
720
710
Temperatura, T/ºR
700
690
680
670
660
650
640
0 0.2 0.4 0.6 0.8 1
volumen, V/ft3
59
Ejemplo 5.4. Operación poli-trópica para reacciones en paralelo
Datos adicionales:
∆HR1 = -20 000 J/mol
∆HR2 = -120 000 J/mol
CPA = CPB = 90 J/(mol K)
CPC = 180 J/(mol K)
Ua = 4000 J/(s dm3 K)
Ta = 100 ºC
E 1 1
k1 = 10 exp 1 − s −1
R 300 T
E1 = 8000 cal/mol
E 1 1
k 2 = 0,045 exp 2 − s −1
R 300 T
E2 = 18 000 cal/mol
60
Balance de masa para C:
dN& C
= RC
dV
Las velocidades netas de formación se relacionan con las de reacción según la
estequiometría mediante las relaciones siguientes,
R A = −r1 − 2r2
R B = r1
RC = r2
Ahora relacionamos la concentración de A con los flujos molares y la tempera-
tura,
N& A N& A T N& A
CA = = = Ct 0 0
V& &
T P0 N t T N& t
V&0
T0 P N& t 0
fnc_ej4.m
function dudt=fnc_ej4(u,t)
NpuntoA=u(1);
NpuntoB=u(2);
NpuntoC=u(3);
T=u(4);
T0=150+273.15; #K
NpuntoA0=100; #mol/s
CA0=0.1; #mol/dm3
deltaHR1=-20000; #J/mol
deltaHR2=-120000; #J/mol
CPA=90; #J/(mol K)
CPB=CPA;
CPC=180; #J/(mol K)
Ua=4000; #J/(S dm3 K)
61
Ta=100+273.15; # K
E1=8000; #cal/mol
E2=18000; #cal/mol
R=1.987; #cal/(mol K)
Ct0=CA0;
k1=10*exp(E1/R*(1/300-1/T)); #s-1
k2=0.045*exp(E2/R*(1/300-1/T)); #s-1
Npuntot=NpuntoA+NpuntoB+NpuntoC;
CA=Ct0*T0/T*NpuntoA/Npuntot;
r1=k1*CA;
r2=k2*CA^2;
RA=-r1-2*r2;
RB=r1;
RC=r2;
dudt(1)=RA;
dudt(2)=RB;
dudt(3)=RC;
dudt(4)=(Ua*(Ta-T)+r1*(-deltaHR1)+r2*(-
deltaHR2))/(NpuntoA*CPA+NpuntoB*CPB+NpuntoC*CPC);
endfunction
ej4.m
clear
NpuntoA0=100; #mol/s
NpuntoB0=0;
NpuntoC0=0;
T0=150+273.15; #K
u0=[NpuntoA0 NpuntoB0 NpuntoC0 T0]';
V=linspace(0,1,40)'; #dm3
u=lsode("fnc_ej4",u0,V);
NpuntoA=u(:,1);
NpuntoB=u(:,2);
NpuntoC=u(:,3);
T=u(:,4);
xlabel("Volumen,V/dm3"), ylabel("Flujo molar/(mol/s)"),
plot(V,NpuntoA,"-@;Flujo de A;",V,NpuntoB,"-@;Flujo de B;",V,NpuntoC,"-
@;Flujo de C;")
pause
xlabel("Volumen,V/dm3"), ylabel("Temperatura,T/K"), plot(V,T,"-@;;")
62
100
Flujo de A
Flujo de B
Flujo de C
Flujo molar/(mol/s) 80
60
40
20
0
0 0.2 0.4 0.6 0.8 1
Volumen,V/dm3
Figura 19: Flujos molares en función del volumen del reactor (ej. 4)
850
800
750
700
Temperatura,T/K
650
600
550
500
450
400
0 0.2 0.4 0.6 0.8 1
Volumen,V/dm3
63
Como se observa existe un máximo en el perfil de temperatura para un volu-
men de aproximadamente 0,4 dm3. En esta misma posición se consume total-
mente el reactivo A, es por eso que las reacciones ya no generan calor y por
tanto empieza a descender la temperatura.
64
Capítulo 6. Distribución de Tiempos
de Residencia
65
6.1. Función de distribución de tiempos de residencia
El tiempo que transcurre para que una molécula pase por un reactor recibe el
nombre de tiempo de residencia t. Son dos las propiedades importantes de t: el
tiempo transcurrido desde que la molécula entró al reactor (su edad) y el resto
del tiempo que estará en el reactor (su vida residual).
Es evidente que, en general, los distintos elementos del fluido al seguir diferen-
tes caminos a lo largo del reactor tardarán tiempos diferentes en pasar a través
de él. La distribución de estos tiempos en la corriente de fluido que sale del
recipiente se denomina distribución de edad a la salida descrita por la función
E(t), o más conocida como distribución del tiempo de residencia (DTR) del flui-
do[C. Hill, 1999].
Es conveniente representar la DTR de tal manera que el área bajo la curva sea
la unidad, es decir [Fogler, 2001],
∞
∫ E (t )dt = 1
0
66
De acuerdo con esta representación la fracción de corriente de salida cuya
edad está comprendida entre t y t + dt es E (t ) dt .
∫ C (t )dt
0
T
67
6.3. Momentos de la DTR
Es muy común comparar las DTRs utilizando sus momentos en lugar de tratar
de comparar todas sus distribuciones. Para este fin se usan normalmente tres
momentos. El primero es el tiempo de residencia medio definido como
∞
t m = ∫ tE (t )dt
0
Ejemplo 6.1. Construcción de las curvas CT(t), E(t), F(t) y cálculos de tiem-
po de residencia medio y varianza
t/min 0 1 2 3 4 5 6 7 8 9 10 12 14
CT/(g/m3) 0 1 5 8 10 8 6 4 3 2,2 1,5 0,6 0
Para efectuar los cálculos se debe integrar numéricamente los datos experi-
mentales. En GNU Octave la función adecuada para realizar ésta tarea es
trapz, que implementa el método trapezoidal. La secuencia de cálculos y resul-
tados se presentan en el fichero ej1.m:
68
ej1.m
clear
10
Concentración de trazador, CT/(gm3)
0
0 2 4 6 8 10 12 14
Tiempo, t/min
69
0.2
0.18
0.16
0.14
0.12
E(t)
0.1
0.08
0.06
0.04
0.02
0
0 2 4 6 8 10 12 14
Tiempo, t/min
0.8
0.6
F(t)
0.4
0.2
0
0 2 4 6 8 10 12 14
Tiempo, t/min
70
71
Capítulo 7. Reactor de Lecho Empa-
cado
72
Catálisis se define como la habilidad de una sustancia para actuar como cata-
lizador en un sistema específico y depende de su naturaleza química. En la
catálisis heterogénea este fenómeno catalítico está relacionado con las propie-
dades químicas de la superficie del sólido que se elige como catalizador, siendo
por supuesto estas propiedades superficiales un reflejo de la química del sóli-
do.
Para reactores de sistemas sólido-fluido, la fase sólida tiene dos formas típicas
de presentación:
• Lecho relleno: puede ser fijo o móvil
• Lecho fluido
73
En cualquiera de los dos casos el fluido circula a través del lecho de longitud
frecuentemente mayor que el diámetro y cuya forma de mezclado ideal más
probable es el flujo pistón (Reactor de lecho relleno móvil). La mejor idealiza-
ción para su dinámica de flujo es el flujo pistón, particularmente si el lecho es
relleno (fijo o móvil). Para el lecho fluido el flujo pistón es menos probable, pero
aun así sigue siendo la idealización más favorable, a menos que por la geome-
tría del reactor se determine lo contrario, pero por lo general es muy difícil que
se cumpla el mezclado total. La mayor parte de los procesos catalíticos indus-
triales se llevan a cabo en reactores de lecho fijo, para los cuales existen dos
procedimientos generales de diseño[R. Perry, 1993].
dP G 1 − φ 150(1 − φ )µ
=− + 1.75G
dz ρg c D P φ DP
74
Utilizando la relación entre z y m (masa de catalizador), podemos cambiar las
variables para expresar la ecuación de Ergun en términos de peso del cataliza-
dor[4] [Fogler, 2001]:
dP α T P0 N& t
−
dm 2 T0 P P0 &
N t0
Los balances de masa y energía son similares a los del reactor tubular conti-
nuo con la diferencia que estos ya no se basan en el volumen del reactor donde
se llevan acabo reacciones homogéneas si no en la masa del catalizador por ser
heterogéneas[Fogler, 2001].
M& C P
dT Ua
= (Ta − T ) + ∑ r j′ (− ∆H Rj )
dm ρ b j
75
Existen los tres tipos de operaciones: isotérmico, adiabático, y poli-trópico. Es-
tos tres tipos de operaciones ya se discutieron en el Capitulo 5.
Para
A( g ) + B( g ) ⇔ C ( g )
se tiene que
76
k (PA PB − PC K P )
r′ =
(1 + K A PA + K B PB + K C PC )2
La reacción se efectúa en la superficie del catalizador donde las especies A, B y
C son adsorbidas.
Para
A( g ) + B( g ) ⇔ C ( g )
se tiene que [Fogler, 2001]
k (PA PB − PC K P )
r′ =
1 + K A PA + K C P C
La reacción se efectúa en la superficie del catalizador donde las especies A y C
son adsorbidas y la especie B reacciona desde la fase gaseosa.
77
que 0,05 kg-1 < α < 0,2 kg-1. Grafique XA y y contra m desde m = 0 kg hasta
m = 2 kg.
b) Repita la parte a) para una reacción de primer-orden en la cual hay un
cambio en el número de moles durante la reacción, A → 3B (δ > 0).
c) Repita la parte a) para la reacción de primer-orden A → 1/3B (δ < 0).
La caída de presión relativa en este rector de lecho empacado esta descrita por
la ecuación
dy α 1 + εX A
=−
dm 2 y
fcn_ej1a.m
function dudm=fnc_ej1(u,m)
global alfa delta
XA=u(1);
y=u(2);
CA0=1; #mol/dm3
Vpunto0=1; #dm3/min
kprima=1; #dm3/(kg min)
yA0=1;
NpuntoA0=CA0*Vpunto0; #mol/min
epsilon=delta*yA0;
CA=CA0*y*(1-XA)/(1+epsilon*XA);
rA=-kprima*CA;
dudm(1)=-rA/NpuntoA0;
78
dudm(2)=-alfa/2*(1+epsilon*XA)/y;
endfunction
ej1a.m
clear
global alfa delta
XA0=0;
y0=1;
u0=[XA0 y0]';
deltaj=[0 3 -2/3]';
alfai=[0.05 0.125 0.2]';
m=linspace(0,2,30)'; #kg
n=length(deltaj);
o=length(alfai);
for j=1:n
delta=deltaj(j);
for i=1:o
alfa=alfai(i);
u=lsode("fnc_ej1",u0,m);
XA(:,i)=u(:,1);
y(:,i)=u(:,2);
endfor
xlabel("Masa de catalizador, m/kg"), ylabel("Conversión, XA"),
plot(m,XA,"-@;;")
pause
xlabel("Masa de catalizador, m/kg"), ylabel("Caída de presión relati-
va, y"), plot(m,y,"-@")
pause
endfor
Obsérvese el uso de ciclos for para resolver los tres incisos al mismo tiempo.
Se fijaron tres valore de α: 0,05 kg-1, 0,125 kg-1 y 0,2 kg-1; que corresponden a
las líneas 1,2, y 3 respectivamente. Los perfiles de conversión y caída de pre-
sión se muestran a continuación,
79
0.9
0.8
0.7
0.6
Conversión, XA
0.5
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2
Masa de catalizador, m/kg
1
line 1
line 2
line 3
0.95
Caída de presión relativa, y
0.9
0.85
0.8
0.75
0 0.5 1 1.5 2
Masa de catalizador, m/kg
80
0.7
0.6
0.5
Conversión, XA
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2
Masa de catalizador, m/kg
1
line 1
line 2
0.9 line 3
Caída de presión relativa, y
0.8
0.7
0.6
0.5
0.4
0.3
0 0.5 1 1.5 2
Masa de catalizador, m/kg
81
1
0.9
0.8
0.7
Conversión, XA
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2
Masa de catalizador, m/kg
1
line 1
line 2
line 3
0.98
Caída de presión relativa, y
0.96
0.94
0.92
0.9
0.88
0 0.5 1 1.5 2
Masa de catalizador, m/kg
82
Al observar las figuras anteriores, se establece los siguiente; La conversión fi-
nal entre los diferentes valores del parámetro α no varía considerablemente,
prácticamente el perfil es el mismo; pero al existir un incremento de moles en
la reacción (A → 3B ), la conversión es menor. Por el contrario si existe un de-
cremento en los moles (A → 1/3B ), la conversión se ve favorecida (valores cer-
ca de 1) por la caída de presión a lo largo del reactor. En todos los casos los
perfiles de caída de presión son similares, haciendo notar que ésta es más sua-
ve para un decremento en el número de moles (valores por encima de 0,88) en
oposición con caídas bruscas para un aumento en el número de moles (valores
por debajo de 0,4).
83
k´ = 10 dm6/(kg min)
KA = 1 dm3/mol
KB = 2 dm3/mol
KC = 20 dm3/mol
fnc_ej2a.m
function dudm=fnc_ej2a(u,m)
XA1=u(1);
XA2=u(2);
XA3=u(3);
XA4=u(4);
84
CA0=1; #mol/dm3
CB0=CA0; #mol/dm3
NpuntoA0=1.5; #mol/min
kprima=10; #dm6/(kg min)
KA=1; #dm3/mol
KB=2; #dm3/mol
KC=20; #dm3/mol
alfa=0.4; #kg-1
CA1=CA0*(1-XA1);
CA2=CA0*(1-XA2);
CA3=CA0*(1-XA3);
CA4=CA0*(1-XA4);
CB1=CA1;
CB2=CA2;
CB3=CA3;
CB4=CA4;
CC1=CA0*XA1;
CC2=CA0*XA2;
CC3=CA0*XA3;
CC4=CA0*XA4;
rA1=-(kprima*CA1*CB1)/(1+KA*CA1);
rA2=-(kprima*CA2*CB2)/(1+KA*CA2+KC*CC2);
rA3=-(kprima*CA3*CB3)/(1+KA*CA3+KB*CB3)^2;
rA4=-(kprima*CA4*CB4)/(1+KA*CA4+KB*CB4+KC*CC4)^2;
dudm(1)=-rA1/NpuntoA0;
dudm(2)=-rA2/NpuntoA0;
dudm(3)=-rA3/NpuntoA0;
dudm(4)=-rA4/NpuntoA0;
endfunction
ej2a.m
clear
XA10=0;
XA20=0;
XA30=0;
XA40=0;
u0=[XA10 XA20 XA30 XA40]';
m=linspace(0,2,30)'; #kg
u=lsode("fnc_ej2a",u0,m);
XA=u;
xlabel("Masa de catalizador, m/kg"), ylabel("Conversión, XA"),
plot(m,XA,"-@")
85
ecuación cinética determina un perfil de conversión que es diferente para cada
caso.
1
line 1
0.9 line 2
line 3
line 4
0.8
0.7
Conversión, XA
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2
Masa de catalizador, m/kg
fnc_ej2b.m
function dudm=fnc_ej2b(u,m)
XA1=u(1);
XA2=u(2);
XA3=u(3);
XA4=u(4);
y=u(5);
CA0=1; #mol/dm3
CB0=CA0; #mol/dm3
NpuntoA0=1.5; #mol/min
kprima=10; #dm6/(kg min)
KA=1; #dm3/mol
KB=2; #dm3/mol
KC=20; #dm3/mol
alfa=0.4; #kg-1
CA1=CA0*y*(1-XA1);
86
CA2=CA0*y*(1-XA2);
CA3=CA0*y*(1-XA3);
CA4=CA0*y*(1-XA4);
CB1=CA1;
CB2=CA2;
CB3=CA3;
CB4=CA4;
CC1=CA0*y*XA1;
CC2=CA0*y*XA2;
CC3=CA0*y*XA3;
CC4=CA0*y*XA4;
rA1=-(kprima*CA1*CB1)/(1+KA*CA1);
rA2=-(kprima*CA2*CB2)/(1+KA*CA2+KC*CC2);
rA3=-(kprima*CA3*CB3)/(1+KA*CA3+KB*CB3)^2;
rA4=-(kprima*CA4*CB4)/(1+KA*CA4+KB*CB4+KC*CC4)^2;
dudm(1)=-rA1/NpuntoA0;
dudm(2)=-rA2/NpuntoA0;
dudm(3)=-rA3/NpuntoA0;
dudm(4)=-rA4/NpuntoA0;
dudm(5)=-alfa/(2*y);
endfunction
ej2b.m
clear
XA10=0;
XA20=0;
XA30=0;
XA40=0;
y0=1;
u0=[XA10 XA20 XA30 XA40 y0]';
m=linspace(0,2,30)'; #kg
u=lsode("fnc_ej2b",u0,m);
XA=u(:,1:4);
y=u(:,5);
xlabel("Masa de catalizador, m/kg"), ylabel("Conversión, XA"),
plot(m,XA,"-@")
pause
xlabel("Masa de catalizador, m/kg"), ylabel("Caída de presión relativa,
y"), plot(m,y,"-@;;")
87
0.9
line 1
line 2
0.8 line 3
line 4
0.7
0.6
Conversión, XA
0.5
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2
Masa de catalizador, m/kg
0.9
Caída de presión relativa, y
0.8
0.7
0.6
0.5
0.4
0 0.5 1 1.5 2
Masa de catalizador, m/kg
88
Ejemplo 7.3. Reacción exotérmica reversible en fase gaseosa en un reac-
tor de lecho empacado
C
− rA = kC A2 − C
KC
donde la constante cinética obedece la expresión de Arrhenius,
E 1 1
k = k (T1 ) exp −
R T1 T
y la variación de la constante de equilibrio con la temperatura se puede deter-
minar a partir de la ecuación de van’t Hoff,
∆H R 1 1
K C = K C (T1 ) exp −
R T1 T
89
La caída de presión se puede expresar como una ecuación diferencial,
dy 2 1 − εX A T0
=−
dm α y T
ρ b (Ta − T ) + r (− ∆H R )
Ua ′
dT
=
dm N& A0 C PA
Solución:
fnc_ej3.m
function dudm=fnc_ej3(u,m)
90
XA=u(1);
y=u(2);
T=u(3);
T0=450; #K
NpuntoA0=5; #mol/min
CA0=0.271; #mol/dm3
deltaHR=-40000; #J/mol
CPA=40; #J/(mol K)
CPC=80; #J/(mol K)
kprimaref=0.5; #dm6/(kg min mol) a 450
KCref=25000; #dm3/mol a 450
Ua_rhob=0.8; #J/(Kg min K)
Ta=500; # K
E=41800; #J/(mol K)
R=8.314; #J/(mol K)
alfa=0.015; #Kg-1
P0=10; #atm
delta=-0.5;
yA0=1;
epsilon=delta*yA0;
kprima=kprimaref*exp(E/R*(1/450-1/T));
KC=KCref*exp(deltaHR/R*(1/450-1/T));
CA=CA0*y*(1-XA)/(1+epsilon*XA)*T0/T;
CC=0.5*CA0*XA*y/(1+epsilon*XA)*T0/T;
rprima=kprima*(CA^2-CC/KC);
rAprima=-rprima;
dudm(1)=-rAprima/NpuntoA0;
dudm(2)=-alfa/2*(1+epsilon*XA)/y*T/T0;
dudm(3)=(Ua_rhob*(Ta-T)+rprima*(-deltaHR))/(NpuntoA0*CPA);
endfunction
ej3.m
clear
XA0=0;
y0=1;
T0=450; #K
u0=[XA0 y0 T0]';
m=linspace(0,20,30)'; #kg
u=lsode("fnc_ej3",u0,m);
XA=u(:,1);
y=u(:,2);
T=u(:,3);
xlabel("Masa de catalizador, m/Kg"), ylabel("Conversion, XA"),
plot(m,XA,"-@r+;;")
pause
xlabel("Masa de catalizador, m/Kg"), ylabel("Caída de presión relativa,
y"), plot(m,y,"-@g*;;")
pause
xlabel("Masa de catalizador, m/Kg"), ylabel("Temperatura, T/K"),
plot(m,T,"-@bo;;")
91
0.8
0.7
0.6
Conversion, XA
0.5
0.4
0.3
0.2
0.1
0
0 5 10 15 20
Masa de catalizador, m/Kg
0.95
Caída de presión relativa, y
0.9
0.85
0.8
0.75
0 5 10 15 20
Masa de catalizador, m/Kg
92
1200
1100
1000
Temperatura, T/K
900
800
700
600
500
400
0 5 10 15 20
Masa de catalizador, m/Kg
93
Capítulo 8. Conclusiones y
recomendaciones
8.1. Conclusiones
94
• La utilización del programa será muy fácil ya que ahora se cuenta con el
manual en español y con ejemplos que son muy didácticos que facilitan
el aprendizaje de los alumnos y puedan aplicar a la materia de diseño de
reactores II.
8.2 Recomendaciones
95
• Es aconsejable la difusión del programa ya que este no es muy conocido
y así poder llegar a más personas que necesitan una herramienta que
les facilita el cálculo de ecuaciones diferenciales.
96
Referencias bibliográficas
97
• Hill, C.G., Jr., “An Introduction to Chemical Engineering Kinetics and
Reactor Design”, John Wiley
• Perry Robert H., “Manual del Ingeniero Químico”, Sexta Edición, Edito-
rial McGraw-Hill, Tomo II, 1993, México.
98
Anexo 1. Instalación de GNU Octave
1-. Aquí comienzas con los pasos de la instalación en tu PC. El primer paso es
aceptar el contrato de GNU OCtave. Para seguir con la instalación debes pre-
sionar "I Agree".
99
2-. Luego, te ofrece cual opción de instalación debes elegir. Te recomendamos
la opción "Install for All Users" y presionar "next".
3-. En este paso, te indica donde guardará la aplicación GNU Octave. Como
predeterminado viene la opción de guardarlo en la carpeta "archivos de pro-
grama" (recomendado). Para continuar presiona "Install".
100
4-. Este paso te permite elegir el tipo de sistema que tienes para usar el mejor
GNU Octave en tu computador. El numero 3: es para Pentium II y el 4: es para
Pentium IV . Para continuar presiona el numero entre el 1 y el 4, por ejemplo el
4 si tu computador es Pentium IV y luego presiona "Enter".
101
6-. Ya haz finalizado la instalación de GNU Octave. Para empezar a usar el
programa tienes que buscar el icono de GNU Octave en el escritorio de tu PC.
Para poder correr los archivos de GNU Octave se deben guardar en la carpeta
que se encuentra en:
C:\Archivos de programa\GNU Octave 2.1.50\octave_files
En esta carpeta octave_files uno puede crear otras carpetas con distintos nom-
bres, para poder acceder a ellas se usa el comando “cd” por ejemplo
cd reactor_tubular_continuo
102
Anexo 2. Manual de Uso de GNU Oc-
tave
103
con el álgebra lineal y las ecuaciones diferenciales, lo cual favoreció su desa-
rrollo.
>>
Ejemplos sencillos
104
ejemplos. Cada vez que se complete una línea con una pulsación de retorno de
carro, el programa responderá con un segundo prompt para seguir recibiendo
entrada del usuario, o con la respuesta (puede tardar más o menos según el
número de operaciones necesaria para computarla) si el usuario introdujo una
orden completa.
105
También se observa que no hay ninguna diferencia a la hora de definir un nú-
mero real, complejo o imaginario, o al usarlo, lo que supone una gran comodi-
dad a la hora de programar.
Octave usa el punto (.) para definir números decimales (exactamente igual que
en las calculadoras).
Para obtener el valor de una variable basta con teclear el nombre de la variable
a continuación del prompt,
>> b
b = 2.1 + 2i
106
Para almacenar la matriz identidad de rango 3 en una variable escribiríamos lo
siguiente:
>> I = [1 0 0;0 1 0; 0 0 1]
I =
1 0 0
0 1 0
0 0 1
Octave ofrece soporte para datos predefinidos, que incluyen escalares (reales y
complejos), vectores, matrices, cadenas de caracteres y estructuras. También
es posible la definición de nuevos datos por parte el usuario, programados en
algún lenguaje que produzca código máquina (FORTRAN, C++), aunque esta
posibilidad aún no ha sido documentada suficientemente. Por este motivo en
esta sección nos centraremos únicamente en los datos predefinidos (Built-in).
Los objetos numéricos predefinidos son los escalares (reales y complejos), y las
matrices (los vectores se consideran matrices especiales, en que una de sus
dimensiones es 1). Todos los datos numéricos son almacenados como números
107
de doble precisión, lo que significa que en sistemas que usan el formato en
punto flotante de la IEEE se pueden representar números en el rango 2.2e-308
a 1.7e+308 y la precisión aproximada de 2.2e-16. Los valores exactos se en-
cuentran en las variables realmin, realmax y eps, respectivamente.
Escalares
Rangos numéricos
Un rango es una forma más cómoda de escribir un vector con elementos equi-
espaciados. Un rango se define como una base o primer valor del rango, un
valor opcional de incremento entre elementos y un valor máximo que el rango
no superará. Estos tres elementos se separan por el símbolo dos puntos (:). El
108
incremento puede ser positivo o negativo, y en caso de omitirse se asumirá va-
lor 1. Por ejemplo:
>> 1:10
ans =
1 2 3 4 5 6 7 8 9 10
>> 1:2:10
ans =
1 3 5 7 9
El máximo del rango puede que no sea alcanzado en la expansión del rango. Si
es necesario que forme parte del conjunto de elementos y se conoce el número
de elementos que debe contener, se recomienda usar la función linspace() en
su lugar.
Matrices
En el caso de un vector basta con indicar un sólo índice (el de la posición del
elemento), o se puede usar la notación de dos índices, pero en este caso si el
109
vector es un vector fila el primer índice valdrá uno y si es un vector columna
será el segundo índice el que valga uno.
Para recuperar varios elementos consecutivos de una misma fila de una matriz
(esto es un vector fila), usaremos un rango como segundo índice. Si en cambio
queremos recuperar un vector columna, usaremos un rango como primer índi-
ce. Y si lo que queremos es recuperar una sub-matriz usaremos rangos tanto
para el primer como para el segundo índice:
>> b(1,2:3)
ans =
2 1
>> b(1:2,3)
ans =
1
3
>> b(:,2:3)
ans =
2 1
3 4
Si se desean todos los elementos de una fila o de una columna, basta con indi-
car el rango sólo con los dos puntos: b(1,:) nos devolvería la primera fila de b.
Para más información, desde el prompt de Octave teclear help -i matrices.
A2.2.2. Variables
Las variables nos permiten dar nombre a los valores que nos interesa guardar
y poder referirnos a ellos más tarde. Ya se han visto muchos ejemplos de va-
riables en los ejemplos anteriores. El nombre de una variable debe ser una se-
cuencia de letras, dígitos, y subrayados (guión bajo), pero no puede empezar
por dígito. Octave no impone ninguna restricción a la longitud de los nombres
de variables.
Sin embargo nombres que empiecen por dos subrayados se reservan para el
uso interno y sólo se deberán en el código para acceder a las variables predefi-
nidas (y documentadas).
110
El nombre de una variable es una expresión válida. Representa el valor alma-
cenado en la variable. Una variable se define cuando se le asigna valor por
primera vez, y no hay ningún problema en asignarle posteriormente distintos
valores, aunque sean de otros tipos. Se da valor a una variable utilizando el
operador igual (=) y si se trata de variables numéricas, con los operadores de
incremento.
Un tipo especial de variable son las variables globales. Una variable global es
aquella que se declara utilizando la palabra reservada global. Una variable de-
clarada de esta manera puede ser accedida desde cualquier ámbito, indepen-
dientemente de dónde se haya definido.
A2.2.3. Operadores
Operadores aritméticos
111
Tabla de operadores aritméticos:
Operador Descripción
Suma. Si los dos operadores son matrices las dimensiones deben
x+y
coincidir. Si no el escalar se suma a cada elemento de la matriz.
x .+ y Suma elemento a elemento. Esta operación es equivalente a +.
Resta. El resultado es equivalente a x + (-y), donde -y representa el
x–y
opuesto de y.
x .- y Resta elemento a elemento. Esta operación equivale a -.
Multiplicación de matrices. El número de columnas de x debe coin-
x*y
cidir con el número de filas de y.
x .* y Multiplicación de matrices elemento a elemento.
División derecha. Conceptualmente es equivalente a (inverso (y') *
x/y x')', pero sin necesidad de calcular la inversa de y ni calcular las
transpuestas de las matrices.
División elemento a elemento, de los elementos de x divididos por
x ./ y
los elementos de y.
x\y División izquierda. Conceptualmente es equivalente a inverso (x) * y.
División elemento a elemento, de los elementos de y entre los ele-
x .\ y
mentos de x
Operación de exponenciación. Ambos operadores no pueden ser
x ^ y o x ** y
matrices, y si alguno es matriz, deberá ser cuadrada.
Exponenciación, elemento a elemento. Si ambos operadores son
x .^ y o x .** y
matrices, deberán tener igual dimensión.
Negación. Se obtiene el escalar opuesto o la matriz de igual dimen-
-x
sión y cuyos elementos son los opuestos de la matriz original.
Operador suma unitario. No tiene ninguna consecuencia sobre el
+x
operando.
Conjugado complejo y transpuesta. Para números reales es equiva-
x'
lente a la transposición.
x.' Transposición de los elementos de x. No se conjugan los elementos.
Operador de preincremento. Equivalente a ejecutar la expresión
++x
x=x+1 antes de acceder al valor de x
Operador de predecremento. Equivalente a ejecutar la expresión
--x
x=x-1 antes de acceder al valor de x
Operador de postincremento. Equivalente a ejecutar la expresión
x++
x=x+1 después de acceder al valor de x
112
Operador de postdecremento. Equivalente a ejecutar la expresión
x--
x=x-1 después de acceder al valor de x
Operadores de comparación
Operadores booleanos
113
ción. Si además se utilizan en estructuras de control de flujo (if o while) sólo
serán cierto si todos los elementos son distintos de cero:
>> [1 0] & [1 1]
ans = 1 0
Operador de asignación
114
A2.2.4. Expresiones de control de flujo
Sentencia if
if (condición)
cuerpo-entonces
endif
if (condición)
cuerpo-entonces
else
cuerpo-alternativa
endif
if (condición)
cuerpo-entonces
elseif (condición)
cuerpo-entonces
else
cuerpo-alternativa
endif
Sentencia while
115
La sintaxis es la siguiente:
while (condición)
cuerpo
endwhile
Sentencia for
Normalmente el bucle for se usa cuando se quieren hacer las cosas cierto nú-
mero de veces (tantas como columnas tenga el resultado de evaluar la expre-
sión).
116
Estas sentencias sólo pueden usarse dentro de bucles for y while. La sentencia
break salta fuera del bucle más interno que lo encierra. En el siguiente ejem-
plo, el bucle terminará cuando la variable var valga 3:
for var = 1:10
a
if(a==3)
break
endif
endfor
En este caso el bucle llegará hasta el final (a=10), pero no se imprimirá el valor
de a cuando esta valga 3.
Normalmente estas dos sentencias se usan desde dentro de condiciones if.
Las funciones y scripts son el mecanismo que ofrece Octave para simplificar la
escritura de programas o la carga de datos iniciales. Se pueden escribir direc-
tamente en la línea de comandos de Octave, o en ficheros externos. En ese ca-
so los scripts y las funciones se invocan exactamente igual que cualquier otra
función predefinida de Octave. La única condición es que esos ficheros se en-
cuentren en un directorio dentro del path de Octave . Para más información
sobre el path de búsqueda de ficheros de Octave consultar help -i LOADPATH.
Los ficheros de scripts y funciones de Octave tienen extensión ".m" por compa-
tibilidad con Matlab. Las funciones tienen el siguiente formato:
function variable_retornada = nombre_funcion (lista_argumentos)
cuerpo_de_función
endfunction
117
Empiezan con la palabra clave function que indica el inicio de la declaración de
una función de octave. Opcionalmente sigue la declaración de las variables
retornadas. Puede ser una única variable (de cualquier tipo permitida en octa-
ve) o una lista de variables entre corchetes ([]). Las variables pueden ser de dis-
tintos tipos. Si no existe la lista de variables, tampoco deberá aparecer el signo
igual y la función no devolverá ningún valor.
Para que sea posible la devolución de algún valor, dentro del cuerpo de la fun-
ción deben existir variables de igual nombre que las que aparecen en el campo
variable_retornada. No es necesario devolver ningún valor explícitamente. De-
ntro del cuerpo de la función son accesibles las variables declaradas en la lista
de argumentos, que tendrán el valor que se les asignó al hacer la llamada (la
forma de asignar los valores a las variables es por la posición, es decir, el pri-
mer valor será asignado a la primera variable de la lista de argumentos). Si el
último de los argumentos de la función es el símbolo ..., significa que la fun-
ción admite un número indeterminado de parámetros. Es responsabilidad del
programador afrontar el tratamiento de los parámetros no declarados explíci-
tamente. Se puede terminar en cualquier momento la ejecución de la función
usando la palabra return. Además de lo anterior, dentro del cuerpo de la fun-
ción está disponible la variable nargin. Su valor es asignado automáticamente
al número de parámetros que se han pasado en la llamada. Esto puede permi-
tirnos hacer un pequeño chequeo antes de continuar con la ejecución del resto
del código y evitar fallos por falta de parámetros. Por ejemplo:
function [x y] = polar2cartesiano(radio, angulo)
if(nargin!=2)
fprintf(2,"Error, el número de parámetros debe ser 2\n");
118
return
endif
x= radio*cos(angulo);
y= radio*sin(angulo);
endfuncion
Los scritps son simples ficheros de texto en el que se introducen las sentencias
de la misma manera que se introducen en la línea de comandos. Su principal
utilidad es definir un entorno de trabajo en cualquier momento, definiendo una
serie de variables y/o funciones. Cada vez que queramos recuperar ese estado
deberemos volver a invocar el script por su nombre (sin la extensión). La única
restricción es que la primera sentencia no debe ser la definición de una fun-
ción. En caso contrario Octave pensará que se trata de un fichero de función y
los resultados no serán los esperados.
119
A2.3.2. Gráficas
Octave normalmente está configurado para usar gnuplot para representar sus
gráficos. El programa externo elegido puede configurarse con la variable gnu-
plot_binary. Existen cuatro funciones para representar gráficas en Octave:
plot() y mesh() para representaciones en 2 y 3 dimensiones respectivamente.
Admiten como parámetros vectores y matrices para representar (cuidado con
las dimensiones).
Las otras dos funciones son gplot y gsplot. Son simples interfaces para las fun-
ciones plot y splot del programa gnuplot, y por lo tanto admiten la misma sin-
taxis.
Para obtener más información: help plot. Éstos son unos ejmplos del comando
plot:
Éste comando graficará y con punto del tipo 2 (mostrados como +) y color 1
(rojo), y2 con líneas, y3 con líneas de color 4 (magenta) y y4 con punto mostra-
dos como + .
t = 0:0.1:6.3;
plot (t, cos(t), "-;cos(t);", t, sin(t), "+3;sin(t);");
En esta sección se nombrarán una de las utilidades que posee Octave para
resolver problemas de ecuaciones diferenciales ordinarias (EDOs).
120
-- = f (x, t)
dt
su sintaxis es
lsode (“nombre_funcion”, x0, t)
que devuelva una matriz de x como una función de t, dada el estado inicial del
sistema x0. Cada uno resultados en la matriz corresponde a uno de los ele-
mentos en el vector t. El primer elemento de t corresponde al estado x0 inicial,
para que la primera fila del rendimiento sea x0. Por ejemplo:
La integración es entonces
x = lsode ("f", x0, t);
A2.5. Referencias
Octave es un programa muy extenso (y fácilmente extensible), de gran utilidad
en el mundo de la ingeniería, las ciencias, la informática y muchos otros cam-
pos de la ciencia en que se necesite una herramienta suficientemente potente
121
para realizar todo tipo de cálculo numérico, y a la vez sencilla que permita un
fácil aprendizaje
122
Anexo 3. Plan Global de la Materia
1. Identificación
123
Dinámica y Control de Procesos (2004083)
Laboratorio Operaciones Unitarias II
(2004188)
2. Justificación general
124
conocer los distintos tipos y configuraciones de reactores químicos que se utili-
zan en los procesos industriales.
3. Propósitos generales
4. Objetivos generales
5.1.2. Contenido
125
• Las ecuaciones de continuidad, balance de masa.
• La ecuación de energía, balance de calor.
5.2.2. Contenido
126
5.3.1. Objetivos de la unidad
5.3.2. Contenido
• Operación isotérmica.
• Operación adiabática y estabilidad.
• Operación poli-trópica y estabilidad.
• Reactor tubular.
• Operación isotérmica.
• Operación adiabática.
• Operación poli-trópica.
127
5.4. Comportamiento real de los reactores en sistemas homogéneos
5.4.2. Contenido
128
5.5.2. Contenido
6. Evaluación
Los estudiantes están obligados a asistir a los exámenes los días que el docen-
te fijará las primeras semanas de clases. Si algún estudiante no se presentase
a un examen, no se le asignará nota alguna, además que no se le otorgará la
posibilidad de rendir éste examen en otra fecha, salvo autorización justificada
ante autoridad facultativa pertinente.
7. Cronograma
8. Disposiciones generales
129
y técnicas de solución utilizando los fundamentos que se transmiten. Se espera
que el estudiante desarrolle estas cualidades mediante el estudio auto-didacta
y la resolución de problemas planteados. La solución parcial o total de prácti-
cas por parte del estudiante no representa algún valor en la nota de evalua-
ción.
9. Bibliografía
130