2

何らかの値に基づいて Simulink Stateflow (ステートチャート) でイベントを設定するにはどうすればよいですか? つまり、これです。「choice」という変数があります。この「選択」は、simulink ブロックからの入力として入ってきます。選択の値は 1 から 4 の間です。したがって、私がやりたいことは次のとおりです。

if choice == 1 then trigger/set eventBlue
if choice == 2 then trigger/set eventRed
if choice == 3 then trigger/set eventWhite
if choice == 4 then trigger/set eventGreen
else trigger/set eventYellow

では、どうすればいいですか?コマンドは何ですか?

4

2 に答える 2

1

Stateflow ウェビナー ( http://www.mathworks.com/products/stateflow/ ) をご覧になることをお勧めします。ライブラリの使用方法を理解するのに役立つステートフローの例も多数あります。このヘルプ Web ページを確認してください: http://www.mathworks.com/help/stateflow/examples/index.html

何をしたいのかを正確に知ることは困難ですが、状態の変化を示す矢印を描画し、変数の選択の値をチェックする関数を追加できます。最初に、simulink からの入力として「選択」を許可するようにステートチャートを構成する必要があります。状態を定義し、矢印遷移に '[choice == 1]'、'[choice == 2]' など ('' なし) を入れます。

次のようなモデルを取得する必要があります。 ここに画像の説明を入力 ここに画像の説明を入力

パルス発生器は、0 と 1 のシーケンスを作成して遷移をアクティブにするように構成されています。

お役に立てれば、

于 2012-10-13T22:07:46.123 に答える
1

あなたが説明している問題については、Stateflowの内部遷移を調べることをお勧めします。内部遷移を使用すると、次のような条件で各状態から他のすべての状態への遷移を作成することを回避できます[x==1]...

リンクされているドキュメントページの例は、これを実装する方法のアイデアを提供するはずです。

于 2012-10-19T21:09:01.867 に答える