Home    Search    Reference Manuals    Up    Return





Users Manual for Program KPF





Table of Contents

Introduction
Command line options
Wheel profile input data
Rail profile input data
Creation of wheel or rail profiles
Wheel/rail interface
Input data commands
Error messages
Output data
Equivalent Conicity
GIP (Gradient Index Profile)
Radial Steering Index
Animate the wheel/rail interface in program GPLOT
Examples




Introduction

KPF is an abbreviation from Swedish for C(K)ontact Point Function. The program creates wheel-rail geometry functions to be used in Gensys. It creates the functions from measured or designed wheel and rail profiles. The program reads wheel and rail profiles from files where the data are organized in a standardized way. These input files are described in sects. 2) and 3) below.




Command line options


Following command line options are understood:

-h = Display help information
-M = Create a Master input data file 
arg(1) = Input data file

If the input data file "arg(1)" has the file extension ".kpff", implies that the ident name $ident will be given the value of "arg(1)" with the extension ".kpff" removed.




Wheel profile input data

The wheel profile is described in Y- and Z- coordinates. Positive direction for the Y-coordinate is toward the center of the track for both wheels. Positive direction for the Z-coordinate is downwards. The origin of the Y-coordinates should be at the radius where the wheel diameter of the wheel is measured, this diameter is sometimes also called the Nominal Running Circle.

Example of a data file describing the wheel profile:

 -60.00000   -2.63568
 -59.90000   -2.62901   # Start as far out on the tread as possible.
 -59.80000   -2.62234
 -59.70000   -2.61568
 -59.60000   -2.60901
 -59.50000   -2.60234
 -59.40000   -2.59568
 -59.30000   -2.58901
 -59.20000   -2.58234
 -59.10000   -2.57568
 -59.00000   -2.56901
 -58.90000   -2.56234
 -58.80000   -2.55568
 -58.70000   -2.54901
 -58.60000   -2.54234
 -58.50000   -2.53568
 -58.40000   -2.52901
 -58.30000   -2.52234
     .          .
     .          .
     .          .
  -0.60000   -0.01959
  -0.50000   -0.01640
  -0.40000   -0.01319
  -0.30000   -0.00994
  -0.20000   -0.00665
  -0.10000   -0.00334
   0.00000    0.00000   #  Origin  Located bo from track center line
   0.10000    0.00337
   0.20000    0.00678   
   0.30000    0.01022   
   0.40000    0.01369   
   0.50000    0.01719
   0.60000    0.02072
     .          .
     .          .
     .          .
  68.80000   16.43012
  68.90000   16.14421
  69.00000   15.84381
  69.10000   15.52675
  69.20000   15.19024
  69.30000   14.83057
  69.40000   14.44267
  69.50000   14.01926   # Stop as far up on the flange as possible.
  69.60000   13.54915   # If the wheel profile is described to the
  69.70000   13.01354   # inside of the wheel, a derailment situation
  69.80000   12.37583   # can be analysed.
  69.90000   11.54163
□



Rail profile input data

The rail profile is described in Y- and Z- coordinates. Positive direction for the Y-coordinate is toward the center of the track for both rails. Positive direction for the Z-coordinate is downwards. The origin of the Y-coordinates should be located at the same lateral spacing as for the wheelset (The Nominal Running Circle), if the lateral spacing between the two rails are correct. If the rails are worn in a way so the gauge has been changed, the location of the origin of the coordinate system of the rail should move the same distance, because gauge deviation should be considered as a track alignment irregularity. Therefore is the origin of the rail profile is defined relative to the Gauge Measuring Position. This point is a point on the rail that is closest to the track center line and is located on the surface of the rail profile and somewhere between Top of Rail and GAUGE_MEAS_INTERVAL beneath Top of Rail.

Example of a data file describing the rail profile:

 -4.09200E+01   3.38029E+01
 -4.09000E+01   3.35366E+01     # Data start on the rail head, as far out
 -4.08800E+01   3.32703E+01     # from track center line as possible.
 -4.08600E+01   3.30041E+01
 -4.08400E+01   3.27379E+01
 -4.08200E+01   3.24716E+01
 -4.08000E+01   3.22053E+01
 -4.07800E+01   3.19390E+01
 -4.07600E+01   3.16727E+01
 -4.07400E+01   3.14064E+01
 -4.07200E+01   3.11401E+01
 -4.07000E+01   3.08739E+01
 -4.06800E+01   3.06076E+01
 -4.06600E+01   3.03413E+01
 -4.06400E+01   3.00750E+01
 -4.06200E+01   2.98087E+01
 -4.06000E+01   2.95424E+01
 -4.05800E+01   2.92761E+01
 -4.05600E+01   2.90099E+01
     .            .
     .            .
     .            .
 -1.07400E+01  -1.84914E-01
 -1.07200E+01  -1.84927E-01
 -1.07000E+01  -1.84939E-01
 -1.06800E+01  -1.84949E-01
 -1.06600E+01  -1.84957E-01
 -1.06400E+01  -1.84965E-01
 -1.06200E+01  -1.84972E-01
 -1.06000E+01  -1.84978E-01
 -1.05800E+01  -1.84981E-01
 -1.05600E+01  -1.84984E-01
 -1.05400E+01  -1.84984E-01     #  Top of Rail
 -1.05200E+01  -1.84984E-01
 -1.05000E+01  -1.84982E-01
 -1.04800E+01  -1.84980E-01
 -1.04600E+01  -1.84976E-01
 -1.04400E+01  -1.84970E-01
 -1.04200E+01  -1.84963E-01
 -1.04000E+01  -1.84954E-01
 -1.03800E+01  -1.84945E-01
 -1.03600E+01  -1.84934E-01
 -1.03400E+01  -1.84922E-01
 -1.03200E+01  -1.84909E-01
 -1.03000E+01  -1.84894E-01
     .            .
     .            .
     .            .
 -2.80000E-01  -9.70667E-03
 -2.60000E-01  -9.02203E-03
 -2.40000E-01  -8.33606E-03
 -2.20000E-01  -7.64875E-03
 -2.00000E-01  -6.96009E-03
 -1.80000E-01  -6.27011E-03
 -1.60000E-01  -5.57879E-03
 -1.40000E-01  -4.88614E-03
 -1.20000E-01  -4.19215E-03
 -1.00000E-01  -3.49683E-03
 -8.00000E-02  -2.80017E-03
 -6.00000E-02  -2.10217E-03
 -4.00000E-02  -1.40283E-03
 -2.00000E-02  -7.02173E-04
  0.00000E+00   0.00000E+00     #  Origin  Located bo from track center line
  2.00000E-02   7.03178E-04
  4.00000E-02   1.40785E-03
  6.00000E-02   2.11386E-03
  8.00000E-02   2.82121E-03
  1.00000E-01   3.52990E-03
  1.20000E-01   4.23991E-03
  1.40000E-01   4.95126E-03
  1.60000E-01   5.66395E-03
  1.80000E-01   6.37798E-03
  2.00000E-01   7.09335E-03
  2.20000E-01   7.81005E-03
  2.40000E-01   8.52808E-03
  2.60000E-01   9.24746E-03
  2.80000E-01   9.96816E-03
     .            .
     .            .
     .            .
  3.23000E+01   1.26487E+01
  3.23200E+01   1.27417E+01
  3.23400E+01   1.28383E+01
  3.23600E+01   1.29387E+01
  3.23800E+01   1.30435E+01
  3.24000E+01   1.31533E+01
  3.24200E+01   1.32690E+01
  3.24400E+01   1.33913E+01
  3.24600E+01   1.35218E+01
  3.24800E+01   1.36622E+01
  3.25000E+01   1.38150E+01     #  Gauge Measuring Position  Located at ORIGIN_TO_GAUGE
  3.25200E+01   1.39845E+01     
  3.25400E+01   1.41774E+01
  3.25600E+01   1.44078E+01
  3.25800E+01   1.47174E+01
  3.26000E+01   1.52784E+01
  3.26200E+01   1.60357E+01
  3.26400E+01   1.68367E+01
  3.26600E+01   1.76377E+01
  3.26800E+01   1.84385E+01
  3.27000E+01   1.92394E+01
  3.27200E+01   2.00402E+01     # Data ends on the rail head, as far
  3.27400E+01   2.08412E+01     # to the track center line as possible.
  3.27600E+01   2.16420E+01     # If the inside of the rail have a vertical
  3.27800E+01   2.24429E+01     # slope manually a fake point can be given
  3.28000E+01   2.32438E+01     # several meters under the ground

Program kpf_rot can be used for zero-setting the rail profile. □




Creation of wheel or rail profiles


To create a rail profile from a drawing is showed in document create_UIC60.html


Translation of measured profiles can be made in one of the following programs:


conv_RS2009_to_kpf_rail
Converts rail profiles measured by the RailScan profile measuring instrument into a format suitable for program KPF.

conv_WS2009_to_kpf_wheel
Converts wheel profiles measured by the WheelScan profile measuring instrument into a format suitable for program KPF.

conv_miniprof2kpf_rail
Converts rail profiles measured by the miniprof profile measuring instrument into a format suitable for program KPF.

conv_miniprof2kpf_wheel
Converts wheel profiles measured by the miniprof profile measuring instrument into a format suitable for program KPF.

conv_strix2kpf
Converts rail profiles measured by the STRIX track recording car into a format suitable for program KPF.



Wheel/rail interface

There are a number of dimensions that define the wheelset and track geometry. Following figure shows how they are defined:

□

Top of Rail is the line you get, when placing a ruler across the rails.

N.B. In the figure above it looks like the origin of Rail and origin of Wheel are located at the same point. But in most cases they are not. Only in very rare cases the contact point coinside with the two origins, and in those cases the two origins are located in the same point.

For the rail:

Origin of Rail is defined to be on surface of the rail, located a lateral distance of bo from track center line.
(See: Rail profile input data)

The Gauge Measuring Position is a point between Top of Rail and GAUGE_MEAS_INTERVAL beneath Top of Rail. The points on right and left side shall be chosen in a way that gives the shortest distance between the rails.

For the wheel:

Origin of Wheel is defined to be on the surface of the wheel, located at a lateral distance of bo from track center line.
(See: Wheel profile input data)

Flange thickness is measured at height FLANGE_THICK_HEIGHT relative to origin of wheel.

Kpf input data:

The following lateral distances must be set in a kpf input data file:

BO = Distance between the Nominal Running Circles
ORIGIN_TO_GAUGE = Distance from the Gauge Measuring Position to theNominal Running Circle
GAUGE_MEAS_INTERVAL = Vertical interval for finding the Gauge Measuring Position
ORIGIN_TO_IWHEEL = Distance between inside wheel and Nominal Running Circle
WPROF_LAT_SHIFT = Possibility to laterally shift the wheels on the axle. E.g. simulating a thin or thick flange.

