Reconciling interoperability with efficient Verification and Validation within open source simulation environments
A Cyber–Physical System (CPS) comprises physical as well as software subsystems. Simulation-
based approaches are typically used to support design and Verification and Validation (V&V)
of CPSs in several domains such as: aerospace, defence, automotive, smart grid and healthcare.
Accordingly, many simulation-based tools are available to support CPS design. This, on one
side, enables designers to choose the toolchain that best suits their needs, on the other side
poses huge interoperability challenges when one needs to simulate CPSs whose subsystems have
been designed and modelled using different toolchains. To overcome such an interoperability
problem, in 2010 the Functional Mock-up Interface (FMI) has been proposed as an open
standard to support both Model Exchange (ME) and Co-Simulation (CS) of simulation models
created with different toolchains. FMI has been adopted by several modelling and simulation
environments. Models adhering to such a standard are called Functional Mock-up Units (FMUs).
Indeed FMUs play an essential role in defining complex CPSs through, e.g., the System Structure
and Parametrisation (SSP) standard.
Simulation-based V&V of CPSs typically requires exploring different simulation scenarios
(i.e., exogenous input sequences to the CPS under design). Many such scenarios have a shared
prefix. Accordingly, to avoid simulating many times such shared prefixes, the simulator state at
the end of a shared prefix is saved and then restored and used as a start state for the simulation
of the next scenario. In this context, an important FMI feature is the capability to save and re-
store the internal FMU state on demand. This is crucial to increase efficiency of simulation-based
V&V. Unfortunately, the implementation of this feature is not mandatory and it is available
only within some commercial software. As a result, the interoperability enabled by the FMI
standard cannot be fully exploited for V&V when using open-source simulation environments.
This motivates developing such a feature for open-source CPS simulation environments.
Accordingly, in this paper, we focus on JModelica, an open-source modelling and simulation
environment for CPSs based on an open standard modelling language, namely Modelica. We
describe how we have endowed JModelica with our open-source implementation of the FMI 2.0
functions needed to save and restore internal states of FMUs for ME. Furthermore, we present
experimental results evaluating, through 934 benchmark models, correctness and efficiency
of our extended JModelica. Our experimental results show that simulation-based V&V is, on
average, 22 times faster with our get/set functionality than without it.