Add a setup position to the dynamic brake handle

Discuss almost anything about RailWorks.

Add a setup position to the dynamic brake handle

Unread postby MikeK » Wed Nov 23, 2011 12:27 am

Since it is pretty clear that RS.com will never be giving us a setup position on the DB handle (even though their own textures clearly show it!) I thought I would take a crack at it using RW_Tools. This example is the NS Dash 9 for no particular reason. I randomly chose it for testing a while ago and now I am stuck with it since it has all my modifications :)

I arbitrarily chose 2% to represent the "setup" value, but you can easily make it 1% or 5% or whatever.

For comparison, here is the relevant configuration XML section before the changes (19 notches!):

Code: Select all
                  <cControlContainerBlueprint-cControlValue d:id="56555056">
                     <ControlName d:type="cDeltaString">DynamicBrake</ControlName>
                     <DefaultValue d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</DefaultValue>
                     <MinimumValue d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</MinimumValue>
                     <MaximumValue d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</MaximumValue>
                     <BriefDescription d:type="cDeltaString">Dynamic Brake </BriefDescription>
                     <DetailedDescription d:type="cDeltaString">Dynamic Brake Control</DetailedDescription>
                     <ApplyToConsist d:type="cDeltaString">eFalse</ApplyToConsist>
                     <InterfaceElements>
                        <cControlContainerBlueprint-cInteriorNotchedLever d:id="56557360">
                           <ElementName d:type="cDeltaString">Dynamic Brake</ElementName>
                           <DifficultyType d:type="cDeltaString">Expert</DifficultyType>
                           <PickTransformName d:type="cDeltaString">brake_dynamic</PickTransformName>
                           <MovementType d:type="cDeltaString">MoveLeftRight</MovementType>
                           <AnalogInputSensitivity d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</AnalogInputSensitivity>
                           <DigitalInputSensitivity d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</DigitalInputSensitivity>
                           <AnimationName d:type="cDeltaString">RSC\Dash9Pack01\RailVehicles\Diesel\Dash9\NS\CabView\dash9_cab_brake_dynamic</AnimationName>
                           <RestInNotchedPosition d:type="cDeltaString">eTrue</RestInNotchedPosition>
                           <NumberOfNotches d:type="sFloat32" d:alt_encoding="0000000000003340" d:precision="string">19</NumberOfNotches>
                        </cControlContainerBlueprint-cInteriorNotchedLever>
                     </InterfaceElements>
                  </cControlContainerBlueprint-cControlValue>


And here is the code afterwards:

Code: Select all
                  <cControlContainerBlueprint-cControlValue d:id="83712288">
                     <ControlName d:type="cDeltaString">DynamicBrake</ControlName>
                     <DefaultValue d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</DefaultValue>
                     <MinimumValue d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</MinimumValue>
                     <MaximumValue d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</MaximumValue>
                     <BriefDescription d:type="cDeltaString">Dynamic Brake </BriefDescription>
                     <DetailedDescription d:type="cDeltaString">Dynamic Brake Control</DetailedDescription>
                     <ApplyToConsist d:type="cDeltaString">eFalse</ApplyToConsist>
                     <InterfaceElements>
                        <cControlContainerBlueprint-cInteriorIrregularNotchedLever d:id="83714592">
                           <ElementName d:type="cDeltaString">Dynamic Brake</ElementName>
                           <DifficultyType d:type="cDeltaString">Expert</DifficultyType>
                           <PickTransformName d:type="cDeltaString">brake_dynamic</PickTransformName>
                           <MovementType d:type="cDeltaString">MoveLeftRight</MovementType>
                           <AnalogInputSensitivity d:type="sFloat32" d:alt_encoding="000000000000E03F" d:precision="string">0.5</AnalogInputSensitivity>
                           <DigitalInputSensitivity d:type="sFloat32" d:alt_encoding="000000000000E03F" d:precision="string">0.5</DigitalInputSensitivity>
                           <AnimationName d:type="cDeltaString">RSC\Dash9Pack01\RailVehicles\Diesel\Dash9\NS\CabView\dash9_cab_brake_dynamic</AnimationName>
                           <RestInNotchedPosition d:type="cDeltaString">eTrue</RestInNotchedPosition>
                           <Notch>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702560">
                                 <Identifier d:type="cDeltaString">Off</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="0000000000000000" d:precision="string">0</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702561">
                                 <Identifier d:type="cDeltaString">Setup</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="00000040E17A943F" d:precision="string">0.02</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702562">
                                 <Identifier d:type="cDeltaString">1</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="000000000000C03F" d:precision="string">0.125</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702563">
                                 <Identifier d:type="cDeltaString">2</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="000000000000D03F" d:precision="string">0.25</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702564">
                                 <Identifier d:type="cDeltaString">3</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="000000000000D83F" d:precision="string">0.375</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702565">
                                 <Identifier d:type="cDeltaString">4</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="000000000000E03F" d:precision="string">0.5</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702566">
                                 <Identifier d:type="cDeltaString">5</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="000000A09999E53F" d:precision="string">0.625</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702567">
                                 <Identifier d:type="cDeltaString">6</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="000000000000E83F" d:precision="string">0.75</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702568">
                                 <Identifier d:type="cDeltaString">7</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="000000000000EC3F" d:precision="string">0.875</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                              <cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData d:id="87702569">
                                 <Identifier d:type="cDeltaString">8</Identifier>
                                 <Value d:type="sFloat32" d:alt_encoding="000000000000F03F" d:precision="string">1</Value>
                              </cControlContainerBlueprint-cInteriorIrregularNotchedLever-cNotchData>
                           </Notch>
                        </cControlContainerBlueprint-cInteriorIrregularNotchedLever>
                     </InterfaceElements>
                  </cControlContainerBlueprint-cControlValue>


