Modelica:检查可替换包或模型的相等性

Modelica: check equality of replaceable package or model

在我的Modelica系统模型中,我有一个可替换包(介质、流体属性)和一个可替换模型(压力损失模型)。我能以某种方式检查是否选择了某个模型或包吗?以下方法不起作用,但也许可以解释我想要实现的目标:

replaceable package Medium = Modelica.Media.Water.WaterIF97_ph;
Boolean isWater = (Medium == Modelica.Media.Water.WaterIF97_ph);

我在想类似 python 的东西,你可以使用 type(variable) 还是 isinstance(object, class)。这种方法似乎在很多语言中都可行,但在 Modelica 中是否可行?

我想到的一个解决方法是在可替换 model/package 中添加一些(或使用现有的)常量并在比较中使用它,例如constant String mediumNameconstant Integer correlationID,但我认为这是一种解决方法。

解决方法似乎在使用整数时有效,但在使用字符串时无效。有什么意见吗?

通过比较常量整数,我可以计算出布尔值的正确值,但我遇到了另一个问题(至少在 Dymola 中):当我在注释对话框启用中使用布尔值时,它不起作用。计算布尔值时是否有规则?

中型包已经有一个 属性 mediumName 你可以比较,例如使用代码:

Boolean isWater = Modelica.Utilities.Strings.isEqual("WaterIF97", Medium.mediumName);

此致, 雷内·贾斯特·尼尔森