Skip to content

Latest commit

 

History

History
176 lines (137 loc) · 9.07 KB

coag_floc_model.rst

File metadata and controls

176 lines (137 loc) · 9.07 KB

Coagulation-Flocculation

Introduction

Coagulation-Flocculation is a water treatment process designed to remove total suspended solids (TSS) from solution by converting small suspended and/or colloidal matter, and some natural organic matter, into larger 'floccs' (or 'Sludge') that can then be separated by sedimentation and/or filtration (or other separation processes) later in the treatment train. This is accomplished in a 2-stage process:

Stage 1) Coagulation (where chemical coagulants and other aids are rapidly mixed into solution) Stage 2) Flocculation (where the 'floccs' are formed through slow, gentle mixing/agitation)

In this implementation of the model, the user MUST provide a measured final Turbidity (in NTU) made during a Jar Test for the given water source. This measurement is then used to estimate how much TSS would be removed during the Coagulation-Flocculation process. Users may also provide the specific chemical composition of additives used to achieve this final Turbidity, and can provide information on the level of salts in those additives. This information can be used to estimate an increase in total dissolved salts (TDS) that may occur due to the addition of those chemicals.

This model also includes relationships for power usage in the rapid mixing and flocculation basins. Users will need to provide information for power usage such as retention times of each basin, mixing paddle sizes, number of mixers, etc.

The main assumptions of the implemented model are as follows:

  1. Coagulation-Flocculation can be modeled together in a single combined unit (Figure 1)
  2. Model dimensionality is limited to a 0D control volume
  3. Predicted levels of suspended solid removal can be determined solely by Jar Test measurements
  4. Single liquid phase only
  5. Isothermal operation
../../_static/unit_models/coagulation_flocculation.png

Figure 1. Schematic representation of a coagulation-flocculation unit modeled in WaterTAP

Ports

The model provides two ports (Pyomo notation in parenthesis):

  • Inlet port (inlet)
  • Outlet port (outlet)

Sets

Description Symbol Indices
Time t [0]
Phases p ['Liq']
Components j ['H2O', 'TDS', 'TSS', 'Sludge', ...]
Chemical Additives i ['chem_A', 'chem_B', ...]

Users are responsible for naming any chemical additives and defining all parameters associated with them

Degrees of Freedom and Variables

Aside from the inlet feed state variables (i.e., temperature, pressure, component mass flowrates),

the Coagulation-Flocculation model has at least an additional 13 degrees of freedom that the user must specify. The table below gives an outline of these.

Description Symbol Variable Name Index Units
Fluid temperature T temperature [t] \text{K}
Fluid pressure P pressure [t] \text{Pa}
Mass flowrate of components M_j flow_mass_phase_comp [t, 'Liq', j] \text{kg/s}
Slope relationship between measured Turbidity and TSS a slope [t] \text{mg/L/NTU}
Intercept relationship between measured Turbidity and TSS b intercept [t] \text{mg/L}
Turbidity measured before Jar Test Turb_o initial_turbidity_ntu [t] \text{NTU}
Turbidity measured after Jar Test Turb_f final_turbidity_ntu [t] \text{NTU}
Chemical Doses added during Jar Test D_i chemical_doses [t, i] \text{mg/L}
Retention time for each rapid mixer \tau_r rapid_mixing_retention_time [t] \text{s}
Number of rapid mixers in series n_r num_rapid_mixing_basins None None
Rapid mixer velocity gradient G_r rapid_mixing_vel_grad [t] \text{s}^{-1}
Retention time of flocculation basin \tau_f floc_retention_time [t] \text{s}
Flocculation single paddle length (from center of rotation to blade edge) L single_paddle_length None \text{m}
Flocculation single paddle width w single_paddle_width None \text{m}
Flocculation paddle rotational speed \omega paddle_rotational_speed [t] \text{revolutions/s}
Flocculation paddle drag coefficient C_D paddle_drag_coef [t] None
Flocculation paddle velocity fraction f vel_fraction None None
Number of rotating paddle wheels n_w num_paddle_wheels None None
Number of paddles per wheel n_p num_paddles_per_wheel None None

