Anyone who's paid enough attention over the years will have noticed that diesel and electric locomotives in OR change power output immediately. The only time a change in tractive power/braking is smooth is on diesel locomotives increasing power, where the power changes in sync with the increase in engine RPM. But everything else, from decreasing power to adjusting dynamic braking happened instantly. For various reasons, this is not very accurate at all. Most things in a locomotive take time, either because of the physical properties of the system like inertia, capacitance, and inductance, or because the control system has been explicitly and intentionally set up to provide smooth handling.
A new feature set in Open Rails 1.6 that's easy to miss (unless you have looked through the manual, which sometimes is the best way to spot new features) overcomes this limitation by giving ways to control how quickly tractive effort/braking effort and tractive power/braking power build up. This can be used to add a bit of smoothing to clean up the otherwise jerky instantaneous changes in tractive effort, or can go as far to completely change the operating experience of a diesel or electric locomotive to match the loading behavior of the real thing (which may be fast or may be slow-it takes some research to figure this out).
Parameters
There are 12 "ramp rate" values you can control. That's 6 for power, and 6 for braking. And for both power and braking, there are 3 values to control the tractive effort rate of change and 3 values to control the power rate of change. These 3 values specify the maximum rate of increase, maximum rate of decrease, and maximum rate of decrease when targeting 0 power/braking.
Hopefully it's fairly self-explanatory what each of these controls. The "RampUpRate" values are used when the amount of traction/braking demanded by the controls is a larger magnitude than the current amount, the "RampDownRate" values are used when the amount of traction/braking demanded by the controls is a lower magnitude than the current amount, and the "RampDownToZeroRate" values are used when no traction/braking is demanded by the controls (bypassing the "RampDownRate" value). If no value is entered, the rate is assumed to be infinite, so changes would happen immediately. Be sure to enter values for all 12 parameters if you wish to avoid instant changes in power or braking.
Note that all of these 12 values are rates of change, not times or durations. If something takes 60 seconds to reach 1800 horsepower, the "PowerRamp" rate you type in would be 1800 hp / 60 s = "30hp/s". You do NOT enter "60s". This also means that the rates of change are totally linear, which won't perfectly replicate some real behaviors such as turbo lag which is very nonlinear (how quickly a turbocharged engine can apply more power increases with the amount of power that's already being produced, so it's exponential, not linear). Furthermore, if two rates of change have conflicting values (such as an ORTSTractiveForceRampDownRate of 1000000 lb/s but an ORTSTractivePowerRampDownRate of 10 hp/s while your locomotive is currently making 3000 hp) then whichever is currently the slower rate of change has influence. And consider all the "PowerRamp" rates are rates for rail power, not generator power or engine power, rail power is always lower than generator power and manufacturers often do not tell you what the rail power is.
Why so many settings? Well, research determined that many locomotives have rate control that's a bit too complicated to have just 1 or 2 settings for. For example, having separate settings for force and power allows for more nuanced behavior. The "ForceRamp" rates will be more dominant at very low speed, where large changes in motor force can happen with very minimal power input (power is force x speed, after all, so if speed is a small number power is a small number). On the other hand, "PowerRamp" rates have the most influence at high speeds, as even small changes in motor force would require large changes in power. Many locomotives take less time to reach maximum tractive effort when stationary than they would take to reach maximum power output when rolling. Some don't even control power output directly, simply giving whatever the engine has available, so having separate settings for these makes such varied configurations easier to replicate.
Tips For Setting Parameters
12 values may be a lot, but you can take some shortcuts when implementing multiple similar locomotives. For locomotives in the same series (same motors, same control system, same engine family), the "TractivePowerRamp" values can be reused (despite smaller engines making less power, they can also use smaller turbos, which can be assumed to roughly cancel out to give similar power ramp rates), regardless of changes in number of motors or gear ratio. Then the "TractiveForceRamp" values can be scaled with the number of motors (double the motors, double the max tractive effort and rate of tractive effort change) and scaled with gear ratio (gear ratios for higher speed lead to proportionally lower max tractive effort and rates of tractive effort change), though they do not need to be scaled with power rating. The "DynamicBrakePowerRamp" values should scale with the number of motors (more motors usually means more max dynamic braking power, and thus faster rate of change of dynamic braking power), though gear ratio and tractive power rating are irrelevant. And, like for tractive force, "DynamicBrakeForceRamp" values should also scale with the number of motors and scale with the gear ratio.
Scaling things linearly as such is not foolproof, as some locomotives and control systems don't necessarily take twice as long when there's twice the number of motors, but it can reduce your workload to calculate the set of parameters once, then multiply and divide values to adjust for locomotives in the same family with different engines, gear ratios, and axle counts.
Now, that is assuming you have determined each of these 12 values in the first place. Determining sensible values for all these can be quite difficult. Locomotive manufacturers generally don't tell you how quickly things react (they'd love to tell you a big horsepower number...as long as you don't think about the whole minute it would take to achieve that horsepower) so you'll have to stare at ammeters, tractive effort gauges, diagnostic screens, and whatnot to determine how fast force and power are changing on the real thing. Even then, some vibes and anecdotes will likely be required to settle on anything at all.
General trends I've noticed are that reductions in traction tend to be at least twice as fast as increases in traction, while dynamic brakes generally seem to be equal speed increasing and decreasing. Just about everything in both power and braking will run down to 0 force in 1 to 5 seconds, as this is usually done by killing generator excitation completely, with residual excitation dying down over the course of a few seconds. However, locomotives with simpler control systems should be set to run down to 0 instantly as the simplest thing to do is just opening the motor circuit, which will immediately kill any power or tractive effort (at the expense of wearing down contactors). Simpler control systems are also more likely to not (directly) regulate the rate of power delivery in traction or braking, while somewhat regulating tractive effort. Good knowledge of the control system used will be needed to faithfully represent how it works.
Luckily, most people don't have good knowledge of control systems used, so behaviors that are merely approximately correct will be appreciated more than the default behavior with instantaneous changes. I will be using this feature in the next version of my physics mods to offer some examples, but this feature is also the main reason I still haven't completed 1.6 versions of my mods despite 1.6 being out for multiple months. It has taken a lot of digging through documentation, even finding lots of new documentation, just to not find any good information on how anything should respond. Then repeat this obsessive research process for dozens of locomotives, each with multiple gear ratios and multiple dynamic brake configurations, and of course it takes an eternity. And despite all that, this does not mean the values I have ended up with are strictly correct or accurate. I don't touch real trains, so I do not have all the qualitative or quantitative data that's out there. Good luck for whoever wants to go through this adventure on their own time!
One More Important Parameter
Now one caveat with all this, setting custom "TractivePowerRamp" rates on a diesel locomotive can cause the power delivered by the locomotive to exceed the power rating of the diesel engine. In real life, this would have consequences like stalling the engine but the diesel engine model doesn't behave that way in OR. Nevertheless, real locomotives have systems to limit power to what the engine can produce, so this can now be enforced in OR too using ORTSTractiveForceIsPowerLimited ( 1 ). Engine RPM will matter, so setting sensible values for the diesel engine RPM increase and decrease rates is still important, and I find people actually tend to set these too high.
This one is not turned on by default as some existing locomotives rely on the disconnect between the engine and the tractive effort to function (things like slugs have been implemented as 'diesel' locomotives with 'engines' that make 0 horsepower). We cannot enforce realistic behavior by default when there's 25 years of content that doesn't want to deal with realism.
A new feature set in Open Rails 1.6 that's easy to miss (unless you have looked through the manual, which sometimes is the best way to spot new features) overcomes this limitation by giving ways to control how quickly tractive effort/braking effort and tractive power/braking power build up. This can be used to add a bit of smoothing to clean up the otherwise jerky instantaneous changes in tractive effort, or can go as far to completely change the operating experience of a diesel or electric locomotive to match the loading behavior of the real thing (which may be fast or may be slow-it takes some research to figure this out).
Parameters
There are 12 "ramp rate" values you can control. That's 6 for power, and 6 for braking. And for both power and braking, there are 3 values to control the tractive effort rate of change and 3 values to control the power rate of change. These 3 values specify the maximum rate of increase, maximum rate of decrease, and maximum rate of decrease when targeting 0 power/braking.
Code:
Engine ( Comment ( ALL these parameters go in the Engine section of the .eng file. )
Comment ( Controls for tractive effort rate of change. )
ORTSTractiveForceRampUpRate ( N/s, kN/s, lb/s, or lbf/s value )
ORTSTractiveForceRampDownRate ( N/s, kN/s, lb/s, or lbf/s value )
ORTSTractiveForceRampDownToZeroRate ( N/s, kN/s, lb/s, or lbf/s value )
Comment ( Controls for tractive power rate of change. )
ORTSTractivePowerRampUpRate ( W/s, kW/s, or hp/s value )
ORTSTractivePowerRampDownRate ( W/s, kW/s, or hp/s value )
ORTSTractivePowerRampDownToZeroRate ( W/s, kW/s, or hp/s value )
Comment ( Controls for dynamic brake effort rate of change. )
ORTSDynamicBrakeForceRampUpRate ( N/s, kN/s, lb/s, or lbf/s value )
ORTSDynamicBrakeForceRampDownRate ( N/s, kN/s, lb/s, or lbf/s value )
ORTSDynamicBrakeForceRampDownToZeroRate ( N/s, kN/s, lb/s, or lbf/s value )
Comment ( Controls for dynamic brake power rate of change. )
ORTSDynamicBrakePowerRampUpRate ( W/s, kW/s, or hp/s value )
ORTSDynamicBrakePowerRampDownRate ( W/s, kW/s, or hp/s value )
ORTSDynamicBrakePowerRampDownToZeroRate ( W/s, kW/s, or hp/s value )
)
Note that all of these 12 values are rates of change, not times or durations. If something takes 60 seconds to reach 1800 horsepower, the "PowerRamp" rate you type in would be 1800 hp / 60 s = "30hp/s". You do NOT enter "60s". This also means that the rates of change are totally linear, which won't perfectly replicate some real behaviors such as turbo lag which is very nonlinear (how quickly a turbocharged engine can apply more power increases with the amount of power that's already being produced, so it's exponential, not linear). Furthermore, if two rates of change have conflicting values (such as an ORTSTractiveForceRampDownRate of 1000000 lb/s but an ORTSTractivePowerRampDownRate of 10 hp/s while your locomotive is currently making 3000 hp) then whichever is currently the slower rate of change has influence. And consider all the "PowerRamp" rates are rates for rail power, not generator power or engine power, rail power is always lower than generator power and manufacturers often do not tell you what the rail power is.
Why so many settings? Well, research determined that many locomotives have rate control that's a bit too complicated to have just 1 or 2 settings for. For example, having separate settings for force and power allows for more nuanced behavior. The "ForceRamp" rates will be more dominant at very low speed, where large changes in motor force can happen with very minimal power input (power is force x speed, after all, so if speed is a small number power is a small number). On the other hand, "PowerRamp" rates have the most influence at high speeds, as even small changes in motor force would require large changes in power. Many locomotives take less time to reach maximum tractive effort when stationary than they would take to reach maximum power output when rolling. Some don't even control power output directly, simply giving whatever the engine has available, so having separate settings for these makes such varied configurations easier to replicate.
Tips For Setting Parameters
12 values may be a lot, but you can take some shortcuts when implementing multiple similar locomotives. For locomotives in the same series (same motors, same control system, same engine family), the "TractivePowerRamp" values can be reused (despite smaller engines making less power, they can also use smaller turbos, which can be assumed to roughly cancel out to give similar power ramp rates), regardless of changes in number of motors or gear ratio. Then the "TractiveForceRamp" values can be scaled with the number of motors (double the motors, double the max tractive effort and rate of tractive effort change) and scaled with gear ratio (gear ratios for higher speed lead to proportionally lower max tractive effort and rates of tractive effort change), though they do not need to be scaled with power rating. The "DynamicBrakePowerRamp" values should scale with the number of motors (more motors usually means more max dynamic braking power, and thus faster rate of change of dynamic braking power), though gear ratio and tractive power rating are irrelevant. And, like for tractive force, "DynamicBrakeForceRamp" values should also scale with the number of motors and scale with the gear ratio.
Scaling things linearly as such is not foolproof, as some locomotives and control systems don't necessarily take twice as long when there's twice the number of motors, but it can reduce your workload to calculate the set of parameters once, then multiply and divide values to adjust for locomotives in the same family with different engines, gear ratios, and axle counts.
Now, that is assuming you have determined each of these 12 values in the first place. Determining sensible values for all these can be quite difficult. Locomotive manufacturers generally don't tell you how quickly things react (they'd love to tell you a big horsepower number...as long as you don't think about the whole minute it would take to achieve that horsepower) so you'll have to stare at ammeters, tractive effort gauges, diagnostic screens, and whatnot to determine how fast force and power are changing on the real thing. Even then, some vibes and anecdotes will likely be required to settle on anything at all.
General trends I've noticed are that reductions in traction tend to be at least twice as fast as increases in traction, while dynamic brakes generally seem to be equal speed increasing and decreasing. Just about everything in both power and braking will run down to 0 force in 1 to 5 seconds, as this is usually done by killing generator excitation completely, with residual excitation dying down over the course of a few seconds. However, locomotives with simpler control systems should be set to run down to 0 instantly as the simplest thing to do is just opening the motor circuit, which will immediately kill any power or tractive effort (at the expense of wearing down contactors). Simpler control systems are also more likely to not (directly) regulate the rate of power delivery in traction or braking, while somewhat regulating tractive effort. Good knowledge of the control system used will be needed to faithfully represent how it works.
Luckily, most people don't have good knowledge of control systems used, so behaviors that are merely approximately correct will be appreciated more than the default behavior with instantaneous changes. I will be using this feature in the next version of my physics mods to offer some examples, but this feature is also the main reason I still haven't completed 1.6 versions of my mods despite 1.6 being out for multiple months. It has taken a lot of digging through documentation, even finding lots of new documentation, just to not find any good information on how anything should respond. Then repeat this obsessive research process for dozens of locomotives, each with multiple gear ratios and multiple dynamic brake configurations, and of course it takes an eternity. And despite all that, this does not mean the values I have ended up with are strictly correct or accurate. I don't touch real trains, so I do not have all the qualitative or quantitative data that's out there. Good luck for whoever wants to go through this adventure on their own time!
One More Important Parameter
Now one caveat with all this, setting custom "TractivePowerRamp" rates on a diesel locomotive can cause the power delivered by the locomotive to exceed the power rating of the diesel engine. In real life, this would have consequences like stalling the engine but the diesel engine model doesn't behave that way in OR. Nevertheless, real locomotives have systems to limit power to what the engine can produce, so this can now be enforced in OR too using ORTSTractiveForceIsPowerLimited ( 1 ). Engine RPM will matter, so setting sensible values for the diesel engine RPM increase and decrease rates is still important, and I find people actually tend to set these too high.
Code:
Engine ( Comment ( This only goes in the Engine section of the .eng file. )
Comment ( Default setting is 0 or false, which gives MSTS compatible behavior. )
ORTSTractiveForceIsPowerLimited ( 1 )
)






Comment