GithubHelp home page GithubHelp logo

traversaro / awesome-fmi Goto Github PK

View Code? Open in Web Editor NEW
144.0 18.0 20.0 63 KB

A curated list of Functional Mock-up Interface (FMI) libraries, tools and resources.

fmi fmi-standard fmu functional-mockup-interface ssp system-structure-parameterization awesome awesome-list

awesome-fmi's Introduction

Awesome FMI Awesome

A curated list of Functional Mock-up Interface (FMI) libraries, tools and resources.

Functional Mock-up Interface (FMI) is a tool independent standard to support both model exchange and co-simulation of dynamic models. See the official FMI website for the official specification and more information about the FMI standard.

Contents

FMI 2

The latest (as of June 2024) stable release of the FMI 2 specification is 2.0.4, released on 2022-12-1. You can find the text of the FMI specification 2.0.4 at https://github.com/modelica/fmi-standard/releases/tag/v2.0.4 . Unless noted otherwise, the tools and libraries listed are compatible with FMI 2.

Libraries

Libraries to import, simulate and export FMUs (Functional Mock-up Units) that support FMI 2.

C

  • FMI Library - C library for import of FMUs. [BSD]
  • FMU SDK - C library for exporting FMUs. [BSD]

C++

  • FMI++ - C++ library for import and export of FMUs. [BSD]
  • FMI4cpp - FMI 2.0 implementation written in modern C++. [MIT]

Python

  • PyFMI - Python package for loading and interacting with FMUs, based on the FMI Library. [LGPL]
  • FMPy - Python package for loading and interacting with FMUs. It supports also the latest System Structure and Parameterization (SSP standard). [BSD]
  • FMI++ Python Interface - Python interface for the FMI++ library. [BSD, BOOST]
  • SimulatorToFMU - Python package that allows to export a memoryless Python-driven simulation program or script as a FMU. [BSD]
  • modestpy - Python package for parameter estimation in FMUs. [BSD]
  • PythonFMU - Framework for exporting Python code as FMUs. [MIT]
  • qFMU - Generate standard LTI system FMUs through CLI [BSD]

Java

  • FMI4j - Java/Kotlin library for dealing with FMUs on the JVM platform. [MIT]
  • javaFMI - Java library for import and export of FMUs. [LGPL3]

MATLAB/Simulink

  • Simulink FMU Importing/Export a Model as a Tool-Coupling FMU - Out-of-the-box official support for FMU import and export (tool coupling) in Simulink. [Commercial]
  • FMI Toolbox for MATLAB/Simulink - Toolbox with support for Simulink FMU Import/Export and MATLAB FMU import. [Commercial]
  • matlab-fmu - MATLAB Toolbox for Windows with support for import of FMUs for Model-Exchange and Co-Simulation as well as the export of MATLAB scripts as FMUs for Co-Simulation, based on the FMI++ library. [BSD]
  • Simulix - A third-party Simulink tool to generate FMUs from Simulink models using the C-API. [GPL3]
  • FMIKit-Simulink - Import and export Functional Mock-up Units with Simulink. [BSD]

Rust

  • rust-fmi - A Rust interface to FMUs (Functional Mock-up Units) that follow the FMI Standard. [APACHE2/MIT]

Julia

  • FMI.jl - Library which integrates FMI and permits load, instantiate, parameterize and simulate FMUs seamlessly inside the Julia programming language. [MIT]
  • FMIFlux.jl - Library which offers the ability to setup NeuralFMUs, put FMUs inside any feed-forward NN topology and get a hybrid model trainable with a standard AD training process. [MIT]

Tools

For the official list of tools that support FMI 2, check http://fmi-standard.org/tools/ .

  • λ-Sim - Tool that converts FMU simulation models into REST APIs. [MIT]
  • Dymola - A modeling and simulation environment for Modelica, with full support for FMI. [Commercial]
  • FMIGo! - A set of tools for dealing with the FMI and SSP standards. [MIT]
  • FMITerminalBlock - Two way interface between the FMI and IEC 61499-based controllers. [BSD]
  • FMU-proxy - Framework that allows Functional Mock-up Units (FMUs) to be accessed through language independent RPC calls and that permits to transform a co-simulation FMU into a proxified version of the same FMU, so that each FMU can run in a separate process. [MIT]
  • Unity-FMI-Addon - FMI support for Unity, a cross-platform game engine. [BSD]
  • ROS fmi_adapter - FMI support for ROS, a flexible framework for writing robot software. [APACHE2]
  • fmi_adapter_ros2 - FMI support for ROS2, the new version of the Robot Operating System. [APACHE2]
  • fmu-viewer - A simple FMU viewer in the browser

FMI 3

The latest (as of June 2024) stable release of the FMI 3 specification is 3.0.1, released on 2023-07-10 . You can find the text of the FMI specification 3.0.1 at https://fmi-standard.org/docs/3.0.1/ . General information on the FMI 3.0 feature list can be found in https://fmi-standard.org/faq/ .

Some of the projects listed in the previous section also support for FMI 3 :

  • Examples:
    • Reference-FMUs : 3.0 examples FMUs are available, including examples for new co-simulation features such as scheduled co-simulation and early return in co-simulation.
    • PMSFIT/FMI30TestFMUs : Some examples FMUs based on the FMI 3.0 specification are available, including features such as binary variables.
  • Modelica:
    • Dymola - support for FMI 3.0 is available, including arrays, terminals, icons, event mode and early return.
  • Python:
    • fmpy - support for FMI 3.0 is available.
  • Julia:
    • FMI.jl - experimental support for FMI 3.0 is work in progress
  • Simulink:
  • Formal models

Community

Contribute

Contributions are welcome! Read the contribution guidelines first.

License

CC0

awesome-fmi's People

Contributors

beutlich avatar chrbertsch avatar dagbruck avatar hyumo avatar markaren avatar traversaro avatar vruge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-fmi's Issues

Introduce a new category for AI / ML learning tools supporting FMI?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.