Aftertreatment Tutorials
Aftertreatment Tutorials
Aftertreatment
Tutorials
VERSION 2016
by
Gamma Technologies
GT SUPPORT
E-MAIL: [email protected]
TABLE OF CONTENTS
TUTORIAL 1: Building and Calibrating an SCR................................................................................. 1
1.1 Creating an SCR Model ................................................................................................................... 2
1.1.1 Build the Flow Components and Catalyst .............................................................................. 2
1.1.2 Create the Surface Reactions Mechanism ............................................................................ 10
1.1.3 Add a Species Monitor ......................................................................................................... 17
1.1.4 Specify Model Settings, Parameter Values, and Plots ......................................................... 19
1.1.5 Run the Model and View Results ......................................................................................... 20
1.2 Calibrating the SCR Model ........................................................................................................... 21
1.2.1 Calibration Methodology...................................................................................................... 21
1.2.2 Gather Measured Data .......................................................................................................... 21
1.2.3 Add the Total Error Function ............................................................................................... 22
1.2.4 Prepare the Direct Optimizer ................................................................................................ 24
1.2.5 Run the Direct Optimizer and Obtain Results ...................................................................... 25
1.3 Urea Modeling ............................................................................................................................... 26
The SCR mechanism used in this tutorial is the one used in the example model "SCR_Fe_Zeolite.gtm",
which is based on a published journal paper. The user is encouraged to check the notes in that model and
the published paper for detailed information about the mechanism.
The inlet mass flow rate, temperature, composition, and the calibration procedure described later
correspond to a Temperature Programmed Desorption (TPD) experiment set. The transient inlet
conditions will resemble the following figure. Ammonia will be allowed to adsorb at 150°C until
saturation is reached. The temperature will then decrease before beginning a linear temperature ramp
around 8000 seconds to characterize the desorption. For more information about SCR TPD/TPR
experiments please see the SCR section of the Aftertreatment Manual.
1
Tutorial 1
This tutorial begins with creating the necessary flow components from a blank project. Launch GT-ISE
and create a new GT ProjectMap (.gtm) under File Resources Create New .gtm File. In the
Document Creation Wizard, select the appropriate License type, either GT-SUITE or GT-POWER, and
then select the Exhaust Aftertreatment application for pre-loaded templates, then press the Finish
button. This operation will pre-load all the templates commonly needed for aftertreatment modeling
from the Template Library to the model Project Library.
For a stand-alone SCR model, the flow components will consist of a flow inlet to introduce exhaust gas,
an inlet cone flowsplit, a catalyst brick, an outlet cone flowsplit, and outlet environment.
The first step is to create the flow inlet for defining the exhaust gas. For this model the
`EndFlowInletSpecies` template will be used for two reasons. First it provides the ability to impose a
flow rate, and second because it has the ability to easily specify a composition that varies with time.
Create a new `EndFlowInletSpecies` object by double-clicking on the template in the project library.
Name the new object “Inlet” and enter the following attributes as shown below. The Mass Flow Rate is
specified as 0.341 kg/hr. Note the unit must be changed first before entering the number; the unit flag in
GT-ISE acts as a unit converter so the correct units need to be set before entering the value. Since this
template uses radio buttons to automatically unselect mutually exclusive input options the other flow-
related attributes will remain unselected.
2
Tutorial 1
The temperature and composition of the inlet exhaust gas will vary with time for this SCR model. For
the Temperature attribute set the Unit to "C", and then right-click and choose Value Selector, or press
the Value Selector button (box with three dots …) at the right side of the Object Value cell. Create a
new ProfileTransient object named “temp_TPD”, enter the information in the picture below, and click
OK.
Next, for the attribute Composition Time Series, use the Value Selector, and Create a new
XYTableMulti object named “Comp_TPD” to define the time-based composition profile. Because the
exhaust composition contains multiple species, we will use a `XYTableMulti` reference object to define
the composition. In the first row of the `XYTableMulti` array, right-click in the second column (labeled
“1”) and choose Value Selector. This will open the Value Selector dialog window. Under GT-SUITE
Library, find the FluidNASA-LiqGas objects, select “n2-NASA”, and hit OK. Continue using Value
Selector to fill the first row of the array (columns labeled 2 – 4) with the rest of the inlet species in the
3
Tutorial 1
following order: o2-NASA, h2o-vap-NASA, and nh3-NASA. Enter the inlet data as shown in the next
picture. The finished “Comp_TPD” reference object should resemble the figure below. Note that “def”
is entered for the N 2 mole fractions. `XYTableMulti` allows one box to be filled with “def” in each row,
in which case the solver will calculate the value by difference between 1 and the summation of the other
values in that row. Note that for pointing to an external Excel file for inlet composition data the template
'XYTableMultiImplicit' may be used to define XYTable objects for each species, which can point to
external files.
Click OK to close the “Comp_TPD” reference object, then click OK to close the “Inlet” object.
`FlowSplitGeneral` parts must be placed upstream and downstream of `CatalystBrick` parts on the model
map to transition from a single inlet pipe to the multiple channel geometry of the catalyst. The particular
geometry desired for this model is a truncated cone, or conical frustum, that essentially expands from a
diameter equal to that of the inlet pipe to a diameter to match that of the front face of the catalyst brick.
This geometry is shown in the figure below and can be modeled with the `FlowSplitGeneral` template
with two flow ports.
4
Tutorial 1
Double-click on the `FlowSplitGeneral` template in the project library to create a new object, and name it
“Cone”. The volume of a conical frustum is defined here:
V=
L
3
(
A1 + A2 + A1 A2 )
where A1 and A2 are the areas of the inlet and outlet boundaries defined by diameters D1 and D2 . In
this model, additional piping upstream of the catalyst is ignored, but for this exercise we will consider a
cone with 10 mm diameter at the inlet and 15 mm at the outlet. In addition the conical frustum is 50 mm
long. Using these values, the volume of the flowsplit should be 6216 mm3.
In addition, enter a Surface Area of 1966 mm2 which is determined from the formula below for a conical
frustum:
π
SA = (D1 + D2 ) (D1 − D2 )2 + 4 L2
4
For the Initial State Name, use Value Selector to create a new `FluidInitialState` reference object named
"initial". First enter a pressure of 1 bar. Since the same initial temperature will be used in other input
location create a parameter for the value using square brackets by typing [Initial_Temperature] for the
Object Value. The "Add Parameter" dialog will open and a description can be given to the parameter.
Enter "Initial Gas and Wall Temperature" for the parameter description. Then click "Go To Case Setup"
button and enter 150, making certain the units are set to degrees C. If by accident OK is pressed and Add
Parameter dialog is closed, Case Setup can also be accessed in the top menus under Home Case Setup.
Click OK to close Case Setup.
Finally use the Value Selector button to find the pre-defined FluidMixture object in the GT-SUITE
Library named "air-NASA" for the initial composition. Then click OK to complete the FluidInitialState
object.
5
Tutorial 1
Select “steel” for the Material for Default Surface Roughness, and leave Surface Roughness set to
"def". That completes the Main tab.
Next is the Thermal tab. The Imposed Wall Temperature will be set to 150°C like the initial gas
temperature; therefore the parameter [Initial_Temperature] will be re-used here. The external heat
transfer will be ignored, and the wall temperature will NOT be solved in this situation. There will be
internal heat transfer between the gas and the wall.
6
Tutorial 1
Finally in the Boundary Data folder the two ports of the flowsplit will be created. For Link ID Number
enter the port numbers associated with each boundary, in this case 1 and 2. The ports are defined as in-
line and 180° from each other by using the Angle (Planar Configuration) radio button option. Enter 180
for port 1 and 0 for port 2. Use the cone length of 50 mm for the Characteristic Length. In order to
correctly model the pressure loss due to expansion entering the cone, the Expansion Diameter should be
set to the maximum diameter to which the flow can expand when the flow enters the volume, therefore
each boundary should have the same expansion diameter value of 15 mm. This will guarantee maximum
pressure loss due to expansion (and contraction on downstream side) are accounted for if smaller pipes
are attached adjacent to the flowpslits. After ensuring the flowsplit is defined as shown below, click OK
to close the “Cone” object.
7
Tutorial 1
The next step in the tutorial is to create the catalyst brick. Note that the `CatalystBrick` template
contains attributes solely defining geometry and heat transfer, but not chemistry. Chemical reactions are
handled by a separate template so that flow and warm-up of a catalyst can be modeled without
necessarily requiring the chemical reactions to be defined.
Double-click on the `CatalystBrick` template in the project library to create a new object and name it
“Catalyst”.
The Main folder is primarily used to define the flow geometry of the catalyst. The Frontal Area defines
the total frontal area of the catalyst, which will be 1.6 cm2 for this micro-reactor. The Length of the
Catalyst Brick is 50 mm. As a flow component, the `CatalystBrick` needs to be axially discretized for
accuracy. Enter a value of 2.5 mm for the Discretization Length. In general using more sub-volumes
increases the accuracy of the model, and the user should verify the discretization length gives sufficiently
accurate results. Please see the CatalystBrick Help Manual or the Aftertreatment Application Manual for
detailed information about how to determine the appropriate discretization length to use. Finally use
Value Selector to select the same "initial" reference object defined previously for the Initial State
Object.
The remaining attributes in the Main tab determine if the reactor uses standard channel geometry of
general geometry for packed beds, etc. For this tutorial, the SCR is a standard square channel catalyst
therefore select the Standard Channel Geometry button and ensure the Channel Shape flag is set to
"square". The Cell Density defines the number of cells or channels per unit frontal area - enter a value
of 400 1/in2 (make sure the unit flag is set correctly to 1/in^2). The Substrate Wall Thickness is the
total thickness from gas side of one channel to the gas side of the adjacent channel. It is commonly
specified in mils, or milli-inches. Enter 0.0065 inch (6.5 mils). Washcoat layers are not necessarily
required for modeling a reactor with chemistry, since the reaction rates are typically specified as either
per total volume of reactor or in turnover number. Washcoat layers are only needed if modeling pore
diffusion, or if there is a desire to model the thermal properties of the washcoat layer(s) independently of
the substrate.
8
Tutorial 1
Next is the Thermal folder, in which the user can choose to impose a constant wall temperature, or
provide the thermal properties in order to calculate the wall temperature. In this tutorial model the
simplest calculated wall temperature model will be used such that only the substrate temperature will be
calculated. Washcoat layers, outer wall layers, and external boundary conditions will be ignored.
First, select the Calculated Wall Temperature radio button. Then use Value Selector to set the Initial
Wall Temperature attribute to the same parameter used previously in the model. For the Substrate
Thermal Properties Object use Value Selector to search the Template/Object library for the pre-defined
'MaterialThermalProp' object named "Cordierite" from the Library. This object represents typical
catalyst ceramic substrate material with density based on a porosity of 0.35.
9
Tutorial 1
The remainder of the attributes in the Thermal folder will be left as-is. However, worth mentioning is the
attribute Heat Input Rate, which can be used to directly impose heat loss by using a negative heat input
rate, or it can be used to model an electrically heat catalyst by providing a positive heat input rate, and in
addition the Heat Input Rate can be actuated by linking to a control system so that the heat can be
turned on or off by a controller.
In the Modeling Options folder of the `CatalystBrick`, there are optional attributes for defining multi-
dimensional flow, and in the Options folder there are attributes found in other flow components for
manipulating friction and heat transfer. Nothing will be changed in these folders for this tutorial, so click
OK to finish the creation of the “Catalyst” object.
Conveniently, the “Cone” flowsplit created earlier may also serve as the outlet flowsplit to the catalyst,
so there is no need to create another flowsplit object. To complete the flow component modeling, create
a new `EndEnvironment` object by double-clicking that template in the project library. Name the new
object “Outlet” and set the Pressure to 1 bar and Temperature to 300 K. Choose the FluidMixture
object named “air-NASA” for the Composition. Click OK to finish the EndEnvironment Outlet.
This completes the building of the flow component objects for the SCR model. To build the flow system
place the components on the map by dragging and dropping the objects from the project library onto the
model map to create parts. Before linking the parts together a special Orifice Connection named
"nocond" must be placed on the map on either side of the catalyst. If the Document Creation Wizard was
used initially to create the model, then the "nocond" object should already exist in the project library
under OrificeConn. Drag the "nocond" onto the map on either side of the catalyst. The nocond orifice
restricts heat transfer between the walls of adjacent components, which is desirable in this situation since
the catalyst wall temperature is being solved while the wall temperature in the flowsplit cones is being
imposed. If the connections were allowed to conduct heat in this situation the flowsplits would act as
infinite heat sinks for the catalyst brick. The final step is to link the flow components and connections
together in the direction of flow. To do this change to link mode by right-clicking anywhere on the map
and selecting "Start New Link". Linking can also be activated by using the Link button in the Home
toolbar. Click from part to part in the direction of flow to link the parts together.
The surface reactions mechanism consists of the following seven reactions, where Z is a vacant zeolite
site and Z∙NH 3 is a site that has adsorbed one NH 3 molecule.
10
Tutorial 1
Z + NH 3 → Z ⋅ NH 3
Z ⋅ NH 3 → Z + NH 3
4 Z ⋅ NH 3 + 3O2 → 2 N 2 + 6 H 2O + 4 Z
4 Z ⋅ NH 3 + 4 NO + O2 → 4 N 2 + 6 H 2O + 4 Z
NO + 0.5O2 ↔ NO2
8Z ⋅ NH 3 + 6 NO2 → 7 N 2 + 12 H 2O + 8Z
4 Z ⋅ NH 3 + 2 NO + 2 NO 2 → 4 N 2 + 6 H 2O + 4 Z
In the above mechanism, the first and second reactions represent adsorption and desorption of NH 3 to
and from surface sites, respectively. The third reaction is the NH 3 oxidation reaction. The fourth
reaction is the so-called standard NO surface conversion reaction, and the fifth is the reversible NO
oxidation reaction. The sixth reaction is the so-called slower NO 2 surface conversion reaction. The
seventh reaction is the so-called fast SCR reaction converting both NO and NO 2 at an equal ratio.
Double-click the `SurfaceReactions` template in the project library to create a new object and name it
“SCR_Mechanism”.
There is a convenient tool in GT-ISE to make it easier to enter chemical reactions, called the
`SpeciesSettings` template. This template allows the user to enter common names for species instead of
needing to write the fluid object name multiple times. For example, if carbon dioxide occurs multiple
times in a chemical reaction set, the user may simply enter “CO2” for each instance instead of entering
“co2-NASA”. Define one of these objects by typing “Species” in the Species Settings Object attribute
field. Double-click the green text and select `SpeciesSettings` to create a new object.
In the Fluid Species tab, the first column Fluid Species Name is the short names for the fluid objects
defined in the second column Fluid Reference Object. Fill in this information as shown below. For
additional efficiency, the Advanced Adaptive solver only solves the trace species, as opposed to solving
all species which would include excess or bulk species. Whether a species is trace or excess is
determined by the third column of the Fluid Species tab "Should this Species be Solved?" Excess
species should be set to "no" and trace species to "yes". For reactant species the Fluid Species Scaling
Factor should generally be set equal to the maximum order of magnitude of the concentration of the
species entering the reactor in mass fraction for Advanced Adaptive solver, and for products it should be
set to the maximum order of magnitude of the concentration of the product species. The purpose of
scaling species is for numerical efficiency and solution stability, and the Advanced Adaptive solver
requires species scaling. The Effective Diffusion Resistance column is used for detailed pore diffusion,
and will be ignored in this tutorial. Click OK to save and close the SpeciesSettings object.
11
Tutorial 1
Set the Rate Expression Basis to “turnover number”. The turnover number rate basis is defined as the
number of moles reacted per moles of active sites per second. It is the recommended rate basis for
aftertreatment modeling because it is effectively non-dimensional – it contains no dependence on catalyst
geometry as opposed to the volume- and area-based rates. In this way the rates are normalized by the
number of active sites in the reactor. Theoretically, if a mechanism is well calibrated to one catalyst
using turnover rates, then the reaction parameters could be applied with reasonable confidence to a
different sized catalyst with the same washcoat, and the user would only need to accurately enter the
active site density of the new catalyst. Finally, it should be noted that common rate types such as
volume-based rates can be easily converted to turnover number by dividing the pre-exponent multipliers
by the active site density.
Set the Concentration Specification to “mole/m3”. This determines the units of the concentration
expressions that will be applied to the reaction rate. It also determines the unit of the pre-exponent
multiplier for each reaction, which depends on the nature of the concentration expressions. The unit
mole/m^3 is the recommended concentration unit, because it is the SI unit. See the Aftertreatment
Application Manual for more information about why mole/m^3 is the recommended concentration unit.
The Diffusion attribute activates the capability to model mass transfer diffusion between the bulk gas
and the washcoat surface. It is always recommended to model diffusion to preserve the physical behavior
of the system. All reactions entered in this template use reactants and products that occur at the surface,
so mass transfer determines the washcoat surface concentrations. Set this flag to “quasi-steady". The
Pore Diffusion Object attribute activates the detailed pore diffusion model, but this will be ignored in
this tutorial.
12
Tutorial 1
Go to the Solver Options folder. This folder provides various attributes to handle the solution of
ODE/DAEs governing the reaction rates. The Advanced Adaptive solver is the recommended solver
option for most storage catalysts using `SurfaceReactions`. This solver is the most robust while at the
same time superior and faster at handling stiff kinetics. It is recommended to read the "Advanced
Adaptive Solver Help" section of the Exhaust Aftertreatment Application Manual for more information.
Set ODE/DAE Solver Selection to Advanced Adaptive. The other attributes in this folder can be left set
to def.
Go to the Site Elements folder. This folder defines what elements are in the washcoat and/or substrate
material, and the number of active sites that can form coverages. For this model, this catalyst contains
zeolite, and the amount of loading is 125 moles of active sites per cubic meter of reactor volume. Enter
this information as appears below. Because ammonia will adsorb to these active sites, this value also
determines the ammonia storage capacity. An optional method for specifying the active site density is to
use Loading of Site Element, in grams per unit reactor volume, Dispersion Factor, which is the ratio of
active sites to total sites, and Molecular Weight. Using these three attributes is recommended for
defining active site density of platinum group metals (PGM), as seen in the DOC and TWC example
models.
13
Tutorial 1
Continue to the Coverages A(i) folder, which contains information for different coverages, initial
coverage, and atomic composition of each one. For this model, sites may either be vacant or occupied by
NH 3 . For the vacant site, the coverage name is represented by “Z”, which contains the Site Element
zeolite. The Initial Coverage is 1, meaning all active sites are initially vacant at the start of simulation.
The Number of Site Element Atoms is 1, meaning a vacant site is represented by a single zeolite atom,
and the remaining atoms (carbon, hydrogen, oxygen, nitrogen, and sulfur) are 0. The second type of site
is one occupied by NH 3 , represented by “ZNH3” which also contains the Site Element zeolite. Since the
Initial Coverage of vacant sites is 1, the Initial Coverage of occupied sites is 0 (all cells in the Initial
Coverage column must sum to 1). The Number of Site Element Atoms is 1, Number of Hydrogen
Atoms is 3, and Number of Nitrogen Atoms is 1. The Relative Enthalpy of Formation attribute is an
option to define the energy required to form the coverage species. Typically this information is
unknown, traditionally has an insignificant effect on the SCR wall temperature, and because it is optional
it may be left as “ign”.
Go to the Reactions folder, which is where the reaction set is defined. Each reaction is given its own
row, and the first column allows the user to turn “on” or “off” individual reactions without having to
delete entire rows or set pre-exponent multipliers to zero. Species participating in each reaction are
entered in the Reactants and Products columns. Some guidelines for entering reactants and products
include:
• The stoichiometric coefficients can be integers or floating points
• “+” symbols may or may not be separated from species by spaces (CO + H2 and CO+H2 are the
same input)
• There must not be any spaces between a stoichiometric coefficient and the corresponding species
14
Tutorial 1
• The expressions of the reactants and products must be stoichiometrically balanced. The solver
will double-check this for you at run time.
The Associated Site Element is only used when the Rate Expression Basis is “turnover-number”, and it
determines what active site is used in the reaction rate expression. In this case each cell in this column
should contain “Zeolite”.
Reaction rates in the `SurfaceReactions` template are defined based on the Arrhenius equation:
E
k = AT b exp − a {conc} f (θ ) f (G )
RT
where
k reaction rate
T temperature
b temperature exponent
Ea activation energy
R universal gas constant, 8.314 J/mol K
{conc} concentration expression
f(θ) coverage expression
f(G) inhibition functions
The units of A in the equation above are specified by the Rate Expression Basis and Concentration
Specification attributes in the Main folder. In addition, the user may enter activation energy or
activation temperature by toggling between the units of the Activation Temperature or Energy column,
where activation temperature is equal to the activation energy divided by the gas constant.
Concentration expressions and inhibition functions are entered together in the Concentration
Expressions column. An example of input for this column may be {CH4}*{O2}/G(1)^2/G(2)/G(3).
Input for this column should adhere to the following rules:
• Concentration expressions should be enclosed with curly braces
• Inhibition function should be entered with “G(i)”, with a capital G and index i corresponding to
the row number within the General and Inhibition Functions G(i) folder
• Operators allowed include +, -, *, /, ^ representing addition, subtraction, multiplication, division,
and power. For additional operators, the Langmuir-Hinshelwood Expressions should be used.
• “def” may be entered, which generates an expression following the law of mass action. For
example, the concentration expression for the reaction CH4 + 2O2 = CO2 + 2H2O will be set to
{CH4}*{O2}^2 if “def” is specified.
The Coverage Expression may contain a mathematical expression for coverages that acts as a multiplier
to the reaction rate. Coverages should be represented by A(i), where i indicates the row number of
coverages in the Coverages A(i) folder. For example, A(1) corresponds to the coverage of empty sites,
"θ z ".
Enter the site reactions as they appear in the figure below. Note the units of Activation Temperature or
Energy in this particular mechanism are set to “kcal/kmol”, so the input corresponds to activation
energy. Notice that the activation energy of the NH3 desorption reaction is set to 0, because in this
particular situation the activation energy term has actually been defined by a longer expression in the
General and Inhibition Functions tab.
15
Tutorial 1
Continue to the General and Inhibition Functions G(i) folder and enter the inhibition functions as they
appear below. Note that T is reserved for the wall temperature in K, P is reserved for the static pressure
in Pa, and coverage expressions A(i) may be used as a variable here as well.
16
Tutorial 1
That completes the `SurfaceReactions` mechanism. Click OK to save and close the object. Add it to the
model by dragging and dropping the “Kinetics” object to the map. Position the new part above the
catalyst, and link the two by connecting from the SurfaceReactions part to the CatalystBrick part. After
enlarging the “Kinetics” part, the map should resemble the figure below.
In order to see the SCR performance during run-time, we are going to sense species mole fractions and
have them displayed in run-time monitors.
We will begin by sensing species mole fractions of the species entering and leaving the SCR, and then
sending those signals to a monitor. Drag and drop two "def" SensorConn parts onto the map, positioning
one below the inlet cone and one below the outlet cone. Link one sensor to the inlet cone and one to the
outlet cone by linking from the 'FlowSplit' part to the `SensorConn` part. When the Output Signal
Editor appears, go to the Composition folder and select “Species Mole Fraction (defined in
SensorConn)” with unit of "fraction".
In the Main folder, there is not a selection available for NH 3 in the Standard Sensed Species Name,
because it is not one of the 13 standard species that are tracked in every GT-POWER engine model.
Instead, select User-Defined Sensed Species Name, and use Value Selector to choose the FluidNASA-
LiqGas object “nh3-NASA” from the Project Library. Click OK to complete this sensor.
17
Tutorial 1
Double-click on the newly created SensorConn parts and rename them to “NH3-1” and "NH3-2".
Now create the monitor by double-clicking the `MonitorSignal` template in the Project Library. Name
the new object “NH3_Monitor" and enter input as shown below.
18
Tutorial 1
Drag and drop the “NH3_Monitor” part to the map, positioned below the catalyst and between the inlet
and outlet sensors. Connect the two sensors to the monitor in the order they appear in the Legend folder
(NH3-1 to port 1 NH3 In, NH3-2 to port 2 NH3 Out). In the 'Output and Input Signals' dialog window
that appears when linking verify the input link ID number to the monitor is correct and then click OK.
The map should appear similar to the figure below.
Before the model can be run, time and solver settings must be setup and parameter values must be
entered. Go to HomeRun Setup. In the TimeControl folder, set the Time Control Flag to
“continuous”. Enable the radio button with attributes ending with (Time), and enter a Maximum
Simulation Duration of 11000 s and select “off” for Automatic Shut-Off When Steady State to ensure
the simulation will always run the maximum duration.
Go to the FlowControl folder. For Time Step and Solution Control Object, use Value Selector button
to create a new FlowControlQS object named "QS" and assign a master Time Step of 10 sec. QS time
step sizes for aftertreatment models are typically on the order of 1 sec, but a larger time step can be used
for this simulation, because the inlet conditions do not change considerably over this time period. In
general the time step should be chosen to be less than or equal to the frequency of the measured inlet data
provided to the model, which is usually on the order of 1 second. The remainder of the attributes in the
FlowControlQS object can be left to their pre-filled values.
Go to the ThermalControl folder. The SCR is a transient model; therefore change the Thermal Solver
selection from “steady” to “transient” so that the transient warm-up will be simulated. Click OK to
complete Run Setup.
Go to HomeOutput Setup, Data_Storage folder, and set attribute RLT Update Interval
(Continuous Circuits) to 10 sec. This attribute controls the frequency at which RLT's (average, max,
min, cycle results) are calculated and stored, and should be set equal to or greater than the master time
step.
19
Tutorial 1
Go to HomeOutput Setup, General folder, and set attribute Legend for Plot Header to the text
"SCR Tutorial". This attribute is used to define the plot header than appears in plots in GT-POST.
Go to HomeCase Setup to fill in any parameters and to assign a case label. The Initial_Temperature
parameter value of 150 degrees C was entered earlier in the tutorial. Add the Case Label
"Adsorption/Desorption TPD 150 degC". This label is useful when comparing results from different
cases in GT-POST.
Finally, we want to turn on some plots for viewing results. Double-click the `ChemConn` connection
between the “SCR_Mechanism” and “Catalyst” parts. Go to the Plots folder and turn on each of the 4
plot checkboxes (or click the checkbox at top to turn on all 4 plots). Click OK to close the `ChemConn`
connection.
The model is now ready to be run. Click the green arrow button in the Home toolbar to run the
model. Assuming everything has been specified correctly, the model should run fairly quickly in about 1
minute. After it has finished, click the View Results button in the Home toolbar to open GT-POST.
Note: This section assumes the user is familiar with GT-POST. Users with no prior experience with GT-
POST are encouraged to complete the GT-POST Tutorials located in
FileTutorialsGraphical_ApplicationsGTpost.
Next go to the Plots tab in the Plot Tree, find ChemConn plots, expand, right-click on the
Concentration/Site Fraction: ZNH3 plot, and select View. This plot displays datasets of the ZNH3
coverage (fraction of adsorbed sites). Datasets corresponding to the catalyst subvolumes are given in this
plot. It can be seen that the catalyst reaches equilibrium coverage of 0.7 after saturation. The coverage
begins to decrease at 2300 s when the inlet ammonia is stopped, and equilibrates again around a coverage
of ~0.4. When the temperature is increased, the remaining ammonia is desorbed.
20
Tutorial 1
Feel free to browse any other results, but this concludes the initial building of SCR system, and the next
section will address calibration to improve the predictive behavior of the model.
The SCR model will be calibrated by optimizing the reaction rate parameters to minimize the difference
between simulated results and measured data. The best modeling practice is to calibrate individual
reactions one-by-one until the entire mechanism is calibrated. This is accomplished by controlling the
inlet feed mixture to the SCR and taking measurement data for each calibration step. For example, to
calibrate the NH 3 adsorption/desorption reactions, an inlet feed without O 2 , NO, and NO 2 would be
needed so that reactions 3 – 7 of the mechanism are not active.
Instead of going through the complete calibration procedure, we are going to demonstrate only one step
of the process by calibrating the NH 3 desorption. It will be assumed that the adsorption reaction is
already well calibrated.
The SCR model will be calibrated using measured species concentration data exiting the reactor. For the
purpose of this tutorial, a concentration profile that will serve as measured data is readily available in the
file “SCR_Measured_Data.gtm”, which is located in this tutorial directory.
21
Tutorial 1
Open the aftertreatment tutorial file “SCR_Measured_Data.gtm”. Here you will find a `XYTable`
reference object containing time-dependent data for NH3 concentration. Copy the reference object
“NH3_TPD_Exp” from this file to your SCR model file.
The SCR will be calibrated by optimizing the reaction rate parameters that give results closest to our
measured data. To quantify the difference between simulated results and measured data, we will be
using an absolute total error function. It is defined below, where yi is the mole fraction of species i ,
yim is the measured mole fraction of species i , and K is the number of species to take into account. This
total error function is cumulative such that it gives a total error over the duration of the simulation. The
goal of calibration/optimization is to find the reaction rate parameters that minimize this total error
function.
∑ ∫ (y )
K t
2
i − yim dt
i =1 0
`TotalErrorFunction` has the ability to calculate error function based on measured pressure, measured
temperature, or measured composition data. For this tutorial we will perform calibration by only taking
into account concentration of NH 3 , so leave the attributes Measured Pressure and Measured
Temperature buttons deactivated. In the attribute for Measured Composition, type “measured_comp”
then double-click the green text to create a new `XYTableMultiImplicit` reference object. This template
is used to specify an `XYTable` of species compositions vs. time or crank angle for one or more fluid
objects. Use Value Selector to fill in the NH 3 fluid object in the first column as shown below, then use
Value Selector to add the “NH3_TPD_Exp” reference object in the second column.
22
Tutorial 1
Click OK to save and close the “measured_data” reference object. In the “TotalError” object, make sure
the Species Specification is set to “total”. `TotalErrorFunction` has the ability to give different
weightings to individual species, but for now leave the Species Weighting Factor attribute to “def”.
Finally the Composition Error Internal Units are the internal units used for calculating the error. Leave
set to ppm such that when the error is calculated from the square of the difference of two numbers that a
larger significant number is produced compared to if the calculation was performed using mole fraction.
The Dwell Duration may be used to omit data at the start of simulation to avoid biasing the error to bad
initial conditions, and may remain as “def” as well. The Error Expression allows the user to choose
how to define the total error function. Two predefined functions are available, “absolute” and
“normalized”. The equation defined on the previous page is the “absolute” option that we will use.
There is also a selection for “equation” where the user may enter a customized equation in the Equation
for Error Expression attribute. Leave the Error Expression as “absolute” and click OK to save and
close the “TotalError” object.
23
Tutorial 1
Click and drag the “TotalError” object to the map to create a part, and place it near the outlet cone
flowsplit. A nice feature about `TotalErrorFunction` is that only one default sensor is needed to sense all
species concentrations to send to the `TotalErrorFunction` part on the map. Go to Create Link mode
and create a link from the outlet cone to the “TotalError” part. When the input signal dialog appears,
select Species Mole Fraction located in the Composition folder with units of fraction.
The TPD simulation will be calibrated with the Direct Optimizer. To use the Direct Optimizer, the
reaction rate constants to be optimized must be defined as parameters. Go to the Site Reactions folder of
the “Kinetics” object. For reaction 2, change the Pre-exponent Multiplier to [Ad].
In the General and Inhibition Function folder, go to row 1 which contains the activation term for the
desorption reaction. The quantity 22.95*4184 combined is simply the activation energy in units of J/mol,
so 22.95 is that value in units of kcal/mol. The optimization can be performed on either quantity. Here
we will replace 22.95*4184 with [Ed], so the optimization independent variable will be in units of J/mol.
24
Tutorial 1
Go to Case Setup. Enter the original rate constants of 208000 and 96000 for [Ad] and [Ed]. Click OK
to save and close Case Setup.
Go to the Opt-Arrays folder. In the Parameters to be Varied row, use Value Selector or type the
names of the two parameters. The parameter range for the pre-exponent power will be from 100,000 -
300,000. The range for the activation energy will be from 80,000 - 120,000. Finally, specify a
Resolution of 5% for each parameter. It would be recommended to set each one lower to achieve a more
accurate optimization, but a lower Resolution results in more iterations and longer runtime. These
resolutions should suffice for demonstration. Click OK to save and close the Direct Optimizer.
The model is now ready for simulation. Click the green Run button in the Home toolbar to run the
simulation. On a very fast 64-bit Windows machine, the simulation ran 24 iterations and took about 9
minutes.
After the simulation has completed, open GT-POST. In Plot Mode, go to the Tables folder/tab, and
click on Optimization to view the optimization table of results. Each row contains the iteration number,
and the columns contain the independent and dependent variables. In the first row for Iteration 1, you
should see the two initial parameter values produced a total cumulative error of 1.57E7. The final row,
which should be Iteration 24, contains the final optimized values. The optimized value for “Ad” is
235,000, and “Ed” is 91300, the two of which produce the total cumulative error of 1.32E7.
25
Tutorial 1
Navigate back to the Plots folder/tab and go to the Optimization plots. Contained here are plots of the
dependent variable vs. each independent variable, as well as a relative sensitivity comparison. Below is a
plot comparing the original model results with the optimized run and measured data. The optimized
results do not differ significantly compared to the original results, because the mechanism had already
been calibrated to the measured data, which came from the published paper.
Urea solution can be easily injected into any pipe or flowsplit using the `InjRateConn` template. An
`InjRateConn` part attaches directly to the flow component on the map, for example a pipe or flowsplit.
26
Tutorial 1
This template only requires an injection mass flow rate which can be made time-dependent with a
`ProfileTransient`, or it can be controlled by attaching an `ActuatorConn` to it to actuate the signal.
The injected Fluid Object can be set to the predefined fluid object in the Template Library called "urea-
solution-NASA", which represents a fluid with composition of 32.5% urea – 67.5% water by mass
(commonly referred to as AdBlue® or AUS32 in Europe, or as DEF (Diesel Exhaust Fluid) in North
America). This is the eutectic composition which results in the lowest freezing temperature (~11°C) of
the mixture. Solutions with more or less than this composition will freeze at higher temperatures, which
is undesirable for automotive applications. The "urea-solution-NASA" fluid object has properties
representative of a 32.5% urea – 67.5% water solution, so it cannot be used if attempting to model an
aqueous urea solution with a different composition. Please contact GT Support if creating a urea solution
other than 32.5% is desired.
After urea solution is admitted to the system, the breakdown to ammonia can be handled in a couple
different ways. When urea solution is injected into a hot exhaust stream, the following phenomena
occur:
1. Liquid water evaporates, leaving solid urea particles, (NH 2 ) 2 CO, entrained in the gas phase (note
that urea and water will not be in a 1:1 molar ratio in the liquid/solution phase).
2. Solid urea undergoes thermolysis as it decomposes into ammonia (NH 3 ) and iso-cyanic acid
(HNCO).
27
Tutorial 1
Either these reaction steps can be modeled individually, or the thermolysis and hydrolysis reactions can
be lumped into one reaction:
The user might want to model the reactions individually to calibrate the different reaction rates if it is
expected that the conversion from urea to ammonia is less than 100%. In this way the rates can be
calibrated to achieve conversion rates less than 100% if measured data is available. However if
measured data on the conversion efficiency is not available, it may be best to simply model the reaction
as very fast so that the conversion from urea to ammonia is always 100%. In this situation it is easier to
model the themolysis and hydrolysis reaction with the single lumped reaction.
These reactions, including the evaporation/separation of water from urea, are best modeled using the
`GlobalReactions` template. After creating a `GlobalReactions` object, a part can be connected to any
pipe or flowsplit to apply the reactions to that component. Recommendations for the `GlobalReactions`
object are discussed next.
The first `GlobalReactions` attribute indicates whether the reactions will take place on the surface or in
the gas phase, and "gas" should be selected for thermolysis/hydrolysis reactions. The `SpeciesSettings`
object should contain both liquid water and vapor water, as well as both urea-solution-NASA and urea-
NASA. urea-NASA will represent solid urea after the solution evaporates the liquid water. Diffusion
can be ignored and set to "kinetic-limited".
In the Solver Options tab, the recommended ODE solver for simple and non-stiff kinetics is "Adaptive-
RK".
In the Reactions folder, the following screenshot shows the reactions to enter.
28
Tutorial 1
represents the mole fractions of urea and water in a mixture of 32.5% urea – 67.5% water by mass. In
other words, one mole of aqueous urea solution contains 0.1262 moles of urea and 0.8738 moles of
water. Because the rates are assumed very fast, the Activation Temperatures are set to 0 and the Pre-
Exponent Multipliers are set arbitrarily high.
29
Tutorial 1
For this stand-alone DPF model, the model will consist of the DPF, a flow boundary condition at the
inlet, and a boundary condition at the outlet. No additional pipes or flowsplits will be necessary for the
scope of this tutorial. To start with the DPF geometry, double-click the 'DieselParticFilter' template in
the model tree to create a new object and name it “DPF”. Before filling in attributes, review the
geometry specifications given in the table below.
Start with the Main folder of the template. First, enter the Frontal Diameter of the DPF corresponding
to the total frontal area. In this case 11.25 inches. It is also important to distinguish between the total
cell density and inlet cell density for this model - these will differ by a factor of 2 for a square channel
DPF, and the model requires the Inlet Cell Density. Select the button for Inlet Cell Density and set the
value and units to 95 1/in2 (use half of the total to get the inlet cell density). Set the Channel Length to
14 inches. The Number of Axial Discretization Intervals determines the discretization of the DPF, and
the "def" value of 30 sub-volumes is generally sufficient for accuracy. It may be more sub-volumes than
necessary for a clean filter pressure drop model. The user should verify grid independence by checking if
results change when the number of axial discretization intervals is changed.
30
Tutorial 1
For the Initial State Object, create a new 'FluidInitialState' reference object called "init". Specify a
Pressure of 1 bar and Temperature of 573 K. For the Composition attribute, select the predefined
'FluidMixture' object "air-NASA" from the Template/Object Library.
It is more common for suppliers to provide the wall thickness rather than channel width, and the wall
thickness is typically in mils or milli-inches. Therefore it is recommended to use the input of Substrate
Wall Thickness. Select the button for Substrate Wall Thickness and set the value and unit to 0.017 in
(approximately 0.43 mm). Note that it is possible to model asymmetric channels by specifying Inlet
Channel Width and a different Outlet Channel Width, however in this tutorial we will assume
symmetric channels.
Next proceed to the Thermal folder, in which the user can choose to impose a constant wall temperature,
or provide the thermal properties in order to calculate the wall temperature. In this tutorial model the
simplest calculated wall temperature model will be used such that only the substrate temperature will be
calculated. Outer wall layers and external boundary conditions will be ignored.
First, select the Calculated Wall Temperature radio button. Set the Initial Wall Temperature
attribute to "def" or 573 K. A value of "def" means it will get its initial wall temperature from the initial
gas temperature defined in the Initial State Object in the Main folder.
For the Substrate Thermal Properties Object use Value Selector to search the Template/Object library
for the pre-defined 'MaterialThermalProp' object named "Cordierite" from the Library. This object
represents typical catalyst ceramic substrate material with a density based on a porosity of 0.35.
NOTE: If using the GT predefined material object "Cordierite", it is important to understand the density
defined in this object is the bulk density, meaning it is function of the porosity. The default Cordierite is
defined based on a catalyst substrate with 35% porosity. Since a DPF substrate has a porosity of about
50%, the density of this material should be changed to about 1325 kg/m3. Do this by right-clicking on the
"Cordierite" reference object in the Project Model Tree, then select "Break Implicit Link" to be able to
edit the properties. Edit the "Cordierite" object and change the density to 1325 kg/m3.
31
Tutorial 1
The remainder of the attributes in the Thermal folder will be left as-is. However, worth mentioning is
the attribute Heat Input Rate, which can be used to directly impose heat loss by using a negative heat
input rate, or it can be used to model an electrically heat catalyst by providing a positive heat input rate,
and in addition the Heat Input Rate can be actuated by linking to a control system so that the heat can
be turned on or off by a controller.
Finally go to the Pressure Drop folder, contains several attributes that affect flow through the clean
DPF. The Clean Filter Wall Permeability is the primary attribute for calibrating the clean filter
pressure drop, and values are typically on the order of 10-7 mm2. This attribute may be set to “def” to
have the value calculated from a correlation which is a function of filter porosity and pore diameter (see
the Template Help for details). Since this attribute is currently unknown, “def” is the best input to begin
with, and this attribute will be calibrated in the next section.
There are some recommended values for the Pore Diameter and Filter Porosity in the Template Help
manual as well as common “def” values available. With lack of available data, we can set these to "def"
to start and calibrate later if necessary.
The Contraction and Expansion Pressure Drop Coefficients account for pressure losses at the inlet
and outlet of the DPF do to contracting and expanding flow. They account for the quadratic relationship
between flow and pressure drop and their influence becomes significant at higher flow rates. Therefore
these attributes are primary calibration knobs when calibrating quadratic pressure drop vs. flow rate of
the clean filter. Typical values range from 0.3 to 3. They can be left as "ign" until the next section of the
tutorial.
The remaining attributes in the Pressure Drop folder will be not be discussed or used in this tutorial, and
should remain set to their prefilled values.
32
Tutorial 1
The Modeling Options folder contains additional attributes for more detailed DPF modeling. The
Filtration Object is used to define the particulate matter filtration and pressure drop due to loading. The
Regeneration Object defines DPF regeneration chemistry, and the third attribute allows the ability to
model 2D and 3D effects. Filtration and regeneration will be covered later in the tutorial.
Enter a 1D Plot Frequency of 5 seconds so the animated axial plots can be viewed in GT-POST.
With the DPF geometry defined, click OK to save and close the “DPF” object. Click and drag the object
from the model tree to the map.
The next step is to create the inlet flow boundary object, which will be accomplished with the
`EndFlowInletSpecies` template. Double-click that template in the model tree to create a new object
named “Inlet”.
The flow rate will be specified on a mass basis, so the Volumetric Flow Rate, Velocity, and Mass Flux
should be set to “ign”. Specify the Mass Flow Rate with a new parameter called “[mass_flow]” – the
parameter values will be entered later. The Temperature can be set to 573 K. Select “Mole Fraction”
for the Composition Specification, and in the Composition attribute create an `XYTableMulti`
reference object called “Composition”. In the Data folder, use Value Selector to populate the top XDat
row with FluidNASA-LiqGas objects for N 2 , O 2 , CO 2 , H 2 O, CO, and NO. Fill rows 1 and 2 with the
mole fraction values shown in the screenshot below. This object has a useful feature that will be
exploited here: the mole fraction of one species may be set to “def” to have its composition calculated by
subtracting the sum of the others from 1. Set the first column YDat values to 0 and 300, meaning 0 to
300 sec.
33
Tutorial 1
Click OK to save and close the “Inlet” object, then drag a part to the map. Finally to create the outlet
boundary condition, double-click the `EndEnvironment` template to create a new object called “Outlet”.
Specify a Pressure of 1 bar, Temperature of 573 K, and “air-NASA” as the Composition. Click OK to
close the object, then drag a part to the map. Complete the flow system by linking between the three
parts as shown below by changing to link mode, which is done by right-clicking anywhere on the map
and selecting "Start New Link", or by selecting the Link button in the Home toolbar.
34
Tutorial 1
The Clean Filter Pressure Drop will be calibrated against a range of flow rates measured at steady
state. The table below lists ten steady-state mass flow rates and their respective pressure drops. All data
are assumed to be taken at the same exhaust temperature of 573 K. The clean filter pressure drop
measurements are assumed to have been taken before any significant accumulation of particulates has
occurred.
Go to Case Setup to set up this series of experiments. The first step is to Insert or Append nine
additional cases to the one currently available. For the parameter "mass_flow" change the unit to g/sec
first, then for the Case 1 cell enter a value of 10 g/sec. In the Case 2 cell we are going to enter a formula
and then propagate that formula to all the cells to the right. The formula to enter is:
=[<1]+30
This means take the value from one cell to the left and add 30 to it. After entering the formula in the
Case 2 cell when Enter key is pressed it will automatically propagate the formula to all the cells to the
right. It should then look like the following. There is a Show Formula / Show Value button in the Case
Setup toolbar that can be used to toggle between formula and value.
35
Tutorial 1
Finally in the first cell of the Case Label row, type “[mass_flow] g/s” to have that parameter value
appear in the Case Label. Again upon entering the formula is should automatically propagate the
formula to all cells to the right. Click OK to save and close Case Setup.
Next go to HomeRun Setup. In the TimeControl folder, set the Time Control Flag to “continuous”.
Calibration of the clean filter pressure drop does not require any particular simulation duration – it
simply needs to be long enough to reach steady state. Since there are no transient inputs to the model,
use a short value of 10 seconds for the Maximum Simulation Duration (Time) and set the Automatic
Shut-Off When Steady-State attribute to “on”.
Go to the FlowControl folder. For Time Step and Solution Control Object, use Value Selector button
to create a new FlowControlQS object named "QS" and assign a master Time Step of 1 sec. QS time
step sizes for aftertreatment models are typically on the order of 1 sec. In general the time step should be
chosen to be less than or equal to the frequency of the measured inlet data provided to the model, which
is usually on the order of 1 second. The remainder of the attributes in the FlowControlQS object can be
left to their pre-filled values.
Go to the ThermalControl folder. Set the Thermal Solver attribute to “transient”, because later in the
tutorial we will want to transiently solve the DPF wall temperatures while doing soot regeneration. Click
OK to save and close Run Setup.
Finally, open the “DPF” part located on the map and turn on plots for the “Pressure Drop” and “Filter
Substrate Temperature” under the "Main" plots tab.
The model is now ready for simulation. After running the model with the calculated/predicted Clean
Filter Wall Permeability (using a value of “def”), the results will be compared to measurements before
calibration. Go to RunStart Simulation. The model should run very quickly. After it finishes, open
the .gdx file in GT-Post.
The first thing to check is the calculated/predicted clean filter wall permeability. Go to GT-ISE Style
Map View and double-click the DPF part on the map. Find the Case RLT results and the Clean Filter
Permeability RLT under the Initial folder. The calculated value using default porosity and pore diameter
is 6.25E-7 mm2.
It is common to plot the clean filter pressure drop against flow rate. With the .gdx file active, go to
MacroRLT Plots. Choose “Case RLT” for the RLT Type and “XY Scatter Plot” for the Plot Type.
Then click Next.
36
Tutorial 1
In the next window, enter the RLTs for the X- and Y-axes. The X-axis should be mass flow rate, so you
may use the “mass_flow” parameter from the "Parameters" folder. The Y-axis should be the “Average
Pressure Drop” RLT given by the DPF. Click Next when finished.
37
Tutorial 1
The next dialog includes some miscellaneous options you can modify if desired. Click Finish to place
new RLT plot in a new Report File (GU). After creating the plot, right-click on the plot level in the
Report File and click “Add Data”. In the Add Data Wizard window that appears, select “Explicit” and
click Next. In the Data Name field, type “Measured”, then click Finish. In the array that appears, enter
pressure drop vs. mass flow values corresponding to the data given in the table, then click OK.
Right-click at the plot level and View (or press F4) the plot to show the simulated pressure drop against
the measured data. The predicted pressure drop of the model is consistently linear with respect to mass
flow rate, which is expected based on the inputs provided. However the measured data has a slight bend
to it that suggests a quadratic effect on pressure drop at higher flow rate. The next section will focus on
calibrating the clean filter pressure drop. Save the Report File (*.gu) to the working directory of the DPF
model you are building.
38
Tutorial 1
Using a “def” value for the Clean Filter Wall Permeability resulted in pressure drops that were close to
the measured values at low flow rates, but the clean filter model needs calibration for a better fit. The
main attributes to calibrate clean filter pressure drop are the Clean Filter Wall Permeability and the
Contraction/Expansion Pressure Loss Coefficients. There are a number of ways these can be
optimized to calibrate the pressure drop with respect to the measurement values. Using the Direct
Optimizer could be one method. However, because of the simplicity of the system (the wall permeability
simply affects pressure drop curve at lower flow rates and the pressure loss coefficients affect the curve
at higher flow rates), and the very fast run time of the model, it may be easier to simply calibrate the
model manually through trial-and-error.
The Clean Filter Wall Permeability generally affects the slope of the pressure drop vs. flow rate at
lower flow rates. From the above plot, the model is predicting a lower slope than what the measured
curve shows, so the Wall Permeability should be decreased to increase the pressure drop.
Decreasing the Wall Permeability to 3E-7 mm2 gives a good match between the two curves at the lower
flow rates, as shown in the left-hand plot below. The model needs larger pressure drop at higher flow
rates, and a slight quadratic shape to the measured data is observed, so the Pressure Loss Coefficients
should be increased. A wide range spanning 0.3 - 3 can be found in literature for these values, and it is
generally recommended to use the same values for the two coefficients. When the
Contraction/Expansion Pressure Loss Coefficients are increased to a value of 1.0, the pressure drop
matches much better at higher flow rates, as shown in the right-hand plot below.
The attributes can be further fine-tuned to give a better calibration, and a Wall Permeability of 4E-7
mm2 and Loss Coefficients of 1.6 give the best fit. Go back to GT-ISE and enter these calibrated
attribute values in the DPF. Then re-run the model and view the calibration plot. The results of the
calibrated model agree well with the measured data.
39
Tutorial 1
Go to GT-ISE and save the model as a new file name: DPF_Loading.gtm. The first step to model loading
is to include soot in the inlet flow boundary. Go to the “Composition” reference object called by the
“Inlet” flow boundary. The soot loading experiment will be carried out at steady conditions. Use Value
Selector to add an additional fluid object to the top row: c-NASA(soot) and enter the mole fraction of
1.1E-4 to the rows below it. The predefined c-NASA(soot) fluid object is a species composed of a single
carbon atom, which is common practice for global soot modeling. Of course the fluid species object can
be modified to create a more detailed composition. Click OK to save and close.
Because the soot loading experiment is done over a five hour duration, go to
SetupRunSetupTimeControl and increase the maximum simulation duration to 10800 seconds (3
hours). Make sure to set the "Automatic Shut-Off When Steady-State" to off to prevent the simulation
from shutting off early. Click OK to close Run Setup.
Only a single loading experiment will be simulated, so go to Case Setup and delete all but one case. Set
the [mass_flow] parameter to 120 g/s.
40
Tutorial 1
To simulate DPF filtration, a `DPFFiltration` object must be defined in the DPF. Edit the “DPF” object
and in the Modeling Options folder, create a new `DPFFiltration` reference object in the Filtration
Object attribute called “Filtration”.
The `DPFFiltration` template is used to calculate pressure drop through the DPF as particulates become
trapped in the filter. It is divided into three tabs - main wall and soot properties, soot calibration
attributes, and ash modeling.
There are many attributes in the first two tabs, many of which are unknown for the real system, and
therefore most of the attributes may be left as “def”, for which typical values may be used. Only a few
attributes will be discussed here – see the Template Help for detailed information about the others. The
first attribute requires the name of a fluid object that represents particulate matter. Entering "def" means
the solver will automatically try to find the fluid object with a single carbon atom. Alternatively you can
define your own soot fluid object, so as an example use Value Selector to select the c-NASA(soot) fluid
object. The next three attributes contain information about initial particulate mass in the filter. These
attributes may be left as they are since we will simulate particulate loading with an initially clean filter.
The next attribute, Number of Filter Wall Discretization Intervals, defines the number of discretized
slabs that the filter wall will contain, or in other words the number of discretizations in the wall direction.
This attribute is recommended to be set to 5 when the Collection Efficiency will be predicted (when it is
set to “def”), which is what will be done here. Therefore set the Number of Filter Wall Discretization
Intervals to a value of 5.
The Primary and Aggregate Particulate Matter Diameters, as well as the Thermal Conductivity of
Soot Layer should generally remain as "def". The Maximum Soot Cake-Substrate Contact Layer
Thickness is an optional layer to model different regeneration kinetics when the DPF substrate is
catalyzed. Its basic purpose is to allow greater degrees of freedom when calibrating soot regeneration
when needed.
41
Tutorial 1
The PM (Soot) Calibration tab contains the attributes for calibrating the loaded filter pressure drop.
These may be left as “def” for now. The primary calibration attributes are Percolation Constant,
Particulate Packing Density Inside the Wall, and Soot Cake Layer Porosity and will be discussed in
more detail. For now, all attributes in this tab can remain as "def" until we compare the model to
measured data. Click OK to save and close the “Filtration” object.
Because this run will be a long duration with steady inlet conditions, the time step can be increased to
lower the run time. Open the "QS" `FlowControlQS` object from the model tree and change the time
step from 1 second to 5 seconds. Finally, double-click the DPF part on the map and turn on plots for the
instantaneous total soot mass retained in trap, soot mass in soot cake layer, and soot mass in filter
substrate from the PM (Soot) Loading plots tab, and turn on any other plots of interest. Run the
simulation and open the .gdx file in GT-Post.
With the .gdx file open, copy the instantaneous DPF "Pressure Drop" plot to a Report File (GU). A
measured pressure drop profile is available by going to FileTutorialsModeling
ApplicationsAftertreatmentDPF_Loading_Data.gtm. The XYTable "Loading_dP" contains the
pressure drop vs. time data. Copy this data to an explicit data set in the pressure drop plot (right-click on
plot, select Add Dataexplicit) and name it Measured. View the plot to compare the model to
measurement.
42
Tutorial 1
Clearly some calibration is needed to get the model pressure drop to match the measured curve. For the
majority of models, it has been found that three attributes are sufficient for calibrating soot loading -
Particulate Packing Density Inside the Wall, Soot Cake Layer Porosity and Percolation Constant.
Again, soot loading calibration can be achieved using the Direct Optimizer, but it is often just as easy to
calibrate manually, as will be described here.
The Particulate Packing Density Inside the Wall primarily determines the slope of the pressure drop
vs. time curve during deep bed filtration, as shown in the plot below. It is usually a good first step for
calibrating the curve, since the pressure drop at t=0 should match perfectly considering it is the clean
filter result.
43
Tutorial 1
Comparing the model with "def" values to the measured curve, it is apparent the slope of the pressure
drop vs. time curve is higher than it needs to be. To lower the slope, the wall packing density needs to be
increased, as indicated by the plot above. Changing the Particulate Packing Density Inside the Wall
from "def" to 20 gives a good match for the first 1200 seconds of the simulation.
The Percolation Constant helps determine how much soot can be collected in the substrate, and
therefore it primarily determines the transition point between deep bed filtration and soot cake loading.
In a pressure drop vs. time plot, it shifts the transition point between the two linear slopes up and to the
right as the attribute increases.
44
Tutorial 1
Comparing the model to measured data, it appears the transition point of the model needs to be shifted up
and to the right to match the measured curve, which means the Percolation Constant should be
increased. Changing the value from "def" to 0.916 matches the measured data very well.
The Soot Cake Layer Porosity is the recommended attribute to control the packing density of the soot
cake layer. Although the attribute Particulate Packing Density Inside Soot Layer does exist, it is
better practice to leave this set to "def" and modify the soot cake layer porosity. This method is more
consistent by making the soot layer packing density equal to the solid fraction (1-porosity) multiplied by
the solid density, where the solid density of soot is considered to be 2000 kg/m3, and also the soot cake
45
Tutorial 1
permeability is a function of the soot cake porosity so changing porosity correctly changes the density
and the permeability at the same time.
The Soot Cake Layer Porosity primarily affects the slope of the pressure drop vs. time curve during
soot cake filtration when the substrate has mostly stopped collecting soot. An example is shown below:
Comparing the model and measured curves, it appears the slopes of the two curves are about the same, so
for now leave the Soot Cake Layer Porosity set to "def".
These three attributes are the primary calibration parameters for soot loading, but they do not have to be
the only ones. Modifying other `DPFFiltration` attributes may be necessary to calibrate the model. In
such circumstances, sensitivity studies should be performed on other attributes to determine if and how
they can improve the calibration.
46
Tutorial 1
further complicates the process, as there will be a different rate of reaction at the surface for chemical
species that diffuse through the soot cake.
To model this complex process, it is more reasonable to apply a few global reactions and calibrate them
to match measured pressure drop, outlet temperature, and possibly concentration data if available. For
example, soot oxidation is generally handled with the following simple reaction, assuming soot is
modeled as a single carbon atom:
C + O2 → CO2
This reaction is typically applied separately to the substrate and in the soot layer so that they can oxidize
at different rates if needed. In addition, the extent to which soot oxidizes to CO or CO 2 can be easily
controlled to match the extent of heat release and therefore the DPF outlet temperature.
Reactions are applied to the DPF using either built-in reaction objects, or by attaching a
`GlobalReactions` or `SurfaceReactions` part to the DPF. The built-in reactions are simply a fast and
convenient way to implement the most common global regeneration reactions without the user having to
create their own reaction mechanism. However, the GT-POWER chemistry library is robust enough to
allow the user to model any complex mechanisms or systems by using the *Reactions templates. For
simplicity this section will focus on modeling active regeneration using the built-in reactions.
This section will work with the model "DPF_Active_Regen_Start.gtm" located in the tutorial directory.
This model contains inlet boundary conditions, geometry, and filtration object already set up. Open this
model and view the inlet mass flow rate, temperature, and composition located in the
EndFlowInletSpecies. The mass flow rate begins at 200 g/s and steps up to 380 g/s over a duration of
about 15 seconds. At the same time, the inlet gas temperature increases from 312°C to around 440°C.
The composition object also shows an increase in incoming soot concentration. These inlet conditions
represent an increase in engine load to start the active regeneration.
47
Tutorial 1
Edit the "DPF" object, and in the Modeling Options tab, set the Regeneration Kinetics Flag to "built-
in". In the Regeneration Object attribute, use Value Selector to create a new `DPFReg1D` object called
"Regen". For reference, the `DPFReg0D` object is used to apply built-in reactions for a zero-dimensional
DPF.
The `DPFReg1D` object contains three tabs representing three possible layers to apply reactions. The
layers include the soot cake layer, soot cake-substrate contact layer, and substrate layer. The first applies
reactions to the soot cake, and the third applies reactions to soot in the wall. The soot cake-substrate
contact layer is a "virtual" layer that is meant to apply a different set of rate constants to soot in contact
with the wall to represent a catalyzed DPF. However, modeling a catalyzed DPF does not require using
this layer - it is only a way to add more degrees of freedom if needed for calibration. In general this layer
is not necessary and it will not be used in the tutorial.
In the Soot Cake Layer tab, activate Reaction 1 by checking the box. Reaction 1 is the oxidation of soot
via O 2 to create CO and CO 2 . The degree to which soot oxidizes to CO or CO 2 is determined by an
attribute called the CO Selectivity Factor which ranges from 0 - 1. When this factor is 1, all soot is
converted to CO and when it is 0, all soot is converted to CO 2 . It is typically calibrated to an
intermediate value to match the DPF outlet temperature since it determines the amount of heat release.
For reference, Reaction 2 is stoichiometrically the same as Reaction 1. Its purpose is to represent passive
regeneration with a different reaction rate when inlet NO 2 data is not available. Typically Reaction 2 can
be ignored.
Create parameters for the Activation Temperature, Pre-Exponent Multiplier, and CO Selectivity
Factor attributes called [Ta_Ox], [A_Ox], and [CO_Ox]. Then go to the Substrate Layer, activate
Reaction 1, and use the same parameters for those attributes. It is generally recommended to try using
the same rate constants in both layers for simplicity, then try using different rate constants in the two
layers if calibration requires more degrees of freedom.
48
Tutorial 1
Click OK to save and close the "Regen" object, and OK again to save and close the DPF object. Next go
to Case Setup to assign values to the reaction rate constants. Assign initial guess values of 1E5 to the
pre-exponent multiplier, 23000 K to the activation temperature, and 0.5 to the CO selectivity factor.
This regeneration experiment will start with a filter initially loaded with 155 grams of soot. To initialize
the DPF with soot, the `DPFFiltration` object must be modified. Open the "Filtration" object, where the
initial soot mass in the substrate and in the soot layer are specified in the Main tab. Determining how to
distribute the initial soot between the substrate and soot layer is done by checking the plot of total soot
mass retained in the filter vs. time from the calibrated loading simulation. These plots are provided here
(they are different from the soot loading exercise from the last section of this tutorial).
49
Tutorial 1
The total initial soot mass of 155 grams is known (likely by weighing the filter). From the first plot of
total soot retained vs. time, 155 grams occurs at t=4.28 hours. Checking the second two plots, at t=4.28
hours there is 4.1 grams in the substrate and 150.9 grams in the soot layer. These are the values we
should enter in the filtration object, and they should yield the correct pressure drop at the start of the
regeneration experiment.
The model is ready to run. Run the model and view the monitors that are already set up to compare the
model results with measured pressure drop and measured outlet gas temperature. These are the main
measured data to use for active regeneration calibration. The pressure drop increases quickly from 60 -
75 seconds as a result of the step change in mass flow rate. The pressure drop eventually decreases
however as a result of the soot being consumed from the DPF. You can view the plots of soot mass in
the substrate and in the soot layer to confirm that all soot is indeed removed from the filter.
The reaction rate constants need calibration to better match the measured data. It is clear the model
predicts a slower rate of oxidation than what the measured data shows, because it takes much longer for
the pressure drop to reach the final value of about 6.8 kPa. The predicted outlet gas temperature is also
significantly delayed compared to the measured data, which suggests the activation temperature should
50
Tutorial 1
be decreased to start the reaction sooner. Finally, the peak outlet gas temperature is only about 955 K
whereas the measurement has a peak of 1040 K. The temperature difference suggests more soot should
be oxidized to CO 2 to gain more heat release, which means decreasing the CO Selectivity Factor.
Go back to Case Setup in GT-ISE. To begin, it might be a good idea to decrease the activation
temperature to start the regeneration sooner. Decrease the activation temperature to 22000 K. At the
same time decrease the CO Selectivity Factor to 0.1. Run the model again to re-evaluate the model
results.
51
Tutorial 1
After adjusting the rate constants, the comparison is somewhat better, but it still seems as though the
regeneration is delayed or not fast enough. From here the activation temperature could be further
decreased, but increasing the pre-exponent multiplier might work just as well. The peak outlet gas
temperature is about where it needs to be, so the CO Selectivity Factor should be fine. Go back to Case
Setup in GT-ISE and increase the pre-exponent multiplier from 1E5 to 7E5. Run the model again. This
time both sets of measured data match quite well.
52
Tutorial 1
For this calibration, the same reaction rate constants appear to work well for reactions in the soot layer
and the substrate. If problems occurred getting the model to match measured data, different parameters
could be created for the two sets of reactions, and the `TotalErrorFunction` template could be used to
quantify the total error between the transient model prediction and measured data. Then the Direct
Optimizer could be used to minimize the total error and converge on an optimized set of rate constants.
When NO and NO 2 are fed to the DPF, the user has the option to activate NO oxidation with Reaction 4,
which should only be used when the DPF has a catalyzed washcoat. In addition, it is recommended to
only use Reaction 4 in the substrate layer. Finally, Reaction 4 should generally be made reversible by
activating the reversible drop-down flag.
53