Сравнение включаемых подсистем
В данном примере разобран вариант двух идентичных подсистем, с отличиями в настройках принимаемого сигнала управления, в первом случае сигнал запускает модель, во втором сбрасывает её выполнение.
На рисунке ниже показана сама модель.

Далее для запуска модели подключим вспомогательную функцию.
In [ ]:
function run_model( name_model)
Path = (@__DIR__) * "/" * name_model * ".engee"
if name_model in [m.name for m in engee.get_all_models()] # Проверка условия загрузки модели в ядро
model = engee.open( name_model ) # Открыть модель
model_output = engee.run( model, verbose=true ); # Запустить модель
else
model = engee.load( Path, force=true ) # Загрузить модель
model_output = engee.run( model, verbose=true ); # Запустить модель
engee.close( name_model, force=true ); # Закрыть модель
end
sleep(5)
return model_output
end
Out[0]:
Запустим модель.
In [ ]:
run_model("CompareEnabled") # Запуск модели.
Out[0]:
Распакуем и отобразим записанные с модели сигналы.
In [ ]:
held = simout["CompareEnabled/state_and_output_held.Out1"];
reset = simout["CompareEnabled/state_and_output_reset.Out1"];
Sine = simout["CompareEnabled/Sine Wave.1"];
held = collect(held);
reset = collect(reset);
Sine = collect(Sine);
plot(held.time, held.value)
plot!(reset.time, reset.value)
plot!(Sine.time, Sine.value)
Out[0]:
Вывод
Как мы видим исходя из результирующего графика, система со сбросом в момент перехода в положительную область управляющего сигнала переходит в начальное состояние интегратора, в то время как система без сброса продолжает отсчёт с последнего посчитанного значения внутри интегратора.