Skip to main content

pandaenergy-extension

Project description

pandaenergy-extension

Library for converting pandapower/pandapipes networks to a graph representation and extending controller functionality.

Installing

The peext-library is available as package on PyPi, therfore you can install it using pip.

pip install peext

However, as usual, it is recommended to install it in a virtual environment:

pip install virtualenv
virtualenv venv
source venv/bin/activate
pip install peext

Quickstart

In peext you can execute a steady-state time series simulation coupled with mango-agents using pandapower/pandapipes.

To setup the simulation you need to construct a MASWorld object and start the asyncio based simulation.

import asyncio
import peext.scenario.network as pn
from peext.world.core import MASWorld

# construct the world using a coroutine constructing the mango
# container + agents
world = MASWorld(create_mas, pn.create_small_test_multinet(), max_steps=10)

# Start the simulation using asyncio
loop = asyncio.get_event_loop()
loop.run_until_complete(future=world.run())

In this example a MASWorld is constructed using the mango setup routine create_mas and the small multi energy test network pn.create_small_test_multinet(). The mango setup routine could look like this.

async def create_mas(me_network: MENetwork):
    """Create a multi agent system within a single container.

    :param me_network: the network
    :type me_network: network.MENetwork
    :return: container the agents live in
    :rtype: Container
    """
    container = await Container.factory(addr=('127.0.0.2', 5555))
    agents = []
    for node in me_network.nodes: 
        a = RoleAgent(container)
        # random actions
        a.add_role(RandomRegulatorRole(node)) 
        agents.append(a)
           
    return container, agents

This coroutine-function will setup a mango-agent Container on port 5555 with the internal adress '127.0.0.2'. Also it creates an agent for every node in the multi-energy network. The network is represented by an instance of the MENetwork class. For more information about defining roles, creating agents in mango, consult the mango documentation (https://mango-agents.readthedocs.io/en/latest/).

Package documentation

In this section the important packages (and their important classes), their objective and capabilities are described.

MASWorld

A MASWorld (peext.world.core) is capable of coupling a mango-agents simulation with a multi-energy pandapipes controller simulation. It expects at least 2 object:

  • the multinet
  • a coroutine-function, which setups mango-agents and containers.

Besides executing the simulation the World will collect data every step and persist the collected data and the network itself for later usage (f.e. with dcnv).

MENetwork

The MENetwork is the central network model when using peext components and resides in the package peext.network. While pandapower/pipes uses pandas dataframes to store all informations about the components and the simulation results, the MENetwork represents every component by a node or an edge. Nodes are f.e. generators, loads, while edges f.e. are lines, pipes and trafos. In this representation buses and junctions are omitted. If the data is needed it can be accessed using the methods get_bus_junc_res_data and get_bus_junc. Exception: empty junctions and buses will be represented as own nodes.

Pandapipes/Pandapower Controller

The peext-library implements a set of controller representing coupling points in the multi-energy network:

Name Description Components Modes
CHPControlMultiEnergy Implements a regulatable (heat and power/gas) CHP coupling point with an optional heat storage heat_exchanger, gen/sgen, sink, optional EnergyStorage Power driven/Gas driven
RegulatedG2PControlMultiEnergy Implements a regulatable G2P coupling point. Essentially equivalent to CHPControllMultiEnergy with heat_regulation = 0 gen/sgen, sink Power driven/Gas driven
RegulatedP2GControlMultiEnergy Implements a regulatable P2G coupling point. source, load Power driven

Furthermore there are controllers to extend the capabilites of the MENetwork represenation and for collecting/plotting data:

  • HistoryController
    • Collecting data for historical timesteps, providing a bridge to this data in the MENetwork instance
  • PlottingController
    • Implements live plotting of a chosen set of components in matplotlib windows
  • StaticPlottingController
    • Capable of collecting the network data every step. Used internally by the MASWorld for persisting the network results.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

peext-0.5.1.tar.gz (37.3 kB view details)

Uploaded Source

Built Distribution

peext-0.5.1-py3-none-any.whl (35.8 kB view details)

Uploaded Python 3

File details

Details for the file peext-0.5.1.tar.gz.

File metadata

  • Download URL: peext-0.5.1.tar.gz
  • Upload date:
  • Size: 37.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.2

File hashes

Hashes for peext-0.5.1.tar.gz
Algorithm Hash digest
SHA256 d198996e8de352aab4963bb9e3dbc4e2970dc1f7185d32e7cf1d6902fbd555be
MD5 e1c67423e8aefd626b5f71fc31620b8a
BLAKE2b-256 801590701fdcdfed3efe4997c52878624371a2fe9924ab8db0b08a6a358a9c16

See more details on using hashes here.

File details

Details for the file peext-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: peext-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 35.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.2

File hashes

Hashes for peext-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1811a4fdc54f5b8e9046572e29ea87d001911a133c8bc2b08f616d4f9ae2a672
MD5 a11719b5d4455d9d4103a7743e1f6154
BLAKE2b-256 c0012eb3366100916da3d355abb6d49347018ad93945d0842a1c2be62a1f568b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page