2017-09-29 2 views
6

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?

+0

siehe auch: https://trac.modelica.org/Modelica/ticket/376 – matth

Antwort

2

Leider gibt es keine Lösung gemäß der Modelica-Spezifikation, da unit_exponent in Abschnitt 19.1 von Modelica 3.4 als vorzeichenbehaftete Ganzzahl definiert ist (und nicht in Klammern stehen kann und^für Exponentiation nicht zulässig ist).

Das Ziel der Unit-Definition in Modelica ist die Übereinstimmung mit "The International System of Units (SI)" und ich konnte keine Entscheidung über nicht-ganzzahlige Exponenten finden. (Und da sie normalerweise mit hochgestellten Zeichen geschrieben werden, ist dies weniger ein Problem.)

+1

Warum nicht den "squared parameter" mit einem Namen verwenden "flow_coeff_squared" mit Einheiten (m³/s) ² geteilt durch Pa? –

+1

Hier ist ein hilfreiches Beispiel für "quadrierten Parameter": http://unitsofmeasure.org/trac/ticket/51 – matth