最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

システムの複雑度を管理する階層の作成

入れ子にされたステートの "階層" を作成することにより、サブコンポーネントごとにモデルに構造を追加します。その後、Stateflow® チャートで複数レベルの複雑度を制御できるようになります。詳細については、有限ステート マシンのモデル化を参照してください。

ステートの階層

ステートの階層を作成するには、1 つ以上のステートを別のステートの境界内に配置します。内側のステートは、外側のステートの子ステート (サブステート) です。外側のステートは、内側のステートの親 (スーパーステート) です。

親ステートの内容は、小さなチャートのように動作します。親ステートがアクティブになると、そのいずれかの子ステートもアクティブになります。親ステートが非アクティブになると、その子ステートのすべてが非アクティブになります。

階層の例

この例は、AM ラジオ、FM ラジオ、および CD プレーヤーで構成されるステレオ システムをモデル化したものです。シミュレーション中は、Media Player Helper ユーザー インターフェイスのボタンをクリックしてステレオ システムを制御します。

ステレオは最初スタンバイ モード (OFF) になっています。[Radio Request] ボタンのいずれかを選択すると、ステレオの対応するサブコンポーネントがオンになります。CD プレーヤーを選択した場合、[CD Request] ボタンのいずれかをクリックして再生、巻き戻し、早送り、または停止を選択できます。ディスクの挿入や取り出しはシミュレーション中にいつでも行えます。

ステートの階層を使用した動作の実装

一見して、このステレオ システムの完全実装はかなり複雑に見えます。しかし、一度に 1 つのアクティビティ レベルだけに注目することで、システム全体の段階的な設計が可能になります。たとえば、CD プレーヤーが早送り再生モードに入るには、以下の条件が必要です。

  1. ステレオがオンになっている。

  2. CD プレーヤーがオンになっている。

  3. ディスクを再生している。

  4. UI で [FF] ボタンがクリックされた。

これらの各条件を一度に 1 つずつ検討する階層的なモデルを作成することができます。たとえば、一番外側のレベルではステレオのオンとオフ間の遷移を定義できます。中間レベルでは、さまざまなステレオ サブコンポーネント間の遷移と、CD プレーヤーの停止モードと再生モード間の遷移を定義します。最下位レベルでは、ディスク再生の他の条件がすべて満たされる場合の [CD Request] ボタンへの応答が定義されます。

ステレオ システムの動作を実装するため、sf_cdplayer は、モデル エクスプローラーの Media Player Mode Manager チャートの下に一覧表示される、入れ子にされたステートの階層を使用します。モデル エクスプローラーを開くには、[モデル化] タブで [モデル エクスプローラー] を選択します。

次の表では、階層内における各ステートの役割をまとめています。

階層レベルステート説明
最上位レベル (Media Player Mode Manager チャート)ModeManagerステレオ システムの標準動作モード
Ejectディスク取り出しモード (他のすべてのステレオ機能を中断)

ステレオ システム アクティビティ (ModeManager の子ステート)

Standbyステレオ システムがスタンバイ モード (OFF)
ONステレオ システムがアクティブ (ON)

ステレオ サブコンポーネント (On の子ステート)

AMModeAM ラジオ サブコンポーネントがアクティブ
FMModeFM ラジオ サブコンポーネントがアクティブ
CDModeCD プレーヤー サブコンポーネントがアクティブ

CD プレーヤー アクティビティ (CDMode の子ステート)

StopCD プレーヤーが停止中
PlayCD プレーヤーがディスクを再生中

ディスク再生モード (Play の子ステート)

Normal標準再生モード
Rew逆再生モード
FastForward早送り再生モード

次の図は、チャート内のステートの完全なレイアウトを示しています。

サブチャートを使用したチャート外観の簡略化

下位の詳細をサブチャート内に隠して不透明なボックスとして表示することで、複雑な階層をもつチャートの全体的な外観の簡略化ができます。サブチャートを使用してもチャートの動作は変更されません。たとえば、sf_cdplayer ではステレオ サブコンポーネントの AMModeFMMode、および CDMode がサブチャートとして実装されています。Media Player Mode Manager チャートを開くと、ステート階層の 3 つのレベルだけが表示されます。いずれかのサブチャート内の詳細を確認するには、そのサブチャートをダブルクリックします。

例の確認

sf_cdplayer には、他に 2 つの Stateflow チャートが含まれています。

  • User Request は UI とのインターフェイスを管理して、入力を Media Player Mode Manager チャートと CD Player Behavior Model チャートに渡します。

  • CD Player Behavior Model は User Request チャートと Media Player Mode Manager チャートからの出力を受け取って CD プレーヤーの機械動作を模倣します。

シミュレーション時に、各チャートが Media Player Helper とのやり取りにどのように応答するかを調査できます。チャート間をすばやく切り替えるには、Stateflow エディターの上部にあるタブを使用します。

関連する例

詳細