1

假设我可能想根据某些条件导入一个组件,比如说一个布尔变量。我已经尝试过了,但它给了我一条错误消息。例如,考虑以下代码:

model myNewModel
    parameter Boolean use_Something;
    myLibrary.myComponent component[if use_Something then 1 else 0];
    // In other words (pseudo):
    // if use_Something then 'Import The Component' else 'Do Nothing At All';
end myNewModel;

直观地说,这是一个安全的声明,只要布尔变量为真,它就会按预期工作。对于某些单元,例如 Modelica 标准库的流体端口,它也适用于 [0] 大小。但是,一旦我将变量设置为 false,就会遇到许多组件与“零大小”不兼容的错误。例如,我在 Modelica 标准库中的 MassFlowSources 中遇到过这个问题。有没有一种流畅/优雅的方式来解决这个问题?提前致谢!

4

1 回答 1

3

您可以在 Modelica 中使用条件组件。

模型 myNewModel
    参数布尔值 use_Something;
    myLibrary.myComponent 组件 if use_Something;
结束我的新模型;

该组件只能在连接语句中使用。如果条件为假,则工具会忽略这些连接。

于 2013-08-07T20:37:21.660 回答