Main Content

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

状態遷移表を使用した CD プレーヤー/ラジオのモデル化

この例では、Stateflow® の状態遷移表を使用する CD プレーヤー/ラジオのロジックの簡単なモデルを説明します。このモデルは、状態遷移表を使用して sf_cdplayer を再実装したものです。

CD プレーヤー/ラジオを制御するロジックの中核は、状態遷移表を使用して設計した CdPlayerModeManager チャートにあります。この表は、モーダル ロジックを表形式で表現する場合に使用します。さまざまなステートとこれらのステートの階層構造を、ステート間の遷移とともに定義することができます。

ステートのセル

左端の列は、表内のすべてのステートを表しています。ステートは階層状に入れ子にすることができます。それぞれのレベルにおいて、1 つのステートをデフォルト ステートとして選択することができます。これは、ステートの左側に描かれるデフォルト遷移で表現されます。また、最初に入るステートを選択するロジックがある場合は、"デフォルト遷移行" を追加することもできます。

特定のステートにヒストリ ジャンクションを追加するには、ステートを右クリックして [ヒストリ ジャンクションの追加] を選択します。これによって、前回のアクティブ ステートが記憶され、再度ステートに入った時にデフォルト ステートではなく前回のアクティブ ステートが使用されます。たとえば、"ModeManager""ON" のステートにはヒストリ ジャンクションがあります。Stateflow チャートはこの表形式のビューから自動的に生成できます。

遷移セル

次にある一連の列は、ステートからの外部遷移を表します。各行は、特定のステートからの外部遷移を表します。各遷移セルは、次の 3 つのサブセルに分割されています。

1) 条件セル: 遷移がアクティブになる状況を指定する、論理条件を指定します。

2) 条件アクション セル: 遷移がアクティブな場合に実行されるアクションを指定します。

3) 遷移先セル: 遷移の遷移先のステートを指定します。"$NEXT" や "$PREV" などの特殊なキーワードを使用して、現在のステートとの相対関係で遷移先を指定することもできます。

このチャートは、ディスクが挿入されたかどうか、ラジオのモード (FM、AM、または CD) の選択など、ユーザーによる入力を受け取ります。次に、チャートは出力するメカニカル コマンドを決定します。入出力データのデータ型は、MATLAB® ファイル CdRequestMode.m および RadioRequestMode.m で列挙データ型として定義されています。

"CdPlayerModeManager" からの出力コマンドは、CD プレーヤーのメカニズムの動作をモデル化するチャート "CdPlayerBehaviorModel" によって処理されます。このロジックも、状態遷移表を使用して実装されます。

MATLAB UI を使用してさまざまな CD/ラジオのモードが設定されます。

関連するトピック