SYSTEMS AND METHODS FOR AUTOMATIC TUNING OF CLASSIFICATION YARD PARAMETERS

20250346267 ยท 2025-11-13

Assignee

Inventors

Cpc classification

International classification

Abstract

Methods and systems for automatically tuning control parameters for operations of a classification yard. In embodiments, production predictions for car events at a segment is made using current tuning coefficients. Analysis on real-world measurements associated with the car events is used to obtain a set of candidate tuning coefficients. Backoffice predictions for the car events are made using the candidate tuning coefficients. The production predictions and the backoffice predictions are compared against the real-world measurements. If the backoffice predictions are found to better approximate the real-world measurements at the segment or device, the candidate tuning coefficients are accepted and the current tuning coefficients for the segment or device are replaced by the candidate tuning coefficients. In this manner, the present disclosure provides a system with functionality that allows the system to automatically adjust the tuning coefficients to real-world conditions.

Claims

1. A method of automatically tuning control parameters for operations of a classification yard, comprising: generating a set of production predictions associated with one or more car events at a first point of a route within the classification yard using a production set of control parameters associated with the first point of the route, wherein the production set of control parameters includes one or more parameters associated with the rollability of one or more railcar cuts through the first point of the route; obtaining actual measurements associated with the one or more car events at the first point of the route; estimating a candidate set of control parameters associated with the first point of the route based on the actual measurements associated with the one or more car events at the first point of the route; generating a set of backoffice predictions associated with the one or more car events at the first point of the route using the candidate set of control parameters associated with the first point of the route; comparing the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route to determine which of the production set of control parameters or the candidate set of control parameters for the first point of the route yields more accurate predictions for car events at the first point of the route; and determining to replace the production set of control parameters for the first point of the route with the candidate set of control parameters in response to a determination that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters.

2. The method of claim 1, wherein the first point of the route includes one or more of a route segment and a device of the classification yard.

3. The method of claim 2, wherein the device of the classification yard includes one or more of: a switch; a retarder; and a wheel detector.

4. The method of claim 1, wherein the one or more car events include one or more of: a railroad cut traveling through the first point of the route at a first speed; the railroad cut arriving at the first point of the route at a first time; the railroad cut entering at an entry point of the first point of the route at an entry speed; and the railroad cut exiting at an exit point from the first point of the route at an exit speed.

5. The method of claim 1, wherein the production set of control parameters for the first point of the route includes one or more of: rolling resistance coefficients; temperature coefficients; regression coefficients; switch coefficients; retarder coefficients; detector coefficients; and angle coefficients.

6. The method of claim 1, wherein estimating the candidate set of control parameters associated with the first point of the route based on the actual measurements associated with the one or more car events at the first point of the route includes applying a regression algorithm to the actual measurements associated with the one or more car events at the first point of the route to obtain the candidate set of control parameters associated with the first point of the route.

7. The method of claim 1, wherein one or more of the set of production predictions and the set of backoffice predictions include predictions of one or more of: energy of a railroad cut at the first point of the route; speed of the railroad cut at the first point of the route; and arrival time of the railroad cut at the first point of the route.

8. The method of claim 1, wherein comparing the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route includes applying a statistical comparison between the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route.

9. The method of claim 1, wherein comparing the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route includes: calculating a production absolute value average difference between the set of production predictions associated with the one or more car events at the first point of the route and the actual measurements associated with the one or more car events at the first point of the route; calculating a backoffice absolute value average difference between the set of backoffice predictions associated with the one or more car events at the first point of the route and the actual measurements associated with the one or more car events at the first point of the route; comparing the production absolute value average difference and the backoffice absolute value average difference to determine which one of the production absolute value average difference and the backoffice absolute value average difference is smaller; determining that the production set of control parameters yields more accurate predictions for car events at the first point of the route than the candidate set of control parameters in response to a determination that the production absolute value average difference is smaller than the backoffice absolute value average difference for the first point of the route; and determining that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters in response to a determination that the production absolute value average difference is not smaller than the backoffice absolute value average difference for the first point of the route.

10. The method of claim 1, wherein the one or more car events at the first point of the route are classified into a bucket classification, the bucket classification including one or more of: a wet classification to classify car events occurring during wet weather conditions; a dry classification to classify car events occurring during dry weather conditions; a cold classification to classify car events occurring during cold weather conditions; a warm classification to classify car events occurring during warm weather conditions; a hot classification to classify car events occurring during hot weather conditions; and a resilience bearing type classification to classify car events associated with a railroad cut including one or more train cars having a resilience type bearing.

11. A system for automatically tuning control parameters for operations of a classification yard, comprising: at least one processor; and a memory operably coupled to the at least one processor and storing processor-readable code that, when executed by the at least one processor, is configured to perform operations including: generating a set of production predictions associated with one or more car events at a first point of a route within the classification yard using a production set of control parameters associated with the first point of the route, wherein the production set of control parameters includes one or more parameters associated with the rollability of one or more railcar cuts through the first point of the route; obtaining actual measurements associated with the one or more car events at the first point of the route; estimating a candidate set of control parameters associated with the first point of the route based on the actual measurements associated with the one or more car events at the first point of the route; generating a set of backoffice predictions associated with the one or more car events at the first point of the route using the candidate set of control parameters associated with the first point of the route; comparing the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route to determine which of the production set of control parameters or the candidate set of control parameters for the first point of the route yields more accurate predictions for car events at the first point of the route; and determining to replace the production set of control parameters for the first point of the route with the candidate set of control parameters in response to a determination that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters.

12. The system of claim 11, wherein the first point of the route includes one or more of a route segment and a device of the classification yard.

13. The system of claim 11, wherein the one or more car events include one or more of: a railroad cut traveling through the first point of the route at a first speed; the railroad cut arriving at the first point of the route at a first time; the railroad cut entering at an entry point of the first point of the route at an entry speed; and the railroad cut exiting at an exit point from the first point of the route at an exit speed.

14. The system of claim 11, wherein the production set of control parameters for the first point of the route includes one or more of: rolling resistance coefficients; temperature coefficients; regression coefficients; switch coefficients; retarder coefficients; detector coefficients; and angle coefficients.

15. The system of claim 11, wherein estimating the candidate set of control parameters associated with the first point of the route based on the actual measurements associated with the one or more car events at the first point of the route includes applying a regression algorithm to the actual measurements associated with the one or more car events at the first point of the route to obtain the candidate set of control parameters associated with the first point of the route.

16. The system of claim 11, wherein one or more of the set of production predictions and the set of backoffice predictions include predictions of one or more of: energy of a railroad cut at the first point of the route; speed of the railroad cut at the first point of the route; and arrival time of the railroad cut at the first point of the route.

17. The system of claim 11, wherein comparing the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route includes: calculating a production absolute value average difference between the set of production predictions associated with the one or more car events at the first point of the route and the actual measurements associated with the one or more car events at the first point of the route; calculating a backoffice absolute value average difference between the set of backoffice predictions associated with the one or more car events at the first point of the route and the actual measurements associated with the one or more car events at the first point of the route; comparing the production absolute value average difference and the backoffice absolute value average difference to determine which one of the production absolute value average difference and the backoffice absolute value average difference is smaller; determining that the production set of control parameters yields more accurate predictions for car events at the first point of the route than the candidate set of control parameters in response to a determination that the production absolute value average difference is smaller than the backoffice absolute value average difference for the first point of the route; and determining that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters in response to a determination that the production absolute value average difference is not smaller than the backoffice absolute value average difference for the first point of the route.

18. The system of claim 11, wherein the one or more car events at the first point of the route are classified into a bucket classification, the bucket classification including one or more of: a wet classification to classify car events occurring during wet weather conditions; a dry classification to classify car events occurring during dry weather conditions; a cold classification to classify car events occurring during cold weather conditions; a warm classification to classify car events occurring during warm weather conditions; a hot classification to classify car events occurring during hot weather conditions; and a resilience bearing type classification to classify car events associated with a railroad cut including one or more train cars having a resilience type bearing.

19. A computer-based tool for automatically tuning control parameters for operations of a classification yard, the computer-based tool including non-transitory computer readable media having stored thereon computer code which, when executed by a processor, causes a computing device to perform operations comprising: generating a set of production predictions associated with one or more car events at a first point of a route within the classification yard using a production set of control parameters associated with the first point of the route, wherein the production set of control parameters includes one or more parameters associated with the rollability of one or more railcar cuts through the first point of the route; obtaining actual measurements associated with the one or more car events at the first point of the route; estimating a candidate set of control parameters associated with the first point of the route based on the actual measurements associated with the one or more car events at the first point of the route; generating a set of backoffice predictions associated with the one or more car events at the first point of the route using the candidate set of control parameters associated with the first point of the route; comparing the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route to determine which of the production set of control parameters or the candidate set of control parameters for the first point of the route yields more accurate predictions for car events at the first point of the route; and determining to replace the production set of control parameters for the first point of the route with the candidate set of control parameters in response to a determination that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters.

20. The computer-based tool of claim 19, wherein comparing the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route includes: calculating a production absolute value average difference between the set of production predictions associated with the one or more car events at the first point of the route and the actual measurements associated with the one or more car events at the first point of the route; calculating a backoffice absolute value average difference between the set of backoffice predictions associated with the one or more car events at the first point of the route and the actual measurements associated with the one or more car events at the first point of the route; comparing the production absolute value average difference and the backoffice absolute value average difference to determine which one of the production absolute value average difference and the backoffice absolute value average difference is smaller; determining that the production set of control parameters yields more accurate predictions for car events at the first point of the route than the candidate set of control parameters in response to a determination that the production absolute value average difference is smaller than the backoffice absolute value average difference for the first point of the route; and determining that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters in response to a determination that the production absolute value average difference is not smaller than the backoffice absolute value average difference for the first point of the route.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0024] For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:

[0025] FIG. 1 is a block diagram of an exemplary system configured with capabilities and functionality for automatic tuning of parameters for controlling operations of a classification yard in accordance with embodiments of the present disclosure.

[0026] FIG. 2 is a diagram illustrating exemplary operations of a production prediction manager to predict arrival times and/or speeds of one or more cuts at various points along a route that the one or more cuts may travel along the marshalling tracks of a classification yard to reach their assigned destination train in accordance with embodiments of the present disclosure.

[0027] FIG. 3 shows a diagram illustrating an example of a set of event data associated with a segment for obtaining rolling resistance tuning coefficients for the segment in accordance with embodiments of the present disclosure.

[0028] FIG. 4 illustrates an example of a user interface presented to an operator to validate results of the automatic tuning manager in accordance with aspects of the present disclosure.

[0029] FIG. 5 shows a high-level flow diagram of operation of a system for providing automatic tuning of parameters for controlling operations of a classification yard in accordance with embodiments of the present disclosure.

[0030] It should be understood that the drawings are not necessarily to scale and that the disclosed embodiments are sometimes illustrated diagrammatically and in partial views. In certain instances, details which are not necessary for an understanding of the disclosed methods and apparatuses or which render other details difficult to perceive may have been omitted. It should be understood, of course, that this disclosure is not limited to the particular embodiments illustrated herein.

DETAILED DESCRIPTION

[0031] The disclosure presented in the following written description and the various features and advantageous details thereof, are explained more fully with reference to the non-limiting examples included in the accompanying drawings and as detailed in the description. Descriptions of well-known components have been omitted to not unnecessarily obscure the principal features described herein. The examples used in the following description are intended to facilitate an understanding of the ways in which the disclosure can be implemented and practiced. A person of ordinary skill in the art would read this disclosure to mean that any suitable combination of the functionality or exemplary embodiments below could be combined to achieve the subject matter claimed. The disclosure includes either a representative number of species falling within the scope of the genus or structural features common to the members of the genus so that one of ordinary skill in the art can recognize the members of the genus. Accordingly, these examples should not be construed as limiting the scope of the claims.

[0032] A person of ordinary skill in the art would understand that any system claims presented herein encompass all of the elements and limitations disclosed therein, and as such, require that each system claim be viewed as a whole. Any reasonably foreseeable items functionally related to the claims are also relevant. The Examiner, after having obtained a thorough understanding of the disclosure and claims of the present application has searched the prior art as disclosed in patents and other published documents, i.e., nonpatent literature. Therefore, the issuance of this patent is evidence that: the elements and limitations presented in the claims are enabled by the specification and drawings, the issued claims are directed toward patent-eligible subject matter, and the prior art fails to disclose or teach the claims as a whole, such that the issued claims of this patent are patentable under the applicable laws and rules of this country.

