Skip to content
/ Femyou Public

loading and running fmi-standard FMUs in dotnet core

License

Notifications You must be signed in to change notification settings

Oaz/Femyou

Repository files navigation

Femyou

loading and running fmi-standard FMUs in .NET

CI

The binary package is available from NuGet as a .NETStandard2.1 lib.

Features

This is a limited implementation of the fmi-standards.

Available features :

  • Load FMU model encoded in either FMI 2.0 or 3.0 standard
  • Get model variables
  • Create co-simulation instance
  • Read and write variable values from instance
  • Simulate by advancing time

The features are verified with the reference FMUs.

Example

using var model = Model.Load("BouncingBall.fmu");
var height = model.Variables["h"];
var velocity = model.Variables["v"];
double h = 60.0, v = 0.0;
using var instance = model.CreateCoSimulationInstance("demo");
instance.WriteReal((height, h), (velocity, v));
instance.StartTime(0.0);
while (h > 0 || Math.Abs(v) > 0)
{
  var values = instance.ReadReal(height, velocity).ToArray();
  h = values[0];
  v = values[1];
  instance.AdvanceTime(0.1);
}

Demos

These GIFs were created with

  • the included demo program
  • the Bouncing Ball reference FMU compiled in FMI 2.0 and 3.0 standards
FMI 2.0 FMI 3.0

About

loading and running fmi-standard FMUs in dotnet core

Resources

License

Stars

Watchers

Forks

Packages

No packages published