Standard Gauge 1435 mm (4' 81/2")

Standard gauge track is also sometimes called Stephenson gauge.
The following data are commonly used:

BO = 750 mm
ORIGIN_TO_GAUGE = 32.5 mm
ORIGIN_TO_IWHEEL= 70 mm

Broad Gauge 1520 mm (4' 117/8")

Broad gauge track 1520 are used in many countries formerly belonging to the Soviet Union.
The following data are commonly used:

BO = 790 mm
ORIGIN_TO_GAUGE = 30 mm
ORIGIN_TO_IWHEEL = 70 mm

Broad Gauge 1524 mm (5')

The following data are commonly used:

BO = 792.5 mm
ORIGIN_TO_GAUGE = 30.5 mm
ORIGIN_TO_IWHEEL = 70 mm

Broad Gauge 1676 mm (5' 6")

The following data are commonly used:

BO = 871 mm
ORIGIN_TO_GAUGE = 33 mm
ORIGIN_TO_IWHEEL = 70 mm




Input data commands

Summary of all commands:

BO = Lateral distance from track center line to the origins of the wheel and rail profiles.
BO_MEASURED_AXLE = Defines the lateral semi spacing between the contact points on measured axle.
BL_AXLE = Defines the lateral semi spacing between the journals.
BL_MEASURED_AXLE = Defines the lateral semi spacing between the journals on measured wheelset.
C_FILE = Output file for average radius of contact area.
CHI_MEASURED_AXLE = Angle chi between a vertical line and the profile measuring device.
CONN_BEG_RIGHT = Lateral start displacement, when creating the connection diagram; right side
CONN_BEG_LEFT = Lateral start displacement, when creating the connection diagram; left side
CONN_END_RIGHT = Lateral stop displacement, when creating the connection diagram; right side
CONN_END_LEFT = Lateral stop displacement, when creating the connection diagram; left side
CONN_FILE = Output file for the locations of the connection points
CONN_START = Max negative displacement of wheelset, when creating the wheel/rail-geometry functions
CONN_STOP = Max positive displacement of wheelset, when creating the wheel/rail-geometry functions
DYEFFCON = Vector containing wheelset lateral amplitudes for which wheelset conicities shall be calculated.
EOF = Command which terminates further input data reading
E_MODULUS = The combined modulus of elasticity in wheel and rail.
FLANGE_THICK_HEIGHT = Height above nominal running circle, where the thickness of the flange shall be measured.
FORCE_OUTP = Force KPF to generate output, even if there are problems with the profiles.
FZHR = Vertical load used for smoothening the surface of wheel and rail.
FZHR_MEASURED_AXLE = Vertical wheel load acting on the wheelset during wheel profile measurements.
FI_AXLE_FILE = Output file for the rolling motion of the axle.
FITEPS = Permitted maximum error between calculated points and regression curve.
GAUGE_EFFCON = Vector containing different gauges for which wheelset conicities shall be calculated.
GAUGE_MEAS_INTERVAL = Vertical interval for finding the Gauge Measuring Position.
GPDAT_FILE = Create .gp-file for animation in program GPLOT.
I2CP = Flag controlling the number of simultaneous contact areas.
IDENT = Three ident lines written to output lists and plots.
IBORDER = Flag, indicating how the boundaries on rail- and wheel profiles shall be treated.
ILASER = Indicator for writing the graphs to a printer.
INTP_STEP = Lateral steps when moving the axle over the track.
IPLOT_DIAGS = In detail control the output plotting.
IPLOT_GRID = Flag controlling the plotting of grid patterns.
IPLOT_LTHICK = Setting the line thickness in the output diagrams.
IPLOT_SIGMA = Flag controlling the plotting of the size of the contact point and the maximum contact pressure.
IPLOT3 = Flag controlling the plotting of contact pressure and connection diagrams.
IPLOTG = Flag controlling the plotting of wheel and rail geometries.
IPLOTK = Flag controlling the plotting of wheel/rail-geometry functions.
IROLL = Flag governing if the roll motion of the wheelset shall be considered.
IZERO = Flag that controls the zero-setting of DRFN and ZFN.
KAPPA_FILE = Coefficient of contact angle difference KAPPA.
KPFR_FILE = Output file for the created wheel-rail geometry functions.
KPFR_TYPE = Type of kpfr-file to be written.
KPFL_FILE = Same as KPFR_FILE but where left and right sides have been switched.
LAMBDA_FILE = Conicity table output file.
OCTAVE_FILE = Write stdout to a m-file, readable by octave/matlab
ORIGIN_TO_GAUGE = The distance between the Gauge Measuring Position and the origin of the rail profile.
ORIGIN_TO_IWHEEL = Distance from inside wheel to the origin of the wheel profile.
POISSON = The combined Poisson's ratio in wheel and rail.
POSTFI = Graphical output file to be sent to the printer.
PRE_CONTACT_P = Wheelset angle of attack written to file pre_contactf
PRE_CONTACT_Y = Wheelset lateral displacement written to file pre_contactf
R_AXLE = Defines the radius of the axle of the wheelset.
R_LAT_FILE = Output file for the lateral radiuses in the contact point.
R_MEASURED_AXLE = Defines the radius of the axle on the measured wheelset.
R_WHEEL = Defines the nominal radius of the wheels on the wheelset.
R_WHEEL_LEFT_OFF = Nominal wheel radius offset, left side.
R_WHEEL_RIGHT_OFF = Nominal wheel radius offset, right side.
RFILE = Rail profiles, same on left and right side.
RLFILE = Rail profile, left side.
RLFILE_COMP = Reference profile for comparisons with RLFILE.
RRFILE = Rail profile, right side.
RRFILE_COMP = Reference profile for comparisons with RRFILE.
RR_RL_FILE = Output file for the rolling radius differences.
RSI_FILE = Max rolling radius difference without flange contact.
SIGMA_FILE = Output file for maximum contact stress.
SYMBOLS_CP = Symbols to be plotted for each lateral position of the wheelset.
SYMBOLS_CP_KPFR = Symbols showing the breakpoints of the wheel-rail geometry function.
UIC519_FILE = UIC519/EN15302 conicity table output file.
WPROF_LAT_SHIFT = Shift the wheel profile in lateral direction
WFILE = Wheel profiles, same on left and right side of the wheelset.
WLFILE = Wheel profile, left side.
WLFILE_COMP = Reference profile for comparisons with WLFILE.
WRFILE = Wheel profile, right side.
WRFILE_COMP = Reference profile for comparisons with WLFILE.
X_MID = Sets the value of the X-axis at the midpoint of the axis.
XINT/CM = Sets the scale factor in X-direction
Y_CP1 = Lateral shift of wheelset, where cp1 shall be the active contact point.
YH2CP = Lateral coordinate on the wheel which separates the tread contact surface from the flange contact surface.

Below follows a description of all input commands in alphabetical order and their default values:


BO
Lateral distance from track center line to the origins of the wheel and rail profiles.
The double distance 2*BO, is the same as track width.
For standard Stephenson gauge 1435[mm] BO equals 750 [mm]. For other gauges see Wheel/rail interface.
Declared= Real*4    Default= 750 [mm]

BO_MEASURED_AXLE
Defines the lateral semi spacing between the two contact points on each wheel. For standard gauge BO_MEASURED_AXLE should be 0.75. Parameter BO_MEASURED_AXLE is used for estimating the bending of the axle on which the profile measurements WRFILE, WLFILE took place.
This input data is used when WRFILE and/or WLFILE consists of measured data, and the axle was bending during the measurements due to applied vertical load. How much the measured axle was bending is controlled in the input data R_MEASURED_AXLE and FZHR_MEASURED_AXLE.
More input data related to the bending of the axle of the measured wheelset are: CHI_MEASURED_AXLE, R_MEASURED_AXLE, BO_MEASURED_AXLE, BL_MEASURED_AXLE and FZHR_MEASURED_AXLE.
Declared= Real*4    Default= 0.75 [m]

BL_AXLE
Defines the lateral semi spacing between the center of the journals at the wheelset. More input data related to the bending of the axle are: R_AXLE, BO and R_WHEEL.
Declared= Real*4    Default= 1. [m]

BL_MEASURED_AXLE
Defines the lateral semi spacing between the center of the journals at the wheelset on which the profile measurements WRFILE, WLFILE took place.
This input data is used when WRFILE and/or WLFILE consists of measured data, and the axle was bending during the measurements due to applied vertical load. How much the measured axle was bending is controlled in the input data R_MEASURED_AXLE and FZHR_MEASURED_AXLE.
This input data is used when WRFILE and/or WLFILE consists of measured data, and the axle was bending during the measurements due to applied vertical load. How much the measured axle was bending is controlled in the input data R_MEASURED_AXLE and FZHR_MEASURED_AXLE.
More input data related to the bending of the axle of the measured wheelset are: CHI_MEASURED_AXLE, R_MEASURED_AXLE, BO_MEASURED_AXLE, BL_MEASURED_AXLE and FZHR_MEASURED_AXLE.
Declared= Real*4    Default= 1. [m]

C_FILE
Command C_FILE gives two tables:
  1. Geometric mean of the contact ellipse semi-axles c= √ a⋅b 
  2. Contact ellipse a/b-ratio
Table #1 consists of the following columns:
  1. Lateral displacement of wheelset
  2. Geometric mean c contact area #1, left wheel
  3. Geometric mean c contact area #2, left wheel
  4. Geometric mean c contact area #3, left wheel
  5. Geometric mean c contact area #1, right wheel
  6. Geometric mean c contact area #2, right wheel
  7. Geometric mean c contact area #3, right wheel
Table #2 consists of the following columns:
  1. Lateral displacement of wheelset
  2. Contact ellipse a/b-ratio area #1, left wheel
  3. Contact ellipse a/b-ratio area #2, left wheel
  4. Contact ellipse a/b-ratio area #3, left wheel
  5. Contact ellipse a/b-ratio area #1, right wheel
  6. Contact ellipse a/b-ratio area #2, right wheel
  7. Contact ellipse a/b-ratio area #3, right wheel
The output is canceled if C_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

CHI_MEASURED_AXLE
Angle chi between a vertical line and the profile measuring device.
When using a measuring device e.g. miniprof, the device cannot be mounted directly under the wheelset. Therefore often the measuring device is measuring the wheel profile in an angle chi relative to a vertical line, which leads to that the rotation angle which is caused by applied vertical load on the journals of the wheelset will be reduced to some extent.
This input data is used when WRFILE and/or WLFILE consists of measured data, and the axle was bending during the measurements due to applied vertical load. How much the measured axle was bending is controlled in the input data R_MEASURED_AXLE and FZHR_MEASURED_AXLE.
More input data related to the bending of the axle of the measured wheelset are: CHI_MEASURED_AXLE, R_MEASURED_AXLE, BO_MEASURED_AXLE, BL_MEASURED_AXLE and FZHR_MEASURED_AXLE.
Declared= Real*4    Default= 0.

CONN_BEG_LEFT
Lateral start displacement "dy", when creating wheel/rail interconnection diagram, on left side.
N.B. When the wheelset moves to the right, the value of "dy" increases.
Declared= Real*4    Default= -987.(which stands for auto)

CONN_END_LEFT
Lateral end displacement "dy", when creating wheel/rail interconnection diagram, on left side.
N.B. CONN_END_LEFT should be bigger than CONN_BEG_LEFT.
Declared= Real*4    Default= -987.(which stands for auto)

CONN_BEG_RIGHT
Lateral start displacement "dy", when creating wheel/rail interconnection diagram, on right side.
N.B. When the wheelset moves to the right, the value of "dy" increases.
Declared= Real*4    Default= -987.(which stands for auto)

CONN_END_RIGHT
Lateral end displacement "dy", when creating wheel/rail interconnection diagram, on right side.
N.B. CONN_END_RIGHT should be bigger than CONN_BEG_RIGHT.
Declared= Real*4    Default= -987.(which stands for auto)

CONN_FILE
Command CONN_FILE gives four tables:
  1. Contact point connections wheels, lateral coordinates:
  2. Contact point connections wheels, vertical coordinates:
  3. Contact point connections rails, lateral coordinates:
  4. Contact point connections rails, vertical coordinates:
The value 1.00001E+05 in the columns means that the point is undefined.
The output is canceled if CONN_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

CONN_START
Max negative displacement of wheelset, when creating the wheel/rail-geometry functions.
Declared= Real*4    Default= -190.

CONN_STOP
Max positive displacement of wheelset, when creating the wheel/rail-geometry functions.
Declared= Real*4    Default= 190.

DYEFFCON
Vector containing wheelset lateral amplitudes for which wheelset conicities shall be calculated. The results for the different lateral amplitudes are presented in the diagrams: LAMBDA, KAPPA, EPS and RollAC.
Declared= Real*4(100)    Default= 1, 2, 3

E_MODULUS
The combined modulus of elasticity in wheel and rail.
Declared= Real*4    Default= 2.e11

FLANGE_THICK_HEIGHT
Height above nominal running circle, where the thickness of the flange shall be measured. The value of the flange thickness is shown in standard output and in diagram Wheel/rail interconnections.
Declared= Real*4    Default= 10[mm]
FORCE_OUTP = Force KPF to generate output, even if there are problems with the profiles.

FORCE_OUTP
Force KPF to generate output, even if there are problems with the profiles.
Command FORCE_OUTP accepts the following values:
All = Ignore all kind of problems.
No = Stops execution if problems are encountered.
Declared= Real*4    Default= No

FZHR
Vertical load used for smoothening the surface of the wheel and the rail, and the bending of the axle causing a rotation and a translation of the wheel profile.
Declared= Real*4    Default= 70.e3

FZHR_MEASURED_AXLE
Vertical wheel load under which the wheelset was subjected to when the measurements of the wheel profiles WRFILE, WLFILE took place.
This input data is used when WRFILE and/or WLFILE consists of measured data, and the axle was bending during the measurements due to applied vertical load.
More input data related to the bending of the axle of the measured wheelset are: CHI_MEASURED_AXLE, R_MEASURED_AXLE, BO_MEASURED_AXLE, BL_MEASURED_AXLE and FZHR_MEASURED_AXLE.
Declared= Real*4    Default= 70.e3

FI_AXLE_FILE
Output file for the rolling motion of the axle.
When the axle translates laterally over the track, the axle performs a rotation around the X-axle. To file FI_AXLE_FILE is the rotation angle in [rad] v.s. lateral displacement [mm], printed to a ASCII-file consisting of two columns. The output is canceled if FI_AXLE_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

FITEPS
Permitted maximum error between calculated points and regression curve adapted according to the min square value method.
Declared= Real*4    Default= .25e-2

GAUGE_EFFCON
Vector containing different gauges for which wheelset conicities shall be calculated.
The results for the different gauges are presented in the following diagrams: RR-RL, UIC519, LAMBDA, KAPPA, EPS and RollAC. All other diagrams produced by KPF are presented at nominal track gauge.
Declared= Real*4(20)    Default= 1431, 1435, 1439 [mm]

GAUGE_MEAS_INTERVAL
Vertical interval relative to Top of Rail when finding the Gauge Measuring Position. This point is a point on the rail that is closest to the track center line, and is located on the surface of the rail between Top of Rail and GAUGE_MEAS_INTERVAL beneath.
Declared= Real*4    Default= 14. [mm]

GPDAT_FILE
Create .gp-file for later animation in program GPLOT.
The following runf_model can be used: runf/kpfr_animation.tsimf
If GPDAT_FILE is set equal to '  ' (space), the writing of the .gp-file will be suppressed.
If GPDAT_FILE is set equal to 'auto', the name of the .gp-file will be automatically generated.
Declared= Character*132    Default= 'auto'

I2CP
Flag, governing the number of contact patches to be considered.
The I2CP-variable can be given the following values:
0 = Calculation of wheel-rail geometry functions with one-point contact approximation.
1 = Calculation of wheel-rail geometry functions with two-point contact approximation. In this mode the border between tread and flange must be given in the input data variable YH2CP.
2 = Calculation of wheel-rail geometry functions with two-point simultaneous contact approximation. Program KPF automatically detects the different contact surfaces. In this mode the input data variable Y_CP1 controls for which wheelset lateral shift tread point contact should be present.
3 = Calculation of wheel-rail geometry functions with three-point simultaneous contact approximation. Program KPF automatically detects the different contact surfaces. In this mode the input data variable Y_CP1 controls for which wheelset lateral shift cp1-point contact should be present.
Declared= Integer*4    Default= 3

IDENT1, IDENT2, IDENT3
Three header lines that are written to the output list and to plots.
Declared= Character*80    Default= ""(Blank)

IBORDER
Flag, indicating how the boundaries on rail- and wheel profiles shall be treated. IBORDER can be given the following values:
0 = Yields that the entire contact pressure must be within the boundaries that are given by the profiles. When the contact pressure in the contact surface reaches a boundary, the calculation is interrupted, and thereby the wheel-rail geometry function.
1 = Permits the contact pressure to reach the inner edge of the rail. The boundary that interrupts the wheel-rail geometry function will be governed by the boundary of the wheel flange (when the flange hits the inner edge).
Declared= Integer*4    Default= 0

ILASER
Format for graphic output. Valid values for ILASER are intro_common_commands.html#jILASER
Declared= Integer*4    Default= 9

INTP_STEP
Lateral steps when moving the axle over the track.
The wheel-rail geometry functions are generated by moving the axle over the track in small steps. The lateral steps should be small, in order to make it possible for program KPF to decide if there is one or multiple point contact.
Declared= Real*4    Default= 0.02 [mm]

IPLOT_DIAGS
In detail control the output plotting.
Variable IPLOT_DIAGS is given as a binary number, where "1" means the diagram shall be plotted and "0" implies that the diagram not shall be plotted.
Pos Name Comment
  0 Wheel/rail-profiles The shape of the wheel and rail profiles
  1 Contour contact pressure The contact pressure between wheel and rail projected on the wheel surface
  2 Contact pressure Many small diagrams showing the contact pressure for different lateral positions of the wheelset
  3 Wheel/rail-connection Center of the contact points on wheel and rail, for different lateral positions of the wheelset
  4 Wheelset roll angle Wheelset roll angle as function of lateral displacement of wheelset
  5 DRFN Wheel rolling radius
  6 GAMFN Contact angle
  7 ZFN Vertical wheel lift
  8 ROFN Difference in lateral curvature between the contact surfaces
  9 POSWFN Lateral position of the contact point on wheel
 10 POSRFN Lateral position of the contact point on rail
 11 ZWFN Vertical position of the contact point on wheel
 12 ZRFN Vertical position of the contact point on rail
 13 RR-RL Roll radius difference between left and right wheel
 14 C Geometric mean of the contact ellipse semi-axes a and b
 15 A/B Ratio of the contact ellipse semi-axes a and b
 16 SIGMA Maximum contact stresses in the center of the equivalent contact ellipses, according to Hertz
 17 UIC519 Equivalent Conicity according to UIC519/EN15302
 18 LAMBDA Secant conicity
 19 tan_Ga The sum of the contact angles
 20 KAPPA Coefficient of contact angle difference
 21 EPS Contact angle difference parameter
 22 RollAC Roll angle coefficient
Position 13 and 17 are greyed out in the above table, because these two diagrams cannot be supressed, they must always be generated.
Example:
#                      1111111111222    Position number
#            01234567890123456789012
IPLOT_DIAGS= 00000000000001000100000    # Only generates the two diagram RR-RL and UIC519
IPLOT_DIAGS= 01000000000001000100000    # Generates the two diagram RR-RL and UIC519 plus the contour contact pressure diagram.


IPLOT_GRID
Flag controlling the plotting of grid patterns.
–1 = Suppresses plotting a grid pattern.
0 = Plot a frame around the diagram.
>0 = Plots a grid line every 0.5*IPLOT_GRID [cm].
Declared= Integer*4    Default= 1

IPLOT_LTHICK
Setting the line thickness in the output diagrams.
Declared= Integer*4    Default= 1

IPLOT_SIGMA
Flag controlling the plotting of the size of the contact point and the maximum contact pressure.
When calculating the size of the contact point and the maximum contact pressure, the radius of wheel is read from the input data parameter R_WHEEL and the contact force is read from the input data parameter FZHR . However these diagrams are not transfered to the CALC-program. During analysis in program CALC the wheel radius ro_ and the actual wheel/rail contact force will be used when evaluating the actual size and contact pressure in the contact area. These three diagrams generated by IPLOT_SIGMA shuld only be considered as extra information.
IPLOT_SIGMA can be given the following values:
0 = Suppresses plotting of the above described diagrams.
1 = Plots the size of the contact area and maximum contact pressure.
Declared= Integer*4    Default= 1

IPLOT3
Flag controlling the plotting of the wheel/rail-connection diagrams and the contact pressure diagrams. IPLOT3 can be given the following values:
0 = Suppresses plotting of the above described diagrams.
1 = Plot only the wheel/rail-connection diagrams.
2 = Plot the wheel/rail-connection diagram and a contour plot of the contact pressure.
3 = Plot the wheel/rail-connection diagram and a number of small diagrams showing the wheel/rail-contact pressure v.s. lateral displacement of the wheelset.
4 = Plot the wheel/rail-connection diagram and a contour plot and small diagrams showing the wheel/rail-contact pressure.
Declared= Integer*4    Default= 2

IPLOTG
Flag controlling the plotting of wheel and rail geometries. IPLOTG can be given the following values:
0 = Suppresses plotting of the wheel and rail geometries.
1 = Plot the wheel and rail geometries.
Declared= Integer*4    Default= 1

IPLOTK
Flag controlling the plotting of wheel/rail-geometry functions. IPLOTK can be given the following values:
0 = Suppresses plotting of wheel/rail-geometry functions.
1 = Plots all wheel/rail-geometry functions.
2 = Plots only the conicity diagram LAMBDA.
Declared= Integer*4    Default= 1

IROLL
Flag governing if the roll motion of the wheelset shall be considered or not. The roll motion of the axle can be written into result file FI_AXLE_FILE. IROLL can be given the following values:
0 = The roll motion of the wheelset is not considered.
1 = The roll motion of the wheelset is considered.
Declared= Integer*4    Default= 1

IZERO
Flag that tells if the wheel-rail geometry functions DRFN and ZFN shall be forced to be zero when the lateral displacement between wheel and rail is zero. IZERO can be given the following values:
0 = DRFN and ZFN intersects the origin when DRFN or ZFN are plotted toward the lateral displacement between wheel and rail.
1 = No impact on the curves. The wheel radius and the wheel lift are plotted with the values that wheel and rail data provide.
Declared= Integer*4    Default= 0

KAPPA_FILE
Coefficient of contact angle difference KAPPA.
The same information which are printed in the header of diagram KAPPA can also be written to an ASCII-file. Gauges for which calculations are carried out is explained under GAUGE_EFFCON. Lateral amplitudes for the wheelset are defined under DYEFFCON. The output is canceled if KAPPA_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

KPFR_FILE
Output file for the generated wheel-rail geometry functions. When defining the filename the user has the possibility to use the key-word "$ident". This means that the text string $ident will be replaced with the basename of the kpff-file.
Declared= Character*132    Default= 'kpfr/$ident.kpfr'

KPFR_TYPE
Type of kpfr-file to be written.
Until release.0703 only two simultaneous contact areas per wheel was possible to take into consideration. In newer releases of GENSYS three or more simultaneous contact areas are possible. In previous releases of GENSYS the contact area was named cpt for contact point tread and cpf for contact point flange. In rel.0803 and newer releases of GENSYS the contact areas are denoted cp1, cp2 and cp3 The main calculation program CALC in GENSYS handle several contact areas, however current release of KPF only generates three simultaneous contact areas per wheel.
For backward compatibility reasons the user can choose the names of the wheel/rail-geometry functions. KPFR_TYPE can be given the following two values:
cpt= The wheel/rail-geom functions are named: cpt and cpf.
cp1= The wheel/rail-geom functions are named: cp1, cp2 and cp3.
Declared= Character*4    Default= 'cp1'

KPFL_FILE
Output file for the generated wheel-rail geometry functions. Similar to command KPFR_FILE, but written as if left and right sides have been switched. When defining the filename the user has the possibility to use the key-word "$ident". This means that the text string $ident will be replaced with the basename of the kpff-file.
The output is canceled if KPFL_FILE= '  ' (Space)
Declared= Character*132    Default= '  ' (Space)

LAMBDA_FILE
Conicity table output file. The same information which are printed in the header of diagram LAMBDA can also be written to an ASCII-file.
Gauges for which calculations are carried out is explained under GAUGE_EFFCON.
Lateral amplitudes for the wheelset are defined under DYEFFCON.
When defining the filename the user has the possibility to use the key-word "$ident". This means that the text string $ident will be replaced with the basename of the kpff-file.
The output is canceled if LAMBDA_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

OCTAVE_FILE
Write stdout to a m-file, readable by octave/matlab The same information which is printed to stdout when program KPF is run in a terminal will be written to this file. When defining the filename the user has the possibility to use the key-word "$ident".
E.g. OCTAVE_FILE= m/$ident.m
This means that the text string $ident will be replaced with the basename of the kpff-file. The output is canceled if OCTAVE_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

ORIGIN_TO_GAUGE
The distance between the Gauge Measuring Position and the origin of the rail profile.
More input data related to the axle and rail geometry are: BO and ORIGIN_TO_IWHEEL.
Declared= Real*4    Default= 32.5 [mm]

ORIGIN_TO_IWHEEL
The distance from the inside of the wheel to the Nominal Running Circle of the wheel.
More input data related to the axle and rail geometry are: BO and ORIGIN_TO_GAUGE.
Declared= Real*4    Default= 70 [mm]

POISSON
The combined Poisson's ratio in wheel and rail.
Declared= Real*4    Default= 0.3

POSTFI
Graphical output file to be sent to the printer.
The default extension of the file depends on chosen graphical format, in command ILASER.
Declared= Character*80    Default= '$ident.ext'

PRE_CONTACT_P
Wheelset angle of attack written to file pre_contactf.
If this command is defined in input data, program kpf will generate an input data file for program PRE_CONTACT.
N.B. The left wheel will be analyzed in pre_contact. For a stiff bogie with flange wear, angle PRE_CONTACT_P should be negative.
Declared= Real*4    Default= 0. [mRad]

PRE_CONTACT_Y
Wheelset lateral displacement written to file pre_contactf.
If this command is defined in input data, program kpf will generate an input data file for program PRE_CONTACT. Command PRE_CONTACT_Y must be an even multiple of INTP_STEP.
N.B. The left wheel will be analyzed in pre_contact, if you are interested in flange contact conditions PRE_CONTACT_Y should be negative.
Declared= Real*4    Default= 0. [mm]

R_AXLE
Defines the radius of the axle of the wheelset.
This input data is used for calculating the static bending of the axle due to static vertical load applied in the journals. The bending of the axle tilts the wheels, causing a rotation av a translation of the wheel profile. More input data related to the bending of the axle are: BO, BL_AXLE and R_WHEEL. The bending of the axle of the wheelset is only considered if R_AXLE is given a value less than 1.e20.
Declared= Real*4    Default= 1.e30 [m]

R_LAT_FILE
Output file for the lateral radiuses in the contact point.
The output is written into an ASCII-file, and consists of the following columns:
  1. Lateral displacement of wheelset
  2. Lateral radius, contact area #1, left wheel
  3. Lateral radius, contact area #2, left wheel
  4. Lateral radius, contact area #3, left wheel
  5. Lateral radius, contact area #1, left rail
  6. Lateral radius, contact area #2, left rail
  7. Lateral radius, contact area #3, left rail
  8. Lateral radius, contact area #1, right wheel
  9. Lateral radius, contact area #2, right wheel
  10. Lateral radius, contact area #3, right wheel
  11. Lateral radius, contact area #1, right rail
  12. Lateral radius, contact area #2, right rail
  13. Lateral radius, contact area #3, right rail
The output is canceled if R_LAT_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

R_MEASURED_AXLE
Defines the radius of the axle on the wheelset on which the actual wheel profiles was measured on.
This input data is used for calculating the static bending of the axle on which the wheel profiles WRFILE and WLFILE was measured on. Program KPF will remove the rotation of the wheel profiles due to that the wheelset was subjected to a vertical load during the measurements of the wheel profiles.
This input data is used when WRFILE and/or WLFILE consists of measured data, and the axle was bending during the measurements due to applied vertical load.
More input data related to the bending of the axle of the measured wheelset are: BO_MEASURED_AXLE, BL_MEASURED_AXLE and FZHR_MEASURED_AXLE. The bending of the axle of the measured wheelset is only considered if R_MEASURED_AXLE is given a value less than 1.e20.
Declared= Real*4    Default= 1.e30 [m]

R_WHEEL
Defines the nominal radius of the wheels on the wheelset.
The nominal radius of the wheels is the radius measured on the Nominal Running Circle of the wheels. Measured at ORIGIN_TO_IWHEEL from inside wheel.
Declared= Real*4    Default= 0.5 [m]

R_WHEEL_LEFT_OFF
Nominal wheel radius offset, left side.
Nominal wheel radius is defined with command R_WHEEL. But on a measured wheelset the nominal wheel radius can deviate, and the deviation can be different on left and right side. This deviation affects how the wheelset will run in the track. When the wheelset rolls along the track it also moves laterally in order to get the same rolling radius on its two wheels. The lateral offset of the wheelset will affects the effective conicity. To take this under consideration, the commands R_WHEEL_LEFT_OFF and R_WHEEL_RIGHT_OFF has been introduced.
Declared= Real*4    Default= 0. [mm]

R_WHEEL_RIGHT_OFF
Nominal wheel radius offset, right side.
Nominal wheel radius is defined with command R_WHEEL. But on a measured wheelset the nominal wheel radius can deviate, and the deviation can be different on left and right side. This deviation affects how the wheelset will run in the track. When the wheelset rolls along the track it also moves laterally in order to get the same rolling radius on its two wheels. The lateral offset of the wheelset will affects the effective conicity. To take this under consideration, the commands R_WHEEL_LEFT_OFF and R_WHEEL_RIGHT_OFF has been introduced.
Declared= Real*4    Default= 0. [mm]

RFILE
The input data file for the rail profile.
If the wheel- and rail- profile is defined in WFILE and RFILE, the two wheels of the wheelset is considered to be equal and only one set of wheel-rail geometry functions is written to the output file KPFR_FILE. If the rail profiles are defined in RRFILE and RLFILE, two sets of wheel-rail geometry functions will be written to the output file, one for the right wheel and one for the left wheel. Lines in RFILE beginning with the # character are treated as comments.
For more information please look for file extension .rail.
Declared= Character*132    Default= ""(Blank)

RLFILE
The input data file for the left rail profile. If RLFILE not is defined, RFILE will be used.
Lines in RLFILE beginning with the # character are treated as comments.
For more information please look at intro_file_ext.html#j*.rail or under Rail profile input data.
Declared= Character*132    Default= RFILE

RLFILE_COMP
Reference profile for comparisons with RLFILE. If RLFILE_COMP not is defined, no comparison diagram will be created. Lines in RLFILE beginning with the # character are treated as comments.
For more information please look at intro_file_ext.html#j*.rail or under Rail profile input data.
Declared= Character*132    Default= ""(Blank)

RRFILE
The input data file for the right rail profile. If RRFILE not is defined, RFILE will be used.
Lines in RRFILE beginning with the # character are treated as comments.
For more information please look at intro_file_ext.html#j*.rail or under Rail profile input data.
Declared= Character*132    Default= RFILE

RRFILE_COMP
Reference profile for comparisons with RRFILE. If RRFILE_COMP not is defined, no comparison diagram will be created. Lines in RRFILE beginning with the # character are treated as comments.
For more information please look at intro_file_ext.html#j*.rail or under Rail profile input data.
Declared= Character*132    Default= ""(Blank)

RR_RL_FILE
Output file for the rolling radius differences.
The output is written into an ASCII-file, and consists of the following columns:
1)    Lateral displacement of wheelset
2)    Rolling radius right wheel minus rolling radius left wheel at nominal gauge
The output is canceled if RR_RL_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

RSI_FILE
Max rolling radius difference without flange contact.
The same information which are printed in the header of diagramRR-RL can also be written to an ASCII-file. Gauges for which calculations are carried out is explained under GAUGE_EFFCON. The output is canceled if RSI_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

SIGMA_FILE
Output file for maximum contact stress in equivalent contact ellipses, according to Hertz.
The output is written into an ASCII-file, and consists of the following columns:
1)    Lateral displacement of wheelset
2)    Max. contact stress, contact area #1, left wheel
3)    Max. contact stress, contact area #2, left wheel
4)    Max. contact stress, contact area #3, left wheel
5)    Max. contact stress, contact area #1, right wheel
6)    Max. contact stress, contact area #2, right wheel
7)    Max. contact stress, contact area #3, right wheel
The output is canceled if SIGMA_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

