是否有可能在Modelica中有条件地设置方程属性?

时间:2016-08-02 01:31:18

标签: modelica dymola

我正在研究一个包含多个子系统的大型模型,以及相当多的变量/方程式。我一直在子系统上使用 protected 属性,因此在模拟结果中只能看到系统级结果。这样可以更轻松地在Dymola仿真选项卡或FMU输入/输出中查找系统级结果。但有些情况下,能够看到子系统的完整详细程度也是很好的。

是否可以根据布尔参数或其他方式有条件地应用 protected 属性?

例如,是否可以执行下面的伪代码?

// Parameter that sets whether or not to use the protected attribute on subsystems.
parameter Boolean useProtected = true;

// Conditionally define the subsystem with or without protected attribute
if (useProtected) then
  protected subsystem subsystem1 = ...
else
  subsystem subsystem1 = ...
end if;

谢谢, 贾斯汀

2 个答案:

答案 0 :(得分:2)

请参阅HideResult注释: https://modelica.org/documents/ModelicaSpec33Revision1.pdf

subsystem subsystem1 annotation(HideResult = true / false);

答案 1 :(得分:1)

使用HideResult是一种可能性 - 另一种方法是始终使其受到保护,并在您想要调查时存储受保护的变量(“模拟设置>输出>存储其他变量”)。