Skip to main content

A framework for researching energy optimization of factory operations

Project description

While there are many tools which are useful in the area of energy optimized factory operations, at the ETA-Fabrik at Technical University of Darmstadt we have recognized a lack of comprehensive frameworks which combine functionality for optimization, simulation and communication with devices in the factory.

Therefore, we developed the eta_utility framework, which provides a standardized interface for the development of digital twins of factories or machines in a factory. The framework is based on the OpenAI gym environment and follows a rolling horizon optimization approach. It provides standardized connectors for multiple communication protocols, including OPC UA and Modbus TCP. These facilities can be utilized to easily implement rolling horizon optimizations for factory systems and to directly control devices in the factory with the optimization results.

Full Documentation can be found on the Documentation Page.

You can find the source code on github. If you would like to contribute, please check our working repository.

The package eta_utility consists of five main modules and some additional functionality:

  • eta_x is the rolling horizon optimization module which combines the functionality of the other modules. It is based on the OpenAI gym framework and utilizes algorithms and functions from the stable_baselines3 package. eta_x also contains extended base classes for environments and additional agents (or algorithms).

  • The connectors module provides a standardized way to connect to machines and devices in a factory or other factory systems (such as energy management systems). The connectors can also handle subscriptions, for example to regularly store values in a database.

  • The servers module can be used to easily instantiate servers, for example to publish optimization results.

  • simulators are interfaces based on the fmpy package which provide a way to simulate FMU (Functional Mockup Unit) models. The simulators can be used to perform quick complete simulations or to step through simulation models, as would be the case in rolling horizons optimization.

  • timeseries is an interface based on the pandas package to load and manipulate timeseries data from CSV files. It can for example rename columns, resample data in more complex ways such as multiple different resampling intervals or select random time slices from data. The scenario_from_csv function combines much of this functionality.

  • Other functionality includes some general utilities which are available on the top level of the package.

Some particularities

If you want to have logging output from eta utility, call:

from eta_utility import get_logger
get_logger()

eta_utility uses dataframes to pass timeseries data and the dataframes are ensured to contain timezone information where sensible.

Citing this project

Please cite this project using our publication:

Grosch, B., Ranzau, H., Dietrich, B., Kohne, T., Fuhrländer-Völker D., Sossenheimer, J., Lindner, M., Weigold, M.
A framework for researching energy optimization of factory operations.
Energy Inform 5 (Suppl 1), 29 (2022). https://doi.org/10.1186/s42162-022-00207-6

We would like to thank the many contributors who developed functionality for the package, helped with documentation or provided insights which helped to create the framework architecture.

  • Niklas Panten for the first implementation of the rolling horizon optimization now available in eta_x,

  • Nina Strobel for the first implementation of the connectors,

  • Thomas Weber for contributions to the rolling horizon optimization with MPC algorithms,

  • Guilherme Fernandes, Tobias Koch, Tobias Lademann, Saahil Nayyer, Magdalena Patyna, Jerome Stock,

  • and all others who made small and large contributions.

Contributions

If you would like to contribute, please create an issue in the repository to discuss you suggestions. Once the general idea has been agreed upon, you can create a merge request from the issue and implement your changes there.

BSD 2-Clause License

Copyright (c) 2022, Technical University of Darmstadt, Institute for Production Management, Technology and Machine Tools (PTW). All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

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_utility-2.2.3b3.tar.gz (15.7 MB view details)

Uploaded Source

Built Distribution

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

eta_utility-2.2.3b3-py3-none-any.whl (169.0 kB view details)

Uploaded Python 3

File details

Details for the file eta_utility-2.2.3b3.tar.gz.

File metadata

  • Download URL: eta_utility-2.2.3b3.tar.gz
  • Upload date:
  • Size: 15.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for eta_utility-2.2.3b3.tar.gz
Algorithm Hash digest
SHA256 ffbf314b48b78c8b8b45cb3e47cc7360c29d3ef7d3179c7c2d5907f46497a892
MD5 bf7e3f58a671ee147f53445b6a6387fd
BLAKE2b-256 7d34d53c1f65001c25efde934b67c5c8003dafb9bf5f700f529fa60bd37db9ac

See more details on using hashes here.

File details

Details for the file eta_utility-2.2.3b3-py3-none-any.whl.

File metadata

  • Download URL: eta_utility-2.2.3b3-py3-none-any.whl
  • Upload date:
  • Size: 169.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for eta_utility-2.2.3b3-py3-none-any.whl
Algorithm Hash digest
SHA256 9c933cc0da77f3dbb7455e49724c1480f23f1fcff3c2f50999e0b83741a85ca8
MD5 37d8a28dfe167f103f3db7b0fe220b39
BLAKE2b-256 8c6c4dc53d758c637026aaf8a400f9a3e86c732b375128dc1296420a04014739

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