In Modelica versuche ich einen dedizierten Datentyp (OrifSizingCoeff) für den Sizing-Koeffizienten auf einer hydraulischen Blende zu definieren. Die entsprechende physikalische Größe ist ein Volumenstrom dividiert durch die Quadratwurzel eines Drucks, also: a) In SI-Einheiten: m3/s dividiert durch sqrt (Pa); b) In "praktischen" Einheiten: l/min dividiert durch sqrt (bar). Ich habe den Datentyp wie folgt definiert: Typ OrifSizingCoeff = Real (Endmenge = "Öffnungsgrößenkoeffizient", letzte Einheit = "m3/(s.Pa (1/2))", displayUnit = "l/(min .bar (1/2)) ");Modelica Maßeinheiten mit Quadratwurzel
Ich bekomme keine Analysefehler, aber die Einheitenumrechnung funktioniert nicht (Parameterwert ändert sich nicht von einer Einheit zur anderen); das gleiche passiert, wenn ich (1/2) mit ersetzen:
- 0,5
Stattdessen, wenn I (1/2) Ersetzen durch:
- (0,5)
- 0,5
- (0,5)
- ^(1/2)
- ^(0,5)
ich einen Parsingfehler. (Ich habe jede verrückte Sache versucht, die mir einfällt).
Und wenn ich (1/2) mit 1/2 ersetzen, wird eine Konvertierung durchgeführt, aber es ist "falsch". (Nach der Modelica sintax, Pa1/2 in interpretiert als (Pa1)/2 = Pa/2;. Elbe für bar1/2 Daher sind die zwei Einheiten entsprechen m3/(s.Pa/ 2) und l/(min.bar/2), jeweils).
Gibt es eine Möglichkeit, die benötigten Einheiten korrekt zu definieren?
siehe auch: https://trac.modelica.org/Modelica/ticket/376 – matth