2013-08-07 34 views
1

比方说,我可以根据某种条件导入组件,比如我想说一个布尔变量。我试过这个,但它给了我一个错误信息。例如,考虑下面的代码:基于布尔条件在Modelica中使用单元/组件

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标准库的fluidports,它也可以使用[0]大小。但是,只要将变量设置为false,我就会遇到有关许多组件与“零大小”不兼容的错误。例如,我遇到了Modelica标准库中的MassFlowSources问题。有没有一种平滑/优雅的方法来解决这个问题?提前致谢!

回答

3

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

model myNewModel 
    parameter Boolean use_Something; 
    myLibrary.myComponent component if use_Something; 
end myNewModel;

此组件可能只能用于连接语句。如果条件为false,则该工具会忽略这些连接。

+0

谢谢!这解决了我的问题。 – fredrikg