FMPy is a free Python library to simulate Functional Mock-up Units (FMUs) that...
- supports FMI 1.0, 2.0, and 3.0
- supports Co-Simulation and Model Exchange
- runs on Windows, Linux and macOS
- has a command line, graphical user interface, and web app
- creates Jupyter Notebooks
- compiles C code FMUs and generates CMake projects for debugging
Several options are available:
- Install with conda:
conda install -c conda-forge fmpy
- Install with from PyPI:
python -m pip install fmpy[complete]
- Install a development build
If you don't have Python on your machine you can install Miniforge.
You can start the FMPy GUI with python -m fmpy.gui
To follow this example download Rectifier.fmu
for your platform by clicking on the respective link:
Linux,
macOS,
Windows.
Change to the folder where you've saved the FMU and open a Python prompt.
>>> from fmpy import *
>>> fmu = 'Rectifier.fmu'
>>> dump(fmu) # get information
Model Info
FMI Version 2.0
Model Name Rectifier
Description Model Rectifier
Platforms win64
Continuous States 4
Event Indicators 6
Variables 63
Generation Tool MapleSim (1267140/1267140/1267140)
Generation Date 2017-10-04T12:07:10Z
Default Experiment
Stop Time 0.1
Step Size 1e-07
Variables (input, output)
Name Causality Start Value Unit Description
outputs output 282.842712474619 V Rectifier1.Capacitor1.v
>>> result = simulate_fmu(fmu) # simulate the FMU
>>> from fmpy.util import plot_result # import the plot function
>>> plot_result(result) # plot two variables
To get information about an FMU directly from the command line change to the folder where you've saved the FMU and enter
fmpy info Rectifier.fmu
Simulate the FMU and plot the results
fmpy simulate Rectifier.fmu --show-plot
Get more information about the available options
fmpy --help
To create a Jupyter Notebook open an FMU in the FMPy GUI and select Tools > Create Jupyter Notebook...
or run
fmpy create-jupyter-notebook Rectifier.fmu
on the command line and open the notebook in Jupyter with
jupyter notebook Rectifier.ipynb
The FMPy Web App is built with Dash and a great way to share your FMUs with anyone that has a web browser. To start it run
python -m fmpy.webapp Rectifier.fmu
on the command line or use --help
for more options.
To learn more about how to use FMPy in you own scripts take a look at the coupled_clutches.py, custom_input.py and parameter_variation.py examples.
You're starting a project, need training or professional support? Our partners at LTX Simulation are ready to help you. Please send an e-mail to [email protected] for a quote.
© 2023 Dassault Systèmes