SYMBOLS_CP (1:3)
Symbols to be plotted for each lateral shift of the wheelset. Three values are given under command SYMBOLS_CP, one value for each contact area zone. Valid values for SYMBOLS_CP are described here: intro_common_commands.html#jDOT_TYPE
To only draw the curve, and supress the symbols, set SYMBOLS_CP= 0 0 0
Declared= Integer*4(3)    Default= 401 601 801

SYMBOLS_CP_KPFR (1:3)
Symbols to be plotted at each breakpoint of the wheel-rail geometry function. Three values are given under command SYMBOLS_CP_KPFR, one value for each contact area zone. Valid values for SYMBOLS_CP_KPFR are described here: intro_common_commands.html#jDOT_TYPE
To supress the symbols, set SYMBOLS_CP_KPFR= 0 0 0
Declared= Integer*4(3)    Default= 403 603 803

UIC519_FILE
UIC519/EN15302 conicity table output file. The same information which are printed in the header of diagramUIC519 can also be written to an ASCII-file. Gauges for which calculations are carried out is explained under GAUGE_EFFCON. Lateral amplitudes for the wheelset are defined under DYEFFCON. The output is canceled if UIC519_FILE= '  ' (Space)
Declared= Character*132    Default= '  '

WPROF_LAT_SHIFT
Shifts both wheel profiles laterally on the axle.
A positive value moves the wheels further out. More input data related to the axle and rail geometry are: BO and ORIGIN_TO_IWHEEL.
Declared= Real*4    Default= 0 [mm]

