BoilerTurbogenerator#

class BoilerTurbogenerator(ID='', ins=None, outs=('emissions', 'rejected_water_and_blowdown', 'ash_disposal'), thermo=None, *, boiler_efficiency=None, turbogenerator_efficiency=None, side_steam=None, agent=None, other_agents=None, fuel_price=None, natural_gas_price=None, ash_disposal_price=None, T_emissions=None, CO2_emissions_concentration=None, satisfy_system_electricity_demand=None, boiler_efficiency_basis=None, fuel_source=None, oxygen_rich_gas_composition=None)[source]#

Create a BoilerTurbogenerator object that will calculate electricity generation from burning the feed. It also takes into account how much steam is being produced, and the required cooling utility of the turbo generator. All capital cost correlations are based on [1].

Parameters:
  • ins (Sequence[AbstractStream], optional) –

    • [0] Liquid/solid feed that will be burned.

    • [1] Gas feed that will be burned.

    • [2] Make-up water.

    • [3] Natural gas/fuel to satisfy steam and electricity demand.

    • [4] Lime for flue gas desulfurization.

    • [5] Boiler chemicals.

    • [6] Air or oxygen-rich gas.

  • outs (Sequence[AbstractStream], optional) –

    • [0] Total emissions produced.

    • [1] Blowdown water.

    • [2] Ash disposal.

  • boiler_efficiency (float, optional) – Fraction of heat transferred to steam. Defaults to 0.8.

  • turbo_generator_efficiency (float, optional) – Fraction of steam heat converted to electricity. Defaults to 0.85.

  • agent (UtilityAgent, optional) – Steam produced. Defaults to low pressure steam.

  • () (other_agents =) – Other steams produced. Defaults to all other heating agents.

  • fuel_source (str, optional) – Name fuel used to satisfy steam and electricity demand. Defaults to ‘CH4’.

  • fuel_price (float, optional) – Price of natural gas [USD/kg]. Same as bst.stream_utility_prices[‘Natural gas’], which defaults to 0.218.

  • ash_disposal_price (float, optional) – Price of disposing ash [USD/kg]. Same as bst.stream_utility_prices[‘Ash disposal’], which defaults to -0.0318.

  • satisfy_system_electricity_demand (bool, optional) – Whether to purchase natural gas to satisfy system electricity demand if there is not enough heat from process feeds (i.e., inlets 0 and 1). If True, natural gas is purchased to satisfy system heat and electricity demand when there is not enough heat from the feed and gas. If False, natural gas is only purchased to satisfy system heat demand and electricity will be purchased from the grid if there is not enough heat from the feeds. In either case, if there is excess heat from the process feeds, electricity will still be produced.

  • boiler_efficiency_basis (str, optional) – Basis of boiler efficiency. Defaults to ‘LHV’ (i.e., lower heating value). ‘HHV’ (i.e., higher heating value) is also a valid basis.

Examples

Create a boiler-turbogenerator system that uses sugarcane bagasse to produce steam for a distillation unit and any excess steam for surplus electricity:

>>> import biosteam as bst
>>> from biorefineries import cane
>>> chemicals = cane.create_sugarcane_chemicals()
>>> chemicals.define_group(
...     name='Fiber',
...     IDs=['Cellulose', 'Hemicellulose', 'Lignin'],
...     composition=[0.4704 , 0.2775, 0.2520],
...     wt=True, # Composition is given as weight
... )
>>> bst.settings.set_thermo(chemicals)
>>> dilute_ethanol = bst.Stream('dilute_ethanol', Water=1390, Ethanol=590)
>>> bagasse = bst.Stream('bagasse', Water=0.4, Fiber=0.6, total_flow=8e4, units='kg/hr')
>>> with bst.System('sys') as sys:
...     D1 = bst.BinaryDistillation('D1', ins=dilute_ethanol, Lr=0.999, Hr=0.89, k=1.25, LHK=('Ethanol', 'Water'))
...     BT = bst.BoilerTurbogenerator('BT')
...     BT.ins[0] = bagasse
>>> sys.simulate()
>>> BT.show()
BoilerTurbogenerator: BT
ins...
[0] bagasse
    phase: 'l', T: 298.15 K, P: 101325 Pa
    flow (kmol/hr): Water          1.78e+03
                    Cellulose      139
                    Hemicellulose  101
                    Lignin         79.5
