The initial set of use-case-based feature profiles includes a set of five feature profiles, which can be seen in the overview in table Feature Overview. They are described in detail in the following sections.
This is a basic profile for Co-Simulation, intended mainly for desktop simulation uses, which have no additional specific requirements and can perform well with fixed communication step sizes.
- Required Features
-
-
Tunable Parameters
-
Fixed-size Input/Output Arrays
-
Resizable Input/Output Arrays
-
Fixed-size Parameter Arrays
-
Resizable Parameter Arrays
-
Binary FMUs for Desktop Platforms
-
- Recommended Features
-
-
Source Code FMUs
-
This is a basic sensor simulation profile, supporting complex input and output using, for example, OSI-encoded sensor data via binary variables and dynamic timing. Also suitable for non-sensor simulations with those characteristics.
- Required Features
-
-
Tunable Parameters
-
Binary Data Type Input/Output
-
Binary Data Type Parameters
-
Variable Co-Simulation Communication Step Size
-
Binary FMUs for Desktop Platforms
-
- Recommended Features
-
-
Source Code FMUs
-
This is a basic profile supporting HiL use, including mechatronics and sensor simulation usage. This profile assumes fixed cycle times, where dynamic internal cycle times are managed inside the FMUs.
- Required Features
-
-
Tunable Parameters
-
Binary Data Type Input/Output
-
Binary Data Type Parameters
-
New Integer Types
-
Fixed-size Input/Output Arrays
-
Fixed-size Parameter Arrays
-
Scheduled Execution Interface
-
Source Code FMUs
-
Binary FMUs for Desktop Platforms
-
Binary FMUs for non-Desktop Platforms (e.g. HiL)
-
This is a profile supporting advanced SiL simulation of ECU and other clocked models, allowing for more efficient integration of multi-ECU networks.
- Required Features
-
-
Tunable Parameters
-
Store/Restore FMU State
-
Binary Data Type Input/Output
-
Binary Data Type Parameters
-
New Integer Types
-
Fixed-size Input/Output Arrays
-
Resizable Input/Output Arrays
-
Fixed-size Parameter Arrays
-
Resizable Parameter Arrays
-
Variable Co-Simulation Communication Step Size
-
Co-Simulation with Clock Information
-
Scheduled Execution Interface
-
Source Code FMUs
-
Binary FMUs for Desktop Platforms
-
Binary FMUs for non-Desktop Platforms (e.g. HiL)
-
This is a profile for high dynamics mechatronic simulation, including variable cycle times, model exchange for allowing efficient handling of tightly coupled sub-systems, and the use of advanced co-simulation and model-exchange approaches.
- Required Features
-
-
Tunable Parameters
-
Store/Restore FMU State
-
Serialize/Deserialize FMU State
-
String Inputs/Outputs
-
Binary Data Type Input/Output
-
New Integer Types
-
Fixed-size Input/Output Arrays
-
Resizable Input/Output Arrays
-
Resizable Input/Output Arrays with Size-Dependencies
-
Fixed-size Parameter Arrays
-
Resizable Parameter Arrays
-
Resizable Parameter Arrays with Size-Dependencies
-
Variable Co-Simulation Communication Step Size
-
State and Output Dependencies
-
Output Derivatives in Co-Simulation
-
Restartable Early Return in Hybrid Co-Simulation
-
Intermediate Output Values in Co-Simulation
-
Co-Simulation with Clock Information
-
Binary FMUs for Desktop Platforms
-
- Recommended Features
-
-
Directional Derivatives
-
This is a profile for high dynamics mechatronic simulation that includes discrete controller implementations. This profile extends the dynamics profile to include model exchange with clocks to allow for efficient handling of tightly coupled sub-systems with reliable support for coupling discrete controller time partitions across FMUs.
- Required Features
-
-
Tunable Parameters
-
Store/Restore FMU State
-
Serialize/Deserialize FMU State
-
String Inputs/Outputs
-
Binary Data Type Input/Output
-
New Integer Types
-
Fixed-size Input/Output Arrays
-
Resizable Input/Output Arrays
-
Resizable Input/Output Arrays with Size-Dependencies
-
Fixed-size Parameter Arrays
-
Resizable Parameter Arrays
-
Resizable Parameter Arrays with Size-Dependencies
-
Variable Co-Simulation Communication Step Size
-
State and Output Dependencies
-
Output Derivatives in Co-Simulation
-
Restartable Early Return in Hybrid Co-Simulation
-
Intermediate Output Values in Co-Simulation
-
Co-Simulation with Clock Information
-
Clocked Model-Exchange
-
Binary FMUs for Desktop Platforms
-
- Recommended Features
-
-
Directional Derivatives
-
This is a profile that caters to different but overlapping optimization use cases: - Model-predictive control (with the model as an FMU) - Parameter identification of a model via optimization - Training of ML models (e.g. neural networks) (need for adjoint derivatives, for Backpropagation)
- Required Features
-
-
Tunable Parameters
-
Store/Restore FMU State
-
Serialize/Deserialize FMU State
-
New Integer Types
-
Fixed-size Input/Output Arrays
-
Fixed-size Parameter Arrays
-
Resizable Parameter Arrays
-
Variable Co-Simulation Communication Step Size
-
State and Output Dependencies
-
Output Derivatives in Co-Simulation
-
Directional Derivatives
-
Adjoint Derivatives
-
Intermediate Output Values in Co-Simulation
-
Binary FMUs for Desktop Platforms
-
In the table below, the placement of an X
indicates a required feature, and a *
indicates a recommended feature.
Area | Feature | FMI Version | Basic CS Profile | Sensor Profile | Basic HiL & Sensor HiL Profile | SIL ECU Profile | Dynamics Profile | Dynamics Controller Profile | Optimization Profile |
---|---|---|---|---|---|---|---|---|---|
Parameter Handling |
|||||||||
Tunable Parameters |
2.0 |
X |
X |
X |
X |
X |
X |
X |
|
State Handling |
|||||||||
Store/Restore FMU State |
2.0 |
X |
X |
X |
X |
||||
Serialize/Deserialize FMU State |
2.0 |
X |
X |
X |
|||||
Data Types |
|||||||||
String Inputs/Outputs |
2.0 |
X |
X |
||||||
Binary Data Type Input/Output |
3.0 |
X |
X |
X |
X |
X |
|||
Binary Data Type Parameters |
3.0 |
X |
X |
X |
|||||
New Integer Types |
3.0 |
X |
X |
X |
X |
X |
|||
Array Input/Output Handling |
|||||||||
Fixed-size Arrays |
3.0 |
X |
X |
X |
X |
X |
X |
||
Dynamically resizable Arrays |
3.0 |
X |
X |
X |
X |
||||
Resizable Arrays with Size-Dependencies |
3.0 |
X |
X |
||||||
Array Parameter Handling |
|||||||||
Fixed-size Arrays |
3.0 |
X |
X |
X |
X |
X |
X |
||
Dynamically resizable Arrays |
3.0 |
X |
X |
X |
X |
X |
|||
Resizable Arrays with Size-Dependencies |
3.0 |
X |
X |
||||||
Calculation Model |
|||||||||
Variable Co-Simulation Communication Step Size |
1.0 |
X |
X |
X |
X |
X |
|||
State and Output Dependencies |
2.0 |
X |
X |
X |
|||||
Output Derivatives in Co-Simulation |
2.0 |
X |
X |
X |
|||||
Directional Derivatives |
2.0 |
* |
* |
X |
|||||
Adjoint Derivatives |
3.0 |
X |
|||||||
Restartable Early Return in Hybrid Co-Simulation |
3.0 |
X |
X |
||||||
Intermediate Output Values in Co-Simulation |
3.0 |
X |
X |
X |
|||||
Co-Simulation with Clock Information |
3.0 |
X |
X |
X |
|||||
Scheduled Execution Interface |
3.0 |
X |
X |
||||||
Clocked Model-Exchange |
3.0 |
X |
|||||||
Execution Targets |
|||||||||
Source Code FMUs |
1.0 |
* |
* |
X |
X |
||||
Binary FMUs for Desktop Platforms |
1.0 |
X |
X |
X |
X |
X |
X |
X |
|
Binary FMUs for non-Desktop Platforms (e.g. HiL) |
1.0 |
X |
X |
The support for source code FMUs is not strictly necessary for the Basic CS and Sensor profiles but is highly recommended to support the portability of FMUs to new platforms.
More generally, support for source code FMUs and binary FMUs for desktop and non-desktop platforms is recommended wherever feasible to aid portability and interoperability.