WFILE
The input data file for the wheel profile.
If the wheel- and rail- profile is defined in WFILE and RFILE, the two wheels of the wheelset is considered to be exactly the same and only one set of wheel-rail geometry functions is written to KPFR_FILE. If the wheel profiles are defined via WLFILE and WRFILE, two sets of wheel-rail geometry functions will be written to KPFR_FILE, one for the left side and one for the right side. Lines in WFILE beginning with the # character are treated as comments.
For more information please look for file extension .wheel.
Declared= Character*132    Default= '  ' (Space)

WLFILE
The input data file for the left wheel profile. If WLFILE not is defined, the value of WFILE will be used.
Lines in WLFILE beginning with the # character are treated as comments.
For more information please look at intro_file_ext.html#j*.wheel or under Wheel profile input data.
Declared= Character*132    Default= WFILE

WLFILE_COMP
Reference profile for comparisons with WLFILE. If WLFILE_COMP not is defined, no comparison diagram will be created. Lines in WLFILE beginning with the # character are treated as comments.
For more information please look at intro_file_ext.html#j*.wheel or under Wheel profile input data.
Declared= Character*132    Default= ""(Blank)

WRFILE
The input data file for the right wheel profile. If WRFILE not is defined, WFILE will be used.
Lines in WRFILE beginning with the # character are treated as comments.
For more information please look at intro_file_ext.html#j*.wheel or under Wheel profile input data.
Declared= Character*132    Default= WFILE

WRFILE_COMP
Reference profile for comparisons with WRFILE. If WRFILE_COMP not is defined, no comparison diagram will be created. Lines in WRFILE beginning with the # character are treated as comments.
For more information please look at intro_file_ext.html#j*.wheel or under Wheel profile input data.
Declared= Character*132    Default= ""(Blank)

X_MID
Sets the value of the X-axis at the midpoint of the axis, for all wheel-rail geometry functions.
Declared= Real*4    Default= 0.

XINT/CM
Sets the scale factor in X-direction, for all wheel-rail geometry functions.
Declared= Real*4    Default= 2.

Y_CP1
Lateral shift of wheel, where cp1 shall be the active contact point. Command Y_CP1 requires two values, first value for left side and second value for right side.
N.B. The flanges of the wheels are towards positive Y-coordinates. This is valid for both left and right side.
Declared= Real*4    Default= -18, -18

YH2CP
Lateral coordinate on the wheel which separates the tread contact surface from the flange contact surface. If one argument is given after command YH2CP the same separation coordinate will be used for both wheels. If two arguments are gives after command YH2CP, the first argument defines the separation coordinate on the left wheel and the second argument defines the separation coordinate on the right wheel. Command YH2CP will only be read if input data variable I2CP has been set equal to 1.
Declared= Real*4(2)    Default= 70., 70.

EOF
Command which terminates further input data reading.



Error messages

More wheel and/or rail coordinates needed
This message indicates that the part of the wheel and/or rail that have been digitized is to small, making the area of penetration to cover the entire range that have been given. This makes it impossible for the program to calculate any curves. To ensure that there is information enough available about the profiles, the program demands that the outermost points on the wheel or rail not are parts of the penetration area. If so would be allowed there could be more point further out that also should be taken into account.


RYZH has been smaller then RYZR at some occasion and has at that occasion been set to RYZR+1 (i.e. two point contact)
It may happen that the digitalization of the profiles becomes slightly rough, which could lead to a higher curvature of the wheel profile becomes larger then the curvature of the rail profile at the point of contact. In reality, the lateral curvature of the rail is always larger then the wheel curvature, at least in the contact area. That is the reason why the program assumes that wheel and rail curvatures are very close to each other around the contact point.




Output data

The output data of the program consists of plots and a result file. The plots show the wheel-rail geometry functions for all lateral displacements between wheel and rail. Wheel-rail geometry functions are stored in file KPFR_FILE.

Table of Contents:

Output written to stdout = The shape of the wheel and rail profiles
Generated plots = The shape of the wheel and rail profiles
Animation in program Gplot = The shape of the wheel and rail profiles

Output written to stdout:

(Hover over a line to see an explanation)

-- Info --  Wheel:
            Sdr=   32.50  Flange thickness at 10mm, right wheel

Thickness of the flange measured at FLANGE_THICK_HEIGHT

            Sdl=   32.50  Flange thickness at 10mm, left wheel

Thickness of the flange measured at FLANGE_THICK_HEIGHT

           Sd3r=   42.98  Flange thickness at 3mm, right wheel

Thickness of the flange measured at a height of 3[mm] above
Nominal Running Circle

           Sd3l=   42.98  Flange thickness at 3mm, left wheel

Thickness of the flange measured at a height of 3[mm] above
Nominal Running Circle

            Shr=   28.00  Flange height rel to nom running circle, right wheel

Thickness of the flange measured at FLANGE_THICK_HEIGHT

            Shl=   28.00  Flange height rel to nom running circle, left wheel

Thickness of the flange measured at FLANGE_THICK_HEIGHT

        ztreadr=    0.00  Height nominal running circle right wheel

Nomally the wheel profile is zero-setted at Nominal Running Circle.
An offset in origin-height shown in ztreadl will affect the wheel/rail-geometry functions DRFN and ZFN.
With input data parameter IZERO the user can choose how to handle an offset in wheel radius at Nominal Running Circle.

        ztreadl=    0.00  Height nominal running circle left wheel

Nomally the wheel profile is zero-setted at Nominal Running Circle.
An offset in origin-height shown in ztreadl will affect the wheel/rail-geometry functions DRFN and ZFN.
With input data parameter IZERO the user can choose how to handle an offset in wheel radius at Nominal Running Circle.

          betar=   70.00  Max flange angle, right wheel. Found at Y= 39.32

Maximum flange angle together with the wheel/rail friction coefficient can be used for calculating the limit value of Y/Q ratio.
According to EN14363 Y/Qlim shall be calculated with the following formula:
Y/Qlim= (tan(β) - μ) / (1 + μ∙tan(β))
Where β is the flange angle at the steepest part of the flange, and μ is the friction coefficient.
The Y-value last on the line tells where on the wheel profile the steepest part of the flange is located.

          betal=   70.00  Max flange angle, left wheel. Found at Y= 39.32

Maximum flange angle together with the wheel/rail friction coefficient can be used for calculating the limit value of Y/Q ratio.
According to EN14363 Y/Qlim shall be calculated with the following formula:
Y/Qlim= (tan(β) - μ) / (1 + μ∙tan(β))
Where β is the flange angle at the steepest part of the flange, and μ is the friction coefficient.
The Y-value last on the line tells where on the wheel profile the steepest part of the flange is located.

            qRr=   10.79  Flange flank from flange_thick_height to a node

Flange flank is the lateral distance between flange thickness and a node 2[mm] under flange top Sd.
Please see diagrams at Wheel/rail interconnections

            qRl=   10.79  2mm under flange top, right and left wheel respectively

Flange flank is the lateral distance between flange thickness and a node 2[mm] under flange top Sd.
Please see diagrams at Wheel/rail interconnections

            Sr =  712.50  Lateral distances to flange contact points

Sr is measured from the center of the wheelset to the flange thickness measuring point on the face of the flange.

            Sl =  712.50  taken at height FLANGE_THICK_HEIGHT above nominal running circle

Sl is measured from the center of the wheelset to the flange thickness measuring point on the face of the flange.

            SR = 1425.00  Flange gauge. I.e. total distance Sr+Sl

SR is the distance between the flange thickness measuring points on the two wheels of a wheelset.

            Thr=    0.00  Height of false flange, right wheel

Worn wheels may show a negative the cone angle on the field side.

            Thl=    0.00  Height of false flange, left wheel

Worn wheels may show a negative the cone angle on the field side.

         GIPw_R=    6.45  GIPw, right wheel

Gradient Index Profile, right wheel.

         GIPw_L=    6.45  GIPw, left wheel

Gradient Index Profile, left wheel.

 
-- Info --  Rail:
            Gr =  717.50  Gauge measuring positions, right and left rail

Track gauge is measured GAUGE_MEAS_INTERVAL under Top of Rail.

            Gl =  717.50  taken at GAUGE_MEAS_INTERVAL under top of rail 

Track gauge is measured GAUGE_MEAS_INTERVAL under Top of Rail.

            Ga = 1435.00  Track gauge. I.e. total distance Gr+Gl

Sum of Gr and Gl.

            Gr1=   20.13  Gauge measuring position to the 1mm-point, right rail

Lateral distance between GAUGE_MEAS_INTERVAL and the 1mm-point on top of rail

            Gl1=   20.13  Gauge measuring position to the 1mm-point, left rail

Lateral distance between GAUGE_MEAS_INTERVAL and the 1mm-point on top of rail

            Gr3=    9.75  Gauge measuring position to the 3mm-point, right rail

Lateral distance between GAUGE_MEAS_INTERVAL and the 3mm-point on top of rail

            Gl3=    9.75  Gauge measuring position to the 3mm-point, left rail

Lateral distance between GAUGE_MEAS_INTERVAL and the 3mm-point on top of rail

         GIPr_R=    4.41 (1425)  GIPr, right rail
                    4.94 (1427)
                    5.52 (1429)
                    6.17 (1431)
                    6.87 (1433)
                    7.63 (1435)
                    8.46 (1437)
                    9.34 (1439)
                   10.29 (1441)

Gradient Index Profile for gauges defined in GAUGE_EFFCON

         GIPr_L=    4.41 (1425)  GIPr, left rail
                    4.94 (1427)
                    5.52 (1429)
                    6.17 (1431)
                    6.87 (1433)
                    7.63 (1435)
                    8.46 (1437)
                    9.34 (1439)
                   10.29 (1441)

Gradient Index Profile for gauges defined in GAUGE_EFFCON

Generated plots:

Table of Contents:

Wheel/rail-profiles = The shape of the wheel and rail profiles
Contour contact pressure = the contact pressure between wheel and rail projected on the wheel surface
Contact pressure = Many small diagrams showing the contact pressure for different lateral positions of the wheelset
Wheel/rail interconnections= Center of the contact points on wheel and rail, for different lateral positions of the wheelset
Wheelset roll angle = Wheelset roll angle as function of lateral displacement of wheelset
DRFN = Wheel rolling radius
GAMFN = Contact angle
ZFN = Vertical wheel lift
ROFN = Difference in lateral curvature between the contact surfaces
POSWFN = Lateral position of the contact point on wheel
POSRFN = Lateral position of the contact point on rail
ZWFN = Vertical position of the contact point on wheel
ZRFN = Vertical position of the contact point on rail
RR-RL = Roll radius difference between left and right wheel
C = Geometric mean of the contact ellipse semi-axes a and b
A/B = Ratio of the contact ellipse semi-axes a and b
SIGMA = Maximum contact stresses in the center of the equivalent contact ellipses, according to Hertz
UIC519 = Equivalent Conicity according to UIC519/EN15302
LAMBDA = Secant conicity
tan_Ga = The sum of the contact angles
KAPPA = Coefficient of contact angle difference
EPS = Contact angle difference parameter
RollAC = Roll angle coefficient

Animation in program Gplot

Program KPF also creates a GPdat-file which can be used in GPLOT for animation. In the animation generated by KPF the wheelset slowely moves over the track from the far left to the far right.

Following example shows the change in rolling radius for left and right wheel when the wheelset is moving over the track. The wheel profiles in the example is UIC S1002. The rail profiles in the example is UIC60. The rail profiles have different inclination on left and right side in order to see the influence of rail inclination. The inclination on left rail is 1/40. The inclination on right rail is 1/20.
Wheel profile S1002 is optimised for a rail inclination of 1/40, why the rolling radius on left rail gradually increases as the wheelset is shifted to the left. On the right hand side the wheel and rail does not fit very well together, why there is almost no conicity until the flange hits the rail.
Click on the icon to see the animation: □



Equivalent Conicity

The standards UIC 519 and EN 15302 defines equivalent conicity from the length of the sinusoidal motion:

□



From Klingel's Formula the conicity can be obtained:

□


□

Where:
λ =Cone angle
b0 =Lateral semi-distance between contact points (Standard Gauge: .75[m])
r0 =Nominal Wheel Radius
L =Wave length


The standards UIC 519 and EN 15302 both contains appendixes with verification examples. Comparisons between KPF and the standards are shown below.

On the Y-axis is the equivalent conicity.
On the X-axis is the amplitude of the wheelset.

The small green crosses marks the results calculated by program KPF.
The read line marks the results from the standards.
The green line marks the upper tolerance
The blue line marks the lower tolerance




WheelA RailA

□



WheelB RailA

□



WheelH RailA

□



WheelI RailA

□



WheelA(-2 mm on left wheel diameter) RailA

□



WheelB(-2 mm on left wheel diameter) RailA

□



WheelH(-2 mm on left wheel diameter) RailA

□



WheelI(-2 mm on left wheel diameter) RailA

□



(Right Wheel A - Left Wheel B) RailA

□



As can be seen above, all results are well within the tolerance limits.




GIP

GIP (Gradient Index Profile) reminds on conicities according to UIC519/EN15302, but is trying to separate the conicity into a "wheelset conicity" and a "track conicity".



Definition of GIP Rail

GIP Rail is defined according to the following figure:

□


Definition of GIP Wheel

GIP Wheel is defined according to the following figure:

□


Definition of combined GIP

The indexes above can be combined in order to create a combined GIP for the wheelset running on a track:

GIP= (GIP_L+GIP_R)/2

Where:

GIP_L= 2*(GIPwL-GIPrL)/(GIPwL+GIPrL)   Left side

GIP_R= 2*(GIPwR-GIPrR)/(GIPwR+GIPrR)   Right side



UIC519/EN15302-conicity vs. GIP

Measured wheel profiles has been collected from many different types of vehicles. Some wheelsets has travelled a short distance others has travelled a long distance. Also many different rail profiles has been collected from different track locations, subjected to different amount of traffic tonnage.
If all measued wheel and rail profiles are combined, the following relation between UIC519/EN15302 and GIP can be found:

□

Number of wheelset/track combinations in above figure are 31488, comprising 2*64 wheel profiles and 2*492 rail profiles.

The correlation between GIP and UIC519/EN15302 gets worse as the conicity increases. However this is not important, because a wheelset/track combination that leads to a conicity over ~0.25 is not of interest. All profile combinations that leads to conicities over ~0.25 should be elliminated. Because these wheelset/track combinations may lead to unstable running behaviour of the vehicle.




Radial Steering Index

The radial steering index or RSI is defined as:

□
Where: RE = is the smallest possible curve radius for which it is possible for the wheelset to steer without flange contact.
  R = is the actual curve radius

When qE ≤ 1, radial steering is possible

When qE > 1, radial steering is not possible

RE can be derived from the following inequality:

□
Where: router = Rolling radius of outer wheel
  rinner = Rolling radius of inner wheel
  R = Curve radius
  e = Lateral distance between the Nominal Running Circles. (For standard gauge e= 1.5m)

By removing everything except first order effects the inequality can be rewritten as:

□

Variable RE can be defined as:

□
Where: r0 = Nominal rolling radius of the wheel
  e = Lateral distance between the Nominal Running Circles. (For standard gauge e= 1.5m)
  Δ rE = The rolling radius difference to be found in diagram RR-RL

The above is valid only for a free wheelset rolling along the track. If the wheelset is mounted in a bogie, considerations must be taken in how much the bogie allow the wheelset to steer. To calculate minimum steering curve radius when mounted in a bogie, see lubrication formula




Animate the wheel/rail interface in program GPLOT

Program KPF also writes an output file in GPdat-format. This file can be used to animate the motion of the wheelset when it translates over the track.

Following runf-model of the wheelset can be used for the animation:


##
##
##      Headlines
##      ==========================================================
  head 2 "Single axle modeled with coupling creep_lookuptable_1; Speed=$Vo"

# idebug= 1      # If idebug>0 a memory dump will be writen to file "idebug_file"
# idebug_file= "calc.out"

##
##      Define variables used in the wheel-rail coupling substructure
##      =============================================================
# func const    vkmh=  160          # The initial speed of the vehicle in km/h
# func div_init Vo  = vkmh 3.6      # The initial speed of the vehicle in km/h
  func const    Vo  =  10.
  func const    bo  =  0.75         # Lateral semi-distance between the nominal rolling circles of the wheels

  func const sstart_1= -10.5        # start position vehicle #1
  func const sstart_2= -44          # start position vehicle #2
  func const sstart_3= -68          # start position vehicle #3

  func const     mu_ =  0.5         # Coefficient of friction between wheel and rail

##
##      Define wheel-rail geometry functions
##      ==========================================================
  insert file  $genkpf/S1002t32.5_uic60i40.kpfr
  in_substruct S1002t32.5_uic60i40 [ " " ]      # All wheels in the vehicle
# insert file  $genkpf/cylindric.kpfr
# in_substruct kpf_cylindric [ " " ]            # All wheels in the vehicle
# insert file  $genkpf/kpf_rkona.kpfr
# in_substruct kpf_rkona [ 1 .1 ]

##
##      Pre- & Post- Processing
##      ==========================================================
   if_then_char_init  CalcType .eq. TSIM  .or.
                      CalcType .eq. MODAL
#   pre_process=  'sed s!runf/Master.runf!$CURRENT_FILE! npickf/Master.npickf > npickf/$IDENT.npickf'
#   pre_process=  'npick npickf/$IDENT.npickf'
#   pre_process=  'quasi $CURRENT_FILE'
#   post_process= 'mplot mplotf/Tsim_Safe_OneIdent.mplotf $IDENT'
#   post_process= 'mplot mplotf/critSpeed.mplotf $IDENT'
#   post_process= 'mgv   diags/$IDENT.ps'
   endif

##
##      Define designed track geometry
##      ==========================================================
  func char ctrack_design= Tangent_Track
# func char ctrack_design= Curve_R200_h150_t120
# insert file track/trc_design.ins

  func intpl_r ro_trac_design -100 0.  0 0.   #20. .01    200 .01
  func intpl_r f_trac_design  -100 0.  0 0.   #20. .02    200 .02
  func intpl_r z_trac_design  -100 0.  0 0.   #40. .01    200 .01

##
##      Define track irregularities
##      ==========================================================
  func char ctrack_irreg= Ideal_track
# func char ctrack_irreg Vertdip_sharp_L20_A10
# func char ctrack_irreg= TwistKink.001
# insert file track/trc_irreg.ins

 if_then_char_init ctrack_irreg .eq. Ideal_track
  func const YMtrac 0.001000    # Multiplying factor for lateral irregularities, from mm to m
  func const ZMtrac 0.001000    # Multiplying factor for vertical irregularities, from mm to m
  func const GMtrac 0.001000    # Multiplying factor for gauge irregularities, from mm to m
  func const CMtrac 0.000667    # Multiplying factor for cant irregularities, from mm to rad
  func const Xtrac_start=   0.
  func const Xtrac_stop=  500.
  func intpl_track_irr2 Xtrac_start Xtrac_stop Ideal_track 1435.
 endif

##
##      Modify track gauge
##      ==========================================================
## The average gauge of the track can be modified in two ways:
##
## 1) Automatically by defining the gauge in variable track_width
#  func const track_width= 1435.
#  func mean_r2_init  slask gauge_average spv_trac  Xtrac_start Xtrac_stop
#  func print06_char_init ' '
#  func print06_init gauge_average
#  func operp_init   gauge_dev= 0.001 * ( track_width - 1435. )
##
## 2) Manually by defining the variables gauge_average and gauge_dev
##
    func const gauge_average=1435. # Set the average gauge of the track
 #  func const gauge_dev_=-0.004    # -4 mm narrower track
    func const gauge_dev_= 0.000    #  Do not change the gauge of the track
 #  func const gauge_dev_= 0.004    #  4 mm wider track

##
##      Insertion of standard commands 
##      ==========================================================
  fresp_param  Fourier_CG1 1.e-4  fstart= .05  fstop= 20.   fstep= -1.04
  modal_param  Schur_fact1 1.e-4
  quasi_param  Damped_Tens 1.e-4  1. 20 2.
  tsim_param   heun_u           tstart= .0   tstop= 4.  tstep= 0.001  tout= 0.005
##
  s_var gpdat_r1		# Create a gp-file for animation in gplot
#
  insert file $gensys/calc/insert_files/save_axl1.ins

##
##      Properties
##      ==========================================================
##
  func const acb=    8.0    # half bogie pivot distance (longitudinal)
  func const aba=    1.5    # half wheelset distance within a bogie (long.)
## Carbody (c)
  func const mc=   52000    # mass
## Bogie frames (b)
  func const mb=   10000    # mass
## Wheelsets (w)
  func const ro_=   0.50    # centre of gravity pos., vert. (wheel radius)
  func const mw=    2000    # mass
  func const Jfw=   1200    # moment of inertia, roll
  func const Jkw=    200    # moment of inertia, pitch
  func const Jpw=   1200    # moment of inertia, yaw
##
## Track pieces (t)
  func const mt  1000        # mass
  func const Jft  500        # mass

##
##  Primary suspension
##  ----------------------------------------------------------------
## Primary springs (kzba)
  func const bkzba=   1.0   # spring position, lateral
  func const hkzba=  0.43   # spring position, vertical (for lateral stif.)
##
  func operp_init kzbap.F0= accel.z * ( mc / 8 + mb / 4 ) # Nominal vertical load
  func print06_init kzbap.F0
  coupl p_lin kxbap_    0.0      20e6   # stiffness, longitudinal
  coupl p_lin kybap_    0.0      20e6   # stiffness, lateral
# coupl p_lin kzbap_ -kzbap.F0 1200e3   # stiffness, vertical
  coupl p_lin kzbap_ -kzbap.F0    0e3   # stiffness, vertical
  coupl p_lin cxbap_    0.0       2e3   # viscous damping in spring, longitudinal
  coupl p_lin cybap_    0.0      20e3   # viscous damping in spring, lateral
##
## Lateral bumpstops (kybas, symmetric)
  func const hkybas=   0.4              # bumpstop position, vertical
  coupl p_nlin_s kybasp_ 0.             # bumpstop non-linear stiffness
                 0.025 0.0  0.050 1e6
##
## Primary dampers (czba, hydraulic, vertical)
  func const bczba=  1.0        # damper position, lateral
  func const hczbab= 1.0        # damper position, vertical in bogie
  func const hczbaa= 0.5        # damper position, vertical in wheelset
  coupl p_lin czbap_ 0.0 30e3   # viscous damping

##
##  Wheel-rail contact 
##  Linearized Hertzian stiffness perpendicular to the contact surface
##  ----------------------------------------------------------------
 func operp_init knwr.F0_= ( mc + 2 * mb + 4 * mw ) * accel.z / 8.   # Nominal load
 func print06_init knwr.F0_

 func  const pknwr= 1
 func  intpl_r knwr_     # Stiffness Tread-Rail all wheels
 -1.57     600e6
  0.       600e6
  1.57     600e6
 func  intpl_r cnwr_     # Damping Tread-Rail all wheels
 -1.57     600e3
  0.       600e3
  1.57     600e3
 func  intpl_r knfr_     # Stiffness Flange-Rail all wheels
 -1.57     600e6
  0.       600e6
  1.57     600e6
 func  intpl_r cnfr_     # Damping Flange-Rail all wheels
 -1.57     600e3
  0.       600e3
  1.57     600e3
 func const_block
  kyrt_   =  44.3e6      # Compensation for 600e6 in rail-
  kzrt_   = 232e6        # head
  kzrt.F0_= knwr.F0_
  cyrt_   = 416025
  czrt_   = 416025 #250e3
 end_block

