Reaction Block (RB)
From SysCADWiki
Navigation: Main Page -> Models -> Sub-Models
Contents
|
General Description
Many SysCAD models have the facility to allow the user to enable chemical reactions in the unit. If a unit has this facility, the first access window will have a field called 'Reactions'. To enable the reactions, change the status of the field from 'Off' to 'On' and SysCAD creates a reaction block for the model. (The user may change the evaluation sequence by selecting On-1, On-2, etc.) An example is shown below:
In dynamic mode, units which have the facility for surge have an additional option called 'On-Content'. This allows the user to select to have the reactions occur on the content or surge of the unit. The On, On-1, etc. relate to the reactions occurring on the feed to the unit.
The RB tab will appear as shown above.
The user may then access the RB tab and click on the 'Edit_RCT' button, as shown below:
SysCAD will open a text file, with the extension .rct, with the same name as the unit - in the case shown here it will be called 'Neutralisation.rct'. The editor used by SysCAD will have been set in the Options/General window. See Reaction Editor
This file is read into the unit and SysCAD solves the reactions.
Reaction File Template
In build 126 and later, there is the flexibility to allow a template rct file to be used. This template must be called template.rct and can be placed in either the CfgFiles folder of the project or the BaseFiles folder of the SysCAD installation. The user may edit this file to suit. SysCAD will look in the CfgFiles folder first for a template and then the BaseFiles folder if one is not found in the CfgFiles folder.
Reaction File Format
Chemical reactions are defined in a text file. The user may use the SysCAD Reaction Editor (see Reaction Editor) or any text editor can be used to edit these reactions. The reaction filename must have the extension .rct. Any line in the file starting with a ; is a comment and is ignored.
NOTE: The reaction file must contain at least one reaction. Sources, sinks and heat exchange can not be used in isolation without at least one reaction.
Example of a Reaction File
An example of a reaction file is given below.
- Source: H2SO4(l)
- Reactions:
- ;A description
- Na2CO3(s) + H2SO4(l) = Na2SO4(s) + CO2(g) + H2O(l)
- Extent: Fraction Na2CO3(s) = 0.50
- HeatOfReaction: msFixed = 10 / Na2CO3(s)
- Sequence: 1
- HeatExchange: FinalT = 60
- Sink: CO2(g)
- End
The tokens "Reactions": and "End" are compulsory as they mark the start and end of the reactions block. At least one reaction must be defined between these two tokens.
Reactants and Products
The format for specifying the reactants and products is:
Reactant_1(s) + Reactant_2(l) = Product_1(g) + Product_2(s) + Product_3(s)
The phase of the reactant or product must be given.
Reaction Directions
-> Forward Reaction
Format Reactant_1(s) + Reactant_2(l) -> Product_1(g) + Product_2(s) + Product_3(s) Description Use this for forward only reactions, particularly used for simultaneous reactions. This also works well when the reaction extent is expressed using the Fraction method.
<- Reverse Reaction
Format Reactant_1(s) + Reactant_2(l) <- Product_1(g) + Product_2(s) + Product_3(s) Description Use this for reverse only reactions. Note this method is not applicable when reactions extent is expressed using the Fraction method.
<-> or = Reversible Reaction
Format Reactant_1(s) + Reactant_2(l) <-> Product_1(g) + Product_2(s) + Product_3(s) Reactant_1(s) + Reactant_2(l) = Product_1(g) + Product_2(s) + Product_3(s) Description The reaction can proceed either way.
Extent
There are six methods for expressing the extent of a reaction:
Fraction
Format Extent: Fraction Species(phase) = Fraction Description The specie specified must be one of the reactants. Example Extent: Fraction Na2CO3(s) = 0.50 Description A maximum of half the Sodium Carbonate is reacted provided there are sufficient moles of all the reactants. NOTES: 1. For Dynamic simulation the user may use the fraction method for reaction blocks carried out in unit operations with no surge, such as pipes or the feed to a surge unit. However, for unit operations with surge the material accumulation in the unit itself needs to be considered and therefore the user must use a extent with a rate component. See method 6 Rate Option for Dynamic Simulation Unit operations with Surge (TANK). 2. Reactions using this extent type can be reversible if the user specifies = or <-> in the reaction file. This means that the user may specify a NEGATIVE extent of reaction and this will not cause an error. If the user does not want to have the reaction proceed in a negative direction then they must specify a forward only reaction, ->.
Final Concentration
Format Extent: FinalConc Species(phase) = g/L At [Temperature] Description The user specifies the 'compound' + 'phase' + 'temperature' at which the concentration in grams per litre must be calculated. - The specie specified can be any one of the reactants or products.
- [NB: the 'At temperature' part is optional. If not specified, concentration will be calculated at temperature by default.]
Example1 Extent: FinalConc H2SO4(aq) = 5.5 Description Sufficient H2SO4(aq) is reacted to give a final concentration of 5.5 grams of H2SO4(aq)/Litre of Liquid at Temperature.
Example2 Extent: FinalConc H2SO4(aq) = 5.5 At 25 Description Sufficient H2SO4(aq) is reacted to give a final concentration of 5.5 grams of H2SO4(aq)/Litre of Liquid at 25 dC. NOTES: 1. For dynamic simulation, the user may not use this method for unit operations containing surge. 2. Reactions using this extent type are normally reversible, i.e. use = or <-> when specifying the reaction direction. This will allow SysCAD to achieve the required final concentration, provided there are sufficient moles of all the reactants. If the user specifies a forward, ->, or reverse, <-, only reaction, then the final concentration may not be achieved. 3. Reactions using this extent type should be the last reaction (or be part of the last reaction sequence) in a reaction block. Otherwise the subsequent reactions may change the concentration achieved. Thus it is advised to only use one of these extent types in each reaction block. 4. It is not advised to have more than one reaction with this extent type in a set of simultaneous reactions. This may lead to situations which have no solution or multiple solutions and may also reduce the speed of convergence.
Final Fraction
Format Extent: mlFinalFraction Phase Species(phase) = fraction Description User specifies the 'compound' + 'phase' at which the mole fraction remaining in the specified phase must be achieved. - The specie specified can be any one of the reactants or products.
[NB: the Phase keyword is optional. If not specified, default is by Phase.]
Format Extent: mlFinalFraction Total Species(phase) = fraction Description User specifies the 'compound' + 'phase' at which the mole fraction remaining in the total stream must be achieved. [NB: the Total keyword is optional. If not specified, default is by Phase.]
Format Extent: msFinalFraction Phase Species(phase) = fraction Description User specifies the 'compound' + 'phase' at which the mass fraction remaining in the specified phase must be achieved. [NB: the Phase keyword is optional. If not specified, default is by Phase.]
Format Extent: msFinalFraction Total Species(phase) = fraction Description User specifies the 'compound' + 'phase' at which the mass fraction remaining in the total stream must be achieved. [NB: the Total keyword is optional. If not specified, default is by Phase.]
Example1 CaS(s) + 2O2(g) = CaSO4(aq) Extent: mlFinalFraction CaS(s) = 0.1 Description Sufficient CaS(s) is reacted so that 10% (by moles) of CaS(s) remains in the solid phase. Example2 CaS(s) + 2O2(g) = CaSO4(aq) Extent: msFinalFraction Total CaS(s) = 0.1 Description Sufficient CaS(s) is reacted so that 10% (by mass) of CaS(s) remains in the stream. NOTES: 1. For dynamic simulation, the user may not use this method for unit operations containing surge. 2. Reactions using this extent type are normally reversible, i.e. use = or <-> when specifying the reaction direction. This will allow SysCAD to achieve the required final fraction, provided there are sufficient moles of all the reactants. If the user specifies a forward, ->, or reverse, <-, only reaction, then the final fraction may not be achieved. 3. Reactions using this extent type should be the last reaction (or be part of the last reaction sequence) in a reaction block. Otherwise the subsequent reactions may change the concentration achieved. Thus it is advised to only use one of these extent types in each reaction block. 4. It is not advised to have more than one reaction with this extent type in a set of simultaneous reactions. This may lead to situations which have no solution or multiple solutions and may also reduce the speed of convergence.
Molar Ratio
Format Extent: Ratio Reactant : Product = a:b Example Extent: Ratio Na2CO3(s):Na2SO4(s) = 1:500 Description The final molar ratio of Na2CO3(s) to Na2SO4(s) will be 1:500 provided there are sufficient moles of all the reactants. Note Reactions using this extent type are normally reversible, i.e. use '=' when specifying the reaction direction. This will allow SysCAD to achieve the required ratio, provided there are sufficient moles of all the reactants. If the user specifies a forward, ->, or reverse, <-, only reaction, then the ratio may not be achieved.
In dynamic mode optional time parameters can be specified. The format becomes Extent: Ratio Reactant : Product = a:b @ time = c:b [ @ time e:f ]. For example: Extent: Ratio Na2CO3(s):Na2SO4(s) = 1:500 @ 3600 = 1:400. Time is given in seconds. The optional parameters in [] brackets are only applicable in dynamic mode and only one set is permitted. In dynamic mode the reaction is assumed to first order and the following applies:
- At infinite residence time of the reactants and products the final molar (equilibrium) ratio of Na2CO3(s) to Na2SO4(s) will be 1:500 provided there are sufficient moles of all the reactants. This is represented by the following equation:
1 - EXP(-a ¥ / t ) = 500 - At a 3600s mean residence time for the reactants and products the molar (equilibrium) ratio of Na2CO3(s) to Na2SO4(s) will be 1:400 provided there is sufficient moles of all the reactants. This is given by.
1 - EXP(-a 3600 / t ) = 400 - Using the above two equation solve for a/t. The equilibrium concentration for any residence time is then determined from the general equation:
k = 1 - EXP(-a/t * t)
where t = mean residence time of the reactants and products.
Equilibrium
Format Extent: Equilibrium number Example Extent: Equilibrium 2.5 Description Using the equation aA +bB = cC + dD, the equilibrium constant, k is calculated as: k = [ C ]c * [ D ]d / ( [A ]a * [ B] b)
where [ X ] is the molar flow of species X in kmol/s. This should be molar concentration and will soon be changed.
NOTES: 1. The equilibrium constant is not usually dimensionless. The units are very important. SysCAD does not currently allow the user to select the units. 2. Reactions using this extent type are normally reversible, i.e. use = or <-> when specifying the reaction direction. This will allow SysCAD to achieve the required equilibrium, provided there are sufficient moles of all the reactants. If the user specifies a forward, ->, or reverse, <-, only reaction, then the final equilibrium may not be achieved.
Reaction Rate Option for Dynamic Simulation Unit operations with Surge (TANK)
Format 1 Extent: Fraction Species(phase) = Rate in Fraction Description User specifies the 'compound' + 'phase' and 'rate' at which the reaction goes ahead. Fraction = Rate*DeltaTime The specie specified must be one of the reactants.
Example 1 Extent:Fraction FeS2(s) Rate = 0.0001
Format 2 Extent: Fraction Species(phase) = Rate in Fraction Stabilised Description User specifies the 'compound' + 'phase' and 'rate' at which the reaction goes ahead. The Keyword Stabilised is a first order response and the fraction reacted is given by: Fraction = 1- exp(Rate*DeltaTime) Example 2 Extent:Fraction FeS2(s) Rate = 0.0001 Stabilised
Note: The reaction rate option is only required when the user has chosen for the reactions to occur on the content of the unit by selecting "On-Content".
Sequence (Sequential or Simultaneous)
By default, reactions will solve in a SEQUENTIAL order, the order is defined by how they appear in the reaction file. However, the user can change the sequence order by inserting a sequence number per reaction or reaction set. The reactions with the same sequence number will be solved SIMULTANEOUSLY. The sequence number must be an integer equal to or greater than zero. Reactions with the lowest sequence are solved first.
| Format | Reaction Extent | Sequence:number |
Sequential Reactions
Writing SEQUENTIAL Reactions using SEQUENCE Number:
Rxn1: A + B -> C + D Extent: Fraction A = 0.5 Rxn2: E + F -> G + H Extent: Fraction E = 0.1 Rxn3: C -> J + K Extent: Fraction C = 0.9
The above set of reactions have no specified sequence numbers, therefore, the three reactions will occur in sequential order as they are added in the file. If the user wants to change the order of the reactions, they can do so by specifying sequence numbers as follows:
Rxn1: A + B -> C + D Extent: Fraction A = 0.5 Sequence: 1 Rxn2: E + F -> G + H Extent: Fraction E = 0.1 Sequence: 0 Rxn3: C -> J + K Extent: Fraction C = 0.9 Sequence: 2
By specifying sequence numbers, the users have changed the order the reactions occur. In the above example, Rxn2 will occur before Rxn1.
Note: When specifying the sequence number for any reaction in the list, the user MUST make sure the first reaction also has a sequence number defined. If not, SysCAD will generate an error message and will not proceed.'
Defining Reaction Extents of SEQUENTIAL Reactions involving the same reactant:
Rxn1: C(s) + O2(g) = CO2(g) Extent : Fraction C(s) = 0.98 Rxn2: 2C(s) + O2(g) = 2CO(g) Extent : Fraction C(s) = 1.00
In the above set of reactions, we want to convert all the carbon by burning with Oxygen. Oxygen is normally in excess so that it will not be the limiting factor. Now, we want reaction 1 conversion to be 98% and reaction 2 conversion to be 2%. When reactions are defined in sequential order, reaction 1 will be converted first, leaving only 2% available for reaction 2. Therefore, when defining the reaction extent for reaction 2, we must specify all of the 2% will convert, thus Extent : Fraction C(s) = 1.00 is required for reaction 2.
Note: Compare this with Simultaneous Reactions.
Simultaneous Reactions
Writing SIMULATANEOUS Reactions using SEQUENCE Number:
Reactions can occur simultaneously if they are assigned the same sequence number. Please Note that it is not necessary to specify the sequence number for each reaction as once a sequence number has been specified, all the following reactions are assumed to be at the same sequence unless a new sequence number is found.
For example: If the user specifies the following set of reactions in Sequence 0, i.e. they will be solved simultaneously:
Rxn1: A + B -> C + D Extent: Fraction A = 0.5 Sequence: 0 Rxn2: E + F -> G + H Extent: Fraction E = 0.1 Rxn3: C -> J + K Extent: Fraction C = 0.9
Note: FOR SIMULTANEOUS reactions, products from any of the reactions will not be counted as part of the reactants.
For the above reaction set, the amount of C available for REACTION 3 will be purely from the feed; it will NOT include the amount generated in the first reaction. Therefore, if there is no C in the feed, reaction 3 will not proceed at all.
If the user wants to include the product C from the first Reaction in reactions 3, then the first reaction must occur first using a different sequence number.
The above reactions set should be changed to:
Rxn1: A + B -> C + D Extent: Fraction A = 0.5 Sequence: 0 Rxn2: E + F -> G + H Extent: Fraction E = 0.1 Sequence:1 Rxn3: C -> J + K Extent: Fraction C = 0.9
In the above example, there are TWO sequence numbers specified, at sequence 0, Rxn 1 will occur, producing products C&D. Then Reactions 2&3 will occur at the same time. In this case, C used in reaction 3 will be from the FEED + what is generated from Reaction 1.
Note: For the last set of reactions, the following syntax is also acceptable:
Rxn1: A + B -> C + D Extent: Fraction A = 0.5 Sequence: 0 Rxn2: E + F -> G + H Extent: Fraction E = 0.1 Sequence:1 Rxn3: C -> J + K Extent: Fraction C = 0.9 Sequence:1
Defining Reaction Extents of SIMULTANEOUS Reactions involving the same reactant:
Rxn1: C(s) + O2(g) = CO2(g) Extent : Fraction C(s) = 0.98 Sequence: 1 Rxn2: 2C(s) + O2(g) = 2CO(g) Extent : Fraction C(s) = 0.02
In the above set of reactions, we want to convert all the carbon by burning with Oxygen. Oxygen is normally in excess so that it will not be the limiting factor. Now, we want reaction 1 conversion to be 98% and reaction 2 conversion to be 2%. When reactions are defined in simultaneous order, the total conversion can be added up to 100%.
Note: Compare this with Sequential Reactions.
Solving SIMULTANEOUS Reactions involving the same reactant:
Heat of Reaction
By default the heat of reaction is calculated from the difference in the sum of the heats of formation of the products and reactants. There are two additional methods for expressing the heat of reaction.
MsFixed
Format HeatOfReaction: msFixed = Heat Of Reaction / Reactant(phase) [NB: spaces must be added before and after the '/' ] Example HeatOfReaction: msFixed = 10 / Na2CO3(s) Description The heat of reaction is 10kJ per kilogram of reactant consumed. For an endothermic reaction use a positive number. This method will override the default method of calculating the heat of reaction.
MlFixed
Format HeatOfReaction: mlFixed = Heat of Reaction / Reactant(phase) [NB: spaces must be added before and after the '/' ] Example HeatOfReaction: mlFixed = 10 / Na2CO3(s) Description The heat of reaction is 10kJ per kilogram mole of reactant consumed. For an endothermic reaction use a positive number. This method will override the default method of calculating the heat of reaction.
Note1: The Heat of Reaction token is optional. It is used when the physical properties of reactants or products are missing from the SysCAD.mdb. Also, when Heat of Reaction is used for a particular reaction, it will override information from the SysCAD.mdb.
The user can specify the reference Temperature and Pressure used for the HOR.
Format HeatOfReaction: msFixed = Heat Of Reaction / Reactant(phase) At T, P Format HeatOfReaction: mlFixed = Heat Of Reaction / Reactant(phase) At T, P
Note2: If the reference temperature is not specified, then the reaction Feed Temperature and Pressure is assumed. Other valid options for specifying HOR T and P are 'Feed', 'Prod' and 'Std'. The units for temperature T are C and for pressure P kPa.
Example HeatOfReaction: msFixed = -125 / Na2CO3(l) At Feed
Source and Sink
SysCAD allows the user to define any number of localised sources of reactants and/or sink of components.
Source
Format Source: Species_1, Species_2 Example Source: O2(g), H2SO4(aq) Description The source options can be used in a reaction block to create the correct supply of a component to satisfy the reactions. Note this component need not have been added through the feed. For energy balance calculations, the energy added to the system is calculated at Feed conditions.
Note: This has to appear before the Reactions token at the beginning of the file and there must be at least one reaction defined in the file.
Sink
Format Sink: Species_1, Species_2 Example Sink: CO2(g) Description The sink options can be used in a reaction block to remove a component from unit. Note that this component does not need participate in the reactions. For energy balance calculations, the energy removed from the system is calculated at Feed conditions.
Note: The sink option must be defined before the End token and there must be at least one reaction defined in the file.
Heat Exchange
By default the sum of the heat of reaction for all the reactions in the block is used to determine the final change in enthalpy of the reaction block and hence the final temperature. To model additional heat loss or gain from the reaction block the following methods are provided. The amount of heat added or subtracted is given as the Heat Gain. Heat added to the reaction block is given as a positive number.
FinalT
Format HeatExchange: FinalT = Temperature in 'C Default Values The default Temperature for FinalT = atmospheric temperature. Description Heat is added to or removed from the reaction block to achieve the required product temperature. Examples HeatExchange: FinalT ;FinalT is not specified, default T will be used. HeatExchange: FinalT = FeedT ;Feed Temperature is maintained HeatExchange: FinalT = 200 ;Final Temperature is controlled to 200 'C.
ApproachT
Format HeatExchange: TargetT = Target Temp in 'C, ApproachT = 0 to 100 where ApproachT = [(Final T - Feed T) / (Target T - Feed T)] * 100 Default Values The default Temperature for TargetT = atmospheric temperature. The default ApproachT = 100%
Description This method is similar to the ApproachAmbient method, it allows the user to estimate the amount of heat loss or heat gain to/from the environment. The only difference is Energy is added or taken away based on the FEED temperature and not the REACTION temperature. Thus, energy is exchanged while the reactions are taking place. Examples HeatExchange: TargetT, ApproachT ; the default values are used as described above HeatExchange: TargetT = 20, ApproachT = 10
In the example, the Target T is 20°C; the percent approach is 10%. If the feed temperature entering the reaction block is 80°C, then the Final Temperature is calculated as:
Approach T = [(FinalT - FeedT) / (TargetT - FeedT)] *100% 10% = [(FinalT - 80) / (20 - 80)] * 100 FinalT = 74 'C.
Extended use Some users have extended the use of this method to control the final temperature of the mixture to emulate a cooler or heater. In these cases, the user will set the ApproachT to 100%. ALTERNATIVELY, the user can use the FinalT method.
ApproachAmbient
Format HeatExchange: Ambient = Temp in °C, ApproachAmbient = Percent 0 to 100 where ApproachAmbient = [ 1 - (Reqd T - Ambient T) / (Final T - Ambient T)] * 100 Default Values The default Temperature for Ambient = atmospheric temperature. The default ApproachAmbient = 100%
Description This method allows the user to estimate the amount of heat loss or heat gain to/from the environment. Energy is added or taken away AFTER all the reactions have taken place. Example HeatExchange: Ambient=20, ApproachAmbient = 10 In the example ambient temperature is 20°C. Assume as a result of the heat of reaction the final reaction block temperature is 80°C. The product temperature is set to approach ambient by 10%. The Final Temperature is calculated as:
10 = [1 - (x - 20) / (80 - 20)] *100% which is 74 °C.
Extended use Some users have extended the use of this method to control the final temperature of the mixture to emulate a cooler or heater. In these cases, the user will set the ambient to be the required temperature and ApproachAmbient is set to 100%. However, this method does not always work. See limitation below. Limitations: The heat exchange will only take place after the reaction has been carried out. Therefore, if the reaction is very endothermic, and the feed temperature is low, the temperature of the mixture (after reaction) could be so low that it falls outside of the valid temperature range. When this happens, you will have an energy imbalance and be given a warning: "invalid intermediate temperature". To avoid this problem, use the FinalT method.
Power
Format HeatExchange: Power = Energy in kJ/s Default Values The default power is 0 kJ/s. Description A set amount of energy is added or removed from the reaction block. Positive number denotes heating and Negative number denotes cooling. Examples HeatExchange: Power = 60 ;60 kJ/s is added to the unit HeatExchange: Power = -60 ;60 kJ/s is lost from the unit HeatExchange: Power ;no heat is exchanged Extended use The user can adjust this number via a PID controller block to achieve the required temperature. ALTERNATIVELY, the user can use the FinalT method.
Electrolysis
Format HeatExchange: Electrolysis = Cell Efficiency in % Where Cell Efficiency = (Energy needed to maintain feed T / Energy exchanged) * 100 Default Values The default cell efficiency is 100%. Description This method can be used to simulate electrowinning cells. Heat is added to the reaction block to maintain the temperature at feed conditions. If the Cell efficiency is not 100%, then the excess energy will be used to heat up the contents. Example 1 HeatExchange: Electrolysis The cell efficiency is not specified; therefore, the default value will be used which is 100%. The product temperature = feed temperature.
Example 2 HeatExchange: Electrolysis = 90 In this example, the cell is 90% efficient. If the feed temperature is 100 'C and the energy required to maintain the feed temperature is 22500 kJ. Then
Total energy added = 22500/0.9 = 25000. The extra 2500 kJ energy will heat up the cell further. Thus, the product temperature > feed temperature.
Note: The HeatExchange options can be used only once in a reaction block and must occur after the definition of the last reaction. There must be at least one reaction in the file for HeatExchange to work.
HINT: If you want to add energy into the unit but do not want any reactions to occur. Just define a dummy reaction and set the reaction extent to 0. Then define the HeatExchange using any of the above methods. Alternatively, use the Environmental Heat Exchanger (EHX) model.
Free Energy Minimisation File Format
Chemical reactions are defined in a text (ASCII) file. An example is given below.
- FreeEnergyMin :
- CO2(g) ,
- CO(g) ,
- H2(g) ,
- CH4(g) ,
- C2H4(g) ,
- C2H6(g) ,
- C3H6(CPAg) ,
- C3H8(PPAg) ,
- C4H10(IBUg) ,
- N2(g) ,
- Ar(g) ,
- O2(g) ,
- H2O(g)
- End
The tokens FreeEnergyMin: and End are compulsory as they mark the start and end of the reactions block. All components participating in the reactions (reactants and products) are listed and separated by commas. SysCAD will determine the final reaction 'extent' and product conditions.
Usage:
This type of reaction file is very useful for unit operation such as reformers.
Reference:
The solve routine is based on the "Villars-Cruise-Smith' algorithm for the Free Energy Minimisation reactions. The reference is: Chemical Reaction Equilibrium Analysis, Theory and Algorithms, William R.Smith, Ronald W.Missen, Wiley-Interscience, ISBN: 0-471-09347-5.
Data Sections
A description of the variables on the access page is given here.
Depending on the number of reactions specified within the reaction file, there may be more than one RB Section. The additional sections will be numbered Rn, where n is the number of the first reaction on that page. For example, if the reaction file contains 5 reactions, the first 2 may appear on the RB page, then the next page will be labelled R3.
| Tag / Symbol | Input or Calc | Description |
| RCT_Name | Input | The user types in the name of the required reaction file. SysCAD will find the file, if it is located either in the project or cfgfiles folders. Otherwise, the user may type in the full path of the file. |
| RCT_Path | Display | The full path of the reaction file is displayed here. |
| On | Tick Box | Used to enable the reaction file. The default is On. |
| AutoReload | Tick Box | This enables the automatic reloading of the reaction file if it has been changed. The user then does not have to click on the 'ReLoad' button each time a change is made to the reaction file. |
| Load State | Output | A number of possibilities exist here. Before a reaction file is entered, this field will state 'No Reactions'. Once the reaction file is entered it will have either 'OK', if all is well, or an error message if there is a problem. The message will depend on the error. |
| Error | Output | If there is an error with the RCT file, this will give the line number of the error, and a brief message describing the error. |
| Edit RCT | Button | Opens the reaction file in a text editor (the default is Notepad) for modification. |
| Reload RCT | Button | Manually reloads the reaction file after changes are made. |
| Browse RCT | Button | The user can browse for the reaction file by clicking on this button. |
| ExtentType | List | This list box allows the user to set the error tracking methods for the current RB block. Options are All_Strict, All_Target or Individual. As the names suggest, user can switch on the error tracking for the reaction by using All_Strict option or switch off the error tracking by selecting All_Target. NB, for simultaneous reactions, user should change this to Target. If user want to set the options on individual reactions, select the Individual option and then set the options in the Type field. |
| Run State | Output | This reports run time messages for the reaction file. |
| StdRefModel | Tick box | If user is using a non-standard species model, eg Bayer model, then selecting this box will force the reaction block to calculate its values using the Standard Species model. |
| UsrDefT | Input | This field is only visible if the ExtraInfo list box is set to 'Include UsrDefInfo' or 'Include All'. The user defined temperature for the reactions. The default is 25°C. This temperature is for display purposes only, it does not affect the calculated results. The displayed values affected will be under Tag.RB.dH@Ref fields and the xxxx.@UsrDef fields under each individual reaction. |
| UsrDefP | Input | This field is only visible if the ExtraInfo list box is set to 'Include UsrDefInfo' or 'Include All'. The user defined Pressure for the reactions. The default is atmospheric. This pressure is for display purposes only, it does not affect the calculated results. The displayed values affected will be under Tag.RB.dH@Ref fields and the xxxx.@UsrDef fields under each individual reaction. |
| Press | Calc | The pressure of the reacted mixture at exit temperature. |
| TempFeed | Calc | The temperature of the feed material. |
| TempRct | Calc | The temperature of the mixture after the reaction(s) has taken place. |
| TempProd | Calc | The temperature of the product material taken into account any heat loss or heat gain. |
| ShowExtraInfo | List Box | Options are: Remove All, Include RefInfo, Include FeedInfo, Include ProdInfo or Include All. Due to the ever increasing length of the Reaction Block fields, it has become necessary to add in these options to allow users to remove some 'not important' fields from the reaction block. Basically, if you choose to 'Include ProdInfo' for example, you will get to view any heat of reaction values based on the Product temperature, these will normally have the @Pr at the end of the field names. |
| ChangeVars | List Box | Options are: Remove All, Include Mass, Include Mole, Include All. With the Include Mass/Mole/All options, extra fields will be displayed at the end of each individual reaction, detailing the mass conversion of each reactant/product. |
| Tag.RB.dH@Ref' These values are calculated at UerDefT' and UserDefP. | ||
| Nett | Calc | The overall enthalpy change in the reaction block, using user defined temperature and pressure. This includes all reactions, any heat exchange specified within the RCT file and the enthalpy of any material added or lost in the reaction file. A positive number denotes sensible heat gain. |
| Rct | Calc | Heat of reaction for user defined temperature and pressure. Negative number for exothermic. |
| Tag.RB.dH@0' These values are calculated at the 0 'C @ atmospheric pressure. | ||
| Nett | Calc | The overall enthalpy change in the reaction block referenced to 0 'C and atmospheric pressure. This includes all reactions, any heat exchange specified within the RCT file and the enthalpy of any material added or lost in the reaction file. A positive number denotes sensible heat gain. |
| Rct | Calc | Heat of reaction @ 0 'C and atmospheric pressure. Negative number for exothermic. |
| Tag.RB.dH@Fd' These values are calculated at the Feed temperature @ operating pressure. | ||
| Nett | Calc | The overall enthalpy change in the reaction block at feed temperature. This includes all reactions, any heat exchange specified within the RCT file and the enthalpy of any material added or lost in the reaction file. A positive number denotes sensible heat gain. |
| Rct | Calc | Heat of reaction at feed temperature. Negative number for exothermic. |
| HX | Calc | Energy supplied to or taken from the unit using the HeatExchange method. A positive number means heat gained by the system. |
| Src | Calc | Energy change to the unit due to the addition of the source material. Calculated using the Heat of formation value. Refer to the Source method. A positive number denotes heat gain. |
| Snk | Calc | Energy change to the unit due to the loss of the sink material. Calculated using the Heat of formation value. Refer to the Sink method. A negative number denotes heat loss. |
| HfErr | Calc | Any Hf imbalance between reactants and products. Note: If this is significant, please check the Hf information in the species database. |
| Tag.RB.dH@Pr' These values are calculated at Final temperature @ operating pressure. | ||
| Nett | Calc | The overall enthalpy change in the reaction block at product temperature. This includes all reactions, any heat exchange specified within the RCT file and the enthalpy of any material added or lost in the reaction file. A positive number denotes sensible heat gain. |
| Rct | Calc | Heat of reaction at product temperature. Negative number for exothermic. |
| HX | Calc | Energy supplied to or taken from the unit using the HeatExchange method. A positive number means heat gained by the system. |
| Src | Calc | Energy change to the unit due to the addition of the source material. Calculated using the Heat of formation value. Refer to the Source method. A positive number denotes heat gain. |
| Snk | Calc | Energy change to the unit due to the loss of the sink material. Calculated using the Heat of formation value. Refer to the Sink method. A negative number denotes heat loss. |
| HfErr | Calc | Any Hf imbalance between reactants and products. Note: If this is significant, please check the Hf information in the species database. |
| CnvTolerance | Input | The convergence tolerance for the reaction solver. The default is 0%. Generally, the user should not have to alter this value. However, if the solution is difficult, the user may set this to a larger number to improve the speed of the solution. |
| MaxIters | Input | The maximum number of iterations of the reaction solver. |
| Tag.RB.R1..n |
There will be a number of blocks displayed here, one for each reaction specified in the rct file. There will also be a block for heat exchange, and any material gained or lost. | |
| This line will show the actual reaction. Unless it is a really short reaction, the user will only see the first couple of species in the reaction. | ||
| Reaction | Output | This is the same as the above line except it is now a field; therefore it can be reported elsewhere by copy and paste. |
| Sequence | Output | Format of information display: [Sequence Number] ([number] of [total number] of reactions solved simultaneously). For Example: 1) If a single number is displayed ' this means the reaction is sequential and the number stands for the order in which it is reacted. 2) If the field displays something like this: 2 (1 of 3 Sim), then it means the reaction will solve in sequence 2, and it is part of a set of 3 simultaneous reactions. |
| State | Output | Shows the status of the reaction file. |
| On | Tick box | Allows the individual reaction be switched on/off. |
| This line shows the manner in which the reaction is controlled. Each different control mechanism is shown separately below: | ||
| ExtentType | List | This is only visible if the ExtentType is set to Individual. This list box allows the user to switch on the error tracking for the reaction by using StrictRequirement or switch off the error tracking by selecting Target. NB, for simultaneous reactions, user should change this to Target. |
| 1. Fractional Extent: Species(phase) | ||
| ExtentSpc | Output | Shows the chemical compound being controlled. |
| Extent (Rct/Reqd) | Input | The Fractional Extent of the reaction. The default will be the value typed in on the reaction file. However, this value may be changed while the model is solving, if required. If Extent (Rct) is displayed then Extent used is of the value specified in the reaction file. If Extent (Reqd) is displayed then user has changed the Extent manually (or via PGM/PID) in SysCAD. If * is entered here, default value as specified in the reaction file will be used. |
| ExtentAchieved | Calc | The actual reaction extent achieved based on availability of reactants. |
| ExtentError | Calc | The difference between what is required as defined by the user and what is achieved. Note: User should keep in mind that if the reaction is part of a simultaneous set of reactions, then the required extent might not be achieved individually. |
| 2. Final Conc: Species(phase) | ||
| Conc_Rqd (Cfg@xT) | Input | The final concentration of the specified compound after this reaction. The default will be the value typed in on the reaction file. However, this value may be changed while the model is solving, if required. The concentration will be measured at either the user specified temperature (Conc_MeasTemp) or FinalT. |
| Conc_MeasTemp | Output | The user specified temperature. If '*' is present, it means user has not specified a temperature and the concentration will be given at Final Temperature. |
| Conc_EOStep / Conc_Act (@xT) | Calc | The actual concentration of the compound after this reaction step at Conc_MeasTemp. Note: if more reactions are present after this, the concentration of the compound in the outlet stream may differ due to further reactions. |
| Conc_Final (@xT) | Calc | The final concentration of the compound after ALL reaction(s) has taken place. This concentration may differ from what the user has specified. |
| ExtentError | Calc | The difference between what is required as defined by the user and what is achieved. Note: This is based on Conc_EOStep and not Conc_Final. |
| 3. Ratio | ||
| K_Eq | Input | The required ratio of the product to the reactant. The default will be the value typed in on the reaction file. However, this value may be changed while the model is solving, if required. |
| K_EOStep / K_Actual | Calc | The actual ratio of the product to the reactant after the current reaction has been solved. Note: if more reactions are present after this, the ratio of the compounds in the outlet stream may differ due to further reactions. |
| K_Final | Calc | The actual ratio of the product to the reactant after ALL reaction(s) has been solved. |
| ExtentError | Calc | The difference between what is required as defined by the user and what is achieved. Note: This is based on K_EOStep and not K_Final. |
| 4. Equilibrium | ||
| K_Eq | Input | The required equilibrium constant, k, of the reaction. This constant CANNOT be changed in the model, all modifications must be done on the reaction file. |
| K_EOStep / K_Actual | Calc | The equilibrium constant after the current reaction has been solved. Note: if more reactions are present after this, the equilibrium constant in the outlet stream may differ due to further reactions. |
| K_Final | Calc | The actual equilibrium constant calculated by the solver after ALL reaction(s) has been solved. |
| ExtentError | Calc | The difference between what is required as defined by the user and what is achieved. Note: This is based on K_EOStep and not K_Final. |
| 5. Final xxx Fraction: Species(phase) ' the xxx will be replaced by either mass/mole fraction (total) or mass/mole phase fraction. | ||
| Frac_Rqd (Rct) | Input | The final fraction remaining of the specified compound after this reaction. The default will be the value typed in on the reaction file. However, this value may be changed while the model is solving, if required. |
| Frac_EOStep / Frac_Act | Calc | The actual fraction remaining of the compound after this reaction step. Note: if more reactions are present after this, the final fraction of the compound in the outlet stream may differ due to further reactions. |
| Frac_Final | Calc | The final fraction of the compound remaining after ALL reactions has taken place. This fraction remaining may differ from what the user has specified. |
| ExtentError | Calc | The difference between what is required as defined by the user and what is achieved. Note: This is based on Conc_EOStep and not Conc_Final. |
| Some of the following fields will only become visible if the ExtraInfo list box is set to Include xxx/All. | ||
| ReactingMoles / mlXfer | Calc | The number of moles of the specified species which are reacted. In the case of the equilibrium constant, this will be the first reactant. See Hints and Comment for extra note. |
| ReactingMass / msXfer | Calc | The mass of the specified species which are reacted. In the case of the equilibrium constant, this will be the first reactant. See Hints and Comment for extra note. |
| HoRRefT | Output | Default is FeedTemp or as specified by the user in the reaction file. |
| HoRRefP | Output | Default is FeedPress or as specified by the user in the reaction file. |
| Rqd_dH(cfg) | Input | The required heat of reaction value of the reaction. The default will be the value typed in on the reaction file. However, this value may be changed while the model is solving, if required. Notes: 1) This is assumed to be at Feed Temperature and pressure. 2) This field will only be visible if a HeatofReaction has been specified in the reaction file. |
| ms_dH/HoR@UsrDef | Calc | The change in enthalpy / kg of specified species that is reacted. Calculated using Heat of formation values defined in the SysCAD.mdb file @ user specified temperature (UsrDefT), unless Heat of Reaction value is specified in the Rqd_dH field. |
| ms_dH@Fd / HoR@Fd | Calc | The change in enthalpy per kg of specified species that is reacted. HoR@Fd = HoR@Ref + Integral of Cp from Ref to Feed T. (mass based) |
| ms_dH@Pr / HoR@Pr | Calc | The change in enthalpy per kg of specified species that is reacted. HoR@Pr = HoR@Ref + Integral of Cp from Ref to Product T. (mass based) |
| ml_dH / mlHoR@UsrDef | Calc | The change in enthalpy / kgmol of specified species that is reacted. Calculated using Heat of formation values defined in the SysCAD.mdb file @ user specified temperature (UsrDefT), unless Heat of Reaction value is specified in the Rqd_dH field. |
| ml_dH@Fd / mlHoR@Fd | Calc | The change in enthalpy / kgmol of specified species that is reacted. mlHoR@Fd = mlHoR@Ref + Integral of Cp from Ref to Feed T (mole based). |
| ml_dH@Pr/ mlHoR@Pr | Calc | The change in enthalpy / kgmol of specified species that is reacted. mlHoR@Pr = mlHoR@Ref + Integral of Cp from Ref to Product T (mole based). |
| tot_dH / HsGain@UsrDef | Calc | The total change in enthalpy for this specific reaction at user specified temperature (UsrDefT). |
| tot_dH@Fd / HsGain@Fd | Calc | The total change in enthalpy for this specific reaction at Feed temperature. |
| tot_dH@Pr/ HsGain@Pr | Calc | The total change in enthalpy for this specific reaction at Product temperature. |
| The following will only become visible if the ChangeVars list box is set to Include Mass/All. | ||
| Tag.Rb.Rx.MsChg'.' | ||
| Reactant1 | Calc | Mass of Reactant1 being consumed. (negative number) |
| Reactantx | Calc | Mass of Reactantx being consumed. (negative number) |
| Product1 | Calc | Mass of Product1 being produced. (positive number) |
| Productx | Calc | Mass of Productx being consumed. (positive number) |
| The following will only become visible if the ChangeVars list box is set to Include Mole/All. | ||
| Tag.Rb.Rx.MlChg'.' | ||
| Reactant1 | Calc | Mole of Reactant1 being consumed. (negative number) |
| Reactantx | Calc | Mole of Reactantx being consumed. (negative number) |
| Product1 | Calc | Mole of Product1 being produced. (positive number) |
| Productx | Calc | Mole of Productx being consumed. (positive number) |
| If the user has specified a source of material within the reaction file, the following block(s) will appear. (More than one material may be added as a source in the rct file.) | ||
| Source: Species Name | ||
| Species Name.Dmnd | Calc | The mass of material required for the reaction |
| TotEnthalpy | Calc | The total enthalpy added via the source species, calculated at feed temperature and pressure. |
| If the user has specified a sink of material within the reaction file, the following block(s) will appear. (More than one material may be removed via a sink in the rct file.) | ||
| Sink: Species Name | ||
| Species Name.Excs | Calc | The mass of material removed from the unit |
| TotEnthalpy | Calc | The total enthalpy removed via the sink species, calculated at feed temperature and pressure. |
| If the user has specified a heat exchange with the reaction file, then the amount of heat that is added, or removed, from the unit will also be shown here. | ||
| 1. FinalT Method | ||
| FinalTRqd | Input | The targeted Final temperature required. |
| HeatGain | Calc | The amount of heat added or subtracted is given as the Heat Gain. Heat added to the reaction block is given as a positive number. |
| 2. ApproachT Method | ||
| TargetT | Input | The target temperature. |
| ApproachT | Input | The extent in which the unit approaches the target temperature (%) |
| HeatGain | Calc | The amount of heat added or subtracted is given as the Heat Gain. Heat added to the reaction block is given as a positive number. |
| 3. Approach Ambient Method | ||
| Ambient | Input | The ambient temperature. |
| ApproachAmbient | Input | The extent in which the unit approaches the ambient temperature (%) |
| HeatGain | Calc | The amount of heat added or subtracted is given as the Heat Gain. Heat added to the reaction block is given as a positive number. |
| 4. Power Method | ||
| PowerInput | Input | Power supplied to the unit. |
| HeatGain | Calc | The amount of heat added or subtracted is given as the Heat Gain. Heat added to the reaction block is given as a positive number. |
| 5. Electrolysis Method | ||
| ElectEff (%) | Input | The cell efficiency (%) |
| HeatGain | Calc | The amount of heat added or subtracted is given as the Heat Gain. Heat added to the reaction block is given as a positive number. |
Solving Reactions
SysCAD has two distinct methods of solving the reactions specified in the reaction file.
a) The reactions are solved sequentially. I.e. the first reaction will be solved, then the second and so on. This is the default method of solving the reactions.
| Example: | A + B -> G + H | Extent: Fraction A = 0.8 |
| A + C -> J | Extent: Fraction A = 0.1 |
In the above case 80% of A will be reacted with B to form G and H (Assuming there is sufficient B). Then 10% of the remaining A will be reacted with C to form J (if there is sufficient C).
b) The reactions are solved simultaneously. The user must assign a Sequence number to the reactions to force this method of solution. All of the reactions in a particular sequence will be solved simultaneously.
| Example: | A + B -> C + H | Extent: Fraction A = 0.8 | Sequence:1 |
| D + C -> J + B | Extent: Fraction C = 0.9 | ||
| A + D -> H + M | Extent: Fraction A = 0.6 | Sequence:2 | |
| C + B -> J + E | Extent: Fraction C = 0.4 |
In the above example, reactions 1 and 2 will be solved simultaneously, then reactions 3 and 4 will be solved simultaneously.
The extent of reaction is based on the amount of the reactant entering the sequence. So, for reaction 1, this is 80% of A in the feed and for reaction 2 it is 90% of C also in the feed, NOT C after reaction 1. Therefore, if there were no C in the feed, reaction 2 would not occur.
Any number of reactions may be specified in a sequence, and the user may specify any number of sequences, or only one.
Examples
Below are some examples of how the model determines the extent of reaction:
Example 1
Consider the following set of equations:
1. A + B -> Products 2. D + B -> Products 3. E + B -> Products
Assuming the available quantity in moles to react (product of number of moles and extent) are 20A, 21B, 6D, 1E. The maximum extents, considering each reaction individually, would be:
1. 20A + 20B -> Products 2. 6D + 6B -> Products 3. 1E + 1B -> Products
The total requirement for B would be 27. Component B should be apportioned as follows:
1. (21/27) * 20 = 15.5 2. (21/27) * 6 = 4.7 3. (21/27) * 1 = 0.8 4. TOTAL = 21.0
Example 2
Now consider a set of equations where each reaction competes for more than one reagent.
1. A + B + 0.5C -> Products 2. D + B + 2C -> Products 3. E + B + C -> Products
Total requirements are 27B and 23C. The ratios (21/27) = 0.778 and (15/23) = 0.651 are compared, and the lowest number is applied to each maximum extent equation to give the final results
Example 3
The following case gets more complicated:
1. A + B + 0.5C -> Products 2. D + B + F -> Products 3. E + 4C + 100F -> Products
Available are 20A, 20B, 12C, 6D, 1E, 100F. The maximum extents are:
1. 20A + 20B + 10C -> Products 2. 6D + 6B + 6F -> Products 3. E + 4C + 100F -> Products
The ratios for the species are:
B: (20/26) = 0.769 C: (12/14) = 0.857 F: (100/106) = 0.943
The ratio chosen for equation (1) will be the lowest of B and C (i.e. B). The ratio for (2) will be the lowest of B and F (i.e. B) and the ratio for (3) will be the lowest of C and F (i.e. C).
Note, however, that both C and F will be consumed in equations (1) and (2), thereby changing the possible extent of (3). It is necessary to carry out all reactions limited by B first, then reassess the components available for (3). In this case, C will be in slight excess, and the ratio for F will increase to 0.954.
Hints and Comments
- By default, reactions will solve in a sequential order, the order is defined by how they appear in the reaction file. However, the user can change the sequence order by inserting a sequence number per reaction or reaction set.
For simultaneous reactions, user must provide the same sequence number to all the reactions to be solved at the same time. All reactions found under a specified sequence number will be assigned the same sequence number and thus solved simultaneously. - For simultaneous reactions, problems may arise if a component act both as a reactant and a product, for the reacting amount available comes solely from the feed, and not from the reactions. This is not a problem for sequential equations.
- Heat of formation information must be entered for all components involved in reactions. If Hf information is missing, then Heat of Reaction values should be provided. If neither is present, then SysCAD will give a warning and the Heat of Reaction value calculated will be incorrect (any missing Hf's are assumed to be +100 kJ/mol).
- If multi reactions are present in single reaction block, the Final Concentration method may not work correctly.
- Make sure -> is used instead of = or <-> when writing reactions that are non-reversible.
- If the order of the reactions is changed, SysCAD will remember any overridden extents and still associate them with the old reaction number. Eg. if the extent of the old R2 was overridden to be 10%, then the extent of the new R2 will also be manually overridden to 10%.
- The outlet temperature from the reaction block (Prod.T) will be set to no less than 10 degrees below the project minimum temperature and no more than 10 degrees above the project maximum temperature. This may cause an energy imbalance across the unit. These temperature limits can be set in the Project Configuration file.
- When writing equations, there is a trick to keep the SysCAD Access Window fields RB.R1.mlXfer and RB.R1.msXfer conversion units meaningful and correct. To do this, the user should write the controlling reactant as the first reactant in the equation.
For Example:
Extent: Fraction
When the reaction is written this way, the fields displayed will be
RB.R1.mlXfer (kmol/s.CaS(s)) and RB.R1.msXfer (kg/s.CaS(s)), which is meaningful.
However, if the reaction is written like this:
Extent: Fraction
The fields displayed will be RB.R1.mlXfer (kmol/s.O2(g)) and RB.R1.msXfer (kg/s.O2(g))
This is not correct as we are interested in CaS, not O2.
