離散信号の 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 も方程式を満たすのではないかと混乱しています。したがって、非決定的な動作を防ぐためのルールがあるかどうか疑問に思っています。誰かが私を助けたり、文献を教えてくれたりしたら、それは大歓迎です! 御時間ありがとうございます。