From railML 2 Wiki
Revision as of 15:40, 14 October 2022 by RailML Coord Documentation (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This template contains swapped content from page Template:InheritSegmentTable

Why is this necessary?

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:propulsion power="5200000" id="r003" powerType="electric">
				<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 segmentStartValue="78">
						<rail:values coefficentValue="720098"/>
						<rail:values coefficentValue="-8095.9"/>
						<rail:values coefficentValue="30.19"/>
					<rail:valueLine segmentStartValue="100">
						<rail:values coefficentValue="582600"/>
						<rail:values coefficentValue="-5312"/>
						<rail:values coefficentValue="16.1"/>
					<rail:valueLine segmentStartValue="120">
						<rail:values coefficentValue="461478"/>
						<rail:values coefficentValue="-3319"/>
						<rail:values coefficentValue="7.9"/>
					<rail:valueLine segmentStartValue="160">
						<rail:values coefficentValue="356950"/>
						<rail:values coefficentValue="-1991.2"/>
						<rail:values coefficentValue="3.69"/>
					<rail:valueLine segmentStartValue="200">
						<rail:values coefficentValue="304170"/>
						<rail:values coefficentValue="-1450.9"/>
						<rail:values coefficentValue="2.31"/>

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.