# rathore_hen.in # # Simple separation sequence synthesis example based on the problem # described by Rathore et al, AIChE J, May 1974. This is similar to # the problem described in rathore.in except that a wider range of # operating pressures is allowed and in that we attempt to identify # solutions which have positive aspects for heat integration. This # problem therefore takes a little longer to run than the smaller # problem. # # Copyright (c) 2000, Eric S Fraga, UCL, All rights reserved. # # -------------------------------------------- # # Give the synthesis problem a name and a description. These are used # for report generation. All output will appear in a subdirectory # named after the project name. # project RathoreHen title "Heat-integrated separation sequence synthesis [Rathore et al., 1974]" # # tell the system where to find the classes referenced below use jacaranda.design.ps # for base stream and component classes use jacaranda.design.units # for the unit models and unit variables # # Define a constant used by the rest of the input file, specifically # for definining the component discretizations. # variables constant Base 10 "Percentage component flow discretization" # define the flows of the components in the feed constant Fpropane " 45.36 *kmol/hr" constant Fibutane "136.08 *kmol/hr" constant Fnbutane "226.8 *kmol/hr" constant Fipentane "181.44 *kmol/hr" constant Fnpentane "317.52 *kmol/hr" constant FeedFlow "Fpropane+Fibutane+Fnbutane+Fipentane+Fnpentane" end # # The feed stream consists of five hydrocarbon components. The base # flow for each component is 10% of the total initial flow for that # component. In other words, component flows will map to the nearest # 10% of the initial flow. This is sufficient for the level of detail # desired for this type of problem. The main effect it has is on the # purity specification of the final product streams. # KistaComponent propane base "Fpropane/Base" bp 230.8 cpv -4.224 3.062e-1 -1.586e-4 3.214e-8 lhtc "0.583 *kW/m^2/K" vhtc "5.0 *kW/m^2/K" end KistaComponent ibutane base "Fibutane/Base" bp 263.0 cpv -1.390 3.847e-1 -1.846e-4 2.895e-8 lhtc "0.583 *kW/m^2/K" vhtc "5.0 *kW/m^2/K" end KistaComponent nbutane base "Fnbutane/Base" bp 272.4 cpv 9.487 3.313e-1 -1.108e-4 -2.821e-9 lhtc "0.583 *kW/m^2/K" vhtc "5.0 *kW/m^2/K" end KistaComponent ipentane base "Fipentane/Base" bp 301.0 cpv -9.525 5.066e-1 -2.729e-4 5.723e-8 lhtc "0.583 *kW/m^2/K" vhtc "5.0 *kW/m^2/K" end KistaComponent npentane base "Fnpentane/Base" bp 309.3 cpv -3.626 4.873e-1 -2.580e-4 5.304e-8 lhtc "0.583 *kW/m^2/K" vhtc "5.0 *kW/m^2/K" end # # The feed consists of a single liquid phase made up of the components # listed above. # Phase feedphase comps propane ibutane nbutane ipentane npentane x 0.05 0.15 0.25 0.2 0.35 flow "FeedFlow" phase liquid end # # Define the actual feed stream. We consider four pressure levels # within the range 1 to 30 atmospheres. # PStream feed # the stream has one phase add feedphase # define the valid pressure range and number of values in that # range prange "1 *atm" "30 *atm" nstates 4 # and set the actual pressure of the stream to be 1 atm (or as # close as we can get in the discrete space). P "1 *atm" # map to discrete space map end # # Discrete utilities are available for both heating and cooling. The # format of each line is: # # type description Tin Tout TransferCoefficient Cost # DiscreteUtilities utils hot "Steam @ 28.23 atm" 503.5 503.5 "5000 *W/m^2/K" "1.0246 / GJ" hot "Steam@11.22atm" 457.6 457.6 "5000 *W/m^2/K" "0.773824 / GJ" hot "Steam@4.08atm" 417.0 417.0 "5000 *W/m^2/K" "0.573203 / GJ" hot "Steam@1.70atm" 388.2 388.2 "5000 *W/m^2/K" "0.41796 / GJ" cold "ColdWater@32.2degC" 305.2 305.2 "500 *W/m^2/K" "0.0668737 / GJ" cold "Ammonia@1degC" 274.00 274.00 "500 *W/m^2/K" "1.65035 / GJ" cold "Ammonia@-17.68degC" 255.32 255.32 "500 *W/m^2/K" "2.96871 / GJ" cold "Ammonia@-21.67degC" 251.33 251.33 "500 *W/m^2/K" "3.96226 / GJ" end # # the only processing technology is a distillation unit for which we # specify a range of pressure levels which hopefully matches the range # defined for streams. # Distillation dist LogReal P "1 *atm" "30 *atm" 4 end # # and we define a product tank which accepts any stream which has one # component with greater than 90% purity. # ProductTank pure Expression spec "$(x>0.90)" # The unit must be marked as interesting to indicate that any # path in the search graph which terminates at one of these # nodes is an interesting path, i.e. one that leads to a # desired product. interesting # interesting leaf node for n-best diversity end # # we also need at least one feed tank for the raw material. the feed # stream defined above is associated with this feed tank. # FeedTank feedTank Stream feed feed end # # we will ask for solutions to be ranked in three separate lists, the # first according to capital cost, the second according to operating # cost, and the third a combination of the two. Each criterion is # given a name, the type of operation required to combine criteria # values from different sources (options are sum or max), and the # actual expression for evaluating the criterion. The variables # "opercost" and "capcost" are used for operating and capital costs # respectively by all the standard unit models (and heat exchangers) # in the FiSH distribution. # Criteria criteria criterion Capital sum capcost criterion Operating sum opercost criterion Annualized sum "capcost/2.0 + opercost" end # # before attempting a synthesis problem, we tell the system the # objects to use for all the global settings which affect the # synthesis procedures. # Data utils utils # which utilities object to use criteria criteria # the ranking criteria # we now specify the list of units which are allowed for # processing unit dist # distillation unit pure # and pure product tanks unit feedTank # and the feed tank print # output all global settings end # # now we actually define the synthesis problem based on the stream and # units defined above. The number of best solutions to generate is # specified in the command line (although it could be specified # directly in this input file using, for instance, " nbest 3 ". # # a different problem class is used for this example because we want # to study the potential for heat integration. this is done using the # "autovhl" command available in the Qualified problem class. # QualifiedProblem rathore_hen # enable automated heat integration mode. heat integration is # tackled through a coarse discretization procedure which # discretizes the temperatures and duties allowed for internal # heat exchange. the first parameter to this command specifies # the number of temperature levels and the second the number # of duty levels. the actual values are determined # automatically using a simple data analysis procedure. the # data are generated using a non-heat integrated pass to the # problem. autovhl 2 1 representation units # include unit info in n-best diversity sud true # save unit designs shd true # and heat exchanger designs as well # solve the problem ... solve print # and show the best solutions found print short # showing the basic structure as well stats # display some statistics about the search export # generate the flowsheets end # and that's all!