チュートリアル 3 - 交通信号
ルールを使用する、車両により作動する信号
信号ルールは、車両の要求に応じてフェーズを切り替えるために、信号のある交差点で使用されます。要求はループを使用して計測されます。
この章では、以下を可能にする、信号ルールの最も一般的な 4 つの用途に焦点を当てます。
- スキップするフェーズ
- 「ギャップアウト」フェーズ
- 要求に応じて呼び出されるフェーズ
- 後続のフェーズへの実行を続けるフェーズ
- 信号ルールを実装するには、信号のある交差点が必要です。
次に示すような単純な 4 方向の分岐を使用します。この交差点を作成するには、次の手順を実行します。
- グラフィックス パネルでマウスを右クリックし、[道路]または[カーソル位置に新しい道路]を選択します。
- ポップアップ ウィンドウで、双方向の道路を選択し、「アウト」の車線数を 3 に、「イン」の車線数を 2 に設定します。
- 作成した道路を選択したまま(既定)の状態で、マウスをもう一度右クリックして、[道路] > [新しい交差点]を選択します。
- ポップアップ ウィンドウで、交差点のアイコンが 4 方向の交差点であることを確認します(大きな「+」のようなアイコン)。交差点アイコンの下で[信号付き]を選択すると、この交差点を信号機が設置された交差点にすることができます。4 方向の交差点を作成し、先に既に道路を作成しているので、各コーナーには 3 つのテーブルのグループがあり、各テーブルは道路を表します。それぞれで両方向がオン、アウト車線の数が 2、イン車線の数が 3 であることを確認します。
- [OK]をクリックして交差点を作成します。
- ここで交差点を機能させるには、交差点の各終端にゾーンを作成する必要があります。ゾーンを作成するには、カーソルが進入道路の外側の端に近づくようにビューを画面移動し、マウスを右クリックして[ゾーン] > [カーソル位置に新しいゾーン]を選択します。これによりゾーンが作成されます。
- 他の進入道路についても、この手順を繰り返します。
- 交差点の中心がはっきり見えない場合は、グラフィックス パネルで少し拡大してループを追加することができます。交差点の中心でマウスの左ボタンをダブルクリックして選択します。交差点の周囲の車線が赤に変わり、選択されていることを示します。
- マウスを右クリックして、[交差点]または[停止線に新しいループ]を選択します。交差点に緑色の長方形が追加されていることが確認できます。確認できない場合は、[画層]タブで[ループ]画層をオンに切り替える必要があることがあります。長方形内にループ番号が表示されていない場合は、[ループ名]画層をオンにします。
- 次に、いくつかのトリップを作成します。メイン メニューから[要求]を選択します。要求を定義して後でトリップを生成するためのウィンドウが表示されます。
- [マトリックスを追加]をクリックします。マトリックスに別の名前を付けることも、既定をそのまま使用して[OK]をクリックすることもできます。
- 次のウィンドウでは、起点と終点の選択が求められます。このチュートリアルでは、すべての方向からトリップを生成するため、このウィンドウでは何も変更する必要がないので、[OK]をクリックします。これで、[要求エディタ]ウィンドウにテーブルが作成されます。ここでは、Traffic Analyst で生成するトリップの数を定義できます。番号 1、2、3、4
- は、以前に作成した 4 つのゾーンの名前を表します。これらの各ゾーン間に配置するトリップの数を指定するには、目的の値を入力します。ただし、このチュートリアルでは、右下の[閉じる]ボタンの上に単に合計数(例: 1200)を入力します。
- 値を入力した後、キーボードの[Enter]キーを押すと、1200 が自動的に別々のトリップすべてに対して均等に分割されます。
- これで、[保存]をクリックできるようになります。
- トリップを生成するには、[トリップ]をクリックします。別のウィンドウが表示されます。[トリップを生成]ボタンをクリックします。[生成されたトリップを受け入れますか?]という名前の別のウィンドウが表示されます。成功率=100.0% であることを確認します。
- [はい]をクリックして、これらのトリップを受け入れます。ウィンドウが閉じ、メインのグラフィックス パネルに戻ります。
- これで、再生ボタンを使用してシミュレーションを実行できるようになります。
ループの番号付け
ループを追加する場合、ループは問題の交差点との関係を参照するように正しく名前を付けることが重要です。たとえば、交差点 2 を使用していてループ番号 10 を追加した場合、ループを認識するには、交差点コントローラでこのループの名前を「2_10」に変更する必要があります。ループを選択した場合、[アクションを調整]を使用して、ループがアタッチされているコントローラを表示したり修正することができます。次の図は、この交差点のループ番号を示しています。
グラフィックスの名前には「2_」が含まれていないことに注意してください。関連付けられたループは、信号コントローラ ダイアログの[ループ]タブで、簡単に確認できます。
この交通制御サイトで使用できるフェーズを次の図に示します。
アクションとテスト
ルールに関しては、次の 3 つの主要なアクションを使用できます。
- 終了
- Extend
- [スキップ]
使用する 2 つの主なテストは、次の項目に関連しています。
- ギャップ
- 占有(occ)
次の演算子を利用できます。
- />、<、=、>=、<= (数値比較の場合)
- AND、OR (論理の場合)
この関連性はすぐに明らかになります。
フェーズをスキップする
フェーズをスキップする要件は、関連する移動に対する要求がない場合に一般的です。上の図では、次のことが分かります。A フェーズは、フィルタされた移動として北と南の侵入路からの右左折の移動を実行しています。B フェーズでは、これらの同じ移動を、最大 15 秒間の青信号の時間(+ 5 秒間の信号切り替わり時間)で保護された状態で実行します。通常、スキップすると、プランでまだ実行していないフェーズに余分な時間が割り当てられます。たとえば、B フェーズは不要とし(これらの移動がフィルタ処理された場合、すべての交通がフェーズ A 中に流れるため)、この余分な時間をフェーズ C に加えると仮定します。検知器の図を見ると、ループ 3 は南行きの右折に関連するループであり、ループ 9 は北行きの右折に関連しています。これは次のように表現することができます。
B をスキップ = フェーズ B が開始されるとき、ループ 3 と 9 が占有されていない場合は、フェーズ B を実行せず、フェーズ C に時間を与えます。
これをルールとしてコード化するには、次の手順を実行します。
- メイン メニューから[コントロール]/[交差点]/[コントローラ]を開きます。
- [ルール]という名前のタブを選択します。
- [ + ルール]を押します。[新しいフェーズ ルール]ウィンドウが開きます。
- ルールの新しい名前を「スキップ B」と入力します。
- [アクション]を[スキップ]に設定します。アクション フェーズは、ルールが適用されるフェーズです。
- 調整フェーズを C に設定します。このタイプのルールの調整フェーズは、B からの余分な時間を受け取るフェーズです。
- [テスト]を occ3=0 および occ9=0 に設定します。
ギャップアウト
「ギャップアウト」とは、そのフェーズで対応している交通にギャップがある場合にフェーズの終了時に使用される用語です。これは、交通制御サイトの運用方法をローカルで最適化する上で重要な役割を果たし、一部の移動が不安定であったり要求が低かったりする一般的な要件です。
再度、上記の B フェーズを使用し、B フェーズが実行されているとします。ただし、数秒後には、移動の要求が減少したために必要でなくなり、フェーズ C にこの追加の時間を与えます。繰り返すと、アクション フェーズは条件がチェックされるフェーズ、この場合はフェーズ B を示します。そして、フェーズ C は調整フェーズです。今回のアクションは、「終了」です。
この例で、テストするルールは次のとおりです。
フェーズ B が実行されていて、ループ 3 と 9 の後続の車両間のギャップが許容しきい値(たとえば 5 秒)を超えている場合、フェーズ B (黄色と赤の時間)を終了し、残りの時間をフェーズ C に与えます。
テストのロジックは次のとおりです。
“ gap3>5 and gap9>5”
フェーズを呼び出す
このことを「フェーズを呼び出す」と呼んでいますが、これは明白になる厳密な使用例ではありません。上記の例でこれを最も一般的に実行する場合は、D1 または D2 としても実行できるフェーズ D がある場合です。この場合、これらのフェーズのうち実際に必要なフェーズを確認し、適切に実行されるかをチェックする必要があります。信号計画によると、D フェーズでは、青信号の時間に 20 秒、信号切り替わり時間が 5 秒に割り当てられていて、これがフェーズの呼び出しと呼んでいる時間であり、実際に実行することは、D をスキップし、必要に応じて D1 または D2 にこの時間を与えることです。
このルールを「D1 の呼び出し」と呼んでいます。
アクション フェーズは、条件を確認するフェーズを表します。この場合は、分割された 2 番目のフェーズ D が実行されます。必要な「テスト」については、簡単に説明します。この例のアクションは「スキップ」です。このときの調整フェーズが D1 になります。ここで、テストする実際のルールを見てみましょう。まず、検出器の図を参照します。ループ 6 は西行きの右折の関連ループであり、ループ 12 は東行きの侵入路の右折移動に関連しています。D1 は、西行きの右折が必要だが東行きが不要な場合を示します。
この例で、テストするルールは次のとおりです。
分割された 2 番目のフェーズ D の開始時、ループ 6 が占有されて、ループ 12 が現在占有されていない場合、フェーズ D は実行せず、代わりにフェーズ D1 が実行されます。
ロジックは次のようになります。
“ occ6>0 and occ12=0”
別の場合に対応するため、D2 が必要になる 2 番目のルールを作成します。
これは基本的に同じですが、調整フェーズが D2 になり、テストは次のようになります。
“ occ6=0 and occ12>0”
また、上記のテクニックを使用して、3 番目のケースとして、あらゆる形式の D フェーズが必要とされるかどうかを検討し、必要ない場合にこの時間をより適格な移動に割り当てることができます。実質上、すべての D フェーズをスキップします。これはまたスキップ ルールとなり、ロジックは次のように非常に単純です。
“ occ6=0 and occ12=0”
調整フェーズとして割り当てたフェーズがこの時間を受け取ります。
フェーズの拡張
フェーズの拡張のケースを検討します。図 3 に示すように、A フェーズは南北の進入路からの右左折の移動をフィルタされた移動として実行しています。次にフェーズ B を実行し、最大 15 秒の青信号の時間(+ 5 秒の信号切り替わり時間)の間に保護された状態でこれらの同じ右左折を運用します。フェーズ A の最後に、B フェーズが実際に必要かどうかを確認し、必要ない場合は、明らかに必要な交通が流れているため、代わりに A フェーズを実行し続けます。
この場合のルールを「拡張 A」と呼びます。
アクション フェーズは、条件をチェックするフェーズを表します。この場合は、A フェーズ中です。必要な「テスト」については、簡単に説明します。この例のアクションは「拡張」です。このタイプのルールの調整フェーズは、拡張が発生するフェーズを表します。この場合、フェーズ B が必要ない場合は、フェーズ A の間にフェーズ B から時間を奪います。ここで、テストする実際のルールを見てみましょう。まず、検出器の図を参照します。ループ 3 は南行きの右折の関連ループであり、ループ 9 は北行きの侵入路の右折移動に関連しています。
この例で、テストするルールは次のとおりです。
ループ 3 のギャップとループ 9 のギャップが特定の値よりも大きく、これらの同じループが現在占有されていない場合は、A フェーズの続行が許可されます。
ロジックは次のようになります。
“ gap3>5 and gap9>5 and occ3=0 and occ9=0”
上記の値 5 は 5 秒間を表します。したがって、後続の車両の通過間隔が 5 秒を超えていて、これがフィルタが機能しないことにより車両が停止した結果ではない(ループが占有されていない)場合、テストは真になり、フェーズ B に割り当てられた時間と独自の時間がすべて使用されるまで A フェーズの実行を続行できます。[拡張]ルールは、フェーズ A がフェーズ B の割り当て時間を実行している間、フェーズの終わりの時点で毎秒 1 回チェックされます。ここでは、B フェーズを実行する必要がある場合があります。ここで考慮すべきもう 1 つの役立つ視点は、「占有済み」(occ)パラメータが占有時間を参照し、真/偽の値ではないという事実です。つまり、ゼロより大きい占有の値を含めることができます。たとえば、上記の場合は、「ループが x 秒を超えて占有されている場合」を追加の検討事項とすることができます。
その他の検討事項
「時間」について理解する
[タイミング]タブでは、フェーズ時間、信号切り替わり時間(黄色と赤)、および最小、最大時間を指定します。以下では、信号ルールに対する最小および最大時間の影響について説明します。
- 最小時間(Min): 最小時間が経過するまで、実行フェーズはギャップアウトできません。つまり、B フェーズが実行されていて、最小時間が 5 秒以上に設定されている場合、5 秒が経過するまではこのフェーズをギャップアウトすることはできません(フェーズが実際に実行されている場合)。
- 最大時間(Max): 追加の時間を(ギャップや拡張などを通じて)フェーズに割り当てようとして、そのフェーズが最大の青信号の時間を超過する青信号の時間になる場合(コントローラ ダイアログの[タイミング]タブで指定したように、上記のすべては 300 秒に設定されます)、このルールは効果がなく、実質的に「偽」になります。フェーズ D1 と D2 に示されるように、フェーズの青信号の時間が 0 の場合、最小または赤と黄色の時間が割り当てられていても、フェーズが実行されていない場合でも、これらは実行されない点に注意してください。これらはフェーズが実際に実行されている場合(青信号の時間 >0)にのみアクティブになります。
延長フェーズの役割
また、「延長フェーズ」としてフェーズを指定する機能にも注意してください。これは、ルール内で調整フェーズが指定されていない場合に重要になります。この場合、追加の時間は上記の場合に自動的にフェーズ A に割り当てられます。
ルールの順序が重要
ルールの指定順序が重要になる場合があります。ルールは、以下に示すように簡単に並べ替えることができます。

