Daily Archives: January 4, 2017


Many moons ago, I wrote an introduction to North American railroad signaling, explaining the difference between fixed block signals (including wayside and cab signals) and communications based train control (CBTC), also known as moving block signals. Railroads that already have fixed block cab signals may not want to spend the money to entirely overhaul their signal systems to CBTC, and for institutional reasons may prefer to stay with traditional North American practices. In this case, there is a way to squeeze a little extra capacity out of the system.

To see how, let’s first remember what causes congestion and how cab signals work.

The relationship between speed and capacity is an upside down U. At high speeds, the number of vehicles that can get through is low, because of the need for more separation between vehicles. At low speeds, capacity is also low because no one’s moving. For any transportation line, there will be a speed (Vmax) that maximizes capacity. As long as speed stays above Vmax, the system is stable. If speed falls below Vmax, congestion quickly builds, because capacity drops and vehicles must slow down more to wait their turn. This is why a seemingly smooth-flowing freeway comes to a sudden halt when a few cars come up an onramp (and it’s why we have ramp meters).


Over to cab signals. The most common cab signal system on northeastern commuter railroads is a three-block, four-aspect system, with cab codes of 0, 75, 120, and 180 pulses per minute, corresponding to speeds of 0 mph (or really 15 mph but that’s another story), 30 mph, 45 mph, and maximum authorized speed (MAS). Historically, these systems were often designed with a mid-block code change from 30 mph to 0 mph, to avoid braking the train too soon and damaging capacity. Keep this in mind, as it’s important for squeezing extra capacity out of the line. (Transit systems usually have more, and different, speed indications, but the basic idea is the same.)


Ok, so in the context of a railroad running near capacity, we really don’t want to tell the train to start braking any sooner than needed to avoid crashing into the train in front. That might be enough to push us onto the wrong side of the speed-capacity curve, and cause delays to cascade backwards. That’s the beauty of CBTC; we don’t start braking until we need to. With fixed block systems, we have the wasted capacity of initiating braking in order to stop at a fixed block boundary, even if the train in front is nearly clear of that signal block.


However, there’s also wasted capacity inherent to the block layout itself. For example, in the graphic shown above, it’s very unlikely that the lengths of the two blocks between Train B and the red signal add up to exactly the stopping distance for Train B traveling at MAS. And even if it were, that might make it impossible to design the adjacent blocks to hit the exact stopping distance. On top of that, because of the effects of grade, it would virtually ensure that the block design would be very poor for train traffic in the opposite direction. Finally, if the block design is optimized for maximum speed, it may have a lot of wasted capacity at the other speed commands such as 45 mph. Signal block designers must consider all of these factors (grade, directional bias of traffic, expected operating speeds) when doing a block layout. Balancing these concerns will always result in some wasted capacity.

The way to get around this is and increase capacity a little bit is to code change every cab indication in every block using timers. In the example above, we can calculate how much extra stopping distance there is for Train B, calculate how much time it takes to traverse that distance at maximum speed, and then hold the cab indication at MAS for Train B for that amount of time when it enters the block. We still have the wasted capacity of fixed block boundaries, but at least we get rid of the wasted capacity from the block design.

Historically, this wasn’t done because railroads didn’t need that extra capacity, and the technology used for code changes (capacitor banks or cut sections) wasn’t great. However, with computer-based signal locations, it’s an easy programming change to implement all these code changes. You could even have multiple code changes in the same block. In fact, a considerable advantage of this approach is that if you have an existing fixed block system installed, you don’t have to install any new signal locations or cables – even if the existing block design is fairly inefficient, provided that the blocks aren’t ridiculously long. Note that for this to make sense, you’d have to get rid of the wayside signals (at least at intermediate locations) and use pure cab signals, to avoid confusing the operator with conflicting wayside and cab indications.

Here’s an example. Let’s say you have 32,000’ (just over 6 miles) of track between two interlockings. The signal designers of yore left you with eight 4,000’ blocks and the territory is good for 80 mph. Using ye old Pennsylvania RR braking chart, the braking distances to stop for 80 mph, 45 mph, and 30 mph are 6313’, 2230’, and 1108’. With this arrangement, you’ll have two blocks to stop, for 8000’ total. Conventionally, this would be set up with the first block receiving a 120 code (45 mph) and the second block receiving a 75 code (30 mph) timing out to no code (0 mph). With 4000’ blocks and only 1108’ to stop from 30 mph, we could give a 30 mph code for about 55 seconds. Don’t worry about the actual calculation, which is complicated by the fact that the train won’t have slowed down to 45 mph before entering the second block.

In this setup, for 80 mph speed we have 1687’ wasted (8000’-6313’), which is 14 seconds. Not huge but it’s something! For reference, the deadweight loss of a 4000’ block at 80 mph is 34 seconds. CBTC would be able to capture both improvements for a total of 48 seconds. By putting 14 seconds of 180 code (MAS) in the first block and then code changing to 120 code (45 mph) we can get about 30% of the improvement we could get with CBTC.

Back to the second block. Conventional wisdom often held that you should always see every signal indication (MAS, 45 mph, and 30 mph) on your way to stop. But really, there’s no need for the 75 code (30 mph) indication at all – the block is plenty long, so we could just code change from 45 mph to 0 mph. In our initial case, we could give 26 seconds of 45 mph code and then 0 mph.

We could also optimize for 45 mph, by ensuring that the train reaches 45 mph before entering the second block. This will allow us to hold up the 45 mph code as long as possible. In this layout, we only gain 1 second (27 seconds instead of 26 seconds) compared to the initial setup above – probably not worth it. To do this, we’d have to start the 45 mph code before the train enters the first block, so we’d have to code change the previous block to 45 mph – in this case 5 seconds before a train going 80 mph would be expected to leave the block, or after 29 seconds of maximum speed.


As can be seen, the capacity benefit of this approach will depend on the existing block layout and the target speed. In some cases it may present a reasonable benefit, considering that no new signal locations or cables are needed.