是否可以在 Modelica 中有条件地设置方程属性?
Is it possible to conditionally set equation attributes in Modelica?
我正在研究一个包含多个子系统和相当多 variables/equations 的大型模型。我一直在子系统上使用 protected 属性,以便只有系统级结果在模拟结果中可见。这使得在 Dymola 仿真选项卡或 FMU inputs/outputs 中更容易找到系统级结果。但在某些情况下,如果能够看到子系统的完整详细信息,那将是一件好事。
是否可以根据布尔参数或其他方式有条件地应用 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;
谢谢,
贾斯汀
参见 HideResult 注释:
https://modelica.org/documents/ModelicaSpec33Revision1.pdf
subsystem subsystem1 annotation(HideResult = true / false);
使用 HideResult 是一种可能性 - 另一种是始终使其受到保护,并在您想要调查它时存储受保护的变量 ("Simulation Setup>Output>Store Additional variables")。
我正在研究一个包含多个子系统和相当多 variables/equations 的大型模型。我一直在子系统上使用 protected 属性,以便只有系统级结果在模拟结果中可见。这使得在 Dymola 仿真选项卡或 FMU inputs/outputs 中更容易找到系统级结果。但在某些情况下,如果能够看到子系统的完整详细信息,那将是一件好事。
是否可以根据布尔参数或其他方式有条件地应用 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;
谢谢, 贾斯汀
参见 HideResult 注释: https://modelica.org/documents/ModelicaSpec33Revision1.pdf
subsystem subsystem1 annotation(HideResult = true / false);
使用 HideResult 是一种可能性 - 另一种是始终使其受到保护,并在您想要调查它时存储受保护的变量 ("Simulation Setup>Output>Store Additional variables")。