-
Notifications
You must be signed in to change notification settings - Fork 251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transition from stores to storage units for LTES, introducing energy-to-power ratio #1444
base: master
Are you sure you want to change the base?
Conversation
for more information, see https://pre-commit.ci
scripts/prepare_sector_network.py
Outdated
"StorageUnit", | ||
nodes + f" {heat_system} water tanks", | ||
bus=nodes + f" {heat_system} water tanks", | ||
e_cyclic=True, | ||
e_nom_extendable=True, | ||
bus=nodes + f" {heat_system} heat", | ||
carrier=f"{heat_system} water tanks", | ||
efficiency_store=costs.at["water tank charger", "efficiency"], | ||
max_hours=costs.at[ | ||
"central water tank storage", "energy to power ratio" | ||
], | ||
efficiency_dispatch=costs.at["water tank discharger", "efficiency"], | ||
p_nom_extendable=True, | ||
standing_loss=1 - np.exp(-1 / 24 / tes_time_constant_days), | ||
capital_cost=costs.at[ | ||
heat_system.central_or_decentral + " water tank storage", "fixed" | ||
], | ||
lifetime=costs.at[ | ||
heat_system.central_or_decentral + " water tank storage", "lifetime" | ||
], | ||
e_nom_extendable=True, | ||
e_cyclic=True, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We might need another case distinction for different sizes of water tanks (DEA's "large hot water tank" for urban central heat and "small scale hot water tank" for urban decentral and rural heat), as the DEA provides different energy-to-power-ratio and costs. This would require additional changes in technology-data.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @TomKae00,
the implementation looks fine to me. However, the data behind it seems to contain some wrong assumptions that probably sneaked in with the recent changes in the technology-data repository, namely #144 and #152. In my opinion, we should assume (dis-)charger efficiencies of 1, as they are stated in the DEA catalogue. The indicated round-trip-efficiency-losses are probably chosen to give a proxy for the average standing losses. The standing losses, however, are already represented in our model by the configurable parameter tes_tau
. Therefore, we would withdraw them twice according to the current implementation. These losses are probably also the reason, why PTES expansion decreases so heavily in your comparison between former "Store" and "StorageUnit" implementation and the total system costs change so much. To fix this issue, I would suggest to
- submit a new PR in technology-data that refers the right charger- and discharger efficiencies for tanks and pits (maybe keep the round-trip efficiency as extra-row for people using technology-data without modelling standing losses separately),
- ask @lkstrp to bump a new technology-data release, as soon as it is merged,
- and finally reference the newly release version in the
config.default.yaml
.
As mentioned in the in-line review, it could also make sense to add the small scale hot water tanks to the technology-data to serve as decentral heat storage option, unless there are arguments against it @amos-schledorn
EDIT: decentral water tank storage are already part of the costs tables, taken from the PyPSA cost assumptions, so no need to add them.
Agreed, well done @TomKae00! I've opened an issue for the standing losses: #1459, so we can tackle that separately. This is good-to-go from my side as soon as the requested changes by @cpschau are addressed. @lkstrp any chance we could we get that |
carrier=f"{heat_system} water tanks", | ||
efficiency_store=costs.at["water tank charger", "efficiency"], | ||
max_hours=costs.at[ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TTES in district heating and decentral water tanks do not have the same EtP ratio.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I noticed one more thing that needs to be adjusted.
heat_system.central_or_decentral + " water tank discharger", | ||
"efficiency", | ||
], | ||
p_nom_extendable=True, | ||
standing_loss=1 - np.exp(-1 / 24 / tes_time_constant_days), | ||
capital_cost=costs.at[ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Capital costs are related to power not to energy capacity --> Conversion from €/MWh to €/MW using energy to power ratio.
], | ||
p_nom_extendable=True, | ||
standing_loss=1 - np.exp(-1 / 24 / tes_time_constant_days), | ||
capital_cost=costs.at["central water pit storage", "fixed"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here. Capital costs need to be converted according to unit.
Changes proposed in this Pull Request
This pull request introduces the following adjustments to the prepare_sector_network script:
The following config data has been used:
scenario:
clusters:
- 6
planning_horizons:
- 2030
foresight: overnight
countries: ['DE', 'DK']
clustering:
temporal:
resolution_sector: 12h
costs:
version: master
max_hours control:
The following figure illustrates the ratio of the state of charge compared to charging and discharging for the exemplary "DE0 0 urban central water pits". Additionally, the maximum hours are shown in relation to the ratio of the maximum state of charge to charging/discharging, demonstrating that the energy-to-power ratio is followed.
Effect of Changes: Results Analysis
The transition from stores to storage units results in larger storage sizing:
The implementation of the energy-to-power ratio limits the charging and discharging rates relative to storage size. This is illustrated in the following plots:
Urban Central Water Tanks:
Urban Central Water Pits:
The changes in charging and discharging dynamics influence the energy balance, as shown for urban central and urban decentral systems in the plots below:
Urban Central Heat:
Urban Decentral Heat:
The shift from stores to storage units impacts the total system costs slightly, resulting in a small decrease in costs for the storage units compared to stores:
Checklist
envs/environment.yaml
.config/config.default.yaml
.doc/configtables/*.csv
.doc/data_sources.rst
.doc/release_notes.rst
is added.