##
##  Track flexibility
##  ----------------------------------------------------------------
  coupl p_lin  kytgp_  0.0   30e6       # Stiffness between track and ground
  coupl p_lin  cytgp_  0.0  175e3       # Damping between track and ground
  coupl p_lin  kztgp_ -knwr.F0_  180e6  # Stiffness between track and ground
  coupl p_lin  cztgp_  0.0  250e3       # Damping between track and ground


##
##      Constraints
##      ==========================================================
  substruct constr_tot [        
  constr fix_rigid_1 $1 x 0.    
  constr fix_rigid_1 $1 y 0.    
  constr fix_rigid_1 $1 z 0.    
  constr fix_rigid_1 $1 f 0.    
  constr fix_rigid_1 $1 k 0.    
  constr fix_rigid_1 $1 p 0.    
   ]

##
##      Model
##      ==========================================================
##
 substruct vhe_model_1 [   # Arg. $1= Number of the vehicle                                     
##                                                                                              
##                                                                                              
## Moving local coordinate systems                                                              
## ===============================                                                              
##                                                                                              
## lsys e_abs_bendrf  l_name   speed      start_pos   curvature      cant          vert_lift    
## ------------------------------------------------------------------------------------------   
# func  intpl_r       Speed_field  insert free_form '(a,a)' track/Speed.txt  # Vo speed in m/s  
# lsys  e_abs_bendrf  esys_$1 Speed_field sstart_1   ro_trac_design f_trac_design z_trac_design 
  lsys  e_abs_bendrf  esys_$1    Vo       sstart_$1  ro_trac_design f_trac_design z_trac_design 
                                                     4 4            4 4           4 4           
##                                                                                              
## lsys l_local  l_name    esys       a     b     h                                             
## -------------------------------------------------                                            
  lsys  l_local  lsc_$1    esys_$1   0.0   0.0   0.0                                            
  lsys  l_local  lsb_$11   lsc_$1    acb   0.0   0.0                                            
  lsys  l_local  lsb_$12   lsc_$1   -acb   0.0   0.0                                            
  lsys  l_local  lsa_$111  lsb_$11   aba   0.0   0.0                                            
  lsys  l_local  lsa_$112  lsb_$11  -aba   0.0   0.0                                            
  lsys  l_local  lsa_$121  lsb_$12   aba   0.0   0.0                                            
  lsys  l_local  lsa_$122  lsb_$12  -aba   0.0   0.0                                            
#                                                                                               
  s_var sngl  lsc_$1.b  s_var sngl  lsc_$1.c  s_var sngl  lsc_$1.h                              
  s_var sngl  lsc_$1.x  s_var sngl  lsc_$1.y  s_var sngl  lsc_$1.z                              
  s_var sngl  lsc_$1.f  s_var sngl  lsc_$1.k  s_var sngl  lsc_$1.p                              
  s_var sngl  lsc_$1.vx s_var sngl  lsc_$1.vy s_var sngl  lsc_$1.vz                             
  s_var sngl  lsc_$1.vf s_var sngl  lsc_$1.vk s_var sngl  lsc_$1.vp                             
  s_var sngl  lsc_$1.ax s_var sngl  lsc_$1.ay s_var sngl  lsc_$1.az                             
  s_var sngl  lsc_$1.af s_var sngl  lsc_$1.ak s_var sngl  lsc_$1.ap                             
#                                                                                               
  s_var sngl  lsb_$11.b  s_var sngl  lsb_$11.c  s_var sngl  lsb_$11.h                           
  s_var sngl  lsb_$11.x  s_var sngl  lsb_$11.y  s_var sngl  lsb_$11.z                           
  s_var sngl  lsb_$11.f  s_var sngl  lsb_$11.k  s_var sngl  lsb_$11.p                           
  s_var sngl  lsb_$11.vx s_var sngl  lsb_$11.vy s_var sngl  lsb_$11.vz                          
  s_var sngl  lsb_$11.vf s_var sngl  lsb_$11.vk s_var sngl  lsb_$11.vp                          
  s_var sngl  lsb_$11.ax s_var sngl  lsb_$11.ay s_var sngl  lsb_$11.az                          
  s_var sngl  lsb_$11.af s_var sngl  lsb_$11.ak s_var sngl  lsb_$11.ap                          
#                                                                                               
  s_var sngl  lsa_$111.b  s_var sngl  lsa_$111.c  s_var sngl  lsa_$111.h                        
  s_var sngl  lsa_$111.x  s_var sngl  lsa_$111.y  s_var sngl  lsa_$111.z                        
  s_var sngl  lsa_$111.f  s_var sngl  lsa_$111.k  s_var sngl  lsa_$111.p                        
  s_var sngl  lsa_$111.vx s_var sngl  lsa_$111.vy s_var sngl  lsa_$111.vz                       
  s_var sngl  lsa_$111.vf s_var sngl  lsa_$111.vk s_var sngl  lsa_$111.vp                       
  s_var sngl  lsa_$111.ax s_var sngl  lsa_$111.ay s_var sngl  lsa_$111.az                       
  s_var sngl  lsa_$111.af s_var sngl  lsa_$111.ak s_var sngl  lsa_$111.ap                       

##                                                                                              
## Vehicle and track masses                                                                     
## ========================                                                                     
##                                                                                              
## mass m_rigid_6  m_name    lsys     acg  bcg  hcg   m   m   m   Jf  Jk  Jp                    
## --------------------------------------------------------------------------                   
  mass m_rigid_6   axl_$111  lsa_$111 0.0  0.0 -ro_   mw  mw  mw  Jfw Jkw Jpw    # axles        
  mass m_rigid_6f  ral_$111r lsa_$111 0.0  .75  0.0   0.0 mt  mt  Jft 0.0 0.0    # rail-pieces  
  mass m_rigid_6f  ral_$111l lsa_$111 0.0 -.75  0.0   0.0 mt  mt  Jft 0.0 0.0    # rail-pieces  
  mass m_rigid_6f  trc_$111  lsa_$111 0.0  0.0  0.0   0.0 mt  mt  Jft 0.0 0.0    # track-pieces 
# mass fixpoint_6  grd_$1    lsc_$1   0.0  0.0  0.0                              # ground points
  mass fixpoint_6  grd_$11   lsb_$11  0.0  0.0  0.0                                             
  mass fixpoint_6  grd_$111  lsa_$111 0.0  0.0  0.0                                             
#                                                                                               
  func operp  axl_$111r.vz= axl_$111.vz + axl_$111.vf                                           
  func operp  axl_$111l.vz= axl_$111.vz - axl_$111.vf                                           
  s_var sngl  axl_$111r.vz                                                                      
  s_var sngl  axl_$111l.vz                                                                      
#                                                                                               
  s_var sngl  axl_$111.Ax                                                                       
  s_var sngl  axl_$111.Ay                                                                       
  s_var sngl  axl_$111.Az                                                                       
  s_var sngl  axl_$111.Af                                                                       
  s_var sngl  axl_$111.Ak                                                                       
  s_var sngl  axl_$111.Ap                                                                       
#                                                                                               
  constr fix_free_1  axl_$111.k=   0.                                                           
  initval set_var    axl_$111.vk -Vo/ro_                                                        
#                                                                                               
  in_substruct constr_tot [ trc_$111  ]                                                         
  in_substruct constr_tot [ ral_$111r ]                                                         
  in_substruct constr_tot [ ral_$111l ]                                                         

##                                                                                              
## Primary suspension:                                                                          
## ===========================                                                                  
  func  intpl_l b_offset= time 0 0  1. .010   #2. .010 #8 .060                                  
  func  operp   b_offset_r= bkzba # + b_offset                                                  
  func  operp   b_offset_l= bkzba # - b_offset                                                  
  s_var sngl    b_offset                                                                        
  s_var sngl    b_offset_r                                                                      
  s_var sngl    b_offset_l                                                                      
  coupl k       kxba$111r grd_$11  aba                      bkzba -ro_   axl_$111 0.0  bkzba -ro_   kxbap_$111r esys_$1  x
  coupl k       kxba$111l grd_$11  aba                     -bkzba -ro_   axl_$111 0.0 -bkzba -ro_   kxbap_$111l esys_$1  x
  coupl k       kyba$111r grd_$11  aba  b_offset_r     -hkzba axl_$111 0.0  bkzba -hkzba kybap_$111r esys_$1  y
  coupl k       kyba$111l grd_$11  aba -b_offset_l     -hkzba axl_$111 0.0 -bkzba -hkzba kybap_$111l esys_$1  y
  coupl k       kzba$111r grd_$11  aba  bkzba  -ro_  axl_$111 0.0  bkzba  -ro_  kzbap_$111r esys_$1  z
  coupl k       kzba$111l grd_$11  aba -bkzba  -ro_  axl_$111 0.0 -bkzba  -ro_  kzbap_$111l esys_$1  z
#                                                                                               
  s_var sngl kxba$111r.dx  s_var var_0 kxba$111r.vx                                             
  s_var sngl kxba$111l.dx  s_var var_0 kxba$111l.vx                                             
  s_var sngl kxba$111r.dy  s_var var_0 kxba$111r.vy                                             
  s_var sngl kxba$111l.dy  s_var var_0 kxba$111l.vy                                             
  s_var sngl kxba$111r.dz  s_var var_0 kxba$111r.vz                                             
  s_var sngl kxba$111l.dz  s_var var_0 kxba$111l.vz                                             
#                                                                                               
  s_var sngl kyba$111r.dx  s_var var_0 kyba$111r.vx                                             
  s_var sngl kyba$111l.dx  s_var var_0 kyba$111l.vx                                             
  s_var sngl kyba$111r.dy  s_var var_0 kyba$111r.vy                                             
  s_var sngl kyba$111l.dy  s_var var_0 kyba$111l.vy                                             
  s_var sngl kyba$111r.dz  s_var var_0 kyba$111r.vz                                             
  s_var sngl kyba$111l.dz  s_var var_0 kyba$111l.vz                                             
#                                                                                               
  s_var sngl kzba$111r.dx  s_var var_0 kzba$111r.vx                                             
  s_var sngl kzba$111l.dx  s_var var_0 kzba$111l.vx                                             
  s_var sngl kzba$111r.dy  s_var var_0 kzba$111r.vy                                             
  s_var sngl kzba$111l.dy  s_var var_0 kzba$111l.vy                                             
  s_var sngl kzba$111r.dz  s_var var_0 kzba$111r.vz                                             
  s_var sngl kzba$111l.dz  s_var var_0 kzba$111l.vz                                             
#                                                                                               
  s_var sngl  kxba$111r.F2x  s_var sngl  kxba$111r.F2y  s_var sngl  kxba$111r.F2z               
  s_var sngl  kxba$111r.M2f  s_var sngl  kxba$111r.M2k  s_var sngl  kxba$111r.M2p               
  s_var sngl  kxba$111l.F2x  s_var sngl  kxba$111l.F2y  s_var sngl  kxba$111l.F2z               
  s_var sngl  kxba$111l.M2f  s_var sngl  kxba$111l.M2k  s_var sngl  kxba$111l.M2p               
  s_var sngl  kyba$111r.F2x  s_var sngl  kyba$111r.F2y  s_var sngl  kyba$111r.F2z               
  s_var sngl  kyba$111r.M2f  s_var sngl  kyba$111r.M2k  s_var sngl  kyba$111r.M2p               
  s_var sngl  kyba$111l.F2x  s_var sngl  kyba$111l.F2y  s_var sngl  kyba$111l.F2z               
  s_var sngl  kyba$111l.M2f  s_var sngl  kyba$111l.M2k  s_var sngl  kyba$111l.M2p               
  s_var sngl  kzba$111r.F2x  s_var sngl  kzba$111r.F2y  s_var sngl  kzba$111r.F2z               
  s_var sngl  kzba$111r.M2f  s_var sngl  kzba$111r.M2k  s_var sngl  kzba$111r.M2p               
  s_var sngl  kzba$111l.F2x  s_var sngl  kzba$111l.F2y  s_var sngl  kzba$111l.F2z               
  s_var sngl  kzba$111l.M2f  s_var sngl  kzba$111l.M2k  s_var sngl  kzba$111l.M2p               
#                                                                                               
  coupl c      cxba$111r  grd_$11 aba  bkzba  -ro_   axl_$111 0.0  bkzba  -ro_   cxbap_$111r esys_$1  x
  coupl c      cxba$111l  grd_$11 aba -bkzba  -ro_   axl_$111 0.0 -bkzba  -ro_   cxbap_$111l esys_$1  x
  coupl c      cyba$111r  grd_$11 aba  bkzba  -ro_   axl_$111 0.0  bkzba  -ro_   cybap_$111r esys_$1  y
  coupl c      cyba$111l  grd_$11 aba -bkzba  -ro_   axl_$111 0.0 -bkzba  -ro_   cybap_$111l esys_$1  y
  coupl c      czba$111r  grd_$11 aba  bkzba  -ro_   axl_$111 0.0  bkzba  -ro_   czbap_$111r esys_$1  z
  coupl c      czba$111l  grd_$11 aba -bkzba  -ro_   axl_$111 0.0 -bkzba  -ro_   czbap_$111l esys_$1  z
#                                                                                               
  s_var sngl cxba$111r.dx  s_var var_0 cxba$111r.vx                                             
  s_var sngl cxba$111l.dx  s_var var_0 cxba$111l.vx                                             
  s_var sngl cxba$111r.dy  s_var var_0 cxba$111r.vy                                             
  s_var sngl cxba$111l.dy  s_var var_0 cxba$111l.vy                                             
  s_var sngl cxba$111r.dz  s_var var_0 cxba$111r.vz                                             
  s_var sngl cxba$111l.dz  s_var var_0 cxba$111l.vz                                             
#                                                                                               
  s_var sngl cyba$111r.dx  s_var var_0 cyba$111r.vx                                             
  s_var sngl cyba$111l.dx  s_var var_0 cyba$111l.vx                                             
  s_var sngl cyba$111r.dy  s_var var_0 cyba$111r.vy                                             
  s_var sngl cyba$111l.dy  s_var var_0 cyba$111l.vy                                             
  s_var sngl cyba$111r.dz  s_var var_0 cyba$111r.vz                                             
  s_var sngl cyba$111l.dz  s_var var_0 cyba$111l.vz                                             
#                                                                                               
  s_var sngl czba$111r.dx  s_var var_0 czba$111r.vx                                             
  s_var sngl czba$111l.dx  s_var var_0 czba$111l.vx                                             
  s_var sngl czba$111r.dy  s_var var_0 czba$111r.vy                                             
  s_var sngl czba$111l.dy  s_var var_0 czba$111l.vy                                             
  s_var sngl czba$111r.dz  s_var var_0 czba$111r.vz                                             
  s_var sngl czba$111l.dz  s_var var_0 czba$111l.vz                                             
#                                                                                               
  s_var sngl  cxba$111r.F2x  s_var sngl  cxba$111r.F2y  s_var sngl  cxba$111r.F2z               
  s_var sngl  cxba$111r.M2f  s_var sngl  cxba$111r.M2k  s_var sngl  cxba$111r.M2p               
  s_var sngl  cxba$111l.F2x  s_var sngl  cxba$111l.F2y  s_var sngl  cxba$111l.F2z               
  s_var sngl  cxba$111l.M2f  s_var sngl  cxba$111l.M2k  s_var sngl  cxba$111l.M2p               
  s_var sngl  cyba$111r.F2x  s_var sngl  cyba$111r.F2y  s_var sngl  cyba$111r.F2z               
  s_var sngl  cyba$111r.M2f  s_var sngl  cyba$111r.M2k  s_var sngl  cyba$111r.M2p               
  s_var sngl  cyba$111l.F2x  s_var sngl  cyba$111l.F2y  s_var sngl  cyba$111l.F2z               
  s_var sngl  cyba$111l.M2f  s_var sngl  cyba$111l.M2k  s_var sngl  cyba$111l.M2p               
  s_var sngl  czba$111r.F2x  s_var sngl  czba$111r.F2y  s_var sngl  czba$111r.F2z               
  s_var sngl  czba$111r.M2f  s_var sngl  czba$111r.M2k  s_var sngl  czba$111r.M2p               
  s_var sngl  czba$111l.F2x  s_var sngl  czba$111l.F2y  s_var sngl  czba$111l.F2z               
  s_var sngl  czba$111l.M2f  s_var sngl  czba$111l.M2k  s_var sngl  czba$111l.M2p               

##                                                                                              
## Couplings between wheels and rails                                                           
## ===========================================                                                  
#                                                                                               
  func tral_interp_spline $111                                                                  
  func operp cpa_$111r.ao= axl_$111.x - axl_$111.p * bo                                         
  func operp cpa_$111l.ao= axl_$111.x + axl_$111.p * bo                                         
#                                                                                               
  coupl creep_lookuptable_1 cp1_$111r axl_$111  0.0  bo  0.0  ral_$111r cpa_$111r.ao  bo  0.0   esys_$1  m
               tral$111r.y tral$111r.z tral$111r.vy tral$111r.vz                                
                 mu_$111r1/0.6  mu_$111r1/0.6  mu_$111r1/0.6      # mulfact                     
               { cp1_zfn_$111r     | cp1_zfn_r }                                                
               { cp1_drfn_$111r    | cp1_drfn_r }                                               
               { cp1_gamfn_$111r   | cp1_gamfn_r }                                              
               { cp1_rofn_$111r    | cp1_rofn_r }                                               
               { cp1_poswfn_$111r  | cp1_poswfn_r }                                             
               { cp1_posrfn_$111r  | cp1_posrfn_r }                                             
                 knwr.F0_cp1$111r  knwr_$111r1  cnwr_$111r1                                     
                 2.05e11 .3                                                                     
                  mu_$111r1 ro_$111r                                                            
                  1e99                     # Vertical radius of rail                            
  coupl creep_lookuptable_1 cp1_$111l axl_$111 0.0 -bo  0.0   ral_$111l cpa_$111l.ao -bo  0.0   esys_$1  m
               tral$111l.y tral$111l.z tral$111l.vy tral$111l.vz                                
                 mu_$111l1/0.6  mu_$111l1/0.6  mu_$111l1/0.6      # mulfact                     
               { cp1_zfn_$111l     | cp1_zfn_l    }                                             
               { cp1_drfn_$111l    | cp1_drfn_l   }                                             
               { cp1_gamfn_$111l   | cp1_gamfn_l  }                                             
               { cp1_rofn_$111l    | cp1_rofn_l   }                                             
               { cp1_poswfn_$111l  | cp1_poswfn_l }                                             
               { cp1_posrfn_$111l  | cp1_posrfn_l }                                             
                 knwr.F0_cp1$111l  knwr_$111l1  cnwr_$111l1                                     
                 2.05e11 .3                                                                     
                  mu_$111l1 ro_$111l                                                            
                  1e99                     # Vertical radius of rail                            
#                                                                                               
  coupl creep_lookuptable_1 cp2_$111r axl_$111  0.0  bo  0.0  ral_$111r cpa_$111r.ao  bo  0.0   esys_$1  m
               tral$111r.y tral$111r.z tral$111r.vy tral$111r.vz                                
                 mu_$111r2/0.6  mu_$111r2/0.6  mu_$111r2/0.6      # mulfact                     
               { cp2_zfn_$111r     | cp2_zfn_r    }                                             
               { cp2_drfn_$111r    | cp2_drfn_r   }                                             
               { cp2_gamfn_$111r   | cp2_gamfn_r  }                                             
               { cp2_rofn_$111r    | cp2_rofn_r   }                                             
               { cp2_poswfn_$111r  | cp2_poswfn_r }                                             
               { cp2_posrfn_$111r  | cp2_posrfn_r }                                             
                 knwr.F0_cp2$111r  knwr_$111r2  cnwr_$111r2                                     
                 2.05e11 .3                                                                     
                  mu_$111r2 ro_$111r                                                            
                  1e99                     # Vertical radius of rail                            
  coupl creep_lookuptable_1 cp2_$111l axl_$111 0.0 -bo  0.0   ral_$111l cpa_$111l.ao -bo  0.0   esys_$1  m
               tral$111l.y tral$111l.z tral$111l.vy tral$111l.vz                                 
                 mu_$111l2/0.6  mu_$111l2/0.6  mu_$111l2/0.6      # mulfact                     
               { cp2_zfn_$111l     | cp2_zfn_l    }                                             
               { cp2_drfn_$111l    | cp2_drfn_l   }                                             
               { cp2_gamfn_$111l   | cp2_gamfn_l  }                                             
               { cp2_rofn_$111l    | cp2_rofn_l   }                                             
               { cp2_poswfn_$111l  | cp2_poswfn_l }                                             
               { cp2_posrfn_$111l  | cp2_posrfn_l }                                             
                 knwr.F0_cp2$111l  knwr_$111l2  cnwr_$111l2                                     
                 2.05e11 .3                                                                     
                  mu_$111l2 ro_$111l                                                            
                  1e99                     # Vertical radius of rail                            
#                                                                                               
  coupl creep_lookuptable_1 cp3_$111r axl_$111  0.0  bo  0.0  ral_$111r cpa_$111r.ao  bo  0.0   esys_$1  m
               tral$111r.y tral$111r.z tral$111r.vy tral$111r.vz                                
                 mu_$111r3/0.6  mu_$111r3/0.6  mu_$111r3/0.6      # mulfact                     
               { cp3_zfn_$111r     | cp3_zfn_r    }                                             
               { cp3_drfn_$111r    | cp3_drfn_r   }                                             
               { cp3_gamfn_$111r   | cp3_gamfn_r  }                                             
               { cp3_rofn_$111r    | cp3_rofn_r   }                                             
               { cp3_poswfn_$111r  | cp3_poswfn_r }                                             
               { cp3_posrfn_$111r  | cp3_posrfn_r }                                             
                 knwr.F0_cp3$111r  knwr_$111r3  cnwr_$111r3                                     
                 2.05e11 .3                                                                     
                  mu_$111r3 ro_$111r                                                            
                  1e99                     # Vertical radius of rail                            
  coupl creep_lookuptable_1 cp3_$111l axl_$111 0.0 -bo  0.0   ral_$111l cpa_$111l.ao -bo  0.0   esys_$1  m
               tral$111l.y tral$111l.z tral$111l.vy tral$111l.vz                                
                 mu_$111l3/0.6  mu_$111l3/0.6  mu_$111l3/0.6      # mulfact                     
               { cp3_zfn_$111l     | cp3_zfn_l    }                                             
               { cp3_drfn_$111l    | cp3_drfn_l   }                                             
               { cp3_gamfn_$111l   | cp3_gamfn_l  }                                             
               { cp3_rofn_$111l    | cp3_rofn_l   }                                             
               { cp3_poswfn_$111l  | cp3_poswfn_l }                                             
               { cp3_posrfn_$111l  | cp3_posrfn_l }                                             
                 knwr.F0_cp3$111l  knwr_$111l3  cnwr_$111l3                                     
                 2.05e11 .3                                                                     
                  mu_$111l3 ro_$111l                                                            
                  1e99                     # Vertical radius of rail                            
#                                                                                               
  s_var sngl cp1_$111r.dx  s_var sngl cp1_$111r.vx                                              
  s_var sngl cp1_$111r.dy  s_var sngl cp1_$111r.vy                                              
  s_var sngl cp1_$111r.dz  s_var sngl cp1_$111r.vz                                              
  s_var sngl cp1_$111r.df  s_var sngl cp1_$111r.vf                                              
  s_var sngl cp1_$111r.dk  s_var sngl cp1_$111r.vk                                              
  s_var sngl cp1_$111r.dp  s_var sngl cp1_$111r.vp                                              
#                                                                                               
  s_var sngl cp1_$111l.dx  s_var sngl cp1_$111l.vx                                              
  s_var sngl cp1_$111l.dy  s_var sngl cp1_$111l.vy                                              
  s_var sngl cp1_$111l.dz  s_var sngl cp1_$111l.vz                                              
  s_var sngl cp1_$111l.df  s_var sngl cp1_$111l.vf                                              
  s_var sngl cp1_$111l.dk  s_var sngl cp1_$111l.vk                                              
  s_var sngl cp1_$111l.dp  s_var sngl cp1_$111l.vp                                              
#                                                                                               
  s_var sngl cp1_$111r.F1x  s_var sngl cp1_$111r.F1y  s_var sngl cp1_$111r.F1z                  
  s_var sngl cp1_$111r.M1f  s_var sngl cp1_$111r.M1k  s_var sngl cp1_$111r.M1p                  
  s_var sngl cp1_$111r.F2x  s_var sngl cp1_$111r.F2y  s_var sngl cp1_$111r.F2z                  
  s_var sngl cp1_$111r.M2f  s_var sngl cp1_$111r.M2k  s_var sngl cp1_$111r.M2p                  
#                                                                                               
  s_var sngl cp1_$111l.F1x  s_var sngl cp1_$111l.F1y  s_var sngl cp1_$111l.F1z                  
  s_var sngl cp1_$111l.M1f  s_var sngl cp1_$111l.M1k  s_var sngl cp1_$111l.M1p                  
  s_var sngl cp1_$111l.F2x  s_var sngl cp1_$111l.F2y  s_var sngl cp1_$111l.F2z                  
  s_var sngl cp1_$111l.M2f  s_var sngl cp1_$111l.M2k  s_var sngl cp1_$111l.M2p                  

##                                                                                              
## Lateral couplings between track and ground.                                                  
## ===========================================                                                  
##                                                                                              
## coupl k c_name    body1    a1 b1 h1  body2    a2 b2 h2  prop   esys   dire                   
## ----------------------------------------------------------------------------                 
  coupl k  kytg$111  trc_$111 0. -.25 0.172  grd_$111 0. 0.25 0.172  kytgp_ esys_$1  cy         
  coupl c  cytg$111  trc_$111 0. -.25 0.172  grd_$111 0. 0.25 0.172  cytgp_ esys_$1   y         

##                                                                                              
## Vertical couplings between track and ground.                                                 
## ===========================================                                                  
##                                                                                              
## coupl k c_name     body1    a1  b1  h1  body2    a2  b2  h2  prop   esys   dire              
## ------------------------------------------------------------------------------               
  coupl k  kztg$111r  trc_$111 0. 0.75 0.172  grd_$111 0. 0.75 0.672  kztgp_ esys_$1  cz        
  coupl c  cztg$111r  trc_$111 0. 0.75 0.172  grd_$111 0. 0.75 0.672  cztgp_ esys_$1   z        
  coupl k  kztg$111l  trc_$111 0. -.75 0.172  grd_$111 0. -.75 0.672  kztgp_ esys_$1  cz        
  coupl c  cztg$111l  trc_$111 0. -.75 0.172  grd_$111 0. -.75 0.672  cztgp_ esys_$1   z        

##                                                                                              
##  Graphical representation of the bodies                                                      
##  **********************************************                                              
##                                                                                              
## body type        m_name            geometry                                                  
## ---------------------------------------------------------------------------                  
  body whe_set_mass  axl_$111   ro_   bo                                                        
  body box_mass      ral_$111r 0.5 -.5  0.05 -.05 0.172 0.                                      
  body box_mass      ral_$111l 0.5 -.5  0.05 -.05 0.172 0.                                      
            func const B_trc_$1= 2.                                                             
  body figure_mass trc_$111  1 5  0.5  B_trc_$1 0.172                                           
                                  0.5 -B_trc_$1 0.172                                           
                                 -0.5 -B_trc_$1 0.172                                           
                                 -0.5  B_trc_$1 0.172                                           
                                  0.5  B_trc_$1 0.172                                           
#                                                                                               
  s_var gpdat_r1                                                                                
#                                                                                               
  s_var gpdat_force1    cp1_$111r.F1x   # Acting with positive sign                             
  s_var gpdat_force1    cp1_$111r.F1y   # on wheelset                                           
  s_var gpdat_force1    cp1_$111r.F1z                                                           
  s_var gpdat_force1    cp1_$111l.F1x                                                           
  s_var gpdat_force1    cp1_$111l.F1y                                                           
  s_var gpdat_force1    cp1_$111l.F1z                                                           
#                                                                                               
  s_var gpdat_force1    kxba$111r.F2x   # Acting with positive sign                             
  s_var gpdat_force1    kyba$111r.F2y   # on wheelset                                           
  s_var gpdat_force1    kzba$111r.F2z                                                           
  s_var gpdat_force1    kxba$111l.F2x                                                           
  s_var gpdat_force1    kyba$111l.F2y                                                           
  s_var gpdat_force1    kzba$111l.F2z                                                           
#                                                                                               
  s_var gpdat_wheel_info $111l  lsa_$111.b  $genkpf/../w_prof/EN13715.2006/ENS1002t32.5.wheel   
  s_var gpdat_wheel_info $111r  lsa_$111.b  $genkpf/../w_prof/EN13715.2006/ENS1002t32.5.wheel   
#                                                                                               
  s_var gpdat_rail_info_left                                                                    
                         0.,     $genkpf/../r_prof/uic60/uic60i40.rail                          
                       100.,     $genkpf/../r_prof/uic60/uic60i40.rail                          
  s_var gpdat_rail_info_right                                                                   
                         0.,     $genkpf/../r_prof/uic60/uic60i40.rail                          
                       100.,     $genkpf/../r_prof/uic60/uic60i40.rail                          
#                                                                                               
  in_substruct save_axl1 [ $111 ]                                                               
 ]

  in_substruct vhe_model_1 [ 1 ]   # Arg. $1= Number of the vehicle

  s_var sngl cp1_111r.vux
  s_var sngl cp1_111r.vuy
  s_var sngl cp1_111r.vuz
  s_var var_0 cp1_111r.eta
  s_var var_0 cp1_111r.nux
  s_var var_0 cp1_111r.nuy
  s_var var_0 cp1_111r.spin
  s_var var_0 cp1_111r.a
  s_var var_0 cp1_111r.b
  s_var var_0 cp1_111r.a/b
