Combustion#
QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems
This module is developed by:
Yalin Li <mailto.yalin.li@gmail.com>
Jianan Feng <jiananf2@illinois.edu>
Part of this module is based on the BioSTEAM package: https://github.com/bioSTEAMDevelopmentGroup/biosteam
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._combustion.BiogasCombustion(ID='', ins: Sequence[Stream] | None = None, outs: Sequence[Stream] | None = (), thermo=None, init_with='WasteStream', if_combustion=False, biogas_loss=0.1, biogas_eff=0.55)#
Use of biogas in combustion.
Note that this unit does not include cost calculation and generation of electricity, use CHP instead for such purposes.
- Parameters:
if_combustion (bool) – If include combustion reaction during simulation.
biogas_loss (float) – Fraction of biogas loss (e.g., leaked).
biogas_eff (float) – Combustion efficiency of biogas as a fraction of CH4.
Examples
- 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
.
- baseline_purchase_costs: dict[str, float]#
All baseline purchase costs without accounting for design, pressure, and material factors.
- property biogas_eff#
[float] Combustion efficiency of biogas as a fraction of CH4.
- property biogas_loss#
[float] Fraction of biogas loss (i.e., leaked).
- 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.
- 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 = 'Biogas combustion'#
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
- class qsdsan.sanunits._combustion.CombinedHeatPower(ID='', ins: Sequence[Stream] | None = None, outs: Sequence[Stream] | None = (), thermo=None, init_with='WasteStream', include_construction=True, unit_CAPEX=1225, CHP_type='Fuel cell', combustion_eff=0.8, combined_eff=None, system=None, supplement_power_utility=False, F_BM={'CHP': 1.0})#
Combustion of all feed streams with simple estimation of the capital cost of a combined heat and power (CHP) unit based on Shoener et al. [1] and Havukainen et al. [2]
This unit is designed to always satisfy the system’s heating demand, if there is not enough energy in the feed stream, natural gas will be purchased to fill the gap.
The unit can also be set to satisfy the system power (i.e., electricity) needs if supplement_power_utility is set to True.
- Parameters:
ins (Iterable(obj):) – Feed stream to be combusted, optional natural gas stream, air.
outs (Iterable(obj):) – Gas emission, solid ash.
unit_CAPEX (float) – Capital cost of the CHP per kW of power generated, $/kW.
CHP_type (str) – Type of the CHP to adjust the heat-to-power efficiency. Can be “Fuel cell” (40.5%), “Microturbine” (27%), “Internal combustion” (36%), “Combustion gas” (31.5%). Note that when CHP_type is provided, the set combined_efficiency will be ignored.
combustion_eff (float) – Efficiency of the boiler to convert the energy embedded in the feed to the heating steam.
combined_eff (float) – Combined heat (the total embedded energy in feed streams)-to-power efficiency (i.e., combustion efficiency * power generation efficiency).
system (obj) – The linked system whose heating/power utility needs will be supplied by this CHP unit.
supplement_power_utility (bool) –
Whether to purchase additional natural gas to supplement energy demand.
Note
If energy in the feed (without natural gas) is sufficient enough, the system could still be producing power even when supplement_power_utility is False.
References
- property CHP_type#
[str] Type of the combined heat and power (CHP) type to adjust the heat-to-power efficiency. Can be “Fuel cell” (40.5%), “Microturbine” (27%), “Internal combustion” (36%), “Combustion gas” (31.5%), or None and define an efficiency.
- 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 H_needs#
Total energy needs of the system in kJ/hr, already divided by the combustion/combined efficiency.
- baseline_purchase_costs: dict[str, float]#
All baseline purchase costs without accounting for design, pressure, and material factors.
- property combined_eff#
[float] Combined heat (the total embedded energy in feed streams)-to-power efficiency (i.e., combustion efficiency * power generation efficiency). Note that when CHP_type is provided, the set combined_efficiency will be ignored.
- property combustion_eff#
[float] Combined heat (the total embedded energy in feed streams)-to-power efficiency (i.e., combustion efficiency * power generation efficiency).
- 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.
- 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 = 'Combined heat power'#
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 sys_heating_utilities#
[dict] Heating utilities of the given system (excluding this CHP unit).
- property sys_power_utilities#
[dict] Power utilities of the given system (excluding this CHP unit).
- property system#
[obj] The linked system whose heating/power utility needs will be supplied by this CHP unit.