如何使用 Dymola 添加单位换算

How to add unit conversions using Dymola

在Modelica标准库中,SpecificEnergy和SpecificEnthalpy的单位是“J/kg”,但我想用“kJ/kg”作为显示单位,我的第一个想法是修改Modelica Standard Library,但不确定会不会出现意想不到的问题,所以想办法定制自己的Modelica Standard Library。这样,我就可以选择使用自己的版本还是标准版本了。

我的问题是:有这样的方法吗?

在 Dymola 中扩展单位转换有多种可能性。可能最好的是 Hans Olsson 在下面提到的问题,但你也可以

  1. 像这样创建一个函数:

function unitConversions "Define unit conversions, which are currently not pre-defined by Dymola"
  extends DymolaModels.Icons.Basic.Function;

algorithm 

  defineUnitConversion("J/kg", "kJ/kg", 1e-3);
  // more conversions could be added here

end unitConversions;

函数执行后,Dymola 的当前会话应该可以进行转换。因此,您需要在每次启动 Dymola 时手动 运行 该功能。这实际上是我问 问题的原因之一 - 但直到现在似乎还没有答案。

  1. 作为替代方案,您可以修改 E:\[Dymola_InstallPath]\insert\displayunit.mos 并添加同一行。在安装新版本的 Dymola 之前,这将可用,为此您必须进行相同的修改...

除了使用 defineUnitConversion 之外,还有另一种可能的前缀单位,例如“kJ/kg”或“MJ/kg”:只需在模型中通过创建该显示单元定义一个变量,例如,

  SpecificEnthalphy myEnthalpy(displayUnit="MJ/kg")=...;

然后模拟模型。

这种情况下不需要指定换算系数(自动找到)。