#
  s_var sngl cp1_111l.vux
  s_var sngl cp1_111l.vuy
  s_var sngl cp1_111l.vuz
  s_var var_0 cp1_111l.eta
  s_var var_0 cp1_111l.nux
  s_var var_0 cp1_111l.nuy
  s_var var_0 cp1_111l.spin
  s_var var_0 cp1_111l.a
  s_var var_0 cp1_111l.b
  s_var var_0 cp1_111l.a/b
#
  s_var sngl cp1_111r.z
  s_var sngl cp1_111r.irx
  s_var sngl cp1_111r.iry
  s_var sngl cp1_111r.posw
  s_var sngl cp1_111l.z
  s_var sngl cp1_111l.irx
  s_var sngl cp1_111l.iry
  s_var sngl cp1_111l.posw
#
  func operp cp1_111r.Ft= sqrt( cp1_111r.Fx * cp1_111r.Fx - cp1_111r.Fy * cp1_111r.Fy )
  func operp cp1_111r.my= cp1_111r.Ft / cp1_111r.Fn
  s_var sngl cp1_111r.Ft
  s_var sngl cp1_111r.my
  func operp cp1_111l.Ft= sqrt( cp1_111l.Fx * cp1_111l.Fx - cp1_111l.Fy * cp1_111l.Fy )
  func operp cp1_111l.my= cp1_111l.Ft / cp1_111l.Fn
  s_var sngl cp1_111l.Ft
  s_var sngl cp1_111l.my

