我想了解离散信号的Modelica语义。给定一个在t = 0.5时无限斜率瞬时从0.0变化到1.0的阶跃信号。那么我们假设你也有如下代码中的when语句:Modelica离散语义
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也满足方程。所以我只是想知道是否有任何规则来防止非决定性行为。如果有人能帮忙或指点我的任何文学,那将不胜感激!谢谢你的时间。
感谢您的回复。这也是我的想法,它是非确定性的。关于何时声明,是的,我同意并理解if声明之间的区别。我是Modelica的新手,自然而然地想到传统的if语句而没有意识到这一点。感谢您指出。 – jackfrost9p