#Nonisothermal Reactor Network Synthesis #Constant Density Assumption #just CSTRs for algebraic formulation # # C. A. Schweiger and C. A. Floudas, "Optimization # Framework for the Synthesis of Chemical Reactor # Networks", Ind. Eng. Chem. Res. 1998, submitted # OPTIONS {{ FTOL = "1e-6"; OTOL = "1e-6"; SNOPT = "Iterations Limit 100000"; SNOPT = "Major Iterations Limit 10000"; MINOS = "Iterations Limit 100000"; MINOS = "Major Iterations Limit 10000"; }} DECLARATIONS {{ INDEX {i,j,k,k',l,l',r,p}; #Sets SET I = |1:4|; #reaction components SET J = |1:2|; #reaction paths SET L = |1:5|; #mixed reactors (CSTRs) SET R = |1|; #feeds SET P = |1|; #products #Parameters #Gas constant PARAMETER rg = 1.987; #cal/gmol/K #reaction rate constants [mol/hr/kgcat] PARAMETER k0(J) = {6.284e11,2.732e16}; #activation energy [cal/gmol] PARAMETER e(J) = {15500,26799.5}; #heat of reaction (-H/rho/Cp) [K kg/mol] PARAMETER h(J) = {96.5,-96.5}; #stoichiometric coefficients PARAMETER nu(I,J) = { -1, 1, -0.5,0.5, 1, -1, 0, 0}; #feed flowrate [kg/h] PARAMETER fa(R) = {7731}; #feed composition [mol/kg] PARAMETER ca(R,I) = {2.5,3.46,0,26.05}; XVAR {fad(R,L), #flowrate from feed splitters to CSTR mixers fd(L), #flowrate of CSTR inlets cd(L,I), #composition of CSTR inlets fg(L), #flowrate of CSTR outlets cg(L,I), #composition of CSTR outlets fgd(L,L), #flowrate from CSTR splitters to CSTR mixers fgh(L,P), #flowrate from CSTR splitters to product mixers fh(P), #flowrate of product ch(P,I), #composition of product vm(L), #CSTR reactor volumes tm(L), #CSTR reactor temperatures rm(L,J) #CSTR reaction rates }; #Bounds and starting points LBDS fad(R,L) = {0}; STP fad(R,L) = {7731,0,0,0,0}; UBDS fad(R,L) = {10000}; LBDS fd(L) = {0}; STP fd(L) = {7731}; UBDS fd(L) = {10000}; LBDS cd(L,I) = {0}; STP cd(L,I) = {ca(R,I)}; UBDS cd(L,I) = {100}; LBDS fg(L) = {0}; STP fg(L) = {7731}; UBDS fg(L) = {10000}; LBDS cg(L,I) = {1e-6}; STP cg(L,I) = {ca(R,I)}; UBDS cg(L,I) = {100}; LBDS fgd(L,L) = {0}; STP fgd(L,L) = >; UBDS fgd(L,L) = >; LBDS fgd(L,L) = >; UBDS fgd(L,L) = >; LBDS fgh(L,P) = {0}; STP fgh(L,P) = {0,0,0,0,7731}; UBDS fgh(L,P) = {10000}; LBDS fh(P) = {0}; STP fh(P) = {7731}; UBDS fh(P) = {10000}; LBDS ch(P,I) = {0}; STP ch(P,I) = {ca(R,I)}; UBDS ch(P,I) = {100}; LBDS vm(L) = {100}; STP vm(L) = {1000}; UBDS vm(L) = {50000}; LBDS tm(L) = {300}; STP tm(L) = {1200}; UBDS tm(L) = {1200}; LBDS rm(L,J) = {0}; STP rm(L,J) = {0}; UBDS rm(L,J) = {100000}; }} MODEL {{ MIN: -ch(1,3); #feed splitter splita(r E R): fa(r) =e= <>; #pre-reaction mixers mixdt(l E L): fd(l) =e= <> + <>; mixdc(l E L, i E I): cd(l,i)*fd(l) =e= <> + <>; #CSTRs cstrt(l E L): fg(l) =e= fd(l); cstrc(l E L, i E I): cg(l,i)*fg(l) =e= cd(l,i)*fd(l) + vm(l)*<>; #CSTR reaction rates rate1(l E L): rm(l,1) =e= k0(1)*exp[-e(1)/tm(l)] *cg(l,1)^0.5*cg(l,2)/<>^1.5; rate2(l E L): rm(l,2) =e= k0(2)*exp[-e(2)/tm(l)] *cg(l,2)^0.5*cg(l,3)/cg(l,1)^0.5/<>; #post-reactor splitters splitg(l E L): fg(l) =e= <> + <

>; #product mixer mixht(p E P): fh(p) =e= <>; mixhc(p E P, i E I): fh(p)*ch(p,i) =e= <>; }}