From 8e146a335fe03fba0256fd669b363a725e2c08e4 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 09:38:15 +0100 Subject: [PATCH 01/19] basic CS features --- fmi-profiles/3___profiles.adoc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 8a9fc69..8285b12 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -6,18 +6,17 @@ 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. +This is a basic profile for Co-Simulation, that should be supported on any target - especially for desktop simulation usage. There are no additional specific requirements typically fixed communication step sizes are used. 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:: + - Tunable Parameters - Source Code FMUs + - Resizable Parameter Arrays === Sensor Profile From 81f678fba58da0c759dff44869b9f95869c82dd0 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 09:40:05 +0100 Subject: [PATCH 02/19] small refinement of text --- fmi-profiles/3___profiles.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 8285b12..bc1b7dd 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -6,7 +6,7 @@ They are described in detail in the following sections. === Basic CS Profile -This is a basic profile for Co-Simulation, that should be supported on any target - especially for desktop simulation usage. There are no additional specific requirements typically fixed communication step sizes are used. +This is a basic profile for Co-Simulation, that should be supported on any binary target - especially for desktop simulation usage. There are no additional specific advanced Co-simulation specific requirements and typically fixed communication step sizes are used. Required Features:: - Fixed-size Input/Output Arrays From 62f4dee1721639cdff759756fc26789541a08a8b Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 09:53:24 +0100 Subject: [PATCH 03/19] apply changes to dynmics profile as discussed as discussed in tickt #46 --- fmi-profiles/3___profiles.adoc | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index bc1b7dd..8daf7bf 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -79,29 +79,29 @@ Required Features:: 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. +This is a profile for high dynamics mechatronic simulation, including variable cycle times, model exchange for allowing efficient handling of tightly coupled sub-systems + Required Features:: - Tunable Parameters - - Store/Restore FMU State - - Serialize/Deserialize FMU State - - String Inputs/Outputs - - Binary Data Type Input/Output + - Directional Derivatives (*ME only*) - 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 +CS specific recommended:: + - Binary Data Type Input/Output + - Fixed-size Input/Output Arrays + - Resizable Parameter Arrays + - Resizable Parameter Arrays with Size-Dependencies + - Variable Co-Simulation Communication Step Size (*CS only*) + - Restartable Early Return in Hybrid Co-Simulation (*CS only*) + - Output Derivatives in Co-Simulation (*CS only*) + - Intermediate Input Values in Co-Simulation (*CS only*) + - Directional Derivatives (*CS only*) + - Store/Restore FMU State (*CS only*) === Dynamics Controller Profile From b7eb381f03922a607fe50eecc1b4a019735a2bf8 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 09:54:53 +0100 Subject: [PATCH 04/19] apply changes to dynmics profile as discussed as discussed in tickt #46 --- fmi-profiles/3___profiles.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 8daf7bf..e7441a4 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -79,8 +79,6 @@ Required Features:: 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. -This is a profile for high dynamics mechatronic simulation, including variable cycle times, model exchange for allowing efficient handling of tightly coupled sub-systems - Required Features:: - Tunable Parameters - Directional Derivatives (*ME only*) From f2993916c06de974ff551e0d6c70a1fdf4d60833 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:04:52 +0100 Subject: [PATCH 05/19] change sil to xil profile, add draft ecu profile --- fmi-profiles/3___profiles.adoc | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index e7441a4..ecdbac0 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -53,27 +53,37 @@ Required Features:: - Binary FMUs for non-Desktop Platforms (e.g. HiL) -=== SIL ECU Profile +=== XiL Profile -This is a profile supporting advanced SiL simulation of ECU and other clocked models, allowing for more efficient integration of multi-ECU networks. +This is a profile supporting advanced Software-/Hardware-/X-in-the-Loop simulation, 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 + - Co-Simulation with Clock Information (*CS only*) + + +Recommended Features:: + - Source Code FMUs - Binary FMUs for non-Desktop Platforms (e.g. HiL) + - Variable Co-Simulation Communication Step Size (*CS only*) + - Store/Restore FMU State(*CS only*) + - Scheduled Execution Interface (*SE only*) + + +=== ECU Profile (tbd) + +Reuqired Features:: +- support of certain layerd standards (LS-BUS) +Recommended Features:: +- support of certain layerd standards (LS-XCP) === Dynamics Profile From 3d7f807a0f332cbafc4e06acf27d9eb356e15be3 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:05:39 +0100 Subject: [PATCH 06/19] change sil to xil profile, add draft ecu profile --- fmi-profiles/3___profiles.adoc | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index ecdbac0..9c03bb8 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -35,24 +35,6 @@ 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) - - === XiL Profile This is a profile supporting advanced Software-/Hardware-/X-in-the-Loop simulation, allowing for more efficient integration of multi-ECU networks. From bad3aaa6adfe4560560710d3f36a31f8eadb2e48 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:07:20 +0100 Subject: [PATCH 07/19] require all xil features for ECU --- fmi-profiles/3___profiles.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 9c03bb8..edc2f9b 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -61,7 +61,9 @@ Recommended Features:: === ECU Profile (tbd) -Reuqired Features:: +(all required and recommended feautures form XiL Profile) + +Required Features:: - support of certain layerd standards (LS-BUS) Recommended Features:: From 24681d20f12957dcb0d93302e46e14172f2f686d Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:16:18 +0100 Subject: [PATCH 08/19] concentrate on FMI 3.0 --- fmi-profiles/0___preamble.adoc | 6 +-- fmi-profiles/1___introduction.adoc | 4 +- fmi-profiles/2___features.adoc | 60 +++++++++++++++--------------- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/fmi-profiles/0___preamble.adoc b/fmi-profiles/0___preamble.adoc index cc5a3bd..3e02cc7 100644 --- a/fmi-profiles/0___preamble.adoc +++ b/fmi-profiles/0___preamble.adoc @@ -1,7 +1,7 @@ -The FMI 2.0/3.0 Profiles are a free resource intended to give non-normative recommendations and guidance to implementers and users of the Functional Mock-up Interface standard versions 2.0 and 3.0. -All guidance is based on FMI 2.0 and FMI 3.0 unless otherwise noted or applicable. +The FMI 3.0 Profiles are a free resource intended to give non-normative recommendations and guidance to implementers and users of the Functional Mock-up Interface standard versions 3.0. +All guidance is based on FMI 3.0 unless otherwise noted or applicable. This is a development version of the FMI Profiles that has not been reviewed or finalized in any way. -All of the content is to be considered non-normative and shall not be considered to supplant any normative statement in the FMI 2.0 or 3.0 standards. +All of the content is to be considered non-normative and shall not be considered to supplant any normative statement in the FMI 3.0 standards. https://github.com/modelica/fmi-guides/releases[Releases] and https://github.com/modelica/fmi-guides/issues[issues] can be found on https://github.com/modelica/fmi-guides[github.com/modelica/fmi-guides]. {empty} + diff --git a/fmi-profiles/1___introduction.adoc b/fmi-profiles/1___introduction.adoc index bfa2ffd..d33d054 100644 --- a/fmi-profiles/1___introduction.adoc +++ b/fmi-profiles/1___introduction.adoc @@ -12,8 +12,8 @@ Where harmonization of feature profiles can be achieved across a sufficiently la If vendors start advertising their profile support, this also makes it much easier to ascertain support of required options by users. Additionally, these profiles can be used to display feature support concisely in comparison tables, like those present on the FMI standard website. -A questionnaire was circulated in the prostep ivip SmartSE project to elicit initial use case profiles and required features. -Based on the feedback from industry participants, a consolidated set of initial FMI feature profiles was derived and disseminated internally. +A questionnaire was circulated in the prostep ivip SmartSE project to elicit initial use case profiles and required features. +Based on the feedback from industry participants, a consolidated set of initial FMI feature profiles was derived and disseminated internally. After discussion within the SmartSE project and more comprehensive discussion inside the Modelica Association Project FMI, the projects adopted this document's set of FMI Feature Profiles for joint publication. The FMI Feature Profiles provide an initial set of consolidated FMI feature profiles and short descriptions of the corresponding use cases. diff --git a/fmi-profiles/2___features.adoc b/fmi-profiles/2___features.adoc index 80a7691..8a25de9 100644 --- a/fmi-profiles/2___features.adoc +++ b/fmi-profiles/2___features.adoc @@ -12,33 +12,33 @@ These feature areas provide the subsections of this chapter. === Parameter Handling -Tunable Parameters (FMI 2.0):: +Tunable Parameters:: Tunable parameters allow the changing of parameters values at discrete steps during the simulation run, not only prior to simulation start-up. === State Handling -Store/Restore FMU State (FMI 2.0):: +Store/Restore FMU State:: FMUs that support fmi2GetFMUState and fmi2SetFMUState allow the implementation to store the current state and reset to that state during a simulation run. This allows for more capable co-simulation algorithms: For example, an importer can reset other FMUs to a point in time prior to the current communication time if an event occurred during that time period in some external system or other FMU. Note that this flexibility usually incurs some performance hit if used. + This sub-feature does not entail the ability to store that saved state in a persistent external format and restore from that in a separate simulation run (this requires serialization support). -Serialize/Deserialize FMU State (FMI 2.0):: +Serialize/Deserialize FMU State:: This feature provides the ability to serialize a saved FMU state into a format that can be stored on persistent external storage and used in this or a separate simulation run to restore the FMU state to the current one. + This ability allows, for example, to freeze FMU states after lengthy initialization and stabilization phases and start new simulations directly from that state. === Data Types -String Inputs/Outputs (FMI 2.0):: +String Inputs/Outputs:: The string data type has been part of FMI since 1.0 and is not optional. And like all data types, it can be used for all kinds of variables, i.e., parameters and constants, inputs, outputs, etc. + However, some simulation systems have no concept of string inputs/outputs at runtime, so this feature is not fully supported by all systems nor required for many use cases. The presence of this sub-feature indicates that the ability to pass strings at simulation time as inputs and outputs is important for the use case/profile. -Binary Data Type Input/Output (FMI 3.0):: +Binary Data Type Input/Output:: FMI 3.0 adds a new binary data type that allows FMUs to transfer complete blocks of binary data into or out of the FMU. The binary data is opaque from the point of view of the simulator by default. However, FMUs can specify a MIME type for the data, allowing interpretation of the data by simulators if that is wanted/required. @@ -48,27 +48,27 @@ Other use cases can be simulations of communication bus behavior by exchanging w + This sub-feature only deals with the use of the binary data type for inputs and outputs. -Binary Data Type Parameters (FMI 3.0):: +Binary Data Type Parameters:: This sub-feature represents the ability to use the new binary data type of FMI 3.0 for parameters and constants, not just for inputs and outputs. -New Integer Types (FMI 3.0):: +New Integer Types:: FMI 3.0 will offer a full complement of 8, 16, 32, and 64-bit signed and unsigned integer data types, not just the de-facto 32-bit signed integer data type that FMI 2.0 offers. === Array Input/Output Handling -Fixed-size Arrays (FMI 3.0):: +Fixed-size Arrays:: FMI 3.0 offers variables that are native multi-dimensional arrays of the basic data types FMI 3.0 supports. This sub-feature contains only the use of arrays of fixed (i.e., at design time) size. + This sub-feature is only concerned with the use of arrays for inputs and outputs. -Dynamically resizable Arrays (FMI 3.0):: +Dynamically resizable Arrays:: This sub-feature comprises the use of dynamically resizable arrays: This comprises the resizing of arrays either prior to simulation start at configuration time or during simulation using re-configuration mode. + This sub-feature is only concerned with the use of arrays for inputs and outputs. -Resizable Arrays with Size-Dependencies (FMI 3.0):: +Resizable Arrays with Size-Dependencies:: FMI 3.0 performs array resizing by using special structural parameters that contain the sizes of array dimensions. Dependencies of sizes between multiple arrays can be expressed by using the same structural parameter in multiple array definitions, for example, to define matching matrixes for linear equation systems. + @@ -76,18 +76,18 @@ This sub-feature is only concerned with the use of arrays for inputs and outputs === Array Parameter Handling -Fixed-size Arrays (FMI 3.0):: +Fixed-size Arrays:: FMI 3.0 offers variables that are native multi-dimensional arrays of the basic data types FMI 3.0 supports. This sub-feature contains only the use of arrays of fixed (i.e., at design time) size. + This sub-feature is only concerned with the use of arrays for parameters and constants. -Dynamically resizable Arrays (FMI 3.0):: +Dynamically resizable Arrays:: This sub-feature comprises the use of dynamically resizable arrays (i.e., resizing of arrays either prior to simulation start at configuration time or during simulation using re-configuration mode). + This sub-feature is only concerned with the use of arrays for parameters and constants. -Resizable Arrays with Size-Dependencies (FMI 3.0):: +Resizable Arrays with Size-Dependencies:: FMI 3.0 performs array resizing by using special structural parameters that contain the sizes of array dimensions. Dependencies of sizes between multiple arrays can be expressed by using the same structural parameter in multiple array definitions, for example, to define matching matrixes for linear equation systems. + @@ -95,27 +95,27 @@ This sub-feature is only concerned with the use of arrays for parameters and con === Calculation Model -Variable Co-Simulation Communication Step Size (FMI 1.0):: +Variable Co-Simulation Communication Step Size:: FMI since 1.0 offers the ability of co-simulation FMUs to support variable communication step sizes, where the step size will be adjusted on a step-by-step case by the co-simulation algorithm of the importer. This option indicates whether support for variable step sizes by FMUs is deemed important for numerical performance. -State and Output Dependencies (FMI 2.0):: +State and Output Dependencies:: FMI 2.0 supports the ability of FMUs to provide information on the dependencies of state derivatives and output variables from inputs and states. In other words, the sparsity pattern for Jacobians can be defined. This allows simulating stiff FMUs with many states (> 1000 states) since sparse matrix methods can be utilized in the numerical integration method. Furthermore, it can be stated whether this dependency is linear (this allows to transform nonlinear algebraic equation systems into linear equation systems when connecting FMUs). -Output Derivatives in Co-Simulation (FMI 2.0):: +Output Derivatives in Co-Simulation:: FMI since 2.0 offers the ability of co-simulation FMUs to give access to nth-order output derivatives to enable co-simulation algorithms to interpolate output values between communication steps with higher accuracy. -Directional Derivatives (FMI 2.0):: +Directional Derivatives:: FMI 2.0 supports the ability of FMUs to provide directional derivatives of state variables and outputs, e.g., in order to construct a partial derivative matrix: Directional derivatives can be computed for continuous-time states and outputs. This is useful when connecting FMUs, and the partial derivatives of the connected FMU shall be computed. Suppose the exported FMU performs this computation analytically. In that case, all numerical algorithms based on these partial derivatives (for example, the numerical integration method or nonlinear algebraic solvers) are more efficient and reliable. -Adjoint Derivatives (FMI 3.0):: +Adjoint Derivatives:: FMI 3.0 supports the ability of FMUs to provide adjoint derivatives of state variables and outputs, e.g., in order to construct a partial derivative matrix: Adjoint derivatives can be computed for continuous-time states and outputs. + @@ -123,46 +123,46 @@ Adjoint derivatives are beneficial in several contexts: For machine learning applications, adjoint derivatives (also called vector gradient products) are used in backpropagation to perform gradient-based optimization of parameters using reverse mode automatic differentiation. Similarly adjoint derivatives can also be used for parameter estimation. -Restartable Early Return in Hybrid Co-Simulation (FMI 3.0):: +Restartable Early Return in Hybrid Co-Simulation:: FMI 3.0 will offer support for FMUs to return from their fmi3DoStep calculation routine before completing the whole indicated time step. This can be used to signal an internal event or discontinuity, allowing the importer to continue the step after this early return. + This feature allows for more efficient co-simulation algorithms due to the more precise detection of event times, if, e.g., used in combination with resettable FMUs. -Intermediate Output Values in Co-Simulation (FMI 3.0):: -FMI 3.0 will support the option for FMUs to give access to intermediate output values through a mechanism called intermediate update mode. +Intermediate Output Values in Co-Simulation:: +FMI 3.0 supports the option for FMUs to give access to intermediate output values through a mechanism called intermediate update mode. This feature provides access to values that are generated due to internal integration/calculation steps but would previously not have been visible unless the co-simulation algorithm reduces the communication step size. + These additional values can be used, for example, for improved interpolation/extrapolation of values or recording of more precise result curves, without incurring the overhead of smaller communication step sizes. -Co-Simulation with Clock Information (FMI 3.0):: -FMI 3.0 will offer support for clock annotations on variables. +Co-Simulation with Clock Information:: +FMI 3.0 offers support for clock annotations on variables. This feature can be used in co-simulation mode to allow a co-simulation algorithm to dynamically adjust communication step sizes to match multiple internal rates of an FMU to transfer information between FMUs more precisely. -Scheduled Execution Interface (FMI 3.0):: -FMI 3.0 will offer support for FMUs to allow direct activation of separate time partitions from the importer. +Scheduled Execution Interface:: +FMI 3.0 offers support for FMUs to allow direct activation of separate time partitions from the importer. This interface type makes it possible for importers to interleave calculations of different time partitions of different FMUs efficiently to support, for example, real-time simulation of multiple FMUs in hardware-resource-constrained systems, like HiL systems. + Note that this interface is different from the co-simulation interface. It is recommended that FMUs providing a Scheduled Execution interface also provide a Co-Simulation interface for use in systems that do not require the execution control of Scheduled Execution. -Clocked Model-Exchange (FMI 3.0):: -FMI 3.0 will support clocked model exchange, where signals are only considered active when their related clocks tick. +Clocked Model-Exchange:: +FMI 3.0 supports clocked model exchange, where signals are only considered active when their related clocks tick. This allows for more precise support for discrete/continuous hybrid systems or systems with multiple non-least-common-denominator clocks/rates. === Execution Targets -Source Code FMUs (FMI 1.0):: +Source Code FMUs:: FMI offers the ability to distribute FMUs that contain C source code as one of its target implementations, which then relies on the portability of the code and the ability of the receiving implementation to compile that code to its target architecture. + The use of source code implies the usual trade-offs: The potential broader portability of the source code is balanced by, for example, potential portability problems in the code, availability of compilers on the target platform, need for code obfuscation to add IP protection. On the other hand, this makes the FMU usable on platforms for which the generating party has no available compiler toolchain or cross-compilation support. -Binary FMUs for Desktop Platforms (FMI 1.0):: +Binary FMUs for Desktop Platforms:: This sub-feature describes the usual ability to generate FMUs with binary implementations (either dynamically or statically linked libraries) for the typical desktop computing platforms, like Windows/x64 and Linux/x64. -Binary FMUs for non-Desktop Platforms (e.g. HiL) (FMI 1.0):: +Binary FMUs for non-Desktop Platforms (e.g. HiL):: FMI supports the inclusion of multiple binary implementations of an FMU. This sub-feature deals with the requirement to generate FMUs that include binary implementations for non-Desktop platforms, like common HiL platforms or other potentially embedded target architectures. This is a catch-all feature since the actual requirement will have to be specific for the architectures actually needed. From 85a3d3fa1be2803590e1e712d5caa90d62f11087 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:20:14 +0100 Subject: [PATCH 09/19] remove string inputs/outputs as listed features, as for all listed profies binary variables should be used instead --- fmi-profiles/2___features.adoc | 7 ------- fmi-profiles/3___profiles.adoc | 2 -- 2 files changed, 9 deletions(-) diff --git a/fmi-profiles/2___features.adoc b/fmi-profiles/2___features.adoc index 8a25de9..485cdd5 100644 --- a/fmi-profiles/2___features.adoc +++ b/fmi-profiles/2___features.adoc @@ -31,13 +31,6 @@ This ability allows, for example, to freeze FMU states after lengthy initializat === Data Types -String Inputs/Outputs:: -The string data type has been part of FMI since 1.0 and is not optional. -And like all data types, it can be used for all kinds of variables, i.e., parameters and constants, inputs, outputs, etc. -+ -However, some simulation systems have no concept of string inputs/outputs at runtime, so this feature is not fully supported by all systems nor required for many use cases. -The presence of this sub-feature indicates that the ability to pass strings at simulation time as inputs and outputs is important for the use case/profile. - Binary Data Type Input/Output:: FMI 3.0 adds a new binary data type that allows FMUs to transfer complete blocks of binary data into or out of the FMU. The binary data is opaque from the point of view of the simulator by default. diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index edc2f9b..4a08ca8 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -105,7 +105,6 @@ 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 @@ -166,7 +165,6 @@ In the table below, the placement of an `X` indicates a required feature, and a | |Store/Restore FMU State|2.0||||X|X|X|X | |Serialize/Deserialize FMU State|2.0|||||X|X|X 2+|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 From c08d03a19a9ef1e541e50efb0516ad045c4303a0 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:22:38 +0100 Subject: [PATCH 10/19] remove new integer types, as they are considered vary basic and mandatory --- fmi-profiles/2___features.adoc | 3 --- fmi-profiles/3___profiles.adoc | 4 ---- 2 files changed, 7 deletions(-) diff --git a/fmi-profiles/2___features.adoc b/fmi-profiles/2___features.adoc index 485cdd5..fe65509 100644 --- a/fmi-profiles/2___features.adoc +++ b/fmi-profiles/2___features.adoc @@ -44,9 +44,6 @@ This sub-feature only deals with the use of the binary data type for inputs and Binary Data Type Parameters:: This sub-feature represents the ability to use the new binary data type of FMI 3.0 for parameters and constants, not just for inputs and outputs. -New Integer Types:: -FMI 3.0 will offer a full complement of 8, 16, 32, and 64-bit signed and unsigned integer data types, not just the de-facto 32-bit signed integer data type that FMI 2.0 offers. - === Array Input/Output Handling Fixed-size Arrays:: diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 4a08ca8..dd481ce 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -43,7 +43,6 @@ 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 - Resizable Parameter Arrays @@ -76,7 +75,6 @@ This is a profile for high dynamics mechatronic simulation, including variable c Required Features:: - Tunable Parameters - Directional Derivatives (*ME only*) - - New Integer Types - Fixed-size Input/Output Arrays - Fixed-size Parameter Arrays - State and Output Dependencies @@ -106,7 +104,6 @@ Required Features:: - Store/Restore FMU State - Serialize/Deserialize FMU State - Binary Data Type Input/Output - - New Integer Types - Fixed-size Input/Output Arrays - Resizable Input/Output Arrays - Resizable Input/Output Arrays with Size-Dependencies @@ -137,7 +134,6 @@ 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 From ad95f93be3b395fa124d7cbd3f6a15469c6a19e2 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:30:11 +0100 Subject: [PATCH 11/19] rework dyanmics Sensor profile --- fmi-profiles/3___profiles.adoc | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index dd481ce..796a75c 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -81,7 +81,6 @@ Required Features:: - Binary FMUs for Desktop Platforms Recommended Features:: -CS specific recommended:: - Binary Data Type Input/Output - Fixed-size Input/Output Arrays - Resizable Parameter Arrays @@ -93,35 +92,19 @@ CS specific recommended:: - Directional Derivatives (*CS only*) - Store/Restore FMU State (*CS only*) - === 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 - - Binary Data Type Input/Output - - 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 +(all required and recommended feautures form XiL Profile) +Required Features:: + - Clocked Model-Exchange (*ME only*) + - Variable Co-Simulation Communication Step Size (*CS only*) + - Restartable Early Return in Hybrid Co-Simulation (*CS only*) + - Intermediate Output Values in Co-Simulation (*CS only*) + - Co-Simulation with Clock Information (*CS only*) === Optimization Profile From 402e134c5e5945684e18e47a28f7626bbd78ae26 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:34:36 +0100 Subject: [PATCH 12/19] update optimization profile --- fmi-profiles/3___profiles.adoc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 796a75c..2ab9b9e 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -116,17 +116,19 @@ This is a profile that caters to different but overlapping optimization use case Required Features:: - Tunable Parameters - Store/Restore FMU State - - Serialize/Deserialize FMU State - 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 + - Serialize/Deserialize FMU State (*CS only*) + - Variable Co-Simulation Communication Step Size (*CS only*) + - Output Derivatives in Co-Simulation (*CS only*) + - Intermediate Output Values in Co-Simulation (*CS only*) + + Recommended Features:: + - Resizable Parameter Arrays === Feature Overview From d23371f116685b62da70e27aa28c4dc38bd2cacd Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:40:20 +0100 Subject: [PATCH 13/19] remove binary platform stuff from the features, as suggested in comment to #45 --- fmi-profiles/2___features.adoc | 7 ------- fmi-profiles/3___profiles.adoc | 8 -------- 2 files changed, 15 deletions(-) diff --git a/fmi-profiles/2___features.adoc b/fmi-profiles/2___features.adoc index fe65509..1f24355 100644 --- a/fmi-profiles/2___features.adoc +++ b/fmi-profiles/2___features.adoc @@ -149,10 +149,3 @@ The use of source code implies the usual trade-offs: The potential broader portability of the source code is balanced by, for example, potential portability problems in the code, availability of compilers on the target platform, need for code obfuscation to add IP protection. On the other hand, this makes the FMU usable on platforms for which the generating party has no available compiler toolchain or cross-compilation support. -Binary FMUs for Desktop Platforms:: -This sub-feature describes the usual ability to generate FMUs with binary implementations (either dynamically or statically linked libraries) for the typical desktop computing platforms, like Windows/x64 and Linux/x64. - -Binary FMUs for non-Desktop Platforms (e.g. HiL):: -FMI supports the inclusion of multiple binary implementations of an FMU. -This sub-feature deals with the requirement to generate FMUs that include binary implementations for non-Desktop platforms, like common HiL platforms or other potentially embedded target architectures. -This is a catch-all feature since the actual requirement will have to be specific for the architectures actually needed. diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 2ab9b9e..ec801b2 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -11,7 +11,6 @@ This is a basic profile for Co-Simulation, that should be supported on any binar Required Features:: - Fixed-size Input/Output Arrays - Fixed-size Parameter Arrays - - Binary FMUs for Desktop Platforms Recommended Features:: - Tunable Parameters @@ -29,7 +28,6 @@ Required Features:: - 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 @@ -46,13 +44,11 @@ Required Features:: - Fixed-size Input/Output Arrays - Fixed-size Parameter Arrays - Resizable Parameter Arrays - - Binary FMUs for Desktop Platforms - Co-Simulation with Clock Information (*CS only*) Recommended Features:: - Source Code FMUs - - Binary FMUs for non-Desktop Platforms (e.g. HiL) - Variable Co-Simulation Communication Step Size (*CS only*) - Store/Restore FMU State(*CS only*) - Scheduled Execution Interface (*SE only*) @@ -78,7 +74,6 @@ Required Features:: - Fixed-size Input/Output Arrays - Fixed-size Parameter Arrays - State and Output Dependencies - - Binary FMUs for Desktop Platforms Recommended Features:: - Binary Data Type Input/Output @@ -121,7 +116,6 @@ Required Features:: - State and Output Dependencies - Directional Derivatives - Adjoint Derivatives - - Binary FMUs for Desktop Platforms - Serialize/Deserialize FMU State (*CS only*) - Variable Co-Simulation Communication Step Size (*CS only*) - Output Derivatives in Co-Simulation (*CS only*) @@ -170,8 +164,6 @@ In the table below, the placement of an `X` indicates a required feature, and a | |Clocked Model-Exchange|3.0||||||X| 2+|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. From f699df5e51fe18233c14434504900de1a14d81fa Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 10:44:52 +0100 Subject: [PATCH 14/19] change name to intermediate variable access --- fmi-profiles/2___features.adoc | 2 +- fmi-profiles/3___profiles.adoc | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fmi-profiles/2___features.adoc b/fmi-profiles/2___features.adoc index 1f24355..881cb08 100644 --- a/fmi-profiles/2___features.adoc +++ b/fmi-profiles/2___features.adoc @@ -119,7 +119,7 @@ This can be used to signal an internal event or discontinuity, allowing the impo + This feature allows for more efficient co-simulation algorithms due to the more precise detection of event times, if, e.g., used in combination with resettable FMUs. -Intermediate Output Values in Co-Simulation:: +Intermediate Variable Access:: FMI 3.0 supports the option for FMUs to give access to intermediate output values through a mechanism called intermediate update mode. This feature provides access to values that are generated due to internal integration/calculation steps but would previously not have been visible unless the co-simulation algorithm reduces the communication step size. + diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index ec801b2..66ae5ec 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -83,7 +83,7 @@ Recommended Features:: - Variable Co-Simulation Communication Step Size (*CS only*) - Restartable Early Return in Hybrid Co-Simulation (*CS only*) - Output Derivatives in Co-Simulation (*CS only*) - - Intermediate Input Values in Co-Simulation (*CS only*) + - Intermediate Variable Access (*CS only*) - Directional Derivatives (*CS only*) - Store/Restore FMU State (*CS only*) @@ -98,7 +98,7 @@ Required Features:: - Clocked Model-Exchange (*ME only*) - Variable Co-Simulation Communication Step Size (*CS only*) - Restartable Early Return in Hybrid Co-Simulation (*CS only*) - - Intermediate Output Values in Co-Simulation (*CS only*) + - Intermediate Variable Access (*CS only*) - Co-Simulation with Clock Information (*CS only*) === Optimization Profile @@ -119,7 +119,7 @@ Required Features:: - Serialize/Deserialize FMU State (*CS only*) - Variable Co-Simulation Communication Step Size (*CS only*) - Output Derivatives in Co-Simulation (*CS only*) - - Intermediate Output Values in Co-Simulation (*CS only*) + - Intermediate Variable Access (*CS only*) Recommended Features:: - Resizable Parameter Arrays @@ -158,7 +158,7 @@ In the table below, the placement of an `X` indicates a required feature, and a | |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 +| |Intermediate Variable Access|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| From adcb06998c5cd979184f469bc77ace636bf4995d Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 11:19:30 +0100 Subject: [PATCH 15/19] update table --- fmi-profiles/3___profiles.adoc | 71 +++++++++++++++++----------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 66ae5ec..f46498e 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -27,7 +27,7 @@ Required Features:: - Tunable Parameters - Binary Data Type Input/Output - Binary Data Type Parameters - - Variable Co-Simulation Communication Step Size + - Variable Co-Simulation Communication Step Size (*CS only*) Recommended Features:: - Source Code FMUs @@ -70,14 +70,13 @@ This is a profile for high dynamics mechatronic simulation, including variable c Required Features:: - Tunable Parameters - - Directional Derivatives (*ME only*) - Fixed-size Input/Output Arrays - Fixed-size Parameter Arrays - State and Output Dependencies + - Directional Derivatives (*ME only*) Recommended Features:: - Binary Data Type Input/Output - - Fixed-size Input/Output Arrays - Resizable Parameter Arrays - Resizable Parameter Arrays with Size-Dependencies - Variable Co-Simulation Communication Step Size (*CS only*) @@ -92,7 +91,7 @@ Recommended Features:: 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. -(all required and recommended feautures form XiL Profile) +(all required and recommended feautures form Dynamics Profile) Required Features:: - Clocked Model-Exchange (*ME only*) @@ -110,12 +109,12 @@ This is a profile that caters to different but overlapping optimization use case Required Features:: - Tunable Parameters - - Store/Restore FMU State - Fixed-size Input/Output Arrays - Fixed-size Parameter Arrays - State and Output Dependencies - Directional Derivatives - Adjoint Derivatives + - Store/Restore FMU State (*CS only*) - Serialize/Deserialize FMU State (*CS only*) - Variable Co-Simulation Communication Step Size (*CS only*) - Output Derivatives in Co-Simulation (*CS only*) @@ -130,42 +129,42 @@ Required Features:: In the table below, the placement of an `X` indicates a required feature, and a `*` indicates a recommended feature. [[feature-matrix]] -[cols="1h,<3,8*^1"] +[cols="1h,<3,7*^1"] |======== -|Area|Feature|FMI Version|Basic CS Profile|Sensor Profile|Basic HiL & Sensor HiL Profile|SIL ECU Profile|Dynamics Profile|Dynamics Controller Profile|Optimization Profile - -2+|Parameter Handling|||||||| -| |Tunable Parameters|2.0|X|X|X|X|X|X|X -2+|State Handling|||||||| -| |Store/Restore FMU State|2.0||||X|X|X|X -| |Serialize/Deserialize FMU State|2.0|||||X|X|X -2+|Data Types|||||||| -| |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 +|Area|Feature|Basic CS Profile|Sensor Profile|XiL Profile|ECU Profile|Dynamics Profile|Dynamics Controller Profile|Optimization Profile + +2+|Parameter Handling||||||| +| |Tunable Parameters|X|X|X|X|X|X|X| +2+|State Handling||||||| +| |Store/Restore FMU State|||*|*|*|X| +| |Serialize/Deserialize FMU State|||||||X| +2+|Data Types||||||| +| |Binary Data Type Input/Output||X|X|*|*|| +| |Binary Data Type Parameters||X|X|X||| 2+|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| +| |Fixed-size Arrays|X||X|X|X|X|X +| |Resizable Arrays||||||| +| |Resizable Arrays with Size-Dependencies||||||| 2+|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| -2+|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 Variable Access|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| -2+|Execution Targets|||||||| -| |Source Code FMUs|1.0|*|*|X|X||| +| |Fixed-size Arrays|X||X|X|X|X|X +| |Resizable Arrays|*|||X|X|*|* +| |Resizable Arrays with Size-Dependencies||||||| +2+|Calculation Model||||||| +| |Variable Co-Simulation Communication Step Size||X|*|*|X|X|X| +| |State and Output Dependencies||||X|X|X +| |Output Derivatives in Co-Simulation|||||*|*|X| +| |Directional Derivatives|||||*|*|X| +| |Adjoint Derivatives||||||X| +| |Restartable Early Return in Hybrid Co-Simulation||||*|*|X| +| |Intermediate Variable Access||||*|*|X +| |Co-Simulation with Clock Information||||X|X|X| +| |Scheduled Execution Interface||||*||| +| |Clocked Model-Exchange||||||X| +2+|Execution Targets|||||| +| |Source Code FMUs|*|*|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. \ No newline at end of file From b7168d3efc197bcb13617b79600926adae48a482 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 11:33:59 +0100 Subject: [PATCH 16/19] fix table --- fmi-profiles/3___profiles.adoc | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index f46498e..0c65ca8 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -134,33 +134,33 @@ In the table below, the placement of an `X` indicates a required feature, and a |Area|Feature|Basic CS Profile|Sensor Profile|XiL Profile|ECU Profile|Dynamics Profile|Dynamics Controller Profile|Optimization Profile 2+|Parameter Handling||||||| -| |Tunable Parameters|X|X|X|X|X|X|X| +| |Tunable Parameters|X|X|X|X|X|X|X 2+|State Handling||||||| -| |Store/Restore FMU State|||*|*|*|X| -| |Serialize/Deserialize FMU State|||||||X| +| |Store/Restore FMU State||||*|*|*|X +| |Serialize/Deserialize FMU State|||||||X 2+|Data Types||||||| | |Binary Data Type Input/Output||X|X|*|*|| | |Binary Data Type Parameters||X|X|X||| -2+|Array Input/Output Handling|||||||| +2+|Array Input/Output Handling||||||| | |Fixed-size Arrays|X||X|X|X|X|X | |Resizable Arrays||||||| | |Resizable Arrays with Size-Dependencies||||||| -2+|Array Parameter Handling|||||||| +2+|Array Parameter Handling||||||| | |Fixed-size Arrays|X||X|X|X|X|X | |Resizable Arrays|*|||X|X|*|* | |Resizable Arrays with Size-Dependencies||||||| 2+|Calculation Model||||||| -| |Variable Co-Simulation Communication Step Size||X|*|*|X|X|X| -| |State and Output Dependencies||||X|X|X -| |Output Derivatives in Co-Simulation|||||*|*|X| -| |Directional Derivatives|||||*|*|X| -| |Adjoint Derivatives||||||X| -| |Restartable Early Return in Hybrid Co-Simulation||||*|*|X| -| |Intermediate Variable Access||||*|*|X -| |Co-Simulation with Clock Information||||X|X|X| +| |Variable Co-Simulation Communication Step Size||X|*|*|X|X|X +| |State and Output Dependencies|||||X|X|X +| |Output Derivatives in Co-Simulation|||||*|*|X +| |Directional Derivatives|||||*|*|X +| |Adjoint Derivatives|||||||X +| |Restartable Early Return in Hybrid Co-Simulation|||||*|*|X +| |Intermediate Variable Access|||||*|*|X +| |Co-Simulation with Clock Information|||||X|X|X | |Scheduled Execution Interface||||*||| | |Clocked Model-Exchange||||||X| -2+|Execution Targets|||||| +2+|Execution Targets||||||| | |Source Code FMUs|*|*|X|X||| |======== From 02d94dc57a8a338be017f7440e266a2c8ade6cb1 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 11:37:16 +0100 Subject: [PATCH 17/19] fix title --- fmi-profiles/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fmi-profiles/index.adoc b/fmi-profiles/index.adoc index 4ee4d79..74c68cf 100644 --- a/fmi-profiles/index.adoc +++ b/fmi-profiles/index.adoc @@ -1,4 +1,4 @@ -= FMI 2.0/3.0 Feature Profiles += FMI 3.0 Feature Profiles :doctype: book :imagesdir: images :sectnums: From f7844586d3e84ca6d507ff0f910d0835ece2e730 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 11:41:07 +0100 Subject: [PATCH 18/19] remove hybrid CS --- fmi-profiles/2___features.adoc | 8 ++++---- fmi-profiles/3___profiles.adoc | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fmi-profiles/2___features.adoc b/fmi-profiles/2___features.adoc index 881cb08..20379ab 100644 --- a/fmi-profiles/2___features.adoc +++ b/fmi-profiles/2___features.adoc @@ -90,7 +90,7 @@ FMI since 1.0 offers the ability of co-simulation FMUs to support variable commu This option indicates whether support for variable step sizes by FMUs is deemed important for numerical performance. State and Output Dependencies:: -FMI 2.0 supports the ability of FMUs to provide information on the dependencies of state derivatives and output variables from inputs and states. +FMI since 2.0 supports the ability of FMUs to provide information on the dependencies of state derivatives and output variables from inputs and states. In other words, the sparsity pattern for Jacobians can be defined. This allows simulating stiff FMUs with many states (> 1000 states) since sparse matrix methods can be utilized in the numerical integration method. Furthermore, it can be stated whether this dependency is linear (this allows to transform nonlinear algebraic equation systems into linear equation systems when connecting FMUs). @@ -99,7 +99,7 @@ Output Derivatives in Co-Simulation:: FMI since 2.0 offers the ability of co-simulation FMUs to give access to nth-order output derivatives to enable co-simulation algorithms to interpolate output values between communication steps with higher accuracy. Directional Derivatives:: -FMI 2.0 supports the ability of FMUs to provide directional derivatives of state variables and outputs, e.g., in order to construct a partial derivative matrix: +FMI since 2.0 supports the ability of FMUs to provide directional derivatives of state variables and outputs, e.g., in order to construct a partial derivative matrix: Directional derivatives can be computed for continuous-time states and outputs. This is useful when connecting FMUs, and the partial derivatives of the connected FMU shall be computed. Suppose the exported FMU performs this computation analytically. @@ -113,8 +113,8 @@ Adjoint derivatives are beneficial in several contexts: For machine learning applications, adjoint derivatives (also called vector gradient products) are used in backpropagation to perform gradient-based optimization of parameters using reverse mode automatic differentiation. Similarly adjoint derivatives can also be used for parameter estimation. -Restartable Early Return in Hybrid Co-Simulation:: -FMI 3.0 will offer support for FMUs to return from their fmi3DoStep calculation routine before completing the whole indicated time step. +Early Return in Co-Simulation:: +FMI 3.0 offers support for FMUs to return from their fmi3DoStep calculation routine before completing the whole indicated time step. This can be used to signal an internal event or discontinuity, allowing the importer to continue the step after this early return. + This feature allows for more efficient co-simulation algorithms due to the more precise detection of event times, if, e.g., used in combination with resettable FMUs. diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 0c65ca8..318675d 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -80,7 +80,7 @@ Recommended Features:: - Resizable Parameter Arrays - Resizable Parameter Arrays with Size-Dependencies - Variable Co-Simulation Communication Step Size (*CS only*) - - Restartable Early Return in Hybrid Co-Simulation (*CS only*) + - Early Return in Co-Simulation (*CS only*) - Output Derivatives in Co-Simulation (*CS only*) - Intermediate Variable Access (*CS only*) - Directional Derivatives (*CS only*) @@ -155,7 +155,7 @@ In the table below, the placement of an `X` indicates a required feature, and a | |Output Derivatives in Co-Simulation|||||*|*|X | |Directional Derivatives|||||*|*|X | |Adjoint Derivatives|||||||X -| |Restartable Early Return in Hybrid Co-Simulation|||||*|*|X +| |Early Return in Co-Simulation|||||*|*|X | |Intermediate Variable Access|||||*|*|X | |Co-Simulation with Clock Information|||||X|X|X | |Scheduled Execution Interface||||*||| From 077ec6108dcc74065951ea0cf82494c0dc98dd35 Mon Sep 17 00:00:00 2001 From: Christian Bertsch Date: Sun, 5 Feb 2023 11:44:44 +0100 Subject: [PATCH 19/19] explain ECU profile, fix typos --- fmi-profiles/3___profiles.adoc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fmi-profiles/3___profiles.adoc b/fmi-profiles/3___profiles.adoc index 318675d..d36b2d5 100644 --- a/fmi-profiles/3___profiles.adoc +++ b/fmi-profiles/3___profiles.adoc @@ -54,15 +54,17 @@ Recommended Features:: - Scheduled Execution Interface (*SE only*) -=== ECU Profile (tbd) +=== ECU Profile + +This is a profile for supporting advanced simulation features for Electronic Control Unis (ECUs) includdin network communication. (all required and recommended feautures form XiL Profile) Required Features:: -- support of certain layerd standards (LS-BUS) +- support of layered standard for automotive network communication (LS-BUS) Recommended Features:: -- support of certain layerd standards (LS-XCP) +- support layered standardx for XCP (LS-XCP) === Dynamics Profile