mosaik ecosystem
Mosaik as a co-simulation tool organizes the data exchange between simulators and coordinates the execution of the connected simulaters. This part is called mosaik-core and contains mosaik itself and APIs for multiple programming languages.
Mosaik-core without any connected simulators doesn’t do much. This is why we provide some simple and free simulators so that it is possible to start with a working Smart-Grid simulation. These simulators belong to a part of mosaik’s ecosystem called mosaik-components. More detailed documentation for some components can be found in the component documentation.
To see how these components can be coupled to simulations, also some example scenarios are provided in mosaik-examples.
Mosaik is developed following the “lean and mean” principle. That means that we try to keep the software as simple as possible in order to keep it efficient and easy to maintain. In order to make it easier to set up and run experiments with mosaik we provide some tools that help building scenarios, connecting simulators or to visualize and analyze the simulation results. These tools are located in the mosaik-tools.
For testing simulators or scenarios, mosaik provides some basic simulators, which allow to specify specific data to be sent.
There are also some implementations done by external users of mosaik. We give an overview of the external components and external scenarios we know.
mosaik-core
The root folder contains mosaik itself and the high-level API implementations are provided in the API folder.
mosaik-components
This lists the mosaik components that are available on pypi. There are always component in work that are not released yet but are in working condition so if you don’t find what you are searching for here take a look in the repository.
energy related components:
mosaik-pandapower is an adapter for the pandapower power system modeling, analysis and optimization tool. Not maintained anymore, please install the mosaik-pandapower2 adapter.
mosaik-pandapipes is an adapter for the pandapipes fluid system modeling, analysis and optimization tool.
mosaik-pypower is an adapter for the PYPOWER load flow analysis library. Not maintained anymore, please install the mosaik-pandapower2 adapter.
mosaik-heatpump contains different models for simulation of heatpump systems (detailled documentation can be found here).
mosaik-pv is a simple PV Simulator based on PyPVSim.
mosaik-pvlib is a simple PV Simulator based on pvlib.
mosaik-pvgis is a simple PV Simulator based on PVGIS.
mosaik-householdsim is a househol simulator that simulate households by serving residual load profiles.
data related components:
mosaik-web is a web visualization for mosaik simulations.
mosaik-csv is a simple demo simulators that you can use to integrate CSV data sets into simulation. It can also write data into CSV data sets.
mosaik-hdf5 allows to write simulation results to a HDF5 file for further analysis.
InfluxDB adapter to store simulation results into InfluxDB 1 time series database.
InfluxDB 2 adapter to store simulation results into InfluxDB 2 time series database.
mosaik-sql adapter to store simulation results into SQL database.
mosaik-timescaledb adapter to store simulation results into a postgres or timescale database.
ZeroMQ adapter to connect components with the messaging library ZeroMQ.
Odysseus-adapter to write results to the data stream management system Odysseus to mosaik.
communication related components:
communication simulator is a basic communication suite using delays.
mosaik-104 contains an adapter to receive IEC 60870-5-104 protocol messages and hands it over to mosaik.
FMI adapter allows to couple Functional Mockup Units (FMU), which are based on the FMI standard.
component documentation
The components listed above and provided by the mosaik team, have usually a documentation directly in their repository. For components which need a more detailled documentation to describe how they work, the documentation is integrated here:
mosaik-examples
The mosaik-demo contains a simple demo scenario for mosaik.
The DES demo is a simple example scenario showing the new mosaik 3.0 DES features
COmmunication SIMulation for Agents (cosima) is an example scenario with integrated communication simulation based on OMNeT++.
The aiomas demo is an example project, demonstrating how to couple a multi-agent system written in aiomas to mosaik.
The mango demo is an example project, demonstrating how to couple a multi-agent system written in mango to mosaik.
The binder tutorials contains python notebooks with example scenraios that can be executed on mybinder.
mosaik-tools
maverig mosaik GUI is a visualization component, which is not maintained anymore.
basic simulators
In order to test custom-made simulators, two basic simulators are provided to use and connect to.
The
InputSimulator
is a simulator that can be used to feed either a constant value or the value of a function into a designated simulator ready to handle the data.The
OutputSimulator
writes data from a custom simulator into a python dictionary. Users can access this dictionary by callingget_dict
on a created output simulator entity.
Below is an example code snippet that connects the input simulator with the output simulator and executes ten time steps. After the simulation is done, the dictionary including the values received by the input simulator is printed.
# The output simulator is initialized.
output_dict = world.start("OutputSim")
# Two entities of the output simulator model are created.
output_model = output_dict.Dict.create(2)
# The input simulator is initialized.
input = world.start("InputSim", step_size=1)
# One function input simulator entity is created.
input_model_func = input.Function.create(1, function=sample_function)
# One constant input simulator entity is created.
input_model_const = input.Constant.create(1, constant=2)
# The input entities are connected to separate output entities
world.connect(input_model_func[0], output_model[1], "value")
world.connect(input_model_const[0], output_model[0], "value")
# Run simulation.
world.run(until=END)
# Dictionary content is printed.
pprint(output_dict.get_dict(output_model[0].eid))
pprint(output_dict.get_dict(output_model[1].eid))
external components
These components are developed by external users of mosaik and we can not guarantee or support the flawless integration of these tools with mosaik. If you also have implemented additional tools for mosaik, simulation models or adapters, feel free to contact us at mosaik [ A T ] offis.de to be listed here.
pysimmods contains some simulation models, which can be used in mosaik scenarios.
MIDAS contains a semi-automatic scenario configuration tool.
mosaik-docker is a package for the deployment of mosaik with Docker.
ZDIN-ZLE components contains the research and development of digitalized energy systems in ZLE using mosaik (collection of simulation models).
nestli (Neighborhood Energy System Testing towards Large-scale Integration) is a co-simulation environment for benchmarking the performance of BACS (building automation and control systems). Is uses EnergyPlus and FMUs with mosaik.
toolbox_doe_sa is a toolbox with Design of Experiment (DoE) and Sensitivity Analysis (SA) methods developed in the ERIGrid 2.0 project.
mosaik-demod is a domestic energy demand modeling simulator.
palestrai-mosaik is an adapter to integrate palaestrAI (an universal framework for multi-agent artificial intelligence) into mosaik.
QEMS - Quarter Energy Management System contains simulation components, which are used to simulate an energy management system for neighborhoods for analyzing and optimizing energy flows.
external scenarios
These scenarios are developed by external users of mosaik and we can not guarantee or support the flawless practicability.
Benchmark Model Multi-Energy Networks contains the implementation of a multi-energy networks (heat and electricity grid) benchmark model developed in the ERIGrid 2.0 project.
Benchmark Model Multi-Energy Networks STL is based on the multi-energy networks benchmark and contains a same time loop for improved initialization of the simulators.
ZDIN-ZLE scenarios contains the research and development of digitalized energy systems in ZLE using mosaik (collection of simulation scenarios).
QEMS - Quarter Energy Management System Scenarios contains scenarios of an energy management system for neighborhoods for analyzing and optimizing energy flows.