Activated Sludge Process#

QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems

This module is developed by:

This module is under the University of Illinois/NCSA Open Source License. Please refer to https://github.com/QSD-Group/QSDsan/blob/main/LICENSE.txt for license details.

class qsdsan.sanunits._activated_sludge_process.ActivatedSludgeProcess(ID='', ins: Sequence[Stream] | None = None, outs: Sequence[Stream] | None = (), thermo=None, init_with='WasteStream', F_BM_default=1, include_construction=False, N_train=2, T=308.15, X_i0=None, X_v=1210, X_e=15, X_w=10000, SLR=20, SF=4, aeration_power=1, q_hat=12, K=20, Y=0.5, b=0.396, f_d=0.8, COD_factor=1.42, q_UAP=1.8, q_BAP=0.1, k1=0.12, k2=0.09, K_UAP=100, K_BAP=85, F_BM={'Pump building': 1.1800826, 'Pumps': 1.1800826}, lifetime={'Pump pipe stainless steel': 15, 'Pump stainless steel': 15, 'Pumps': 15}, **kwargs)#

A steady-state activated sludge process containing rectangular continuously stirred tank reactors and clarifiers for settling based on [1] (largely followed Example 6.2) and code scripts for [2] .

Single tank and clarifier are assumed to have the same width; pump/blower buildings are assumed to have the same width as the total tanks/clarifiers.

Parameters:
  • ins (Iterable) – Influent, air for aeration.

  • outs (Iterable) – Effluent, waste activated sludge sludge, gas emission.

  • N_train (int) – Number of treatment train, should be at least two in case one failing.

  • T (float) – Temperature in the aeration tank/anaerobic digester, [K].

  • X_i0 (float) – Inert biomass concentration in the influent, [mg VSS/L], will calculated based on inert_biomass of the current CompiledComponents if not provided.

  • X_v (float) – Reactor volatile suspended solids (biomass concentration in the aeration tank), referred to as mixed volatile liquor suspended solids (MLVSS, assumed to be the same as MLSS in [2]), [mg/L]. X_v = X_i + X_a (inert + active)

  • X_e (float) – Biomass concentration in the effluent, [mg VSS/L].

  • X_w (float) – Biomass concentration in the waste activated sludge, [mg VSS/L].

  • SLR (float) – Solids loading rate for the clarifier, [lb/ft2/d].

  • SF (float) – Safety factor to scale up the minimum solids retention time (SRT), should be larger than 1.

  • aeration_power (float) – Unit power usage for aeration, [kWh/kg O2].

  • q_hat (float) –

    Maximum specific rate of substrate utilization, [mg BOD/mg VSS/d], other important definitions are:

    • q_hat = mu_hat * Y (mu_hat is maximum specific growth rate, [1/time])

    • r_ut = -q_hat*(S/(K+S))*X_a (r_ut is rate of substrate utilization, [substrate mass/volume/time])

  • K (float) – Substrate concentration giving one-half the maximum rate, [mg COD/L].

  • Y (float) – Biomass yield, [mg VSS/mg BOD].

  • b (float) – Endogenous decay coefficient, [1/d].

  • f_d (float) – Fraction of the active biomass that is biodegradable.

  • COD_factor (float) – Biomass-to-COD conversion factor, [mg COD/mg VSS].

  • q_UAP (float) –

    Maximum specific rate of utilization-associated products degradation, [mg COD/mg VSS/d].

    SMP = UAP + BAP

    • SMP: soluble microbial products

    • UAP: utilization-associated products, produced directly from substrate metabolism

    • BAP: biomass-associated products, produced by basic metabolism

  • q_BAP (float) – Maximum specific rate of biomass-associated products degradation, [mg COD/mg VSS/d].

  • k1 (float) – UAP-formation coefficient, [mg COD/mg BOD].

  • k2 (float) – BAP-formation coefficient, [mg COD/mg VSS/d].

  • K_UAP (float) – Half-maximum rate concentrations for UAP, [mg COD/L].

  • K_BAP (float) – Half-maximum rate concentrations for BAP, [mg COD/L].

  • kwargs (dict) – Other attributes to be set.

References

See also

