Skip to content

Moving Block + UTO: Rail signals enforce fixed block on bidirectional sections despite --railsignal-moving-block #17669

@MHorsthemke

Description

@MHorsthemke

Context

Basis_Scenario_U4_running.zip

This issue is related to #16855 (railway switches and moving block behavior).

I am building a simulation of a highly automated subway line with UTO (Unattended Train Operation) in a CBTC environment, where Moving Block is the primary safety system.

Problem

When using --railsignal-moving-block, safety function a) (block section guarding for distance keeping) is correctly disabled, as described in the documentation. However, safety function c) — guarding bidirectional sections against head-on collisions — remains active and is still enforced by rail signals.

In my simulation, this causes rail signals to turn red at reversing sections in order to protect the bidirectional used track. This leads to train queues and congestion when the simulation is run at scale (e.g., headway factor 100), because trains are held at the signal even though Moving Block should be handling all spacing and safety functions.

Additionally, it seems that rail signals are required for the simulation to run at all — removing them causes the simulation to fail or produce incorrect behavior. This creates a dependency on fixed-block infrastructure that contradicts the intent of Moving Block operation.

Expected Behavior (Real World)

In a real CBTC / UTO environment:

  • Moving Block handles all safety-relevant spacing and collision avoidance — including on bidirectional sections.
  • In full UTO operation, wayside signals are operationally irrelevant and would not impose any movement authorities on a regular basis.

Current Behavior in SUMO

  • --railsignal-moving-block disables function a) as documented.
  • Function c) still causes signals to turn red on bidirectional sections, blocking trains even in Moving Block mode.
  • The simulation appears to require rail signals to function correctly, making it impossible to model a purely Moving Block / CBTC system without fixed-block side effects.

Question / Feature Request

Is there a way to:

  1. Fully disable rail signal enforcement (including function c) on specific sections or globally, to simulate a pure CBTC Moving Block environment?
  2. Additionaly: configure signals so that in Moving Block mode, bidirectional section protection is handled by the Rail carFollowModel rather than by signal states? Alternatively would it be nice, if there is an option for MovingBlock mode, to disable safety functions manualy. So that users can decide if safety function an and c should be disabled.

I will attach my scenario as a ZIP file for reference.

Thank you!

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions