RS:segmentTable efficiency gear

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.

Schema 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.

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.

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.