MATLAB codes used in ref 1, especially the system layout diagrams.

property A_clarifier#

[float] Area of the clarifier, [ft2].

property D_WW#

[float] Depth of the wet well for mixed liquor storage, [ft].

property D_tank#

[float] Depth of the aeration tank, [ft].

F_BM: dict[str, float]#

All bare-module factors for each purchase cost. Defaults to values in the class attribute _F_BM_default.

F_D: dict[str, float]#

All design factors for each purchase cost item in baseline_purchase_costs.

F_M: dict[str, float]#

All material factors for each purchase cost item in baseline_purchase_costs.

F_P: dict[str, float]#

All pressure factors for each purchase cost item in baseline_purchase_costs.

property HRT#

[float] Hydraulic retention time, [d].

property L_BB#

[float] Length of the blower building, [ft].

property L_WW#

[float] Length of the wet well for mixed liquor storage, [ft].

property L_tank#

[float] Length of the aeration tank, [ft].

property N_train#

[int] Number of treatment train, should be at least two in case one failing.

property Q#

[float] Influent flow rate, [m3/d].

property Q_ras#

[float] Return activated sludge flow rate, [m3/d].

property Q_was#

[float] Waste activated sludge flow rate, [m3/d].

property R#

[float] Sludge recycle ratio.

property V_tank#

[float] Volume of the aeration tank, [ft3].

property W_BB#

[float] Width of the blower building, [ft].

property W_PB#

[float] Width of the pump building, [ft].

property W_WW#

[float] Width of the wet well for mixed liquor storage, [ft].

property W_dist#

[float] Width of the distribution channel, [ft].

property W_eff#

[float] Width of the effluent channel, [ft].

property W_tank#

[float] Width of the aeration tank, [ft].

auxiliary_unit_names: tuple[str, ...] = ('heat_exchanger',)#

class-attribute Name of attributes that are auxiliary units. These units will be accounted for in the purchase and installed equipment costs without having to add these costs in the baseline_purchase_costs dictionary. Heat and power utilities are also automatically accounted for.

baseline_purchase_costs: dict[str, float]#

All baseline purchase costs without accounting for design, pressure, and material factors.

property constr_access#

[float] Extra room for construction access, [ft].

design_results: dict[str, object]#

All design requirements excluding utility requirements and detailed auxiliary unit requirements.

equipment_lifetime: int | dict[str, int]#

Lifetime of equipment. Defaults to values in the class attribute _default_equipment_lifetime. Use an integer to specify the lifetime for all items in the unit purchase costs. Use a dictionary to specify the lifetime of each purchase cost item.

property excav_slope#

[float] Slope for excavation (horizontal/vertical).

property freeboard#

[float] Freeboard added to the depth of the reactor tank, [ft].

heat_utilities: tuple[HeatUtility, ...]#

All heat utilities associated to unit. Cooling and heating requirements are stored here (including auxiliary requirements).

installed_costs: dict[str, float]#

All installed costs accounting for bare module, design, pressure, and material factors. Items here are automatically updated at the end of unit simulation.

line: str = 'Activated sludge process'#

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

parallel: dict[str, int]#

Name-number pairs of baseline purchase costs and auxiliary unit operations in parallel. Use ‘self’ to refer to the main unit. Capital and heat and power utilities in parallel will become proportional to this value.

power_utility: PowerUtility#

Electric utility associated to unit (including auxiliary requirements).

prioritize: bool#

Whether to prioritize unit operation specification within recycle loop (if any).

purchase_costs: dict[str, float]#

Itemized purchase costs (including auxiliary units) accounting for design, pressure, and material factors (i.e., F_D, F_P, F_M). Items here are automatically updated at the end of unit simulation.

responses: set[bst.GenericResponse]#

Unit design decisions that must be solved to satisfy specifications. While adding responses is optional, simulations benefit from responses by being able to predict better guesses.

run_after_specifications: bool#

Whether to run mass and energy balance after calling specification functions

property t_slab#

[float] Concrete slab thickness, [ft], default to be 2 in thicker than the wall thickness.

property t_wall#

[float] Thickness of the wall concrete, [ft]. default to be minimum of 1 ft with 1 in added for every ft of depth over 12 ft.