このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
システムの複雑度を管理する階層の作成
システムにおける複数レベルの複雑度を制御するには、1 つ以上のステートを別のステートの境界内に配置して、Stateflow® チャートに入れ子のステートの階層を作成します。
外側のステートは、内側のステートの親、つまり "スーパーステート" です。内側のステートは、外側のステートの子ステート、つまり "サブステート" です。スーパーステートの内容は、小さなチャートのように動作します。スーパーステートがアクティブになると、そのいずれかのサブステートもアクティブになります。スーパーステートが非アクティブになると、そのサブステートのすべてが非アクティブになります。
メディア プレーヤーのモデル化
この例は、FM ラジオとインターネット ストリーム プレーヤーで構成されるメディア システムをモデル化したものです。シミュレーション中には、Media Player App ユーザー インターフェイスのボタンとノブを操作してメディア プレーヤーを制御します。
メディア プレーヤーを実行するには、次を行います。
Simulink モデルを開き、[実行] をクリックします。Media Player App が開きます。メディア プレーヤーは初期状態でオフになっています。アプリ上部のメディア プレーヤーのステータス ボックスに、メッセージ
Standby (Off)
が表示されます。コンポーネント選択ノブを回して [Stream] に合わせます。
Connecting to Handel's Greatest Hits
というステータス メッセージが一時的に表示されます。しばらくすると、ステータス メッセージがPlaying: Handel's Greatest Hits
に変わり、音楽の再生が始まります。早送りボタンをクリックします。音楽が停止し、鳥の鳴き声の音声が始まります。ステータス メッセージが
Forward >> Handel's Greatest Hits
に変わります。ストリーム名が表示全体で前方にスクロールします。通常の再生モードを再開するには、再生ボタンをクリックします。巻き戻しボタンをクリックします。鳥の鳴き声の音声が再生され、ステータス メッセージが
Reverse >> Handel's Greatest Hits
に変わります。ストリーム名が表示全体で後方にスクロールします。通常の再生モードを再開するには、再生ボタンをクリックします。ストリーム名ボックスに新しいストリーム名を入力し、[Connect] をクリックします。たとえば、
Training Deep Networks
またはFun With State Machines
のストリームへの接続を試します。コンポーネント選択ノブを回して [Radio] に合わせます。ステータス メッセージ
Playing: 99.5 FM
が表示されます。別のステーションを選択するには、FM ラジオ ステーション ノブを回します。シミュレーションを停止するには、Media Player App を閉じます。
ステートの階層を使用した動作の実装
この例では、一度に 1 つのアクティビティ レベルのみに注目して、メディア プレーヤーを実装します。たとえば、ストリーム プレーヤーが早送り再生モードになるためには、以下の条件が必要です。
メディア プレーヤーがオンになっている。
ストリーム プレーヤーが選択されている。
ストリームの再生が開始している。
早送りボタンがクリックされた。
このモデルでは、入れ子のステートからなる階層を使用して、各条件を個別に検討します。たとえば、モデル エクスプローラーには、Mode Manager
チャート内にあるステートの階層が表示されます。モデル エクスプローラーを開くには、[モデル化] タブで [モデル エクスプローラー] を選択します。
階層の最上位、つまり最も外側のレベルにある Mode Manager
チャートには、メディア プレーヤーのアクティビティを制御する次の 2 つのステートがあります。
メディア プレーヤーをオフにすると、
Off
がアクティブになります。メディア プレーヤーをストリーミング モードまたはラジオ モードに設定すると、
On
がアクティブになります。
On
の子ステートは、メディア プレーヤーのコンポーネントを制御します。
ストリーム プレーヤーを選択すると
Stream
がアクティブになります。FM ラジオを選択すると
Radio
がアクティブになります。
Stream
の子ステートは、ストリーム プレーヤーのアクティビティを制御します。
ストリームを再生すると、
Play
がアクティブになります。ストリーム プレーヤーを一時停止すると、
Pause
がアクティブになります。
Play
の子ステートは、ストリーム プレーヤーの再生モードを制御します。
標準再生モード時に
Normal
がアクティブになります巻き戻しボタンをクリックすると、
Reverse
がアクティブになります。早送りボタンをクリックすると、
FastForward
がアクティブになります。
次の図は、チャート内のステートのレイアウトを示しています。
例の確認
この例のモデルには、他に 2 つの Stateflow チャートが含まれています。
App Interface
は MATLAB アプリとのインターフェイスを管理して、入力をMode Manager
チャートとStream Player
チャートに渡します。Stream Player
はApp Interface
チャートとMode Manager
チャートからの出力を受け取って、ストリーム プレーヤーの内部動作をシミュレートします。
シミュレーション中に、Media Player App アプリの操作に対して各チャートがどのように応答するかを調査できます。チャート間をすばやく切り替えるには、Stateflow エディターの上部にあるタブを使用します。