Ultraviolet Advanced Oxidation Process
Introduction
Ultraviolet (UV) light is widely used in the water industry to inactivate microorganisms by damaging their nucleic acid, which prevents the pathogen from replicating and causing infection (Wright et al, 2006). Some contaminants resistant to biodegradation, such as N-Nitrosodimethylamine (NDMA), are susceptible to UV disinfection. The high oxidizing capability of UV is often used prior to chemical disinfection to ensure high microbial quality water as well as significantly reducing the chemical dosage required.
Advanced oxidation processes (AOPs) are technologies involving the generation of highly reactive oxidative species, predominantly hydroxyl radicals (\(\text{HO} \cdot\)). Unlike conventional chemical oxidation processes, such as using chlorine, which are selective as to which compounds they can degrade, AOPs are able to completely convert organic compounds into carbon dioxide, water and mineral acids. In addition, AOPs are feasible for full-scale use to destroy organic compounds because they generate hydroxyl radicals at ambient temperature and atmospheric pressure. Typically, the commercially available UV AOPs for industrial water treatment are:
UV light and hydrogen peroxide (\(\text{H}_2\text{O}_2\))
UV light and ozone (\(\text{O}_3\))
UV light, hydrogen peroxide (\(\text{H}_2\text{O}_2\)) and ozone (\(\text{O}_3\))
UV AOPs can be modeled at several different levels, depending on the known kinetic pathways and the modeling objectives. In this work, a basic level kinetic model is presented with an assumption on pseudo-steady state approximation for the kinetic description of free radical species. A pseudo-first order rate constant is utilized to represent the overall degradation rate of contaminants. The users need to provide either UV dose and disinfection rate, or rate constant and exposure time that are can be acquired during UV validation tests. These measurements are then used to simulate the removal of contaminants during the UV AOP process.
This model also accounts for the energy demand for the disinfection process. The users need to provide Electrical Efficiency per Log Order Reduction (EE/O) to evaluate energy costs.
Ports
The model provides two ports (Pyomo notation in parentheses):
Inlet port (inlet)
Outlet port (outlet)
Sets
Description |
Symbol |
Indices |
---|---|---|
Time |
\(t\) |
[0] |
Phases |
\(p\) |
[‘Liq’] |
Components |
\(j\) |
[‘H2O’, ‘NDMA’, …] |
Degrees of Freedom and Variables
The UV system includes the state variables from the associated property package, and an outline of these variables are listed below:
Description |
Symbol |
Variable Name |
Index |
Units |
---|---|---|---|---|
Inlet temperature |
\(T\) |
temperature |
[t] |
\(\text{K}\) |
Inlet pressure |
\(P_{in}\) |
pressure |
[t] |
\(\text{Pa}\) |
Outlet pressure |
\(P_{out}\) |
pressure |
[t] |
\(\text{Pa}\) |
Mass flowrate of components |
\(M_{p, j}\) |
flow_mass_phase_comp |
[t, p, j] |
\(\text{kg/s}\) |
Inlet volumetric flowrate |
\(F_{in}\) |
flow_vol |
[t] |
\(\text{m}^3\text{/s}\) |
NOTE: Variables for ‘temperature’, ‘pressure’, ‘flow_mass_phase_comp’, and ‘flow_vol’ come from the associated property package as state variables and are accessed via {port_name}.{state_var_name}
Aside from the inlet feed state variables (i.e., temperature, pressure, component mass flowrates),
the UV model has at least an additional 5 degrees of freedom that
the user must specify when the uv_dose_type
configuration option is set to default UVDoseType.fixed
and the has_aop
configuration is set to default False
.
The table below gives an outline of these.
Description |
Symbol |
Variable Name |
Index |
Units |
---|---|---|---|---|
Inactivation rate coefficient |
\(k\) |
inactivation_rate |
[p, j] |
\(\text{m}^2\text{/J}\) |
Overall pseudo-first order rate constant |
\(k_0\) |
rate_constant |
[p, j] |
\(\text{s}^{-1}\) |
Pseudo-first order rate constant for direct photolysis of component |
\(k_d\) |
photolysis_rate_constant |
[p, j] |
\(\text{s}^{-1}\) |
Pseudo-first order rate constant for indirect photolysis of component |
\(k_i\) |
reaction_rate_constant |
[p, j] |
\(\text{s}^{-1}\) |
UV dose |
\(D\) |
uv_dose |
None |
\(\text{J/}\text{m}^2\) |
Average intensity of UV light |
\(I\) |
uv_intensity |
None |
\(\text{J/}\text{m}^2\text{/s}\) |
Exposure time of UV light |
\(t\) |
exposure_time |
None |
\(\text{s}\) |
Electricity demand of components with phase |
\(E_{p, j}\) |
electricity_demand_phase_comp |
[t, p, j] |
\(\text{W}\) |
Electricity demand of components |
\(E_j\) |
electricity_demand_comp |
[t, j] |
\(\text{W}\) |
Electricity demand |
\(E\) |
electricity_demand |
[t] |
\(\text{W}\) |
Electricity efficiency per log order reduction (EE/O) |
\(EE/O_{p, j}\) |
electrical_efficiency_phase_comp |
[t, p, j] |
\(\text{J/}\text{m}^3\) |
Lamp efficiency |
\(\eta\) |
lamp_efficiency |
None |
None |
- Users must provide values for and ‘fix’ certain variables to solve the model with DOF=0. Thus, users should fix
either ‘inactivation_rate’ or ‘rate_constant’,
two variables out of ‘uv_dose’, ‘uv_intensity’ and ‘exposure_time’,
either ‘electricity_demand_phase_comp’ or ‘electrical_efficiency’,
and ‘lamp_efficiency’.
However, users may later unfix certain variables for optimization purposes.
NOTE: ‘reaction_rate_constant’ is fixed to 0 when ‘has_aop’ configuration is set to default ‘False’
When setting the uv_dose_type
configuration option to UVDoseType.calculated
, there are 7 additional variables that must be fixed.
This leads to a total of 12 degrees of freedom. Additional variables that must be fixed include:
Description |
Symbol |
Variable Name |
Index |
Units |
---|---|---|---|---|
UV transmittance |
\(UVT\) |
UVT |
None |
None |
Coefficient A |
\(A\) |
A_coeff |
None |
None |
Coefficient B |
\(B\) |
B_coeff |
None |
None |
Coefficient C |
\(C\) |
C_coeff |
None |
None |
Coefficient D |
\(D\) |
D_coeff |
None |
None |
Relative lamp output |
\(\frac{S}{S_0}\) |
relative_lamp_output |
None |
None |
Number of banks |
\(N_{bank}\) |
num_of_banks |
None |
None |
When setting the has_aop
configuration option to True
, there are 2 additional variable that must be fixed.
This leads to a total of 6 degrees of freedom. Additional variables that must be fixed include:
Description |
Symbol |
Variable Name |
Index |
Units |
---|---|---|---|---|
Second-order reaction rate constant |
\(k_{OH}\) |
second_order_reaction_rate_constant |
[p, j] |
\(\text{M}^{-1} \text{s}^{-1}\) |
Steady-state concentration of hydrogen peroxide |
\(c_{\text{H}_2\text{O}_2}\) |
hydrogen_peroxide_conc |
None |
\(\text{M}\) |
- Users must provide values for and ‘fix’ certain variables to solve the model with DOF=0. Thus, users should fix
either ‘photolysis_rate_constant’ or ‘reaction_rate_constant’,
either ‘second_order_reaction_rate_constant’ or ‘hydrogen_peroxide_conc’.
Equations and Relationships
if uv_dose_type
and has_aop
are set to default:
Description |
Equation |
---|---|
UV dose |
\(D = I \cdot t\) |
Pseudo-first order rate constant |
\(k_0 = I \cdot k\) |
Pseudo-first order rate constant |
\(k_0 = k_d + k_i\) |
Solvent mass balance |
\(M_{\text{H2O},out} = M_{\text{H2O},in}\) |
Solute mass balance |
\(M_{p, j, out} = M_{p, j, in} \cdot \exp(D \cdot k)\) |
Electricity demand of each component with phase |
\(E_{p, j} = EE/O_{p, j} \cdot F_{in} \cdot \log_{10}(M_{p, j, in} / M_{p, j, out}) / \eta\) |
Electricity demand of each component |
\(E_j = \max_p E_{p, j}\) |
Electricity demand |
\(E = \max_j E_j\) |
NOTE: ‘reaction_rate_constant’ is fixed to 0
if uv_dose_type
is set to UVDoseType.calculated
, there is one additional equation:
Description |
Equation |
---|---|
UV dose |
\(D = 10^A \cdot (-\log_{10}(UVT))^{(-B \cdot \log_{10}(UVT))} \cdot (\frac{S}{S_0} / F_{in})^C \cdot N_{bank}^D\) |
if has_aop
is set to True
, there are one additional equation:
Description |
Equation |
---|---|
Reaction rate constant |
\(k_i = k_{OH} \cdot c_{\text{H}_2\text{O}_2}\) |
Costing Method
Costing Method Variables
The following variables are constructed when applying the UV-AOP costing method in the watertap_costing_package
:
Description |
Symbol |
Variable Name |
Units |
---|---|---|---|
UV reactor cost |
\(C_{cap,r}\) |
reactor_cost |
\($/(\text{m}^3\text{/h})\) |
UV lamps, sleeves, ballasts and sensors cost |
\(C_{cap,l}\) |
lamp_cost |
\($/\text{kW}\) |
Fraction of UV replaced per year |
\(f_l\) |
factor_lamp_replacement |
\(\text{y}^{-1}\) |
Capital Cost Calculations
Capital costs are determined by the summation of reactor and lamp costing terms. The reactor costing term is determined based on inlet flow rate. The lamp costing term is determined based on electricity demand.
Description |
Equation |
---|---|
Total capital cost |
\(C_{cap,tot} = C_{cap,r} \cdot F_{in} + C_{cap,l} \cdot E\) |
NOTE: the default costing calculation is evaluated based on a UV system with low-pressure lamps. Users can provide corresponding costing variables for a specific UV system with other lamp types
Operating Cost Calculations
Operating costs are calculated as the cost to replace lamps, sleeves, ballasts and sensors in a UV system.
Description |
Equation |
---|---|
Fixed operating cost |
\(C_{op} = f_l \cdot C_{cap,l} \cdot E\) |
Class Documentation
watertap.costing.watertap_costing_package.WaterTAPCostingData.cost_uv_aop()
References
Wright, H., Gaithuma, D., Greene, D., Aieta, M. (2006) Integration of validation, design, and operation provides optimal implementation of UV disinfection. American Water Works Association, 98, 81-92