Merge branch 'master' into pellet-boiler
This commit is contained in:
commit
9752b4b4e6
@ -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'
|
||||
|
@ -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.
|
||||
|
@ -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")
|
||||
|
Loading…
Reference in New Issue
Block a user