feat:improve PtX excess heat handling#1944
feat:improve PtX excess heat handling#1944amos-schledorn wants to merge 98 commits intorefactor-ptes-boostingfrom
Conversation
…from Power-to-X processes
…mperature configurations for excess heat sources
…fficiency calculation to use the new parameter
|
Note: 36110d5 fixed a bug that caused the return flow temperature to be used in the COP approximation of all heat sources, including those pre-heating the return flow. |
cpschau
left a comment
There was a problem hiding this comment.
Great work @amos-schledorn! I think I am finally getting a sense for the convenience of enums 😄
I only have one question about the processing of the HB heat efficiency. Other than that, this looks good to me!
| costs.at[self.technology_data_name, "efficiency-heat"] | ||
| / costs.at[self.technology_data_name, "electricity-input"] |
There was a problem hiding this comment.
Why is the heat efficiency value of the technology data not used directly?
There was a problem hiding this comment.
This is because the Haber-Bosch link's bus1 is electricity -> scaling of "efficiency-heat" [MWh_th/MWh_NH3] to [MWh_th/MWh_el] is necessary .
There was a problem hiding this comment.
Understood (because electricity is on bus0).
* fix powerplant to region mapping; use ppm for wind and solar * re-add everywhere_powerplants param * do not apply ppm phase-out heuristic * adjust test configuration files * add 2030 to power grouping years * ensure renewable carriers are not added as conventional power plants * improve handling of grouping years in add_existing_baseyear * pre-commit fixes
* Use .static and .components
* Use .dynamic and .components
* Replace lin{k,e}_widths
* More iterate_components replaced
* More dynamic and static attributes
* Rename plotting args (do not touch configs)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* resolve more deprecations
* saver iterate
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: lkstrp <lkstrp@pm.me>
…to active components (#2068)
* Add config schema updater & docs * Updates following review; fix example * Add instructions on how to check for prior changes to config item * Lower case `name`; Actually use `name` * Not allowed to use `Field` with `_name` attr; mass schema file rename * Simplify schema name setting
* fix missing or outdated configuration options * pixi run generate-config
* allow custom efficiency_classes for conventional generators * pixi run generate-config
* chore: pin grpcio<1.78 to silence warnings * doc: add release note * Update envs/environment.yaml --------- Co-authored-by: Lukas Trippe <lkstrp@pm.me>
* Update pixi `run-post-link-scripts` config * Remove `dot -c` from pixi tasks --------- Co-authored-by: Lukas Trippe <lkstrp@pm.me>
* distribute electricity demand by JRC energy atlas * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * reset_index when redistribute_attribute is called * add dependency and adapt to new data inventory * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add to data.csv * codespell fixes and update pixi.lock * update schema * fixes for new data layer * add rule messages * solve slow DAG evaluation The rule was using storage() in the input block, which caused Snakemake to make HTTP HEAD requests during DAG construction to verify the file exists. The UK government server is slow to respond to HEAD requests, causing a 30x slowdown (2 sec → 60 sec) in DAG evaluation. This fix removes the input block and handles the download directly in the run block using requests.get(), matching the pattern used by retrieve_ons_lad. This eliminates the existence check and restores DAG evaluation speed. * fix retrieval issues with storage() * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add raise_for_status * restore master pixi.lock * update pixi.lock * add to archive * more archive * handle archive * fix swiss * generate config * fix: url format * add retrieval for for archive and fix upload * another url fix * update pixi.lock --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: lkstrp <lkstrp@pm.me>
* Reverting to .pdf file ending. * Added release notes. --------- Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
Co-authored-by: lkstrp <62255395+lkstrp@users.noreply.github.com> Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
Integrates utilisation of excess heat from Power-to-X processes (electrolysis, Fischer-Tropsch, Sabatier, Haber-Bosch, methanolisation, fuel cells) into the new heat-source structure.
Changes
definitions/heat_source.pyHeatSourceenumHeatSourceTypecategorization (INEXHAUSTIBLE, SUPPLY_LIMITED, STORAGE, PROCESS_WASTE)has_constant_temperature→temperature_from_configprepare_sector_network.add_waste_heat()toHeatSourceenum__init__fromHeatSourceenumprepare_sector_network.pyadd_waste_heat(): Reduced from ~80 lines to ~30 using loop over PtXHeatSourcesSmall refactoring changes
build_cop_profiles/run.pyto usetemperature_from_configbuild_heat_source_utilisation_profiles.pyto usetemperature_from_configrules/build_sector.smkto usetemperature_from_configConfig Changes
Waste Heat Efficiency Changes
The old implementation used hardcoded approximations. The new implementation uses
efficiency-heatvalues from technology-data where available:0.95 - efficiency(~0.15)efficiency-heat0.84 - efficiency(~0.14)efficiency-heat0.15 * total_energy_input / electricity_input~3.75)efficiency-heat/electricity-inputheat-output / hydrogen-input(~0.088)0.95 - efficiency(=0.15)0.95 - efficiency(=0.45)Checklist
pixi.toml(usingpixi add <dependency-name>).config/config.default.yaml.doc/configtables/*.csv.these instructions <https://pypsa-eur.readthedocs.io/en/latest/data_sources.html>_ have been followed.doc/release_notes.rstis added.Testing
Configs
Base branch
Feature branch, same config but with same temperatures as implicitly assumed before
(only changes are waste heat efficiencies)
Feature branch, default config
Results
objective values
Excess heat utilisation
Urban central heat balance
Base
Feature, 200°C PtX temps
Feature, default PtX temps