Solid biomass to hydrogen process (#1213)

* Added solid biomass to hydrogen, bioH2, process

* Add doc for new config

* add release notes

* enable bioH2 also without biomass spatially resolved

* Update doc/release_notes.rst

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>

* Added overnight cost

---------

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
This commit is contained in:
Markus Millinger 2024-08-16 13:18:10 +02:00 committed by GitHub
parent 8480d62d33
commit ebbb75491b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 29 additions and 0 deletions

View File

@ -654,6 +654,7 @@ sector:
biomass_to_liquid: false
electrobiofuels: false
biosng: false
bioH2: false
municipal_solid_waste: false
limit_max_growth:
enable: false
@ -1097,6 +1098,7 @@ plotting:
unsustainable bioliquids: '#32CD32'
electrobiofuels: 'red'
BioSNG: '#123456'
solid biomass to hydrogen: '#654321'
# power transmission
lines: '#6c9459'
transmission lines: '#6c9459'

View File

@ -151,6 +151,7 @@ biogas_upgrading_cc,--,"{true, false}",Add option to capture CO2 from biomass up
conventional_generation,,,Add a more detailed description of conventional carriers. Any power generation requires the consumption of fuel from nodes representing that fuel.
biomass_to_liquid,--,"{true, false}",Add option for transforming solid biomass into liquid fuel with the same properties as oil
biosng,--,"{true, false}",Add option for transforming solid biomass into synthesis gas with the same properties as natural gas
bioH2,--,"{true, false}",Add option for transforming solid biomass into hydrogen with carbon capture
municipal_solid_waste,--,"{true, false}",Add option for municipal solid waste
limit_max_growth,,,
-- enable,--,"{true, false}",Add option to limit the maximum growth of a carrier

1 Unit Values Description
151 conventional_generation Add a more detailed description of conventional carriers. Any power generation requires the consumption of fuel from nodes representing that fuel.
152 biomass_to_liquid -- {true, false} Add option for transforming solid biomass into liquid fuel with the same properties as oil
153 biosng -- {true, false} Add option for transforming solid biomass into synthesis gas with the same properties as natural gas
154 bioH2 -- {true, false} Add option for transforming solid biomass into hydrogen with carbon capture
155 municipal_solid_waste -- {true, false} Add option for municipal solid waste
156 limit_max_growth
157 -- enable -- {true, false} Add option to limit the maximum growth of a carrier

View File

@ -9,6 +9,9 @@ Release Notes
Upcoming Release
================
* Add option to produce hydrogen from solid biomass (flag ``solid biomass to hydrogen``), combined with carbon capture
* Fixed PDF encoding in ``build_biomass_transport_costs`` with update of tabula-py and jpype1
* More modular and flexible handling of transmission projects. One can now add new transmission projects in a subfolder of `data/transmission projects` similar to the files in the template folder. After adding the new files and updating the config section `transmission_projects:`, transmission projects will be included if they are not duplicates of existing lines or other projects.

View File

@ -2830,6 +2830,29 @@ def add_biomass(n, costs):
marginal_cost=costs.at["BioSNG", "VOM"] * costs.at["BioSNG", "efficiency"],
)
if options["bioH2"]:
name = (pd.Index(spatial.biomass.nodes) + " "
+ pd.Index(spatial.h2.nodes.str.replace(" H2", "")))
n.madd(
"Link",
name,
suffix=" solid biomass to hydrogen CC",
bus0=spatial.biomass.nodes,
bus1=spatial.h2.nodes,
bus2=spatial.co2.nodes,
bus3="co2 atmosphere",
carrier="solid biomass to hydrogen",
efficiency=costs.at['solid biomass to hydrogen', 'efficiency'],
efficiency2=costs.at['solid biomass', 'CO2 intensity'] * options["cc_fraction"],
efficiency3=-costs.at['solid biomass', 'CO2 intensity'] * options["cc_fraction"],
p_nom_extendable=True,
capital_cost=costs.at['solid biomass to hydrogen', 'fixed'] * costs.at['solid biomass to hydrogen', 'efficiency']
+ costs.at['biomass CHP capture', 'fixed'] * costs.at['solid biomass', 'CO2 intensity'],
overnight_cost=costs.at['solid biomass to hydrogen', 'investment'] * costs.at['solid biomass to hydrogen', 'efficiency']
+ costs.at['biomass CHP capture', 'investment'] * costs.at['solid biomass', 'CO2 intensity'],
marginal_cost=0.,
)
def add_industry(n, costs):
logger.info("Add industrial demand")