[0033] Various embodiments of the present disclosure are directed to systems and techniques that provide functionality for automatic tuning of parameters for controlling operations of a classification yard. In particular embodiments, the parameters may include parameters that may affect or specify how well a cut may roll through a segment of a route through marshalling tracks of a classification yard, which may be an indication of the energy or speed that the cut may gain or lose while traveling through the segment, and may include tuning coefficients for particular segments or devices, such as rolling resistance coefficients, temperature coefficients, friction coefficients, regression coefficients, switch coefficients, retarder coefficients, detector coefficients, angle coefficients, etc. In embodiments, automatic tuning of the control parameters may include generation of a set of production predictions associated with one or more car events at a first segment or device of a route. The set of production predictions may include speed and/or arrival time predictions and may be based on a production set of control parameters associated with the first point of the route. In embodiments, actual measurements associated with the one or more car events at the first point of the route may be measured (e.g., in the real-world as the car events occur). In embodiments, a candidate set of control parameters associated with the first point of the route may be generated based on the actual measurements of the one or more car events at the first point of the route. Using the candidate set of control parameters, a set of backoffice predictions associated with the one or more car events at the first point of the route may be generated. The set of production predictions associated with the one or more car events at the first point of the route may be compared against the set of backoffice predictions associated with the one or more car events at the first point of the route to determine whether the production set of control parameters or the candidate set of control parameters for the first point of the route yields more accurate predictions for car events at the first point of the route. A determination to replace the production set of control parameters for the first point of the route with the candidate set of control parameters may be made in response to a determination that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters.

[0034] In embodiments, the automatic tuning functionality described herein may represent an iterative process in which car event data may be used to automatically tune control parameters of a classification yard, and the control parameters may be used to control operations (e.g., plan, control, track, report, predict, etc.) of the classification yard that may generate new car events. In that manner, the tuned control parameters may be used to control and/or predict the new car events. The new car events may then be used in a next iteration of automatic tuning to automatically tune the control parameters based on the new car events (and in some embodiments also the previous car events). In this manner, the control parameters may be iteratively tuned as new car events are generated, which may enable a system to adapt to changing conditions.

[0035] FIG. 1 is a block diagram of an exemplary system 100 configured with capabilities and functionality for automatic tuning of parameters for controlling operations of a classification yard in accordance with embodiments of the present disclosure. As shown in FIG. 1, system 100 may include server 110, classification yard 140, user terminal 130, and network 145. These components, and their individual components, may cooperatively operate to provide functionality in accordance with the discussion herein. For example, in operation according to embodiments, classification yard 140 may operate various components (e.g., switches, detectors, retarders, etc.) to route cuts through marshalling tracks to their designated trains while ensuring that the coupling speed at the coupling point is as close to a target coupling speed as possible. In embodiments, classification yard may operate to control the speed of the cuts through a route along the marshalling tracks based on various parameters that may affect or describe the rollability of the cut through various segments of the route. For example, production predictions related to the speed of a cut through one or more segments may be obtained based on rollability parameters associated with the one or more segments, which may include environmental, track, and/or cut characteristics, as well as determinations of energy to be removed by retarders along the route. Functionality of server 110 may provide automatic tuning of one or more of the rollability parameters for the one or more segments. The automatic tuning of the rollability parameters may enable system 100 to improve the production predictions related to the speed of the cut through the one or more segments. Functionality of server 110 may provide automatic tuning of one or more of the rollability parameters for the one or more segment by compiling data related to car events associated with the one or more segments, applying analysis to the compiled data to calculate one or more new candidate values for one or more of the rollability parameters for the one or more segments, generating a backoffice prediction based on the one or more new candidate values related to the related to the speed of the cut through the one or more segments, comparing the original production prediction and the backoffice prediction to real-world measurements related to the speed of the cut through the one or more segments to determine which prediction is more accurate with respect to the real-world measurements, and automatically tuning the one or more rollability parameters associated with the one or more segments based on the comparison.

[0036] It is noted that the present discussion focuses on a particular application of parameter tuning that involves automatically tuning one or more rollability parameters associated with one or more segments of a route through marshalling tracks of a classification yard (e.g., a train yard, a hump yard, etc.). However, it should be appreciated that the techniques disclosed herein may also be applicable to other applications of parameter tuning. For example, the techniques disclosed herein may also be applicable for automatically tuning parameters related to other operations such as air or water operations, related to other ground vehicles, etc. As such, the discussion herein with respect to automatically tuning one or more rollability parameters associated with one or more segments of a route through marshalling tracks of a classification yard should not be construed as limiting in any way.

[0037] It is noted that the functional blocks, and components thereof, of system 100 of embodiments of the present invention may be implemented using processors, electronics devices, hardware devices, electronics components, logical circuits, memories, software codes, firmware codes, etc., or any combination thereof. For example, one or more functional blocks, or some portion thereof, may be implemented as discrete gate or transistor logic, discrete hardware components, or combinations thereof configured to provide logic for performing the functions described herein. Additionally, or alternatively, when implemented in software, one or more of the functional blocks, or some portion thereof, may comprise code segments operable upon a processor to provide logic for performing the functions described herein.

[0038] It is also noted that various components of system 100 are illustrated as single and separate components. However, it will be appreciated that each of the various illustrated components may be implemented as a single component (e.g., a single application, server module, etc.), may be functional components of a single component, or the functionality of these various components may be distributed over multiple devices/components. In such embodiments, the functionality of each respective component may be aggregated from the functionality of multiple modules residing in a single, or in multiple devices.

[0039] It is further noted that functionalities described with reference to each of the different functional blocks of system 100 described herein is provided for purposes of illustration, rather than by way of limitation and that functionalities described as being provided by different functional blocks may be combined into a single component or may be provided via computing resources disposed in a cloud-based environment accessible over a network, such as one of network 145.

[0040] As noted above, classification yard 140 may represent a train yard, such as a hump yard, in which train cars are routed or marshalled to a destination track to be coupled to a destination train. In embodiments, classification yard 140 may include functionality to plan, track, control, and report the movement of the train cars through the marshalling tracks, including the hump approach section, the hump crest, the hump release area, and multiple marshalling tracks.

[0041] In a typical operation of classification yard 140, such as a hump yard, a stock train that includes train cars to be marshalled to their assigned train may be pushed by a hump push engine at a set speed along the approach section of the hump to the crest of the hump. As the train cars roll past the hump crest, gravity may begin pulling the train cars towards the bottom of the hump. In embodiments, the train cars are cut from the stock train and the cut is allowed to roll down the hump and is marshalled to the destination train.

[0042] As noted above, ensuring that the cut reaches the assigned destination train at the appropriate coupling speed is very important. As such, in embodiments, a cut may be tracked and controlled as the cut moves along the marshalling tracks in classification yard 140. In particular, the route and the speed of the cut from the hump to its destination track or train may be controlled using various components of classification yard 140. For example, classification yard 140 may include various components enabling classification yard 140 to track and/or control the movement of a cut through the marshalling tracks. In embodiments, the various components enabling classification yard 140 to track and/or control the movement and/or speed of a cut through the marshalling tracks may include switches 142, detectors 144, and retarders 146, among other components. In embodiments, the cooperative operation of the various components of classification yard 140 may enable classification yard 140 to ensure that various cuts traverse the marshalling tracks and arrive at the destination coupling point at the appropriate coupling speed

[0043] In embodiments, switches 142 may include one or more switches configured to route a train car to a designated track section. For example, a train car may be traveling along a first track and may come upon a switch. The switch may be configured to route the train car from the first track section to a second track section. In some cases, the second track section may be one of a plurality of selectable track sections. For example, the switch may be coupled on one side to the first track, and on the second side to the second and a third track. In this example, the switch may be configured to selectively route the train car from the first track to either the second or the third track. Whether the switch routes the train car from the first track to the second or the third track may depend on the routing status of the switch. For example, the switch may be configured to route to the left, which may route to the second track, or to route to the right, which may route to the third track. In this case, when a cut is destined to a destination track via a route that may travel through the second track, classification yard 140 may control the route of the cut by activating the switch, if necessary, to route to the second track. This may include leaving the switch in its current routing status (e.g., when the switch's routing status is to route to the second track) or may include activating the switch to another routing status (e.g., when the switch's current routing status does not route to the second track). In this manner, classification yard 140 may control the route of the cut using switches 142 to ensure the cut moves through the appropriate route.

[0044] In embodiments, switches 142 may be laid out at different points along the tracks of classification yard 140. In particular, each of switches 142 may be laid out at points at which a single track may branch out into multiple tracks.

[0045] In embodiments, retarders 146 may include one or more retarders configured with functionality to remove energy from a cut traveling through retarders 146. For example, each of retarders 146 may be laid out at different points along the tracks of classification yard 140. In some embodiments, each of the marshalling tracks of classification yard 140 may include one or more retarders of retarders 146. In some embodiments, a main master retarder may be positioned along the main marshalling track (e.g., along the release section) of the hump track. In some embodiments, each segment of a route along the marshalling tracks of classification yard 140 may be configured with at least one retarder. In some embodiments, each segment of a route along the marshalling tracks of classification yard 140 may be configured with a master retarder and one or more slave retarders. In these embodiments, the retarders along a segment of a route may cooperatively operate to remove energy from a cut traveling through the segment.

[0046] In embodiments, retarders 146 may be configured to remove energy from a cut traveling through retarders 146 by causing the cut to slow down as it travels through or over retarders 146. In some embodiments, retarders 146 may cause a cut to slow down by applying a pressure against one or more wheels of one or more train cars included in the cut, which may cause the cut to slow down. For example, retarders 146 may press a braking element (e.g., a brake pad, etc.) against one or more wheels of one or more train cars included in the cut causing the cut to slow down. In embodiments, the amount of energy, or speed, removed from a cut by a retarder (e.g., one or more retarders of retarders 146) may depend on the amount of pressure applied by the retarder against one or more wheels of one or more train cars included in the cut. For example, a higher pressure may cause more energy, or speed, to be removed from a cut than a lower pressure. In this manner, as the energy of a cut is related to the speed of the cut, retarders 146 may operate to remove energy from a cut. In this manner, classification yard 140 may control the speed of a cut as it travels through the marshalling tracks using retarders 146 to remove energy from the cut as necessary.

[0047] In embodiments, each of retarders 146 may be configured to remove a maximum amount of energy from a cut during operations. The maximum amount of energy removable from a cut by a particular retarder may depend on the characteristics of the cut (e.g., weight, composition, type of train cars in cut, amount of train cars in cut, etc.), characteristics of the track (e.g., length of track, type of track, etc.), characteristics of the particular retarder (e.g., size, composition, design, power, brake pad materials, pressure capability, etc.), environmental conditions, etc.

[0048] In embodiments, detectors 144 may include one or more detectors configured to detect a speed of a cut. In embodiments, detectors 144 may be laid out at different points along the tracks of classification yard 140. In this manner, detectors 144 may be configured to detect the speed of a cut at various points along the route of the cut through the marshalling tracks of classification yard 140. For example, one or more detectors of detectors 144 may be positioned at points along the tracks of classification yard 140 in a layout configured to enable the one or more detectors to measure the speed of a cut traveling through a retarder (e.g., one or more retarders of retarders 146). In this manner, detectors 144 may be configured to measure an entry speed and/or an exit speed of a cut through a retarder, in which the entry speed may indicate the speed at which the cut entered the retarder and the exit speed may indicate the speed at which the cut exited the retarder.

[0049] In another example, one or more detectors of detectors 144 may be positioned at points along the tracks of classification yard 140 in a layout configured to enable the one or more detectors to measure the speed of a cut traveling through a segment of a route along which the cut may be traveling through the marshalling tracks of classification yard 140 to reach a destination train. For example, the one or more detectors may be configured to measure an entry speed and/or an exit speed of the cut through one or more segments, in which the entry speed may indicate the speed at which the cut entered the segment and the exit speed may indicate the speed at which the cut exited the segment.

[0050] In yet another example, detectors 144 may be configured to measure a speed at which a cut may be traveling while passing through one or more switches (e.g., one or more switches from switches 142). For example, as a cut passes through a switch, one or more detectors of detectors 144 may be configured to measure the speed of the cut as it passes through the switch.