Users must provide values for and 'fix' these variables to solve the model with DOF=0. However, users may also leave variables unfixed for optimization purposes.

NOTE: Default values are provided for the slope and intercept relationships between Turbidity and TSS. These come from Rugner et al. (2013) but can be substituted as needed to match any data available relating turbidity to TSS.

NOTE: Variables for 'temperature', 'pressure', and 'flow_mass_phase_comp' come from the associated property package as state variables and are accessed via {port_name}.{state_var_name}

Chemical Dosing Parameters

In addition to providing and fixing values for chemical additives, the users will need to provide parameter information for each additive including molecular weight (MW_{a,i}), moles of salt that would be added per mole of additive (N_i), and a representative molecular weight of the salt species that would be formed from addition of the additive (MW_{s,i}). If a user does not have this information off hand, then the user can simply give a value of '0' for the moles of salt added per mole of additive (and dummy values for the molecular weights). This information is only used to estimate the rise in TDS when salts are added, so it is not critical for the determination of the main objective of Coagulation-Flocculation, which is the removal of TSS.

To provide this information to the unit model, users must add a 'chemical_additives' dictionary to the initialization of the unit model. That dictionary must have the following format.

chem_dict = {'chem_A':
               {'parameter_data':
                 {'mw_additive': (value, units),
                  'moles_per_mole_additive': value,
                  'mw_salt': (value, units)
                 }
               },
             'chem_B':
               {'parameter_data':
                 {'mw_additive': (value, units),
                  'moles_per_mole_additive': value,
                  'mw_salt': (value, units)
                 }
               }
           }

For example, this 'chem_dict' would be passed into the model on construction as one of the configuration options as shown below.

model.fs.unit = CoagulationFlocculation(
    property_package=model.fs.properties,
    chemical_additives=chem_dict,
)

NOTE: The above example assumes you have already constructed a pyomo model named 'model' and attached an IDAES flowsheet named 'fs' to it, as well as a properties block named 'properties'

Equations and Relationships

Description Equation
TSS relationship with initial Turbidity TSS_o = b + a(Turb_o)
TSS relationship with final Turbidity TSS_f = b + a(Turb_f)
TSS loss rate S_{TSS} = M_{TSS,in} - Q \cdotp TSS_f
TSS mass balance 0 = M_{TSS,in} - M_{TSS,out} - S_{TSS}
Sludge mass balance 0 = M_{Sludge,in} - M_{Sludge,out} + S_{TSS}
TDS gain rate S_{TDS} = Q \cdotp {\sum_{i} \frac{D_i}{MW_{a,i}} \cdotp N_i \cdotp MW_{s,i} }
TDS mass balance 0 = M_{TDS,in} - M_{TDS,out} + S_{TDS}
Rapid Mixer Total Volume V_r = Q \cdotp \tau_r \cdotp n_r
Rapid Mixer Total Power Usage P_r = {G_r}^2 \cdotp \mu \cdotp V_r
Flocculation Basin Total Volume V_f = Q \cdotp \tau_f
Paddle Wheel Speed v_p = \pi \cdotp L \cdotp \omega
Flocculation Power Usage P_p = 0.5 \cdotp C_D \cdotp L \cdotp w \cdotp n_w \cdotp n_p \cdotp \rho {(f \cdotp v_p)}^3
Total Power Usage P_T = P_p + P_r

Relationships for power usage all come from Mines (2014)

NOTE: Q is defined as the total volumetric flow rate and S_{j} is the source/sink term for component j

References

H. Rugner, M. Schwientek, B. Beckingham, B. Kuch, P. Grathwohl, Environ. Earth Sci. 69 (2013) 373-380. DOI:10.1007/s12665-013-2307-1

R.O. Mines Environmental Engineering: Principles and Practice, 1st Ed, John Wiley & Sons, 2014. Ch. 6.