Proposal and specification for new multi-block parallel track component.
Description
A section of parallel tracks containing one or multiple signal blocks. Each block on each track holds one train, which will progressively traverse to the subsequent blocks if they are unoccupied, in the train's direction of travel. Assumed to have no crossovers between blocks.
Component Parameters
Number of tracks
Number of blocks
Nominal traversal time (for the entire component)
Logic
Nominal capacity = Number of tracks x Number of blocks
Detecting the travel direction of a train:
Look at both the previous and next components for the train, and get their u and v nodes
Compare with component's own u and v nodes
Two cases:
If the previous component has the same v as the current's u, and the next has the same u as the current's v, then the train is going in the direction from u to v
If the previous component has the same u as the current's v, and the next has the same v as the current's u, then the train is going in the direction from v to u
Assigning tracks:
Prioritize putting trains travelling in the same direction onto the same track
When a train first enters the component, it occupies the block closest to its entrance (either on the u side or v side)
Tracks with the first block occupied at the corresponding entrance side are not available; tracks containing trains travelling in the opposite direction in any block are also not available
Among the available tracks, select the track that would minimize the number of gap blocks between the trains on it (i.e., want to maximize the number of trains operating safely on the same track)
If no available tracks exist for the current train, reject the train from entering (and SimPy will place it on a wait queue)
Hold trains in one block until next block clears
Nominal per-block traversal time is the overall nominal traversal time for the entire component divided by the number of blocks; after this time has passed (plus jitter), the train can attempt to switch to the next block in its direction of travel
Every time a train leaves a block at the boundaries (either on the u side or v side), re-check if any held trains could enter the component
Proposal and specification for new multi-block parallel track component.
Description
A section of parallel tracks containing one or multiple signal blocks. Each block on each track holds one train, which will progressively traverse to the subsequent blocks if they are unoccupied, in the train's direction of travel. Assumed to have no crossovers between blocks.
Component Parameters
Logic