I played with the min and max values tonight, and they (almost) do what we want. After a few hours of testing I was able to get settings that do exactly what I imagine real slack to be like.
Here is how it appears to work in the sim:
The min and max values in the coupler bin file control how far in and out the coupler will go BEFORE the damped spring settings take effect. This is important, because I think the problem all along is that the couplers should be mild springs first, but have limits on how far they can travel. Instead, the couplers stretch out, then when they reach their limit, the spring effect kicks in and they stretch further. Because a spring will always stretch (or compress) further the higher the force applied to it, this means that there really is no limit to how far the couplers can go. The more locos at the head end of the train, the further all the couplers will stretch.
Here are the results of some tests with 1 loco and 1 freight car:
Test 1: no spring, all slack:MinDistance: 0
MaxDistance: 10
TargetDistance: 5
SpringCoeffiecient:1000000
Damping:1000000
In this test, the spring values are so high that there is basically no spring any more. The couplers can just go in and out a distance of 10 (I have no idea what the units are, probably metres - the default value for maxdistance was 0.1). By changing it to 10, the loco moves until the coupler is stretched, then the car starts moving. If I flip the reverser with the throttle still on, the car keeps going until the slack is gone then bangs into the loco. Here is a pic:
2011-11-23_00003.jpg
Test 2: No slack, all spring:MinDistance: 0
MaxDistance: 0
TargetDistance: 0
SpringCoeffiecient:10
Damping:10
This time as soon as the loco starts moving, the car starts moving as well, but the coupler is continuously stretching. If I go quite fast in reverse then flip the reverser to forward, the freight car ends up hundreds of feet behind the loco before it starts catching up again. To me this highlights the problem. The limits are applied first, then the spring. This is just wrong, there has to be a physical limit on how far the couplers can stretch or compress, and adding more force shouldn't stretch them further.
An article I read in trains magazine years ago talked about slack. The things that stand out in my mind are the fact that the engineer must ease the slack out of the train when starting ... but once the train is stretched it is OK to just increase the throttle as far as you want. The train cannot stretch any further since it is already stretched at that point. This is impossible to do when the couplers are a spring, since the train will just stretch more as soon as you add more force. It will never be "fully stretched". Another scenario was slowing the train by just reducing the throttle miles in advance of the slow section instead of using the brake. The benefit was that that a low throttle setting would let the drag of the train slow it down, but the low power setting would also keep the train stretched. Again, impossible to do with spring couplers, since the train bunches up a bit every time the force at the head end is decreased.
Because of these reasons I do not believe we need the spring effect at all. I ended up trying out these values:
MinDistance: 0
MaxDistance: .3
TargetDistance: .15
SpringCoeffiecient:1000000
Damping:1000000
That is triple the original amount of slack to compensate for the fact that the spring effect is gone. I have no idea how much slack there really is in a coupler, but watching the joined as I went from forward to reverse and back looked reasonable to me compared to what I have seen in reality.
With these settings when you add power you can watch the speed closely and really see the effect of the slack running out, but once it is stretched you can power up all you want. Similarly, when you switch to DBs you can see and "feel" the slack running in, but once the train is bunched you can add all the dynamics you want.
Oh, and switching with long cuts of cars feels a lot more realistic now too. Definitely more along the lines of the slack run out show in the youtube vids posted earlier.
It is definitely still possible to mismanage the slack and break something. This was the result of getting a 100 car train up to 10 mph then flipping the reverser switch (I have no idea why trains take off like this when something goes wrong but I am starting to realise that in the TS2012 world this usually means "max coupler force exceeded"):
2011-11-23_00002.jpg
Now when this happens it feels like it is because the game is simulating reality, not because we broke some fake rule.
Here is my coupling file for anyone that doesn't want to edit stuff:
buckeye_type_e_coupling.zip
You do not have the required permissions to view the files attached to this post.