File tree Expand file tree Collapse file tree 1 file changed +10
-10
lines changed
Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/Brakes/MSTS Expand file tree Collapse file tree 1 file changed +10
-10
lines changed Original file line number Diff line number Diff line change @@ -424,17 +424,8 @@ public override void Update(float elapsedClockSeconds)
424424 }
425425
426426 // triple valve set to release pressure in brake cylinder and EP valve set
427- if ( TripleValveState == ValveState . Release && HoldingValve == ValveState . Release )
427+ if ( TripleValveState == ValveState . Release )
428428 {
429- if ( threshold < RetainerPressureThresholdPSI )
430- threshold = RetainerPressureThresholdPSI ;
431- if ( AutoCylPressurePSI > threshold )
432- {
433- AutoCylPressurePSI -= elapsedClockSeconds * ReleaseRatePSIpS ;
434- if ( AutoCylPressurePSI < threshold )
435- AutoCylPressurePSI = threshold ;
436- }
437-
438429 if ( ( Car as MSTSWagon ) . EmergencyReservoirPresent )
439430 {
440431 if ( AuxResPressurePSI < EmergResPressurePSI && AuxResPressurePSI < BrakeLine1PressurePSI )
@@ -474,6 +465,15 @@ public override void Update(float elapsedClockSeconds)
474465 }
475466 }
476467
468+ // Handle brake release: reduce cylinder pressure if all triple valve, EP holding valve and retainers allow so
469+ float minCylPressurePSI = Math . Max ( threshold , RetainerPressureThresholdPSI ) ;
470+ if ( TripleValveState == ValveState . Release && HoldingValve == ValveState . Release && AutoCylPressurePSI > minCylPressurePSI )
471+ {
472+ AutoCylPressurePSI -= elapsedClockSeconds * ReleaseRatePSIpS ;
473+ if ( AutoCylPressurePSI < minCylPressurePSI )
474+ AutoCylPressurePSI = minCylPressurePSI ;
475+ }
476+
477477 // Charge Auxiliary reservoir for MRP
478478 if ( TwoPipes
479479 && ( Car as MSTSWagon ) . DistributorPresent
You can’t perform that action at this time.
0 commit comments