Stateflow ダイアグラムのアクティブな State をどのように判定しますか?

Stateflow を使って作成した state マシンの、現在のアクティブな状態 (state) を取得したいです。 Stateflow チャートのシミュレーション中には、アクティブな state はハイライトされますが、コマンドベースで現在のアクティブ state を判断することを行いたいです。

 采纳的回答

Stateflow には、現在のアクティブな state をシミュレーション中に取得する機能はありません。
代替案としてシミュレーション後であれば以下の手順で取得、判断することができます。
1. Simulink モデル上の Stateflow チャートブロックをマウスにて右クリックします。
2. コンテキストメニューより
(R2012a 以前) チャート信号のログ
(R2012b 以降) 信号と端子 -> チャート信号のログ
を選択します。
3. ログを取りたい全ての state 、パラメータ、ローカル変数を選択します。
4. シミュレーションの終了後、 Simulink.ModelDataLog オブジェクトが logsout として MATALB のワークスペースに生成されます。
5. それぞれの state のデータにアクセスするためには、 MATLAB コマンドウィンドウ上で次のように実行します。
logsout.Chart.<name-of-state>.Time % 時間ベクトル
logsout.Chart.<name-of-state>.Data % "stateの上記の要素の時刻に対応した Active/Inactive を 1,0 で示す
※ ここで <name-of-state> は state の名前
また、全ての state 、パラメータをリストするには次のようにタイプインします。
logsout.Chart

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Mealy、Moore および連続時間のチャート 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!