*Isothermal Reactor Network Synthesis *Constant Density Assumption *just CSTRs for algebraic formulation OPTION ITERLIM = 100000; *OPTION NLP = CONOPT; *Sets SET I reaction components /1*4/; SET J reaction paths /1*3/; SET L mixed reactors (CSTRs) /1*5/; ALIAS (L,LP) SET R feeds /1/; SET P products /1/; *Parameters *reaction rate constants [gmol/L-min,1/min,L/gmol-min] PARAMETER k0(J) /1 0.025, 2 0.2, 3 0.4/; *stoichiometric coefficients TABLE nu(I,J) 1 2 3 1 -1 -1 -1 2 1 0 0 3 0 1 0 4 0 0 1; *feed flowrate [L/min] PARAMETER fa(R) /1 100/; *feed composition [gmol/L] TABLE ca(R,I) 1 2 3 4 1 1 0 0 0; VARIABLES objval objective variable 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 rm(L,J) CSTR reaction rates; *Bounds and starting points fad.LO(R,L) = 0; fad.L(R,L) = 50; fad.UP(R,L) = 1000; fd.LO(L) = 0; fd.L(L) = 50; fd.UP(L) = 1000; cd.LO(L,I) = 0; cd.L(L,I) = 0.2; cd.UP(L,I) = 10; fg.LO(L) = 0; fg.L(L) = 100; fg.UP(L) = 1000; cg.LO(L,I) = 0; cg.L(L,I) = 0.2; cg.UP(L,I) = 10; fgd.LO(L,LP) = 0; fgd.L(L,LP) = 50; fgd.UP(L,LP) = 1000; fgh.LO(L,P) = 0; fgh.L(L,P) = 50; fgh.UP(L,P) = 1000; fh.LO(P) = 0; fh.L(P) = 100; fh.UP(P) = 1000; ch.LO(P,I) = 0; ch.L(P,I) = 0.2; ch.UP(P,I) = 10; vm.LO(L) = 0; vm.L(L) = 1; vm.UP(L) = 10000; rm.LO(L,J) = 0; rm.L(L,J) = 0; rm.UP(L,J) = 10000; EQUATIONS obj splita(R) mixdt(L) mixdc(L,I) cstrt(L) cstrc(L,I) rate1(L) rate2(L) rate3(L) splitg(L) mixht(P) mixhc(P,I); * objective obj.. objval =e= ch('1','3')/(1-ch('1','1')); *feed splitter splita(R).. fa(r) =e= SUM(L, fad(r,l)); *pre-reaction mixers mixdt(L).. fd(L) =e= SUM(R, fad(R,L)) + SUM(LP, fgd(LP,L)); mixdc(L,I).. cd(L,I)*fd(L) =e= SUM(R, ca(R,I) *fad(R,L)) + SUM(LP, cg(LP,I)*fgd(LP,L)); *CSTRs cstrt(L).. fg(L) =e= fd(L); cstrc(L,I).. cg(L,I)*fg(L) =e= cd(L,I)*fd(L) + vm(L)*SUM(J, nu(I,j)*rm(L,j)); *CSTR reaction rates rate1(L).. rm(L,'1') =e= k0('1'); rate2(L).. rm(L,'2') =e= k0('2')*cg(L,'1'); rate3(L).. rm(L,'3') =e= k0('3')*cg(L,'1')*cg(L,'1'); *post-reactor splitters splitg(L).. fg(L) =e= SUM(LP, fgd(L,LP)) + SUM(P, fgh(L,P)); *product mixer mixht(P).. fh(P) =e= SUM(L, fgh(L,P)); mixhc(P,I).. fh(p)*ch(P,I) =e= SUM(L, fgh(L,P)*cg(L,I)); MODEL network /ALL/; SOLVE network USING NLP MAXIMIZING objval;