Skip to main content

M3SA

M3SA is setup using a json file. The Multi-Model is a top-layer applied on top of the simulator, capable to leverage into a singular tool the prediction of multiple models. The Meta-Model is a model generated from the Multi-Model, and predicts using the predictions of individual models.

The Multi-Model's properties can be set using a JSON file. The JSON file must be linked to the scenario file and is required to follow the structure below.

Schema​

The schema for the scenario file is provided in schema In the following section, we describe the different components of the schema.

General Structure​

VariableTypeRequired?DefaultPossible AnswersDescription
multimodelbooleannotruetrue, falseWhether or not to build a Multi-Model. If set to false, a Meta-Model will not be computed either.
metamodelbooleannotruetrue, falseWhether to build a Meta-Model.
metricstringyesN/AN/AWhat metric to be analyzed from the computed files.
current_unitstringno""any string (e.g., "CO2", "Wh")The international system unit of the metric to be analyzed, without prefixes. e.g., "W" for Watt is ok, "kW" is not.
unit_scaling_magnitudeintegerno10-9, -6, -3, 1, 3, 6, 9The scaling factor to be applied to the metric (10^-9, 10^-6, 10^3, 10^3, 10^6, 10^9). For no scaling, input 1.
window_sizeintegerno1any positive, non-zero, integerThe size of the window, used for aggregating the chunks.
window_functionstringno"mean""mean", "median"The function used by the window for aggregating the chunks (e.g., for "mean", the window will compute the mean of the samples).
meta_functionstringno"mean""mean", "median"The function used by the Meta-Model to be generated. For "mean", the Meta-Model takes the mean of the individual models, at the granularity established by the window-size.
samples_per_minutedoublenoN/Aany positive, non-zero, doubleThe number of samples per minute, in the prediction data (simulator export rate). e.g., "0.2" means 1 sample every 5 minutes, "20" means a 20 samples per minute, or 1 sample every 3 seconds.
seedintegerno0any integer >= 0The seed of the simulation. This must correspond to the seed from the output folder (from seed=x).
plot_typestringno"time_series""time_series", "cumulative", "cumulative_time_series"The type of the plot, generated by the Multi-Model and Meta-Model.
plot_titlestringno""any stringThe title of the plot.
x_ticks_countintegernoNoneany integer, larger than 0The number of ticks on x-axis.
y_ticks_countintegernoNoneany integer, larger than 0The number of ticks on y-axis.
x_labelstringno"Time"any stringThe label for the x-axis of the plot.
y_labelstringno"Metric Unit"any stringThe label for the y-axis of the plot.
y_mindoublenoNoneany positive, non-zero, doubleThe minimum value for the vertical axis of the plot.
y_maxdoublenoNoneany positive, non-zero, doubleThe maximum value for the vertical axis of the plot.
x_mindoublenoNoneany positive, non-zero, doubleThe minimum value for the horizontal axis of the plot.
x_maxdoublenoNoneany positive, non-zero, doubleThe maximum value for the horizontal axis of the plot.

Examples​

In the following section, we discuss several examples of M3SA setup files. Any setup file can be verified using the JSON schema defined in schema.

Simple​

The simplest M3SA setup that can be provided to OpenDC is shown below:

{
"metric": "power_draw"
}

This configuration creates a Multi-Model and Meta-Model on the power_draw. All the other parameters are handled by the default values, towards reducing the complexity of the setup.

Complex​

A more complex M3SA setup, where the user has more control on teh generated output, is show below:

{
"multimodel": true,
"metamodel": false,
"metric": "carbon_emission",
"window_size": 10,
"window_function": "median",
"metamodel_function": "mean",
"samples_per_minute": 0.2,
"unit_scaling_magnitude": 1000,
"current_unit": "gCO2",
"seed": 0,
"plot_type": "cumulative_time_series",
"plot_title": "Carbon Emission Prediction",
"x_label": "Time [days]",
"y_label": "Carbon Emission [gCO2/kWh]",
"x_min": 0,
"x_max": 200,
"y_min": 500,
"y_max": 1000,
"x_ticks_count": 3,
"y_ticks_count": 3
}

This configuration creates a Multi-Model and a Meta-Model which predicts the carbon_emission. The window size is 10, and the aggregation function (for the window) is median. The Meta-Model function is mean. The data has been exported at a rate of 0.2 samples per minute (i.e., a sample every 5 minutes). The plot type is cummulative_time_series, which starts from a y-axis value of 500 and goes up to 1000. Therefore, the Multi-Model and the Meta-Model will show only the values greater than y_min (500) and smaller than y_max (1000). Also, the x-axis will start from 0 and go up to 200, with 3 ticks on the x-axis and 3 ticks on the y-axis.