[0051] In embodiments, detectors 144 may be configured to detect the presence of a cut at various points along the route of the cut through the marshalling tracks of classification yard 140. For example, as a cut passes through a detector a particular time, the detector may detect the presence of the cut at the particular time, and may generate a detection, including an identification of the cut, a timestamp indicating date/time of the detection, the location of the detection (e.g., an identification of the detector), etc.

[0052] In some embodiments, detectors 144 may include one or more detectors configured to detect one or more wheels, or wheel axles (e.g., one or more wheels, or wheel axles, of a train car, or of a cut, passing through the one or more detectors). In embodiments, detectors 144 may detect more than one wheel (or wheel axle) of the train car, or cut, passing through detectors 144. For example, a train car passing through a detector may include multiple wheel axles. In this case, the detector may be configured to detect one or more of the multiple wheel axles, and in some embodiments may identify the wheel axle detected. For example, for a train car including four wheels, the detector may identify that a detection includes detection of wheel three of four, when the detector detects the third wheel in the train car. In another example, for a cut traveling through the detector that includes two train cars each including four wheels, the detector may identify that a detection includes detection of wheel five of eight, when the detector detects the fifth wheel in the cut. In some embodiments, the wheel detector may detect more than one wheel.

[0053] In some embodiments, detectors 144 may detect a speed of a cut by detecting a cut at multiple detectors and measuring the time between the detections. For example, a cut may travel through a route along classification yard 140 and may pass a first detector of detectors 144 at a first time. The first detector may detect the cut (e.g., a wheel of the cut) at the first time. A first detection of the cut may be generated with a timestamp equal to the first time. The cut may continue travelling through the route and may pass a second detector of detectors 144 at a second time. The second detector may detect the cut (e.g., a wheel of the cut) at the second time. A second detection of the cut may be generated with a timestamp equal to the second time. In embodiments, the speed of the cut may be calculated by comparing the first and the second time, and determining a speed based on the distance between the first and the second detector, which may be a known characteristic of detectors 144. For example, the distance between the first and second detector traveled by cut over the difference between the first and second detection times may provide the speed of the cut between the first and second detectors.

[0054] In some embodiments, detectors 144 may detect a speed of a cut by detecting multiple wheels of the cut, measuring the time between the detections, and calculating a speed based, at least in part, on the characteristics of the cut. For example, a cut may travel through a detector of detectors 144. The detector may detect a first wheel of the cut at a first time. A first detection of a first wheel of the cut may be generated with a timestamp equal to the first time. The detector may detect a second wheel of the cut at a second time. A second detection of the second wheel of the cut may be generated with a timestamp equal to the second time. In embodiments, the speed of the cut may be calculated by comparing the first and the second time, and determining a speed based on the distance between the first and the second wheel, which may be a known characteristic of the cut. For example, the distance between the first and second wheel traveled by cut over the difference between the first and second detection times may provide the speed of the cut over the detector.

[0055] In embodiments, classification yard 140 may include occupancy devices (not shown). Occupancy devices may include track circuits, light detectors, presence detectors, etc., and may be configured to detect occupancy of a track and/or track segment, such as to detect a presence of a vehicle within the track and/or track segment. In some embodiments, occupancy devices may be configured to detect when a track or track segment has been filled to a safe capacity, which may enable a system to prevent overfilling of the track or track segment. In embodiments, occupancy devices may be used in long sections of track that may not include a wheel detector, a retarder, etc. In embodiments, an occupancy device may be configured with predicted on and off times. If the on and off times are exceeded, a segment protected by the occupancy device may be temporarily protected and if the condition persists, the protection may remain. In embodiments, protecting a track or track segment may include routing away from the protected track or track segment, such as in response to a determination that sufficient time exists to route the vehicle away from the protected track or track segment. However, the railroad vehicle may be routed into the protected track segment (e.g., to prevent a side-swipe) in response to a determination that there is not sufficient time to route the vehicle away from the protected track or track segment.

[0056] User terminal 130 may include a mobile device, a smartphone, a tablet computing device, a personal computing device, a laptop computing device, a desktop computing device, a computer system of a vehicle, a personal digital assistant (PDA), a smart watch, another type of wired and/or wireless computing device, or any part thereof. In embodiments, user terminal 130 may provide a user interface that may be configured to provide an interface (e.g., a graphical user interface (GUI)) structured to facilitate an operator interacting with system 100, e.g., via network 145, to execute and leverage the features provided by server 110. In embodiments, the operator may be enabled, e.g., through the functionality of user terminal 130, to provide configuration parameters that may be used by system 100 to provide functionality for performing automatic tuning of classification yard 140 operations, as well as to interact with results (e.g., selection, confirmation, verification of results, etc.). In embodiments, user terminal 130 may be configured to communicate with other components of system 100. In embodiments, the functionality of user terminal 130 may include presenting results of automatic tuning operations to an operator. In embodiments, the results of automatic tuning operations may be presented to an operator via the GIU of user terminal 130.

[0057] In embodiments, server 110, classification yard 140 (and its various components), and user terminal 130 may be communicatively coupled via network 145. Network 145 may include a wired network, a wireless communication network, a cellular network, a cable transmission system, a Local Area Network (LAN), a Wireless LAN (WLAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), the Internet, the Public Switched Telephone Network (PSTN), etc.

[0058] Server 110 may be configured to facilitate operations for automatic tuning of parameters for controlling operations of a classification yard in accordance with embodiments of the present disclosure. In embodiments, functionality of server 110 to facilitate automatic tuning of parameters for controlling operations of a classification yard may be provided by the cooperative operation of the various components of server 110, as will be described in more detail below.

[0059] Although FIG. 1 shows a single server 110, it will be appreciated that server 110 and its individual functional blocks may be implemented as a single device or may be distributed over multiple devices having their own processing resources, whose aggregate functionality may be configured to perform operations in accordance with the present disclosure. Furthermore, those of skill in the art would recognize that although FIG. 1 illustrates components of server 110 as single and separate blocks, each of the various components of server 110 may be a single component (e.g., a single application, server module, etc.), may be functional components of a same component, or the functionality may be distributed over multiple devices/components. In such embodiments, the functionality of each respective component may be aggregated from the functionality of multiple modules residing in a single, or in multiple devices. In addition, particular functionality described for a particular component of server 110 may actually be part of a different component of server 110, and as such, the description of the particular functionality described for the particular component of server 110 is for illustrative purposes and not limiting in any way.

[0060] As shown in FIG. 1, server 110 includes processor 111, memory 112, database 124, production prediction manager 120, data retriever and compiler 121, backoffice prediction manager 122, and automatic tuning manager 123. Processor 111 may comprise a processor, a microprocessor, a controller, a microcontroller, a plurality of microprocessors, an application-specific integrated circuit (ASIC), an application-specific standard product (ASSP), or any combination thereof, and may be configured to execute instructions to perform operations in accordance with the disclosure herein. In some embodiments, implementations of processor 111 may comprise code segments (e.g., software, firmware, and/or hardware logic) executable in hardware, such as a processor, to perform the tasks and functions described herein. In yet other embodiments, processor 111 may be implemented as a combination of hardware and software. Processor 111 may be communicatively coupled to memory 112.

[0061] Memory 112 may comprise one or more semiconductor memory devices, read only memory (ROM) devices, random access memory (RAM) devices, one or more hard disk drives (HDDs), flash memory devices, solid state drives (SSDs), erasable ROM (EROM), compact disk ROM (CD-ROM), optical disks, other devices configured to store data in a persistent or non-persistent state, network memory, cloud memory, local memory, or a combination of different memory devices. Memory 112 may comprise a processor readable medium configured to store one or more instruction sets (e.g., software, firmware, etc.) which, when executed by a processor (e.g., one or more processors of processor 111), perform tasks and functions as described herein.

