Expand description
A centreline carrying a roll about its tangent: cant, bank angle and the point the section rotates about.
A track is authored as three independent laws over plan distance: the
plan, the vertical profile (Elevated3), and a cant law giving how far
one rail head stands above the other. Banked3 pairs the first two
with the third, so the section frame an object is placed by is part of
the curve value instead of something every consumer re-derives.
§The laws
CantLaw is a run of CantPieces laid end to end from plan distance
zero. Each piece is written in its OWN normalised coordinate
xi = s / length, s being the distance into the piece, because that is
how transition forms are tabulated: a Bloss transition is
D1 + dD (3 - 2 xi) xi^2 whatever its length. The forms (CantForm)
give the cant D directly (polynomial in xi, half-cosine, sine), or the
bank angle psi directly (the seventh-degree Viennese bend). A law value
says which it is (CantValue).
The rail-head distance b relates them: psi = asin(D / b) and
D = b sin(psi). A cant larger than b has no bank angle and is refused
by name (BankError::CantExceedsRailHeadDistance), never clamped.
The pivot law e(d) is a second CantLaw of height pieces: the
elevation of the point the section rotates about above the profile. Zero
rotates about the centreline, D / 2 (for a left-high cant) about the
low rail. The banked curve’s point is base(d) + e(d) z.
§Rotation about a held rail
A pivot piece may instead be CantForm::AboutRail (#279): the section
rotates about one rail head, which keeps its height e0 above the
profile while the other moves by the cant. Its elevation is DERIVED from
the cant law at the same plan distance,
e(d) = e0 + s (b / 2) sin(psi(d)) = e0 + s D(d) / 2, with s = +1
about the right rail and -1 about the left, whether the cant law
gives D or psi (D = b sin(psi)). So a Viennese bend, whose law is
a polynomial in the bank angle, rotates about its low rail exactly,
with rate e' = s (b / 2) cos(psi) psi'. Under
BankConvention::VerticalRise the held rail head then stands exactly
e0 above the profile at every station, on any grade; under
BankConvention::TangentRotation it does on level track, and drifts
by (D / 2)(1 - cos theta) where the point path climbs at angle
theta. A held-rail piece has no value of its own, so it belongs in a
pivot law only (BankError::RailInCant).
§Positive cant raises the LEFT rail
D is the left rail head’s height minus the right one’s, left being
the side to the left of the direction of travel along the plan. A
positive bank angle rolls the section anticlockwise seen from behind.
§Two conventions, named, never defaulted
On a grade, “the rail heads differ by D” is ambiguous, and the
difference is systematic, not noise. BankConvention names the two
readings and a Banked3 carries one; there is no default (ADR 0081).
With t the unit tangent of the banked curve, theta its grade angle,
n the horizontal left normal and u = t x n (the up direction square
to the tangent), the section is rolled about t by an angle rho:
lateral l = cos(rho) n + sin(rho) u, section up
v = -sin(rho) n + cos(rho) u. Both frames are exactly orthonormal and
the rail heads lie b apart along l in the plane square to t.
BankConvention::TangentRotation:rho = psi = asin(D / b). The cross-section is the nominal level-track section turned about the tangent. The rail heads then differ in height byD cos(theta).BankConvention::VerticalRise:rho = asin(D / (b cos theta)), the one roll for which the rail heads differ in height by exactlyD. Refused when|D| > b cos(theta).
The rises differ by D (1 - cos theta): 1.9994e-4 D at a 2% grade,
0.03 mm on a 150 mm cant. On level track the two agree exactly.
Structs§
- Banked3
- A centreline with a roll law: the composition a canted track is authored as. See the module docs.
- CantLaw
- A scalar law over plan distance: pieces laid end to end from zero.
- Cant
Piece - One piece of a
CantLaw: a form over a plan length.
Enums§
- Bank
Convention - Which height difference a cant
Dstates on a grade (ADR 0081). - Bank
Error - Why a banked curve has no section at a station.
- Cant
Form - The shape of one cant piece over its own
xi = s / lengthin[0, 1]. - Cant
Value - What a cant law gives at a station: a cant height or a bank angle.
- Rail
Side - A rail head of a canted track, left or right of the direction of travel along the plan.
Functions§
- bank_
angle - The nominal bank angle
psi = asin(D / b).