Merge branch 'master' into pellet-boiler

This commit is contained in:
lisazeyen 2022-08-05 12:25:01 +02:00 committed by GitHub
commit 9752b4b4e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 83 additions and 0 deletions

View File

@ -264,6 +264,9 @@ sector:
biomass_transport: false # biomass transport between nodes
conventional_generation: # generator : carrier
OCGT: gas
biomass_to_liquid: false
biosng: false
industry:
@ -510,6 +513,8 @@ plotting:
solid biomass for industry co2 from atmosphere: '#736412'
solid biomass for industry co2 to stored: '#47411c'
biomass boiler: '#8A9A5B'
biomass to liquid: '#32CD32'
BioSNG: '#123456'
# power transmission
lines: '#6c9459'
transmission lines: '#6c9459'

View File

@ -56,8 +56,13 @@ incorporates retrofitting options to hydrogen.
**New features and functionality**
* Add option for biomass boilers (wood pellets) for decentral heating
* Add option for BioSNG (methane from biomass) with and without CC
* Add option for BtL (Biomass to liquid fuel/oil) with and without CC
* Units are assigned to the buses. These only provide a better understanding. The specifications of the units are not taken into account in the optimisation, which means that no automatic conversion of units takes place.
* Option ``retrieve_sector_databundle`` to automatically retrieve and extract data bundle.

View File

@ -1878,6 +1878,79 @@ def add_biomass(n, costs):
lifetime=costs.at['biomass boiler', 'lifetime']
)
#Solid biomass to liquid fuel
if options["biomass_to_liquid"]:
n.madd("Link",
spatial.biomass.nodes,
suffix=" biomass to liquid",
bus0=spatial.biomass.nodes,
bus1=spatial.oil.nodes,
bus2="co2 atmosphere",
carrier="biomass to liquid",
lifetime=costs.at['BtL', 'lifetime'],
efficiency=costs.at['BtL', 'efficiency'],
efficiency2=-costs.at['solid biomass', 'CO2 intensity'] + costs.at['BtL', 'CO2 stored'],
p_nom_extendable=True,
capital_cost=costs.at['BtL', 'fixed'],
marginal_cost=costs.at['BtL', 'efficiency']*costs.loc["BtL", "VOM"]
)
#TODO: Update with energy penalty
n.madd("Link",
spatial.biomass.nodes,
suffix=" biomass to liquid CC",
bus0=spatial.biomass.nodes,
bus1=spatial.oil.nodes,
bus2="co2 atmosphere",
bus3=spatial.co2.nodes,
carrier="biomass to liquid",
lifetime=costs.at['BtL', 'lifetime'],
efficiency=costs.at['BtL', 'efficiency'],
efficiency2=-costs.at['solid biomass', 'CO2 intensity'] + costs.at['BtL', 'CO2 stored'] * (1 - costs.at['BtL', 'capture rate']),
efficiency3=costs.at['BtL', 'CO2 stored'] * costs.at['BtL', 'capture rate'],
p_nom_extendable=True,
capital_cost=costs.at['BtL', 'fixed'] + costs.at['biomass CHP capture', 'fixed'] * costs.at[
"BtL", "CO2 stored"],
marginal_cost=costs.at['BtL', 'efficiency'] * costs.loc["BtL", "VOM"]
#BioSNG from solid biomass
if options["biosng"]:
n.madd("Link",
spatial.biomass.nodes,
suffix=" solid biomass to gas",
bus0=spatial.biomass.nodes,
bus1=spatial.gas.nodes,
bus3="co2 atmosphere",
carrier="BioSNG",
lifetime=costs.at['BioSNG', 'lifetime'],
efficiency=costs.at['BioSNG', 'efficiency'],
efficiency3=-costs.at['solid biomass', 'CO2 intensity'] + costs.at['BioSNG', 'CO2 stored'],
p_nom_extendable=True,
capital_cost=costs.at['BioSNG', 'fixed'],
marginal_cost=costs.at['BioSNG', 'efficiency']*costs.loc["BioSNG", "VOM"]
)
#TODO: Update with energy penalty for CC
n.madd("Link",
spatial.biomass.nodes,
suffix=" solid biomass to gas CC",
bus0=spatial.biomass.nodes,
bus1=spatial.gas.nodes,
bus2=spatial.co2.nodes,
bus3="co2 atmosphere",
carrier="BioSNG",
lifetime=costs.at['BioSNG', 'lifetime'],
efficiency=costs.at['BioSNG', 'efficiency'],
efficiency2=costs.at['BioSNG', 'CO2 stored'] * costs.at['BioSNG', 'capture rate'],
efficiency3=-costs.at['solid biomass', 'CO2 intensity'] + costs.at['BioSNG', 'CO2 stored'] * (1 - costs.at['BioSNG', 'capture rate']),
p_nom_extendable=True,
capital_cost=costs.at['BioSNG', 'fixed'] + costs.at['biomass CHP capture', 'fixed'] * costs.at[
"BioSNG", "CO2 stored"],
marginal_cost=costs.at['BioSNG', 'efficiency']*costs.loc["BioSNG", "VOM"]
)
def add_industry(n, costs):
logger.info("Add industrial demand")