-
Notifications
You must be signed in to change notification settings - Fork 190
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
add energy storage interface #567
base: main
Are you sure you want to change the base?
Conversation
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
Optimization status: Failing.
Number one will be tested in a case without store-link storage technologies -> remove technologies in config with name ["store"]. Because this won't trigger any storage constraints. Number two will be tackled with a solid review and debugging of |
Status: RUNNING |
These Testing in combination with global sensitivity analysis aka. Monte-Carlo now. |
Working on a stacked PR: pz-max#1 |
add technology assessment
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
@davide-f I think we should keep this as PR until I submit my dissertation. The current status is sufficient for my PhD, but requires some changes before merge (see description). In general, I don't expect much more changes so the PR won't grow much. |
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
from scripts.build_test_configs import create_test_config | ||
import yaml | ||
|
||
# get base configuration file from diff config | ||
with open(input.diff_config) as f: | ||
base_config_path = ( | ||
yaml.full_load(f) | ||
.get("run", {}) | ||
.get("base_config", "config.tutorial.yaml") | ||
) |
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.
This PR is currently paused because of issues with time commitment. |
Changes proposed in this DRAFT Pull Request
This is a draft pull request and not yet ready for review.
Goal: energy storage technologies will be added to the model only by selections and additions in
config.yaml
and certain data format in the costs.csv. This should avoid manual code additions in case technologies are added into studies. Examples of code additions that will be no more needed areadd_electricity
,add_extra_component
andsolve_network
. This should save massive code duplication for technology-rich studies and complexity issues/ overhead for users.Additional fixes:
Reproduction:
To test this interface certain steps are necessary until PyPSA/technology-data#67 is merged into the technology database.
git clone -b store https://github.com/pz-max/technology-data.git
python scripts/compile_cost_assumptions.py
costs_2030.csv
config.yaml
,retrieve_cost_data: true
pypsa-earth/resources/costs.csv
Status
add_electricity()
to calculatecapital_costs
per storage_unitadd_battery_constraints()
insolve_all_networks
for all bichargers written in store & links stylestorage_units
. Read by defaultmax_hours
fromcosts.csv
and make overwrite inconfig.yaml
possible. Requires parameter additionmax_hours
with unith
in costs.csv. Currentlymax_hours
is arbitrarily used. The use ofstorage_units
is hence not recommended yet.test/config.custom.yaml
(needs that at least two storage technologies from interface are added tocosts.csv
e.g. bicharger and classical three component storage). Using the interface from technology_data still requires some time and we should not use that for testing atm...Checklist
envs/environment.yaml
andenvs/environment.docs.yaml
.config.default.yaml
andconfig.tutorial.yaml
.test/
(note tests are changing the config.tutorial.yaml)doc/configtables/*.csv
and line references are adjusted indoc/configuration.rst
anddoc/tutorial.rst
.doc/release_notes.rst
is amended in the format of previous release notes, including reference to the requested PR.