Skip to content

Commit 897fb9e

Browse files
authored
Merge pull request #616 from cesarBLG/triple-valve-twin-pipe
Improvements in graduated/full release braking
2 parents dd3cd2d + c8250ef commit 897fb9e

File tree

4 files changed

+105
-95
lines changed

4 files changed

+105
-95
lines changed

Source/Documentation/Manual/physics.rst

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2264,24 +2264,8 @@ The operation of air single-pipe brakes is described in general below.
22642264

22652265
The auxiliary reservoir needs to be charged by the brake pipe and,
22662266
depending on the WAG file parameters setting, this can delay the brake
2267-
release. When the *Graduated Release Air Brakes* box is not checked, the
2268-
auxiliary reservoir is also charged by the emergency reservoir (until
2269-
both are equal and then both are charged from the pipe). When the
2270-
*Graduated Release Air Brakes* box is checked, the auxiliary reservoir is
2271-
only charged from the brake pipe. The Open Rails software implements it
2272-
this way because the emergency reservoir is used as the source of the
2273-
reference pressure for regulating the brake cylinder pressure.
2274-
2275-
The end result is that you will get a slower release when the *Graduated
2276-
Release Air Brakes* box is checked. This should not be an issue with two
2277-
pipe air brake systems because the second pipe can be the source of air
2278-
for charging the auxiliary reservoirs.
2279-
2280-
Open Rails software has modeled most of this graduated release car brake
2281-
behavior based on the 26F control valve, but this valve is designed for
2282-
use on locomotives. The valve uses a control reservoir to maintain the
2283-
reference pressure and Open Rails software simply replaced the control
2284-
reservoir with the emergency reservoir.
2267+
release. The auxiliary reservoir is also charged by the emergency reservoir (until
2268+
both are equal and then both are charged from the pipe).
22852269

22862270
Increasing the :ref:`Brake Pipe Charging Rate <options-brake-pipe-charging>`
22872271
(psi/s) value controls the charging rate. Increasing the value will reduce the
@@ -3063,6 +3047,8 @@ MaxAuxilaryChargingRate and EmergencyResChargingRate.
30633047

30643048
.. index::
30653049
single: BrakePipeVolume
3050+
single: ORTSEmergencyValveActuationRate
3051+
single: ORTSMainResPipeAuxResCharging
30663052
single: ORTSMainResChargingRate
30673053
single: ORTSEngineBrakeReleaseRate
30683054
single: ORTSEngineBrakeApplicationRate
@@ -3084,6 +3070,14 @@ MaxAuxilaryChargingRate and EmergencyResChargingRate.
30843070
brake servicetimefactor instead, but the Open Rails Development team
30853071
doesn't believe this is worth the effort by the user for the added
30863072
realism.
3073+
- ``Wagon(ORTSEmergencyValveActuationRate`` -- Threshold rate for emergency
3074+
brake actuation of the triple valve. If the pressure in the brake pipe
3075+
decreases at a higher rate than specified, the triple valve will switch to
3076+
emergency mode.
3077+
- ``Wagon(ORTSMainResPipeAuxResCharging`` -- Boolean value that indicates,
3078+
for twin pipe systems, if the main reservoir pipe is used for charging the auxiliary
3079+
reservoirs. If set to false, the main reservoir pipe will not be used
3080+
by the brake system.
30873081
- ``Engine(ORTSMainResChargingRate`` -- Rate of main reservoir pressure change
30883082
in psi per second when the compressor is on (default .4).
30893083
- ``Engine(ORTSEngineBrakeReleaseRate`` -- Rate of engine brake pressure

Source/Orts.Simulation/Simulation/RollingStocks/MSTSWagon.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,16 @@ public class MSTSWagon : TrainCar
222222
/// True if vehicle is equipped with an additional emergency brake reservoir
223223
/// </summary>
224224
public bool EmergencyReservoirPresent;
225+
public enum BrakeValveType
226+
{
227+
None,
228+
TripleValve, // Plain triple valve
229+
Distributor, // Triple valve with graduated release
230+
}
225231
/// <summary>
226-
/// True if triple valve is capable of releasing brake gradually
232+
/// Type of brake valve in the car
227233
/// </summary>
228-
public bool DistributorPresent;
234+
public BrakeValveType BrakeValve;
229235
/// <summary>
230236
/// True if equipped with handbrake. (Not common for older steam locomotives.)
231237
/// </summary>
@@ -1151,11 +1157,15 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
11511157
{
11521158
switch (equipment)
11531159
{
1160+
case "triple_valve": BrakeValve = BrakeValveType.TripleValve; break;
11541161
case "distributor":
1155-
case "graduated_release_triple_valve": DistributorPresent = true; break;
1162+
case "graduated_release_triple_valve": BrakeValve = BrakeValveType.Distributor; break;
11561163
case "emergency_brake_reservoir": EmergencyReservoirPresent = true; break;
11571164
case "handbrake": HandBrakePresent = true; break;
1158-
case "auxiliary_reservoir": AuxiliaryReservoirPresent = true; break;
1165+
case "auxilary_reservoir": // MSTS legacy parameter - use is discouraged
1166+
case "auxiliary_reservoir":
1167+
AuxiliaryReservoirPresent = true;
1168+
break;
11591169
case "manual_brake": ManualBrakePresent = true; break;
11601170
case "retainer_3_position": RetainerPositions = 3; break;
11611171
case "retainer_4_position": RetainerPositions = 4; break;
@@ -1550,7 +1560,7 @@ public virtual void Copy(MSTSWagon copy)
15501560
CarBrakeSystemType = copy.CarBrakeSystemType;
15511561
BrakeSystem = MSTSBrakeSystem.Create(CarBrakeSystemType, this);
15521562
EmergencyReservoirPresent = copy.EmergencyReservoirPresent;
1553-
DistributorPresent = copy.DistributorPresent;
1563+
BrakeValve = copy.BrakeValve;
15541564
HandBrakePresent = copy.HandBrakePresent;
15551565
ManualBrakePresent = copy.ManualBrakePresent;
15561566
AuxiliaryReservoirPresent = copy.AuxiliaryReservoirPresent;

0 commit comments

Comments
 (0)