我正在研究一个包含多个子系统的大型模型,以及相当多的变量/方程式。我一直在子系统上使用 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;
谢谢, 贾斯汀
答案 0 :(得分:2)
请参阅HideResult注释: https://modelica.org/documents/ModelicaSpec33Revision1.pdf
subsystem subsystem1 annotation(HideResult = true / false);
答案 1 :(得分:1)
使用HideResult是一种可能性 - 另一种方法是始终使其受到保护,并在您想要调查时存储受保护的变量(“模拟设置>输出>存储其他变量”)。