Home Search Up Reference Manuals Return
. . . . . . . 117 -3.2696E+02 -6.8192E+02 -108.53 43.2 118 -3.2696E+02 6.8192E+02 108.53 43.2 119 -3.2912E+02 -6.8133E+02 -108.44 43.5 120 -3.2912E+02 6.8133E+02 108.44 43.5 121 -3.2546E+02 -6.9105E+02 -109.98 42.6 122 -3.2546E+02 6.9105E+02 109.98 42.6 123 -3.2332E+02 -6.9165E+02 -110.08 42.3 124 -3.2332E+02 6.9165E+02 110.08 42.3 125 -2.1015E+02 -7.5532E+02 -120.21 26.8 126 -2.1015E+02 7.5532E+02 120.21 26.8 127 -2.1015E+02 -7.5532E+02 -120.21 26.8 128 -2.1015E+02 7.5532E+02 120.21 26.8 129 -2.1067E+02 -7.5402E+02 -120.01 26.9 130 -2.1067E+02 7.5402E+02 120.01 26.9 131 -2.1067E+02 -7.5402E+02 -120.01 26.9 132 -2.1067E+02 7.5402E+02 120.01 26.9 133 -1.1375E+03 0.0000E+00 0.00 100.0 134 -1.1375E+03 0.0000E+00 0.00 100.0 135 -1.1375E+03 0.0000E+00 0.00 100.0 136 -1.1375E+03 0.0000E+00 0.00 100.0

