【问题标题】:Modelica units of measurement with square root带有平方根的 Modelica 测量单位
【发布时间】:2017-09-29 14:52:18
【问题描述】:

在 Modelica 中,我尝试为液压孔的尺寸系数定义专用数据类型 OrifSizingCoeff。 对应的物理量是体积流量除以压力的平方根,因此:

a) SI 单位:m3/s 除以sqrt(Pa)

b) 在“实际”单位中:l/min 除以sqrt(bar)

我定义的数据类型如下:

type OrifSizingCoeff = Real(
    final quantity="Orifice sizing coefficient",
    final unit="m3/(s.Pa(1/2))",
    displayUnit="l/(min.bar(1/2))");

我没有收到任何解析错误,但单位转换不起作用(参数值不会从一个单位更改为另一个单位);如果我将(1/2) 替换为:

  • 0.5
  • 05

相反,如果我将(1/2) 替换为:

  • (0.5)
  • 0,5
  • (0,5)
  • ^(1/2)
  • ^(0.5)

我收到一个解析错误。 (我尝试了我能想到的任何疯狂的事情)。

而且,如果我将(1/2) 替换为1/2,则会执行转换,但它是“错误的”。 (根据Modelica的语法,Pa1/2被解释为(Pa1)/2 = Pa/2bar1/2也一样。因此这两个单位分别对应m3/(s.Pa/2)l/(min.bar/2)

有没有办法正确定义我需要的单位?

【问题讨论】:

标签: modelica openmodelica


【解决方案1】:

不幸的是,根据 Modelica 规范没有解决方案,因为在 Modelica 3.4 的第 19.1 节中 unit_exponent 被定义为有符号整数(并且不能放在括号中,并且 ^ 不允许取幂)。

Modelica 中单位定义的目标是符合“国际单位制 (SI)”,我找不到关于非整数指数的任何决定。 (而且由于它们通常用上标书写,所以问题不大。)

【讨论】:

  • 为什么不使用名称为“flow_coeff_squared”的“平方参数”,单位为 (m³/s)² 除以 Pa?
  • 这是一个有用的“平方参数”示例:unitsofmeasure.org/trac/ticket/51
猜你喜欢
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
  • 2014-02-16
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
相关资源
最近更新 更多