himeshi’s blog

Simutrans本体改造まわりのお話をつらつらと

OTRPのスケジュール機能を使いこなそう

どうも,ひめしです.

 この記事はSimutrans Advent Calendar 2019の記事です.

adventar.org

 

OTRPでは,車両の運行スケジュールにいくらかの機能が追加されています.下図の点線で囲まれた部分がOTRPで追加されている機能です.

f:id:himeshi:20191109161314p:plain

追加されている機能は

  • Route Cost調整(乗車不可/降車不可/臨時系統)
  • 増解結(連結相手を待つ/連結を試みる)
  • 発車時刻指定

の3つです.今回は,これらの機能の活用例を,いくつかのシチュエーションを想定してまとめてみようと思います.それぞれの機能の使い方自体についてはOTRPのページを参照してください.

 

ケース1) 長距離寝台列車を設定する

例えば東京,品川,岡山,広島に停車する在来線寝台列車を設定すると考えましょう.このとき,ふつうにスケジュール設定して運行すると次の問題が生じます.

  • 品川→岡山のルートコストが減少(東海道新幹線のぞみで6駅のところが新設列車で1駅になる)する.これによって,不必要に岡山を経由するトラフィックが生まれる可能性がある.
  • 東京→品川はとても需要が大きい(ということにする)ので,東京駅出発直後の下り列車に品川行きの客が大量に乗る.(東京⇔品川のような短距離客は寝台列車に乗らないでほしい)
  • 品川→東京の上り列車で,品川駅から東京行きの客が乗ってくる

これらの問題は,次の対策によって解決できます.

  • この運転スケジュールを臨時系統とする.すると,旅客の経由地点検索ではこの路線(寝台列車)は考慮されず,品川→岡山の最小ルートコストは14のまま(基礎点9+6駅)になる.
  • 品川駅下りは降車禁止とする.すると,東京駅下りでは岡山,広島行きの客が優先して乗るようになる.(現時点での仕様では「上り品川駅で降りることはできる」ため,最後に品川行きの客が乗ってくる.なお,降車禁止は旅客・貨物の積載にのみ影響を与え,実際に降車を禁止するわけではないため,東京駅で乗ってきた品川行きの客は下り品川駅で降車する.)
  • 品川駅上りは乗車禁止とする.すると,品川駅上りでは一切客は乗らなくなる.

似たようなシチュエーションとして,混雑路線を高速バスで救済するときにも使いやすいと思います.

 

ケース2) 拠点駅近辺でのみ混雑するのでそこだけ輸送力増強したい

JR東の高崎線では輸送力調整のため,籠原で付属5両編成を切り離します.それと同じことをしましょうという話です.

OTRPでの増解結の設定方法自体については,↓のページで図解しています.

github.com

混雑対策をするにあたって,都心側の駅のみで混雑し逆側では空気輸送になってしまうという状況はよくあると思います.Simutransにおいてこのような状況への対応としては従来,末端各駅停車になる急行を設定して遠近分離を行うという方法がよく取られてきました.OTRPではこれに加えて,末端では短編成として途中駅から増結する方法を選択することが出来ます.

例えば,高崎線籠原駅にて上り列車は増結,下り列車は解放する場合を考えます.このとき,付属編成を親編成として先に籠原駅に入線させ,増結待ちをし,基本編成は子編成として付属編成に連結させます.スケジュールとしては,上り籠原駅のエントリで付属編成に「連結相手を待つ」,基本編成に「連結を試みる」を設定する形になります.現実の高崎線とは連結の順序が逆になりますね.(現実では高崎方の11〜15号車が付属編成として籠原で切り離されます.)

f:id:himeshi:20191201183834p:plain

上り列車(東京方面行き)での編成の位置関係の図 

付属編成を親編成として籠原駅に先に入線させるのは,都心側で折り返して下り列車となったときに遠距離客を可能な限り主編成に乗せるためです.OTRPを含むstandard系のsimutransでは,折返しをしても付属編成が先頭になることに注意してください.Simutransでは「近距離の客から」順番に「先頭車両から」乗っていきます.よって,籠原止まりの編成を先頭側にすることによって,籠原までの客が籠原止まりに乗り,基本編成のキャパシティが遠距離客に割り当てられるようになります.

 