[0062] Memory 112 may also be configured to facilitate storage operations. For example, memory 112 may comprise database 124 for storing various information related to operations of system 100. For example, database 124 may store analysis models, threshold data, configuration information, etc., to be used for configuring system 100, etc. In embodiments, database 124 may store characteristics of various and different train cars, such as rolling resistance characteristics, weights, aerodynamic characteristics (e.g., drag coefficient, coupler overhang status, articulation status of the etc. In embodiments, database 124 may store event data related to speed and/or energy measurements of a cut at various segments of the marshalling tracks of classification yard 140. For example, as a cut travels along various segments of a route through the marshalling tracks of classification yard 140 to reach a destination train, speed and/or energy measurements may be taken at each segment (e.g., via one or more components of classification yard 140 such as switches 142, detectors 144, retarders 146, etc.) to generate speed and/or energy measurements associated with the cut at each of the various segments. For example, a cut may travel through a first segment of a route through the marshalling tracks of classification yard 140 to reach a destination train, and this may be considered an event. Speed and/or energy measurements may be taken at the segment, and the speed and/or energy measurements may indicate the speed and/or energy at which the cut traveled through the segment. This speed and/or energy measurements may be stored in database 124 along with an indication (e.g., identification) of the segment and the cut associated with the measurements (e.g., as an event associated with the segment and/or the cut).

[0063] In some embodiments, database 124 may store predictions related to the travelling of a cut through various segments of the marshalling tracks of classification yard 140. For example, in some embodiments, a prediction manager (e.g., production prediction manager 120 and/or backoffice production manager 122) may generate a prediction related to a speed and/or energy at which a cut may travel through a segment. In this case, the prediction related to the cut and segment may be stored in database 124 along with an indication (e.g., identification) of the segment and the cut associated with the prediction (e.g., as a prediction associated with the segment and/or the cut).

[0064] Database 124 is illustrated as integrated into memory 112, but in some embodiments, database 124 may be provided as a separate storage module or may be provided as a cloud-based storage module. Additionally, or alternatively, database 124 may be a single database, or may be a distributed database implemented over a plurality of database modules.

[0065] Production prediction manager 120 may be configured to facilitate operations of classification yard 140 to plan, track, control, and report the movement of train cars through the classification yard to a destination train. In embodiments, production prediction manager 120 may be configured with functionality to predict arrival times and/or speeds of one or more cuts at various points along a route that the one or more cuts may travel along the marshalling tracks to reach their assigned destination train. In embodiments, production prediction manager 120 may predict arrival times and/or speeds of a cut at various points along a route for each of the front and rear of the cut. In embodiments, the various points along the route may include a first point of the route along which the one or more cuts may travel.

[0066] In embodiments, the various points for which production prediction manager 120 may predict arrival times and/or speeds of a cut may include components or devices (e.g., switches, retarders, detectors, etc.) of classification yard 140. For example, production prediction manager 120 may include functionality to predict an arrival time and/or speed at which a cut traveling along a route through the marshalling tracks may arrive at a particular detector. In this manner, production prediction manager 120 may provide system 100 with an expected arrival time and/or speed of a cut at which a cut (e.g., a cut having particular characteristics) may arrive at the particular detector. In another example, production prediction manager 120 may include functionality to predict an arrival time and/or speed at which a cut traveling along a route through the marshalling tracks may arrive at a particular switch. In this manner, production prediction manager 120 may provide system 100 with an expected arrival time and/or speed of a cut at which a cut (e.g., a cut having particular characteristics) may arrive at the particular switch.

[0067] In some embodiments, production prediction manager 120 may include functionality to predict an amount of energy, or speed, that a retarder is expected to remove. For example, a cut may travel, or may be assigned to travel, along a route through the marshalling tracks to reach an assigned destination train that may include one or more retarders. In embodiments, production prediction manager 120 may include functionality to predict the amount of energy, or speed, that the one or more retarders are expected to remove from the cut as the cut travels through the one or more retarders. In some embodiments, predicting the amount of energy, or speed, that the one or more retarders are expected to remove from the cut as the cut travels through the one or more retarders may include predicting an amount of energy, or speed, that the cut is expected to have at the entry point of the one or more retarders and an amount of energy, or speed, that the cut is expected to have at the exit point of the one or more retarders. In these cases, the difference between the entry point energy, or speed, and the exit point energy, or speed, may indicate the amount of energy, or speed, removed by the one or more retarders.

[0068] In embodiments, the various points for which production prediction manager 120 may predict arrival times and/or speeds of a cut may include an entry and/or exit point of a route segment. For example, in embodiments, a route that a cut may travel from the hump release point to its assigned destination track may be divided into a plurality of segments. In some embodiments, the marshalling tracks of classification yard 140 may be made up or composed of multiple ones of the plurality of segments. In this manner, a route from the hump to any destination track may be formed by assembling a set of segments of the marshalling tracks, and each segment may be defined by the entry and exit points of the segment. In some embodiments, the entry point and/or the exit point of a segment may correspond to a device (e.g., a switch, a retarder, a detector, etc.) of classification yard 140. In this manner, devices may be used to divide the marshalling tracks into segments.

[0069] In some embodiments, a segment may include one or more devices within the segment. For example, a segment may include one or more retarders, one or more switches, one or more detectors, within the boundaries of the segment (e.g., in addition to the entry and/or exit point devices of the segment). In these cases, production prediction manager 120 may be configured to predict arrival times and/or speeds of one or more cuts at these various devices within a segment, in addition, or in the alternative, to predicting arrival times and/or speeds of the one or more cuts at the entry point and/or exit point of the segment.

[0070] In embodiments, the functionality of production prediction manager 120 to predict arrival times and/or speeds of one or more cuts at various points along a route that the one or more cuts may travel along the marshalling tracks to reach their assigned destination train may include application of analysis using parameter values and/or coefficient values that have been deployed to a production environment. The production environment may include operations that are real-world operations performed on the field and/or in an operation environments. The production environment may be contrasted to a backoffice environment in which operations may not include on-field operations and may instead include development and/or testing operations, which may be simulated operations in some embodiments. In embodiments, backoffice operations may perform operations using data, parameter values, and/or coefficient values that have not yet been deployed to the production environment and thus, without deployment to the production environment, may not affect on-field operations but instead may affect development operations.

[0071] In embodiments, the functionality of production prediction manager 120 to predict arrival times and/or speeds of one or more cuts at various points (e.g., components and/or segments) along a route that the one or more cuts may travel along the marshalling tracks to reach their assigned destination train may include various operations. FIG. 2 is a diagram illustrating exemplary operations of a production prediction manager to predict arrival times and/or speeds of one or more cuts at various points along a route that the one or more cuts may travel along the marshalling tracks of a classification yard to reach their assigned destination train in accordance with embodiments of the present disclosure. In embodiments, the operations illustrated in FIG. 2 may be performed by a production prediction manager (e.g., production prediction manager 120) configured in accordance with aspects of the present disclosure.

[0072] At block 202, production prediction manager 120 may determine a coupling speed of a cut at the coupling point on the destination train to which the cut may be assigned. In embodiments, production prediction manager 120 may determine an amount of energy needed by the cut at the coupling point (e.g., the rear portion of the last train car in the destination car assigned to the cut) in order to properly couple to the destination car. It is noted that coupling speed and coupling energy (and indeed energy and speed) are used somewhat interchangeably throughout this description as speed and energy are directly related to each other, given known characteristics of a cut. For example, knowing characteristics of a cut (e.g., weight, rollability, etc.), a speed of the cut may be related to energy by known equations and the energy of the cut may be related by known equations. As such, it is to be understood that although the energy of a cut (e.g., coupling energy, release energy, etc.) and the speed of a cut (e.g., coupling speed, release speed, etc.) may be used somewhat interchangeably herein, these terms may refer to different aspects of a cut motion.

[0073] In embodiments, production prediction manager 120 may determine a coupling speed of the cut based, at least in part, on characteristics of the cut and/or of the hump yard track. For example, the coupling speed of a cut may be based on the weight of the cut. In some embodiments, the weight of the cut may include a total weight of all the train cars included in the cut, and/or may include an average weight of the train cars in the cut. In embodiments, characteristics of the cut may include whether the cut includes empty or loaded train cars, the type of train cars in the cut, the type of freight being carried by the cut, whether the cut is a special cut (e.g., a cut having a flag indicating that the cut is to be coupled slowly), etc. In embodiments, characteristics of the track may include whether the destination track is overfilled (e.g., past a clearance point), the type of track, the layout of the destination track, etc. In some embodiments, the coupling speed of a cut may be based on characteristics of the previous cut routed through the marshalling tracks. For example, the coupling speed of a cut may be based on the weight of the previous cut, the type of freight being carried by the previous cut, a status of the previous cut, special handling instructions for the previous cut (e.g., the previous cut having a flag indicating that the previous cut is to be given a large clearance between cuts), etc.

[0074] At block 204, production prediction manager 120 may calculate an energy change (e.g., amount of energy gained or lost) at each segment of the route along which the cut may travel to reach the coupling point. For example, the route through which the cut may travel to reach the coupling point may include a plurality of segments. In embodiments, production prediction manager 120 may calculate an amount of energy gained or lost at each of the plurality of segments. In embodiments, at block 206, production prediction manager 120 may also determine a maximum amount of energy removeable by retarders at each of the plurality of segments of the route of the cut. It is noted that, in embodiments, calculations at block 204 and/or at block 206 may be performed uphill. For example, production prediction manager 120 may calculate an amount of energy gained or lost at each segment of the route and/or may determine a maximum amount of energy removeable by retarders (e.g., maximum amount of energy that may be removed by the retarders based on the retarders current configuration) at each of the plurality of segments of the route starting at the segment immediately next to the point at which the rear of the cut will stop when coupled to the destination train and continuing with subsequent segments along the route in the direction of the hump until the hump crest is reached. In this manner, the calculations of production prediction manager 120 may be considered to be uphill.

[0075] In embodiments, production prediction manager 120 may calculate an amount of energy gained or lost by a cut at each segment of the route based, at least in part, on track characteristics and/or cut characteristics, among other factors. In embodiments, the energy gained or lost by a cut at a segment may include the energy needed by the cut at the entry point of the segment to reach the exit point of the segment at a desired speed. In some cases, the energy needed by the cut to traverse the segment may be a negative value, which may indicate that the cut may have excess energy in the segment that may need to be removed (e.g., by a retarder) in order to ensure that the cut may reach the exit point of the segment at the desired speed. In some cases, the energy needed by the cut to traverse the segment may be a positive value, which may indicate that the cut may lose energy while traversing the segment.

[0076] In embodiments, cut characteristics may include characteristics that affect the rollability of a cut through a segment (e.g., how well the cut is expected to roll through a segment), and may include cut weight (e.g., total and/or average), modified gravity (e.g., acceleration of the cut due to gravity specific to the cut based on differences in train cars included in the cut, or differences in train cars generally), wind dynamics (e.g., the aerodynamic profile of the cut and/or the train cars included in the cut), rollability (e.g., rolling resistance of the cut), etc., of the cut. It is noted that rolling resistance is typically a major contributor to the energy loss due to friction of a cut (e.g., friction between the wheels of the cut and the track over which the cut may be traveling). In embodiments, production prediction manager 120 may calculate an amount of energy gained or lost at each segment of the route by applying multipliers that may be used to modify the rolling resistance measured and which may serve to account for snow conditions (e.g., snow multiplier may be used for tracks that may be covered with snow, and thus cuts may be more likely to not have sufficient energy to reach the coupling point and the desired coupling speed) and/or temperature (e.g., higher temperatures may remove more energy). In embodiments, production prediction manager 120 may obtain the cut characteristics via function calls that may cause the cut characteristics to be provided to production prediction manager 120.

[0077] In embodiments, track characteristics may include characteristics of the tracks within the segment that may affect the energy change (e.g., loss or gain) of a cut as it travels through the segment. For example, characteristics such as a grade of the segment (e.g., a higher grade may cause a lower percentage of total speed to be perceived, whereas a lower grade may cause a higher percentage of total speed to be perceived), distance or length of the segment (e.g., a longer segment may cause a greater loss of energy or a greater gain of energy than a shorter segment), temperature (e.g., lower temperature may remove more energy), wind (e.g., a headwind or stronger wind may cause greater loss of energy than a lighter wind), curves, track conditions, etc., may affect how well a cut may travel through a segment and thus, may affect the amount of energy lost or gained by the cut while traveling through the segment.

[0078] In embodiments, the track characteristics that may be used by production prediction manager 120 to determine the energy change of a cut through a particular segment may include tuning coefficients that may be defined for the particular segment. The tuning coefficients may be used by production prediction manager 120 (e.g., along with others of the track and/or cut characteristics) to calculate an amount of energy gained or lost by the cut at the particular segment of the route. In embodiments, the calculation of the amount of energy gained or lost by the cut at the particular segment of the route may include applying an equation that includes one or more of the tuning coefficients. In embodiments, the tuning coefficients may include coefficients related to rolling resistance, such as a rolling resistance loss coefficient (e.g., hereinafter referred generally as a), a rolling resistance loss first order coefficient, which may be related to energy loss due to rolling resistance for all cuts traveling through the segment, (e.g., hereinafter referred generally as b), a rolling resistance loss second order coefficient, which may be related to energy loss due to rolling resistance for the particular cut as it travels through the segment, (e.g., hereinafter referred generally as c), a rolling resistance loss third order coefficient (e.g., hereinafter referred generally a d), etc. For example, the tuning coefficients may be used in equations to obtain the rolling resistance of a cut, such as an equation of the third order: dx.sup.3+cx.sup.2+bx+a. In some embodiments, the tuning coefficients may include coefficients related to the effects on rolling resistance due to temperature, which may herein be referred generally as W.sub.0, W.sub.1, W.sub.2, and W.sub.3.

[0079] In embodiments, the tuning coefficients may be generated (or calculated) prior to operations, and may be stored in database 124 to be used during operations. For example, rolling resistance tuning coefficients for a particular segment may be generated by collecting data for a plurality of events associated with the segment and analyzing the data to obtain a set of rolling resistance tuning coefficients. For example, different cuts having different characteristics (e.g., rolling resistance, weight, length, etc.) may be run through a segment generating a plurality of events associated with the segment. Each event may represent a cut traveling through the segment. Each event may generate event data that may include the characteristics of the cut and the total energy needed to traverse the segment (e.g., the energy change through the segment). A best fit line may be applied to the set of event data and equation of the best fit line may be used to obtain the rolling resistance tuning coefficients for the segment. In this case, the y-intercept of the line equation may be used as a and the slope of the line may be used as b. FIG. 3 shows a diagram illustrating an example of a set of event data associated with a segment for obtaining rolling resistance tuning coefficients for the segment in accordance with embodiments of the present disclosure.

[0080] As can be seen in FIG. 3, a set of events 320 generated for a segment may be charted in chart 300, where each event of set of events 320 may represent a cut having respective characteristics traveling through the segment. For each event, the total energy 310 used (e.g., lost or gained) by the cut may be charted on the y-axis of the chart against the respective characteristics 312 on the x-axis. A best fit line 322 may be fitted against the data of set of events 320. A line equation 324 may then be obtained for the data associated with the segment. As can be seen, line equation may have a slope (e.g., 1.6732) and a y-intercept (e.g., 56,698). In embodiments, the y-intercept of line equation 322 may be used as tuning coefficient 330 (a) for the segment and the slope of line equation 322 may be used as tuning coefficient 332 (b) for the segment. In this manner, for this particular segment associated with chart 300 (e.g., the segment for which set of events 320 was generated) tuning coefficients 330 and 332 may be used by production prediction manager 120 to calculate an energy change of a cut traveling through the segment.

[0081] In embodiments, the tuning coefficients for a particular segments may be defined based on various factors. In embodiments, the various factors may include environmental conditions (e.g., weather, etc.), train car type, and/or bearing type. For example, a set of tuning coefficients for a particular segment may be specific to particular factors. In this case, for different factors, the set of tuning coefficients for the segment may be different. For example, a first set of tuning coefficients for a particular segment may be associated with a first set of factors (e.g., a first set of environmental conditions, train car type, and/or bearing type) for a segment. However, a second set of tuning coefficients (e.g., different from the first set of coefficients) may be associated with a second set of factors (e.g., a second set of environmental conditions, train car type, and/or bearing type) for the segment. In this manner, the tuning coefficients may be applicable to particular situations and/or conditions. For example, a set of tuning coefficients may be used for dry conditions, whereas a second set of tuning coefficients may be used for wet conditions (e.g., rain or snow, and in some embodiments, the tuning coefficients used for rain conditions may be different from the tuning coefficients used for snow conditions), a third set of tuning coefficients may be used for cold weather conditions, and still a fourth set of tuning coefficients may be used for hot weather conditions. In some embodiments, a set of tuning coefficients may be associated with a combination of conditions, such that a set of tuning coefficients may be used for hot and dry conditions and a different set of tuning coefficients may be used for hot and wet conditions. It should be appreciated that using different sets of tuning coefficients provides a mechanism to further tune the classification yard by allowing production prediction manager 120 to calculate energy losses or gains by a cut in a segment based on weather conditions and other factors providing a more accurate prediction, such as factors that may impact the rollability of the cut through the segment.

[0082] With reference back to FIG. 2, in embodiments, production prediction manager 120 may determine a maximum amount of energy removeable by retarders at each of the plurality of segments of the route based, at least in part, on retarder characteristics and/or cut characteristics, among other factors. In embodiments, energy removal calculations may be calculated using energy per foot per rail per axle (EPFRA) units.

[0083] In embodiments, cut characteristics that production prediction manager 120 may use to calculate the maximum energy that a retarder may be able to remove may include the weight of the cut (e.g., total car weight and/or average car weight), a number of axles in the cut, etc.

[0084] In embodiments, retarder characteristics that production prediction manager 120 may use to calculate the maximum energy that a retarder may be able to remove may include a length of the retarder, where a longer retarder may be able to remove more energy from a cut than a shorter retarder. In some implementations, a retarder may include multiple sections, each section being configured to remove some energy from a cut. In these implementations, the retarder may be able to remove an amount of energy from a cut equivalent to the sum of the amounts of energy removable by the individual sections of the retarder. In some cases, some of the sections may be out of service and/or may be defective. In embodiments, retarder characteristics that production prediction manager 120 may use to calculate the maximum energy that a retarder may be able to remove may include a type of the retarder (e.g., hydraulic, pneumatic, mechanic, magnetic, etc.), where different types of retarders may be able to remove different maximum amounts of energy from a cut.

[0085] Based on the retarder characteristics of retarders within a segment and/or cut characteristics, production prediction manager 120 may determine the maximum amount of energy removable at the segment by the retarders. As this calculations are performed uphill, production prediction manager 120 may determine the maximum amount of energy removable at each of the segments by the retarders within each of the segments. Production prediction manager 120 may then calculate the total amount of energy removable by the retarders from the total route of the cut based, at least in part, on the maximum energy removable at each of the segments of the route.

[0086] At block 208, production prediction manager 120 may determine a release speed. In embodiments, the release speed may be set to the current or a set hump speed (e.g., the speed at which the push engine is set to push the cut over the hump). In some embodiments, production prediction manager 120 may calculate the release speed based on the coupling speed and the calculated energy losses or gains at each of the segment of the route.

[0087] At block 210, production prediction manager 120 may determine a total energy needed to be removed by the retarders throughout the route. In embodiments, production prediction manager 120 may calculate, based on the release energy or speed of the cut (e.g., at the release point on the hump) and the desired coupling speed at the coupling point, the total energy that needs to be removed from the cut throughout the route in order to reach the coupling speed at the coupling point.

[0088] Once the total energy needed to be removed by the retarders throughout the route is calculated by production prediction manager 120, production prediction manager 120 may allocate a respective amount of energy to be removed by each individual retarder within the route of the cut. In some embodiments, production prediction manager 120 may distribute the total energy needed to be removed from the cut through the route to the retarders available in the route based on the maximum amount of energy removable by each individual retarder.

[0089] In some embodiments, production prediction manager 120 may distribute the total energy to be removed from the cut through the route the individual segments of the route. For example, production prediction manager 120 may determine and/or allocate a respective amount of energy to be removed by each segment of the route, where the total amount of energy allocated to the segments equals the total energy to be removed from the route. In these embodiments, prediction manager 121 may allocate a respective amount of energy to be removed by each retarder within each segment such that the sum of energy removed by all retarders within a segment equal the amount of energy to be removed by the segment. This functionality of production prediction manager 120 may enable system 100 to allocate an amount of energy to be removed from a cut by each segment of a route to ensure that the cut reaches the coupling speed at the coupling point at the end of the route.

[0090] At block 212, production prediction manager 120 may predict arrival times and/or speeds of the cut at each of a plurality of points throughout the route of cut. For example, production prediction manager 120 may predict arrival times and/or speeds of the cut at each segment (e.g., arrival time and/or speed at the entry point and/or exit point of one or more segments of the route) and/or arrival times and/or speeds of the cut at each of one or more devices in the route. In embodiments, production prediction manager 120 may predict an amount of energy to be removed at one or more segments of the route.

[0091] In embodiments, production prediction manager 120 may predict arrival times and/or speeds of the cut at each of a plurality of points throughout the route of cut by calculating the arrival time and/or speed of the cut at each of the plurality of points based on the energy calculations and energy removal calculations at blocks 202-210. In some embodiments, the calculations of production prediction manager 120 may yield energy calculations (e.g., the energy of the cut at each of the plurality of points. In these embodiments, the energy predictions may be converted to speed predictions associated with the front and/or rear of the cut. In embodiments, the calculations of production prediction manager 120 to predict the arrival times and/or speeds of the cut at each of a plurality of points may be performed in a downhill manner. For example, production prediction manager 120 may first calculate arrival times and/or speeds of the cut starting at the hump crest, continuing with a segment, or device, next to the hump crest in the direction of the coupling point, and continuing with a segment and/or device along the route in the direction of the coupling point. In this manner, the calculations to predict arrival times and/or speeds is performed downhill by production prediction manager 120.

[0092] In embodiments, production prediction manager 120 may calculate the arrival times and/or speeds of the cut at each of the segment by determining, for each segment, the energy change by the cut in the segment, based on the cut characteristics, track characteristics, and/or retarder energy removal associated with the segment, as described above. For example, production prediction manager 120 may calculate, for a particular segment, the energy change in the segment due to cut characteristics (e.g., weight, type, etc.), the energy change due to track characteristics (e.g., due to segment grade, segment distance, weather conditions, etc.), energy change due to frictional resistance and/or temperature, and energy to be removed from the segments by the retarders. In addition, production prediction manager 120 may calculate the arrival times and/or speeds of the cut at the segment based on the tuning parameters associated with the segment, which may further refine a prediction of the energy change due to friction in the segment. These calculations may enable production prediction manager 120 to determine a speed of the cut at the entry point and/or the exit point of each segment of the route of the cut (and or of each device within the route).

[0093] As will be appreciated, the results of the operations in FIG. 2 may include a prediction of arrival times and/or speeds of one or more cuts at various points (e.g., devices and/or segments) along the route that a cut may travel along the marshalling tracks of classification yard 140 to reach their assigned destination train at the desired coupling speed. In embodiments, the production predictions associated with each segment may be stored in a database (e.g., database 124). It is noted that these predictions may represent predictions within a production environments, contrasted with development environments, as described above.

[0094] With reference back to FIG. 1, the cut may be travel along the route, through the various assigned segments and devices within the route, and may reach the coupling point. At each point (e.g., at each device and at each segment) along the route, measurements associated with the speed and/or energy of the cut may be captured. For example, as the cut passes through a retarder, speed and/or energy measurements may be taken at the entry point and/or exit points of the retarder. These measurements may indicate the speed at which the cut entered the retarder and the speed at which the cut exited the retarder, which may indicate the amount of energy or speed that the retarder removed from the cut as the cut passed through the retarder. In embodiments, the same process may be performed to measure the speed of the cut as it passes through a detector or a switch. In another example, as the cut passes through a segment, speed and/or energy measurements may be taken at the entry point and/or exit point of the segment (e.g., using a detector, such as a detector at each of the entry point and/or exit point of the segment). These measurements may indicate the speed at which the cut entered the segment and the speed at which the cut exited the segment, which may indicate the amount of energy or speed removed or gained by or from the cut as the cut passed through the segment.

[0095] In embodiments, the captured data may be stored in a database (e.g., database 124). For example, the captured data may be formatted as car events and may be stored in the database as car event data. In embodiments, each car event may represent real world measurements of a cut passing through a device and/or segment. In embodiments, each car event (e.g., each data point of the car event data) may include information (e.g., real-world measurements) associated with the car event, such as a segment identification, a cut identification, an entry speed of the cut, an exit speed of the cut, a timestamp of the entry of the cut, a timestamp of the exit of the cut from the segment, an indication of a wheel of the cut that was detected, weather conditions at the time the data was captured, etc. In some embodiments, the car event data may be related to a particular wheel of the cut, the front of the cut, and/or the rear of the cut. In some embodiments, a car event data may also include a production prediction associated with the car event. For example, production prediction manager 120 may generate a prediction regarding the arrival time and/or speed of a cut across a particular segment. In embodiments, the car event data corresponding to the car event of the cut passing the particular segment may include the production prediction generated by production prediction manager 120.

[0096] In embodiments, the functionality of server 110 for automatic tuning of parameters for controlling operations of a classification yard may include functionality to compile data that may be used to facilitate the automatic tuning of parameters. In embodiments, data retriever and compiler 121 may be configured to retrieve data related to car events and to filter the data according to various configuration parameters for subsequent analysis. In some embodiments, data retriever and compiler 121 may include functionality to format and/or present car event data to an operator.

[0097] In embodiments, data retriever and compiler 121 may provide a robust mechanism for configuring, controlling, and executing data retrieval and compilation functionality in order to obtain a most appropriate set of car events and leverage the car event data for automatic tuning of parameters. For example, in embodiments, data retriever and compiler 121 may be configured to retrieve and compile the car event data by configuring and scheduling one or more analysis jobs that include configuration associated with the analysis job itself as well as the car event data against which analysis is to be performed.

[0098] In embodiments, configuring an analysis job may include specifying values for various parameters defining characteristics of the job as well as characteristics of the car events to be included in the analysis. In a sense, the configuration of an analysis job may serve to filter car events in the database so that data retriever and compiler 121 may compile those car events that meet the configuration (e.g., pass the filters). The resulting set of car events may be used in the analysis (e.g., performed by automatic tuning manager 123) to perform automatic tuning of control parameters. For example, in embodiments, the various control parameters defining characteristics of the job may include parameters for specifying attributes of the job, such as a schedule name, a starting time of the job, a minimum time period that the job should run, a maximum time period that the job should run, how often the job is to be scheduled (e.g., daily, weekly, monthly, etc.), how often the job is to recur (e.g., re-perform analysis of particular events), etc. In embodiments, the various parameters defining characteristics of the car events to be included in the analysis may include parameters for specifying a device or segment for which car events are to be compiled (e.g., an identification of the device or segment), a minimum car event count (e.g., a minimum number of switch throws, etc.), a type of precipitation associated with the car events, such as the precipitation status when the car event was recorded (e.g., dry, wet, rain, snow, rust, all), a maximum temperature at the time of the car event, a minimum temperature at the time of the car event, an indication of a time period that each task performing the analysis job may be available after completion, etc.

[0099] In embodiments, data retriever and compiler 121 may include functionality to specify coefficients (e.g., tuning coefficients for various segments, temperature coefficients, friction coefficients, rolling resistance coefficients, regression coefficients, switch coefficients, retarder coefficients, detector coefficients, angle coefficients, etc.) that may be used in the analysis of the car event data. In embodiments, data retriever and compiler 121 may enable an operator to specify custom coefficients that may be used, or may specify that default coefficients are to be used.

[0100] In some embodiments, data retriever and compiler 121 may be configured to provide a user interface (UI) via which an operator may specify values for the various configuration parameters of a job. For example, data retriever and compiler 121 may present the UI (e.g., via user terminal 130) to the operator and may include various fields via which the operator may specify values for respective configuration parameters. In some embodiments, the values for the various configuration parameters of a job may be automatically selected by data retriever and compiler 121, such as by retrieving values stored in database 124, which may be previously specified by an operator or may be default values.

[0101] In embodiments, scheduling an analysis job may include defining a period over which the analysis job may be executed, as well as the recursive configuration of the analysis job. In embodiments, an analysis job may be scheduled, which may make the analysis job available to be executed. The execution of the analysis job may be performed using tasks, in which case the job may be executed against a set of car events currently available via a task execution. In this manner, a task for an analysis job may execute the analysis job based on the analysis job configuration on car event data current available. In some embodiments, a second task may be started for the same analysis job, in which case the second task may execute the analysis job (e.g., in accordance with the analysis job configuration) against a set of car events as available with respect to the second task. In this manner, as car event data in the database changes (e.g., more data is collected), a task may permit the analysis job to be executed for the data as it changes. For example, an analysis job may be scheduled to be run weekly, in which case, every week, data retriever and compiler 121 may compile car events (e.g., from database 124) that meet the analysis job configuration into a task which is executed to perform the automatic tuning analysis. This functionality may allow data retriever and compiler 121 to ensure that the analysis job for automatic tuning may be performed recursively, and in this manner the results of a first iteration of the analysis job may be leveraged in a subsequent execution (e.g., via a second task). In addition, the use of tasks may also enable the analysis to be performed over different sets of car event data, which may facilitate a diverse analysis of the data.

[0102] In embodiments, the functionality of data retriever and compiler 121 to enable the configuration of analysis jobs may provide a mechanism to configure different analysis jobs with different sets of configuration parameter values, which may combine for a full deployment of configurations that may cover a large set of situations, conditions, and/or configurations. In some embodiments, data retriever and compiler 121 may include functionality to combine jobs, such as by defining a field for specifying that an analysis job is combinable. In embodiments, combining analysis jobs may include combining the results (e.g., automatic tuning results) of the analysis jobs, such as for presentation to an operator for verification, confirmation, and/or selection of various automatically tune parameters.

[0103] In embodiments, analysis jobs may include configuration that may enable car event data to be classified based on various factors. For example, a particular car event may be classified into a particular classification (e.g., a particular data bucket) based on environmental conditions (e.g., weather, etc.), train car type, bearing type of the train car, etc. In embodiments, the various classifications, or buckets, may include a cold bucket (e.g., that may be used to classify car events that occur during cold weather), a warm bucket (e.g., that may be used to classify car events that occur during warm weather), a hot bucket (e.g., that may be used to classify car events that occur during hot weather), a wet bucket (e.g., that may be used to classify car events that occur during wet weather), a snow bucket (e.g., that may be used to classify car events that occur during snowy weather), a rain bucket (e.g., that may be used to classify car events that occur during rainy weather), a dry bucket (e.g., that may be used to classify car events that occur during dry weather), a resilience type bucket (e.g., that may be used to classify car events based on whether the cut includes train cars with a resilience type bearing), etc. It will be appreciated that the description of the above data buckets that may be used to classify car events are provided for illustrative purposes and not by way of limitation. As such, additional and/or different data buckets may be used to classify car events.

[0104] In embodiments, an analysis job may be configured as corresponding to a particular data bucket (e.g., an analysis job may be configured to be used for automatic tuning of parameters using car event data associated with a data bucket). In these embodiments, the results of the analysis jobs (e.g., for automatic tuning) may be specifically tailored to the conditions associated with the particular data bucket with which the analysis job is configured. In this manner, this functionality to configure a job with a data bucket may enable system 100 to perform automatic tuning of control parameters (e.g., including tuning coefficients) for classification yard 140 in which the automatic tuning is tailored for particular conditions (e.g., environmental conditions, train car type, bearing type of the train car, etc.). In embodiments, the configuration of the analysis job may specify the data bucket applicable to the analysis job. For example, an analysis job may be configured as applicable to the cold bucket. In this example, data retriever and compiler 121 may operate to compile a set of car events for analysis that includes car events that occur during cold weather. In this manner, the results of the analysis for automatic tuning using the results of this analysis job may be specifically tailored to cold weather conditions. In another example, an analysis job may be configured as applicable to the dry bucket. In this example, data retriever and compiler 121 may operate to compile a set of car events for analysis that includes car events that occur during dry weather, such as car events occurring while no rain or snow was present. In this manner, the results of the analysis for automatic tuning using the results of this analysis job may be specifically tailored to dry weather conditions. In yet another example, an analysis job may be configured as applicable to the dry and cold bucket. In this example, data retriever and compiler 121 may operate to compile a set of car events for analysis that includes car events that occur during dry and cold weather, such as car events occurring during cold weather while no rain or snow was present. In this manner, the results of the analysis for automatic tuning using the results of this analysis job may be specifically tailored to dry and cold weather conditions. In still another example, an analysis job may be configured as applicable to a resilience bearing true bucket. In this example, data retriever and compiler 121 may operate to compile a set of car events for analysis that includes car events in which each cut generating each of the car events including one or more train cars having resilient bearing. In this manner, the results of the analysis for automatic tuning using the results of this analysis job may be specifically tailored to reliance bearing conditions.

[0105] In some embodiments, current or recent car event data may include car event data associated with a particular data bucket representing currently prevailing conditions. For example, currently prevailing conditions may include cold weather (e.g., currently may be winter in the location of classification yard 140). In this case, the current and/or recent car event data in the database may include mostly, if not exclusively, cold weather car events (e.g., car events belonging to the cold data bucket) due to the currently prevailing weather conditions. In embodiments, analysis jobs that may executed to be used for automatic tuning of the classification yard may include these mostly, if not exclusively, cold weather car events, which may result in a tuning of the classification yard 140 (e.g., tuning of the control parameter and/or coefficients used to control operations of the classification yard 140) that may be biased and/or tailored to the prevailing weather conditions (e.g., cold weather conditions in this example).

[0106] Following the example above, if and when the weather changes to warmer conditions, a next car event (or a series of next car events) may be warm car events. In this case, it may be desirable to ensure that the automatic tuning of the classification yard 140, or indeed the tuning, generally, of the classification yard 140 may be tailored to the new warmer prevailing condition. However, as most of the previous car events may include cold weather car events, due the previously prevailing cold weather conditions, tuning the classification yard 140 to the current warm weather conditions may be challenging, as the current data is biased to cold weather (e.g., previously prevailing condition). To address this, data retriever and compiler 121 may provide functionality to specify alternate data buckets into which car events may be classified. In embodiments, an analysis job may be configured with parameters that may specify a main data bucket and one or more alternate data buckets. In these embodiments, the analysis job may be executed against a set of car events that includes car events associated with the main data bucket. However, if no car events associated with the main data bucket exist in the database, or if less than a threshold number of car events associated with the main data bucket exist in the database, data retriever and compiler 121 may operate to include car events associated with the one or more alternate data buckets. For example, configuration of an analysis job may specify a warm bucket, with a cold bucket as alternative. However, the weather conditions recently change from cold to warm. As a result, there may be no or limited warm weather car events. In this case, the warm bucket analysis job still may be executed, but against a set of car events that may include cold weather car events. The results of the analysis job may be used to automatically tune the control parameters (e.g., including tuning coefficients) of classification yard 140. This functionality to specify alternative data buckets for an analysis job may enable system 100 to provide a mechanism to leverage the benefits of the automatic tuning functionality of embodiments, even when the car event data may not be perfectly fit to the current prevailing conditions. As will be described below, the automatic tuning process provided by the present embodiments may selectively refine the tuning of classification yard 140 when the results of the automatic tuning analysis indicate an improvement, which ensures that if there is a benefit to using the alternative bucket car events in the analysis, system 100 may realize it. Otherwise, if alternative buckets were not used, such a benefit may not be realized.

[0107] In embodiments, data retriever and compiler 121 may be configured to provide the set of car events compiled for a particular analysis job to the backoffice. In embodiments, each car event may represent a cut passing through a device and/or segment, and may include information related to the speed or energy of the cut while passing through the device and/or segment. In embodiments, the backoffice may represent a development environment. The development environment may include operations that may not be performed on the field and/or in an operation environment. The backoffice environment may be contrasted to the production environment in which operations may include on-field operations. In embodiments, the backoffice environment may enable operations, such as with respect to automatic tuning of the control parameters of classification yard 140, that may be performed without affecting the production environment unless the results of the backoffice operation are deployed to the production environment.

[0108] Backoffice prediction manager 122 may be configured to perform analysis of the compiled set of car event data to obtain one or more candidate control parameters, including candidate tuning coefficients, for one or more segments and/or devices within classification yard 140 and to generate a backoffice prediction of arrival times and/or speeds of various cuts across various devices and/or segments based on the compiled set of car event data. In embodiments, the backoffice predictions may be compared against the production predictions generated by the production prediction manager 120 to determine which predictions are closer to the real-world measurements obtain for the various car events. As the predictions are generated based on control parameters (e.g., including tuning coefficients), the results of the comparison between the production predictions and the backoffice predictions may be used to automatically tune the control parameters.

[0109] In embodiments, the compiled set of car event data may include a plurality of car events. Each car event may represent a cut passing through a device or segment of classification yard 140. Thus, the compiled set of car event data may represent car events for different cuts across different segments and/or different devices of classification yard 140. In embodiments, the backoffice prediction generated by backoffice prediction manager 122 for a car event at a segment or device may represent a prediction made after the fact (e.g., after a car event), as the backoffice prediction may be generated using parameters (e.g., including tuning coefficients such as rolling resistance coefficients, temperature coefficients, angle coefficients, etc.) calculated based on the real-world measurements (e.g., speed, energy, and/or arrival times) obtained when the car event occurred at the segment or device.

[0110] In embodiments, backoffice prediction manager 122 may be configured to perform analysis of the compiled set of car event data to obtain one or more candidate control parameters (e.g., including tuning coefficients for various devices and/or segments). In embodiment, the analysis performed by backoffice prediction manager 122 may include regression analysis (e.g., linear regression analysis), machine learning analysis (e.g., machine learning algorithms and/or models), etc., and/or any other analytical framework or scheme that may be configured to provide a predictive model associated with the car event data. For example, the analysis performed by backoffice prediction manager 122 may generate one or more suggestions for one or more control parameters (e.g., including tuning coefficients) associated with the compiled car event data.

[0111] In embodiments, each car event of the compiled set of car event data may include information associated with the segment and/or device at which the car event occurred, as well as an indication of the speed, energy, and or arrival time of the cut for which the car event was generated at the device or segment. Backoffice prediction manager 122 may use this information in the car event data to obtain candidate control parameters. For example, one or more segments or devices of classification yard 140, for which car event data may be included in the compiled set of car event data, may be associated with a set of tuning coefficients (e.g., rolling resistance coefficients, temperature coefficients, angle coefficients, switch coefficients, retarder coefficients, detector coefficients, etc.) that may be used to define the amount of energy or speed that may be expected, gained, or lost by a cut traveling through the one or more segments or devices. As described above, in one example, the rolling resistance tuning coefficients of a segment may be determined by applying a best fit line to a set of car events at a segment and setting the rolling resistance tuning coefficients based on the values of the best fit line.

[0112] In embodiments, backoffice prediction manager 122 may be configured to apply regression to a set of car events associated with a segment or device to obtain a candidate set of tuning coefficients. For example, prediction manager 122 may apply a best fit line analysis to the set of car events associated with a segment or device and then may set the candidate tuning coefficients of the segment based on the values (e.g., slope and y-intercept) of the best fit line of the set of car event data for the segment. The same may be performed for all segments and/or devices for which car event data is present in the compiled set of car event data.

[0113] It is noted that, in embodiments, the candidate set of tuning coefficients for a segment or device may differ from the set of tuning coefficients associated with the segment or device in that the candidate set of tuning coefficients may be generated based on a regression analysis of the measured real-world data and the set of tuning coefficients associated with the segment or device may represent the production values for the set of tuning coefficients of the segment or device.

[0114] In a particular example, a first segment may have a production set of tuning coefficients (rolling resistance coefficients, temperature coefficients, angle coefficients, etc.) assigned to the segment. In this example, production prediction manager 120 may use the production set of tuning coefficients to make predictions regarding the speed and/or arrival time of a cut passing through the first segment. Further in this example, the compiled set of car event data may include a plurality of car events associated with the first segment (e.g., car events representing various cuts passing through the first segment). The plurality of car events may include information regarding the amount of energy lost or gained at each car event at the first segment, which may include real-world measurements of speed and/or energy as well as real-world timestamps. In embodiments, backoffice prediction manager 122 may generate a candidate set of tuning coefficients for the first segment based on analysis (e.g., regression and/or machine learning analysis) of the plurality of car events associated with the first segment. In some embodiments, the candidate set of tuning coefficients for the first segment my include rolling resistance coefficients (e.g., a, b, c, d, etc.). In some embodiments, backoffice prediction manager 122 may generate, for each car event associated with a segment, a set of tuning coefficients based on the data in the respective car event to generate a plurality of sets of tuning coefficients, each set of tuning coefficients in the plurality of sets of tuning coefficients associated with a car event for the segment. Backoffice prediction manager 122 may then aggregate or average the plurality of sets of tuning coefficients into a single candidate set of tuning coefficients for the segment.

[0115] In embodiments, backoffice prediction manager 122 may be configured to generate, based, at least in part, on the candidate set of control parameters (e.g., including tuning coefficients), for each segment represented in the compiled set of car event data, a backoffice prediction of arrival times and/or speeds for each cut represented in each of the car events in the compiled set of car event data at each segment. For example, for a first segment represented in the compiled set of car event data, backoffice prediction manager 122 may generate a backoffice prediction of arrival times and/or speeds for each car event associated with the first segment (e.g., for each cut that passed through the first segment generating a car event for the segment) based on the candidate set of control parameters generated for the first segment. In another example, for a second segment represented in the compiled set of car event data, backoffice prediction manager 122 may generate a backoffice prediction of arrival times and/or speeds for each car event associated with the second segment (e.g., for each cut that passed through the second segment generating a car event for the segment) based on the candidate set of control parameters generated for the second segment.

[0116] In embodiments, backoffice prediction manager 122 may be configured to generate, based, at least in part, on the candidate set of control parameters (e.g., including tuning coefficients), for each device represented in the compiled set of car event data, a backoffice prediction of arrival times and/or speeds for each cut represented in each of the car events in the compiled set of car event data at each device. For example, for a first device represented in the compiled set of car event data, backoffice prediction manager 122 may generate a backoffice prediction of arrival times and/or speeds for each car event associated with the first device (e.g., for each cut that passed through the first device generating a car event for the device) based on the candidate set of control parameters generated for the first device. In another example, for a second device represented in the compiled set of car event data, backoffice prediction manager 122 may generate a backoffice prediction of arrival times and/or speeds for each car event associated with the second device (e.g., for each cut that passed through the second device generating a car event for the device) based on the candidate set of control parameters generated for the second device.

[0117] In embodiments, a backoffice prediction generated by backoffice prediction manager 122 may represent an after-the-fact prediction, in that the arrival times and/or speeds of a cut at a particular device or segment may be made by backoffice prediction manager 122 using tuning coefficients generated based on real-world data measured during car events that occurred at the segment or device. In this manner, the backoffice prediction associated with a car event is made after the car event has already happened. Nonetheless, the backoffice prediction of a car event differs from the production prediction of the car event in that the production prediction is generated using production tuning coefficients and the backoffice prediction is generated using candidate tuning coefficients obtained from regression analysis of the real-world measurements of the car event.

[0118] Automatic tuning manager 123 may be configured to compare the production predictions generated by production prediction manager 120 and the backoffice predictions generated by backoffice prediction manager 122, to determine which of the production set of control parameters and the candidate set of control parameters provides a more accurate prediction with respect to real-world measurements, and to deploy the set of control parameters that provides a more accurate prediction with respect to real-world measurements to the production environment. In this manner, automatic tuning manager 123 may be configured to automatically tune the control parameters (e.g., including tuning coefficients) used to control operations of classification yard 140.

[0119] In embodiments, functionality of automatic tuning manager 123 to compare the production predictions generated by production prediction manager 120 and the backoffice predictions generated by backoffice prediction manager 122 may include comparing the production predictions and the backoffice predictions related to a car event (e.g., speed and/or arrival times of a cut at a particular segment or device) with real-world measurements related to the car event, to determine whether the production predictions or the backoffice predictions more accurately reflect the real-world measurements.

[0120] In embodiments, automatic tuning manager 123 may employ one or more approaches when comparing the production predictions and the backoffice predictions related to a car event with the real-world measurements related to the car event. For example, automatic tuning manager 123 may compare the production predictions and the backoffice predictions related to a car event with the real-world measurements related to the car event using an absolute deviation analysis, variance analysis, r-squared deviation analysis, etc. In particular, in the absolute deviation analysis, automatic tuning manager 123 may, for each car event associated with a segment or device, measure an absolute value deviation between a predicted value and the real-world measured value for each car event, and may then average the absolute value deviations over all the car events associated with the segment or device to obtain an absolute value average difference for the segment or device, which may represent an absolute value average difference of the predictions for all car events associated with the segment or device.

[0121] In embodiments, using the absolute deviation analysis, automatic tuning manager 123 may, for each car event associated with each segment or device for which a production prediction and a backoffice prediction was generated, measure an absolute value average difference between the respective production predictions and the real-world measurements and an absolute value average difference between the respective backoffice predictions and the real-world measurements. In embodiments, automatic tuning manager 123 may measure an absolute value average difference between predictions (e.g., production and/or backoffice) and real-world measurements for each segment or device by first measuring the absolute value deviation between each prediction (e.g., each prediction for each car event) and the corresponding real-world measurements, and then averaging the absolute value deviations for all car events associated with the segment or device into an absolute value average difference for the segment or device.

[0122] For example, automatic tuning manager 123 may, for each production prediction associated with a car event (e.g., for each production prediction associated with a car event at a segment or device in the compiled set of car event data), obtain an absolute value deviation between the predicted values (e.g., production predicted speed and/or arrival time of the corresponding cut at the corresponding device or segment associated with each car event) and the real-world measurements related to the car event (e.g., actual speed and/or arrival time of the corresponding cut at the corresponding device or segment). In embodiments, the absolute value deviation between a predicted value and the real-world measurement may include an absolute difference between the predicted value and the real-world measurement. For example, a production predicted for a particular cut may predict that the cut may exit a particular detector at 5 MPH. The real-world measurement may indicate that in actuality, the cut exited the particular detector at 5.5 MPH. In this example, the difference between the predicted value (e.g., 5 MPH) and the real-world measurement (e.g., 5.5 MPH) may be +0.5 MPH and thus, the absolute value deviation between the predicted value (e.g., 5 MPH) and the real-world measurement (e.g., 5.5 MPH) may be calculated by automatic tuning manager 123 to be 0.5. In another example, a production predicted for a particular cut may predict that the cut may exit a particular detector at 5 MPH. The real-world measurement may indicate that in actuality, the cut exited the particular detector at 4.5 MPH. In this example, the difference between the predicted value (e.g., 5 MPH) and the real-world measurement (e.g., 4.5 MPH) may be 0.5 MPH and thus, the absolute value deviation between the predicted value (e.g., 5 MPH) and the real-world measurement (e.g., 4.5 MPH) may be calculated by automatic tuning manager 123 to be 0.5.

[0123] In embodiments, automatic tuning manager 123 may obtain an absolute value deviation between a production prediction for each car event at each segment or device and the real-world measurements for each of the car events at each segment or device. The result may include an absolute value deviation value for each car event associated with a segment or device, representing the deviation between the production predicted value and the actual value measured. In embodiments, automatic tuning manager 123 may average, for each segment or device, the absolute value deviations for all car events associated with the segment or device into a production absolute value average difference for the segment or device. The result may include a production absolute value average difference associated with the segment or device. In embodiments, a larger production absolute value average difference associated with a segment or device may indicate that the production predictions are not as accurate as production predictions associated with a smaller production absolute value average difference for the segment or device. On the other hand, a smaller production absolute value average difference associated with a segment or device may indicate that the production predictions are more accurate than production predictions associated with a larger production absolute value average difference for the segment or device.

[0124] In embodiments, automatic tuning manager 123 may, for each backoffice prediction associated with a car event (e.g., for each backoffice prediction associated with a car event at a segment or device in the compiled set of car event data), obtain an absolute value deviation between the predicted values (e.g., backoffice predicted speed and/or arrival time of the corresponding cut at the corresponding device or segment associated with each car event) and the real-world measurements related to the car event (e.g., actual speed and/or arrival time of the corresponding cut at the corresponding device or segment).

[0125] In embodiments, automatic tuning manager 123 may obtain an absolute value deviation between a backoffice prediction for each car event at each segment or device and the real-world measurements for each of the car events at each segment or device. The result may include an absolute value deviation value for each car event associated with a segment or device, representing the deviation between the backoffice predicted value and the actual value measured. In embodiments, automatic tuning manager 123 may average, for each segment or device, the absolute value deviations for all car events associated with the segment or device into a backoffice absolute value average difference for the segment or device. The result may include a backoffice absolute value average difference associated with the segment or device. In embodiments, a larger backoffice absolute value average difference associated with a segment or device may indicate that the backoffice predictions are not as accurate as backoffice predictions associated with a smaller backoffice absolute value average difference for the segment or device. On the other hand, a smaller backoffice absolute value average difference associated with a segment or device may indicate that the backoffice predictions are more accurate than backoffice predictions associated with a larger backoffice absolute value average difference for the segment or device.

[0126] In embodiments, automatic tuning manager 123 may determine, based on the respective absolute value average difference, which of the production set of control parameters and the candidate set of control parameters provides a more accurate prediction with respect to real-world measurements. For example, in embodiments, automatic tuning manager 123 may compare the production absolute value average difference to the backoffice absolute value average difference for a first segment or device. Automatic tuning manager 123 may determine that a smaller production absolute value average difference (e.g., a production absolute value average difference smaller than the backoffice absolute value average difference) for the first segment or device may indicate that the production set of control parameters (e.g., including the production tuning coefficients) provides a more accurate prediction of car events at the first segment or device than the candidate set of control parameters. This may be understood from the fact that the production set of control parameters (e.g., including the production tuning coefficients) may have been used to generate the production predictions for the first segment or device from which the production absolute value average difference was obtained. In this case, automatic tuning manager 123 may determine to continue using the current production set of control parameters (e.g., including the production tuning coefficients) for the first segment or device in operations of classification yard 140 (e.g., operations to calculate and/or predict speed, energy, and/or arrival times at the first segment or device). In some embodiments, in response to a determination that the production set of control parameters (e.g., including the production tuning coefficients) provides a more accurate prediction of car events at the first segment or device than the candidate set of control parameters, automatic tuning manager 123 may determine to reject the candidate set of control parameters (e.g., including the candidate tuning coefficients for the first segment or device) for the first segment or device for operations of classification yard 140.

[0127] In embodiments, automatic tuning manager 123 may determine that the backoffice absolute value average difference is smaller than the production absolute value average difference. In this case, automatic tuning manager 123 may determine that a smaller backoffice absolute value average difference (e.g., a backoffice absolute value average difference smaller than the production absolute value average difference) for the first segment or device may indicate that the candidate set of control parameters (e.g., including the candidate tuning coefficients) provides a more accurate prediction of car events at the first segment or device than the production set of control parameters. This may be understood from the fact that the candidate set of control parameters (e.g., including the candidate tuning coefficients) may have been used to generate the production predictions for the first segment or device from which the backoffice absolute value average difference was obtained. In this case, automatic tuning manager 123 may determine to deploy the candidate set of control parameters (e.g., including the candidate tuning coefficients) to replace the current production set of control parameters for the first segment or device in operations of classification yard 140 (e.g., operations to calculate and/or predict speed, energy, and/or arrival times at the first segment or device). In embodiments, a similar process may be performed for the other segments and/or devices represented in the compiled set of car event data to determine whether the current production set of control parameters may continue to be used or whether the candidate set of control parameters may be deployed to replace the current production set of control parameters.

[0128] In embodiments, continuing to use the current production set of control parameters or deploying the candidate set of control parameters to replace the current production set of control parameters for a segment or device may be performed automatically by automatic tuning manager 123. In these embodiments, automatic tuning manager 123 may either replace the current production set of control parameters for a segment or device in a database (e.g., database 124) with the candidate set of control parameters (e.g., when deploying the candidate set of control parameters), or may leave the current production set of control parameters for the segment or device in the database.

[0129] In some embodiments, continuing to use the current production set of control parameters for a segment or device or deploying the candidate set of control parameters to replace the current production set of control parameters for the segment or device may include automatic tuning manager 123 presenting results in a UI to an operator and providing control elements for the operator to accept or reject the candidate set of control parameters for the segment or device. FIG. 4 illustrates an example of a UI presented to an operator to validate results of the automatic tuning manager in accordance with aspects of the present disclosure.

[0130] As can be seen in FIG. 4, UI 400 may be presented to an operator (e.g., via user terminal 130) for validation of the automatic tuning results. In embodiments, UI 400 may include various graphical elements providing input/output functionality so that the operator may be presented with the results of the automatic tuning operations and may confirm or reject the candidate control parameters (e.g., including candidate tuning coefficients).

[0131] In embodiments, the automatic tuning results may be presented in UI 400 organized by segment or device. For example, UI 400 may include a section 410 for including an identification of the segment or device for which the results are presented. As can be appreciated, UI 400 may include results for a plurality of segments or devices.

[0132] In embodiments, UI 400 may include a section 412 for including an indication of the current production set of control parameters for the segment or device identified in section 410. In the example illustrated in FIG. 4, the automatic tuning analysis results include automatic tuning of rolling resistance coefficients (e.g., a and b). In this example, each segment or device for which automatic tuning analysis is performed may have a set of rolling resistance coefficients (e.g., a and b) associated with it.

[0133] In embodiments, UI 400 may include a section 414 for including an indication of the candidate set of control parameters for the segment or device identified in section 410. In the example illustrated in FIG. 4, the automatic tuning analysis results include a candidate set of rolling resistance coefficients (e.g., a and b) as generated by backoffice prediction manager 122. In this example, each segment or device for which automatic tuning analysis is performed may have a candidate set of rolling resistance coefficients (e.g., a and b) associated with it.

[0134] In embodiments, UI 400 may include section 416 for including an indication of the production absolute value average difference associated with the segment or device identified in section 410. As noted above, the production absolute value average difference for a segment or device may indicate a measure of how accurate the productions predictions for the segment or device for new car events may be, which productions predictions may be made using the current production set of control parameters indicated in section 412. In this manner, a high production absolute value average difference may indicate that the current production set of control parameters (e.g., the rolling resistance coefficients indicated in section 412) for the segment or device indicated in section 410 does not yield very accurate production prediction results. On the other hand, a low production absolute value average difference (e.g., closer to zero) may indicate that the current production set of control parameters (e.g., the rolling resistance coefficients indicated in section 412) for the segment or device indicated in section 410 yields accurate production prediction results.

[0135] In embodiments, UI 400 may include a section 414 for including an indication of the candidate set of control parameters for the segment or device identified in section 410. In the example illustrated in FIG. 4, the automatic tuning analysis results include a candidate set of rolling resistance coefficients (e.g., a and b) as generated by backoffice prediction manager 122. In this example, each segment or device for which automatic tuning analysis is performed may have a candidate set of rolling resistance coefficients (e.g., a and b) associated with it.

[0136] In embodiments, UI 400 may include section 418 for including an indication of the backoffice absolute value average difference associated with the segment or device identified in section 410. As noted above, the backoffice absolute value average difference for a segment or device may indicate a measure of how accurate the backoffice predictions for the segment or device for new car events may be, which backoffice predictions may be made using the candidate set of control parameters indicated in section 414. In this manner, a high backoffice absolute value average difference may indicate that the candidate set of control parameters (e.g., the rolling resistance coefficients indicated in section 414) for the segment or device indicated in section 410 does not yield very accurate backoffice prediction results. On the other hand, a low backoffice absolute value average difference (e.g., closer to zero) may indicate that the candidate set of control parameters (e.g., the rolling resistance coefficients indicated in section 414) for the segment or device indicated in section 410 yields accurate backoffice prediction results.

[0137] In embodiments, the production absolute value average difference indicated in section 416 and the backoffice absolute value average difference indicated in section 418 for a segment or device may be used by the operator to decide whether to accept the candidate set of control parameters indicated in section 414 for the segment indicated in section 410. In embodiments, the operator may determine to accept the candidate set of control parameters indicated in section 414 for the segment indicated in section 410 based on a determination that the backoffice absolute value average difference indicated in section 416 is smaller than the production absolute value average difference indicated in section 418. In this case, the operator may select to accept the candidate set of control parameters by activating the control element in section 422 for accepting the candidate set of control parameters. In embodiments, the operator may determine to reject the candidate set of control parameters indicated in section 414 for the segment indicated in section 410 based on a determination that the backoffice absolute value average difference indicated in section 416 is not smaller than the production absolute value average difference indicated in section 418. In this case, the operator may select to reject the candidate set of control parameters by activating the control element in section 422 for rejecting the candidate set of control parameters.

[0138] In some embodiments, automatic tuning manager 123 may automatically accept or reject the candidate set of control parameters without operator intervention. For example, automatic tuning manager 123 may determine to accept the candidate set of control parameters indicated in section 414 for the segment indicated in section 410 based on a determination that the backoffice absolute value average difference indicated in section 416 is smaller than the production absolute value average difference indicated in section 418. In this case, automatic tuning manager 123 may accept the candidate set of control parameters indicated in section 414 and may provide an indication in section 420 indicating that the candidate set of control parameters indicated in section 414 was automatically accepted by the system. In embodiments, automatic tuning manager 123 may determine to reject the candidate set of control parameters indicated in section 414 for the segment indicated in section 410 based on a determination that the backoffice absolute value average difference indicated in section 416 is smaller than the production absolute value average difference indicated in section 418. In this case, automatic tuning manager 123 may reject the candidate set of control parameters indicated in section 414 and may provide an indication in section 420 indicating that the candidate set of control parameters indicated in section 414 was automatically rejected by the system. In these cases, the control element for manually accepting/rejecting the candidate set of control parameters in section 422 may be deactivated in response to the automatic acceptance or rejection.

[0139] FIG. 5 shows a high-level flow diagram 500 of operation of a system configured in accordance with embodiments of the present disclosure for providing functionality to automatically tune parameters for controlling operations of a classification yard. For example, the functions illustrated in the example blocks shown in FIG. 5 may be performed by system 100 of FIG. 1 according to embodiments herein. In embodiments, the operations of the method 500 may be stored as instructions that, when executed by one or more processors, cause the one or more processors to perform the operations of the method 500.

[0140] At block 502, a set of production predictions associated with one or more car events at a first point of a route within the classification yard are generated using a production set of control parameters associated with the first point of the route. In embodiments, the production set of control parameters may include one or more parameters associated with the rollability of one or more railcar cuts through the first point of the route. In embodiments, functionality of a production prediction manager (e.g., production prediction manager 120 in FIG. 1) may be used to generate a set of production predictions associated with one or more car events at a first point of a route within the classification yard using a production set of control parameters associated with the first point of the route. In embodiments, the production prediction manager may perform operations to generate a set of production predictions associated with one or more car events at a first point of a route within the classification yard using a production set of control parameters associated with the first point of the route according to operations and functionality as described above with reference to production prediction manager 120 and as illustrated in FIGS. 1-4.

[0141] At block 504, actual measurements associated with the one or more car events at the first point of the route may be obtained. In embodiments, functionality of a data retriever and compiler (e.g., data retriever and compiler 121 in FIG. 1) may be used to obtain actual measurements associated with the one or more car events at the first point of the route. In embodiments, the data retriever and compiler may perform operations to obtain actual measurements associated with the one or more car events at the first point of the route according to operations and functionality as described above with reference to data retriever and compiler 121 and as illustrated in FIGS. 1-4.

[0142] At block 506, a candidate set of control parameters associated with the first point of the route may be estimated based on the actual measurements associated with the one or more car events at the first point of the route. In embodiments, functionality of a backoffice prediction manager (e.g., backoffice prediction manager 122 in FIG. 1) may be used to estimate a candidate set of control parameters associated with the first point of the route based on the actual measurements associated with the one or more car events at the first point of the route. In embodiments, the backoffice prediction manager may perform operations to estimate a candidate set of control parameters associated with the first point of the route based on the actual measurements associated with the one or more car events at the first point of the route according to operations and functionality as described above with reference to backoffice prediction manager 122 and as illustrated in FIGS. 1-4.

[0143] At block 508, a set of backoffice predictions associated with the one or more car events at the first point of the route may be generated using the candidate set of control parameters associated with the first point of the route. In embodiments, functionality of a backoffice prediction manager (e.g., backoffice prediction manager 122 in FIG. 1) may be used to generate a set of backoffice predictions associated with the one or more car events at the first point of the route using the candidate set of control parameters associated with the first point of the route. In embodiments, the backoffice prediction manager may perform operations to generate a set of backoffice predictions associated with the one or more car events at the first point of the route using the candidate set of control parameters associated with the first point of the route according to operations and functionality as described above with reference to backoffice prediction manager 122 and as illustrated in FIGS. 1-4.

[0144] At block 510, the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route may be compared to determine which of the production set of control parameters or the candidate set of control parameters for the first point of the route yields more accurate predictions for car events at the first point of the route. In embodiments, functionality of an automatic tuning manager (e.g., automatic tuning manager 123 in FIG. 1) may be used to compare the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route to determine which of the production set of control parameters or the candidate set of control parameters for the first point of the route yields more accurate predictions for car events at the first point of the route. In embodiments, the automatic tuning manager may perform operations to compare the set of production predictions associated with the one or more car events at the first point of the route and the set of backoffice predictions associated with the one or more car events at the first point of the route to determine which of the production set of control parameters or the candidate set of control parameters for the first point of the route yields more accurate predictions for car events at the first point of the route according to operations and functionality as described above with reference to automatic tuning manager 123 and as illustrated in FIGS. 1-4.

[0145] At block 512, a determination to replace the production set of control parameters for the first point of the route with the candidate set of control parameters may be made in response to a determination that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters. In embodiments, functionality of an automatic tuning manager (e.g., automatic tuning manager 123 in FIG. 1) may be used to determine to replace the production set of control parameters for the first point of the route with the candidate set of control parameters in response to a determination that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters. In embodiments, the automatic tuning manager may perform operations to determine to replace the production set of control parameters for the first point of the route with the candidate set of control parameters in response to a determination that the candidate set of control parameters yields more accurate predictions for car events at the first point of the route than the production set of control parameters according to operations and functionality as described above with reference to automatic tuning manager 123 and as illustrated in FIGS. 1-4.

[0146] Persons skilled in the art will readily understand that advantages and objectives described above would not be possible without the particular combination of computer hardware and other structural components and mechanisms assembled in this inventive system and described herein. Additionally, the algorithms, methods, and processes disclosed herein improve and transform any general-purpose computer or processor disclosed in this specification and drawings into a special purpose computer programmed to perform the disclosed algorithms, methods, and processes to achieve the aforementioned functionality, advantages, and objectives. It will be further understood that a variety of programming tools, known to persons skilled in the art, are available for generating and implementing the features and operations described in the foregoing. Moreover, the particular choice of programming tool(s) may be governed by the specific objectives and constraints placed on the implementation selected for realizing the concepts set forth herein and in the appended claims.

[0147] The description in this patent document should not be read as implying that any particular element, step, or function can be an essential or critical element that must be included in the claim scope. Also, none of the claims can be intended to invoke 35 U.S.C. 112 (f) with respect to any of the appended claims or claim elements unless the exact words means for or step for are explicitly used in the particular claim, followed by a participle phrase identifying a function. Use of terms such as (but not limited to) mechanism, module, device, unit, component, element, member, apparatus, machine, system, processor, processing device, or controller within a claim can be understood and intended to refer to structures known to those skilled in the relevant art, as further modified or enhanced by the features of the claims themselves, and can be not intended to invoke 35 U.S.C. 112 (f). Even under the broadest reasonable interpretation, in light of this paragraph of this specification, the claims are not intended to invoke 35 U.S.C. 112 (f) absent the specific language described above.

[0148] The disclosure may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. For example, each of the new structures described herein, may be modified to suit particular local variations or requirements while retaining their basic configurations or structural relationships with each other or while performing the same or similar functions described herein. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive. Accordingly, the scope of the inventions can be established by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein. Further, the individual elements of the claims are not well-understood, routine, or conventional. Instead, the claims are directed to the unconventional inventive concept described in the specification

[0149] Those of skill in the art would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure. Skilled artisans will also readily recognize that the order or combination of components, methods, or interactions that are described herein are merely examples and that the components, methods, or interactions of the various embodiments of the present disclosure may be combined or performed in ways other than those illustrated and described herein.

[0150] Functional blocks and modules in FIGS. 1-6 may comprise processors, electronics devices, hardware devices, electronics components, logical circuits, memories, software codes, firmware codes, etc., or any combination thereof. Consistent with the foregoing, various illustrative logical blocks, modules, and circuits described in connection with the disclosure herein may be implemented or performed with a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

[0151] The steps of a method or algorithm described in connection with the disclosure herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal, base station, a sensor, or any other communication device. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.

[0152] In one or more exemplary designs, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. Computer-readable storage media may be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, a connection may be properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, or digital subscriber line (DSL), then the coaxial cable, fiber optic cable, twisted pair, or DSL, are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0153] Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods, and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.