FMI Simulation concepts
danger
The FMI simulation service is currently being tested.
Simulation schema
The schema is used to create simulation blueprints to store and create several simulation instances.
The schema can be create for a single FMU or several FMUs. The schema for a single FMU is:
{
"id":"schema1",
"name":"Schema 1",
"description":"Sample schema",
"relatedTwins":[
"Twin1"
],
"fmus":[
{
"id": "Controller",
"inputs": [
{"id": "u_s"},
{"id": "u_m"}
],
"outputs": [
{"id": "y"}
]
}
]
}
Schema for several FMUs
The following schema is designed to be used with multiple FMUs:
{
"id":"schema1",
"name":"Schema 1",
"description":"Sample schema",
"relatedTwins":[
"Twin1"
],
"fmus":[
{
"id": "Controller",
"inputs": [
{"id": "u_s"},
{"id": "u_m"}
],
"outputs": [
{"id": "y"}
]
},
{
"id": "Drivetrain",
"inputs": [
{"id": "tau"}
],
"outputs": [
{"id": "w"}
]
}
],
"schema":[
{
"from": {"var": "w_ref"},
"to": {"id": "controller", "var": "u_s"}
},
{
"from": {"id": "drivetrain", "var": "w"},
"to": {"id": "controller", "var": "u_m"}
},
{
"from": {"id": "controller", "var": "y"},
"to": {"id": "drivetrain", "var": "tau"}
},
{
"from": {"id": "drivetrain", "var": "w"},
"to": {"var": "w"}
}
]
}
This will work properly, although hovering overApparentGreetProps
may be a little intimidating. You can reduce this boilerplate with theComponentProps
utility detailed below.
Simulation running schema
Once you have a schema stored in the system, you can create a simulation instance using that schema:
{
"id":"Simulation1",
"name":"Simulation1",
"schemaId": "schema1",
"targetConnection":{
"BROKER_TYPE" : "mqtt",
"BROKER_IP" : "",
"BROKER_PORT" : "",
"BROKER_TOPIC" : "",
"BROKER_USERNAME" : "",
"BROKER_PASSWORD" : ""
},
"configuration":{
"SIMULATION_START_TIME":1,
"SIMULATION_END_TIME":7,
"SIMULATION_STEP_SIZE":1,
"SIMULATION_DELAY_WARNING": 1,
"SIMULATION_LAST_VALUE": true,
"SIMULATION_TYPESCHEDULE": "one-time"
},
"inputs":[],
"outputs": []
}
This schema is not different for one or several FMUs execution. It only contains information about execution.