Skip to content

Commit 7d8b074

Browse files
committed
Use tractive force in diesel engines
1 parent 8e37638 commit 7d8b074

File tree

4 files changed

+15
-13
lines changed

4 files changed

+15
-13
lines changed

Source/Orts.Simulation/Simulation/RollingStocks/MSTSLocomotive.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2263,7 +2263,7 @@ public override void Update(float elapsedClockSeconds)
22632263
UpdateHornAndBell(elapsedClockSeconds);
22642264

22652265
UpdateSoundVariables(elapsedClockSeconds);
2266-
PrevMotiveForceN = MotiveForceN;
2266+
PrevTractiveForceN = MotiveForceN;
22672267
base.Update(elapsedClockSeconds);
22682268

22692269
#if DEBUG_ADHESION

Source/Orts.Simulation/Simulation/RollingStocks/MSTSSteamLocomotive.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6284,10 +6284,7 @@ protected override void UpdateTractiveForce(float elapsedClockSeconds, float loc
62846284
{
62856285
absStartTractiveEffortN = Math.Abs(TractiveForceN); // update to new maximum TE
62866286
}
6287-
}
6288-
6289-
MotiveForceSmoothN.Update(elapsedClockSeconds, MotiveForceN);
6290-
MotiveForceSmoothedN = MotiveForceSmoothN.SmoothedValue;
6287+
}
62916288
if (float.IsNaN(MotiveForceN))
62926289
MotiveForceN = 0;
62936290

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerSupplies/DieselEngine.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,12 +1039,12 @@ public void Update(float elapsedClockSeconds)
10391039
DemandedThrottlePercent = Math.Max(DemandedThrottlePercent, ReverseThrottleRPMTab[Locomotive.DieselPowerSupply.DieselEngineMinRpm]);
10401040

10411041
if (Locomotive.Direction == Direction.Reverse)
1042-
Locomotive.PrevMotiveForceN *= -1f;
1042+
Locomotive.PrevTractiveForceN *= -1f;
10431043

10441044
if ((State == DieselEngineState.Running) && (Locomotive.ThrottlePercent > 0))
10451045
{
1046-
var abstempMotiveForce = Math.Abs(Locomotive.PrevMotiveForceN);
1047-
OutputPowerW = ( abstempMotiveForce > 0 ? abstempMotiveForce * Locomotive.AbsSpeedMpS : 0) / Locomotive.DieselEngines.NumOfActiveEngines;
1046+
var abstempTractiveForce = Math.Abs(Locomotive.PrevTractiveForceN);
1047+
OutputPowerW = ( abstempTractiveForce > 0 ? abstempTractiveForce * Locomotive.AbsSpeedMpS : 0) / Locomotive.DieselEngines.NumOfActiveEngines;
10481048
}
10491049
else
10501050
{

Source/Orts.Simulation/Simulation/RollingStocks/TrainCar.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -548,11 +548,16 @@ public Direction Direction
548548
public float PreviousSteamBrakeCylinderPressurePSI;
549549

550550
// TrainCar.Update() must set these variables
551-
public float MotiveForceN; // ie motor power in Newtons - signed relative to direction of car -
552-
public float TractiveForceN = 0f; // Raw tractive force for electric sound variable2
553-
public SmoothedData MotiveForceSmoothN = new SmoothedData(0.5f);
554-
public float MotiveForceSmoothedN;
555-
public float PrevMotiveForceN;
551+
/// <summary>
552+
/// Force transmitted to rail, excluding brake force
553+
/// Adhesion-corrected tractive force
554+
/// </summary>
555+
public float MotiveForceN;
556+
/// <summary>
557+
/// Tractive force generated by the engine(s)
558+
/// </summary>
559+
public float TractiveForceN = 0f;
560+
public float PrevTractiveForceN;
556561
// Gravity forces have negative values on rising grade.
557562
// This means they have the same sense as the motive forces and will push the train downhill.
558563
public float GravityForceN; // Newtons - signed relative to direction of car.

0 commit comments

Comments
 (0)