Motivation
In der technischen Modellierung begegnet man immer wieder dem gleichen Problem:
Parameter haben nicht nur Werte, sondern auch Einheiten, Dimensionen und
Abhängigkeiten von anderen Parametern.
Ein naiver Ansatz – Parameter als einfache float-Werte – verliert diese Information
und führt unweigerlich zu schwer auffindbaren Fehlern.
Parameterzentrierte Modellierung
In Synarius ist ein Parameter kein reiner Zahlenwert, sondern ein Objekt mit Metadaten:
from synarius.core import Parameter, Unit
mass = Parameter(
name="Fahrzeugmasse",
value=1500.0,
unit=Unit("kg"),
description="Gesamtmasse des Fahrzeugs inklusive Zuladung",
)
Vorteile
- Einheitenkonsistenz wird zur Laufzeit geprüft
- Die Intermediate Representation enthält vollständige Typinformationen
- Codegenerierung (Python, C, FMU) nutzt diese Informationen direkt
Intermediate Representation
Das Modell wird zunächst in eine Intermediate Representation (IR) überführt,
bevor Code generiert wird. Die IR ist ein gerichteter azyklischer Graph (DAG),
in dem Knoten Parameter und Kanten Abhängigkeiten repräsentieren.
Parameter A ──▶ Berechnung X ──▶ Parameter C
Parameter B ──▶ Berechnung X
Diese strikte Trennung – Modell → IR → Code – macht das System
target-agnostic: dasselbe Modell kann Python-Code, C-Code oder FMU-Pakete
erzeugen.
Ausblick
Die nächste Ausbaustufe ist die Integration von Engineering-AI-Methoden:
Modelle, die aus Messdaten gelernte Zusammenhänge mit physikalisch motivierten
Strukturen kombinieren.