我试图理解离散信号的 Modelica 语义。给定一个在 t = 0.5 处以无限斜率瞬时从 0.0 过渡到 1.0 的阶跃信号。然后假设您还有一个 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 也会满足等式。所以我只是想知道是否有任何规则可以防止非决定性行为。如果有人可以帮助或指出我的任何文献,那将不胜感激!谢谢你的时间。