Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

 Open Rails

Docs » 8. Open Rails Physics

8. Open Rails Physics


Open Rails physics is in an advanced stage of
development. The physics structure is divided
into logical classes; more generic classes are
parent classes, more specialized classes
inherit proper!es and methods of their parent
class. Therefore, the descrip!on for train cars
physics is also valid for locomo!ves (because
a locomo!ve is a special case of a train car).
All parameters are defined within the .wag or
.eng file. The defini!on is based on MSTS file
format and some addi!onal ORTS based
parameters. To avoid possible conflicts in
MSTS, the ORTS prefix is added to every
OpenRails specific parameter (such as
ORTSMaxTractiveForceCurves ).

The .wag or .eng file may be placed as in


MSTS in the TRAINS\TRAINSET\TrainCar\
folder (where TrainCar is the name of the train
car folder). If OR-specific parameters are
used, or if different .wag or .eng files are used
for MSTS and OR, the preferred solu!on is to
place the OR-specific .wag or .eng file in a
created folder
TRAINS\TRAINSET\TrainCar\OpenRails\ (see

here for more).

For a full list of parameters, see Developing


OR Content - Parameters and Tokens

8.1. Train Cars (WAG, or


Wagon Part of ENG file)
The behavior of a train car is mainly defined
by a resistance / resis!ve force (a force
needed to pull a car). Train car physics also
includes coupler slack and braking. In the
descrip!on below, the Wagon sec!on of the
WAG / ENG file is discussed.

8.1.1. Resistive Forces

Open Rails physics calculates resistance based


on real world physics: gravity, mass, rolling
resistance and op!onally curve resistance.
This is calculated individually for each car in
the train. The program calculates rolling
resistance, or fric!on, based on the Fric!on
parameters in the Wagon sec!on of .wag/.eng
file. Open Rails iden!fies whether the .wag
file uses the FCalc u!lity or other fric!on data.
If FCalc was used to determine the Fric!on
variables within the .wag file, Open Rails
compares that data to the Open Rails Davis
equa!ons to iden!fy the closest match with
the Open Rails Davis equa!on. If no-FCalc
Fric!on parameters are used in the .wag file,
Open Rails ignores those values, subs!tu!ng
its actual Davis equa!on values for the train
car.

A basic (simplified) Davis formula is used in


the following form:

Fres = ORTSDavis_A + speedMpS *


(ORTSDavis_B + ORTSDavis_C * speedMpS2)

Where Fres is the fric!on force of the car. The


rolling resistance can be defined either by
FCalc or ORTSDavis_A, _B and _C
components. If one of the ORTSDavis
components is zero, FCalc is used. Therefore,
e.g. if the data doesn’t contain the B part of
the Davis formula, a very small number should
be used instead of zero.

When a train is ini!ally started, addi!onal


force is needed to overcome the ini!al higher
bearing torque (forces) and track resistance.
Star!ng resistance is calculated automa!cally
by Open Rails based upon empirical
prototypical data at low speeds. By selec!ng
different values for ORTSBearingType different
values of star!ng resistance will be applied.
The Open Rails calcula!on for star!ng
resistance takes into account different
condi!ons, such as weather (for example,
snowing or clear), wagon (axle) load, wheel
bearing temperature and wheel diameter.
Hence when using the OR calcula!on the
correct values should be inserted in
ORTSNumberAxles parameter in the wagon

sec!on, and ORTSNumberDriveAxles in the


engine sec!on. The WheelRadius value
should also be inserted in both sec!ons as
appropriate.

Alterna!vely the low-speed fric!on force can


be manually specified by the user by se#ng
ORTSStandstillFriction and ORTSMergeSpeed .

When running on a curve and if the Curve


dependent resistance op!on is enabled,
addi!onal resistance is calculated, based on
the curve radius, rigid wheel base, track gauge
and super eleva!on. The curve resistance has
its lowest value at the curve’s op!mal speed.
Running at higher or lower speed causes
higher curve resistance. The worst situa!on is
star!ng a train from zero speed. The track
gauge value can be set by ORTSTrackGauge
parameter, otherwise 1435 mm is used. The
rigid wheel base can be also set by
ORTSRigidWheelBase , otherwise the value is

es!mated. Further details are discussed later.

When running on a slope (uphill or downhill),


addi!onal resistance is calculated based on
the car mass taking into account the eleva!on
of the car itself. Interac!on with the
car vibration feature is a known issue (if

the car vibrates the resistance value oscillate).

8.1.2. Coupler Slack

Slack ac!on for couplers is introduced and


calculated the same way as in MSTS.

