Skip to content

Commit e5d0fbb

Browse files
authored
Merge pull request #914 from peternewell/Steam-Effects#1
Adjustments to Duplex steam
2 parents e0bf062 + 2ffadd6 commit e5d0fbb

File tree

12 files changed

+1139
-167
lines changed

12 files changed

+1139
-167
lines changed

Source/Documentation/Manual/physics.rst

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4401,6 +4401,81 @@ drag constants are used in calculating the still air resistance, then it might b
44014401
inputting these values.
44024402

44034403

4404+
.. _physics-track-sanding:
4405+
4406+
Track Sanding
4407+
=============
4408+
4409+
Sanding of the track is required at times to increase the wheel adhesion.
4410+
4411+
Open Rails supports air and steam operated track sanders which consume air or steam and sand. Typically
4412+
OR has standard defaults which it uses to allow track sanding to operate, however if the user knows the
4413+
actual values for the locomotive that they are modelling then they can override these values by entering
4414+
the following parameters in the engine section of the ENG file. Note - if values are not known then it is
4415+
highly recommended that the default values be used.
4416+
4417+
When using any of the following parameters, the sanding system type needs to be set by allocating either "Steam" or
4418+
"Air" to the ``SandingSystemType`` ( x ) parameter in engine section of file.
4419+
4420+
**Steam Consumption**
4421+
4422+
``ORTSMaxTrackSanderSteamConsumptionForward`` - total steam consumption for all sanders when traveling in
4423+
forward direction, ie in front of wheel.
4424+
4425+
``ORTSMaxTrackSanderSteamConsumptionForward`` - total steam consumption for all sanders when traveling in
4426+
reverse direction, ie behind wheel. Note, = 0 when not used.
4427+
4428+
All steam consumption parameters are in lbs/sec.
4429+
4430+
For steam sanding there will be a visible presence of steam when the sander is operated, this steam effect
4431+
can be added by using one or both of the following aparmeters.
4432+
4433+
``SanderSteamExhaustForwardFX`` - steam effect when travelling forward, ie in front of wheel.
4434+
4435+
``SanderSteamExhaustReverseFX`` - steam effect when travelling in reverse, ie in behind the wheel.
4436+
4437+
**Air Consumption**
4438+
4439+
``ORTSMaxTrackSanderAirConsumptionForward`` - total air consumption for all sanders when traveling in reverse
4440+
direction, ie behind wheel. Note, = 0 when not used.
4441+
4442+
``ORTSMaxTrackSanderAirConsumptionForward`` - total air consumption for all sanders when traveling in forward
4443+
direction, ie in front of wheel.
4444+
4445+
All air consumption parameters are in cuft/sec.
4446+
4447+
**Sand Consumption**
4448+
4449+
``ORTSMaxTrackSanderSandConsumptionForward`` - total sand consumption for all sanders when traveling in forward
4450+
direction, ie in front of wheel.
4451+
4452+
``ORTSMaxTrackSanderSandConsumptionReverse`` - total sand consumption for all sanders when traveling in reverse
4453+
direction, ie behind wheel. Note, = 0 when not used.
4454+
4455+
All sand consumption parameters are in cuft/sec.
4456+
4457+
.. _physics-hammer-blow:
4458+
4459+
Hammer Blow
4460+
===========
4461+
4462+
Hammer blow is as a result of the weights added to the wheels (eg connecting and reciprocating rods) of a steam
4463+
engine. The Excess (or Over) Balance weight was the weight that contributed to the hammer blow of the wheel, and it
4464+
increased typically with the square of the wheel speed.
4465+
4466+
When the hammer force exceeded the weight on the wheel it was possible for the wheel to lift off the rails, this
4467+
created a "hammering effect" on the rails, which could damage track and other infrastructure such as bridges.
4468+
4469+
The Hammer force is recorded in the HuD for the steam locomotive, and it will be in white text when "normal",
4470+
yellow text when within 10% of the point where the wheel will start to lift off the track, and red when the wheel
4471+
is lifting off the track.
4472+
4473+
As a result of high hammer forces, some locomotives were speed restricted to prevent excessive damage to track
4474+
infrastructure.
4475+
4476+
OR will use default values to set this feature up. If the Excess (or Over) Balance weight is known for a locomotive
4477+
it can be entered using ``ExcessRodBalance``, as a mass value.
4478+
44044479
.. _physics-trailing-locomotive-resistance:
44054480

44064481
Trailing Locomotive Resistance

Source/ORTS.Common/Conversions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -732,6 +732,12 @@ public static string FormatVolume(float volumeM3, bool isMetric)
732732
return String.Format(CultureInfo.CurrentCulture, "{0:F0} {1}", volume, isMetric ? m3 : ft3);
733733
}
734734

735+
public static string FormatSmallVolume(float volumeM3, bool isMetric)
736+
{
737+
var volume = isMetric ? volumeM3 : Me3.ToFt3(volumeM3);
738+
return String.Format(CultureInfo.CurrentCulture, "{0:N3} {1}", volume, isMetric ? m3 : ft3);
739+
}
740+
735741
public static string FormatFuelVolume(float volumeL, bool isMetric, bool isUK)
736742
{
737743
var volume = isMetric ? volumeL : isUK ? L.ToGUK(volumeL) : L.ToGUS(volumeL);

Source/Orts.Simulation/Simulation/Physics/Train.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ public TrainCar LastCar
155155

156156
public bool IsWheelSlipWarninq;
157157
public bool IsWheelSlip;
158+
public bool HuDIsWheelSlipWarninq;
159+
public bool HuDIsWheelSlip;
158160
public bool IsBrakeSkid;
159161

160162
public bool HotBoxSetOnTrain = false;
@@ -1953,6 +1955,8 @@ public virtual void physicsUpdate(float elapsedClockSeconds)
19531955

19541956
bool whlslp = false;
19551957
bool whlslpwrn = false;
1958+
bool hudwhlslp = false;
1959+
bool hudwhlslpwrn = false;
19561960
bool whlskd = false;
19571961

19581962
TrainCar uncoupleBehindCar = null;
@@ -1979,6 +1983,12 @@ public virtual void physicsUpdate(float elapsedClockSeconds)
19791983
whlslp = true;
19801984
if (car.WheelSlipWarning)
19811985
whlslpwrn = true;
1986+
1987+
if (car.HuDIsWheelSlip)
1988+
hudwhlslp = true;
1989+
if (car.HuDIsWheelSlipWarninq)
1990+
hudwhlslpwrn = true;
1991+
19821992
if (car.BrakeSkid)
19831993
{
19841994
whlskd = true;
@@ -2011,6 +2021,10 @@ public virtual void physicsUpdate(float elapsedClockSeconds)
20112021

20122022
IsWheelSlip = whlslp;
20132023
IsWheelSlipWarninq = whlslpwrn;
2024+
2025+
HuDIsWheelSlip = hudwhlslp;
2026+
HuDIsWheelSlipWarninq = hudwhlslpwrn;
2027+
20142028
IsBrakeSkid = whlskd;
20152029

20162030
// Coupler breaker

0 commit comments

Comments
 (0)