Modelica: при первоначальной печати только один раз - PullRequest
0 голосов
/ 27 октября 2018

У меня есть следующий код Modelica внутри компонента, который несколько раз используется в модели системы:

parameter fileName = "world.log"
equation  
  when initial() then
    if not Modelica.Utilities.Files.exist(fileName) then
      Streams.print("Hello World", fileName);
    end if;
  end when;

Я бы ожидал найти ровно одну строку кода в созданном файле, но вместо этогообычно печатаются 5 или более строк, но иногда кажется, что они работают, как ожидалось.Использование Dymola 2019 в Windows 10. Кто-нибудь может прояснить, что происходит?Проверка существования файла кажется ненадежной!?

1 Ответ

0 голосов
/ 27 октября 2018

when initial() не имеет отношения к событиям вообще.Он преобразуется в исходное уравнение и, таким образом, может выполняться несколько раз.Внешние объекты гораздо надежнее, когда дело доходит до выполнения уравнений только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...