loading...
Platform occupation chart: each bar is a train, grey = approach, colour = doors open, dark grey = departure and route setting; ticks at the top are the scheduled arrivals
Trains waiting at the home signal (orange) and passengers waiting on the platforms divided by 100 (blue) against time
Mean wait at the signal against utilisation: Erlang C curve for random arrivals (blue), timetable with lateness (green dashed) and this run (orange point)
Throughput against headway: the timetable 60/H (grey), the station capacity 60 N / S (green line) and this run (orange point)
running...
The science
What the station does. Trains arrive on a timetable with scheduled headway H (minutes between trains), each a random number of minutes late (normal, spread σ). A train needs one of the N open platforms. If all are busy it waits at the home signal, and the wait is added to its delay. A platform is occupied for
S = tenter + tdwell + tdepart + troute, tdwell = d0 + (A + B) τ
where A passengers alight, B board (limited by the free seats and by the people waiting on the platform), τ is the boarding time per passenger and d0 the fixed time for doors and dispatch. The platform crowd grows at the arrival rate λp between trains.
Capacity and utilisation. Each platform can serve at most 1/S trains per minute, so the station tops out at
C = 60 N / S trains per hour, ρ = S / (N H) = (train rate) / (capacity)
For ρ ≥ 1 no timetable can be kept: the queue at the signal grows without limit. The page shows both the nominal ρ and the measured fraction of time the platforms are occupied; they agree in a stable run.
Why waits explode near capacity. For random (Poisson) arrivals and exponential service the mean wait for c servers is given by the Erlang C formula, with offered load a = S/H:
C(c,a) = [ac/c! · c/(c−a)] / [Σk<c ak/k! + ac/c! · c/(c−a)], Wq = C(c,a) · S / (c − a)
Wq rises like 1/(1−ρ) as ρ → 1. A real timetable is far more regular than Poisson arrivals. The Allen-Cunneen approximation scales the Erlang C wait by (ca² + cs²)/2, where ca ≈ σ/H is the variability of the arrival gaps: a punctual railway (σ small) queues far less than a random one, and the page plots both curves against the simulated point.
Little's law. In any stable system the mean number in a subsystem equals the arrival rate times the mean time spent there, L = λW. The page tests it for the platforms (occupied platforms = trains per minute × S) and for the queue at the signal.
Honest simplifications. (1) The throat is idealised: any train can reach any open platform from one approach line, with no conflicting moves and no block-section or signalling spacing (in a real station route conflicts and the signalling headway limit the capacity below N/S). (2) One train type and one direction; no through trains, no turn-back sidings, no rolling-stock rotation. (3) Entry and departure times are fixed; real running times depend on speed restrictions. (4) Passengers are a continuous flow that boards whoever opens the doors first; there is no crowd dynamics or door-position choice. (5) The lateness is independent for each train; real delays also propagate along the line, which makes bunching worse than shown. (6) The time step is 0.02 min (1.2 s), the accuracy of the waiting times. (7) Train and platform sizes follow a European 100 m EMU on 120 m platforms; they do not change the queueing result.
Checks run in the page. A separate headless run of the station tests Little's law for the platforms and for the signal queue; an independent M/M/3 queue of 400,000 trains is simulated and its mean wait compared with the Erlang C formula at ρ = 0.75; a saturated station is compared with the capacity 60 N / S; and a timetable with H = 1.25 S/N and no lateness is checked to produce no waiting at all.