magicant / bve-autopilot

Bve trainsim 用自動運転車両プラグイン
GNU Lesser General Public License v2.1
21 stars 5 forks source link

停止信号で停止後、発進時に ATS に引っ掛かる #45

Closed magicant closed 4 years ago

magicant commented 4 years ago

停止信号で停止した後に再発進すると現在閉塞と次の閉塞の制限速度を 7.5 km/h に上げて進行するが、このとき信号前照査順守での照査が無効になるので、再発進位置から次の閉塞までの制限速度は単に現在閉塞に対する信号速度のみに制約され、ATS の照査よりも高い速度となることがある。すると他の保安装置プラグインと併用している場合にその照査に引っ掛かることがある。

magicant commented 4 years ago

まず現状の仕様をまとめる:

magicant commented 4 years ago

制限グラフ#出力ノッチ から停止位置マージンをなくして、制限グラフに制限区間を設定するときに停止位置を完全に考慮した位置に設定するようにすべきか。あるいは、停止位置マージンをなくすとしても停止方法は別に設定すべきか。

magicant commented 4 years ago

信号順守::閉塞型 が「発進によりその閉塞に対する停止が無効化されている状態かどうか」を知っているべきと思われるのでそこにフラグを加えることから始めると良そう。

magicant commented 4 years ago

新たな仕様はこれでどうか:

magicant commented 4 years ago

次閉塞の速度が 0 の場合において、TASC 停止目標位置が現在閉塞内になく、信号前照査順守の速度 0 の照査が現在閉塞内に設定されていない場合は、次閉塞の 51 メートル前を目標に停止する。(次閉塞に対応する制限グラフの速度 0 の制限区間を 51 メートル手前に設定する)

閉塞に対する停止位置は TASC 停止目標位置に依存して決まるので、信号グラフを計算する時点で制限区間に停止位置を反映しようとする場合は TASC 停止目標位置が変化したときにも信号グラフを再計算しないといけない。それはそれでめんどいぞ……

magicant commented 4 years ago

停止マージンの廃止を前提としない仕様だと:

magicant commented 4 years ago

停止マージンの廃止を前提としない仕様

しかしその場合、停止解放時に 51 メートル速度マージンが適用されないので本来の問題が解決されない。