Skip to content

Commit

Permalink
Further tuning of derailment capability.
Browse files Browse the repository at this point in the history
  • Loading branch information
peternewell committed Oct 21, 2021
1 parent 918960c commit 0e9a259
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
2 changes: 1 addition & 1 deletion Source/Documentation/Manual/physics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4499,7 +4499,7 @@ Open Rails calculates when it is likely that a train derailment has occurred. Th
when the train is in a curve. Light (empty wagons) can sometimes derail due to 'string lining' where the train forces attempt to pull the train
in a straight line, rather then following the curve.

OR calculates the Nadal Critera for each wagon, and then calculates the actual L/V ratio based upon the wagon weight and the relevant
OR calculates the Nadal Criteria for each wagon, and then calculates the actual L/V ratio based upon the wagon weight and the relevant
"in train" forces. Open Rails uses some calculated default parameters for the various parameters required to determine the actual L/V
ratio, however more accurate results will be obtained if actual parameters are entered into the ENG or WAG file. The derailment calculations
use information relating to the wagon dimensions, weight and wheel profile information.
Expand Down
16 changes: 9 additions & 7 deletions Source/Orts.Simulation/Simulation/RollingStocks/TrainCar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1197,7 +1197,7 @@ public virtual void UpdateTunnelForce()
/// these factors is not practical so only some of the key factors are considered. For eaxmple, wheel wear may determine whether a particular car will derial or not. So the same
/// type of car can either derail or not under similar circumstances.
///
/// Hence these calculations provide a "generic" approach to determining whether a car will derial or not.
/// Hence these calculations provide a "generic" approach to determining whether a car will derail or not.
///
/// Buff Coupler angle calculated from this publication: In-Train Force Limit Study by National Research Council Canada
///
Expand Down Expand Up @@ -1578,16 +1578,18 @@ public void UpdateTrainDerailmentRisk(float elapsedClockSeconds)
DerailmentCoefficient = TotalWagonLateralDerailForceN / TotalWagonVerticalDerailForceN;

// use the dynamic multiplication coefficient to calculate final derailment coefficient, the above method calculated using quasi-static factors.
// The quasi-static do not include allowance for wheel unloading due to static carbody pitch. Hence the following factors have been used to adjust to dynamic effects.
// They have been adjusted slightly based upon derailment accident reports. Original figures quoted were 2 x for standard curves, and 3.1 x for turnouts.
if (IsOverJunction())
// The differences between quasi-static and dynamic limits are due to effects of creepage, curve, conicity, wheel unloading ratio, track geometry,
// car configurations and the share of wheel load changes which are not taken into account in the static analysis etc.
// Hence the following factors have been used to adjust to dynamic effects.
// Original figures quoted - Static Draft = 0.389, Static Buff = 0.389, Dynamic Draft = 0.29, Dynamic Buff = 0.22.
// Hence use the following multiplication factors, Buff = 1.77, Draft = 1.34.
if (CouplerForceU > 0 && CouplerSlackM < 0)
{
DerailmentCoefficient *= 2.17f;
DerailmentCoefficient *= 1.77f; // coupler in buff condition
}
else
{
// DerailmentCoefficient *= 1.4f;
DerailmentCoefficient *= 2.0f;
DerailmentCoefficient *= 1.34f;
}

var wagonAdhesion = Train.WagonCoefficientFriction;
Expand Down

0 comments on commit 0e9a259

Please sign in to comment.