Monday, August 17, 2020

Simulating Coors - Part 2

 In Part 1, we looked at the different jobs operated on the Coors Branch. Today, I want to describe how these jobs will be selected and how I built a simulation of the operations of my Coors Branch. Rather than look at the track plan, I think today we will focus on the schematic of the branch line.

Schematic View of the Coors Branch.

Generally, operations start at the East Yard with the East Yard Job. The East Yard Job would sort cars in East Yard, break down trains arriving from the Golden Branch or from other jobs on the Coors Branch, and build trains for Coors Branch Jobs or to be interchanged back to the Golden Branch. Occasionally, cars arriving at East Yard may also be bad ordered and sent to the RIP track for a period of time.

When a Coors Branch Job is needed, a computer system will update the status of cars previously spotted on the branch. For each job, there is a probability for which each car in a particular job location of the layout have changed state (i.e. loaded-to-unloaded or unloaded-to-loaded) since the last job was initiated. The probabilities for each individual car being worked are shown in the table below.

Work Probabilities by Regions of the Coors Branch.

These probabilities could be individually tuned so as to prevent work from being completed too quickly (generating too many cars from the sidings) or too slowly (clogging the sidings with cars in process). Thus, the program determines what cars are ready to be returned to East Yard for interchange. 

With the number of cars that are ready to be returned from the job site identified, these spots and any unoccupied spots are considered as possibilities for new cars to be delivered from East Yard. The program then randomly determines the exact size of the train within the limits specified by the job and which spots will receive cars from East Yard. Based on those locations, the program then determines the type of car needed. If a track can receive different types of cars, the appropriate type is determined randomly. If it is available in East Yard, it can be sent, otherwise the East Yard Master will need to request that car from the next Beer Train and place a hold on that delivery meaning that the car is delivered the next time that job is called after the car is delivered to East Yard. 

Any empties currently in the spots for the deliveries must be picked up and returned to East Yard by the Job, and those cars are assigned by the program to the job ticket. Any remaining space space on the job ticket is then filled by the program with additional cars on that job waiting for pickup if any.

Let's look at an example. Initially, East Yard looks something like this:

Initial East Yard Configuration.

The engine Coors 993 (black box with red outline) is assigned a train of 6 empty refrigerated cars (RP), on East Yard Track 02. East Yard is populated with a bunch of cars, some loads (black outlines) and some empties (no outline).  The job assigned is the Table Job which will work the Tables at the Brewery. Initially, this area of the layout looks like this:

Initial distribution of cars at the Brewery.

Again, cars that are empty have no outlines, partially loaded cars have a dashed outline, and loaded cars have a solid outline. The red cars are Coors dedicated cars, while the blue cars are interchange cars. After the job is assigned, work is simulated throughout the Coors complex. As a result, the status of several cars in this area of the layout update (as do cars in other part of the layout). 

Brewery cars after the first work update prior to the Table Job starting.

You see four cars in this area of the layout that update. One car on Brewmaster Track #2 is unloaded (Yellow Outline). In addition, on car on the Keg Track, the Heavy Beer Track, and the Transload Track are loaded in this period (Yellow Filled Cars). Now the Table Job arrives, and begins to work the table. The first table position to finish loading is Table 7, which actually produces a partially loaded car which needs to be transferred to the Keg Track, position C.

Keg Table 7 produces a partially filled car.

An empty RP car from East yard is placed on Table 7, the partially filled car from Table 7 is sent to the Keg Track, Position C, and the Loaded car from Position D of the Keg track is stored on the Table Spur in Position A. This looks like:

Completed moves from the first Table move.

With these moves made, the Table then finishes loading Table position 1 (with a fully loaded car this time), which is then replaced with an empty RP car from East Yard.

Completed moves from the second Table move.

The third table move is a fully loaded car in Table 9. Again, it is switched for an empty car. 

 

Completed moves from the third Table move.

The fourth table move is a partially loaded car on Table 5. This car is moved to the Keg Track, Position F.

Completed moves from the fourth Table move.

The fifth table move is the generation of a fully loaded car from Table 3.

Completed moves from the fifth Table move.

The sixth Table move is the completion of the loading of the car in Table 7, which was delivered earlier in the Job. The Tables are actually randomly ordered, with some guidelines that prevent a Table from being filled in one turn and fully loaded immediately. But the same Table spot can be served more than once during the job.

Completed moves from the sixth Table move.

At this point Coors 993 would then take the train from the Table Spur and haul the train back to East Yard.

Table Job ready to return to East Yard with five loaded cars.

Arriving back at East Yard, the cars would be delivered to a departure track. East Yard would be switched to put these cars in an appropriate order for interchange, and based on the next job called, an appropriate train would be assembled in East Yard.

I'll pick up this operation in the next post on the subject. So far, we have transferred 6 empties into the layout, and pulled 5 cars out ready for interchange. Ideally, we want the number of cars in and out of the layout to be the same, otherwise the branch will eventually be empty or it will be completely full of cars. Neither of which is desirable. Can we determine if the incoming flow is balanced with the outgoing flow.

Cameron Turner

No comments:

Post a Comment