Selective Catalytic Reduction (SCR)🔗
Introduction🔗
Objective🔗
Step-by-step tutorial to learn how to work with a Selective Catalytic Reduction model that treats NOx (Nitrogen Oxides) emissions from flue gas in combustion plants with the help of a catalyst using Modelon Impact. The tutorial uses existing components from the Modelon Thermal Power Library and Modelica Standard Library. The tutorial goes over modeling and parametrization, component by component, and explains how the flow of species happens inside the system.
This tutorial will:
- Review the relevant components and how they function.
- Show how to generate results.
This tutorial will not:
- Show how the components themselves are modeled.
- Show how to build a model.
Preparations🔗
Time to complete tutorial steps: approximately 90 minutes.
Platform🔗
- Modelon Impact 2023.1 cloud deployment, or
- Modelon Impact 2023.1 desktop deployment, or
- Modelon Impact 2023.2 on-premise / private cloud deployment
Using a different version of Modelon Impact may result in different displays. The tutorials can still be performed.
Set up Modelon Impact:🔗
- Create a workspace called SCR.
-
Add the following libraries to the Workspace:
- Thermal Power Library 1.26
- Modelon Base Library 4.3
- Modelica Standard Library 4.0
Outline🔗
- Plant Introduction
- System Layout
- System Components
- System Overview
- Component Parameterization and Properties
- Simulation and Results
Plant Introduction🔗
The flue gas treatment plant intakes flue gas and treats NOx pollutants (only NO in this case) using an SCR mixer and reactor. Ammonia is added to the flue gas upstream of a catalytic bed where NOx reacts with NH3 in a reduction process. Only N2 and H2O remain at the end of the reaction. At the end of the simulation, we obtain the inlet and outlet concentration of NO and calculate the required mass flow rate of NH3 for the DeNOx process.
System Layout🔗
The plant to be modeled is present in:
ThermalPower.FlueGasTreatment.Tests.SCR.SCRwithMixer
Create a class called "FlueGasTreatment" and in that create a package called "Tests". Duplicate the SCRwithMixer model and name it SCR (FlueGasTreatment.Tests.SCR).
The plant schematics as shown in Modelon Impact include the closed-loop controllers that are required to control the NH3 flow rate inside the SCR mixer.
System Components🔗
The ThermalPower.FlueGasTreatment package consists of the following sub-packages:
- Test bench in the ThermalPower.FlueGasTreatment.Tests.SCR package contains our SCR model.
- The model consists of different records/data taken from the Records package.
- Components from ThermalPower.FlueGasTreatment.DeNOx package.
- The reactions which are used in the modeling of these components are taken from ThermalPower.FlueGasTreatment.DeNOx.ReactionReaction package.
The paths of all the components used in the SCR model are presented below. To learn more about these components, go to the information section for these components by going to these paths.
Thermal Power Library🔗
SCR_reactor
ThermalPower.FlueGasTreatment.DeNOx.SCR
SF_sim and SF_data
ThermalPower.FlueGasTreatment.Utilities.StoechiometryCoefficient
plantData_in and plantData_out
ThermalPower.FlueGasTreatment.Utilities.PlantData
summary
ThermalPower.FlueGasTreatment.Records.Data.Summary_DeNOx
flowsource_track_mass1
ThermalPower.FlueGasTreatment.Sources.Flowsource_mass_traces
frictionLoss
ThermalPower.FlueGas.FlowResistances.FrictionLoss
frictionLoss2
ThermalPower.FlueGas.FlowResistances.FrictionLoss
reservoir_mass_traces
ThermalPower.FlueGasTreatment.Sources.Reservoir_mass_traces
molarFlowSensor_in
ThermalPower.SeparationProcess.Sensors.MolarFlowSensor
concentration_in
ThermalPower.SeparationProcess.Sensors.ConcentrationSensor
molarFlowSensor_out
ThermalPower.SeparationProcess.Sensors.MolarFlowSensor
concentration_out
ThermalPower.SeparationProcess.Sensors.ConcentrationSensor
SCR_mixer
ThermalPower.FlueGasTreatment.Volume.Mixer_ammonia
Modelica Standard Library🔗
Tab_input
Modelica.Blocks.Sources.CombiTimeTable
C_in_data
Modelica.Blocks.Sources.RealExpression
T_in_data
Modelica.Blocks.Sources.RealExpression
X_in_data
Modelica.Blocks.Sources.RealExpression
m_flow_fluegas
Modelica.Blocks.Sources.RealExpression
NOx_sp
Modelica.Blocks.Sources.RealExpression
PID
Modelica.Blocks.Continuous.LimPID
System Overview🔗
In this section, we will describe how the flue gas flows in the overall system through different components.
Flue gases are used as a flow source in the system. The values of flue gas temperature, mass flow rate, flue gas composition and trace species composition at the entrance to the SCR mixer are specified as inputs to the system.
-
C_in_data: Concentration of trace gas species is provided in the order of (NO, NH3, SO2, HCl).
-
T_in_data: Temperature of flue gas at the inlet is specified in this expression.
-
X_in data: Gas composition (mass fraction) in the order of (CO2, H2O, O2, N2, Ash) is provided.
-
m_flow_fluegas: The Mass flow rate of flue gas is specified in this expression.
-
flowsource_track_mass1: Flow source specification of flue gas is defined in this component using input data and concentration, temperature, mass fraction and mass flow rate of flue gases using the connectors.
Ammonia is used as a reductant in the system. Mass flow rate of the sorbent is determined based on the concentration of NO in the plant outlet using a PID control system. Ammonia is passed through the SCR Mixer where it mixes with the incoming flue gas.
The flue gases and ammonia are passed through the SCR reactor where NO reacts with NH3 in a chemical sorption process to form N2 and H2O. Here, a flow resistance is added between the SCR mixer and SCR reactor to create a pressure drop for the flue gas before it reaches the SCR reactor.
Flue gas is now passed through a flow resistance which results in a pressure drop and then it reaches a sink which is maintained at a constant pressure and temperature.
Component Parameterization and Properties🔗
In this section, we will study each component in detail in terms of parameterization, properties, and reactions (when needed).
-
Tab_input: This table contains values of the following properties with respect to time:
- Temp in
- Temp out
- NH4OH
- dp
- NO in
- NO out
- dp
- NH3 out
- SO2 in
- O2 in
- O2 out
- H2O in and
- Vfluegas
‘In’ refers to the inlet and ‘out’ refers to outlet condition in the plant. If the values are unknown, we write -1000 (or any negative value) in the table. Linear interpolation is done to obtain values at a given time. Temperature is provided in °C, NH4OH injection is provided in L/h, dp (pressure drop) is provided in mbar, Vfluegas (flow rate of flue gas) is provided in Nm3/h. The concentration values are provided in mg/Nm3 (dry at 11% O2).
- plantData_in: We specify the inlet concentration of species from the Tab_input table and we also specify some other constants for plant inlet. This block is used to convert concentrations in mg/Nm3 (dry at 11% O2) to SI units.
- plantData_out: We specify the outlet concentration of species from the Tab_input table and we also specify some other constants for plant outlet. This block is used to convert concentrations in mg/Nm3 (dry at 11% O2) to SI units.
-
C_in_data: Concentration of trace gas species is provided in the order of (NO, NH3, SO2, HCl). Since they are trace in quantity, they don’t affect the fluid properties and don’t add up to 1.
-
T_in_data: The Temperature of flue gas at the inlet is specified in this expression.
-
X_in data: Gas composition (mass fraction) in the order of (CO2, H2O, O2, N2, Ash) is provided. They all add up to 1 and affect the bulk fluid properties. This mass fraction is specified to compute the density, specific heat capacity, etc. of the mixture using the properties from Modelon Base Library. We assume ideal gas behavior in this model.
-
m_flow_fluegas: The Mass flow rate of flue gas is specified in this expression.
-
flowsource_track_mass1: Flow source specification of flue gas is defined in this component using input data and concentration, temperature, mass fraction, and mass flow rate of flue gases using the connectors. This sets the mass flow and temperature boundary conditions for our gases in the system at the plant inlet.
-
molarFlowSensor_in and molarFlowSensor_out: This sensor converts mass flow rate in kg/s to mol/s. The molar flow rate is used to compute stoichiometry factors for the species.
-
concentration_in and concentration_out: This sensor converts concentration in kg/s to mg/Nm3.
-
SCR_mixer: This is a volume model that mixes ammonia with flue gases. It also solves heat addition for ammonia reacting with water to form ammonium hydroxide.
-
NOx_sp: Setpoint for NOx target concentration
-
PID: The PID controller uses NOx_sp and the outlet concentration of NO to determine the appropriate sorbent feed rate into the SCR_mixer.
-
SCR_reactor: NOx removal from flue gas is efficiently achieved at low temperatures using SCR techniques. Ammonia is added to the flue gas upstream of a catalytic bed where NOx reacts with NH3 in a chemical sorption process. NH3 can also react with oxygen to form N2 as well. More modeling information can be found in the information section of the SCR component: ThermalPower.FlueGasTreatment.DeNOx.SCR.
-
frictionLoss and frictionLoss2: This component adds a generic flow resistance to create a pressure drop in the flue gases.
-
reservoir_mass_traces: This sink is maintained at fixed temperature and pressure boundary conditions. It means it has an infinite capacity to store trace gases.
-
SF_sim: The stochiometric factor for the feed (NO) is calculated from the model results. The stoichiometric factor is defined as moles of fresh sorbent added to the feed/moles of pollutants (NO) removed from the feed.
Note
The SF is unitless.
-
SF_data: The Stochiometric factor for the feed (NO) is calculated from the plant data. The Stoichiometric factor is defined as moles of fresh sorbent added to the feed/moles of pollutants (NO) removed from the feed.
-
summary: Key variables of interest are outputted in the summary table for ease of reference.
Simulation and Results🔗
Run the model (FlueGasTreatment.Tests.SCR), by clicking the play button in the canvas.
Once the simulation has run successfully, drag and drop the variables of interest into the canvas to obtain their time trajectories. You can also click on the eye icon next to these variables and drag the slider at the bottom of the canvas to display their values at that time point. The summary section in the results contains some key output variables of the simulation. The tutorial plots a few key variables of interest from these calculated values.
From the calculated values, drag and drop summary.NOx_sim and plantData_in.c_NO into the canvas (one by one) and plot them in the same graph. Repeat the above for summary.NOx_sim and plantData_out.c_NO; SF_sim.SF and SF_data.SF. Then plot summary.NH3_sim in an individual plot.
When you visualize the graph of plantData_in and NOx_sim, you will notice the outlet concentration of NO is quite less than the inlet concentration, as expected. Furthermore, the concentration for NOx_sim fluctuates in the same pattern as c_NO: this is due to the PID controller as it takes the outlet concentration of NO and varies the sorbent mass flow rate accordingly.
You will also notice that the NO outlet concentration from our simulation and the plantData matches well. You can now start tuning the calibration factor (diffusion_NH3 and diffusion_NO) in the SCR_reactor to improve the match with your experimental data. These calibration factors will increase/decrease the diffusion coefficients inside the catalyst.
From this simulation, we also obtain the mass flow rate of ammonia in the SCR_mixer to achieve the DeNOx process. We have also calculated the SF (stoichiometry factor) from the simulation result which gives us a good match with the SF experimental data.