A Language and Platform Independent Co-Simulation Framework Based on the Functional Mock-Up Interface

The main goal of the Functional Mock-up Interface (FMI) standard is to allow the sharing of simulation models across tools. To accomplish this, FMI relies on a combination of XML-files and compiled C-code packaged in a zip archive. This archive is called a Functional Mock-up Unit (FMU). In theory, an FMU can support multiple platforms, but not necessarily in practice. Furthermore, software libraries for interacting with FMUs may not be available in a particular language or platform. Another issue is related to the protection of intellectual property (IP). While an FMU is free to only provide the C-code in its binary form, other resources within the FMU may be unprotected. Distributing models in binary form also opens up the possibility that they may contain malicious code. In order to meet these challenges, this paper presents an open-source co-simulation framework based on FMI, which is language and platform independent thanks to the use of well-established remote procedure call (RPC) technologies. One or more FMUs are wrapped inside a server program supporting one or more language independent RPC systems over various network protocols. Together, they allow cross-platform invocation of FMUs from multiple, including previously unsupported, languages. The client-server architecture allows the effective protection of IP while also providing a means of protecting users from malicious code.

[1]  Houxiang Zhang,et al.  A Software Architecture for Simulation and Visualisation based on the Functional Mock-up Interface and Web Technologies , 2015 .

[2]  David Broman,et al.  Co-Simulation , 2018, ACM Comput. Surv..

[3]  Peter Palensky,et al.  The FMI++ library: A high-level utility package for FMI for model exchange , 2013, 2013 Workshop on Modeling and Simulation of Cyber-Physical Energy Systems (MSCPES).

[4]  Geir Hovland,et al.  FMI4j: A Software Package for working with Functional Mock-up Units on the Java Virtual Machine , 2018, Proceedings of The 59th Conference on imulation and Modelling (SIMS 59), 26-28 September 2018, Oslo Metropolitan University, Norway.

[5]  Esmond Pitt,et al.  java.rmi: The Remote Method Invocation Guide , 2001 .

[6]  Chong Shum,et al.  Co-Simulation of Distributed Smart Grid Software Using Direct-Execution Simulation , 2018, IEEE Access.

[7]  Claude Lacoursière,et al.  FMI Go! A simulation runtime environment with a client server architecture over multiple protocols , 2017, Modelica.

[8]  Stéphane Vialle,et al.  Daccosim NG: co-simulation made simpler and faster , 2019, Modelica.

[9]  Johan Åkesson,et al.  PyFMI: A Python Package for Simulation of Coupled Dynamic Models with the Functional Mock-up Interface , 2016 .

[10]  Rainer Leupers,et al.  Virtual hardware-in-the-loop co-simulation for multi-domain automotive systems via the functional mock-up interface , 2015 .

[11]  Erik Durling,et al.  FMI and IP protection of models: A survey of use cases and support in the standard , 2017, Modelica.

[12]  Geir Hovland,et al.  FMU-proxy: A Framework for Distributed Access to Functional Mock-up Units , 2019, Modelica.

[13]  J. Jatskevich,et al.  Interfacing Issues in Multi-Domain Simulation Tools , 2012, IEEE Transactions on Power Delivery.

[14]  Gabor Karsai,et al.  A co-simulation framework for design of time-triggered automotive cyber physical systems , 2014, Simul. Model. Pract. Theory.

[15]  Yingguang Chu,et al.  Virtual prototyping system for maritime crane design and operation based on functional mock-up interface , 2015, OCEANS 2015 - Genova.

[16]  Eilif Pedersen,et al.  Distributed Co-Simulation of Maritime Systems and Operations , 2017, ArXiv.

[17]  Elmar Ahle,et al.  The Functional Mockup Interface - seen from an industrial perspective , 2014 .

[18]  Martin Benedikt,et al.  The distributed co-simulation protocol for the integration of real-time systems and simulation environments , 2018, SummerSim.

[19]  Andreas Junghanns,et al.  Functional Mockup Interface 2.0: The Standard for Tool independent Exchange of Simulation Models , 2012 .

[20]  Eilif Pedersen,et al.  Virtual Prototyping of Maritime Systems and Operations , 2016 .