Compact simulation framework. Simulate a controller against a model.
Just implement a Controller that given a State and some Parameters, outputs its ControllerOutput.
The Simulation will put that and the current State and some other Parameters into your Model which outputs a new State.
Easy peasy.
In the end you get a History of all the States that were realized, all calculated and applied ControllerOutputs
as well as all Parameters values used as pickled or CSV'd dataframes.
Take a look at the docs to find out how it actually works (see below).
As the simulation framework is supposed to be compact, it has only very basic requirements.
These can be found in detail in the pyproject.toml.
- python >= 3.11
- numpy >= 1.26
- pandas >= 2.1
- scipy >= 1.11
The easiest way of using this package for development is to use uv.
To generate the documentation, make sure to install the dev dependency group and then run
uv run sphinx-build docs/source docs/buildto generate a HTML documentation in docs/build/.