A Universal Mechanism for Implementing Functional Mock-up Units

Christian Møldrup Legaard, Daniella Tola, Thomas Schranz, Hugo Macedo, Peter Gorm Larsen

Research output: Chapter in Book/Report/Conference proceedingConference paperpeer-review

Abstract

Producing independent simulation units that can be used in a Functional Mock-Up Interface (FMI) setting is challenging. In some cases, a modelling tool may be available that provides the exact capabilities needed by exporting such units. However, there may be cases where existing tools are not suitable, or the cost is prohibitive, thus it may be necessary to implement a Functional Mock-up Unit (FMU) from scratch. Correctly implementing an FMU from scratch requires a deep technical understanding of the FMI specification and the technologies it is built upon. A consequence of FMI being a C-based standard is that an FMU must, generally, be implemented in C or a compiled language that offers a binary-compatible with C such as C++, Rust, or Fortran. In this paper we present UniFMU, a tool that makes it possible to implement FMUs in any language, by writing an adapter that can be plugged in to our modular approach. UniFMU also provides both a graphical user interface and command-line inter face feature for generating new FMUs from a selection of programming languages. We expect our tool and approach to be useful for the simulation community both when porting simulators written in languages without FMI support, and when implementing or re-implementing such support.
Original languageEnglish
Title of host publicationProceedings of the 11th International Conference on Simulation and Modeling Methodologies, Technologies and Applications - SIMULTECH
Pages121-129
Number of pages8
Volume1
Publication statusPublished - Jul 2021

Keywords

  • Co-simulation
  • Functional Mock-up Interface
  • Functional Mock-up Unit
  • Tool

Fingerprint

Dive into the research topics of 'A Universal Mechanism for Implementing Functional Mock-up Units'. Together they form a unique fingerprint.

Cite this