# RS:segmentTable decelerationTable trainBrakeOperation

segmentTable

 đź’ˇ (introduced with version 2.5)This element was introduced with version 2.5.Dieses Element wurde mit Version 2.5 eingefĂĽhrt.

## Scheme description / Schemenbeschreibung

### Semantics / Bedeutung

The element <[[RS:segmentTable_<decelerationTable>|segmentTable]]> provides a flexible mechanism for description of segments of arbitrary curves y = f(x) in railMLÂ®. In contrast to the <[[RS:valueTable_<decelerationTable>|valueTable]]> not particular points of the curve are defined but segments of a function representing the curve. The function used for modelling these curves is a polynomial expression of various order. Thus each line within this table has to be used as a recipe to build up the polynomial.

The table consist of the informative details of name and unit of each coordinate within the related attributes of the element <[[RS:segmentTable_<decelerationTable>|segmentTable]]>. The <columnHeader> takes the exponent values needed for the polynomial. The corresponding values in the <valueLine> represent the coefficients to be multiplied with. For a particular x-value the resulting P(x) can be calculated by this formula.

According the normal conventions 'x' means the independent variable. 'y' is direct dependent on 'x' and conforms to y = f(x). 'i' is the exponent used for the order of 'x', i.e. x^i.

The segmentStartValue in each <valueLine> gives the lower limit of the interval the segment is valid for. The upper limit is the next higher segmentStartValue or the maximum value given elsewhere.

Das Element <[[RS:segmentTable_<decelerationTable>|segmentTable]]> bietet die flexible MĂ¶glichkeit beliebige Kurvenabschnitte fĂĽr y = f(x) zu beschreiben. Im Gegensatz zur <[[RS:valueTable_<decelerationTable>|valueTable]]> werden dabei nicht einzelne Datenpunkte sondern eine Funktion spezifiziert. Als Funktion wird dabei auf ein Polynom beliebiger Ordnung zurĂĽck gegriffen, um die Kurvenabschnitte zu modellieren. Somit stellt jede Zeile in dieser Tabelle das Rezept fĂĽr die Polynomgleichung dar.

Die Tabelle besteht aus der informativen Angabe von Name und Einheit der jeweiligen Koordinate in den Attributen dieses Elements <[[RS:segmentTable_<decelerationTable>|segmentTable]]>. Das Unterelement <columnHeader> nimmt die Koeffizienten fĂĽr den Polynom auf. Die eigentlichen Werte in den einzelnen Unterelementen <valueLine> sind die zugehĂ¶rigen Koeffizienten. Damit kann der Polynom zusammengebaut werden und ein y-Wert fĂĽr jeden x-Wert berechnet werden.

GemĂ¤Ăź der ĂĽblichen Konventionen stellt 'x' die unabhĂ¤ngige Variable dar. 'y' ist der direkt von 'x' abhĂ¤ngige Wert, sodass gilt y = f(x). 'i' ist der Exponent fĂĽr die jeweilige Potenz von 'x', d.h. x^i
(introduced with version 2.5)

### Attributes of segmentTable / Attribute von segmentTable

• segmentStartValueName: This is the descriptive name for the x-coordinate in the <[[RS:segmentTable_<decelerationTable>|segmentTable]]>.
• segmentStartValueUnit: This is the unit used for the values of the x-coordinate in the <[[RS:segmentTable_<decelerationTable>|segmentTable]]>. For scalars the value '1' shall be given. Possible values of physical units are:
• m/s - speed
• km/h - speed
• A - current
• N - force/effort
• Hz - frequney
• % - percentage
• V - voltage
• W - effective power
• VA - apparent power
• Vs - magnetic flux
• 1 - scalar
• other:anything: Any value that does not fit any value from the previous enumeration list, fulfilling the constraint: at minimum two characters, whitespace is not allowed. Please, apply Dev:usingAny accordingly.
• functionValueName: This is the descriptive name for the y-coordinate in the <[[RS:segmentTable_<decelerationTable>|segmentTable]]>.
• functionValueUnit: This is the unit used for the values of the y-coordinate in the <[[RS:segmentTable_<decelerationTable>|segmentTable]]>. For scalars the value '1' shall be given. Possible values of physical units are:
• m/s - speed
• km/h - speed
• A - current
• N - force/effort
• Hz - frequney
• % - percentage
• V - voltage
• W - effective power
• VA - apparent power
• Vs - magnetic flux
• 1 - scalar
• other:anything: Any value that does not fit any value from the previous enumeration list, fulfilling the constraint: at minimum two characters, whitespace is not allowed. Please, apply Dev:usingAny accordingly.

