Air Brakes - Additional Features
#31
Posted 12 August 2016 - 06:14 AM
#32
Posted 12 August 2016 - 11:03 PM
steamer_ctn, on 10 August 2016 - 06:31 PM, said:
Hi,
I wonder why you're using a string to get the state of the controller.
Why do you not use the ControllerState enum ? (example in the attached patch)
Attached File(s)
-
X3603-better implementation.zip (1.2K)
Number of downloads: 501
#33
Posted 14 August 2016 - 12:43 AM
#34
Posted 14 August 2016 - 03:34 AM
steamer_ctn, on 12 August 2016 - 01:07 AM, said:
ii) Describe in more detail the problem that you are seeing in reference to the main and the Advanced Brake Information HUD. (Is it only on application or release as well?)
Thanks
Using a default consist, dash9+50 chemical, there is a marked difference in air brake behaviour when comparing V1.1 and the latest X3604.
In v1.1 the BP and ER change at different rates and moving from full emergency to full release causes the Main to drop to 73 as ER recharges.
Triple valve takes 1 minute 30 seconds to go from emergency to release for the cars in the consist, engine at about 1 minute
In x3604 the BP and ER change at the same rate and main only drops to 137 as ER recharges
Triple valve goes from emergency to release in 35 seconds and affects all units in the consist
#35
Posted 14 August 2016 - 03:41 AM
In version 3591 is it OK.
https://youtu.be/88n7qbF3DFk
In version 3604 consume air from main reservoir until fill with air the auxiliary reservoir on lokomotive. When OR fill up auxiliary reservoir on locomotive no consume air from main reservoir.
https://youtu.be/9v42BT-g5Ws
When is train brake controller in Notch ( 0.33 1 TrainBrakesControllerGraduatedSelfLapLimitedHoldingStart ) or Notch(0.2 1 TrainBrakesControllerApplyStart ) disappear presurre brake cylider of locomotive from basic HUD.
Basic HUD at steam locomotives displays pressure brake cylinder of tender.
OpenRailsLog.txt (20.58K)
Number of downloads: 502
#36
Posted 14 August 2016 - 04:14 PM
If I understand well this code, what you're trying to do is to remove an amount of air from the brake pipe on the locomotive.
I think the current code in AirSinglePipe is a bit of a mess.
We shoud put the regulation of the brake pipe pressure in a new class (called BrakePipePressureRegulator for example).
This class should have the Equalizing Reservoir and the Main Reservoir as inputs and the Brake Pipe as an output.
For the regulation of the brake cylinder pressure, another class (TripleValve or Distributor depending on the setting in the ENG file).
In fact, all of the parts of the braking system should be separated.
The AirSinglePipe and AirTwinPipe should only contain the code that allows the propagation of the air.
That's maybe what I will have to work on after I finish the correction of the Alerter and the implementation of the High Voltage Circuit Breaker.
#37
Posted 14 August 2016 - 09:07 PM
Serana, on 14 August 2016 - 04:14 PM, said:
If I understand well this code, what you're trying to do is to remove an amount of air from the brake pipe on the locomotive.
Yes that is correct.
Serana, on 14 August 2016 - 04:14 PM, said:
......................................................
That's maybe what I will have to work on after I finish the correction of the Alerter and the implementation of the High Voltage Circuit Breaker.
That sounds like a good idea.
In the meantime, I would be interested in any thoughts on the current code.
Below is the section of code that I am interested in (extracted from AirSinglePipe.cs in #3596):
foreach (TrainCar car in train.Cars) { .......................................................................... .......................................................................... if (car == train.Cars[0] || car.BrakeSystem.FrontBrakeHoseConnected && car.BrakeSystem.AngleCockAOpen && car0.BrakeSystem.AngleCockBOpen) { float dp = Math.Min (dt * (p1 - p0) / brakePipeTimeFactorS * 2, p1 - p0); car.BrakeSystem.BrakeLine1PressurePSI -= dp * brakePipeVolumeM30 / (brakePipeVolumeM30 + car.BrakeSystem.BrakePipeVolumeM3); car0.BrakeSystem.BrakeLine1PressurePSI += dp * car.BrakeSystem.BrakePipeVolumeM3 / (brakePipeVolumeM30 + car.BrakeSystem.BrakePipeVolumeM3); } .......................................................................... .......................................................................... }
As background, it appears that the code immediately preceding this section sets the BrakeLine1PressurePSI for the locomotive ( or lead). The above code is then part of the section which propagates the brake line pressure along the train.
I am trying to understand why the propagation section should change the locomotive BrakeLine1PressurePSI, as it appears to be doing so in an early iteration of the above loop, where the locomotive (or lead / car0) BrakeLine1PressurePSI is altered by adding the next cars value to it through the following statement:
car0.BrakeSystem.BrakeLine1PressurePSI += dp * car.BrakeSystem.BrakePipeVolumeM3 / (brakePipeVolumeM30 + car.BrakeSystem.BrakePipeVolumeM3);
Why is it using an addition calculation whereas all the others appear to be subtractions?
Consequently the brake pipe pressure for the locomotive appears to be go in the "reverse" direction compared to the other cars brake pipe pressures.
Thanks
#38
Posted 18 August 2016 - 02:12 AM
I have put together a snapshot of the different brake controllers that I think should apply for the four major brake valve types.
If anybody has any further information on the particular brake controllers that should be used, I would be interested to hear.
Thanks
#39
Posted 18 August 2016 - 09:27 PM
TrainBrakesControllerMinPressureReduction ( x )
Typically this will apply to A-6 and A-7 types of brakes as defined on this page.
#40
Posted 19 August 2016 - 12:53 AM
hroch, on 14 August 2016 - 03:41 AM, said:
Basic HUD at steam locomotives displays pressure brake cylinder of tender.
There appears to be two locomotives (a diesel and a steam) in the points that you have raised.
Can you zip both of the ENG files and attach them to the thread for viewing?
Thanks