PyFMI: A Python Package for Simulation of Coupled Dynamic Models with the Functional Mock-up Interface

Andersson, Christian; Åkesson, Johan; Führer, Claus (2016). PyFMI: A Python Package for Simulation of Coupled Dynamic Models with the Functional Mock-up Interface In Technical Report in Mathematical Sciences (2): Centre for Mathematical Sciences, Lund University
Download:
Report | Published | English
Authors:
Andersson, Christian ; Åkesson, Johan ; Führer, Claus
Department:
Mathematics (Faculty of Engineering)
Department of Automatic Control
Numerical Analysis
Project:
LCCC
Research Group:
Numerical Analysis
Abstract:
With the advent of the Functional Mock-up Interface (FMI) standard, exchanging dynamic models between modeling and simulation tools has been greatly simplified. At the core of it, FMI is a standardized and unified model execution interface for dynamic models. FMI has gained widespread adoption among users and numerous commercial and open source tools implement support for the standard. In this article, the Python package PyFMI is introduced. PyFMI supports loading and execution of models compliant with the FMI standard, called Functional Mock-up Units (FMUs). It includes a master algorithm for simulation of coupled FMUs together with connections to both Assimulo, for simulation of single FMUs, and to SciPy, for performing parameter estimation. Accessing models compliant with FMI in Python, which is an open and accessible scripting language, is intended to further spread the standard and also promote and facilitate future development of the standard. This is due to Python being a convenient language for experimentation and prototyping of numerical algorithms. PyFMI is also demonstrated on a number of problems that highlights its viability for solving industrial grade simulation problems with FMUs.
Keywords:
Functional Mock-up Interface ; FMI ; Python ; Simulation ; Co-Simulation ; Ordinary differential equations ; Parameter Estimation
ISSN:
1403-9338
LUP-ID:
961a50eb-e4a8-43bc-80ac-d467eef26193 | Link: https://lup.lub.lu.se/record/961a50eb-e4a8-43bc-80ac-d467eef26193 | Statistics

Cite this