記事執筆時点では,旅客積載は近距離の客から先頭車両から積載されるルールがあるため,高崎線のような輸送力調整のための増解結はやりやすいです.その一方,東北新幹線はやぶさ&こまちのような増解結運用はやりにくいと思います.例えばはやぶさを先頭にした場合,下り列車において東京〜盛岡間の旅客がはやぶさ側に集中することになり,盛岡以北への需要を拾うことが難しくなります.盛岡までの客がこまちに乗るのは,はやぶさが満員でこれ以上積載することができない場合のみです.

 

ケース3) 優等退避を安定してキレイにきめられるようにしたい

需要に応じて複数の種別を設定し,同じ路線の上に流すことはSimutransの醍醐味の一つです.速度差のある種別を設定すれば,途中で追い越しをかけることが必要になります.

従来,Simutransでキレイな追い越しを実現することはきわめて困難でした.キレイな追い越しのためにはパターンダイヤ化が必要不可欠です.従来,運転間隔を揃えるために下のような設備がよく使われてきました.

f:id:himeshi:20191201185750p:plain

  ここでは,まず列車を検車区(オレンジ)に入線させ,折り返して発車待機地点(水色)に移動させます.そこで1/32月待機なり1/64月待機なりをして,発車させます.発車待機地点から列車が出発した後すぐに検車区から次の列車が供給されれば,間隔は概ね一定になるという仕組みです.

しかしここには次の問題点があります.

  • 何らかの要因で発車待機地点からの発車が一度でも遅れると,その間隔乱れは回復できない.
  • 特に運行間隔が短い路線の場合,検車区の入線する線路によって発車待機地点までの移動時間に差が生じ,間隔にばらつきが生じる

OTRPやextendedで導入されている発車時刻指定機能は,「1ヶ月に何本発車させるか」を指定した上で,1ヶ月を指定された数に等分して発車させますので,こうしたばらつきを排除することができます.

正確なパターンダイヤを実現できることを利用して,所要時間を計測して緻密なダイヤを組むのは一つのやり方です.しかし,それはとても大変な作業になるのでココではもう少しラクにすることを考えましょう.基本的な方針は以下のとおりです.

  • 1複線あたりの種別数は基本的に2種別に抑え,本数比は1:1や1:2といったわかりやすいものにする.
  • 種別ごとの使用車両は統一する
  • ダイヤの構築とともに待避設備の整備も一緒に行う

この条件下で,待避設備が一切ない路線で待避設備を作りながら優等(急行)を導入する作業を想定します.以下の作業を繰り返すと,比較的かんたんにキレイなダイヤが出来上がります.

  1. 各駅停車と急行を必要な本数分流す.基本的には端の1箇所で発車時刻を指定する.この時点では急行は各停を抜けないので,急行はひたすら各停のケツをほっている.
  2. 運転間隔が指定されている場所から急行を追跡して,急行が各駅停車に追いついた場所に待避設備を作る.各停が退避するようにスケジュールを変更し,しばらく放置する.
  3. 再び急行を追跡して,各駅停車に追いついた場所に待避設備を作る.各停が退避するようにスケジュールを変更し,しばらく放置する.
  4. 急行が行程を一周するまで以上のプロセス(2・3)を繰り返す

基本的には「急行が追いついた場所に待避設備を作ればスムーズに走れる」という単純な整備方法です.路線のある1箇所以外では発車時刻を指定しないのが特徴です.しかし,地形的な制約などで待避設備を作れない場合が生じると思います.この場合は,以下の2つの対処方法があります.

  • 発車時刻指定をする駅において,発車時刻にオフセットをかける.
  • 急行が追いつくより前の場所に待避設備を設けた上で,三現示信号(Priority Signal)を使用して各停を退避させる.

OTRPはstandardベースなので三現示信号が使えます.その点で,追い越し制御に使える信号が特に存在しないextendedよりもダイヤが簡単に組みやすいのではないかと考えています.この方法であれば,駅間の所要時間を計測する必要はありませんし,Oudiaを使ってせっせとダイヤを組む必要もありません.NSなどでも十分使いやすい方法であると考えています.

 

以上,OTRPのスケジュール関連機能について,3つのユースケースを取り上げてみました.皆さんの素敵なOTRPライフの一助になれれば幸いです.