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 and write the output to result.csv.
--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
--output-variable [name] record a specific variable
--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
--solver [euler|cvode] the solver to use
--early-return-allowed allow early return
--event-mode-used use event mode
--record-intermediate-values record outputs in intermediate update
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
fmusim
executable
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
Configure
and select the generator for your IDE / build tool -
select the
FMI_VERSION
you want to build and optionally theFMI_TYPE
(only for FMI 1.0) -
click
Generate
to generate the project files -
click
Open Project
or 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.