Dymola でステート マシンを使用しようとしているときに (ところで: 私はまったくの初心者です)、正弦曲線を入力変数として宣言するのに問題があります。次の最初のエラー メッセージが表示されます (先頭のみを貼り付けます)。
Continuous time parts and discrete parts don't decompose for:
_StateMachines.state1.activeReset
_StateMachines.state1.act...
そして2番目のもの:
Decomposition in base clocks failed.
See the file dsmodelBaseClockDecomposition.mof.
この問題は、連続時間変数、つまりサイン関数を離散ブロック、つまりステート マシンの入力として使用しようとすることによって引き起こされることを理解しています。
サイン関数をステート マシンに接続するにはどうすればよいですか?
編集:
私のコードは次のようになります (注釈を削除しました):
model ZLG3_v2 "2nd Version of ZLG3"
inner Real T_2(start=283);
Real T_ZuL(start=295);
model State1
outer output Real T_2;
equation
T_2=previous(T_2)+2;
end State1;
State1 state1;
model State3
outer output Real T_2;
equation
T_2=previous(T_2)-1;
end State3;
State3 state3;
Modelica.Blocks.Sources.Sine sine(freqHz=0.25, offset=305);
equation
//T_ZuL = 295;
T_ZuL=sine.y;
initialState(state1);
transition(
state3,
state1,T_2 <= T_ZuL,
immediate=false,
reset=true,
synchronize=false,
priority=1);
transition(
state1,
state3,T_2 > T_ZuL,
immediate=false,
priority=1,
reset=true,
synchronize=false);
end ZLG3_v2;
二本の線
//T_ZuL = 295;
T_ZuL=sine.y;
興味があります。sine.y で (現在コメントされていない) 方程式を使用すると、エラー メッセージが表示されます。逆に言えば、すべてがうまく機能します。
よろしくお願いいたします。