#  if_then_char_init  CalcType .eq. TSIM  .or.
#                     CalcType .eq. MODAL
#   initval read_gpdat gp/$IDENT.gp 1
#  endif

  func operp cp1_111.F1y= cp1_111r.F1y + cp1_111l.F1y
  func operp kxba111.F2y= kxba111r.F2y + kxba111l.F2y
  func operp kyba111.F2y= kyba111r.F2y + kyba111l.F2y
  func operp kzba111.F2y= kzba111r.F2y + kzba111l.F2y
  func operp cxba111.F2y= cxba111r.F2y + cxba111l.F2y
  func operp cyba111.F2y= cyba111r.F2y + cyba111l.F2y
  func operp czba111.F2y= czba111r.F2y + czba111l.F2y
#
  s_var sngl cp1_111.F1y
  s_var sngl kxba111.F2y
  s_var sngl kyba111.F2y
  s_var sngl kzba111.F2y
  s_var sngl cxba111.F2y
  s_var sngl cyba111.F2y
  s_var sngl czba111.F2y

  func operp cp1_111.F1z= cp1_111r.F1z + cp1_111l.F1z
  func operp kxba111.F2z= kxba111r.F2z + kxba111l.F2z
  func operp kyba111.F2z= kyba111r.F2z + kyba111l.F2z
  func operp kzba111.F2z= kzba111r.F2z + kzba111l.F2z
  func operp cxba111.F2z= cxba111r.F2z + cxba111l.F2z
  func operp cyba111.F2z= cyba111r.F2z + cyba111l.F2z
  func operp czba111.F2z= czba111r.F2z + czba111l.F2z
#
  s_var sngl cp1_111.F1z
  s_var sngl kxba111.F2z
  s_var sngl kyba111.F2z
  s_var sngl kzba111.F2z
  s_var sngl cxba111.F2z
  s_var sngl cyba111.F2z
  s_var sngl czba111.F2z

  func operp cp1_111.M1f= cp1_111r.M1f + cp1_111l.M1f
  func operp kxba111.M2f= kxba111r.M2f + kxba111l.M2f
  func operp kyba111.M2f= kyba111r.M2f + kyba111l.M2f
  func operp kzba111.M2f= kzba111r.M2f + kzba111l.M2f
  func operp cxba111.M2f= cxba111r.M2f + cxba111l.M2f
  func operp cyba111.M2f= cyba111r.M2f + cyba111l.M2f
  func operp czba111.M2f= czba111r.M2f + czba111l.M2f
#
  s_var sngl cp1_111.M1f
  s_var sngl kxba111.M2f
  s_var sngl kyba111.M2f
  s_var sngl kzba111.M2f
  s_var sngl cxba111.M2f
  s_var sngl cyba111.M2f
  s_var sngl czba111.M2f

eof



Examples:

Example 1)

Masterfile for a typical calculation of wheel-rail geometry. The same wheel- and rail- profiles are used on both sides.


##
##    Input data for program "kpf"
##

  ident1= 'Left wheel:S1002t32.5.wheel   Right wheel:S1002t32.5.wheel'
  wfile = '$genkpf/../w_prof/S1002/S1002t32.5.wheel'
  wlfile_comp= '$genkpf/../w_prof/EN13715.2006/ENS1002t32.5.wheel'
  wrfile_comp= '$genkpf/../w_prof/EN13715.2006/ENS1002t32.5.wheel'

  ident2= 'Left rail:uic60i40            Right rail:uic60i40'
  rfile = '$genkpf/../r_prof/uic60/uic60i40.rail'
  rlfile_comp= '$genkpf/../r_prof/uic60/uic60i40.rail'
  rrfile_comp= '$genkpf/../r_prof/uic60/uic60i40.rail'

  iscren= 0,            # Select screen display
  ilaser= 9,            # Select laser printer output

  fzhr = 70000          # Vertical load on contact surface when evaluating the
                        # wheel-rail geometry functions.

  ident3='wprof_lat_shift= 0    Gauge= 1425-1441'

  kpfr_type= 'cp1'

  bo       =  750.       # Nominal contact patches distance
  origin_to_gauge = 32.5 # Gauge Measuring Position to nom.running circle(origin), lateral distance
  origin_to_iwheel= 70.  # Inside wheel to nom.running circle(origin), lateral distance

  wprof_lat_shift = 0.   # Wheel profile lateral shift, positive outwards


  iplotg= 1,            # Plot of the wheel and rail geometry
  iplot3= 4,            # Connection plot and contour contact pressure
  iplotk= 1,            # Plot the wheel-rail geometry functions

  iborder= 1            # Don't stop the calculation if the rail profile file has
                        # unsufficent data describing the inside of the rail head.
  izero = 0             # Zero-set DRKP and ZKP at eta=0.
  fiteps= .25e-2        # Set the accuracy how well the wheel-rail geometry
                        # functions shall be fitted to the calculated points.

  gauge_effcon= 1425 1427 1429 1431 1433 1435 1437 1439 1441

  dyeffcon=.1,.5,2,3,4,6 # Amplitudes for which the conicity shall be printed
                         # in the conicity diagram

# I2CP= 0                # One-point contact
# I2CP= 1 yh2cp=25,25    # Manual setting of two-point contact
# I2CP= 2                # Automatic detection of two-point contact
  I2CP= 3                # Automatic detection of three-point contact

  octave_file= m/$ident.m  # Write stdout to a m-file, readable by octave/matlab.

##
##  Considering the roll angle of the wheel profiles due to a flexible axle
##  the following data must be supplied.
##  -----------------------------------------------------------------------
  r_axle = 1e30                 # Radius of the axle
# r_axle = 0.08                 # Radius of the axle
  bl_axle= 1.                   # Lateral distance to the journal
  r_wheel= 0.50                 # Radius of the wheels.

  r_measured_axle = 1e30        # Radius of the measured axle
# r_measured_axle = 0.08        # Radius of the measured axle
  bo_measured_axle= 0.75        # Lateral distance to the contact point
  bl_measured_axle= 1.          # Lateral distance to the journal
  fzhr_measured_axle= 70000     # Static wheel load on measured axle
  chi_measured_axle= 0.1745     # Pitch angle between a vertical line and
                                # the measuring device [rad]

Example 2)

Masterfile for a typical calculation of wheel-rail geometry. Different wheel- and/or rail- profiles on left and right side.


##
##      Input data for program KPF
##

  ident1= 'Left wheel:S1002t32.5.wheel   Right wheel:S1002t32.5.wheel'
  wlfile= '$genkpf/../w_prof/S1002/S1002t32.5.wheel'    # Different profiles
  wrfile= '$genkpf/../w_prof/S1002/S1002t32.5.wheel'    # on the two wheels
  wlfile_comp= '$genkpf/../w_prof/EN13715.2006/ENS1002t32.5.wheel'
  wrfile_comp= '$genkpf/../w_prof/EN13715.2006/ENS1002t32.5.wheel'

  ident2= 'Left rail:uic60i40            Right rail:uic60i40'
  rlfile= '$genkpf/../r_prof/uic60/uic60i40.rail'       # Different profiles
  rrfile= '$genkpf/../r_prof/uic60/uic60i40.rail'       # on the rails
  rlfile_comp= '$genkpf/../r_prof/uic60/uic60i40.rail'
  rrfile_comp= '$genkpf/../r_prof/uic60/uic60i40.rail'

  iscren= 0,            # Select screen display
  ilaser= 9,            # Select laser printer output

  fzhr = 70000          # Vertical load on contact surface when evaluating the
                        # wheel-rail geometry functions.

  ident3='wprof_lat_shift= 0    Gauge= 1425-1441'

  kpfr_type= 'cp1'

  bo       =  750.       # Nominal contact patches distance
  origin_to_gauge = 32.5 # Gauge Measuring Position to nom.running circle(origin), lateral distance
  origin_to_iwheel= 70.  # Inside wheel to nom.running circle(origin), lateral distance

  wprof_lat_shift = 0.   # Wheel profile lateral shift, positive outwards


  iplotg= 1,            # Plot of the wheel and rail geometry
  iplot3= 4,            # Connection plot and contour contact pressure
  iplotk= 1,            # Plot the wheel-rail geometry functions

  iborder= 1            # Don't stop the calculation if the rail profile file has
                        # unsufficent data describing the inside of the rail head.
  izero = 0             # Zero-set DRKP and ZKP at eta=0.
  fiteps= .25e-2        # Set the accuracy how well the wheel-rail geometry
                        # functions shall be fitted to the calculated points.

  gauge_effcon= 1425 1427 1429 1431 1433 1435 1437 1439 1441

  dyeffcon=.1,.5,2,3,4,6 # Amplitudes for which the conicity shall be printed
                         # in the conicity diagram

# I2CP= 0                # One-point contact
# I2CP= 1 yh2cp=25,25    # Manual setting of two-point contact
# I2CP= 2                # Automatic detection of two-point contact
  I2CP= 3                # Automatic detection of three-point contact

  octave_file= m/$ident.m  # Write stdout to a m-file, readable by octave/matlab.

##
##  Considering the roll angle of the wheel profiles due to a flexible axle
##  the following data must be supplied.
##  -----------------------------------------------------------------------
  r_axle = 1e30                 # Radius of the axle
# r_axle = 0.08                 # Radius of the axle
  bl_axle= 1.                   # Lateral distance to the journal
  r_wheel= 0.50                 # Radius of the wheels.

  r_measured_axle = 1e30        # Radius of the measured axle
# r_measured_axle = 0.08        # Radius of the measured axle
  bo_measured_axle= 0.75        # Lateral distance to the contact point
  bl_measured_axle= 1.          # Lateral distance to the journal
  fzhr_measured_axle= 70000     # Static wheel load on measured axle
  chi_measured_axle= 0.1745     # Pitch angle between a vertical line and
                                # the measuring device [rad]



Home    Reference Manuals