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

标签 user-interface types parameters modelica isinstance

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

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

我正在考虑类似Python中的东西,你可以使用type(variable)isinstance(object, class)。这种方法似乎在许多语言中都是可行的,但在 Modelica 中可行吗?

我想到的一个解决方法是在可替换模型/包中添加一些(或使用现有的)常量并在比较中使用它,例如常量字符串mediumName常量整数correlationID,但我认为这是一种解决方法。

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

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

最佳答案

中等包已经具有您可以比较的属性mediumName,例如使用以下代码:

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

最诚挚的问候, 雷内·贾斯特·尼尔森

关于user-interface - Modelica:检查可替换包或模型的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62280113/

相关文章:

user-interface - 如何在任务完成后显示然后隐藏 javafx 中的标签

c# - C# 中的菱形语法

methods - 静态类型语言中的多界方法?

c - 通过修补源将自定义参数添加到 imagemagick

php - php 中一个函数是否可以返回 2 个或多个不同数据类型的值?

user-interface - 如何在 Flutter 中不使用 AppBar 的情况下添加后退按钮?

c++ - 将复选框列添加到树左侧的 QTreeView 的方法?

powershell - 较短版本的 powershell cmdlet 参数

java - 仅在循环中创建的最后一个 JLabel 上检测到 MouseListener

C++ 错误 : 'unordered_map' does not name a type