8.1.3. Hot Wheel Bearings

Open Rails (OR) has instead used a


representa!ve bearing heat model to simulate
the typical outcomes for bearing temperature
hea!ng or cooling effects.

Bearing heats up and cools down as the


train moves and stops.
Bearing resistance in cold weather is
significantly higher then when the bearing
is at its ‘normal’ opera!ng temperature.
Typically railway companies elected to
reduce loads for trains in cold condi!ons.
The OR model will reduce the car
resistance as the bearing heats up, and it
will increase resistance as the bearing
cools down.
OR has a built in temperature model to
determine the ambient temperature. The
ambient temperature is calculated based
upon a world model of the average
temperatures at various la!tudes. OR will
use the la!tude of the route to calculate
the ambient temperature. As ambient
temperature also decreases with height
above sea level, OR takes this into account
as well, and varies the temperature
accordingly.
Depending upon the
ActivityRandomizationLevel se#ng in the

Op!on menu, an overhea!ng bearing


(hotbox) may be randomly ini!alized on
any trailing car in the train (locomo!ves
and tenders are excepted from
overhea!ng bearings). The Hotbox will be
ac!vated randomly within the first 66% of
the ac!vity dura!on. So for example, in an
ac!vity with a 20 minute dura!on, a
hotbox will only be ac!viated in the first
12 minutes of the ac!vity, if it has been
ini!alised.

A special smoke effect, BearingHotboxFX , can


be added adjacent to the wagon hot box. This
will be triggered if the bearing overheats.

8.1.4. Derailment Coefficient

The derailment coefficient indicates the


likelihood that a car or wagon will derail, and
is the ra!o of the lateral force to ver!cal force
ac!ng on the wagon. This concept was first
proposed by Nadal.

The higher the coefficient the higher the risk


that a derailment will occur. Most railway
companies tend to operate at a coefficient
value of less then 0.8 as this gives a
desireable safety margin for the car.

The OR calculated derailment coefficient is


displayed in the Force Informa!on HuD. The
coefficient value will change colour to
indicate the likelihood of the car derailing.
White indicates normal opera!on, yellow
provides a warning indica!on, whilst red
indicates that derailment is extremely likely.

Open Rails uses some standard defaults that


it uses to calculate the derailment coefficient,
however if the modeler desires greater
accuracy the following parameters can be
added to the WAG/ENG file in the wagon
sec!on:

ORTSLengthBogieCentre - length between


bogie centres.

ORTSLengthCarBody - Length between car


ends (typically measured between the coupler
pivot points).

ORTSLengthCouplerFace - length between


coupler faces.

ORTSNumberAxles - number of axles on the


car.

ORTSNumberDriveAxles - number of driven


axles on the locomo!ve. NB: Total axles on
locomo!ve will be ORTSNumberAxles +
ORTSNumberDriveAxles .

ORTSNumberBogies - number of bogies on the


car.

8.1.5. Adhesion of Locomotives –


Settings Within the Wagon
Section of ENG files

MSTS calculates the adhesion parameters


based on a very strange set of parameters
filled with an even stranger range of values.
Since ORTS is not able to mimic the MSTS
calcula!on, a standard method based on the
adhesion theory is used with some known
issues in use with MSTS content.

MSTS Adheasion (sic!) parameters are not


used in ORTS. Instead, a new set of
parameters is used, which must be inserted
within the Wagon sec!on of the .ENG file:

ORTSAdhesion (
ORTSCurtius_Kniffler (A B C D )
)

The A, B and C values are coefficients of a


standard form of various empirical formulas,
e.g. Cur!us-Kniffler or Kother. The D
parameter is used in the advanced adhesion
model described later.

From A, B and C a coefficient CK is computed,


and the adhesion force limit is then calculated
by mul!plica!on of CK by the car mass and
the accelera!on of gravity (9.81), as be&er
explained later.

The adhesion limit is only considered in the


adhesion model of locomo!ves.

The adhesion model is calculated in two


possible ways. The first one – the simple
adhesion model – is based on a very simple
threshold condi!on and works similarly to the
MSTS adhesion model. The second one – the
advanced adhesion model – is a dynamic
model simula!ng the real world condi!ons on
a wheel-to-rail contact and will be described
later. The advanced adhesion model uses
some addi!onal parameters such as:

ORTSAdhesion (
ORTSSlipWarningThreshold ( T )
)

where T is the wheelslip percentage


considered as a warning value to be displayed
to the driver; and:

ORTSAdhesion(
Wheelset (
Axle (
ORTSInertia (
Inertia
)
)
)
)

