このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
状態遷移表を使用した CD プレーヤー/ラジオのモデル化
この例では、Stateflow® の状態遷移表を使用する CD プレーヤー/ラジオのロジックの簡単なモデルを説明します。このモデルは、状態遷移表を使用して sf_cdplayer
を再実装したものです。
CD プレーヤー/ラジオを制御するロジックの中核は、状態遷移表を使用して設計した CdPlayerModeManager
チャートにあります。この表は、モーダル ロジックを表形式で表現する場合に使用します。さまざまなステートとこれらのステートの階層構造を、ステート間の遷移とともに定義することができます。
ステートのセル
左端の列は、表内のすべてのステートを表しています。ステートは階層状に入れ子にすることができます。それぞれのレベルにおいて、1 つのステートをデフォルト ステートとして選択することができます。これは、ステートの左側に描かれるデフォルト遷移で表現されます。また、最初に入るステートを選択するロジックがある場合は、デフォルト遷移行を追加することもできます。
特定のステートにヒストリ ジャンクションを追加するには、ステートを右クリックして [ヒストリ ジャンクションの追加] を選択します。これによって、前回のアクティブ ステートが記憶され、再度ステートに入った時にデフォルト ステートではなく前回のアクティブ ステートが使用されます。たとえば、"ModeManager" と "ON" のステートにはヒストリ ジャンクションがあります。Stateflow チャートはこの表形式のビューから自動的に生成できます。
遷移セル
次にある一連の列は、ステートからの外部遷移を表します。各行は、特定のステートからの外部遷移を表します。各遷移セルは、次の 3 つのサブセルに分割されています。
条件セル: 遷移がアクティブになる状況を指定する論理条件を指定します。
条件アクション セル: 遷移がアクティブな場合に実行されるアクションを指定します。
遷移先セル: 遷移の遷移先のステートを指定します。
$NEXT
や$PREV
などの特殊なキーワードを使用して、現在のステートとの相対関係で遷移先を指定することもできます。
このチャートは、ディスクが挿入されたかどうか、ラジオのモード (FM、AM、または CD) の選択など、ユーザーによる入力を受け取ります。次に、チャートは出力するメカニカル コマンドを決定します。入出力データのデータ型は、MATLAB® ファイル CdRequestMode.m
および RadioRequestMode.m
で列挙データ型として定義されています。
CdPlayerModeManager
チャートからの出力コマンドは、CD プレーヤーのメカニズムの動作をモデル化するチャート CdPlayerBehaviorModel
によって処理されます。このロジックも、状態遷移表を使用して実装されます。
MATLAB UI を使用してさまざまな CD/ラジオのモードが設定されます。