Measurements

The AMTAB System is capable of measuring many aspects of a train. This section lists and defines all parameters that are recorded during a measurement. It will also give a brief description of how the algorithm transforms the analog sensor signal into a measurement.

While the system measures all parameters on a single wheel basis, the software is able to logically combine and categorize the individual measurements into three levels; Axle, Wagon/Locomotive (Car) and Train.

Basic Measurement Principle

As described in the System Overview, the system has up to 16 sensors which are bolted tightly onto the rail web. The sensors are mounted in pairs, parallel to each other on both sides of the track. Two pairs mounted on each side of the rail, 4 sensors total, is called a Weighing Bridge. That means the system can support up to 4 weighing bridges.

Each sensor pair is connected to a PSLA which powers the sensor and reads back it’s current value. The patented technology inside the sensor combined with the PSLA will produce a signal which is equivalent to the downward force exerted on the rail when a wheel passes the sensor. It’s important to remember that the AMTAB System is designed as a Weighing in Motion (WIM) system, meaning that it can’t measure a wheel which is standing still on top of a sensor.

When a train passes over the sensors, a signal like this will be recorded for each pair of sensors:

Example Plot of Raw Data 1

Fig. 2 Example raw data plotted by the Raw Data Plotter in the SIPR GUI.

The image above shows the raw data for PSLA 0 where a train with one locomotive followed by wagons with 2-4 axles each. The red dots indicates the max amplitude for each axle which is used to calculate the weight of the axle. Zooming in on one axles allows us to see a detail of the signal:

Example Plot of Raw Data 2

Distortion in the signal is common and is affected by many parameters. This is also what allows the AMTAB System to measure more than just the weight of a wheel, such as wheel defects. By analyzing the data from multiple measurements (Weighing Bridges), additional data can be calculated along with a more accurate weight.

If the algorithm has been properly configured with the available site data, the system is also able to calculate the speed each axle is traveling and by extension the distance between each axle. The distance between axles is typically unique per wagon type, thus this information can also be used to convert axles into wagons and wagons into trains. To be able to classify wagons each wagon type must be input into the software, read more about how that works in this section: Wagon Type Classification.

The plots above are generate by the GUI using the built-in Raw Data plotter available in the GUI Measurement Viewer. The plots are used during installation and maintenance to ensure that the sensors are installed properly and that no outside noise (EMI) interferes with the signal. Raw data can also be downloaded as a zip file and sent to AMTAB Support for further analysis.

If all data is available to the algorithm, the measurement data stored will be displayed in the Measurement Viewer like this:

Wagon Table Example

If the algorithm can’t classify a wagon each axle will be displayed individually instead as the predefined “Axle” wagon type.

Measurement Parameters

When a train has passed, the measurement is stored on the CF card. The measurement can be retrieved by using the GUI Measurement Viewer or by calling the getMeasurement API operation. Each measurement will contain the fields described in the tables below.

If the database is enabled and connected, the result will also be stored in the database. The field names used in the database corresponds to the names used by the API.

Name

Description

path

Path to the measurement directory on the CF Card.

checksum

Checksum of the measurement calculated when the file was stored on the CF Card.

checksumIsValid

True if the checksum could be successfully validated against the contents of the file.

measurement

Object

  id

ID of the measurement in the format hhmmssyyyymmdd.

  timestamp

Time the train passed in ISO format, stored in UTC.

  algoChecksum

Checksum of the algorithm settings when the measurement was recorded.

  pslaChecksum

Checksum of the settings for the sensors when the measurement was recorded.

  isSimulated

True if the measurement has been made by playing back the raw data from a previous measurement.

  isUnreliable

True if axleInconsistentCount > 0.

  carCount

Total number of cars (including locomotives) in the train.

  axleCount

Total number of axles in the train.

  length

Sum of the lengths of all cars in the train, in metres.

  speed

Average speed of the train, computed as the average speed of all cars in the train, in m/s.

  grossWeight

Total weight of all axles in the train, excluding locomotive axles, in metric tonnes.

  totalGrossWeight

Total weight of all axles in the train, in metric tonnes.

  netWeight

Total weight of all axles in the train minus the tare weight of all cars, in metric tonnes.

  axleOverloadCount

Number of overloaded axles detected.

  carOverloadCount

Number of overloaded cars detected.

  axleUnevenLoadCount

Number of unevenly loaded axles detected.

  carUnevenLoadCount

Number of cars detected that are unevenly loaded either in the front/read direction, or the odd/even direction.

  wheelDefectCount

Number of wheels flagged as defective.

  axleOverloadLimit

Configured maximum allowed weight per axle in the train when the measurement was recorded.

  axleUnevenLoadLimit

Configured maximum uneven load limit per axle in the train when the measurement was recorded.

  ignoredPeakCount

The number of peaks ignored by the axle correction algorithm, Peaks will be ignored if they do not match the peaks any axle, as detected by the other sensors. If axleCorrection is not enabled, this value will always be 0.

  missingPeakCount

The number of cases where an axle has been detected by most, but not all of the sensors. This is most common with empty cars that have a low weight. If axleCorrection is not enabled, this value will always be 0.

  axleInconsistentCount

