day-ahead-battery-scheduling
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: JaMoPinter
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Size: 33.7 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Probabilistic Day-Ahead Battery Scheduling based on Mixed Random Variables for Enhanced Grid Operation
This repository contains the Python implementation for the paper:
Probabilistic Day-Ahead Battery Scheduling based on Mixed Random Variables for Enhanced Grid Operation
Authors: Janik Pinter, Frederik Zahn, Maximilian Beichter, Ralf Mikut, and Veit Hagenmeyer
NOTE: The paper is currently under revision! An updated link to the final version will follow when available!
Repository Structure
``` . data/ groundtruth/ # Contains the ground-truth of prosumption of selected real-world example quantileforecasts/ # Contains the quantile forecasts parametric_forecasts/ # Contains parametric forecasts for two distributions (Normal Dist. and Sum of 2 Normal Dist.) parameters/ # Contains json files with params such as cost-function weights, battery specifications, ...
| forecasting/ createquantileforecastsneuralforecasterhyper.ipynb # Create quantile prosumption forecasts based on real-world data convertforecasts.ipynb # Convert quantile forecasts to parametric form visualizedata.ipynb # Visualize forecasted PDFs |
optimization/ inputdata.py # Load forecasts and parameters experimenttracking.py # Tracks the experiment in MLFlow optimizationmodel.py # Contains the optimization problem main.py # Executes the optimization problem resultsprocessing.py # Visualizes the results utils.py # Contains utility functions such as parametric pdf implementations
```
Installation
- Install virtualenv
pip install virtualenv - Create a Virtual Environment
virtualenv myenv - Activate the Virtual Environment
source myenv/Scripts/activate - Install Packages specified in requirements-optimization.txt
python -m pip install -r requirements-optimization.txtFurthermore, ensure that IPOPT is properly installed. For more information, see IPOPT
Execution
In order to start an optimization process, execute main.py.
python optimization/main.py
Reproducibility
Reproduce Optimization Results
In order to reproduce the results shown in the paper, execute the optimization process with the corresponding parameter file for Case 1, Case 2, or Case 3 specified in main.py. The necessary forecasts are included in the repository.
Reproduce Forecasts
In order to reproduce the forecasts, the following steps need to be done:
1. Install corresponding forecasting requirements
python -m pip install -r requirements-forecasting.txt
2. Execute createquantileforecasts.ipynb with the following specifications (GPU necessary):
- The forecast were generated seeded using a system with the following specs, os, python version:
- Processor: Intel 13th Gen Core i9-13900
- Memory: 64 GB RAM
- Graphics: NVIDIA GeForce RTX 3090 (Driver Version: 555.42.02 / CUDA Version: 12.5)
- OS: Ubuntu 22.04.4 LTS
- PYTHON: 3.12.5
Funding
This project is funded by the Helmholtz Association under the "Energy System Design" program and the German Research Foundation as part of the Research Training Group 2153 "Energy Status Data: Informatics Methods for its Collection, Analysis and Exploitation"
License
This code is licensed under the MIT License.
First Version
The content of this paper was first published on Arxiv. If you found this repository over the Arxiv version, we kindly refer you to the revised version available soon.
Owner
- Name: Janik Moses Pinter
- Login: JaMoPinter
- Kind: user
- Repositories: 1
- Profile: https://github.com/JaMoPinter
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: >-
Day-Ahead Battery Scheduling based on Mixed Random
Variables
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Janik
family-names: Pinter
email: janik.pinter@kit.edu
affiliation: Karlsruhe Institute of Technology (KIT)
orcid: 'https://orcid.org/0009-0000-4494-8416'
repository-code: 'https://github.com/JaMoPinter/Day-Ahead-Battery-Scheduling'
keywords:
- Day-Ahead Battery Scheduling
- Stochastic Optimization
- Prosumer Integration
- Mixed Random Variables
license: MIT
date-released: '2024-10-31'
GitHub Events
Total
- Watch event: 4
- Member event: 1
- Push event: 35
- Create event: 2
Last Year
- Watch event: 4
- Member event: 1
- Push event: 35
- Create event: 2