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.
- 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)
- 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