Main Content

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

メッセージを使用した分散トラフィック制御システムのモデル化

この例では、一方通行路の交差点の分散制御システムをモデル化する方法を説明します。信号機のステートを調整するために、メッセージを使用して 2 つのチャートが相互に通信します。2 つのチャートの設計は同一です。

信号機は MATLAB® UI を使用して操作できます。歩行者の横断を要求するには、信号機の下にある濃いグレーの要求ボタンのいずれかをクリックします。

各道路のコントローラーは、信号機コントローラー サブシステム Traffic Light 1 および Traffic Light 2 によって実装されます。

各サブシステムで、Controller チャートは、信号機のさまざまなステートによって、トラフィック コントローラーのメイン ロジックを記述します。

このモデルは、メッセージのこうしたセマンティクス機能を利用します。

  • メッセージはすぐに実行されない場合でも破棄されません。たとえば、このモデルでは、信号機が赤になってコントローラーが要求に反応できるようになるまで、歩行者の要求はキューに入れられます。

  • 異なるコンポーネント間のメッセージ ループを設定できます。これらのループによって、モデル内で代数ループが発生することはありません。

  • 通常、入力メッセージは、それらが評価されるタイム ステップの終わりに破棄されます。ただし、これらの入力メッセージをローカルの "保留" キューに一時的に転送して保持し、後から使用することができます。たとえば、Controller チャートは、Go ステートを終了したときに、ローカル キュー pedRequestLocal を使用して、もう一方の道路で行われた歩行者の要求を保存します。後で、PrepareToStop ステートを終了したときに、チャートはそれらの要求をチェックします。

シミュレーションの速度を変更するには、[シミュレーション] タブで、[実行][シミュレーション ペーシング] を選択します。[シミュレーション ペーシング オプション] ダイアログ ボックスで、スライダーの設定を調整します。詳細については、シミュレーションのペーシングを参照してください。

関連するトピック