RS:segmentTable brakeVehicleEfficiency

From railML 2 Wiki
Jump to navigation Jump to search


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

Position of segmentTable in the XML-Tree / Position von segmentTable im XML-Baum

Multiplicity / Anzahl

[0..1]

Semantics / Bedeutung

The element <segmentTable> provides a flexible mechanism for description of segments of arbitrary curves y = f(x) in railML®. In contrast to the <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 <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.

SegmentTable.png

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 <segmentTable> bietet die flexible Möglichkeit beliebige Kurvenabschnitte für y = f(x) zu beschreiben. Im Gegensatz zur <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 <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 <segmentTable>.
  • segmentStartValueUnit: This is the unit used for the values of the x-coordinate in the <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 <segmentTable>.
  • functionValueUnit: This is the unit used for the values of the y-coordinate in the <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 <segmentTable> is optional as alternative to <valueTable> in order to describe any curve.

Best practice & Examples / Empfohlene Anwendung & Beispiele

View/edit list on the separate source page.


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:

SegmentTable04.jpg

tabular representation of curves:

SegmentTable01.jpg

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:columnHeader exponentValue="0"/>
					<rail:columnHeader exponentValue="1"/>
					<rail:columnHeader exponentValue="2"/>
					<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.

SegmentTable.png

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.