Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

金宝appベースのステートの作成と編集

周期的ダイナミクスと連続時間ダイナミクスを切り替えるシステムをモデル化するには、Simulink®ベースのステートを使用します。Simulink ベースのステートは、MATLAB®内のスタンドアロンのStateflow®チャートではサポートされません。詳細については、ステートとしての Simulink サブシステムを参照してください。

Simulink ベースのステートは、オブジェクト パレットを使用して作成できます。別の Simulink モデルからのシステムを再利用するには、Enabled Subsystem をコピーして貼り付けます。サブシステムを複数の Stateflow チャートで再利用するには、ライブラリに保存されている Action Subsystem をコピーして貼り付けます。

金宝appベースのステートの作成

Simulink ベースのステートを作成するには、次のいずれかを行います。

  • Simulink ベースのステート パレット アイコンを使用して、空の Simulink ベースのステートを作成する。

  • Enabled Subsystem または Action Subsystem を Stateflow チャートにコピーすることにより、別のモデルから Simulink ベースのステートを作成する。

  • ライブラリから Action Subsystem を Stateflow チャートにコピーすることにより、リンクされた Simulink ベースのステートを作成する。

空の金宝appベースのステートの作成

  1. オブジェクト パレットで、Simulink ステート アイコンをクリックします。

  2. チャート キャンバスで、新しい Simulink ベースのステートの位置をクリックします。

  3. ステートの名前を入力します。この例では、このステートで平坦な地面を走る棒高跳び選手をモデル化するため、ステート ラベルはRun_upです。Simulink ベースのステートは Action Subsystem であるため、新しいステートに Action Port が表示されます。

  4. Simulink サブシステムを作成します。このサブシステムは棒高跳び選手の直交座標を出力します。このモデルの詳細については、ブロックの状態データへのアクセスを参照してください。

Enabled Subsystem からの金宝appベースのステートの作成

Simulink ベースのステートを Stateflow チャートに作成するには、別の Simulink モデルから Enabled Subsystem をコピーします。新しい Simulink ベースのステートを作成しなくても、Simulink モデルからのコンポーネントを Stateflow チャートで再利用できます。

  1. sf_clutch_enabled_subsystemsモデルを開きます。

  2. モデルから、Slippingブロックを Stateflow チャートにコピーします。

  3. Simulink サブシステムの入力端子と出力端子が、未定義シンボルとして Stateflow チャートに表示されます。対応する入力データと出力データを Stateflow チャートに追加するには、[未定義のシンボルを解決]ボタンをクリックします。

リンクされた金宝appベースのステートの作成

リンクされた Simulink ベースのステートを Stateflow チャートに作成するには、ライブラリから Action Subsystem を Stateflow にコピーします。ライブラリ ブロックが更新されると、そのブロックを含むすべての Stateflow チャートに変更内容が反映されます。

  1. ライブラリ モデルを開きます。

  2. ライブラリ ブロックRun_upをコピーして Stateflow チャートに貼り付けます。

  3. リンクされているサブシステムの左下隅にリンクを表示するには、[デバッグ]タブで[情報のオーバーレイ][すべてのリンクを表示]を選択します。

  4. この Simulink サブシステムの出力端子xyは、未定義シンボルとして Stateflow チャートに表示されます。対応する出力データを Stateflow チャートに追加するには、[未定義のシンボルを解決]ボタンをクリックします。

入力端子と出力端子の作成

Simulink ベースのステートを使用する場合、Simulink サブシステムの入力端子と出力端子は Stateflow チャート レベルの入力データと出力データに接続されます。この接続により、最上位レベルの Simulink モデルは、Simulink ベースのステートに含まれるサブシステムからデータを読み取ることができるようになります。

空の Simulink ベースのステートを作成すると、Stateflow は、親の Stateflow チャート内に存在する入力と出力に対応する入力と出力を Simulink サブシステム内に作成します。しかし、Simulink ベースのステートを作成した後に、これに入力端子と出力端子を追加する場合は、対応する入力データと出力データを Stateflow チャート内に作成しなければなりません。

Simulink ベースのステートに追加の入力端子と出力端子を作成するには、次を行います。

  1. Simulink ベースのステートを開きます。

  2. Simulink キャンバスをクリックし、in1と入力してEnterキーを押します。未定義の入力端子が作成されます。

  3. 未定義シンボルin1が、Stateflow チャートの [シンボル] ペインに表示されます。未定義シンボルを解決するには、[未定義のシンボルを解決]ボタンをクリックします。

  4. In1という名前のチャート入力端子が作成されます。

追加の出力端子の作成

次の例では、モデルsf_pole_vaultに追加の出力端子を作成します。

  1. モデルを開きます。

  2. チャートPoleVaulterを開き、Simulink ベースのステートTake_offをクリックします。

  3. Simulink ベースのステートのキャンバスをクリックし、out1と入力してEnterキーを押します。未定義の出力端子が作成されます。出力端子の名前をtheta_outに変更し、theta の信号に接続します。

  4. PoleVaulterの [シンボル] ペインにtheta_outの未定義シンボルが表示されます。未定義シンボルを解決するには、[未定義のシンボルを解決]ボタンをクリックします。

  5. Stateflow は、theta_outというチャート内に出力端子theta_outに対応する出力を作成します。

データの編集の詳細については、データ、イベント、メッセージの追加および変更を参照してください。

関連するトピック