Applying AnyLogic Simulation Software to Flat Yard Analysis INFORMS Conference 2012 Roger Baugher TrAnalytics, LLC. AnyLogic Simulation Software Principal Features • Handles all three principal simulation frameworks – Discrete Event – Agent-Based – System Dynamics • Graphical Interface for model design – Drag-and-drop logic – Self-documenting – Logic flow can be viewed • Integrated with Java – Generates Java code – User functions can be written in Java TrAnalytics, LLC. INFORMS Conference 2012 Page 2 AnyLogic Simulation Software Principal Features (continued) • Rich animation, including 3-D • Specialized libraries fully integrated with simulation framework – Road and Traffic – Pedestrian – Rail • • • Understands trains, tracks, cars, switches, routes, coupling, uncoupling, acceleration, deceleration Access to rich set of methods and properties Can place rail library objects anywhere in simulation, while exploiting non-rail capabilities – Using the Rail Library, one can model flat yards, hump yards and other rail terminals (e.g., loading/unloading sites) – Using the libraries together, one can model an intermodal terminal and complex rail passenger / subway operations TrAnalytics, LLC. INFORMS Conference 2012 Page 3 AnyLogic Simulation Software Principal Features (continued) • Supports various forms of logic representation – State Transitions – Program Flow Charts • Modular design enables reuse of components • Export to applets for internet presentations • Cost-effective – Full featured Professional version to create and run models – Advanced version without libraries to edit and run models • Excellent support – Assistance with technical issues – How do I install this? – Assistance with modeling issues – How do I model this? – Commitment to enhance and support Rail Library TrAnalytics, LLC. INFORMS Conference 2012 Page 4 AnyLogic Simulation Software Demo • Yard engine shoves a cut of 12 cars from the receiving yard on the right (not shown) into Track 7130. • Switch engine arrives from the left, pulls the cut of cars clear of the ladder, kicks cars for similar destinations into their appropriate tracks, then departs to the left. • Yard engine returns once there are 6 or more cars on any track, pulling each such track, doubling to multiple tracks as needed. TrAnalytics, LLC. INFORMS Conference 2012 Page 5 AnyLogic Simulation Software Key Control Elements Creates a new train with specified characteristics Routes train through track network via shortest path or specified route Joins two trains, passing characteristics to train that emerges Generates two trains by uncoupling the train that enters TrAnalytics, LLC. INFORMS Conference 2012 Page 6 AnyLogic Simulation Software Sample Control and Status Functions Track • • • • • • • • • • • • • boolean isEmpty() int getNCars() RailCar getFirstCar() RailCar getLastCar() RailCar getCar( int index ) LinkedList< RailCar > getCars() double getFreeSpace( boolean fromstart ) Switch getSwitch( boolean atend ) double getLength() void highlight() ShapePolyLine getPolyline() double getTopZ() double intersectionToOffset (ShapeLine line) Switch • • • • • • • • • Track getSelectedTrack() void setSelectedTrack( Track track ) void toggle() Track nextTrack( Track from ) boolean isTrailingPoint( Track from ) boolean trackStarts( Track track ) Track getTrack( int index ) void highlight() ShapeOval getOval() TrAnalytics, LLC. Train • • • • • • • • • • • • • • • • • • • • • • • • • • • int size() double getLength() boolean isEmpty() RailCar getFirst() RailCar getLast() RailCar get( int i ) void setCruiseSpeed( double speed ) double getCruiseSpeed() void setAcceleration( double acceleration ) double getAcceleration() void setDeceleration( double deceleration ) double getDeceleration() Route getRoute() boolean isMoving() RailCar getHead() RailCar getTail() void setVelocity( double v ) double getVelocity() void accelerateTo( double speed ) boolean getDirection() ShapePolyLine getTrack( boolean front ) boolean getOrientation( boolean front ) boolean isForwardOnTrack( boolean front ) ShapePolyLine getTargetTrack() double getTargetOffset() double getDistanceToTarget() double getDistanceDriven() void resetDistanceDriven() INFORMS Conference 2012 Page 7 AnyLogic Simulation Software Logic Diagram TrAnalytics, LLC. INFORMS Conference 2012 Page 8 AnyLogic Simulation Software Small Portion of Logic Diagram At upper left, the North End Job (engine on the right in the simulation) is created, then held until no conflict exists. It then shoves to Track 7130, uncouples from the rest of the cut, and exits. At bottom left, the South End Job (switch engine) is created, then held until no conflict exists. It moves to Track 7130 and couples with the cars left by the North End Job. The cut is then pulled clear of the ladder, and the engine kicks cuts of cars to their appropriate track. Cars with the same destination move together. TrAnalytics, LLC. INFORMS Conference 2012 Page 9 AnyLogic Simulation Software Observations • Simulation of the basic switching process is fairly straightforward for a simple flat yard. • When more than one switch engine works the same area, resolving conflicts becomes more challenging. • If block to track assignment changes through the day or reswitch / sluff tracks are required, the logic becomes more complex. • The most challenging component of the yard to simulate is the receiving and departure yard, since the process of setting out and picking up, while maintaining block integrity and coordinating with main line operations, requires many rules and extensive conflict resolution. • Representing locomotives and other resources as “Agents” may create exciting new simulation capabilities. TrAnalytics, LLC. INFORMS Conference 2012 Page10 AnyLogic Simulation Software Conclusions • AnyLogic is a powerful, cost-effective simulation tool whose specialized libraries and rich graphics enable a user to develop realistic railroad yard simulations. • Built-in capabilities, like shortest path computation, simplify project definition. • Graphical design interface gives user, not programmer, final control over simulation design and execution. • The Rail Library, when used in conjunction with the Road and Traffic Library and Pedestrian Library, enables simulation of a wide variety of rail terminals, including intermodal and passenger facilities. TrAnalytics, LLC. INFORMS Conference 2012 Page11