coupl p_lin ktr_= 0. 25e6
#
coupl k ktr11 car_1 ktr_Ac ktr_Bc -ktr_Hc
bog_11 ktr_Ab ktr_Bb -ktr_Hb ktr_11 esys_1 c
func operp ktr= 25e6 + 1e6 * sin( `2*pi*freq` * time )
#
coupl k ktr11 car_1 ktr_Ac ktr_Bc -ktr_Hc
bog_11 ktr_Ab ktr_Bb -ktr_Hb ktr esys_1 c
coupl k ktr11 car_1 ktr_Ac ktr_Bc -ktr_Hc
bog_11 ktr_Ab ktr_Bb -ktr_Hb 25e6 esys_1 c
coupl k `c_name' `body1' +-`a1 +-`b1 +-`h1 `body2' +-`a2 +-`b2 +-`h2 p_+-`property `esys' `dire`


<video controls> <source type="video/mp4" src="vehicle_passing_bridge_vkmh36.mp4"> Sorry but your browser doesn't support HTML5 video. </video>
## ## Couplings between rail and track ## ==================================================================== ! ! kyrt_ _______ ! _______ |----/\/\/\/----| | | ! / \ | | | | ! [ ral ]--------| |-------| | ! [__ __] | |------ | | | ! | | |----| |------| | | ! | | |------ | | ! | | cyrt_ | | ! | | | | ! _____/ \_____ | | ! |_______________| | | ! | | | ! ____|____ | | ! | | | | ! |_|_| \ | | ! czrt_ | | / kzrt_ | | ! |___| \ | | ! | / | | ! |_________| | | ! | | | ! ________________________|____________________________________| |_______________ ! ! ! trc ! ! _____________________________________________________________________________________ ! func const kyrt_= 17e6 func const kzrt_= 230e6 # func const kzrt.F0_= `-kmbaF0_ + ma_/2*9.81` func const kzrt.F0_= 0. # Allows for variable vertical stiffness func const cyrt_= 10e3 func const czrt_= 1e6 # 50e3
cp1_$1r # Name of contact point #1 right side
trc_$1 cp1_$1r.ksi cp1_$1r.bo 0. # Contact on track
axl_$1 0. cp1_$1r.bo 0. # Contact on wheel/wheelset
mu_$1r1 # Coefficient of friction
2.05e11 .3 # Modulus of elasticity and Poisson's ratio
mu_$1r1/.6 mu_$1r1/.6 mu_$1r1/.6 # Creepage reduction due to contaminated rail surface
0. 600e6 # Prestress force and stiffness normal to the surface

##
## Create individual friction coefficients for all contact areas on all wheels
## ==========================================================================================
func const muTread = 0.4 # Friction coeff on tread
func const muFlange= 0.1 # Friction coeff on flange
substruct create_mu [ # $1= Wheel number
func const mu_$1l1= 0.4 func const mu_$1r1= 0.4 # Fric coeff
func const mu_$1l2= 0.4 func const mu_$1r2= 0.4
func const mu_$1l3= 0.4 func const mu_$1r3= 0.4
func const mulf_$1l1= mu_$1l1/0.6 func const mulf_$1r1= mu_$1r1/0.6 # Creep relax
func const mulf_$1l2= mu_$1l2/0.6 func const mulf_$1r2= mu_$1r2/0.6
func const mulf_$1l3= mu_$1l3/0.6 func const mulf_$1r3= mu_$1r3/0.6
]
##
## Creepage & creep forces
## =============================================================
substruct wr_coupl_pe3 [ # $1= Axel number
func wr_coupl_pe3
#
$1 # Name/number of the wheelset
lsa_$1 # Name of the linear local coordinate system
.....................
]
substruct wr_coupl_pe4 [ # $1= Axel number
func wr_coupl_pe4 $1
#
cp1_$1r
trc_$1 cp1_$1r.ksi cp1_$1r.bo 0. # Contact on track
axl_$1 0. cp1_$1r.bo 0. # Contact on wheel
.....................
]
##
## Update the friction coeff depending on the location of the contact point.
## (From -.070 to +.024 muTread is valid.
## From +.030 to +.070 muFlange is valid.
## From +.024 to +.030 a linear transition area)
## ==========================================================================================
substruct update_mu [ # $1= Wheel number
no_warning func intpl_l mu_$1l1= cp1_$1l.posw -.070 muTread .024 muTread .030 muFlange .070 muFlange
no_warning func intpl_l mu_$1l2= cp2_$1l.posw -.070 muTread .024 muTread .030 muFlange .070 muFlange
no_warning func intpl_l mu_$1l3= cp3_$1l.posw -.070 muTread .024 muTread .030 muFlange .070 muFlange
#
no_warning func intpl_l mu_$1r3= cp3_$1r.posw -.070 muTread .024 muTread .030 muFlange .070 muFlange
no_warning func intpl_l mu_$1r2= cp2_$1r.posw -.070 muTread .024 muTread .030 muFlange .070 muFlange
no_warning func intpl_l mu_$1r1= cp1_$1r.posw -.070 muTread .024 muTread .030 muFlange .070 muFlange
#
no_warning func div mulf_$1l1= mu_$1l1 0.6 no_warning func div mulf_$1r1= mu_$1r1 0.6
no_warning func div mulf_$1l2= mu_$1l2 0.6 no_warning func div mulf_$1r2= mu_$1r2 0.6
no_warning func div mulf_$1l3= mu_$1l3 0.6 no_warning func div mulf_$1r3= mu_$1r3 0.6
]
## ## Create individual friction coefficients for all contact areas on all wheels ## ========================================================================================== in_substruct create_mu [ $21 ] in_substruct create_mu [ $22 ] ## ## Creep & creep forces ## ================================================================ if_then_char_init cwr_coupl .eq. "pe3" in_substruct wr_coupl_pe3 [ $21 ] in_substruct wr_coupl_pe3 [ $22 ] elseif_then_char_init cwr_coupl .eq. "pe4" in_substruct wr_coupl_pe4 [ $21 ] in_substruct wr_coupl_pe4 [ $22 ] else func print06_char_init " " func print06_char_init " ***ERROR*** In Input Reading" func print06_char_init " Unvalid value given for character variable cwr_coupl" func stop endif ## ## Update the friction coeff depending on the location of the contact point. ## ============================================================================================= in_substruct update_mu [ $21 ] in_substruct update_mu [ $22 ]
##
## Create individual friction coefficients for all contact areas on all wheels
## ==========================================================================================
func const mu_radius= 1./420. # Lubricate all curves tighter than 420 m
func const mu_def = 0.4 # Default friction coeff valid for curves bigger than 420 m
func const mu_or = 0.4 # Default friction coeff in curves; outer rail
func const mu_ir = 0.4 # Default friction coeff in curves; inner rail
func const mu_gcor= 0.1 # Friction coeff on gauge corner and below; outer rail
substruct create_mu [ # $1= Wheelset number
func const mu_$1l1= 0.4 func const mu_$1r1= 0.4
func const mu_$1l2= 0.4 func const mu_$1r2= 0.4
func const mu_$1l3= 0.4 func const mu_$1r3= 0.4
func const mulf_$1l1= mu_$1l1/0.6 func const mulf_$1r1= mu_$1r1/0.6
func const mulf_$1l2= mu_$1l2/0.6 func const mulf_$1r2= mu_$1r2/0.6
func const mulf_$1l3= mu_$1l3/0.6 func const mulf_$1r3= mu_$1r3/0.6
]
##
## Creep & creep forces
## ================================================================
if_then_char_init cwr_coupl .eq. "pe3"
in_substruct wr_coupl_pe3 [ $21 ]
in_substruct wr_coupl_pe3 [ $22 ]
elseif_then_char_init cwr_coupl .eq. "pe4"
in_substruct wr_coupl_pe4 [ $21 ]
in_substruct wr_coupl_pe4 [ $22 ]
else
func print06_char_init " "
func print06_char_init " ***ERROR*** In Input Reading"
func print06_char_init " Unvalid value given for character variable cwr_coupl"
func stop
endif
##
## Update the friction coeff depending on the location of the contact point.
## First interpolate along the track depending on track curvature
## Lubricate tangent track with mu_def
## Lubricate tread with mu_ir for inner rail and mu_or for outer rail
## Lubricate gauge corner with mu_gcor for outer rail
## ==========================================================================================
substruct update_mu [ # $1= Wheelset number
#
func intpl_l mutl_$1= lsa_$1.b ## Tread left side as function of curve radius
-1. mu_ir -mu_radius-1e-6 mu_ir -mu_radius mu_def # Left handed curve lubricate left tread; inner rail
mu_radius mu_def mu_radius+1e-6 mu_or 1. mu_or # Right handed curve lubricate left tread; outer rail
func intpl_l mufl_$1= lsa_$1.b ## Flange left side as function of curve radius
-1. mu_ir -mu_radius-1e-6 mu_ir -mu_radius mu_def # Left handed curve lubricate left flange; inner rail
mu_radius mu_def mu_radius+1e-6 mu_gcor 1. mu_gcor # Right handed curve lubricate left flange; outer rail
#
func intpl_l mutr_$1= lsa_$1.b ## Tread right side as function of curve radius
-1. mu_or -mu_radius-1e-6 mu_or -mu_radius mu_def # Left handed curve lubricate right tread; outer rail
mu_radius mu_def mu_radius+1e-6 mu_ir 1. mu_ir # Right handed curve lubricate right tread; inner rail
func intpl_l mufr_$1= lsa_$1.b ## Flange right side as function of curve radius
-1. mu_gcor -mu_radius-1e-6 mu_gcor -mu_radius mu_def # Left handed curve lubricate right flange; outer rail
mu_radius mu_def mu_radius+1e-6 mu_ir 1. mu_ir # Right handed curve lubricate right flange; inner rail
##
## Second interpolate laterally depending on the lateral position of the contact points
## ------------------------------------------------------------------------------------
no_warning func intpl_l mu_cp1_$1l= cp1_$1l.posr -.070 0.5 .020 0.5 .026 0.5 .070 0.5
no_warning func intpl_l mu_cp2_$1l= cp2_$1l.posr -.070 0.5 .020 0.5 .026 0.5 .070 0.5
no_warning func intpl_l mu_cp2_$1r= cp2_$1r.posr -.070 0.5 .020 0.5 .026 0.5 .070 0.5
no_warning func intpl_l mu_cp1_$1r= cp1_$1r.posr -.070 0.5 .020 0.5 .026 0.5 .070 0.5
#
no_warning func copy mu_cp1_$1l.y1= mutl_$1
no_warning func copy mu_cp2_$1l.y1= mutl_$1 # Update the values in the above
no_warning func copy mu_cp2_$1r.y1= mutr_$1 # interpolation
no_warning func copy mu_cp1_$1r.y1= mutr_$1
#
no_warning func copy mu_cp1_$1l.y2= mutl_$1
no_warning func copy mu_cp2_$1l.y2= mutl_$1
no_warning func copy mu_cp2_$1r.y2= mutr_$1
no_warning func copy mu_cp1_$1r.y2= mutr_$1
#
no_warning func copy mu_cp1_$1l.y3= mufl_$1
no_warning func copy mu_cp2_$1l.y3= mufl_$1
no_warning func copy mu_cp2_$1r.y3= mufr_$1
no_warning func copy mu_cp1_$1r.y3= mufr_$1
#
no_warning func copy mu_cp1_$1l.y4= mufl_$1
no_warning func copy mu_cp2_$1l.y4= mufl_$1
no_warning func copy mu_cp2_$1r.y4= mufr_$1
no_warning func copy mu_cp1_$1r.y4= mufr_$1
#
no_warning func div mulf_$1l1= mu_cp1_$1l 0.6 # Also update the creep relaxation factors
no_warning func div mulf_$1l2= mu_cp2_$1l 0.6
no_warning func div mulf_$1r2= mu_cp2_$1r 0.6
no_warning func div mulf_$1r1= mu_cp1_$1r 0.6
##
## Save frictions coeff.
## -----------------------------------------------
s_var sngl mu_cp1_$1l
s_var sngl mu_cp2_$1l
s_var sngl mu_cp2_$1r
s_var sngl mu_cp1_$1r
]
## ## Create individual friction coefficients for all contact areas on all wheels ## ========================================================================================== in_substruct create_mu [ $21 ] in_substruct create_mu [ $22 ] ## ## Creepage & creep forces ## ================================================================ if_then_char_init cwr_coupl .eq. "pe3" in_substruct wr_coupl_pe3 [ $21 ] in_substruct wr_coupl_pe3 [ $22 ] elseif_then_char_init cwr_coupl .eq. "pe4" in_substruct wr_coupl_pe4 [ $21 ] in_substruct wr_coupl_pe4 [ $22 ] else func print06_char_init " " func print06_char_init " ***ERROR*** In Input Reading" func print06_char_init " Unvalid value given for character variable cwr_coupl" func stop endif ## ## Update the friction coeff depending track curvature and location of the contact point. ## ============================================================================================= in_substruct update_mu [ $21 ] in_substruct update_mu [ $22 ]
#
lsys e_fix esys_0 0. 0. 0.
#
lsys e_abs_bendrf esys_1 Vo `Xtrac_start+1+aba+acb`
ro_trac_design f_trac_design z_trac_design
4 4 4 4 4 4
substruct LumpedRail [ # $1= Serial number; $2= X-position lsys l_local lst_$1 esys_0 $2 0. 0. # Local coordinate system, not moving mass fixpoint_6 ground_$1 lst_$1 0. 0. 0. # Fixed ground points mass m_rigid_6f rail_$1l lst_$1 0. -.75 0.372 mr mr mr Jfr Jkr Jpr constr fix_rigid_1 rail_$1l x 0. constr fix_rigid_1 rail_$1l p 0. body box_lsys rail_$1l lst_$1 .4*SleeperDist -.4*SleeperDist -.5 -1.0 .2 0. mass m_rigid_6f rail_$1r lst_$1 0. 0.75 0.372 mr mr mr Jfr Jkr Jpr constr fix_rigid_1 rail_$1r x 0. constr fix_rigid_1 rail_$1r p 0. body box_lsys rail_$1r lst_$1 .4*SleeperDist -.4*SleeperDist 0.5 1.0 .2 0. s_var sngl lst_$1.x s_var sngl rail_$1l.z s_var sngl rail_$1r.z s_var sngl rail_$1l.Fz s_var sngl rail_$1r.Fz s_var sngl rail_$1l.k s_var sngl rail_$1r.k s_var sngl rail_$1l.Mk s_var sngl rail_$1r.Mk ] in_substruct LumpedRail [ 01 1*SleeperDist ] # Create lumped masses along the track in_substruct LumpedRail [ 02 2*SleeperDist ] in_substruct LumpedRail [ 03 3*SleeperDist ] in_substruct LumpedRail [ 04 4*SleeperDist ] in_substruct LumpedRail [ 05 5*SleeperDist ] . . . . . . . .
mass m_rigid_6f ral_$111r lsa_$111 0. .75 0. 10 10 10 20 20 20 # rails mass m_rigid_6f ral_$112r lsa_$112 0. .75 0. 10 10 10 20 20 20 mass m_rigid_6f ral_$121r lsa_$121 0. .75 0. 10 10 10 20 20 20 mass m_rigid_6f ral_$122r lsa_$122 0. .75 0. 10 10 10 20 20 20 mass m_rigid_6f ral_$111l lsa_$111 0. -.75 0. 10 10 10 20 20 20 mass m_rigid_6f ral_$112l lsa_$112 0. -.75 0. 10 10 10 20 20 20 mass m_rigid_6f ral_$121l lsa_$121 0. -.75 0. 10 10 10 20 20 20 mass m_rigid_6f ral_$122l lsa_$122 0. -.75 0. 10 10 10 20 20 20
coupl beam_3 leftSide z # Connect all masses with this beam element
4 # Four wheels
ral_111l 0. -.75 0 16*160e6 # Stiffness in contact point
ral_112l 0. -.75 0 16*160e6
ral_121l 0. -.75 0 16*160e6
ral_122l 0. -.75 0 16*160e6
60 # 60 rail/bridge sections
rail_01l .0 -.75 0
rail_02l .0 -.75 0 EI_rail # Young's modulus times area moment of inertia
rail_03l .0 -.75 0 EI_rail # for each section
rail_04l .0 -.75 0 EI_rail
rail_05l .0 -.75 0 EI_rail
rail_06l .0 -.75 0 EI_rail
. . . . . .
coupl creep_lookuptable_1 cp1_$111r
axl_$111 0.0 bo_ 0.0
ral_$111r whe_$111r.x bo_ 0.0 esys_$1 m
tral$111r.y # Lateral position track irregularity
tral$111r.z # Vertical position track irregularity
tral$111r.vy # Lateral velocity track irregularity
tral$111r.vz # Vertical velocity track irregularity
mu_$111r1/0.6 # Longitudinal creep relaxation due to contaminated surfaces
mu_$111r1/0.6 # Lateral creep relaxation due to contaminated surfaces
mu_$111r1/0.6 # Spin creep relaxation due to contaminated surfaces
cp1_zfn_$111r # Wheel lift geometric function
cp1_drfn_$111r # Wheel radius geometric function
cp1_gamfn_$111r # Contact angle geometric function
cp1_rofn_$111r # Lateral curvature geometric function
cp1_poswfn_$111r # Lateral position of contact point on wheel
cp1_posrfn_$111r # Lateral position of contact point on rail
0. # Wheel/rail prestess force in normal direction of contact surface
knwr_$111r # Wheel/rail stiffness in normal direction of contact surface
cnwr_$111r # Wheel/rail damping in normal direction of contact surface
2.05e11 # The combined modulus of elasticity for body1 and body2
.3 # The combined Poisson's ratio for body1 and body2
mu_$111r1 # The coefficient of friction in the contact surface
ro_$111r # Wheel rolling radius, will vary for OOR-wheels
1e99 # Vertical radius of rail
forall_do --ext gen_ps2pdf .ps .pdf
forall_do -h Usage: forall_do [options] sub_script subst_1 [subst_2] Forall_do executes "sub_script" on all files having subst_1 in their names in current directory. If "sub_script" generates output files an optional [subst_2] can be given. Following options are understood. --ext Only operate on file extension --help Write this help information --test Make a print of what is going to be made
| Example: | Execute all files maching expression "kpff/*.kpff" in program KPF |
| Send standard output to files "qout/*.qout". | |
| Send exit status to files "qout/*.qout.stat". |
ls -1 kpff/*.kpff | awk '{
kpff_file=$1 # Input data file
stdout=$1; gsub("kpff","qout",stdout); # Standard output (replace "kpff" with "qout")
print "kpf "kpff_file" > "stdout"; echo $? > "stdout".stat" # Line to be executed
}'
Run your script:
ls -1 kpff/*.kpff | awk '{
kpff_file=$1 # Input data file
stdout=$1; gsub("kpff","qout",stdout); # Standard output (replace "kpff" with "qout")
print "kpf "kpff_file" > "stdout"; echo $? > "stdout".stat" # Line to be executed
}' | /bin/sh # Send the line to a shell
head *.stat | grep -B 1 '^[1-9]'
Usage: op [options] <files> Script op opens file(s) in an editor. Environment variable $genedit controls which editor to be started. By using wildcards several files can be opened simultaneously. If <files> is replaced by an hyphen (-), the name of the files will be read from standard input. Options: Following options are understood: -n = Opens the newest file in the directory -q = Open files in quiet mode -t = Open in texteditor independently of file type.
grep -l 'substruct create_axl' runf/* | head -10 | op -