概要
信号ルール システムの重要な点は、サイトの全体のサイクル タイムを変更することなく、特定のサイクルの各フェーズでさまざまなアクションを実行できることです。つまり、システム内の信号サイトで何が起きているのか、または何が起こっていないかにかかわらず、進行状況と「青信号の波」を維持することができます。これまでに、いくつかの簡単な概念だけで大きな柔軟性が提供されるということが明らかになっています。このアプローチの中心は、実際の局所的な最適化を再現するために必要な数だけ、各交通制御サイトに複数のルールを設定できることであると理解しています。
フェーズ呼び出しを説明したときの例として、これらのフェーズ呼び出しのギャップアウトを許可するルールを埋め込むこともできます。たとえば、D を D1 または D2 にギャップインさせ、D1 または D2 を呼び出した場合、そのフェーズで、同様に別のより高い要求フェーズにギャップアウトすることができます。各ルールには複雑なテストが含まれる場合があります。前述のテストはシンプルですが、たとえば、実際にどのフェーズに未使用の時間を与えるかを検討する場合があり、そのためには特定の動きに対するループの占有に関心がないことがあります。調整フェーズとして検討しているフェーズのループの占有をチェックする場合もあります。その他の強力な要素の 1 つは、次のサイクルで実行される予定のフェーズに対してアクションを実行できることです。上記では、D フェーズを実行してギャップアウトした場合、次のサイクルでこの未使用の時間を B フェーズに割り当てる必要がある可能性があります。これは、現在のサイクルで調整フェーズとして指定されたフェーズが発生しない(既に通過している)場合にも生じる可能性があります。
ブーム ゲート
ブーム ゲート ツールを使用すると、駐車場の入口や出口、あるいはバス専用車線などの利用制限付き車線にある可動ブーム ゲートを追加することができます。ブーム ゲート デバイスは、各車両を、指定した時間分布から取得した変数の時間だけ遅延させます。
演習: ブーム ゲートを作成する
- メニュー[コントロール]/[ブーム ゲート]から[ブーム ゲート]ウィンドウを開きます。
- 車線を選択します。
- [ブーム ゲート]ウィンドウの緑色の[+]ボタンを押します。
- [OK]を押します。
- [画層]タブで、[標識]画層をオンにします。
- ブーム ゲートを作成したら、次のパラメータを変更できます。
- [停止時間]: ブーム ゲートの新しい停止時間分布は、[パラメータ]/[時間の分布]で定義するか、既存の分布を使用することができます。たとえば、[統一基準 A]を選択すると、すべての車両が 2 秒間停止します。ただし、40% の車両を 2 秒間停止し、30% を 3 秒間、20% を 4 秒間、10% を 15 秒間停止する分散を作成することもできます。合計停止時間は、分布から取得された停止時間と、ゲートが開くまでの(固定)時間の合計です。
- [制限された高さ]: 可視化オプションでは、ブーム ゲート バーを 2 つのパーツに分割し、多層階の駐車場領域の屋根と干渉しないようにします。
ランプの測定
[ランプの測定]ツールを使用すると、オンランプから複数車線道路への交通量を制限するために使用される交通信号制御をモデル化できます。ツールは、1 つまたは複数のループからの入力と変数パラメータのセットを受け取る論理モジュールを使用します。論理モジュールからの出力は、制御信号のサイクル タイムです。つまり、通常、各ランプ メータでは、固定された青信号の時間と変数の赤の時間があり、赤の時間の長さは 1 つまたは複数のループで検出されたフローまたは占有によって決定されます。
演習: ランプの測定
- モデル「Ramp_Metering_Before」を開きます。このモデルには、2 つのネットワーク グループがあります。それぞれにメイン道路があり、2 つのアームが結合されています。各ネットワーク グループには 5 つの交差点があります。そのうち 2 つは、合流交差点にあります。1 つは単一の車線アーム上、2 つは 1 車線で始まるが複数車線に分割されるアーム上にあります。
- 上のネットワークの左側の合流交差点を拡大ズームします。
- [車線の中心線]、[車線の流れ]、[ハンドル - 終点]を表示します。合流交差点付近のアームに短い車線があり、合流交差点から離れる
- アーム上に長い車線があります。これらの 2 車線は、交差点 1 で接続されます。合流交差点の左側のメイン道路にループが作成されます。ループを選択してパラメータを確認します。これらはすべてコントローラ 1 に割り当てられます。
- ここで、ビューを右に画面移動して、このネットワーク上の他の合流交差点を確認します。3 つのループも追加されており、交差点 4 に関連付けられています。このアームは、前に見たアームに似ています。違いは、1 車線で始まり、2 車線に分割される点です。交差点は分割ポイントで設定されます。一方、他方のアームは交差点まで単一の車線があります。
- ビューを画面移動して、下部にある別のネットワークを表示します。また、2 つの合流アームもあります。設定は、先ほど確認した設定と非常に似ています。
- 交差点 18 は合流ポイント付近の合流アームの車線を接続します。また、合流ポイントの近くのメイン道路上のループは、交差点 18 に関連付けられます。
- 同様に、交差点 16 は、右側の合流ポイントの近くの合流アームの車線を接続します。また、合流交差点の近くのループは、交差点 16 に関連付けられます。
- モデルには、各ネットワークに 1 つずつ、既に 2 つの OD マトリックスが設定されています。各マトリックスには、1000 の通過フローと、各アーム 200 の合流トラフィックが含まれています。もう一方のネットワークの流量は同じです。
- シミュレーションの実行を開始すると、交通の流れを確認できるようになります。
- 交差点 2 を選択し、その設定を確認します。通過フローはフリー フローに、合流は進路を譲るように設定されています。このアームからメイン道路への流れは連続的です。
- メイン道路にリリースされる量が制限されるようにランプ フローをコントロールする必要があります。これを行うには、[ランプの測定]ツールを使用します。[コントロール]メニューからウィンドウを開きます。ウィンドウが開くと、計測タイプを示す 3 つのタブが表示されます。
- 上のネットワークの左側の交差点から始めて、[固定レート]タイプを試してみます。アームの短い車線とメイン道路のループを選択します。[ランプの測定]ウィンドウで[新規]をクリックします。
- [OK]をクリックすると、既定の設定になります。新しい測定が追加され、測定とそのタイプがグラフィックス ウィンドウに表示されます。
- シミュレーションを巻き戻して再度実行すると、測定が赤と青の間で切り替わります。赤の場合、車両は交差点の前で停止し、青の場合は 1 つの車両がリリースされます。
- [ランプの測定]ウィンドウからこの測定のパラメータを確認します。[V/サイクル]では、1 に設定されています。つまり、各サイクルでリリースできる車両は 1 台のみです。
- 3 台の車両をリリースできるよう、この値を 3 に変更してみます。
- シミュレーションを巻き戻して再度開始します。
- 設定によって違いが生じることはなく、毎回リリースされる車両は 1 台であることに注意してください。
- これは、測定の青信号の時間を変更していないためです。
- 1 秒では 3 台の車両をリリースするだけの十分な時間がありません。たとえば、青信号の時間を 6 秒に変更してから、シミュレーションを再開します。
- より多くの車両が通過できることに注目してください。待っている車両が 3 台以上ある場合、そのうち 3 台がリリースされます。これは、車線数に関係なくあてはまります。3 車線がある場合は、車線ごとに 1 車両がリリースされます。
- 同じネットワーク上の次のアームにビューを画面移動します。ズームから 1 車線があり、2 車線に分割されています。[車線の中心線]と[車線の
- 流れ]をオンにすると、より明確に表示できます。
- 合流交差点付近のアーム上の車線と、メイン道路上のループを選択します。
- [固定レート]タブで新しい測定を作成し、既定の設定を受け入れます。2 車線が存在するため、[V/サイクル]が自動的に 2 に設定されていることに注目してください。
- シミュレーションを巻き戻して開始すると、毎回 2 台の車両がリリースされます。
- ここで、下のネットワークの左側の合流交差点に画面移動してズームします。ゾーンから 1 車線があり、2 車線に分割されています。
- 今回は、ALINEA (Asservissement Lineaire d’entrée Autoroutiere)という別のタイプの測定を作成します。合流アームの車線と、合流交差点の左側のループを選択します。
- [ALINEA]タブがアクティブであることを確認し、新しい測定を作成します。
- シミュレーションを巻き戻して開始し、動作を確認します。
- [V/サイクル]を 10 に、[緑]を 5 に変更して、サイクルごとにより多くの車両をリリースできるようにすることを試します。
- [ランプの測定]ウィンドウの[ALINEA-Q]タブをクリックします。右の合流交差点でこれを試してみます。
- ALINEA-Q と ALINEA の違いは、キューの長さを検出するためのループが追加されていることです。アームのキューが制限を超えると、測定は無効になり、フローが
- コントロールされなくなります。
- 最初に、必要なループを追加します。これは、ゾーンから車線に追加します。
- メイン道路に合流する前のアームの交差点である 16 にコントローラを設定します。
- これにより、ループがその交差点に関連付けられます。
- アームの合流交差点付近にある短い車線を選択し、メイン道路上のループを選択します。次に、新しい測定を作成します。
- ALINEA-Q の測定に、「Off Occ」設定が含まれていることに注目してください。これはしきい値で、占有がこの値に達すると、測定は無効になります。
- 占有は「Occ[2]」に示されています。シミュレーションを開始して測定の実行を確認します。
- 「Occ[2]」は現在 0.11 です。「Off Occ」はこれよりも小さい値に設定します。
- シミュレーションを再開始します。最初は測定がオンになっていますが、「Occ [2]」が「Off Occ」よりも高くなるとオフになります。
- 交差点信号は 3 つの緑色の矢印で描画され、車両の流れはコントロールされなくなります。
- 「Off Occ」を 0.30 に増やします。「Occ[2]」が「Off Occ」より小さい場合、測定のコントロールが戻ります。
- 「Off Occ」を 0.05 に戻します。「Occ[2]」が大きくなると、すぐに信号はすべて青色になります。