Skip to main content

ETA Ctrl Framework

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 of an experiment.

  • `ConfigPaths`: Relative paths and file names of the run files (part of Config, configurable in the paths section of the experiment config file).

  • `ConfigSetup`: Import and setup parameters for agent, environment, vectorizer, and policy (part of Config, configurable in the setup section of the experiment config file).

  • `ConfigSettings`: Settings parameters such as sampling time, prediction horizon, and agent/environment/scenario settings (part of Config, configurable in the settings section of the experiment config file).

  • `RunInfo`: Handles metadata and absolute paths of a single optimization run (Is derived by ETA Ctrl for each run).

Agent

  • `MpcAgent`: Pyomo based optimization agent supporting multiple solvers.

  • `RuleBased`: Simple agent using a control rule function.

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.

Metadata

Release files for eta-ctrl 0.4.0

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

Source distribution (sdist)

Source distribution for eta-ctrl 0.4.0
File Size Uploaded
eta_ctrl-0.4.0.tar.gz 5.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for eta-ctrl 0.4.0
File Interpreter ABI Platform
eta_ctrl-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 5.4 MB

Release files / eta_ctrl-0.4.0.tar.gz

Download URL eta_ctrl-0.4.0.tar.gz
Size 5.3 MB
Tags Source
SHA-256 checksum
How to use checksums
130023381586f1af62c16923f5c96d9c0f5f0037e3dcec4b2bc0742091c00d7c
BLAKE2b-256 checksum
How to use checksums
3d2ec126d2d9bbb13ea7eaa68a1cb3e75bc196418ae00bc63f93f2060f51d8aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.3 CPython/3.11.13 Linux/6.8.0-137-generic

Release files / eta_ctrl-0.4.0-py3-none-any.whl

Download URL eta_ctrl-0.4.0-py3-none-any.whl
Size 105.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
537733de3fc5683d66c5e03b075c1f174191629c8258a3896a7660713fe88b18
BLAKE2b-256 checksum
How to use checksums
3d727e00d2e6c96baa3de0b2002641e71ff192d77c07e37847292914febd4d59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.3 CPython/3.11.13 Linux/6.8.0-137-generic

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.1

2 release files

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