SMArtInt+

Die Modelica Library zur einfachen und anwenderfreundlichen Erzeugung und Integration von neuronalen Netzen in Modelica Modellen

 

Es besteht ein zunehmender Bedarf an hybriden Modellen, die aus physischen und Surrogat- sowie datengesteuerten Modellen bestehen. XRG hat mit der SMArtInt+ Library eine Schnittstelle entwickelt, die die einfache Integration neuronaler Netzwerke unterschiedlicher Quellen und Arten ermöglicht. SMArtInt steht für Smarte Integration von Künstlicher Intelligenz in Modelica. Die reduzierte Open-Source-Fassung SMArtInt, die bereits im Dymola Library Portfolio verfügbar ist, wurde in vielen realen Anwendungen erfolgreich getestet und steht kostenfrei auf github zur Verfügung.

Es existieren zahlreiche KI-Frameworks zur Erstellung neuronaler Netze: z.B. TensorFlow, PyTorch, Flux.jl (Julia) und andere. Die SMArtInt+ Library ermöglicht Ihnen eine standardisierte benutzerfreundliche und effiziente Integration von Machine Learning Modellen unterschiedlicher Herkunft. Die neuronalen Netze werden als externe Quelldateien integriert, die unabhängig vom Modelica Code verändert werden können.Derzeit unterstützt SMArtInt+ TensorFlow-, TensorFlow lite  und ONNX-Modelle, die nach Dymola und OpenModelica exportiert bzw. dort von Modelica-Blöcken importiert werden können.

Beispiel Modell für die Einbindung von Stateful Recurrent Neural Networks

Diese typischen Arten von neuronalen Netzen werden unterstützt:

  • Quasistatische Feed Forward Neural Networks (FFNN)
  • Dynamische Recurrent Neural Networks (RNN), stateful oder non-stateful
  • Neuronale Gewöhnliche Differentialgleichungen (NODE)
  • Generative Modelle, die nach dem Encoder/Decoder-Prinzip arbeiten
  • Surrogat-Modelle von komplexen Anwendungen (BNODE - Balanced Neural Ordinary Differential Equations)

Featurevergleich von SMArtInt+ zu SMArtInt

In der kommerziellen Fassung sind gegenüber der kostenfreien Fassung folgende wertvolle Features enthalten:

  • Latin-Hypercube-Generator zur Erstellung von Trainingsdaten aus Modelica-Modellen
  • Trainingsmodelle zur Erstellung von neuronalen TensorFlow-Netzen in Dymola oder OpenModelica
  • Automatische Modelica-Block-Generierung aus externen neuronalen Netzen
  • Extrapolationswarnung (animiert und als Prompt-Warnung), falls der Input die konvexe Hülle der Trainingsdaten verlässt oder die Inputs in einem Bereich mit niedriger Trainingsdatendichte liegen
  • Zusätzliche I/O-Features: Skalierung und Glättung
  • Python-Konverter für sRNN von TensorFlow nach TensorFlow lite
  • Entdimensionalisierung von Neuronalen Netzwerken um diese unabhängig von absoluten Inputs zu machen
  • und natürlich XRG-Support

Die neue Tool-Chain zur Erstellung und Integration von neuronalen Netzen mit Modelica Werkzeugen

Die neue Modelica- und Python-basierte Tool-Chain steht in den unten genannten Simulatoren zur Verfügung. Sie ermöglicht eine nahtlose Erstellung von neuronalen Netzen ohne dafür das Simulationswerkzeug verlassen zu müssen.

 

  • Schritt 1
    Falls Ihnen Trainingsdaten nicht zur Verfügung stehen, können Sie diese aus einem physikalischen (oder mathematischen) Modelica-Modell automatisch erstellen. Sie müssen nur die benötigten Outputs definieren um Ihre Trainingsdaten mit einem Latin-Hypercube-Verfahren zu erzeugen.
  • Schritt 2
    Erstellen Sie eine beliebige Konfiguration eines neuronalen Netzes (FNN, RNN, etc.) aus parametrisierbaren Modelica-Blöcken und führen Sie das Training aus dem Modelica-Werkzeug heraus durch.
  • Schritt 3
    Integrieren Sie das erzeugte neuronale Netz mit Hilfe eines automatischen Blockgenerators und verknüpfen Sie es unter Verwendung von Modelica-Standardschnittstellen mit Ihren physikalischen oder mathematischen Modellen. Eventuelle Extrapolationsfehler können mit dem animierten Extrapolationsblock anschaulich überprüft werden.

Use Case

Im Forschungsvorhaben DIZPROVI wurde mit Messdaten ein Ersatzmodell eines Wasserdampfwärmeübertragers erstellt. Die Ergebnisse des hybriden Modells (blaue Linie und Punkte) sind in den nachfolgenden Grafiken im Vergleich zu dem rein physikalischen Modell (rote Linie und Punkte) dargestellt. Verglichen wurde ein Szenario aus Messdaten, die nicht Teil der Trainingsdaten waren.  

Kompatibilität

Die Bibliothek ist getestet und verfügbar für aktuelle Fassungen von:

  • Dymola
  • OpenModelica