Я пытаюсь понять семантику Modelica для дискретного сигнала. Учитывая ступенчатый сигнал, который мгновенно переходит от 0,0 к 1,0 с бесконечным наклоном при t = 0,5. Затем предположим, что у вас также есть оператор when, как в следующем коде:
model test_discrete
Modelica.Blocks.Interfaces.RealOutput q(start = -1.0);
Modelica.Blocks.Sources.Step step(
height=1,
offset=0,
startTime=0.5)
algorithm
when time >= 0.5 and time <= 0.5 then
q := step.y;
end when;
equation
end test_discrete;
У меня вопрос, будет ли q 0,0 или 1,0? Предположим, что q инициализировано значением -1. Когда я реализую код, он переходит на 1.0, но меня беспокоит то, что 0.0 также удовлетворяет уравнению. Так что мне просто интересно, есть ли какие-то правила, предотвращающие недетерминированное поведение. Если бы кто-то мог мне помочь или указать на любую литературу, я был бы очень признателен! Спасибо за ваше время.