Skip to main content

A modular framework for rolling-horizon operational control using a Gym-compatible agent–environment abstraction. The framework enables integration of optimization-based agents (Pyomo), reinforcement learning agents (Stable-Baselines3), heuristic search methods, and rule-based controllers. Environments can be instantiated from FMI-compliant simulations, mathematical models, or real-world system interfaces.

Project description

https://zenodo.org/badge/DOI/10.5281/zenodo.18670778.svg

The ETA Ctrl framework provides a standardized interface for developing digital twins of factories or machines in a factory. It is designed to facilitate rolling horizon optimization, simulation, and interaction with factory systems. The framework is based on the Gymnasium environment and integrates seamlessly with tools like FMUs, Pyomo models, and live connections to real-world assets.

Documentation

Full Documentation can be found on the Documentation Page.

Overview

Core

  • `EtaCtrl`: Central controller for managing optimization workflows, including learning and execution processes.

Configuration

  • `Config`: Represents the configuration for an optimization run.

  • `RunInfo`: Handles paths and metadata for optimization runs.

Environment

  • Base Classes:

    • `BaseEnv`: Abstract base class for creating custom environments.

    • `LiveEnv`: Extends BaseEnv for live environments interacting with real-world systems.

    • `PyomoSimEnv`: Extends BaseEnv for environments using a pyomo model for simulation.

    • `SimEnv`: Extends BaseEnv for environments using FMU-based simulations.

  • Vectorization:

    • `NoVecEnv`: Custom vectorizer for environments that handle multithreading internally.

Simulation

  • `FMUSimulator`: Provides functionality for simulating FMUs (Functional Mock-up Units).

Time Series

  • `scenario_from_csv`: Imports and processes scenario data from CSV files.

  • `df_from_csv`: Reads time series data from a CSV file and returns it as a pandas DataFrame.

  • `df_resample`: Resamples the time index of a DataFrame to a specified frequency.

  • `df_interpolate`: Interpolates missing values in a DataFrame with a specified frequency.

State Management

  • `StateVar`: Represents a single variable in the state of an environment.

  • `StateConfig`: Configures the action and observation spaces based on StateVar instances.

Contributing

Please read the development guide before starting development on ETA Ctrl

Citing this Project

For referencing this package in academic work, please refer to CITATION.cff.

See AUTHORS.rst for a list of further contributors.

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

eta_ctrl-0.3.0.tar.gz (5.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eta_ctrl-0.3.0-py3-none-any.whl (103.2 kB view details)

Uploaded Python 3

File details

Details for the file eta_ctrl-0.3.0.tar.gz.

File metadata

  • Download URL: eta_ctrl-0.3.0.tar.gz
  • Upload date:
  • Size: 5.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.11.13 Linux/6.8.0-111-generic

File hashes

Hashes for eta_ctrl-0.3.0.tar.gz
Algorithm Hash digest
SHA256 10fd658d93e01f1dde130b65680c063111564c6d2d7d3e08d3bcb19b006e1cfd
MD5 9b17daee1959d38076b2336d4bedb18b
BLAKE2b-256 9be2028d3a966b5b182450192ffe3b74456b2cb634324647c1eab812c3d26ab0

See more details on using hashes here.

File details

Details for the file eta_ctrl-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: eta_ctrl-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 103.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.11.13 Linux/6.8.0-111-generic

File hashes

Hashes for eta_ctrl-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d6ed27f101a9c877c74b9da116a88a8608abe9a92774314c3fd2ae30767472f
MD5 0377773bcba88d637aeda7dabb3ab618
BLAKE2b-256 7a9e74635d06ebd10e4e272d014bfaaf31ca2adad10b2917aa3d50ce32f4211f

See more details on using hashes here.

Supported by

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