Измерение времени события в Modelica

Есть ли способ измерить время, в которое происходит событие (без использования образца или чего-то подобного) в Modelica? что-то вроде команды tic toc в MATLAB? что я хотел бы видеть, так это разницу во времени, когда происходят разные события. Например, в следующем примере кода есть ли способ увидеть прошедшее время с помощью test_time1 и test_time2?

when event1 then 
 a:=2;
 event2:= true;
 test_time1 := time;
end when;
when event2 then 
a:= 5;
test_time2 := time;
end when;

person Shaga    schedule 03.03.2016    source источник


Ответы (1)


abs(test_time2-test_time1) должен сделать это, если вы не знаете, что происходит первым. Обратите внимание, что это будет время симуляции, а не реальное (стенное) время. Если вы хотите измерить реальное время, необходимое для симуляции для запуска двух событий, вам нужно использовать внешние функции C, вызывающие ваши собственные tic и toc.

person sjoelund.se    schedule 04.03.2016
comment
Спасибо за ответ @sjoelund.se. Я немного отредактировал пример кода. event1 запускает event2, и в этом случае я всегда получаю одинаковые значения в test_time1 и test_time2. Я понял, что я всегда смотрел на переменную time как на реальное время (имея в виду много логики программирования MATLAB). - person Shaga; 04.03.2016
comment
Благодаря вашему комментарию я прочитал немного больше и понял, что я неправильно смотрел на проблему, и время моделирования фактически останавливается, когда происходит событие, пока не будет выполнено условие pre(var) == var. - person Shaga; 17.03.2016