eFMI-physics-simulation-to-embedded-systems-bridge

This page gives an overview of the general objectives and concepts of eFMI, its highlights and our project organization. Information about the project members and history can be found on the About page. The topics covered in the following are:

eFMI Overview

In a nutshell, eFMI can be depicted as a bridge between the modeling & simulation and the embedded software world; it can be summarized in three sentences:

“The eFMI Standard is an open standard for the stepwise, model-transformation-based development of advanced control functions suited for safety-critical and real time targets. Its container architecture defines the common ground for collaboration among the stake-holders and toolchains along the various abstraction levels from high-level modeling and simulation – e.g., acausal, equation-based physics in Modelica – down to actual embedded code. The model representations it defines are interlinked for traceability and semi-automatic code generation and do not only capture functional, but also non-functional quality requirements like coding standards, static memory allocation, worst time execution, and documentation, enabling credible development within a standardized workspace.” – eFMI in three sentences.

Objective

The main purpose of the "Modelica Association Project Functional Mock-up Interface for embedded systems" (MAP eFMI) is the development, standardization, and promotion of the eFMI Standard. The eFMI Standard is an open standard for stepwise development and validation of advanced control functions suited for safety-critical and real time targets. It enables the application of high-level abstraction and simulation models – like acausal physics models – in embedded real-time and safety-critical software by providing a container architecture for the stepwise refinement of a first high-level algorithmic solution to an embedded implementation for some dedicated target environment.

Container architecture and model representations

The eFMI Standard can be thought of as a bridge closing the gap between the modeling and simulation world and the embedded software world. It defines a container architecture with various model representations to capture all activities of the required credible model transformation process:

Collaborative workspaces (eFMUs)

Instances of the various eFMI container types – each reflecting one aspect/step of the automatic transformation of some high-level model to an embedded solution – are bundled in eFMUs (embedded Functional Mock-up Units). Each eFMU is one shared/collaborative development workspace; shared hereby means that different stakeholders – from simulation designers to embedded developers – are working together using various eFMI tooling from different tool vendors in a seamless toolchain to eventually implement the final embedded solution(s). The various containers of an eFMU reflect the development steps and intermediate artefacts that have been incrementally developed. Each used tool can be dedicated and prove itself on one abstraction and transformation level. The whole toolchain compatibility is ensured by the eFMI Standard and its common means for cross-referencing and dependency tracking for traceability, hashing (checksums) for automatic stale-artefact analysis and copyright, licensing and description annotations for intellectual property protection and documentation.

Workflow and toolchain

The general eFMI workflow is sketched by the following figure, demonstrating an actual eFMI prototype toolchain that has been developed in the EMPHYSIS research project, which finished in February 2021 (third party marks and brands are the property of their respective holders):

eFMI-workflow

The starting point of every eFMI-based development project is the generation (or manual development) of an algorithmic, sampled input-output-block in eFMI GALEC, a new real time and safety-critical domain suited imperative language for the definition of mathematical algorithms. Given a GALEC program in an eFMI Algorithm Code container generated by some simulation tooling, further model transformations along the various eFMI abstraction levels down to actual embedded code can be conducted with a respective eFMI toolchain provided by third party tool vendors assuming they support the targeted embedded execution environment and hardware architecture (target platform).

In the above example, the source is a physics model in Modelica and the final target a BOSCH MDG1 embedded control unit (ECU); the individual, mostly automatized development steps are:

Proof of the pudding

The eFMI workflow presented in the previous section has been extensively tested using a prototype toolchain and industry-driven demonstrators developed throughout the EMPHYSIS research project from which MAP eFMI originates. This experience is the “proof of the pudding”; consider the following results, speaking for themselves.

Comprehensive examples:

eFMI prototype support in established toolchain:

Uncompromising assessment:

EMPHYSIS won the ITEA Award of Excellence 2021, honored with a Special Vice-chairman award title for being one of the highest scored ITEA projects to date!

EMPHYSIS-ITEA-Award-of-Excellence

In the end, eFMI is easier to show than to describe. The magic is in the toolchain; the eFMI Standard is not the user experience, but coordinates tool development and integration. As a user you can just enjoy a seamless toolchain from modeling to embedded implementation. Contact us for a demonstration of, for example, a toolchain from a Modelica physics-model of the eFMI crosscheck test cases 🡆 Modelica tool with support for eFMI GALEC code generation 🡆 Production code generator 🡆 to an AUTOSAR Adaptive Platform component.

eFMI highlights

Please note, that the first official release of the eFMI Standard, version 1.0.0, is still in development. It will comprise the following highlights:

Project organization and community

Development of the eFMI Standard is organized as a Modelica Association Project (MAP) under the roof of the Modelica Association. You can find an overview of the project objectives and members on the About page and the project bylaws and application forms on the Resources page.

We follow a well-defined release-cycle and versioning scheme described on the Standard page. There, also details on how to report issues of the eFMI Standard can be found. Note, that the currently in development eFMI Standard version – except deliberately released candidate-drafts – is not public, as is the specification repository; you have to be a project member to get access to our private repositories and an official saying in standardization decisions.

If you have any open questions, do not hesitate to write us on efmi-info@googlegroups.com.

And finally yet importantly, all material distributed by MAP eFMI, including on this website, is open source; please feel free to reuse it for explaining and promoting eFMI.