A set of hand-coded FMUs for development, testing and debugging of the Functional Mock-up Interface.
- BouncingBall - a bouncing ball model with state events
- Dahlquist - Dahlquist test equation
- Feedthrough - all variable types
- LinearTransform - arrays and structural parameters
- Resource - load data from a file
- Stair - a counter with time events
- VanDerPol - Van der Pol test equation
Use the fmusim executable to simulate an FMU:
> fmusim --help
Usage: fmusim [OPTION]... [FMU]
Simulate a Functional Mock-up Unit (FMU).
--help display this help and exit
--start-time [VALUE] set the start time
--stop-time [VALUE] set the stop time
--output-interval [VALUE] set the output interval
--start-value [name] [value] set a start value
--input-file [FILE] read input from a CSV file
--output-file [FILE] write output to a CSV file
--log-fmi-calls log FMI calls
--fmi-log-file [FILE] set the FMI log file
Example:
fmusim BouncingBall.fmu simulate with the default settings
<model>
config.h- model specific types and definitionsFMI{1CS|1ME|2|3}.xml- model descriptionsmodel.c- implementation of the model
include
fmi{|2|3}Functions.h- FMI header filesmodel.h- generic model interfacecosimulation.h- generic co-simulation interface
src
fmi{1|2|3}Functions.c- FMI implementationscosimulation.c- generic co-simulation
examples
*.c- various FMI 3.0 import examplesExamples.cmake- CMake configuration for the example projects
fmusim
- sources of the
fmusimexecutable
To build the FMUs you need CMake and a supported build tool e.g. Visual Studio ≥ 2013 , Xcode or make:
-
download or clone the repository
-
open the CMakeGUI
-
click
Browse Source...and select the cloned or downloaded and extracted repository (that containsCMakeLists.txt) -
click
Browse Build...and select the folder where you want build the FMUs -
click
Configureand select the generator for your IDE / build tool -
select the
FMI_VERSIONyou want to build and optionally theFMI_TYPE(only for FMI 1.0) -
click
Generateto generate the project files -
click
Open Projector open the project in your build tool -
build the project
The FMUs will be in the dist folder inside the selected build folder.
Copyright © 2022, Modelica Association Project "FMI". All rights reserved. The code is released under the 2-Clause BSD License.
The Reference FMUs are a fork of the Test FMUs by Dassault Systèmes, which are a fork of the FMU SDK by QTronic, both released under the 2-Clause BSD License.