FMIFlux.jl is a free-to-use software library for the Julia programming language, which offers the ability to set up NeuralFMUs just like NeuralODEs: You can place FMUs (fmi-standard.org) simply inside any feed-forward ANN topology and still keep the resulting hybrid model trainable with a standard AD training process.
-
Open a Julia-REPL, activate your preferred environment.
-
Goto Package-Manager (if not already), install FMIFlux.jl.
julia> ] (@v1.6) pkg> add FMIFlux
If you want to check that everything works correctly, you can run the tests bundled with FMIFlux.jl:
julia> using Pkg julia> Pkg.test("FMIFlux")
Additionally, you can check the version of FMIFlux.jl that you have installed with the
status
command.julia> ] (@v1.6) pkg> status FMIFlux
-
Have a look inside the examples folder in the examples branch or the examples section of the documentation. All examples are available as Julia-Script (.jl), Jupyter-Notebook (.ipynb) and Markdown (.md).
- building and training ME-NeuralFMUs (event-handling is BETA) with the default Flux-Front-End
- building and training CS-NeuralFMUs with the default Flux-Front-End
- ...
- training ME-NeuralFMUs with state- and time-event-handling
To keep dependencies nice and clean, the original package FMI.jl had been split into new packages:
- FMI.jl: High level loading, manipulating, saving or building entire FMUs from scratch
- FMIImport.jl: Importing FMUs into Julia
- FMIExport.jl: Exporting stand-alone FMUs from Julia Code
- FMICore.jl: C-code wrapper for the FMI-standard
- FMIBuild.jl: Compiler/Compilation dependencies for FMIExport.jl
- FMIFlux.jl: Machine Learning with FMUs (differentiation over FMUs)
- FMIZoo.jl: A collection of testing and example FMUs
- performance optimizations
- different modes for sensitivity estimation
- improved documentation
- more examples
- ...
FMIFlux.jl is tested (and testing) under Julia versions 1.6.5 LTS and latest on Windows (latest) and Ubuntu (latest). MacOS should work, but untested.
Tobias Thummerer, Lars Mikelsons and Josef Kircher. 2021. NeuralFMU: towards structural integration of FMUs into neural networks. Martin Sjölund, Lena Buffoni, Adrian Pop and Lennart Ochel (Ed.). Proceedings of 14th Modelica Conference 2021, Linköping, Sweden, September 20-24, 2021. Linköping University Electronic Press, Linköping (Linköping Electronic Conference Proceedings ; 181), 297-306. DOI: 10.3384/ecp21181297
Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs Journal of Physics: Conference Series 2090, 1, 012155. DOI: 10.1088/1742-6596/2090/1/012155