Here is a list of the specific changes:

- Changed "AnalogInputSensitivity" and "DigitalInputSensitivity" to 0.5. This seems to be a nice value for using the keyboard with notched controls
- Changed "cControlContainerBlueprint-cInteriorNotchedLever" to "cControlContainerBlueprint-cInteriorIrregularNotchedLever"
- Changed the "NumberOfNotches" element to a "Notch" element with nested values for each position.
- I have no idea what these values are for: d:id="87702562" ... so I just made them unique. It seems to work.


In addition to this, in the DB section of the diesel physics page in RW_Tools:

- I changed "MaxForce" to a lower number. I chose 150. I have absolutely no idea what a good number is, but with this I can control a long train downhill with just DBs until I get to the 3% grades on Cajon, then I need train brakes as well.
- I changed DelayBeforeEngaging to "1". It seems that RS.com has modelled a 10 second delay from when the DB handle is moved to when the DBs actually engage. In reality the consensus seems to be that it should be 10 seconds from when the throttle is moved to idle. So if you move the throttle to idle, wait 10 seconds then move the DB handle to the first notch (2%, representing "setup"), then in a second or 2 the DBs activate. Now you can go back to "setup" without having to go all the way to idle and incurring a 10 second wait time again. Also the setup position has a small amount of drag just as the real thing seems to have.

Lastly, for some reason that I don't understand yet, I seem to get wheelspin with DBs at much lower force values than when using throttle. I have no idea why this would be. I temporarily upped the value "SandFrictionMultiplier" to 10 for now to compensate.

I am also using these values in every "buckeye_type_e_coupling.bin" file that I could find:


Code: Select all
               <SpringCoefficient d:type="sFloat32" d:alt_encoding="000000000088C340" d:precision="string">10000</SpringCoefficient>
               <Damping d:type="sFloat32" d:alt_encoding="000000000088C340" d:precision="string">10000</Damping>


Overall, a much more realistic driving experience. My goal was to replicate what I saw on an episode of "Modern Marvels" called "freight trains". They had a camera in the cab of a stack train coming down Cajon, and the engineer was describing how the brakes worked. He was adding dynamic brakes to control the speed until he got to 100%, THEN had to add train brakes. This won't work with the default settings because of these reasons:
1. The crappy coupler settings would derail the train under strong dynamic brakes
2. The dynamic brakes were way too powerful
3. The wheel slip under dynamic braking at lower force levels than under power.

I think these settings seems to correct most of the issues.

Any improvements to the settings would be appreciated.
Last edited by MikeK on Wed Nov 23, 2011 4:04 am, edited 1 time in total.
MikeK
 
Posts: 135
Joined: Thu Jul 14, 2011 11:14 am
Location: Reno, NV

Re: Add a setup position to the dynamic brake handle

Unread postby Kali » Wed Nov 23, 2011 12:40 am

I am using about 45 for DB on the SD40s - with a few pounds of train brake that is just enough to control a downhill consist in my tests on Cajun, so that seems about right to me. Needs extra scripting for trailing engines to turn the brakes on, which is probably why you're having to set yours a lot higher. Having done some scribbles for coupler springs yours might be a bit low, but if you're happy with 'em then that's fine, eh.

Question: are all DB handles locked in setup ( like the Genesis ) until setup is actually complete? I can probably script a generic solution for that that pretty fast. It does look like I'm going to have to make a new generic engine script...
Kali
 
Posts: 1600
Joined: Mon Mar 14, 2011 1:00 am
Location: England-by-Sea

Re: Add a setup position to the dynamic brake handle

