ステート チャートを介してシミュレーションで 2 つのモデルを 1 つずつ実行しようとしていました。擬似コードは次のとおりです。モデル テストには、stateA と stateB の 2 つのブロックがあります。シミュレーションの開始時に、stateA が実行されます。10 秒後、stateA が停止し、stateB が実行されます。停止点での v の値は、stateA から stateB に転送する必要があります。誰かアドバイスをくれませんか?どうもありがとう!
model test
inner Integer v(start = 1);
block StateA
outer output Integer v;
equation
v = previous(v) + 2;
end StateA;
StateA stateA;
block StateB
outer output Integer v;
equation
v = previous(v) - 1;
end StateB;
StateB stateB;
equation
initialState(stateA);
transition(stateA, stateB, t >= t0, immediate=false);
end test;
もう 1 つの理由は、次の単純な例を openModelica でシミュレートできないのはなぜですか?
model StateMachine1
inner Integer i(start=0);
block State1
outer output Integer i;
equation
i = previous(i) + 2;
end State1;
State1 state1;
block State2
outer output Integer i;
equation
i = previous(i) - 1;
end State2;
State2 state2;
equation
initialState(state1);
transition(state1, state2, i > 10, immediate=false);
transition(state2, state1, i < 1, immediate=false);
end StateMachine1;
エラー: クラス initialState がスコープ StateMachine1 に見つかりません