where Iner!a is the model iner!a in kg.m2


and can be set to adjust the advanced
adhesion model dynamics. The value
considers the iner!a of all the axles and
trac!on drives. If not set, the value is
es!mated from the locomo!ve mass and
maximal power.

The first model – simple adhesion model – is


a simple trac!ve force condi!on-based
computa!on. If the trac!ve force reaches its
actual maximum, the wheel slip is indicated in
HUD view and the trac!ve force falls to 10%
of the previous value. By reducing the thro&le
se#ng adherence is regained. This is called
the simple adhesion model.

The second adhesion model (advanced


adhesion model) is based on a simplified
dynamic adhesion theory. Very briefly, there is
always some speed difference between the
wheel speed of the locomo!ve and the
longitudinal train speed when the trac!ve
force is different from zero. This difference is
called wheel slip / wheel creep. The adhesion
status is indicated in the HUD Force
Informa!on view by the Wheel Slip parameter
and as a warning in the general area of the
HUD view. For simplicity, only one axle model
is computed (and animated). A !l!ng feature
and the independent axle adhesion model will
be introduced in the future.

The heart of the model is the slip


characteris!cs (picture below).

The wheel creep describes the stable area of


the characteris!cs and is used in the most of
the opera!on !me. When the trac!ve force
reaches the actual maximum of the slip
characteris!cs, force transi!on falls down and
more power is used to speed up the wheels,
so called wheel slip.

To avoid the loss of the trac!ve force, use the


thro&le in combina!on with sanding to return
to the stable area (wheel creep area). A
possible sequence of the wheel slip
development is shown on the pictures below.
The Wheel slip value is displayed as a value
rela!ve to the best adhesion condi!ons for
actual speed and weather. The value of 63%
means very good force transi!on. For values
higher than
( ORTSadhesion ( ORTSSlipWarningThreshold ) )

or 70% by default, the Wheel slip warning is


displayed, but the force transi!on is s!ll very
good. This indica!on should warn you to use
the thro&le very carefully. Exceeding 100%,
the Wheel slip message is displayed and the
wheels are star!ng to speed up, which can be
seen on the speedometer or in external view
2. To reduce the wheel slip, use thro"le down,
sanding or the locomo!ve brake.

The actual maximum of the trac!ve force is


based on the Cur!us-Kniffler adhesion theory
and can be adjusted by the aforemen!oned
ORTSCurtius_Kniffler ( A B C D )

parameters, where A, B, C are coefficients of


Cur!us-Kniffler, Kother or similar formula. By
default, Cur!us-Kniffler is used.

= W ⋅ m [kg] ⋅ 9.81 [ 2 ] ⋅ (
m A
FadhMAX km
+ C)
s B + v[ ] h

Where W is the weather coefficient. This


means that the maximum is related to the
speed of the train, or to the weather
condi!ons.

The D parameter is used in an advanced


adhesion model and should always be 0.7.

There are some addi!onal parameters in the


Force Informa!on HUD view. The axle/wheel
is driven by the Axle drive force and braked by
the Axle brake force. The Axle out force is the
output force of the adhesion model (used to
pull the train). To compute the model
correctly the FPS rate needs to be divided by
a Solver dividing value in a range from 1 to 50.
By default, the Runge-Ku&a4 solver is used to
obtain the best results.

In some cases when the CPU load is high, the


!me step for the computa!on may become
very high and the simula!on may start to
oscillate (the Wheel slip rate of change (in the
brackets) becomes very high). You can use the
DebugResetWheelSlip ( <Ctrl+X> keys by

default) command to reset the adhesion


model. If you experience such behavior most
of !me, use the basic adhesion model instead
by pressing DebugToggleAdvancedAdhesion (
<Ctrl+Alt+X> keys by default).

To match some of the real world features, the


Wheel slip event can cause automa!c zero
thro&le se#ng. Use the
Engine (ORTS (ORTSWheelSlipCausesThrottleDown))

Boolean value of the ENG file.

Modern locomo!ves have slip control


systems which automa!cally adjust power,
providing an op!mal trac!ve effort avoiding
wheel slip. The
ORTSSlipControlSystem ( Full ) parameter

can be inserted into the engine sec!on of the


.eng file to indicate the presence of such
system.

Steam locomo!ves will have varying


magnitude of rota!onal forces depending
upon the separa!on between the cylinder
crank angles.

The crank angles for example of a 2 cylinder