Unread postby MikeK » Wed Nov 23, 2011 4:07 am

Is the scripting a part of the loco's file, or does it have to be in every freight car in the train?

I don't have the genesis, but I read somewhere that on the modern diesels with computer control the engineer has to make sure that he or she doesn't go past setup until the ammeter moves, otherwise they could get quite a kick when the DBs finally engage (real life simulating railworks? *!lol!*). To me that implies that the handle can still move, but no DBs until 10 seconds after the throttle went to idle.

I am no expert though, and would be happy to be corrected if anyone has anything more concrete to go on.
MikeK
 
Posts: 135
Joined: Thu Jul 14, 2011 11:14 am
Location: Reno, NV

Re: Add a setup position to the dynamic brake handle

Unread postby SMMDigital » Wed Nov 23, 2011 5:48 am

My question is, when you kick the Trilithiun Field Diverter does it reroute the matrix through the Flux Capacitor, the Hydrospan Motivator, or the Dilithiun Triplex Coupler before producing thrust in the Cochrane Manifold? !**conf**!

Are you guys going to make these modifications available to the general community? I would like to try those settings on my trains, but i'm just totally overwhelmed by the WTF factor.
SMMDigital
 

Re: Add a setup position to the dynamic brake handle

Unread postby arizonachris » Wed Nov 23, 2011 10:46 am

SMMDigital wrote:My question is, when you kick the Trilithiun Field Diverter does it reroute the matrix through the Flux Capacitor, the Hydrospan Motivator, or the Dilithiun Triplex Coupler before producing thrust in the Cochrane Manifold? !**conf**!


I dunno, but I think a quantum spanner is needed here. Somewhere. !*roll-laugh*! !*salute*! !*don-know!*
Ryzen 7 2700K, Asus Prime X570P, 32Gb DDR4, 2x 1Tb M.2 SSD's, RTX2060 6Gb, Occulus Rift
Win 10 Pro 64bit, keyboard/ mouse/ wheel/ pedals/ baseball bat
Security Coordinator on the Battleship Iowa
User avatar
arizonachris
 
Posts: 3955
Joined: Sun Mar 21, 2010 10:36 am
Location: Southern California

Re: Add a setup position to the dynamic brake handle

Unread postby MikeK » Wed Nov 23, 2011 11:50 am

Attached is my engine file as I have it right now. It goes into <steam folder>\steamapps\common\railworks\Assets\RSC\Dash9Pack01\RailVehicles\Diesel\Dash9\NS\Engine

Dash9_NS.zip


I have no idea how to make a "generic" version that works for all locos. I am hoping that there is some way to adjust setttings for various things and have them shared across multiple locos to save having to make changes to every one individually.

So does the genesis have an actual "setup" position? Is it labelled? What does it show in the F4 and F5 views when the handle is in this position?
You do not have the required permissions to view the files attached to this post.
MikeK
 
Posts: 135
Joined: Thu Jul 14, 2011 11:14 am
Location: Reno, NV

Re: Add a setup position to the dynamic brake handle

Unread postby Kali » Wed Nov 23, 2011 12:27 pm

Scripting for dynamic brake activation on the head units just needs a new engine script - the "dodgy physics" SD40 is an example. If you want the tail of the train to work also then the cars need scripting too.

You can make a copy & paste solution for the brake handle ( although they're meant to match the power handle, aren't they? ), you can't make a generic engine blueprint though for obvious reasons. You also can't share blueprint parts without pasting them in - which is fine.
Kali
 
Posts: 1600
Joined: Mon Mar 14, 2011 1:00 am
Location: England-by-Sea

Re: Add a setup position to the dynamic brake handle

Unread postby MikeK » Wed Nov 23, 2011 12:59 pm

Interesting. I think I am going to leave the DBs a little stronger for the lead unit then until I can get all the car scripts done so that DPUs would get the settings as well.

I still have no idea how to make a notched "setup" position for locos that have a combined power/brake handle. I am guessing that they would need 8 notched power positions, 1 notched idle position, 1 notched setup position, then it would freely move all the way to 100% DB. From digging around in a few files last night I couldn't see a way to do that.
MikeK
 
Posts: 135
Joined: Thu Jul 14, 2011 11:14 am
Location: Reno, NV

Re: Add a setup position to the dynamic brake handle

Unread postby Kali » Wed Nov 23, 2011 1:02 pm

You can't do that in a blueprint; I'm after the same solutions for the class 450. I'm going to have to come up with a scripted solution to that, and I'm not really sure how to do it yet.
Kali
 
Posts: 1600
Joined: Mon Mar 14, 2011 1:00 am
Location: England-by-Sea


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 5 guests