Sludge Treatment

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._sludge_treatment.Centrifuge(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, isdynamic=False, init_with='WasteStream', F_BM_default={'Bowl stainless steel': 1, 'Conveyor': 1, 'Pump': 1.1800826, 'Pump building': 1.1800826, 'Pumps': 1, 'Scraper': 1, 'Slab concrete': 1.0, 'Wall concrete': 1.0, 'Wall stainless steel': 1.0, 'v notch weir': 1}, thickener_perc=28, TSS_removal_perc=98, solids_feed_rate=70, g_factor=2500, rotational_speed=2500, LtoD=4, F_BM={'Bowl stainless steel': 1, 'Conveyor': 1, 'Pump': 1.1800826, 'Pump building': 1.1800826, 'Pumps': 1, 'Scraper': 1, 'Slab concrete': 1.0, 'Wall concrete': 1.0, 'Wall stainless steel': 1.0, 'v notch weir': 1}, polymer_dosage=20, h_cylindrical=2, h_conical=1, **kwargs)

Centrifuge based on BSM2 Layout.

Parameters:
  • ID (str) – ID for the Dewatering Unit. The default is ‘’.

  • ins (class:WasteStream) – Influent to the Dewatering Unit. Expected number of influent is 1.

  • outs (class:WasteStream) – Treated effluent and sludge.

  • thickener_perc (float) – The percentage of Suspended Sludge in the underflow of the dewatering unit.[1]

  • TSS_removal_perc (float) – The percentage of suspended solids removed in the dewatering unit.[1]

  • solids_feed_rate (float) – Rate of solids processed by one centrifuge in dry tonne per day (dtpd). Default value is 150 dtpd. [6]

  • g_factor (float) – Factor by which g (9.81 m/s2) is multiplied to obtain centrifugal acceleration. g_factor typically lies between 1500 and 3000. centrifugal acceleration = g * g_factor = k * (RPM)^2 * diameter [3]

  • rotational_speed (float) – rotational speed of the centrifuge in rpm. Typical rpm is between 2000-3000 rpm [MOP-8, PAGE 1733]

  • LtoD (The ratio of length to diameter of the centrifuge.) – The value typically lies between 3-4. [4]

  • polymer_dosage (float) – mass of polymer utilised (lb) per tonne of dry solid waste (lbs/tonne).[5] Depends on the type of influents, please refer to [5] for appropriate values. Default value of 20 lbs/tonne is taken from [5], based on Primary + WAS aerated undigested value.

  • h_cylindrical (float) – length of cylindrical portion of dewatering unit.

  • h_conical (float) – length of conical portion of dewatering unit.

References

[1] Gernaey, Krist V., Ulf Jeppsson, Peter A. Vanrolleghem, and John B. Copp. Benchmarking of control strategies for wastewater treatment plants. IWA publishing, 2014.

[2] Metcalf, Leonard, Harrison P. Eddy, and Georg Tchobanoglous. Wastewater engineering: treatment, disposal, and reuse. Vol. 4. New York: McGraw-Hill, 1991.

[3] Design of Municipal Wastewater Treatment Plants: WEF Manual of Practice No. 8 ASCE Manuals and Reports on Engineering Practice No. 76, Fifth Edition.

[4] https://www.alibaba.com/product-detail/Multifunctional-Sludge-Dewatering-Decanter-Centrifuge_1600285055254.html?spm=a2700.galleryofferlist.normal_offer.d_title.1cd75229sPf1UW&s=p

[5] United States Environmental Protection Agency (EPA) ‘Biosolids Technology Fact Sheet Centrifuge Thickening and Dewatering’