locomo!ve has a 90 deg separa!on whereas a
3 cylinder locomo!ve has a 120 deg varia!on.
OR will default to a “common” value for the
number of cylinders defined, but the user can
override this with
“ORTSWheelCrankAngleDifference ( A B C D
)”, where A, B, C and D are the separa!ons for
up to a 4 cylinder locomo!ve. For example, a
4 cylinder locomo!ve can have a separa!on
of 90 deg for each cylinder or some!mes it
has two of the cranks separated by 45 deg
instead. These values can either be in Rad
(default) or Deg. The separa!ons should be
described around the full 360 deg of rota!on,
so for example, a 3 cylinder locomo!ve would
be - ORTSWheelCrankAngleDifference (
0deg, 120deg, 240deg ).

8.2. Engine – Classes of


Motive Power
Open Rails so'ware provides for different
classes of engines: diesel, electric, steam,
control and default. If needed, addi!onal
classes can be created with unique
performance characteris!cs.

8.2.1. Diesel Locomotives

8.2.1.1. Diesel Locomotives in General

The diesel locomo!ve model in ORTS


simulates the behavior of two basic types of
diesel engine driven locomo!ves– diesel-
electric and diesel-mechanical. The diesel
engine model is the same for both types, but
acts differently because of the different type
of load. Basic controls (direc!on, thro&le, and
brakes) are common across all classes of
engines. Diesel engines can be started or
stopped by pressing the START/STOP key
( <Shift+Y> in English keyboards). The
star!ng and stopping sequence is driven by a
starter logic, which can be customized, or is
es!mated by the engine parameters.

The diesel electric locomo!ve uses a diesel


prime mover to generate electricity (using
generators naturally) and this electricity is
then used to drive trac!on motors to turn the
wheels. The other types of diesel locomo!ves
are similar from the perspec!ve that they
have a diesel prime mover, and then some
form of transmission mechanism to transfer
the power output of the prime mover to the
locomo!ve wheels.

In configuring the locomitve correctly it is


important to use the correct power/force
values. The key values required in the ENG
file for a diesel locomo!ve (regardless of
transmission type) are as follows:

ORTSDieselEngineMaxPower ==> sets the


maximum power output at the sha' of the
diesel engine (or prime mover).

MaxPower ==> sets the maximum power at


the rail (provided to the wheels).

MaxForce ==> sets the force that the


locomo!ve is able to apply to the wheels
when star!ng.

MaxContinuousForce ==> is the maximum


force that the locomo!ve can con!nuously
supply to the wheels without exceeding the
design specifica!ons. Typically this is linked to
a par!cular speed (see next parameter).

ORTSSpeedOfMaxContinuousForce ==> is the


speed at which the maximum force will be
applied.

MaxVelocity ==> is the maximum rated


design speed of the locomo!ve. Some
locomo!ves had a speed alarm which applied
the brakes, or set the thro&le to a lower value.
This can be modelled using the
OverspeedMonitor func!on.

ORTSUnloadingSpeed ==> is the locomo!ve


speed when the generator reaches its
maximum voltage, and due to the speed of
the train, the engine starts to ‘unload’.
Typically beyond this speed, power output of
the locomo!ve will decrease.

If using power/force Tables, then some of the


above values will not be required, see the
sec!ons below for details.

8.2.1.1.1. Starting the Diesel Engine

To start the engine, simply press the


START/STOP key once. The direc!on
controller must be in the neutral posi!on
(otherwise, a warning message pops up). The
engine RPM (revolu!ons per minute) will
increase according to its speed curve
parameters (described later). When the RPM
reaches 90% of Star!ngRPM (67% of IdleRPM
by default), the fuel starts to flow and the
exhaust emission starts as well. RPM
con!nues to increase up to
Star!ngConfirma!onRPM (110% of IdleRPM
by default) and the demanded RPM is set to
idle. The engine is now started and ready to
operate.

8.2.1.1.2. Stopping the Diesel Engine

To stop the engine, press the START/STOP


key once. The direc!on controller must be in
the neutral posi!on (otherwise, a warning
message pops up). The fuel flow is cut off and
the RPM will start to decrease according to its
speed curve parameters. The engine is
considered as fully stopped when RPM is
zero. The engine can be restarted even while
it is stopping (RPM is not zero).

8.2.1.1.3. Starting or Stopping Helper


Diesel Engines

By pressing the Diesel helper START/STOP


key ( <Ctrl+Y> on English keyboards), the
diesel engines of helper locomo!ves can be
started or stopped. Also consider
disconnec!ng the unit from the mul!ple-unit
(MU) signals instead of stopping the engine
(see here, Toggle MU connec!on).

It is also possible to operate a locomo!ve


with the own engine off and the helper’s
engine on.

You might also like