#*---------------------------------------------------------------------
* EMSO Model Library (EML) Copyright (C) 2004 - 2007 ALSOC.
*
* This LIBRARY is free software; you can distribute it and/or modify
* it under the therms of the ALSOC FREE LICENSE as available at
* http://www.enq.ufrgs.br/alsoc.
*
* EMSO Copyright (C) 2004 - 2007 ALSOC, original code
* from http://www.rps.eng.br Copyright (C) 2002-2004.
* All rights reserved.
*
* EMSO is distributed under the therms of the ALSOC LICENSE as
* available at http://www.enq.ufrgs.br/alsoc.
*
*----------------------------------------------------------------------
* 9. Gas phase catalytic reactor
*----------------------------------------------------------------------
*
* Description:
* This problem is part of a collection of 10 representative
* problems in Chemical Engineering for solution by numerical methods
* developed for Cutlip (1998).
*
* Subject:
* * Reaction Engineering
*
* Concepts utilized:
* Design of a gas phase catalytic reactor with pressure drop for
* a first order reversible gas phase reaction.
*
* Numerical method:
* * Simultaneous ODEs with known boundary conditions
*
* Reference:
* * CUTLIP et al. A collection of 10 numerical problems in
* chemical engineering solved by various mathematical software
* packages. Comp. Appl. in Eng. Education. v. 6, 169-180, 1998.
* * More informations and a detailed description of all problems
* is available online in http://www.polymath-software.com/ASEE
*
*----------------------------------------------------------------------
* Author: Rodolfo Rodrigues
* GIMSCOP/UFRGS - Group of Integration, Modeling, Simulation,
* Control, and Optimization of Processes
* $Id$
*--------------------------------------------------------------------*#
using "types";
Model stream
PARAMETERS
outer NComp as Integer (Brief="Number of components", Lower=1);
cp(NComp) as cp_mol;
SET
cp = [40, 80]*'J/mol/K';
VARIABLES
C(NComp) as conc_mol (Brief="Molar concentration", Lower=0, DisplayUnit='mol/l');
T as temperature;
P as pressure;
end
FlowSheet reactor
PARAMETERS
NComp as Integer (Brief="Number of components", Lower=1);
NReac as Integer (Brief="Number of reactions");
Tref as temperature (Brief="Reference temperature", Default=450);
Ta as temperature;
ko(NReac) as Real (Brief="Frequency factor at Treff", Unit='l^2/kg/min/mol');
Ko(NReac) as Real (Unit='l/mol');
E(NReac) as energy_mol (Brief="Activation energy");
R as Real (Brief="Universal gas constant", Unit='J/mol/K', Default=8.314);
DH(NReac) as enth_mol;
U as Real (Unit='J/kg/K/min');
alpha as Real (Unit='1/kg');
VARIABLES
Inlet as stream;
Outlet as stream;
Fo(NComp) as flow_mol (Brief="Inlet molar flow");
X as fraction (Brief="Molar conversion of A");
y as fraction (Brief="Normalized pressure");
Tn as Real (Brief="Temperature by 1000", Lower=0.273);
r(NReac) as Real (Brief="Mass rate of reaction", Unit='mol/kg/min');
k(NReac) as Real (Brief="Specific rate of reaction", Unit='l^2/kg/min/mol');
K(NReac) as Real (Brief="Equilibrium constant", Unit='l/mol');
W as mass (Brief="Catalytic weight");
EQUATIONS
"Change time in W"
W = time*'kg/s';
"Mole balance"
diff(X) = -r(1)/Fo(1)*'kg/s';
"Rate of reaction"
-r = k*(Outlet.C(1)^2 - Outlet.C(2)/K);
"Specific rate of reaction"
k = ko*exp(E/R*(1/Tref - 1/Outlet.T));
"Equilibrium constant"
K = Ko*exp(DH/R*(1/Tref - 1/Outlet.T));
"Molar concentration of A"
Outlet.C(1) = Inlet.C(1)*(1 - X)/(1 - 0.5*X)*y*(Inlet.T/Outlet.T);
"Molar concentration of C"
Outlet.C(2) = 0.5*Inlet.C(1)*X/(1 - 0.5*X)*y*(Inlet.T/Outlet.T);
"Pressure drop"
diff(y) = -alpha*(1 - 0.5*X)/2/y*(Outlet.T/Inlet.T)*'kg/s';
"Energy balance"
diff(Outlet.T) = (U*(Ta - Outlet.T) + r*DH)/(Fo(1)*Inlet.cp(1))*'kg/s';
"Normalized pressure"
y = Outlet.P/Inlet.P;
"Temperature/1000"
Tn = Outlet.T/1e3/'K';
SET
NComp = 2; # A, and C
DH(1) = -4e4*'J/mol';
ko(1) = 0.5*'l^2/kg/min/mol'; # at Tref
Ko(1) = 2.5e4*'l/mol'; # at Tref
E(1) = 4.18e4*'J/mol';
Ta = 500*'K';
U = 0.8*'J/kg/K/min';
alpha = 0.015/'kg';
SPECIFY
Fo = [5, 0]*'mol/min';
Inlet.C = [0.271, 0]*'mol/l';
Inlet.T = 450*'K';
Inlet.P = 10*'atm';
INITIAL
"Molar conversion"
X = 0;
"Drop pressure"
y = 1;
"Temperature"
Outlet.T = Inlet.T;
OPTIONS
TimeStart = 0;
TimeStep = 0.25;
TimeEnd = 20;
TimeUnit = 's';
end