在尝试在 Dymola 中使用状态机时(顺便说一句:我绝对是新手),我无法将正弦曲线声明为输入变量。我收到以下第一条错误消息(我只粘贴开头):
Continuous time parts and discrete parts don't decompose for:
_StateMachines.state1.activeReset
_StateMachines.state1.act...
第二个:
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 的(当前未注释的)方程会出现错误消息。反过来,一切都很好。
非常感谢您提前和最好的问候。