Skip to main content

Module banked

Module banked 

Source
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 by D cos(theta).
  • BankConvention::VerticalRise: rho = asin(D / (b cos theta)), the one roll for which the rail heads differ in height by exactly D. 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.
CantPiece
One piece of a CantLaw: a form over a plan length.

Enums§

BankConvention
Which height difference a cant D states on a grade (ADR 0081).
BankError
Why a banked curve has no section at a station.
CantForm
The shape of one cant piece over its own xi = s / length in [0, 1].
CantValue
What a cant law gives at a station: a cant height or a bank angle.
RailSide
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).