#*--------------------------------------------------------------------- * 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. * *---------------------------------------------------------------------- * 2. Material balance on a separation train *---------------------------------------------------------------------- * * 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: * * Introduction to Chemical Engineering * * Concepts utilized: * Material balances on a steady-state process with no recycle. * * Numerical method: * * Simultaneous linear equations * * 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 of a stream *--------------------------------------------------------------------*# Model stream PARAMETERS outer NComp as Integer (Brief="Number of chemical components", Lower=1); VARIABLES F as flow_mol (Brief="Molar flow rate", DisplayUnit='mol/min'); X(NComp)as fraction (Brief="Mole fraction"); end #*--------------------------------------------------------------------- * Model of a column *--------------------------------------------------------------------*# Model column VARIABLES in Feed as stream; out Top as stream; out Bottom as stream; EQUATIONS "Component balance" Feed.F*Feed.X = Top.F*Top.X + Bottom.F*Bottom.X; end #*--------------------------------------------------------------------- * Array of distillation columns *--------------------------------------------------------------------*# FlowSheet distillation_columns PARAMETERS NComp as Integer; VARIABLES feed as stream; DEVICES column1 as column; # 1 column2 as column; # 2 column3 as column; # 3 CONNECTIONS feed to column1.Feed; column1.Top to column2.Feed; column1.Bottom to column3.Feed; SET NComp = 4; # xylene, styrene, toluene, benzene EQUATIONS "Overall balance for #2" column2.Feed.F = column2.Top.F + column2.Bottom.F; "Overall balance for #3" column3.Feed.F = column3.Top.F + column3.Bottom.F; SPECIFY # Feed to column 1 feed.F = 70*'mol/min'; feed.X = [0.15, 0.25, 0.40, 0.20]; # Column 2 column2.Top.X = [0.07, 0.04, 0.54, 0.35]; column2.Bottom.X = [0.18, 0.24, 0.42, 0.16]; # Column 3 column3.Top.X = [0.15, 0.10, 0.54, 0.21]; column3.Bottom.X = [0.24, 0.65, 0.10, 0.01]; OPTIONS Dynamic = false; end