### Syntactic Constraints / Syntaktische BeschrĂ¤nkungen

• segmentStartValueUnit mandatory
• functionValueUnit mandatory

The element <[[RS:segmentTable_<decelerationTable>|segmentTable]]> is optional as alternative to <valueTable> in order to describe any curve.

## Best practice & Examples / Empfohlene Anwendung & Beispiele

This is an example for using the segmentTable for defining a tractive effort curve. The curve is compsed of polynomials per several intervals/segments making the full speed range.

graphical representation of the curve:

tabular representation of curves:

railMLÂ® code:

```<rail:vehicle id="r002" speed="220">
<rail:engine>
<rail:propulsion power="5200000" id="r003" powerType="electric">
<rail:tractiveEffort>
<rail:segmentTable segmentStartValueName="speed" segmentStartValueUnit="km/h" functionValueName="effort" functionValueUnit="N">
<rail:valueLine segmentStartValue="0">
<rail:values coefficentValue="300000"/>
<rail:values coefficentValue="-373.8"/>
<rail:values coefficentValue="0.15"/>
</rail:valueLine>
<rail:valueLine segmentStartValue="78">
<rail:values coefficentValue="720098"/>
<rail:values coefficentValue="-8095.9"/>
<rail:values coefficentValue="30.19"/>
</rail:valueLine>
<rail:valueLine segmentStartValue="100">
<rail:values coefficentValue="582600"/>
<rail:values coefficentValue="-5312"/>
<rail:values coefficentValue="16.1"/>
</rail:valueLine>
<rail:valueLine segmentStartValue="120">
<rail:values coefficentValue="461478"/>
<rail:values coefficentValue="-3319"/>
<rail:values coefficentValue="7.9"/>
</rail:valueLine>
<rail:valueLine segmentStartValue="160">
<rail:values coefficentValue="356950"/>
<rail:values coefficentValue="-1991.2"/>
<rail:values coefficentValue="3.69"/>
</rail:valueLine>
<rail:valueLine segmentStartValue="200">
<rail:values coefficentValue="304170"/>
<rail:values coefficentValue="-1450.9"/>
<rail:values coefficentValue="2.31"/>
</rail:valueLine>
</rail:segmentTable>
</rail:tractiveEffort>
</rail:propulsion>
</rail:engine>
</rail:vehicle>```

The segmentTable allows the definition of arbitrary curves by using polynomials as equivalent for the original function y=f(x) within segments. For the entire table all needed exponents i needs to be specified. If the exponent i is not used for a particular interval the related coefficient ai shall be 0. For each interval the coefficients ai are given per valueLine. The limits of the intervall are definied by the segmentStartValue of that valueLine as the lower (inclusive) limit and the segmentStartValue of the next valueLine as the upper (exclusive) limit. In case there is no next valueLine the maximum is given by other values. In the example the maximum is taken from the speed attribute.

Using this construct of the segmentTable the resulting y-value for each arbitrary x-value can be easily calculated solving the related polynomial.

For the x=110 the polynomial would be 582,600*110^0-5312*110^1+16.1*110^2 = 193,090.

## Notes / Anmerkungen

Not yet described. / Noch nicht beschrieben.

## Open issues / Offene Punkte/Pendenzen

Not yet described. / Noch nicht beschrieben.