Peak shaving analysis for industrial load profiles
Project description
Peak Shaving Analyzer
This repository contains tools and utilities for analyzing and optimizing energy consumption with peak shaving strategies. The project includes data fetching, analysis, and visualization components, as well as Docker configurations for deployment.
Table of Contents
Overview
Peak shaving is a strategy to reduce energy costs by minimizing peak demand utilizing energy storage systems. This project provides tools to optimize a given consumption time series with peak-shaving reducing capacity costs and visualizing results using Grafana.
Features
- Peak shaving optimization using FINE by FZJ
- Easy configuration of many parameters
- Support for dynamic prices
- Inclusion of PV system integration with automatic retrieving of generation timeseries depending on location (with detection for leap years)
- Dockerized deployment with Grafana dashboards
- Example configurations for various scenarios
Installation
You can install peakshaving-analyzer using pip. Choose the appropriate installation method based on your needs:
Using pip
To install the core package:
pip install peakshaving-analyzer
Timescale Database and Grafana Dashboards
If you want to benefit from a supported database and integrated Grafana dashboards for scenario analysis, you can use the provided Docker Compose file.
Follow these steps:
- Clone the repository and navigate to its directory:
git clone https://github.com/NOWUM/peakshaving-analyzer.git
cd peakshaving-analyzer
- Start the database and Grafana using the following command:
docker compose up -d
This will launch a container for TimescaleDB and Grafana with preconfigured dashboards for analysis. You can access the Grafana dashboards at http://localhost:3000
.
Usage
from peakshaving_analyzer import Config, PeakShavingAnalyzer
config = Config("/path/to/your/config/file.yml")
psa = PeakShavingAnalyzer(config=config)
The optimization can be adjusted by changing values in the config.yml
file.
If you're connecting to your own database either create the predefined tables or set overwrite_existing_optimization
to False
on the first optimization.
Examples
In the examples
directory are four examples:
- A scenario examining only a storage system using hourly values with a fixed, non-dynamic price for the used energy.
- A scenario examining only a storage system using quarterhouly values with a fixed, non-dynamic price for the used energy.
- A scenario examining only a storage system using quarterhourly values with a dynamic, time-depended price for the used energy.
- A scenario examining a storage system as well as a photovoltaic system using hourly values with a dynamic, time-depended price for the used energy.
You can run these examples with python3 ./examples/example/main.py
from the base directory.
License
This project is licensed under the terms of the LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file peakshaving_analyzer-0.0.3.tar.gz
.
File metadata
- Download URL: peakshaving_analyzer-0.0.3.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
448095325cb59ee3f0004e1ca853a906a308d83b141f4386241c47a6df86471e
|
|
MD5 |
93ccdc4a8ab94811dd12fa6452eec645
|
|
BLAKE2b-256 |
3a97b089bf2e6c19a8e3f9278358c95640d1ea3a7d4f0d5bdde1720eca05c12e
|
Provenance
The following attestation bundles were made for peakshaving_analyzer-0.0.3.tar.gz
:
Publisher:
publish.yml
on NOWUM/peakshaving-analyzer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
peakshaving_analyzer-0.0.3.tar.gz
-
Subject digest:
448095325cb59ee3f0004e1ca853a906a308d83b141f4386241c47a6df86471e
- Sigstore transparency entry: 198416374
- Sigstore integration time:
-
Permalink:
NOWUM/peakshaving-analyzer@7b0d17a618870986ff2ae316aeb0dd2a1110a6dc
-
Branch / Tag:
refs/tags/v0.0.3
- Owner: https://github.com/NOWUM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
publish.yml@7b0d17a618870986ff2ae316aeb0dd2a1110a6dc
-
Trigger Event:
release
-
Statement type:
File details
Details for the file peakshaving_analyzer-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: peakshaving_analyzer-0.0.3-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
35d40a5c08bd184641ad78c37bae340351507e397792134fc557b68ff123e38c
|
|
MD5 |
ee25cb71425efb5ccc405ce8e0e5e95f
|
|
BLAKE2b-256 |
fed390a03e5f41b725a4cf016a929631587d28e2d3aea9135ce27ff8084f809c
|
Provenance
The following attestation bundles were made for peakshaving_analyzer-0.0.3-py3-none-any.whl
:
Publisher:
publish.yml
on NOWUM/peakshaving-analyzer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
peakshaving_analyzer-0.0.3-py3-none-any.whl
-
Subject digest:
35d40a5c08bd184641ad78c37bae340351507e397792134fc557b68ff123e38c
- Sigstore transparency entry: 198416377
- Sigstore integration time:
-
Permalink:
NOWUM/peakshaving-analyzer@7b0d17a618870986ff2ae316aeb0dd2a1110a6dc
-
Branch / Tag:
refs/tags/v0.0.3
- Owner: https://github.com/NOWUM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
publish.yml@7b0d17a618870986ff2ae316aeb0dd2a1110a6dc
-
Trigger Event:
release
-
Statement type: