The DSHplus Functional Mock-up interfaces
Design, development, and analysis of complex CyberPhysical Systems (CPSs) using simulation models involves a collaboration of expertise from different engineering domains. But how can all involved domain specific models be incorporated into an overall composite simulation model?
The answer to that challenge is the Functional Mock-up Interface (FMI).
Functional Mock-up Interface
The FMI defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. FMI is supported by 100+ tools and maintained as a Modelica Association Project on GitHub.
A model that is exported according to the FMI standard is called Functional Mock-up Unit (FMU). There are three different types of FMUs:
- FMI co-simulation stand alone.
- FMI co-simulation tool.
- FMI for Model Exchange.
DSHplus generates co-simulation FMUs for Windows, Linux, and macOS, that comply with revision 2.0 of the FMI standard and that can be distributed free of charge.
DSHplus co-simulation FMUs for Windows based applications are compiled ready to use.
FMU Export
DSHplus generates co-simulation stand alone and co-simulation tool FMUs for Windows, Linux, and macOS. The FMUs comply with revision 2.0 of the FMI standard and can be distributed free of charge.
DSHplus co-simulation stand alone FMUs are available for:
- Windows 32 bit
- Windows 64 bit
- Linux 64 bit
- macOS 64 bit
DSHplus co-simulation tool FMUs are available for:
- Windows 32 bit
- Windows 64 bit
Additional information
DSHplus includes model, parameter and lookup-table files as well as target specific pre-compiled binaries (solver, parameter handling, etc.) into the FMUs zip archive. Optionally also the DSHplus model, from which the FMU is generated, can be added to the FMU. For Windows based systems the FMUs are compiled ready to use. No runtime license is required to use the FMU.
For Linux and macOS targets, the FMU needs to be compiled on the target system. The DSHplus-FMU export generates all necessary build scripts.
Depending on the chosen co-simulation scenario and the ability of the importing FMI master DSHplus-FMUs provide additional functionality:
- Model parameter of a DSHplus-FMU can be changed prior of the simulation run.
- A DSHplus-FMU can by solved either by a fixed step or a variable step size solver. The wrapper of the DSHplus-FMU takes care about the time synchronization of the slave FMU with the next macro time step of the master.
- In a so-called Gauss-Seidel co-simulation scheme the program with the lager time step size acts as the master. The models run in a sequential order, whereby the master’s input values are interpolated to be used for the slave’s inputs. The wrapper of the DSHplus-FMU automatically takes care about the required data interpolation.
FMU Import
The ability to import FMUs makes DSHplus a complete co-simulation master. Currently DSHplus supports the import of co-simulation FMUs according to standard 2.0.
As a co-simulation master DSHplus allows the user to design complex composite models, consisting of a mixture of several FMUs and DSHplus component models. DSHplus orchestrates the FMUs of the composite model either in a sequential (Gauss Seidel scheme) or in a parallel (Jacobian scheme) co-simulation setup. To do so, the wrapper of the DSHplus-FMU master uses the newly develop DSHplus thread pool functionality that allows the parallelisation of computation directly on simulation model level.
A DSHplus composite model can be exported as a DSHplus-Calc model for stand-alone calculation on an local workstation or for usage on a multi-core server (HPC application), no matter if the sequential or the parallel co-simulation setup was chosen. Moreover, it is also possible to export a DSHplus composite model as co-simulation FMU, thus the user can create a so-called Matryoshka-FMU.
Additional information:
- The user has the choice to place the FMU relative to the DSHplus simulation model location or to assign an absolute path.
- In some application scenarios it might be possible, that a slave FMU can run with a larger time step size than the co-simulation master. Typical examples are simple mechanical FMUs or FMUs that contain digital controller algorithms. The DSHplus-FMU wrapper can call such FMUs by a user-defined update rate. Between the update time points the FMU’s output values can be keep constant or can be extrapolated.
- The names of the FMU’s inputs and outputs are listed in the DSHplus message window.
- The ability to edit the FMU’s parameter is not jet available but will follow soon.