You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Source/Orts.Simulation/Simulation/RollingStocks/TrainCar.cs
+83-3Lines changed: 83 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -196,6 +196,14 @@ public static Interpolator SteamHeatBoilerFuelUsageGalukpH()
196
196
publicfloatCarBodyLengthM;
197
197
publicfloatCarCouplerFaceLengthM;
198
198
publicfloatDerailmentCoefficient;
199
+
publicfloatNadalDerailmentCoefficient;
200
+
publicfloatMaximumWheelFlangeAngleRad;
201
+
publicfloatWheelFlangeLengthM;
202
+
publicfloatAngleOfAttackRad;
203
+
publicfloatDerailClimbDistanceM;
204
+
publicboolDerailPossible=false;
205
+
publicboolDerailExpected=false;
206
+
publicfloatDerailElapsedTimeS;
199
207
200
208
publicfloatMaxHandbrakeForceN;
201
209
publicfloatMaxBrakeForceN=89e3f;
@@ -852,7 +860,7 @@ public virtual void Update(float elapsedClockSeconds)
852
860
UpdateCurveForce(elapsedClockSeconds);
853
861
UpdateTunnelForce();
854
862
UpdateBrakeSlideCalculation();
855
-
UpdateTrainDerailmentRisk();
863
+
UpdateTrainDerailmentRisk(elapsedClockSeconds);
856
864
857
865
// acceleration
858
866
if(elapsedClockSeconds>0.0f)
@@ -1173,9 +1181,24 @@ public virtual void UpdateTunnelForce()
1173
1181
///
1174
1182
/// This section calculates the coupler angle behind the current car (ie the rear coupler on this car and the front coupler on the following car. The coupler angle will be used for
1175
1183
/// coupler automation as well as calculating Lateral forces on the car.
1184
+
///
1185
+
/// In addition Chapter 2 - Flange Climb Derailment Criteria of the TRB’s Transit Cooperative Research Program (TCRP) Report 71, examines flange climb derailment criteria for transit
1186
+
/// vehicles that include lateral-to-vertical ratio limits and a corresponding flange-climb-distance limit. The report also includes guidance to transit agencies on wheel and rail
1187
+
/// maintenance practices.
1188
+
///
1189
+
/// Some of the concepts described in this publication have also been used to calculate the derailment likelihood.
1190
+
///
1191
+
/// https://www.nap.edu/read/13841/chapter/4
1192
+
///
1193
+
/// It should be noted that car derailment is a very complex process that is impacted by many diferent factors, including the track structure and train conditions. To model all of
1194
+
/// 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
1195
+
/// type of car can either derail or not under similar circumstances.
1196
+
///
1197
+
/// Hence these calculations provide a "generic" approach to determining whether a car will derial or not.
// Calculate coupler angle when travelling around curve
1181
1204
// To achieve an accurate coupler angle calculation the following length need to be calculated. These values can be included in the ENG/WAG file for greatest accuracy, or alternatively OR will
@@ -1438,14 +1461,71 @@ public void UpdateTrainDerailmentRisk()
@@ -1690,7 +1770,7 @@ public virtual void UpdateCurveSpeedLimit()
1690
1770
}
1691
1771
else
1692
1772
{
1693
-
Simulator.Confirmer.Message(ConfirmLevel.Warning,Simulator.Catalog.GetStringFmt("You are travelling too fast for this curve. Slow down, your passengers in car {0} are feeling uncomfortable. The recommended speed for this curve is {1}",CarID,FormatStrings.FormatSpeedDisplay(MaxSafeCurveSpeedMps,IsMetric)));;
1773
+
Simulator.Confirmer.Message(ConfirmLevel.Warning,Simulator.Catalog.GetStringFmt("You are travelling too fast for this curve. Slow down, your passengers in car {0} are feeling uncomfortable. The recommended speed for this curve is {1}",CarID,FormatStrings.FormatSpeedDisplay(MaxSafeCurveSpeedMps,IsMetric)));
0 commit comments