The existing method calculating convoy speeds (called "calc_acceleration") had left the path of pure physics far behind.

Some examples:

1) If the calculated new current speed exceeded the set speed, a mathematical operation reduced the new current speed. Although the convoy's mass could never changed it's movement that fast.

2) James wanted to give steam trains a more realistic acceleration and therefore added some computationally intensive code.

3) In calc_acceleration there is a comment: "...if delta_t is too large the calculation may get weird results...", which might have been meant to be related to integer overflows, but even without such an overflow the result will get weird: The used formular is reasonable only for small delta_t (= time passed since previous calculation).

James found a very illuminating page about the differences between steam and diesel locomotives at

http://www.railway-technical.com/st-vs-de.shtml.

My wish to get back to the physical path arose from this page. If there are different physical processes, calc_acceleration should represent them.

The new calc_acceleration is a clearly arranged one, which only models the convoy physics and the driver controlling the acceleration force.

It works with the existing parameters such as power and friction factors, etc. and could even work in simutrans standard.

To view the acceleration results I added a new graph to the convoy info. It shows the convoy speed starting from 0 km/h in steps of 15 seconds according to the current weight, friction given by slope and curve of the vehicles, etc.

The attachment shows some acceleration curves calculated by the new calc_acceleration.

The complete screenshot (Size: 712KB) can be found at

http://www.fast-function-factory.de/simutrans/simscr39.png.

If there are no concerns, both model and graph might become part of simutrans experimental 7.0.