在Modelica中,我尝试为液压孔上的尺寸系数定义专用数据类型( OrifSizingCoeff )。 相应的物理量是体积流量除以压力的平方根,因此: a)以SI单位:m3 / s除以sqrt(Pa); b)实践"单位:l / min除以sqrt(bar)。 我定义了数据类型如下: 类型OrifSizingCoeff =真实(最终数量="孔口尺寸系数",最终单位=" m3 /(s.Pa(1/2))",displayUnit =&# 34; 1 /(min.bar(1/2))&#34);
我没有得到任何解析错误,但单位转换不起作用(参数值不会从一个单位变为另一个单位);如果我将(1/2)替换为:
,也会发生同样的情况相反,如果我将(1/2)替换为:
我收到解析错误。 (我尝试过任何我能想到的疯狂事情)。
并且,如果我用 1/2 替换(1/2),则会执行转换但是它会错误地#34; 。 (根据Modelica的sintax, Pa1 / 2 解释为(Pa1)/ 2 = Pa / 2 ;同样为< em> bar1 / 2 。因此两个单位对应 m3 /(s.Pa/2)和 l /(min.bar/2),分别地)。
有没有办法正确定义我需要的单位?
答案 0 :(得分:2)
不幸的是,根据Modelica规范,没有解决方案,因为在Modelica 3.4的第19.1节中,unit_exponent被定义为有符号整数(并且不能在括号中,并且不允许取幂^)。
Modelica中单位定义的目标是符合国际单位制(SI)&#34;我找不到任何关于非整数指数的决定。 (因为它们通常用上标写成,所以它不是一个问题。)