Skip to content

Latest commit

 

History

History
209 lines (170 loc) · 7.57 KB

3___profiles.adoc

File metadata and controls

209 lines (170 loc) · 7.57 KB

Feature Profiles

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.

Basic CS Profile

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

Sensor Profile

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

Basic HiL & Sensor HiL Profile

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)

SIL ECU Profile

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)

Dynamics Profile

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

Dynamics Controller Profile

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

Optimization Profile

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

Feature Overview

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.