FAQ & Glossary

Glossary

Model

Representation of real processes (assuming simplifications), using the general procedure of “Input - internal calculation - output”.

Orchestrator

Coordination of the whole simulation procedure and coupling of the models (mosaik).

Simulator

API/interface for communication between the orchestrator mosaik and the entities of the specific model.

Entity

Created instance of a model type. In “ename”, “etype”, “eid” etc. the “e” stands for entity.

PSC

We use the passive sign convention (german: Verbraucherzaehlpfeilsystem), therefore loads are positive while generation is negative.

Forecast

Prediction of a behaviour for a defined time horizon in the future, e.g. power values for the upcoming 24h steps for a household base load from a csv reader.

Schedule

Calculated set values for a defined time horizon in the future, e.g. target power values for the upcoming 24h steps for a battery storage system.

time-based

Used for time-discrete simulation of models, e.g. if just some data is collected to be transmitted to other models.

event-based/hybrid

Used for triggered simulation of models, e.g. if model calculation can be triggered by inputs like the receiving of a power set value.

weak and strong connections for mosaik simulations

As you may be tasked with adding a new model or directly adding new connections between existing models, you may come across connections between models in multiple directions - either directly or within a circle of multiple models. When that happens, you have to add the order of the connections (into model_connections/connect_directions_config.json) for mosaik to know the order in which the models have to be called. Weak connections are first replaced by None-values such that their recieving model is first called and afterwards the strong connection is taken.

Parameters used in test scenarios

START

simulation starting time (e.g. 2023-01-01 00:00:00)

END

simulation ending time (e.g. 2023-01-02 00:00:00 for a full day calculation)

N_STEPS

number of steps that should be simulated, calculated from start and end time (e.g. 96 steps for a day with 15 min time steps)

STEP_SIZE_IN_SECONDS

length of one (pre-defined) time step in seconds (e.g. 15 min steps: 15*60 sec = 900 sec)

USE_FORECAST

True-False value whether to consider forecasts in the simulation or not

FAQ

What is the process of building Model-Factories?

examplesim = world.start("ExampleSim", eidprefix="Model")

The resulting examplesim is an entity of the class mosaik.scenario.ModelFactory. It can create and store the entities of an example model.

What can one do in case of an ImportError when running the example scenarios?

pip install -e .

What about an error like Could not import module: No module named 'XXX' --> No module named 'XXX'

when running the example scenarios (after merging main into your branch)?

Maybe some new package was added to the requirements, try to install them again by pip install -r requirements.txt and see wether any packages were newly installed.

What attributes does a model have?

For that you should have a look at the META of the simulator or optionally within the model class itself.

e.g. EMS_simulator.py (01/24)
13# SIMULATION META DATA
14META = {
15    "type": "hybrid",
16    "models": {
17        "HEMS": {
18            "public": True,
19            "params": ["init_vals"],
20            "attrs": [
21                "q",
22                "p",
23                "p_max",
24                "p_min",
25...
What inputs does a model have?

Have a look at the VALID_PARAMETERS stored in each model class:

e.g. EMS_model.py (01/24)
20# Valid values and types for each parameter that apply for all subclasses
21_VALID_PARAMETERS = {
22    "cs_strategy": {
23        "types": [str],
24        "values": ["max_p", "balanced", "night_charging", "solar_charging"],
25    },
26    "bss_strategy": {
27        "types": [None, str],
28        "values": [None, "reduce_curtailment"],
29    },
30}

Exemplarily the model_data of the test scenarios set (at least some of) these parameters and their initial values for the models:

e.g. model_data_building.json (01/24)
1{
2    "ems": [
3        {
4            "cs_strategy": "balanced"
5        }
6    ],
What connections does a model have?

For that the eELib provides the model_connections/model_connect_config.json file, where all of the FROM-TO-CONNECTIONS are given for each model type implemented in the eELib:

e.g. model_connect_config.json (01/24)
10"HEMS_default": {
11    "PVLib": [["p_set_pv", "p_set"]],
12    "BSS": [
13        [
14            "p_set_storage",
15            "p_set"
16        ]
17    ],
18    "ChargingStation": [
19        [
20            "p_set_charging_station",
21            "p_set"
22        ]
23    ],
24    "Heatpump": [
25        [
26            "p_th_set_heatpump",
27            "p_th_set"
28        ]
29    ],
30    "grid_load": [["p_balance", "p_w"], ["q_balance", "q_var"]]
31},
e.g. model_connect_config.json (01/24)
111"BSS": {
112    "HEMS_default": [
113        [
114            "p_discharge_max",
115            "p_min"
116        ],
117        [
118            "p_charge_max",
119            "p_max"
120        ],
121        [
122            "p",
123            "p"
124        ]
125    ],
126},

Extracted from these two examples above can be the sending of values for attributes p, p_min and p_max from BSS to HEMS and the return of a value for p_set.

Units

Make use of the SI-units!!

  • Power: W

  • Time (e.g. simulation time): s

  • Energy: Wh