Можно ли условно установить атрибуты уравнения в Modelica?

Я работаю над большой моделью, которая включает в себя несколько подсистем и довольно большое количество переменных / уравнений. Я использовал защищенный атрибут в подсистемах, чтобы в результатах моделирования были видны только результаты уровня системы. Это облегчает поиск результатов системного уровня во вкладке симуляции Dymola или во входах / выходах FMU. Но бывают случаи, когда было бы неплохо увидеть весь уровень детализации и для подсистем.

Можно ли условно применить защищенный атрибут на основе логического параметра или каким-либо другим способом?

Например, возможно ли сделать что-то вроде псевдокода ниже?

// 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 ответа

Решение

См. Аннотацию HideResult: https://modelica.org/documents/ModelicaSpec33Revision1.pdf

subsystem subsystem1 annotation(HideResult = true / false);

Использование HideResult - это одна возможность, другая - всегда делать его защищенным и хранить защищенные переменные ("Настройка симуляции> Вывод> Сохранить дополнительные переменные"), когда вы хотите исследовать его.

Другие вопросы по тегам