Modelicaのジャンプ/不連続を処理する面でヒントやトリックがあったのでしょうか?私はOpenModelicaを使用しています。私の問題のための簡略化されたサンプルコードを以下に示します。斜面の誘導体は有限である場合、私は、連続したトランジションに5〜15秒でジャンプを行うことができますどのようにModelicaでジャンプ/不連続を処理する
model PowerGenerator
Modelica.SIunits.Power P(start=0);
output Modelica.SIunits.Energy E;
equation
if (5 < time) and (time < 15) then P = 3;
else P = 0;
end if;
der(E) = P;
end PowerGenerator;
?私はnoEvent
とsmooth
の機能を試しましたが、私はそれらを私が必要とするものにすることができませんでした。
編集: 私の主なモデルの問題は、これらのイベントがチャタリングを誘発するため、リアルタイムで動作する必要があることです。私のフルモデルでも、出来事は州の出来事なので、時間は分かっていません。
私が提出した解決策が時間の問題だけであるという主張は正しいとは思いません。時間を他の変数の関数である任意の変数に置き換えることができます。 「低い」および「高い」値さえも、他の変数の関数となり得る。私はこの方法を成功と一緒に使ってきました(これまでのところ)。 –
それは他の変数でもうまく動作します。ただし、任意の状態イベントだけでなく、明示的に関与する変数が必要です。 –
このメソッドは、私のモデルでいくつかの変更を加えても機能すると思われますが、値の0から0までのステップに相当するときには、ややチャタリングが発生します。そこに提案はありますか? – Bart