如何使用 Dymola 添加单位换算
How to add unit conversions using Dymola
在Modelica标准库中,SpecificEnergy和SpecificEnthalpy的单位是“J/kg”,但我想用“kJ/kg”作为显示单位,我的第一个想法是修改Modelica Standard Library,但不确定会不会出现意想不到的问题,所以想办法定制自己的Modelica Standard Library。这样,我就可以选择使用自己的版本还是标准版本了。
我的问题是:有这样的方法吗?
在 Dymola 中扩展单位转换有多种可能性。可能最好的是 Hans Olsson 在下面提到的问题,但你也可以
- 像这样创建一个函数:
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 时手动 运行 该功能。这实际上是我问 问题的原因之一 - 但直到现在似乎还没有答案。
- 作为替代方案,您可以修改
E:\[Dymola_InstallPath]\insert\displayunit.mos
并添加同一行。在安装新版本的 Dymola 之前,这将可用,为此您必须进行相同的修改...
除了使用 defineUnitConversion 之外,还有另一种可能的前缀单位,例如“kJ/kg”或“MJ/kg”:只需在模型中通过创建该显示单元定义一个变量,例如,
SpecificEnthalphy myEnthalpy(displayUnit="MJ/kg")=...;
然后模拟模型。
这种情况下不需要指定换算系数(自动找到)。
在Modelica标准库中,SpecificEnergy和SpecificEnthalpy的单位是“J/kg”,但我想用“kJ/kg”作为显示单位,我的第一个想法是修改Modelica Standard Library,但不确定会不会出现意想不到的问题,所以想办法定制自己的Modelica Standard Library。这样,我就可以选择使用自己的版本还是标准版本了。
我的问题是:有这样的方法吗?
在 Dymola 中扩展单位转换有多种可能性。可能最好的是 Hans Olsson 在下面提到的问题,但你也可以
- 像这样创建一个函数:
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 时手动 运行 该功能。这实际上是我问
- 作为替代方案,您可以修改
E:\[Dymola_InstallPath]\insert\displayunit.mos
并添加同一行。在安装新版本的 Dymola 之前,这将可用,为此您必须进行相同的修改...
除了使用 defineUnitConversion 之外,还有另一种可能的前缀单位,例如“kJ/kg”或“MJ/kg”:只需在模型中通过创建该显示单元定义一个变量,例如,
SpecificEnthalphy myEnthalpy(displayUnit="MJ/kg")=...;
然后模拟模型。
这种情况下不需要指定换算系数(自动找到)。