The physics of the trains was rather unrealistic in the original Transport Tycoon game. This was changed fundamentally in TTDPatch by introducing a new model for realistic acceleration. OpenTTD also implemented this model and extended it further, so that today there is a rather complex simulation running in the background. This is explained in the next sections.
Basics
In very simplified terms, the game runs a calculation about 30x per second to figure out how a train (or any vehicle) should behave, whether it should accelerate or brake, stop at a signal and so on. This calculation depends on a bunch of influencing factors, mostly the power of the train engine(s) and the weight of the train.
The basis for the whole calculation is a simple formula you should know from physics classes in school: Force is mass times acceleration (F = m * a).
The goal here is to calculate the acceleration: a = F / m. The Mass m of the train is known, it only changes when the train is being (un)loaded or
rearranged by adding/removing wagons or engines. The force F is now the sum of two things: There are the forces that try to accelerate the train, namely the
tractive force of the engine(s). And then there are forces that resist this acceleration, such as friction. So basically it all boils down to the question whether the tractive force
of the engine(s) is larger than the resisting forces: If the tractive forces are larger, the resulting acceleration is positive and the train will accelerate - up to the top speed which
depends on the vehicle and the track layout. If the resisting forces are larger, the resulting acceleration is negative and the train will decelerate - in the worst case down to a halt.
And in the rare case that the forces are equal the train simply goes along with the current speed.
Tractive effort and power
Theoretically the total tractive effort is quite simple to calculate, as it only depends on the power and the tractive effort of each engine of the train. You can find these values in the info window of the train. The values are simply added up to get the value for the train in total.
However, to calculate the values, you first have to convert power into tractive forces. And this in turn depends on the current speed of the train, based on the formula
"force is power divided by speed": F = P / v
Simply put, an engine has a huge tractive power at low speed, while it will only have a low tractive effort at higher speeds.
In case speed is zero, as in starting from a standstill, the tractive effort is infinite, at least in theory. However, theory and reality differ a bit, since this theoretical value is limited to the maximum tractive effort of the engine(s). You can compare that to a high powered sports car: When you put the pedal to the floor when standing at a traffic light, it will only result in lots of wheelspin and you cannot convert all the power into acceleration. The same thing will happen with a train engine, the wheels would slip and polish the rails. The real effective tractive force is therefore at most the value that you can read in the train info window. Modern train engines use electronics to use the power effectively, for a steam engine the personnel had to apply the power controls with lots of feeling. In old videos you can actually find scenes of wheels slipping on acceleration.
The following table shows some values of real world examples from Germany:
| Name | Description | Top speed | Power | Tractive effort |
|---|---|---|---|---|
| BR 01 | steam engine for fast passenger trains | 130 km/h | 2240 PS | 150 kN |
| BR 38 (pr. P8) | steam engine for passenger trains | 100 km/h | 1180 PS | 113 kN |
| BR 44 | steam engine for heavy freight trains | 80 km/h | 1910 PS | 340 kN |
| BR 103 | electric engine for fast passenger trains | 200 km/h | 10118 PS | 312 kN |
| BR 155 | electric engine for freight trains | 125 km/h | 6930 PS | 380 kN |
| BR 218 | universal diesel engine | 160 km/h | 2800 PS | 235 kN |
Forces of resistance
The forces of resistance are a sum of multiple forces, which in turn depend on various factors::
- Friction of axles, bearings and so on:
The friction of axles and other mechanical parts is simulated by simply taking 0.1% of the total train weight.
- Rolling resistance between wheels and rails:
This resistance is about 0.15% of the total train weight, but it is also scaled up with the current speed, so that a train running 512 kph has a resistance of 0.3%. Since trains typically run way slower than that, one can estimate the resistance with about 0.15-0.25% of the total train weight.
- Air resistance
Air resistance is calculated with some complicated formulae. There are three important aspects here: Each wagon adds a little more air resistance. Tunnels double the air resistance. Air resistance increased quadratically with speed (double the speed increases air resistance by 4, increase speed by 4 make air resistance increase by 16 and so on). At high speeds this is by far the biggest resistance a train has to deal with. This also has to do with aerodynamics, high speed trains are shaped aerodynamically for good reasons.
- Slopes and gradients
Running a train along a slope increases the required tractive forces considerably. You can easily feel the impact when riding a bike - running along on a flat road is easy, but as soon as you start to climb a hill it becomes a good exercise for your legs. When going down it's the reverse, the required tractive forces are reduced, since the train is rolling down the hill all on its own. These values are calculated for each wagon of a train. The result depends on the steepness of the slope (3% is the standard in OpenTTD, TTDPatch used 5%, you can change it in the game settings) and the weight of the wagon.
Calculator
After all this theory we now finally come to the relevant question most players have: Which engine(s) do I need for my trains? Or to phrase it differently: How much power and tractive effort do I need to add to my trains in order to make them reach a certain speed and to ensure it does not grind to a halt on a slope? That's why I implemented this calculator here. You enter the relevant values of your train and the calculator then hopefully returns some useful numbers.
The underyling formulae are taken from the OpenTTD-Wiki.
The train information window provides all relevant numbers in the second line: Weight, power, max speed and tractive effort. Take care that you use the weight of a fully loaded train, hauling an empty train rarely poses a problem.
The values for "Weight on a rising slope" and "Weight on a falling slope" are the sum of the weights of the wagons that could be on the slope at the same time. Assuming the track is mostly flat with only one sloped tile and further assuming standard length wagons (0.5 tile length), two wagons can be in the slope at the same time. So you need to take the weight of two fully loaded wagons and can enter it in the calculator. If the track is such that more wagons can be in a slope at the same time, the weight will increase accordingly. For falling gradiends (going downhill) the values are calculated the same way, but they are practically irrelevant since you do not need additional tractive effort as the wagons roll down the slopes on their own. If the train uses different wagons with different weights, use the heaviest ones for the calculation.
The results can be interpreted as follows: The first four values for the various forces are just for information. The value for "maximum weight on slopes" states how much weight could be on a slope without forcing the train to a stop. If this value is smaller than the weight of a single wagon (or even negative), then the train will probably get stuck on the first incline, unless it runs along at full speed and manages to get up the slope before losing a lot of speed. The value for "maximum weight for acceleration" is the maximum weight that the engine can accelerate from a standing start on totally flat tracks. This value is probably quite high, but the next line ("maximum achievable speed") shows then the maximum speed that the train will be able to reach - and here the weight puts on a much tighter restriction.
PS
kN
t
%
t
t
Results
kN
kN
kN
kN
t
t
km/h