Estimation of carload traffic flow
A report to the Organizing Comittee Alsfeld 2006 (FREMO 25th anniversary meeting) prepared by Martin Balser, 051127, corrected by MB, 051209
Inhaltsverzeichnis
Introduction
Knowing traffic volumes is a key requirement for proper scheduling of trains and switching crews. When resources are allocated too short, real traffic volume will result in operational bottlenecks with irresolveable congestion, excessive dwell time in yards, cars lost en route, stressful work and frustrated crews. On the other hand, allocating crews too generously will result in boring work for them, so they tend to increase traffic volumes for their area by generating ad hoc (unplanned) traffic, which might congest places out of their scope.
In prototype operations, time table planning is a continuous process. Traffic volumes and switching requirements change only slightly with time, and frequent monitoring via reports from trains, stations, yards and dispatcher desks allows to patch the timetable at intervals. Substantial time table changes are usually made once or twice a year. Temporary needs are handled on daily basis with calling extra trains, extra switch crews or shifting work to stations and yards with spare capacity.
Contrary to this, timetables for modular layouts have to be created from scratch for each meeting. The changing configuration does not allow do re-use anything but very basic experience we have with stations and crews. This experience is not even documented to any detail, so it is highly subjective. Only very recently reserach on line and switching capacity has been started after the intuitive approach had violently crashed in Garbsen 2003. Bernd Gerlach has published first theoretical calculations in Hp1 Modellbahn 1/2004, pages 15-18. No one has recorded experimental observation yet.
Bernd also published on increasing traffic volumes, domestic traffic and his station Bickburg in Hp1 Modellbahn 1/1997, pages 13-23. He introduces a unit (number of cars)*(distance) to measure the load and shows calculations for three example layouts of S, M and L size, and then discusses 6 means to attack the capacity problem. It is very interesting to list the 6 items and how things evolved in the recent 8 years. Back then, maximum train length was about 15 cars, we had no double track line and no DCC cab control system.
- Reduction of traffic: was no feasible way -- and still is not
- Reduction of distance: tree shaped layout with large fiddle yard forming the root proposed -- distance seems not to be a problem so much with today's double track mainline
- More domestic traffic: levels traffic load along the line and reduced number of cars used to generate the same amout of traffic at one place -- we see more domestic traffic in recent years
- Longer trains: trains of 25 - 30 cars proposed -- today we approach 40 cars
- More line capacity: less passenger trains -- now double track line offers increased capacity
- More train crews: proposal to use doubled analog equipment to break the limit to 5 walk-around throttles the system had -- now DCC allows more than enough trains to move simultaneously
What we need to do
- We must collect reliable estimates of line capacity, yard capacity, time consumption of the various operations and the level of complexity a crew can handle.
- We must collect data on traffic volumes. The how-to must be developed, documented and carried out in cooperation with station owners. Then we need some simple mathematical treatment of this data to provide us a descision basis for layout and time table planning.
- The planning process has to give precise but simple to understand documents. Some development is still needed in this field. Especially for a large layout, the routing information needs to be displayed as simple and unambiguous as possible.
Mathematical tools for representation
Definition of car output
For each station we need to know its daily output of cars. If there is no car builder or scrapping operation at a station (or someone putting cars out of the box on tracks), input equals output on the long run. The number "daily car output" defines the station's need of traffic capacity and is the basis of freight schedule design. All numbers we talk about are mean values over a long time, neglecting random fluctuations.
However, the station data sheet comprises a table with columns "number of inbound loads" and "number of outbound load" and lines for each commodity, industry or spot. These numbers are usually per week, sometimes mixed units (per day, per week, per month) are used. The weekly numbers are handy because a stack of waybills is ususally prepared for one week of 5 or 6 workdays, so the number of waybills in the stack is given in the data sheet. Now we add up each column to give the weekly number of inbound resp. outbound load. There numbers are divied by 5 (monday - friday) or 5,5 (saturday was at least a half workday until the '70s) to yield numbers N_{load,in} and N_{load,out} per day.
In the most simple case we assume every inbound loaded car is sent out empty after unloading, N_{empty,out} = N_{load,in} and every car to be loaded has to be recieved empty from somewhere else, N_{load,out} = N_{empty,in}. A more complex case is when cars are reloaded at the same station, which is typical for LCL (less than carload, Stückgut) boxcars at the goods shed. Then the equations are
- N_{empty,out} = N_{load,in} - N_{reload}
- N_{load,out} = N_{empty,in} - N_{reload}
The total car output is the sum (where N_{reload} is non-negative)
- N_{out} = N_{empty,out} + N_{load,out} = N_{load,in} + N_{load,out} - 2*N_{reload}
Neglecting reloads, we get calculate the daily car output by adding both column sums from the data sheet, normalized on a daily basis.
System graph
Layout maps with full geometrical detail, as they are generated e. g. using AutoCAD by the layout planners, are not good to use for operations planing. The eye is distracted by surplus information, while important information like number of line tracks, main line assignment, importance of stations for carload traffic is hard to see. The graph generated by the FplEdit tool does a better job, but has no information about stations but their telegraphic code.
A usable representation of the system graph is possible even in ASCII graphics. Consider the following layout. (In real cases the stations will not be designated by numbers but their telegraphic codes.)
X:Y --(9)--:--(10)--+--<11 / 1>----(2)----+====(3)====(4)----(5)----<6 / (8)--+--(7)-
Staging yards are represented by the > or < symbols. Trains to and from 'far' points will terminate and originate at them. Stations with carload traffic have ( ) round brackets. Junctions or passenger halts are indicated by the + symbol, they don't have carload traffic. Double track line is ===, and : indicates a borderline between railroads (subsystems, subgraphs) X and Y.
It is evident that 1-6 will be X's mainline, 3-8 a branch, and 3-11 an international line with opportunity for domestic traffic 3-9 and 10-11. X might operate trains from 8 to 9 connecting to the 1-7 main at 3, or operate 3-8 and 3-9 as stub lines from 3.
Flow Matrix
A complete picture of all traffic is the flow matrix M (or table), where each element m(a,b) is the number of cars from a to b, taken in one time period (usually one workday or session). The matrix has some obvious properties. The symbol * in place of an index denotes summarization over all possible values of this index.
- For a system with N stations, the matrix M has N^{2} entries.
- The sum m(a,*) over row a is the total number of outgoing cars at a.
- The sum m(*,b) over column b is the total number of incoming cars at b.
- The sum m(*,*) of all elements is the total number of cars moved.
- Elements on the diagonal m(a,a) are 0, since no car is moved from station a to itself.
- For any station i, m(i,*) = m(*,i) all incoming cars at i also go out, the traffic is balanced. The matrix itself needs not to be symmetrical in the sense m(a,b)=m(b,a) for all a, b, though.
The layout is not a complete graph (simplex) where each station a has a direct track to station b, but is a star-shaped non-closed graph where traffic on many relations has to pass through a couple of stations. For each segment of line in the graph, traffic volume can be calculated by looking at a set of sub matrices of the flow matrix.
For example, we want to know traffic volume on the line connecting 4 and 5. We divide the system S in two subsystems: I = {1, 2, 3, 4, 8, 9, 10, 11} and its complement J = S\I = {5, 6}. Only elements m(i,j) and m(j,i) with i being element of I, j being element of J contribute to the traffic along 4-5. In a table representing M, one has to sum over all elements of columns and rows 5 and 6, but not the elements where columns and rows 5 and 6 cross each other.
Formally we can write s(I) = m(I,J) + m(J,I) = m(I,S\I) + m(S\I,I) for any subsystem I of S. This is the exchange flow between subsystem I and the rest of the world S\I.
Using a computer to visualize traffic flow
The .pln file generated by Stefan Bormann's FplEdit tool contains a description of the system graph. In the 'Knoten' section, for each node, a line like 'BAHNHOF 0.51179/0.49389 Kalköfen Ka' gives x/y coordinates (ranges within 0 and 1), full name and telegraphic code of each station. The 'Kanten' section lists all edges of the graph such as 'EDGE 2 1'. See Full Specification (in German only).
The order of columns/rows of the matrix would have to be in order with the list of 'BAHNHOF' definitions. For each edge the traffic flow across it can be estimated by the algorithm outlined above - establish the two subgraphs, then sum the appropriate matrix elements.
We end up with an assignment of one traffic flow number to each edge. Now we want to have a graphical description. It should be fairly easy to generate a PostScript file diectly, since we only need lines (of variable width) connecting points whose coordninates can be calculated from the values in .pln, and some text to mark the points as stations. See PostScript guide.
The computer should also be used to automatically generate routing tables. This has to be for any station a. A routing table (for a) relates the name of destination b to trains and routings used to get there. For practical used it is alphabetically sorted by names of stations b. An example:
Routing Table MÜHLENRADE Station Trains Routing via switching points Albersdorf 9054 9056 Treudelburg - Brebeck-Hohentor Autbeck 9054, 9056 Treudelburg - Bickburg BLAU 6713, 9053 - Carstorf 9053 - ... ... ... ...
The station crew might add track designations where to store such cars for pickup of blocks.
Color coded staging yards
Two conditions make quite a difference between prototype railroad systems and FREMO layouts. First, the configuration of stations changes from meeting to meeting. It is not just a permutation of stations, it's worse because station names disappear and new ones come into play. Second, we cannot match sources and destinations for every commodity on the layout, so we use virtual industries at staging yards.
To get around the need to prepare a new set of waybills for each meeting, color codes were introduced very early. Six colors are available to code as much as six different staging yards. Usually we have fewer yards, some of them with multiple colors. For many small layouts, it breaks down to an unique staging yard serving all six colors.
Using color codes implies there is no domestic traffic. Domestic traffic we call traffic between stations which are both not staging yards. The absence of domestic traffic was not felt as a shortcoming, because prototype railroads mainly haul freight at long distances, leaving short hauls to carriages and trucks. The method allowed for easy routing and train make-up. Trains had to distribute cars from staging yards only in the beginning of the operating session, and collect them for staging yards only at the end of the session. Direct connection from each station to each staging yard was the goal of time table design.
Without domestic traffic, the flow matrix shows a special form. Assume all staging yards are listed first, then all stations. The submatrix for connections between staging yards is zero, of course, and so is the submatrix for connections from stations to stations. Only the two off-diagonal submatrices are non-zero.
The number and blocking of outbound trains from a staging yard can easily be estimated by looking at the corresponding row. To fill one train, one groups a a number of entries where the destination stations can be served by the train serially. The pattern for collecting cars is simply found by mirroring the distribution pattern with respect to a fixed time.
Waybills for domestic traffic
Some people feel color code only is a dull traffic pattern, so they want (additional) domestic traffic between matching industries. As FREMO grew, also the number of matching industries on our modules raised. Preparation for a meeting includes any station owner has to decide which commodities to trade with other stations. Waybills have to be prepared each time.
An important rule should be obeyed: A waybill for domestic traffic must be issued by the destination station only. Otherwise the stations are can't control the traffic volume they recieve any more, they can become congested. If the order for domestic freight cannot be accomplised by a station, no car will be sent out. That's a pity, but it's not causing a real problem.
Up to now, no specific rule has been issued how domestic traffic should interoperate with color coded traffic. The rules discussed below are hypothetical.
Additive rule
Domestic traffic is added to color coded traffic. It is routed via the "domestic yard" each time. A column and a row "domestic" are added to the flow matrix. (Bernd suggests further subdividing it into Eastern and Western hemisphere.) Operations concerned with domestic traffic are planned using this data.
Advantage: The model is an exact description, provided all domestic relations are handled by the domestic yard(s).
Disadvantage: New sets of domestic waybills have to be written for each meeting. Stations get additional traffic for that may become hard to handle on given track capacity.
This rule seems to be current practice.
Subtractive rule
A station requesting a domestic order (e. g. someone wants coal) hands color coded orders to a domestic supplier (e. g. Epterode), not to the colored staging yard (e. g. BLACK). The supplier fulfills domestic order and discards color coded waybill (e. g. coal to YELLOW) he would have used instead.
The station data sheet will only contain data for the station to color and color to station submatrices of the flow matrix M. Station to station traffic is patched in by adding a Matrix D to M. For a domestic flow of W cars per session from a to b, replacing a to X and Y to b colored traffic, D has elements d(a,b) = W, d(a,X) = -W and d(Y,b) = -W. The negative entries correspond to the two discarded color coded waybills in the example above.
Now the exact calculation can be done with the flow matrix M + D.
Advantage: Traffic volume is constant for stations. In total, for each domestic car two color coded cars vanish. Total traffic load never increases levels planned for color code only, hence no extra columns in flow matrix, but domestic classification has to be done. All waybills are reusable when the "quick & dirty" method is enabled.
Disadvantage: Tell me!
Some remarks about empty cars
A typical cycle of a freightcar constists of three steps:
- Disposition: Empty car from yard (empty car pool) to station where it is spotted (put at the proper place) for loading
- Loaded run: Loaded car from consignor to consignee
- Empty return: Empty car from consignee to yard (empty car pool)
If the empty car pool is located in a yard on the layout, the empty runs are domestic traffic! So, in a natural way domestic traffic appears even when all loads are recieved/sent from/to a colored staging yard.
In case of shuttle traffic (Wendezettel) 1 and 3 merge:
- Disposition: Empty wagon car consignee to consigner
- Loaded run: Loaded wagon from consignor to consignee
Classifying domestic traffic
Being used to the fact staging yards do all train make-up and blocking, almost no provision to classify cars on the layout was made. Domestic traffic had to be routed via the staging yards. This is considered ugly and such traffic is prone to get drowned in the masses of color coded traffic. Particularly two things happen. First, yards try prepare trains for the next session in advance (a Good Thing), and they fill them to the limit, so there is no room to switch in domestic cars when they arrive at the end of the session. Domestic traffic gets an extra 24 hours of dwell time. Second, the yard crew has to pull so many waybills from terminating cars they easily pull waybills of domestic cars in error, or they even do it with intention to get a rare car type empty for some request.
Large layouts tend to use a small classification yard near the center of the layout for real classification of domestic traffic. For Alsfeld it is proposed to use a full size fiddle yard for such classification and train make-up. An estimate for the capacity is: The lagest yards available in H0-RE have 9 tracks. One track will be used as the reception line, 8 others as classification and departure tracks. Assuming the crew can handle 120 cars per real hour manually with the 0-5-0, the yard would accept 4 trains of (average) 30 cars per real hour. During an operation session lasting 2h 30min a total number of 300 cars could be switched from 10 terminating trains to 10 originating trains of 8 directions. One should wisely schedule only 8 regular trains, one for each direction, and leave 2 timetable slots for extra trains to clear classification tracks close to overflow.