2
私は、事前に知られている特定の時刻に行動を変える連続時間システムをモデル化したいと考えています。小さな例は次のとおりです。Modelicaで1回の時間イベントを所定の時間にモデル化するにはどうすればよいですか?
model time_event
Real x(start = 0) "state variable for this example";
parameter T_ch = 5 "time at which the system dynamics undergoes a change";
equation
if time <= T_ch then
der(x) = x + 1;
end if;
if time > T_ch then
der(x) = -x;
end if;
end time_event;
どうもありがとうございました。コンパイラが私のコードでエラーを出す理由は何ですか?私が見る限り、2つのコードはプログラム的に同じです。 – user13052
if式は各分岐に同じ数の方程式を持つ必要があります。ここでは、どの方程式der(x)が解かれるかを知る必要があるからです。 der(x)には2つの異なる方程式があり、エラーが出るはずです。この答えは、中間変数xbを方程式から外しました。この変数は、その変数をプロットしない限り、必要ではありません。条件がパラメータ(時間ではない)のみを含む場合、コンパイラは分岐を評価できる可能性があります。これらのケースでは、if式の一部が削除されるため、if式のバランスをとる必要はありません。 –