Пожалуйста, рассмотрите следующую примерную модель Modelica:
model Detection2
Real x = (1-2*time)*1e5;
parameter Real x_min=0.1;
Real y;
equation
y = max(x,x_min);
assert(y>x_min, "(assert) triggered at t = " + String(time), level=AssertionLevel.warning);
when y <= x_min then
Modelica.Utilities.Streams.print("(when) triggered at t = " + String(time));
end when;
annotation (experiment(StopTime=1));
end Detection2;
Когда я имитирую ее (в Dymola 2019FD01), я получаю следующие результаты:
Результаты выглядят так, как ожидается, но и сообщение assert, и оператор print печатают неверное время, они всегда печатают время остановки, а не время, которое я ожидал!?