Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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

システムにおける複数レベルの複雑度を制御するには、1 つ以上のステートを別のステートの境界内に配置して、Stateflow® チャートに入れ子のステートの階層を作成します。

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

メディア プレーヤーのモデル化

この例は、FM ラジオとインターネット ストリーム プレーヤーで構成されるメディア システムをモデル化したものです。シミュレーション中には、Media Player App ユーザー インターフェイスのボタンとノブを操作してメディア プレーヤーを制御します。

メディア プレーヤーを実行するには、次を行います。

  1. Simulink モデルを開き、[実行] をクリックします。Media Player App が開きます。メディア プレーヤーは初期状態でオフになっています。アプリ上部のメディア プレーヤーのステータス ボックスに、メッセージ Standby (Off) が表示されます。

  2. コンポーネント選択ノブを回して [Stream] に合わせます。Connecting to Handel's Greatest Hits というステータス メッセージが一時的に表示されます。しばらくすると、ステータス メッセージが Playing: Handel's Greatest Hits に変わり、音楽の再生が始まります。

  3. 早送りボタンをクリックします。音楽が停止し、鳥の鳴き声の音声が始まります。ステータス メッセージが Forward >> Handel's Greatest Hits に変わります。ストリーム名が表示全体で前方にスクロールします。通常の再生モードを再開するには、再生ボタンをクリックします。

  4. 巻き戻しボタンをクリックします。鳥の鳴き声の音声が再生され、ステータス メッセージが Reverse >> Handel's Greatest Hits に変わります。ストリーム名が表示全体で後方にスクロールします。通常の再生モードを再開するには、再生ボタンをクリックします。

  5. ストリーム名ボックスに新しいストリーム名を入力し、[Connect] をクリックします。たとえば、Training Deep Networks または Fun With State Machines のストリームへの接続を試します。

  6. コンポーネント選択ノブを回して [Radio] に合わせます。ステータス メッセージ Playing: 99.5 FM が表示されます。別のステーションを選択するには、FM ラジオ ステーション ノブを回します。

  7. シミュレーションを停止するには、Media Player App を閉じます。

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

この例では、一度に 1 つのアクティビティ レベルのみに注目して、メディア プレーヤーを実装します。たとえば、ストリーム プレーヤーが早送り再生モードになるためには、以下の条件が必要です。

  1. メディア プレーヤーがオンになっている。

  2. ストリーム プレーヤーが選択されている。

  3. ストリームの再生が開始している。

  4. 早送りボタンがクリックされた。

このモデルでは、入れ子のステートからなる階層を使用して、各条件を個別に検討します。たとえば、モデル エクスプローラーには、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 PlayerApp Interface チャートと Mode Manager チャートからの出力を受け取って、ストリーム プレーヤーの内部動作をシミュレートします。

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

関連するトピック