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

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()
>>> 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 mg/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.

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 mg/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

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 %.