Home Reference Manual Return Flowchart
File runf is the main input data file for the four analysis programs
QUASI, MODAL, FRESP and TSIM.
In file runf references can be made to sub-files containing track-description,
wheel-rail-geometry, default vehicle properties,,, etc.
Look for the insert commands in the file below,
and click at the reference.
A complete explanation on what all input data parameters stands for is given in the document ../doc_html/analyse_r_vehicle.html
Example of a runf-file of a BoBo-vehicle:
##
##
## Headlines
## =========
##
head 1 "Course in Rail Vehicle Dynamics"
head 2 "BoBo-vehicle; Wheel S1002, Rail UIC60i40; Friction=$mu; Speed=$vkmh"
head 3 "Track geom.=$ctrack_design, Track irr.=$ctrack_irreg"
##
## Parameters for different types of analysis
## ==========================================
fresp_param = Fourier_CG1 1.e-4 fstart= .3 fstop= 20. fstep= -1.06
modal_param = Schur_fact1 1.e-4
quasi_param = LineSearch_2 1.e-4 1.e-6 0.2 2.e-5 60 40
tsim_param = heun_u .4 .002 tstart= .0 tstop=100. tstep= 0.001 tout= 0.005
##
## Define variables variables Vo, mu and bo
## ===============================================================
func const vkmh= 160 # Speed of vehicle in km/h
func div_init Vo = vkmh 3.6 # Speed of vehicle in m/s
func const mu = 0.4 # Coefficient of friction between wheel and rail
func const bo = 0.75 # Lateral distance between track center line and
# nominal rolling circle of the wheel
func const sstart= -20 # start position of the vehicle
##
## Define designed track geometry
## ==============================
func char ctrack_design Tangent_Track # Tangent track
# func char ctrack_design Curve_R200_h150_t120 # Entering a curve R=200 h=150
# func char ctrack_design Curve_R400_h150_t120 # Entering a curve R=400 h=150
# func char ctrack_design Curve_R1000_h150_t120 # Entering a curve R=1000 h=150
# func char ctrack_design Curve_R1300_h150_t120 # Entering a curve R=1300 h=150
# func char ctrack_design . . . . . #
# func char ctrack_design . . . . . # All curves which shall be studied
# func char ctrack_design . . . . . # are defined in the insert file
# func char ctrack_design . . . . . # trc_design.ins (written by the user)
#
insert file track/trc_design.ins
##
## Define track irregularities
## ===========================
func char ctrack_irreg Ideal_track # Ideal track
# func char ctrack_irreg Latpuls_L20_A10 # Lateral puls Length=20m Ampl=10mm
# func char ctrack_irreg track_irr1 # Track with irregularities from file
# func char ctrack_irreg track_irr2 # Track with irregularities from file
# func char ctrack_irreg . . . . . #
# func char ctrack_irreg . . . . . # All track irregularities which shall
# func char ctrack_irreg . . . . . # be studied are defined in the insert
# func char ctrack_irreg . . . . . # file trc_irreg.ins (written by the user)
#
insert file track/trc_irreg.ins
##
## 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_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.010 #-10 mm narrower track
## func const gauge_dev=-0.008 # -8 mm narrower 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
## func const gauge_dev= 0.006 # 6 mm wider track
##
## Define wheel-rail geometry functions
## ====================================
insert file kpfr/S1002_uic60i40.kpfr
in_substruct kpf_S1002_uic60i40 [ 1 ]
#
#
# ------------------------------------------------------------------
##
## Insert vehicle property-file
## ======================================================
insert file fodat/vehicle_prop.ins
##
## Insert change of vehicle data parameters
## ======================================================
func const kxbw= 12e6 # stiffness, longitudinal
func const kybw= 20e6 # stiffness, lateral
##
## Insert vehicle geometry-file
## ======================================================
insert file fodat/vehicle_geom.ins
##
## VERTICAL TRACK EXCITATION (for "fresp")
##
func intpl_r spectra 0 0.001 100 0.001
func oper t_axl_111 ( acb + abw ) / Vo
func oper t_axl_112 ( acb - abw ) / Vo
func oper t_axl_121 ( -acb + abw ) / Vo
func oper t_axl_122 ( -acb - abw ) / Vo
##
## fexcit displ_fr m_name dire spectra t_delay
## ------------------------------------------------
fexcit displ_fr trc_111 z spectra -t_axl_111
fexcit displ_fr trc_112 z spectra -t_axl_112
fexcit displ_fr trc_121 z spectra -t_axl_121
fexcit displ_fr trc_122 z spectra -t_axl_122
##
## Read flexible parameters for the carbody
## ===============================================================
# insert file npickr/npick_flex.npickr
##
## Read initial values from GPdat-file, generated by program QUASI
## ===============================================================
## initval read_gpdat gp/quasi.gp 1
##
## Stop the simulation at the end of the track
## ===============================================================
if_then lsa_111.pn .gt. Xtrac_stop
func print06_char_all " "
func print06_char_all " Execution interrupted due to lsa_111.pn > Xtrac_stop"
func print06_char_all " ----------------------------------------------------"
func stop
endif
##
## Calculate and store a number of flange wear index's in the contant point
## ========================================================================
##
insert file $gensys/calc/insert_files/fl_weare1.ins # Define substructure fl_wear.
#
in_substruct fl_wear [ 1 111 ] # Make a call to fl_wear
in_substruct fl_wear [ 1 112 ] # for each wheelset
#
substruct save_fl_wear [
s_var sngl wYa_$1 # Guiding force times angle of attack
s_var scalar_0 wYa_$1
s_var sngl uFny_$1 # Creep*creepforce in contact point tread
s_var scalar_0 uFny_$1
if_then_init .exist. vFny_$1
s_var sngl vFny_$1 # Creep*creepforce in contact point flange
s_var scalar_0 vFny_$1
endif
s_var sngl wFny_$1 # Creep*creepforce tread+flange
s_var scalar_0 wFny_$1
s_var sngl uFMny_$1 # Energy dissipation in contact point tread
s_var scalar_0 uFMny_$1
if_then_init .exist. vFMny_$1
s_var sngl vFMny_$1 # Energy dissipation in contact point flange
s_var scalar_0 vFMny_$1
endif
s_var sngl wFMny_$1 # Total energy dissipation tread+flange
s_var scalar_0 wFMny_$1
]
in_substruct save_fl_wear [ 111r ] # Make calls to the save_fl_wear-
in_substruct save_fl_wear [ 111l ] # substructure one call for each wheel.
in_substruct save_fl_wear [ 112r ]
in_substruct save_fl_wear [ 112l ]
##
## Save results on GPdat-file for animation in GPLOT
## ===============================================================
s_var gpdat_r1
s_var gpdat_wr_info 111r lsa_111.b
kpff/w_prof/S1002/S1002.wheel
kpff/r_prof/uic60/uic60i40.rail
s_var gpdat_wr_info 111l lsa_111.b
kpff/w_prof/S1002/S1002.wheel
kpff/r_prof/uic60/uic60i40.rail
s_var gpdat_wr_info 112r lsa_112.b
kpff/w_prof/S1002/S1002.wheel
kpff/r_prof/uic60/uic60i40.rail
s_var gpdat_wr_info 112l lsa_112.b
kpff/w_prof/S1002/S1002.wheel
kpff/r_prof/uic60/uic60i40.rail
eof