[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

パケット通信をモデルとした鉄道シミュレーション試案


久々のカキコになります
ある日、TCP/IPの本読んでたらこれは鉄道シミュレーションに応用できるんじゃないだろうかと
思いつき、稚出ながら試案にまとめてみました。

これは要望というより将来の鉄道シミュレーションへの応用として有用な方法となるのか
検討してみたいという好奇心により、みなさんの意見をいただきたいもので、FreeTrainと直接
関係ないということになりますが鉄道シミュレーションに関する話題としてご容赦ください。

曖昧もしくは矛盾している点もあるかと思いますが、もしよろしければご意見を伺わせてくささい。

---------------------------------------------------------------

1,概要

ここではTCP/IPなどに代表されるコネクションレス型通信をモデルとし、
鉄道運行をシミュレートした場合の利点および課題を考察する。この試案では
IPにおけるパケットを列車、ルーターを分岐点、ネットワークを閉塞と
見立てて鉄道運行システムを構築することによって特徴を明らかにすることを試みる。

2,列車

列車に持たせるプロパティーには、以下の情報を含む
・目的地(任意)
 列車の行先を入力する。デフォルトの場合後述のルート算出方法により
 最も近いボクセル数で到達できる駅を目的地とする
・出発地(任意)
 列車の出発地を入力する、経由および目的地より優先とし、後述する運用が未入力の
 場合、目的地到着後の次の目的地とする。出発地が未入力の場合、自動的に次の
 停車駅を出発地とする。
・経由(任意)
 列車が行先までに経由する地点を入力する。
 システム上は目的地に優先して到達を目指し、経由地に到達するごとに
 次の経由地に移し、最終的に目的地を到達地と設定する
・種別(任意)
 後述する駅の種別テーブルと照合し、停車(運転停車)、通過の判別を行う
 デフォルトでは停車とする
・運用(任意)
 上記4つの情報を運用グループに分け、目的地到着後次の運用へ移る。
 到着地≠次の運用の出発地の場合、到着地から出発地まで回送として運行する。

2,分岐点・駅

分岐点をルータと考える方法により列車の目的地をポイントが理解し目的の方向へ誘導する。
分岐点のテーブルは列車または運用ごとに手動設定も可能なようにする

駅では列車種別を判定し停車および通過を決定する。また、手動で停車時間もしくは発車条件
を設定できるようにする。

3,実際の運行方法

列車の動きをシミュレートすることによって説明する。

 3-1,配置
 配置しようとする場所から到達目標地までのルートを決定する。
 この際の方法は配置する場合、まず実際に運行する前に線路上に
 検索パケットをブロードキャストし、到達目標地に到達するルートを決定する。
 実際のネットワークではない利点を生かし、すべての複製されたパケットの
 行動を把握し、到達目標地ではない地点でターミネートされたパケットおよび
 ループによりTTL(生存時間:閉塞ごとに1づつ減らす)が0になったパケット
 を破棄し、到達目標地で受理されたパケットの中から、一番通過ボクセルが
 少ないパケットのルートを、到達目標地までのルートとし、途中の分岐点および
 閉塞のテーブルに情報を書込む。到達目標地に到達するパケットが存在しない場合、
 または閉塞内にほかの列車がいる場合は、配置せずエラーを返す。
 
  3-2,起点→到達目標地
 配置された進行方向に進む。途中で行う処理は2つに分けられる。1つ目は閉塞による
 速度制御であり、次閉塞に列車がいる場合停止、次々閉塞に列車がいる場合、もしくは
 次々閉塞が存在しない場合に徐行する。2つ目は閉塞内でのルーティングであり、当該
 閉塞にさしかかった列車をキューに加え、まず閉塞があいているかどうかを判別する。
 閉塞があいている場合、列車の到達目標地を読み取り、到達目標地へのルートに当たる
 次閉塞を決定し、分岐点のルーティングを行う。これが完了したら列車は当該閉塞へ
 進入できるとする。閉塞があいていない場合は、まず現在閉塞を塞いでいる列車のルートを
 認識し、進入しようとしている列車とルートが重ならない場合は閉塞への進入を許可する。
 ルートが重なった場合はキューに加わり、原則その順番で閉塞が空き次第進入するが、
 例外として最初にキューに加わった列車がルートを決定するとき、決定された次閉塞を
 キューの後位に加わっている列車が塞いでいる場合は、キューの次位の列車を進入させる。

 3-3,到達目標地にて
 列車が目標地に到達した場合、運用情報を次の運用へのプロパティーに書き換える。
 また、運行したルートを途中の閉塞に成功例として通知し、出発地および到着地が
 同じ運用が再度行われる場合はそのルートを利用する。このルートは、ルートを構成する
 物理モジュールに変更が生じるまで保持する。

以上の繰り返しにより運行を行う。

4,考察

細かい点は詰めていないが、この方式により自律的で緻密な運行が可能になるものと思われる。
課題としては、閉塞の決定、線路のプロパティーの決定(一方通行にするか、等)など路線を
設置する作業が複雑になる点であるが、これは基本的な線路パターンをモジュール化することによって
容易にできると思われる。
以上の方法により、現在のA列車式もしくはSimTrans式並の操作難易度によってより緻密な運行
が可能になるものと期待できる。
_______________________________________________
FreeTrain-general mailing list
FreeTrain-general@lists.sourceforge.jp
http://lists.sourceforge.jp/mailman/listinfo/freetrain-general

題名

名前

メッセージ