Metadata-Version: 2.1
Name: agentlib_mpc
Version: 0.6.1
Summary: Framework for development and execution of agents for control and simulation of energy systems.
Author-email: Associates of the AGENT project <AGENT.Projekt@eonerc.rwth-aachen.de>
License: BSD-3-Clause
Keywords: agents,mpc,control,distributed
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy<2.0,>=1.17.4
Requires-Dist: pandas>=1.1.0
Requires-Dist: scipy>=1.5.2
Requires-Dist: simpy>=4.0.1
Requires-Dist: pydantic>=2.0.0
Requires-Dist: casadi>=3.6.6
Requires-Dist: matplotlib>=3.5.1
Requires-Dist: matplotlib
Requires-Dist: attrs>=22.2.0
Requires-Dist: agentlib>=0.6.0
Requires-Dist: orjson>=3.9.5
Requires-Dist: rapidfuzz>=1.7.0
Requires-Dist: agentlib>=0.8.0
Provides-Extra: fmu
Requires-Dist: FMPy>=0.3.6; extra == "fmu"
Provides-Extra: ml
Requires-Dist: keras>=2.6.0; extra == "ml"
Requires-Dist: tensorflow>=2.6.0; extra == "ml"
Requires-Dist: scikit-learn; extra == "ml"
Provides-Extra: interactive
Requires-Dist: plotly>=5.20.0; extra == "interactive"
Requires-Dist: dash>=2.16.1; extra == "interactive"
Provides-Extra: full
Requires-Dist: agentlib_mpc[fmu,interactive,ml]; extra == "full"
Requires-Dist: agentlib[full]; extra == "full"

# agentlib_mpc
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![pylint](https://rwth-ebc.github.io/AgentLib-MPC/main/pylint/pylint.svg)](https://rwth-ebc.github.io/AgentLib-MPC/main/pylint/pylint.html)
[![documentation](https://rwth-ebc.github.io/AgentLib-MPC/main/docs/doc.svg)](https://rwth-ebc.github.io/AgentLib-MPC/main/docs/index.html)

This is a plugin for [AgentLib](https://github.com/RWTH-EBC/AgentLib). 
Includes functions for modeling with [CasADi](https://web.casadi.org/), and using those models in nonlinear MPC, central and distributed (based on ADMM).

See examples and the tutorial in the docs.
Best example to start is an MPC for [a single air conditioned room](https://github.com/RWTH-EBC/AgentLib-MPC/blob/main/examples/one_room_mpc/physical/simple_mpc.py).


## Installation

Install with:

```
pip install agentlib_mpc
```

To install with full dependencies (recommended), run:
```
pip install agentlib_mpc[full]
```



## Optional Dependencies
AgentLib_MPC has a number of optional dependencies:
 
 - **fmu**: Support simulation of FMU models (https://fmi-standard.org/).
 - **ml**: Use machine learning based NARX models for MPC. Currently supports neural networks, gaussian process regression and linear regression. Installs tensorflow, keras and scikit-learn.
 - **interactive**: Utility functions for displaying mpc results in an interactive dashboard. Installs plotly and dash.

Install these like 
````
pip install agentlib_mpc[ml]
````


## Citing AgentLib_MPC

For now, please cite the base framework under https://github.com/RWTH-EBC/AgentLib.

A preprint is available under http://dx.doi.org/10.2139/ssrn.4884846 and can be cited as: 

> Eser, Steffen and Storek, Thomas and Wüllhorst, Fabian and Dähling, Stefan and Gall, Jan and Stoffel, Phillip and Müller, Dirk, A Modular Python Framework for Rapid Development of Advanced Control Algorithms for Energy Systems. Available at SSRN: https://ssrn.com/abstract=4884846 or http://dx.doi.org/10.2139/ssrn.4884846 

When using AgentLib-MPC, please remember to cite other tools that you are using, for example CasADi or IPOPT.

## Acknowledgments

We gratefully acknowledge the financial support by Federal Ministry \\ for Economic Affairs and Climate Action (BMWK), promotional reference 03ET1495A.

<img src="./docs/source/images/BMWK_logo.png" alt="BMWK" width="200"/>