[6] San Diego (.gov) Chapter - 3 ‘Solids Treatment Facility’ (https://www.sandiego.gov/sites/default/files/legacy/mwwd/pdf/mbc/chapterthree.pdf)

line: str = 'Centrifuge'

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

run()

Run mass and energy balance. This method also runs specifications user defined specifications unless it is being run within a specification (to avoid infinite loops).

See also

_run, specifications, add_specification, add_bounded_numerical_specification

class qsdsan.sanunits._sludge_treatment.Incinerator(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, isdynamic=False, init_with='WasteStream', F_BM_default=None, process_efficiency=0.9, calorific_value_sludge=12000, calorific_value_fuel=50000, ash_component_ID='X_Ig_ISS', nitrogen_ID='S_N2', water_ID='H2O', carbon_dioxide_ID='S_CO2', **kwargs)

Fluidized bed incinerator.

Parameters:
  • ID (str) – ID for the Incinerator Unit. The default is ‘’.

  • ins (class:WasteStream) – Influent to the Incinerator Unit. Expected number of influent streams are 3. Please remember the order of influents as {wastestream, air, fuel}

  • outs (class:WasteStream) – Flue gas and ash.

  • process_efficiency (float) – The process efficiency of the incinerator unit. Expected value between 0 and 1.

  • calorific_value_sludge (float) – The calorific value of influent sludge in KJ/kg. The default value used is 12000 KJ/kg.

  • calorific_value_fuel (float) – The calorific value of fuel employed for combustion in KJ/kg. The default fuel is natural gas with calorific value of 50000 KJ/kg.

Examples

>>> import qsdsan as qs
>>> cmps = qs.Components.load_default()
>>> CO2 = qs.Component.from_chemical('S_CO2', search_ID='CO2',
...                                  particle_size='Soluble',
...                                  degradability='Undegradable',
...                                  organic=False)
>>> cmps_test = qs.Components([cmps.S_F, cmps.S_NH4, cmps.X_OHO, cmps.H2O,
...                            cmps.S_CH4, cmps.S_O2, cmps.S_N2, cmps.S_H2,
...                            cmps.X_Ig_ISS, CO2])
>>> cmps_test.default_compile(ignore_inaccurate_molar_weight=True)
>>> qs.set_thermo(cmps_test)
>>> ws = qs.WasteStream('ws', S_F=10, S_NH4=20, X_OHO=15, H2O=1000)
>>> natural_gas = qs.WasteStream('nat_gas', phase='g', S_CH4=1000)
>>> air = qs.WasteStream('air', phase='g', S_O2=210, S_N2=780, S_H2=10)
>>> from qsdsan.sanunits import Incinerator
>>> Inc = Incinerator(ID='Inc', ins= (ws, air, natural_gas),
...                   outs=('flu_gas', 'ash'),
...                   isdynamic=False)
>>> Inc.simulate()
>>> Inc.show()
Incinerator: Inc
ins...
[0] ws
phase: 'l', T: 298.15 K, P: 101325 Pa
flow (g/hr): S_F    1e+04
                S_NH4  2e+04
                X_OHO  1.5e+04
                H2O    1e+06
    WasteStream-specific properties:
     pH         : 7.0
     Alkalinity : 2.5 mmol/L
     COD        : 23873.0 mg/L
     BOD        : 14963.2 mg/L
     TC         : 8298.3 mg/L
     TOC        : 8298.3 mg/L
     TN         : 20363.2 mg/L
     TP         : 367.6 mg/L
     TK         : 68.3 mg/L
     TSS        : 11124.4 mg/L
[1] air
phase: 'g', T: 298.15 K, P: 101325 Pa
flow (g/hr): S_O2  2.1e+05
                S_N2  7.8e+05
                S_H2  1e+04
    WasteStream-specific properties: None for non-liquid waste streams
[2] nat_gas
phase: 'g', T: 298.15 K, P: 101325 Pa
flow (g/hr): S_CH4  1e+06
    WasteStream-specific properties: None for non-liquid waste streams
outs...
[0] flu_gas
phase: 'g', T: 298.15 K, P: 101325 Pa
flow (g/hr): H2O    1e+06
                S_N2   7.8e+05
                S_CO2  2.67e+05
    WasteStream-specific properties: None for non-liquid waste streams
[1] ash
phase: 's', T: 298.15 K, P: 101325 Pa
flow (g/hr): X_Ig_ISS  2.37e+05
    WasteStream-specific properties: None for non-liquid waste streams

References

[1] Khuriati, A., P. Purwanto, H. S. Huboyo, Suryono Sumariyah, S. Suryono, and A. B. Putranto. “Numerical calculation based on mass and energy balance of waste incineration in the fixed bed reactor.” In Journal of Physics: Conference Series, vol. 1524, no. 1, p. 012002. IOP Publishing, 2020.

[2] Omari, Arthur, Karoli N. Njau, Geoffrey R. John, Joseph H. Kihedu, and Peter L. Mtui. “Mass And Energy Balance For Fixed Bed Incinerators A case of a locally designed incinerator in Tanzania.”

property calorific_value_fuel

Calorific value of fuel in KJ/kg.

property calorific_value_sludge

Calorific value of sludge in KJ/kg.

line: str = 'Incinerator'

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

property process_efficiency

Process efficiency of incinerator.

run()

Run mass and energy balance. This method also runs specifications user defined specifications unless it is being run within a specification (to avoid infinite loops).

See also

_run, specifications, add_specification, add_bounded_numerical_specification

class qsdsan.sanunits._sludge_treatment.Thickener(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, isdynamic=False, init_with='WasteStream', F_BM_default={'Bowl stainless steel': 1, 'Conveyor': 1, 'Pump': 1.1800826, 'Pump building': 1.1800826, 'Pumps': 1, 'Scraper': 1, 'Slab concrete': 1.0, 'Wall concrete': 1.0, 'Wall stainless steel': 1.0, 'v notch weir': 1}, thickener_perc=7, TSS_removal_perc=98, solids_loading_rate=4, h_thickener=4, downward_flow_velocity=36, F_BM={'Bowl stainless steel': 1, 'Conveyor': 1, 'Pump': 1.1800826, 'Pump building': 1.1800826, 'Pumps': 1, 'Scraper': 1, 'Slab concrete': 1.0, 'Wall concrete': 1.0, 'Wall stainless steel': 1.0, 'v notch weir': 1}, **kwargs)

Thickener based on BSM2 Layout.

Parameters:
  • ID (str) – ID for the Thickener. The default is ‘’.

  • ins (class:WasteStream) – Influent to the clarifier. Expected number of influent is 1.

  • outs (class:WasteStream) – Thickened sludge and effluent.

  • thickener_perc (float) – The percentage of solids in the underflow of the thickener.[1]

  • TSS_removal_perc (float) – The percentage of suspended solids removed in the thickener.[1]

  • solids_loading_rate (float) – Solid loading rate in the thickener in [(kg/hr)/m2]. Default is 4 kg/(m2*hr) [2] If the thickener is treating: Only Primary clarifier sludge, then expected range: 4-6 kg/(m2*hr) Only WAS (treated with air or oxygen): 0.5-1.5 kg/(m2*hr) Primary clarifier sludge + WAS: 1.5-3.5 kg/(m2/hr)

  • float (h_thickener =) – Side water depth of the thickener. Typically lies between 3-4 m. [2] Height of tank forming the thickener.

  • downward_flow_velocity (float, optional) – Speed on the basis of which center feed diameter is designed [m/hr]. [3] The default is 36 m/hr. (10 mm/sec)

  • F_BM (dict) – Equipment bare modules.

Examples

>>> from qsdsan import set_thermo, Components, WasteStream
>>> cmps = Components.load_default()
>>> cmps_test = cmps.subgroup(['S_F', 'S_NH4', 'X_OHO', 'H2O'])
>>> set_thermo(cmps_test)
>>> ws = WasteStream('ws', S_F = 10, S_NH4 = 20, X_OHO = 15, H2O=1000)
>>> from qsdsan.sanunits import Thickener
>>> TC = Thickener(ID='TC', ins= (ws), outs=('sludge', 'effluent'))
>>> TC.simulate()
>>> sludge, effluent = TC.outs
>>> sludge.imass['X_OHO']/ws.imass['X_OHO']
0.98
>>> TC.show() 
Thickener: TC
ins...
[0] ws
phase: 'l', T: 298.15 K, P: 101325 Pa
flow (g/hr): S_F    1e+04
                S_NH4  2e+04
                X_OHO  1.5e+04
                H2O    1e+06
    WasteStream-specific properties:
     pH         : 7.0
     Alkalinity : 2.5 mmol/L
     COD        : 23873.0 mg/L
     BOD        : 14963.2 mg/L
     TC         : 8298.3 mg/L
     TOC        : 8298.3 mg/L
     TN         : 20363.2 mg/L
     TP         : 367.6 mg/L
     TK         : 68.3 mg/L
     TSS        : 11124.4 mg/L
outs...
[0] sludge
phase: 'l', T: 298.15 K, P: 101325 Pa
flow (g/hr): S_F    1.56e+03
                S_NH4  3.11e+03
                X_OHO  1.47e+04
                H2O    1.56e+05
    WasteStream-specific properties:
     pH         : 7.0
     COD        : 95050.4 mg/L
     BOD        : 55228.4 mg/L
     TC         : 34369.6 mg/L
     TOC        : 34369.6 mg/L
     TN         : 24354.4 mg/L
     TP         : 1724.0 mg/L
     TK         : 409.8 mg/L
     TSS        : 66748.0 mg/L
[1] effluent
phase: 'l', T: 298.15 K, P: 101325 Pa
flow (g/hr): S_F    8.44e+03
                S_NH4  1.69e+04
                X_OHO  300
                H2O    8.44e+05
    WasteStream-specific properties:
     pH         : 7.0
     COD        : 9978.2 mg/L
     BOD        : 7102.9 mg/L
     TC         : 3208.8 mg/L
     TOC        : 3208.8 mg/L
     TN         : 19584.1 mg/L
     TP         : 102.9 mg/L
     TK         : 1.6 mg/L
     TSS        : 265.9 mg/L

References

[1] Gernaey, Krist V., Ulf Jeppsson, Peter A. Vanrolleghem, and John B. Copp. Benchmarking of control strategies for wastewater treatment plants. IWA publishing, 2014.

[2] Chapter-21: Solids Thicknening (Table 21.3). WEF Manual of Practice No. 8. 6th Edition. Virginia: McGraw-Hill, 2018.

[3] Introduction to Wastewater Clarifier Design by Nikolay Voutchkov, PE, BCEE.

[4] Metcalf, Leonard, Harrison P. Eddy, and Georg Tchobanoglous. Wastewater engineering: treatment, disposal, and reuse. Vol. 4. New York: McGraw-Hill, 1991.

property TSS_removal_perc

The percentage of suspended solids removed in the thickener

line: str = 'Thickener'

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

run()

Run mass and energy balance. This method also runs specifications user defined specifications unless it is being run within a specification (to avoid infinite loops).

See also

_run, specifications, add_specification, add_bounded_numerical_specification

property solids_loading_rate

solids_loading_rate is the loading in the thickener

property thickener_perc

The percentage of suspended solids in the thickened sludge, in %.