Skip to content

Commit 3112a51

Browse files
committed
Add supply reservoir simulation
1 parent 659396e commit 3112a51

File tree

7 files changed

+136
-19
lines changed

7 files changed

+136
-19
lines changed

Source/Documentation/Manual/physics.rst

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2361,9 +2361,6 @@ be about 1 minute for every 12 cars. If the *Brake Pipe Charging Rate*
23612361
will be disabled and will also disable some but not all of the other new
23622362
brake features.
23632363

2364-
Brake system charging time depends on the train length as it should, but
2365-
at the moment there is no modeling of main reservoirs and compressors.
2366-
23672364
For EP brakes, two variants are available:
23682365

23692366
- If ``Wagon(ORTSEPBrakeControlsBrakePipe`` is set to 0 (default situation),
@@ -3071,6 +3068,9 @@ MaxAuxilaryChargingRate and EmergencyResChargingRate.
30713068
single: ORTSBrakePipeTimeFactor
30723069
single: ORTSEPBrakeControlsBrakePipe
30733070
single: ORTSCompressorIsMuControlled
3071+
single: Supply_Reservoir
3072+
single: ORTSSupplyResCapacity
3073+
single: ORTSSupplyResChargingRate
30743074

30753075
- ``Wagon(BrakePipeVolume`` -- Volume of car's brake pipe in cubic feet
30763076
(default .5).
@@ -3105,7 +3105,9 @@ MaxAuxilaryChargingRate and EmergencyResChargingRate.
31053105
during release. Remains active until aux res has recharged.
31063106
- ``Wagon(ORTSMainResPipeAuxResCharging`` -- Boolean value that indicates,
31073107
for twin pipe systems, if the main reservoir pipe is used for charging the auxiliary
3108-
reservoirs. If set to false, the main reservoir pipe will not be used
3108+
reservoirs. Alternately, if equipped with a supply reservoir, the supply reservoir
3109+
will charge from the main reservoir pipe instead. If set to false, the main reservoir
3110+
pipe will not be used (default: true).
31093111
by the brake system.
31103112
- ``Wagon(ORTSEPBrakeControlsBrakePipe`` -- Set to 1 for UIC EP brake: brake pipe
31113113
pressure is electrically controlled at every fitted car.
@@ -3177,6 +3179,16 @@ MaxAuxilaryChargingRate and EmergencyResChargingRate.
31773179
- ``Wagon(ORTSCylinderSpringPressure`` -- Below the specified pressure, no
31783180
brake force will be developed, simulating the pressure required to
31793181
overcome the brake cylinder return spring (default 0).
3182+
- ``BrakeEquipmentType(Supply_Reservoir`` -- Adds a supply reservoir to the
3183+
loco or wagon, which will constantly charge to the brake pipe pressure
3184+
or MR pipe (if equipped) pressure. If a supply reservoir is equipped,
3185+
supply res air will be used to pressurize the brake cylinders thru the relay
3186+
valve. This allows for a small, fast charging auxiliary reservoir to
3187+
be used with large brake cylinders.
3188+
- ``Wagon(ORTSSupplyResCapacity`` -- Volume of the supply reservoir. Larger
3189+
volumes relative to the brake cylinder volume allow for more brake applications.
3190+
- ``Wagon(ORTSSupplyResChargingRate`` -- The rate at which the pressure of the
3191+
supply reservoir will increase when charging from the brake pipe or MR pipe.
31803192
- ``Engine(ORTSMainResChargingRate`` -- Rate of main reservoir pressure change
31813193
in psi per second when the compressor is on (default .4).
31823194
- ``Engine(ORTSEngineBrakeReleaseRate`` -- Rate of engine brake pressure

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,8 @@ public bool LargeEjectorSoundOn
338338
{ BrakeSystemComponent.EmergencyReservoir, PressureUnit.None },
339339
{ BrakeSystemComponent.MainPipe, PressureUnit.None },
340340
{ BrakeSystemComponent.BrakePipe, PressureUnit.None },
341-
{ BrakeSystemComponent.BrakeCylinder, PressureUnit.None }
341+
{ BrakeSystemComponent.BrakeCylinder, PressureUnit.None },
342+
{ BrakeSystemComponent.SupplyReservoir, PressureUnit.None }
342343
};
343344

344345
protected float OdometerResetPositionM = 0;
@@ -732,6 +733,7 @@ protected void GetPressureUnit()
732733
BrakeSystemPressureUnits[BrakeSystemComponent.MainPipe] = BrakeSystemPressureUnits[BrakeSystemComponent.MainReservoir]; // Main Pipe is supplied by Main Reservoir
733734
BrakeSystemPressureUnits[BrakeSystemComponent.AuxiliaryReservoir] = BrakeSystemPressureUnits[BrakeSystemComponent.BrakePipe]; // Auxiliary Reservoir is supplied by Brake Pipe (in single pipe brakes)
734735
BrakeSystemPressureUnits[BrakeSystemComponent.EmergencyReservoir] = BrakeSystemPressureUnits[BrakeSystemComponent.BrakePipe]; // Emergency Reservoir is supplied by Brake Pipe
736+
BrakeSystemPressureUnits[BrakeSystemComponent.SupplyReservoir] = BrakeSystemPressureUnits[BrakeSystemComponent.BrakePipe]; // Supply Reservoir is supplied by Brake Pipe and MR Pipe
735737

736738
foreach (BrakeSystemComponent component in BrakeSystemPressureUnits.Keys.ToList())
737739
{

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,11 @@ public enum BrakeValveType
276276
/// </summary>
277277
public bool AuxiliaryReservoirPresent;
278278

279+
/// <summary>
280+
/// Indicates whether an additional supply reservoir is present on the wagon or not.
281+
/// </summary>
282+
public bool SupplyReservoirPresent;
283+
279284
/// <summary>
280285
/// Active locomotive for a control trailer
281286
/// </summary>
@@ -1292,6 +1297,9 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
12921297
case "manual_brake": ManualBrakePresent = true; break;
12931298
case "retainer_3_position": RetainerPositions = 3; break;
12941299
case "retainer_4_position": RetainerPositions = 4; break;
1300+
case "supply_reservoir":
1301+
SupplyReservoirPresent = true;
1302+
break;
12951303
}
12961304
}
12971305
break;
@@ -1641,6 +1649,7 @@ public virtual void Copy(MSTSWagon copy)
16411649
HandBrakePresent = copy.HandBrakePresent;
16421650
ManualBrakePresent = copy.ManualBrakePresent;
16431651
AuxiliaryReservoirPresent = copy.AuxiliaryReservoirPresent;
1652+
SupplyReservoirPresent = copy.SupplyReservoirPresent;
16441653
RetainerPositions = copy.RetainerPositions;
16451654
InteriorShapeFileName = copy.InteriorShapeFileName;
16461655
InteriorSoundFileName = copy.InteriorSoundFileName;

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/Brakes/BrakeSystem.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ public enum BrakeSystemComponent
2929
EmergencyReservoir,
3030
MainPipe,
3131
BrakePipe,
32-
BrakeCylinder
32+
BrakeCylinder,
33+
SupplyReservoir
3334
}
3435

3536
public abstract class BrakeSystem

0 commit comments

Comments
 (0)