[1] -
    phase: 'l', T: 298.15 K, P: 101325 Pa
    flow: 0
[2] -
    phase: 'l', T: 298.15 K, P: 101325 Pa
    flow: 488 kmol/hr Water
[3] -
    phase: 'g', T: 288.71 K, P: 101560 Pa
    flow: 0
[4] -
    phase: 'l', T: 298.15 K, P: 101325 Pa
    flow: 0
[5] -
    phase: 'l', T: 298.15 K, P: 101325 Pa
    flow: 0.567 kmol/hr Ash
[6] -
    phase: 'g', T: 298.15 K, P: 101325 Pa
    flow (kmol/hr): O2  9.85e+03
                    N2  4.23e+04
outs...
[0] emissions
    phase: 'g', T: 394.15 K, P: 101325 Pa
    flow (kmol/hr): Water  3.19e+03
                    CO2    1.98e+03
                    O2     7.84e+03
                    N2     4.23e+04
[1] rejected_water_and_blowdown
    phase: 'l', T: 298.15 K, P: 101325 Pa
    flow: 488 kmol/hr Water
[2] ash_disposal
    phase: 'l', T: 298.15 K, P: 101325 Pa
    flow (kmol/hr): Water  0.00944
                    Ash    0.567
>>> BT.results() # Steam and electricity are produced, so costs are negative
Boiler turbogenerator                                         Units        BT
Electricity              Power                                   kW -1.31e+05
                         Cost                                USD/hr -1.02e+04
Low pressure steam       Duty                                 kJ/hr -7.33e+07
                         Flow                               kmol/hr -1.89e+03
                         Cost                                USD/hr      -450
Cooling water            Duty                                 kJ/hr -8.42e+07
                         Flow                               kmol/hr  5.75e+04
                         Cost                                USD/hr      28.1
Fuel (inlet)             Flow                                 kg/hr         0
                         Cost                                USD/hr         0
Ash disposal (outlet)    Flow                                 kg/hr     0.737
                         Cost                                USD/hr    0.0234
Design                   Work                                    kW  1.33e+05
                         Flow rate                            kg/hr  2.93e+05
                         Ash disposal                         kg/hr     0.737
Purchase cost            Baghouse bags                          USD      81.1
                         Boiler                                 USD  3.33e+07
                         Deaerator                              USD  3.58e+05
                         Amine addition pkg                     USD  4.69e+04
                         Hot process water softener system      USD  9.16e+04
                         Turbogenerator                         USD  1.94e+07
Total purchase cost                                             USD  5.32e+07
Installed equipment cost                                        USD  9.62e+07
Utility cost                                                 USD/hr -1.07e+04

Notes

The flow rate of natural gas, lime, and boiler chemicals (streams 3-5) is set by the BoilerTurbogenerator object during simulation.

References

property makeup_water#

[Stream] Makeup water due to boiler blowdown.

property fuel#

[Stream] Fuel used to satisfy steam and electricity requirements.

property natural_gas#

[Stream] Fuel used to satisfy steam and electricity requirements.

property air#

[Stream] Air or oxygen rich gas used to supply oxygen for combustion.

property oxygen_rich_gas#

[Stream] Air or oxygen rich gas used to supply oxygen for combustion.

property ash_disposal#

[Stream] Ash disposal.

property fuel_price#

[Float] Price of natural gas, same as bst.stream_utility_prices[‘Natural gas’].

property natural_gas_price#

[Float] Price of natural gas, same as bst.stream_utility_prices[‘Natural gas’].

property ash_disposal_price#

[Float] Price of ash disposal, same as bst.stream_utility_prices[‘Ash disposal’].

line: str = 'Boiler turbogenerator'#

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