AnyLogic Rail Library allows you to efficiently model, simulate and visualize operation of rail yards and rail transportation of any complexity and scale. Classification yards, rail yards of large plants, railway stations, rail car repair facilities, subways, airport shuttle trains, rail in container terminals, trams, or even rail transportation in a coal mine can be easily yet accurately modeled with this library.

The Rail library integrated well with AnyLogic Process Modeling Library and Pedestrian Library, which means you can combine rail models with models of trucks, cranes, ships, passenger flows, manufacturing or business processes, and so on.

Sample model: Railway Station

A Railway station model – Rail Library works together with Pedestrian Library

While the library supports detailed and accurate modeling (dimensions of individual cars, exact topology of tracks and switches, accelerations and decelerations of trains are supported), the simulation it produces have very high performance, which is important when you use the optimizer to find the best management policies.

The two main inputs to a rail model are the rail yard topology and the operational logic of the rail yard.

The rail yard topology is specified by specific space markup shapes designed for rail models: railway tracks, switches and elements defining offsets on the track (Position on track). Those shapes can either be drawn manually using AnyLogic graphical editor or created programmatically by e.g. reading the layout from a database or a file.

Rail Library supports a very easy to use higher-level flowchart interface to define the rail yard operation. There are five blocks for defining the rail process logic in the library:

Using those objects you can perform any operations with trains and rail cars without coding. Moreover, the rail yard process flowcharts can include the objects from the Process Modeling Library, such as Delay, SelectOutputHold, Seize, Release, Queue, etc. This means that the operational logic of rail yards can now be fully defined graphically in drag-and-drop way.

Creation of trains is handled by TrainSource object where you set up any kind of rail car and train parameters. TrainMoveTo object controls the movement of trains. It is capable of automatic calculation of routes and setting switch states as the train is going along the route. The functionality of TrainMoveTo includes optional acceleration to the train cruise speed and deceleration before the destination point, which makes the rail yard models more accurate and visually attractive. Coupling and decoupling done by the corresponding two objects is easy yet flexible. Finally, the TrainDispose object can not only remove the trains that have exited the yard via an open-ended track, but also can "delete" a train that is still on a track – the functionality requested by many modelers.

The logic of sharing the rail yard resources such as tracks and switches can now be defined using the Process Modeling Library resources and flow control objects. For example, if a portion of a yard should be locked to let a train to pass through, you may associate a resource with it. Then a train that enters it would need to seize the resource, and the other trains would wait in the queue of the Seize object. For the same purpose you can use Hold object and the pair RestrictedAreaStart/End.

The SelectOutput object can be used in the rail yard process flowcharts to choose between the different process branches, and Delay can naturally model the stops durations or duration of operations such as coupling/decoupling or loading/unloading.

Animation of tracks, switches, and rail cars is automatically provided by the library. The 3D Objects palette contains ready-to-use 3D objects for locomotives, several types of cargo cars, and passenger cars. As long as the Process Modeling Library and the Pedestrian Library also support 3D animation, you can now easily create full dynamic 3D models of subway and railway stations, airport shuttles, or any other systems where the rail transportation is mixed with pedestrians flows.

Sample model: Classification Yard

Sample model: Train Unloading