Skip to main content

Introduction to the VPPlib structure

Installation

You can install vpplib using pip:

pip install vpplib

Or install directly from the repository:

git clone https://github.com/Pyosch/vpplib.git
cd vpplib
pip install -e .

Dependencies

VPPlib requires the following main dependencies:

  • windpowerlib
  • pvlib
  • pandas
  • numpy
  • pandapower
  • simbench
  • simses
  • polars
  • requests
  • lxml
  • pytz
  • tqdm
  • NREL-PySAM

Testing

Tests use pytest and require internet access (DWD API). All tests are marked @pytest.mark.integration.

# Install dev dependencies
pip install -e .

# Run all integration tests
pytest -m integration

# Run tests with verbose output
pytest -v

Overview

For the simulation of the virtual power plant a basic data structure is developed. It consists of multiple classes to design a virtual power plant, build models of the components and operate it in a distribution grid.

The "Environment" class describes the overall environment, in which the vpp is being operated. It contains all time- and weather-related information and data. The class "UserProfile" contains information, which is specific for a certain house or housing unit, like heat demand or usage times of an electric vehicle.

The "Component" classes can then compose the Environment and UserProfile, to access their information for simulating the single components. To aggregate the components, the "VirtualPowerPlant" class composes the components.

To be able to mirror the behavior of the components to the distribution grid, a pandapower net object is created, containing loads, storages and generation units, which correspond to the components in the VirtualPowerPlant. The net object along with the VirtualPowerPlant are then passed on to the "Operator" class. In this class, operation strategies as well as optimizations can be implemented, considering restrictions which arise from the components as well as the grid.

Besides the technical issues, time series from markets can also be included to analyze the financial aspects of the virtual power plant at hand.

Component

The Component class represents a component within the virtual power plant. This can be, for example, a photovoltaik system or a combined heat and power plant. In addition to the generators, consumers and electrical storage devices can also be stored in this way. The different generators, consumers and storages are derived from the Component superclass. The superclass is used to provide general functionality for the accounting of the power flows within the virtual power plant. Therefore, it does not matter whether an electricity storage device or a photovoltaik system is to be balanced afterwards. However, you can create derivations from this object so that you can still represent the special features of the individual components.

Virtual power plant

The second superordinate element is the VirtualPowerPlant object. This represents a combination of different components. Individual components can be added and removed for the simulation. By this encapsulation of the individual components, different topologies of the virtual power plant can be simulated.

Operator

The Operator object receives a reference to a VirtualPowerPlant object and controls this according to the implemented logic. This element can also be used as a basis to achieve different goals. By deriving this class one Operator can, for example, aim to maximize the share of renewable energies. Another Operator could maximize the monetary profit.

Environment

The Environment class is an encapsulation of every environmental impact on the system. In addition to basic weather and time related data, it is also possible to store regulatory framework conditions for the operation of a virtual power plant. The Environment can be passed to any Component in the constructor. Depending on the component, individual data is accessed.

UserProfile

The UserProfile class is similar to the Environment class. However, this contains information on the respective usage behaviour of different types of users.

Metadata

Release files for vpplib 0.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vpplib 0.0.6
File Size Uploaded Provenance Actions
vpplib-0.0.6.tar.gz 8.8 MB Without provenance Details for vpplib-0.0.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vpplib 0.0.6
File Interpreter ABI Platform Actions
vpplib-0.0.6-py3-none-any.whl Python 3 none any Details for vpplib-0.0.6-py3-none-any.whl

Total release size: 18.0 MB

Release files / vpplib-0.0.6.tar.gz

Download URL vpplib-0.0.6.tar.gz
Size 8.8 MB
Tags Source
SHA-256 checksum
How to use checksums
039462c550c1d2b91d84c5e3e826c7b98f8ddbd3ef6b0c1d84c3b65b2aa9cdb2
BLAKE2b-256 checksum
How to use checksums
84b920afc2d09e4bc295d81b0f068288d0fdb4b3bb3a9a7214d7bba8ea426107
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.5

Release files / vpplib-0.0.6-py3-none-any.whl

Download URL vpplib-0.0.6-py3-none-any.whl
Size 9.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f155a6aa4e7c5a77e5e6f2ec71d3d4911bef39f4d09b8f63a03172d67c32e3f3
BLAKE2b-256 checksum
How to use checksums
4a842e9cd5452948f6d1a74bb507c3755825b6af97e5264b166e1b69766de2eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.5

Security for vpplib 0.0.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page