The number of axles where axle.consistency > measurement.axleConsistencyLimit.

  carFrontRearBalanceLimit

Configured maximum allowed quotient between the sum of the weights of the axles in the front and the rear half of a car when the measurement was recorded, in %.

  carEvenOddBalanceLimit

Configured maximum allowed quotient between the sum of the weight of the axles on the even and odd sides of a car when the measurement was recorded, in %.

  wheelDefectLimit

The configured maximum allowed weightStdEven/weightStdOdd value allowed for an axle when the measurement was recorded.

  speedLimitMax

The configured maximum allowed speed allowed for an axle when the measurement was recorded.

  speedLimitMin

The configured minimum allowed speed allowed for an axle when the measurement was recorded.

  carWeightLimitMax

The configured maximum certified wagon mass limit when the measurement was recorded.

  scaleInterval

The configured certified scale interval when the measurement was recorded.

  axleConsistencyLimit

The configured maximum allowed axle consistency value when the measurement was recorded.

  isDirectionUp

True if the train is traveling in the direction defined as up.

  axles[]

Object[]

    speed

Average of speed of the axle between the first and the last active PSLA on each side, in m/s.

    distance

Distance from the previous axle, in metres.

    weight

Sum of weightEven and weightOdd.

    consistency

The consistency value measured. Axle consistency is a value which is calculated based on how consistent the measurement was in relation to the expected output from the sensors. Consistency values above the configured limit in /api/algoSettings will mark the whole measurement as unreliable.

    weightEven

Average of the weight measured by the active PSLAs on the even side, in metric tonnes.

    weightOdd

Average of the weight measured by the active PSLAs on the odd side, in metric tonnes.

    weightStdEven

Normalised standard deviation (ie the standard deviation divided by the average weight) of the weight measured by each sensor on the even side from either the average or the median of the weights of all sensors on that side depending on the value of the algorithm setting medianSTDEnabled. It is used for detecting wheel imbalance.

    weightStdOdd

Same as weightStdEven, but on the odd side.

    isOverLoad

True if weight > axleOverloadLimit.

    isUnevenLoad

True if weightEven or weightOdd is outside the range (1 +/- axleUnevenLoadLimit/100).

    isDefectEven

True if weightStdEven > wheelDefectLimit.

    isDefectOdd

True if weightStdOdd > wheelDefectLimit.

    weightPsla[]

(Number | null)[] - Array containing the weight recorded by each PSLA, the index of the array correspond to the PSLA number. Disabled PSLAs will have null values.

    consistencyPsla[]

(Number | null)[] - Array containing the consistency value recorded by each PSLA, the index of the array correspond to the PSLA number. Disabled PSLAs will have null values.

  cars[]

Object[]

    name

Name of the car type.

    speed

Speed of the car, computed as the average speed of its’ axles, in m/s.

    weight

Weight of the car, calculated as the sum of the weight of the axles, in metric tonnes.

    weightStdEven

Largest standard deviation of the weight for any wheel on the car on the even side of the car.

    weightStdOdd

Largest standard deviation of the weight for any wheel on the car on the odd side of the car.

    frontRearBalance

Quotient between the weight on the front and the rear half of the car.

    evenOddBalance

Quotient between the total weight of the axles on the even and the odd side of the car.

    isOverload

True if weight > tareWeight + (overloadLimit for the car type)

    isUnreliable

True if axleInconsistentCount > 0.

    uuid

Unique id for the car type.

    isLocomotive

True if the car type is a locomotive.

    length

Length of the car type, in metres.

    tareWeight

Tare weight of the car type, in metric tonnes.

    axleUnevenLoadCount

Number of axles on the car where isUnevenLoad is true.

    axleOverloadCount

Number of axles on the car where isOverload is true.

    wheelDefectCount

Number of wheels on the car where isDefectEven/Odd is true.

    axleCount

Number of axles on the car type.

    name

Name of the car type.

    speed

Speed of the car, computed as the average speed of its’ axles, in m/s.

    weight

Weight of the car, calculated as the sum of the weight of the axles, in metric tonnes.

    weightStdEven

Largest standard deviation of the weight for any wheel on the car on the even side of the car.

    weightStdOdd

Largest standard deviation of the weight for any wheel on the car on the odd side of the car.

    frontRearBalance

Quotient between the weight on the front and the rear half of the car.

    evenOddBalance

Quotient between the total weight of the axles on the even and the odd side of the car.

    isOverload

True if weight > tareWeight + (overloadLimit for the car type)

    isUnreliable

True if axleInconsistentCount > 0.

    uuid

Unique id for the car type.

    isLocomotive

True if the car type is a locomotive.

    length

Length of the car type, in metres.

    tareWeight

Tare weight of the car type, in metric tonnes.

    axleUnevenLoadCount

Number of axles on the car where isUnevenLoad is true.

    axleOverloadCount

Number of axles on the car where isOverload is true.

    wheelDefectCount

Number of wheels on the car where isDefectEven/Odd is true.

    axleCount

Number of axles on the car type.