Are we missing blended braking in OR?
#1
Posted 21 January 2015 - 12:42 AM
#2
Posted 21 January 2015 - 12:53 AM
BrakesEngineControllers( "Train, Dynamic, Blended" )
DoesBrakeCutPower( 1 )
BrakeCutsPowerAtBrakeCylinderPressure( 15 )
#3
Posted 21 January 2015 - 03:40 AM
#4
Posted 21 January 2015 - 04:50 AM
Branching out beyond that is probably best left to releases beyond 1.0 -- and opens up a wider variety of braking systems. There are electro-pneumatic systems and the anti-locking varieties (Usually referred to as anti-slide or anti-skid in railway terminology, but functionally similar in principle to anti-lock brakes on cars that use a servo system to modulate brake application at the wheels regardless of brake pipe pressure).
I run mostly US prototypes in OR which uses the single-pipe air system. Forgive my ignorance, but is the twin-pipe system often used in the rest of the world being fully modeled in OR? If not, that would certainly be welcomed.
#5
Posted 21 January 2015 - 06:27 AM
EricF, on 21 January 2015 - 04:50 AM, said:
I run mostly US prototypes in OR which uses the single-pipe air system. Forgive my ignorance, but is the twin-pipe system often used in the rest of the world being fully modeled in OR? If not, that would certainly be welcomed.
At least here in Europe, twin pipe brakes are standard.
Cheers, Markus
#6
Posted 21 January 2015 - 07:14 AM
There could be two tables, organized as follows:
- for the dynamic/electric brake:
ORTSDynamicBrakeBlending(
brakecontroller%value_0 (
speed_value0 dynamicbrakecontroller%value0
speed_value1 dynamicbrakecontroller%value1
...
speed_valuen dynamicbrakecontroller%valuen
)
brakecontroller%value_a (
speed_value0 dynamicbrakecontroller%value0
speed_value1 dynamicbrakecontroller%value1
...
speed_valuen dynamicbrakecontroller%valuen
)
....
brakecontroller%value_100 (
speed_value0 dynamicbrakecontroller%value0
speed_value1 dynamicbrakecontroller%value1
...
speed_valuen dynamicbrakecontroller%valuen
)
)
for the train brake:
ORTSTrainBrakeBlending()
organized as the above table.
The double interpolation functions should be already available within the OR code.
It has also to be evaluated if putting outside of the internal parentheses the speed values and inside the brake controller values were be a better solution.
When such tables are not there, the standard MSTS approach is used.
#7
Posted 21 January 2015 - 01:44 PM
- in the most part of the Italian trains with electric braking (with the exception of the TAF EMU and of the E464 single-cab loco for push-pull trains) the brake lever has a first position where only the electric braking is active with maximum electric braking force, and from the second position in addition to the electric braking also the pneumatic braking begins to be active.
- in the TAF in the first three positions of the brake lever only the electric braking is inserted ( 25-50-75kN), with the 4th position the electric braking is inserted to 100kN and also the pneumatic braking begins to be inserted
- in the E464 in the first position of the brake lever the electric braking is inserted at 50% of the full value, and with the next positions the electric braking increases intensity and together also the pneumatic brake is inserted more and more.
- all locos themselves that have electric braking have a device that manages the braking of their motorized axles; if at a certain moment on such axles the electric braking is active, on such axles at the same moment the pneumatic braking is disabled
- the electric braking is enabled from max speed down to 35 km/h; if at the same time also the pneumatic is active, that lower threshold is reduced down to 5-10km/h.
I hope this can provide some idea. With some table and some threshold a good parametrization is possible.
I add another point: the same person let me notice that
"BrakeCutsPowerAtBrakeCylinderPressure( 30 )"
is not implemented in OR. I think it would not be a big job to add this to the braking management.
#8
Posted 21 January 2015 - 03:04 PM
On modern electric locomotives also the regenerative brake is the main brake, so the computer will use that even if you pull the train brake lever, and starts using the airbrake on the loco only if the maximal dynamic brake force is reached, and more braking force is needed.
So in short: dynamic brakes are used as main brakes both in modern EMU and locomotives, airbrakes applied only if the dynamic brake force is not enough. But there are locomotives around the world that have "fixed" dynamic brake/airbrake settings, where every trainbrake lever notch sets a certain percentage of dynamic and airbrake.
For this we need a working ORTSDynamicBrakeForceCurves, which is implemented, but actually works... parameters for setting limits (overall brake force, max/min speed), a working anti-slip/anti-lock wheel system is needed.
Note that these braking systems can be controlled by automatic train controlling systems too, like AFB which is controlled either by the driver, or the LZB.
#9
Posted 22 January 2015 - 02:30 AM
I don't know how much the MSTS implementation is useful. Reading on forums, I understand it that MSTS-way doesn't match any real-world locomotive... If it is true, it would be a waste of time implementing that one...
#10
Posted 22 January 2015 - 03:11 AM
#11
Posted 22 January 2015 - 03:34 AM
#13
Posted 23 January 2015 - 05:20 AM
gpz, on 22 January 2015 - 03:34 AM, said:
I got a reply.
Trainsets like the TAF that I mentioned in my above post, and that already can command different electric braking levels with the train brake lever, don't have another way to command the electric brakes.
Trainsets like the E464, built by Bombardier in 688 exemplars, that is the backbone of regional and interregional trains in Italy ( http://en.wikipedia..../FS_Class_E.464 ), and that have only one possible electric braking level commanded with the train brake lever, have also a classical traction-electric brake combined control lever. (In the case of the E464 there are two further levers that are used when automatic speed control is selected: one is used to set speed, and the other is used to set max tractive - electric braking effort to achieve the speed target, but that's another story :) ).
In the meantime Eugen R. reminded me that also SBB locos like the SBB460 have blended braking, at least looking at their parameters in the MSTS .eng file...
#14
Posted 24 January 2015 - 04:31 AM
- the correspondence from TB to DB notch positions,
- a TB notch position to desired braking force interpolator,
- additionally, a DB notch position to desired braking force interpolator might be needed, see below.
The effective DB force in function of speed and notch position is already available in ORTSDynamicBrakeForceCurves, as implemented by Matej. As the force will decrease by the decreasing speed, we will have to know how much it is below the desired force, if at all, so that the necessary amount of air can be let in or bailed off the cylinder.
Certainly, some specialities are to be defined here:
- In (1) the corresponding DB notch position could be -1, to indicate the DB is to be disengaged. Explicit disengaging command must be possible, because re-engaging takes time on Diesels.
- There must be a way to blend TB into a combined throttle-DB controller. For this case a separate (3) must be defined. Using this one only instead of (2) above might not be adequate, since there could be a configuration, where e.g. tha max. DB force is assigned to multiple TB notch positions, but with different desired total brake forces.
#15
Posted 24 January 2015 - 06:42 AM
first of all, OR code is not ready for such features. You need to create "levers" independent from "controllers". In modern traction, some important modules are allowed to command the controllers and the driver's levers are "untouched". For older locomotives, it is very easy to bind a lever with a controller to act like the one.
Second, a dynamic brake is not a safe brake, if it is line-voltage dependent. Based on this, you cannot make the system act like described in some previous posts. If you would command the dynamic brake as the main brake, in the case of failure, the air brake would start to act with some delay, what is not desirable. You need to command them at the same time to ensure the braking effect. If the dynamic brake response is OK, then you can bail-off the air brake.
Usually the dynamic brake is controlled by the locomotive brake pressure and bails-off the locomotive brake if the dynamic brake works fine. Level of the bail-off can be controlled by the dynamic brake feedback to replace the dynamic brake fade-effect at low or high speeds.
The first command usually comes from the train brake or the combined throttle lever. It can be an electric signal, but it is converted to a pneumatic signal (pressure) to ensure the train brake will always play a role. This pressure signal is converted back to an electric signal to command the dynamic brake controller. Based on the dynamic brake response, the bail-off command is executed to save the friction brake material. If the dynamic brake fades due to low or high speeds, the pneumatic brake replaces the brake effect. In case of the dynamic brake failure, the feedback is lost and the air brake covers whole brake effect. The description above is a brake system of Skoda and CKD locomotives since 1975 (more than 2000 locomotives with a dynamic brake).
In fact, it doesn't matter who or what commands the brake controller. It can be a driver or e.g. an automatic speed (cruise) controller.
And about the brake effect - the brake system must not cause the train to skid when braking. Thus, the dynamic brake must be marked as "safe" to be used with emergency braking. If it is not marked as "safe", it must be switched off when the emergency brake is engaged. The brake effect of the dynamic brake must not be higher than the pneumatic brake according to the latest TSI specifications (TSI - technical specifications for interoperability in EU). The brake effect mentioned in TSI must not be higher than adheasion factor 0.12, what means 0.12*9.81*85t = 100 kN for 85 ton locomotive. I'm not sure if we need to care about this, but definitelly it should be considered at least.
Matej