Home
Reference Manuals
Return
##
## Vehicle model of a four axle bogie vehicle
## ==========================================
##
## Side-view
## ===========================================
!
!
! _________________________________________________|_________________________________________________
! / | \
! / | \
! / | \
! / | \
! / | \
! / | \
! / | mc_, Jfc_, Jkc_, Jpc_ \
! \ -O-------------------------------------------------------/---------
! \______________________________________________________|______________________________________________________/ ^
! _____________|______________ | _____________|______________ |
! | | | | | |mb_,Jfb_,Jkb_,Jpb_ |hccg_
! | | | | | -O---------------------- |
! |____________|_____________| | |____________|_____________| ^ |
! ___ | ___ | ___ | ___ | |
! / \ | / \ | / \ | / \ |hbcg_ |
! | + | | | + | | | + | | | + | | |
! _r.l.______\___/_____|______\___/_________________________|_________________________\___/_____|______\_|_/______|________|____
! | | | |
! lsa_122 lsb_12 lsa_121 lsc_1 lsa_112 lsb_11 lsa_111
! | | | |
! | | acb_ | aba_ |
! | |---------------------------------->|------->|
! |
! esys_1
!
##
## 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
s_var sngl esys_1.b # Curvature
s_var sngl esys_1.c # Cant
s_var sngl esys_1.x # Position of esys expressed in fsys
s_var sngl esys_1.y
s_var sngl esys_1.z
#
##
## 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_1 0.0 0.0
lsys l_local lsb_12 lsc_1 -acb_1 0.0 0.0
lsys l_local lsa_111 lsb_11 aba_11 0.0 0.0
lsys l_local lsa_112 lsb_11 -aba_11 0.0 0.0
lsys l_local lsa_121 lsb_12 aba_12 0.0 0.0
lsys l_local lsa_122 lsb_12 -aba_12 0.0 0.0
##
## Vehicle and track masses
## ========================
##
## mass m_rigid_6 m_name lsys acg bcg hcg m m m Jf Jk Jp
## ------------------------------------------------------------------------------------------------
mass m_rigid_6 car_1 lsc_1 accg_1 0.0 -hccg_1 mc_1 mc_1 mc_1 Jfc_1 Jkc_1 Jpc_1 # car-body
mass m_rigid_6 bog_11 lsb_11 0.0 0.0 -hbcg_11 mb_11 mb_11 mb_11 Jfb_11 Jkb_11 Jpb_11 # bogies
mass m_rigid_6 bog_12 lsb_12 0.0 0.0 -hbcg_12 mb_12 mb_12 mb_12 Jfb_12 Jkb_12 Jpb_12
#
mass fixpoint_6 grd_1 lsc_1 0.0 0.0 0.0 # ground points
mass fixpoint_6 grd_111 lsa_111 0.0 0.0 0.0
mass fixpoint_6 grd_112 lsa_112 0.0 0.0 0.0
mass fixpoint_6 grd_121 lsa_121 0.0 0.0 0.0
mass fixpoint_6 grd_122 lsa_122 0.0 0.0 0.0
##
## Create wheelsets
## ==============================================================
substruct create_axl [
mass m_rigid_6 axl_$1 lsa_$1 0. 0. -ro_$1 ma_$1 ma_$1 ma_$1 Jfa_$1 Jka_$1 Jpa_$1
constr fix_free_1 axl_$1.k= 0.
initval set_var axl_$1.vk= -Vo/ro_$1
]
in_substruct create_axl [ 111 ]
in_substruct create_axl [ 112 ]
in_substruct create_axl [ 121 ]
in_substruct create_axl [ 122 ]
##
## Create track-pieces
## ==============================================================
substruct create_trc [
mass m_rigid_6f trc_$1 lsa_$1 0. 0. 0. 0. myt_$1 mzt_$1 Jft_$1 0. 0.
constr fix_rigid_1 trc_$1 x 0. constr fix_rigid_1 trc_$1 z 0.
constr fix_rigid_1 trc_$1 f 0. constr fix_rigid_1 trc_$1 k 0. constr fix_rigid_1 trc_$1 p 0.
]
in_substruct create_trc [ 111 ]
in_substruct create_trc [ 112 ]
in_substruct create_trc [ 121 ]
in_substruct create_trc [ 122 ]
##
## Calculation of creep and creepforces between wheels and rails
## ==============================================================
substruct wr_coupl_pe3 [
func wr_coupl_pe3
#
$1 # Name/number of the wheelset
lsa_$1 # Name of the linear local coordinate system
#
lat_trac vert_trac spv_trac fi_trac # Track irregularities memory fields
YMtrac ZMtrac GMtrac CMtrac # Multiplication factors for track irregularities
gauge_average # Average gauge of spv_trac
gauge_dev_$1 # Modify average gauge for a different conicity
1 # Type of contact normal to the contact surface
#
axl_$1 # Body wheel right side
axl_$1 # Body wheel left side
trc_$1 # Body track
ro_$1r # Nominal wheel radius right wheel
42e6 # kyrt_$1r # Lateral stiffness rail - track
75e6 # kzrt_$1r # Vertical stiffness rail - track
-kmba.F0_$1+ma_$1/2*9.81 # kzrt.F0_$1r # Vertical prestress force rail - track
400e3 # cyrt_$1r # Lateral damping rail - track
1600e3 # czrt_$1r # Vertical damping rail - track
bo_$1r # Lateral semi-distance to nominal running circle, right side
ro_$1l # Nominal wheel radius left wheel
42e6 # kyrt_$1l # Lateral stiffness rail - track
75e6 # kzrt_$1l # Vertical stiffness rail - track
-kmba.F0_$1+ma_$1/2*9.81 # kzrt.F0_$1l # Vertical prestress force rail - track
400e3 # cyrt_$1l # Lateral damping rail - track
1600e3 # czrt_$1l # Vertical damping rail - track
-bo_$1l # Lateral semi-distance to nominal running circle, left side
#
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
-kmba.F0_$1+ma_$1/2*9.81 2400e6 # Prestress force and stiffness normal to the surface
#
cp1_$1l
trc_$1 cp1_$1l.ksi cp1_$1l.bo 0. # Contact on track
axl_$1 0. cp1_$1l.bo 0. # Contact on wheel/wheelset
mu_$1l1 # Coefficient of friction
2.05e11 .3 # Modulus of elasticity and Poisson's ratio
mu_$1l1/.6 mu_$1l1/.6 mu_$1l1/.6 # Creepage reduction due to contaminated rail surface
-kmba.F0_$1+ma_$1/2*9.81 2400e6 # Prestress force and stiffness normal to the surface
#
#
cp2_$1r
trc_$1 cp2_$1r.ksi cp2_$1r.bo 0. # Contact on track
axl_$1 0. cp2_$1r.bo 0. # Contact on wheel/wheelset
mu_$1r2 # Coefficient of friction
2.05e11 .3 # Modulus of elasticity and Poisson's ratio
mu_$1r2/.6 mu_$1r2/.6 mu_$1r2/.6 # Creepage reduction due to contaminated rail surface
0. 2400e6 # Prestress force and stiffness normal to the surface
#
cp2_$1l
trc_$1 cp2_$1l.ksi cp2_$1l.bo 0. # Contact on track
axl_$1 0. cp2_$1l.bo 0. # Contact on wheel/wheelset
mu_$1l2 # Coefficient of friction
2.05e11 .3 # Modulus of elasticity and Poisson's ratio
mu_$1l2/.6 mu_$1l2/.6 mu_$1l2/.6 # Creepage reduction due to contaminated rail surface
0. 2400e6 # Prestress force and stiffness normal to the surface
#
#
cp3_$1r
trc_$1 cp3_$1r.ksi cp3_$1r.bo 0. # Contact on track
axl_$1 0. cp3_$1r.bo 0. # Contact on wheel/wheelset
mu_$1r3 # Coefficient of friction
2.05e11 .3 # Modulus of elasticity and Poisson's ratio
mu_$1r3/.6 mu_$1r3/.6 mu_$1r3/.6 # Creepage reduction due to contaminated rail surface
0. 2400e6 # Prestress force and stiffness normal to the surface
#
cp3_$1l
trc_$1 cp3_$1l.ksi cp3_$1l.bo 0. # Contact on track
axl_$1 0. cp3_$1l.bo 0. # Contact on wheel/wheelset
mu_$1l3 # Coefficient of friction
2.05e11 .3 # Modulus of elasticity and Poisson's ratio
mu_$1l3/.6 mu_$1l3/.6 mu_$1l3/.6 # Creepage reduction due to contaminated rail surface
0. 2400e6 # Prestress force and stiffness normal to the surface
]
in_substruct wr_coupl_pe3 [ 111 ]
in_substruct wr_coupl_pe3 [ 112 ]
in_substruct wr_coupl_pe3 [ 121 ]
in_substruct wr_coupl_pe3 [ 122 ]
##
## Animate track irregularities in GPLOT
## ======================================
substruct animate_rails [
mass fixpoint_6 rail_$1$2 lsa_$1 0. $3bo_ 0.
no_warning func copy rail_$1$2.y= tral$1$2.y
no_warning func copy rail_$1$2.z= tral$1$2.z
no_warning func copy rail_$1$2.k= tral$1$2.k
no_warning func copy rail_$1$2.p= tral$1$2.p
]
in_substruct animate_rails [ 111 l - ]
in_substruct animate_rails [ 111 r + ]
in_substruct animate_rails [ 112 l - ]
in_substruct animate_rails [ 112 r + ]
in_substruct animate_rails [ 121 l - ]
in_substruct animate_rails [ 121 r + ]
in_substruct animate_rails [ 122 l - ]
in_substruct animate_rails [ 122 r + ]
##
## Read speed from external file
## ===============================================================
# func intpl_r Speed_field insert free_form '(a,a)' vhedat/Speed.txt
# func create_l vkmh= Speed_field lsc_1.pn # Linear interpolation in a memory field
# no_warning func div Vo= vkmh 3.6 # Vo speed in m/s, fixed name in substruct wr_coupl_pe1
##
## Longitudinal stiffness connecting the car-body to the lsc_1 coordinate system.
## (In order to keep the speed up during long simulations)
## ===================================================================================
func const mvhe_1= mc_1+mb_11+mb_12+ma_111+Jka_111/ro_111^2+ma_112+Jka_112/ro_112^2+ma_121+Jka_121/ro_121^2+ma_122+Jka_122/ro_122^2
coupl k_lin kxcg1 car_1 x 0 0 -hccg_1*.6 grd_1 x 0 0 -hccg_1*.6 (2*pi*.25)^2*mvhe_1 # fo= 0.25[Hz]
coupl c_lin cxcg1 car_1 x 0 0 -hccg_1*.6 grd_1 x 0 0 -hccg_1*.6 4*pi*.7*.25*mvhe_1 # zeta=0.7
##
## Longitudinal stiffness connecting the car-body to the lsc_1 coordinate system.
## (In order to keep the speed up during long simulations)
## ===================================================================================
# func const fxcg= 0.25
# func const mvhe_1= mc_1+mb_11+mb_12+ma_111+Jka_111/ro_111^2+ma_112+Jka_112/ro_112^2+ma_121+Jka_121/ro_121^2+ma_122+Jka_122/ro_122^2
# func const Kreg_1= (2*pi*fxcg)^2*mvhe_1*ro_1/4
# func const Creg_1= 4*pi*.70*fxcg*mvhe_1*ro_1/4
# func operp car_.x = ( car_1.x * mc_1 + bog_11.x * mb_11 + bog_12.x * mb_12 +
# axl_111.x * ma_111 + axl_112.x * ma_112 + axl_121.x * ma_121 + axl_122.x * ma_122 ) / mvhe_1
# func operp car_.vx= ( car_1.vx * mc_1 + bog_11.vx * mb_11 + bog_12.vx * mb_12 +
# axl_111.vx * ma_111 + axl_112.vx * ma_112 + axl_121.vx * ma_121 + axl_122.vx * ma_122 ) / mvhe_1
##
# func mul MtractionK_1= Kreg_1 car_.x
# func mul MtractionC_1= Creg_1 car_.vx
# func add Mtraction_1= MtractionK_1 MtractionC_1
# func lpass2_0 MtractionF1_1= Mtraction_1 5. .9239 # Second order low pass filter, start value equal to 0(zero)
# func lpass2_0 MtractionF2_1= MtractionF1_1 5. .3827 # Second order low pass filter, start value equal to 0(zero)
##
# func incr axl_111.Mk= MtractionF2_1
# func incr axl_112.Mk= MtractionF2_1
# func incr axl_121.Mk= MtractionF2_1
# func incr axl_122.Mk= MtractionF2_1
##
## Acceleration response points on car-body floor
## ==============================================
func accp_bodyf car_1b1 car_1 acb_1 0.0 -hfloor
func accp_bodyf car_1.m car_1 0.0 0.0 -hfloor
func accp_bodyf car_1b2 car_1 -acb_1 0.0 -hfloor
##
## Pantograph sway
## ===============================================
func pos_rlsys2 car_1b1 car_1 lsb_11 acb_1 0.0 -5.6
func pos_rlsys2 car_1b2 car_1 lsb_12 -acb_1 0.0 -5.6
##
## Graphical representation of the bodies
## ==============================================
body box_mass_733 car_1 acb_1+2.25 1.43 0.7 acb_1+1.38 1.2 -1.7
acb_1+2.25 -1.43 0.7 acb_1+1.38 -1.2 -1.7
-(acb_1+2.25) 1.43 0.7 -(acb_1+2.25) 1.2 -1.7
-(acb_1+2.25) -1.43 0.7 -(acb_1+2.25) -1.2 -1.7
insert file vhedat/body_car_X2000.ins
# insert file vhedat/body_car_Rc.ins
#
body box_mass bog_11 aba_11+.25 -aba_11-.25 1. -1. 0.15 -.2
body box_mass bog_12 aba_12+.25 -aba_12-.25 1. -1. 0.15 -.2
##
## body type m_name ro bo
## ---------------------------------------
body whe_set_mass axl_111 ro_111 bo_
body whe_set_mass axl_112 ro_112 bo_
body whe_set_mass axl_121 ro_121 bo_
body whe_set_mass axl_122 ro_122 bo_
#
body opengl_mass axl_111 1 1 1 1 CYL_W_DISK .35 13 .45 .55 # radius N H1 H2 brake disks
body opengl_mass axl_111 1 1 1 1 CYL_W_DISK .35 13 -.45 -.55 # radius N H1 H2
body opengl_mass axl_112 1 1 1 1 CYL_W_DISK .35 13 .45 .55 # radius N H1 H2
body opengl_mass axl_112 1 1 1 1 CYL_W_DISK .35 13 -.45 -.55 # radius N H1 H2
body opengl_mass axl_121 1 1 1 1 CYL_W_DISK .35 13 .45 .55 # radius N H1 H2
body opengl_mass axl_121 1 1 1 1 CYL_W_DISK .35 13 -.45 -.55 # radius N H1 H2
body opengl_mass axl_122 1 1 1 1 CYL_W_DISK .35 13 .45 .55 # radius N H1 H2
body opengl_mass axl_122 1 1 1 1 CYL_W_DISK .35 13 -.45 -.55 # radius N H1 H2
##
## body type m_name polygon
## ------------------------------------------------------------------------------
func const B_trc_1= 1.2675 # Semi-length of sleepers
body box_mass trc_111 0.5 -.5 B_trc_1 -B_trc_1 0.340 0.172
body box_mass rail_111r 0.5 -.5 0.0325 -.0325 0.172 0.
body box_mass rail_111l 0.5 -.5 0.0325 -.0325 0.172 0.
body box_mass trc_112 0.5 -.5 B_trc_1 -B_trc_1 0.340 0.172
body box_mass rail_112r 0.5 -.5 0.0325 -.0325 0.172 0.
body box_mass rail_112l 0.5 -.5 0.0325 -.0325 0.172 0.
body box_mass trc_121 0.5 -.5 B_trc_1 -B_trc_1 0.340 0.172
body box_mass rail_121r 0.5 -.5 0.0325 -.0325 0.172 0.
body box_mass rail_121l 0.5 -.5 0.0325 -.0325 0.172 0.
body box_mass trc_122 0.5 -.5 B_trc_1 -B_trc_1 0.340 0.172
body box_mass rail_122r 0.5 -.5 0.0325 -.0325 0.172 0.
body box_mass rail_122l 0.5 -.5 0.0325 -.0325 0.172 0.
##
## Calculate wear and RCF indexes
## (substruct wear_RCF is defined in file vhedat/std_inserts.ins)
## ==============================================================
in_substruct wear_RCF [ 111l ]
in_substruct wear_RCF [ 111r ]
in_substruct wear_RCF [ 112l ]
in_substruct wear_RCF [ 112r ]
##
## Write to GPdat-file for animations in program GPLOT
## ==============================================================
s_var gpdat_r1 # Create a gp-file for animation in gplot
#
# s_var gpdat_force1 kzcb11r.F1y
# s_var gpdat_force1 kzcb11l.F1y
#
if_then_init .exist. cp1_111r.Fx
s_var gpdat_force1 cp1_111r.Fx s_var gpdat_force1 cp1_111r.Fy s_var gpdat_force1 cp1_111r.Fz
s_var gpdat_force1 cp1_111l.Fx s_var gpdat_force1 cp1_111l.Fy s_var gpdat_force1 cp1_111l.Fz
s_var gpdat_force1 cp1_112r.Fx s_var gpdat_force1 cp1_112r.Fy s_var gpdat_force1 cp1_112r.Fz
s_var gpdat_force1 cp1_112l.Fx s_var gpdat_force1 cp1_112l.Fy s_var gpdat_force1 cp1_112l.Fz
endif
if_then_init .exist. cp2_111r.Fx
s_var gpdat_force1 cp2_111r.Fx s_var gpdat_force1 cp2_111r.Fy s_var gpdat_force1 cp2_111r.Fz
s_var gpdat_force1 cp2_111l.Fx s_var gpdat_force1 cp2_111l.Fy s_var gpdat_force1 cp2_111l.Fz
s_var gpdat_force1 cp2_112r.Fx s_var gpdat_force1 cp2_112r.Fy s_var gpdat_force1 cp2_112r.Fz
s_var gpdat_force1 cp2_112l.Fx s_var gpdat_force1 cp2_112l.Fy s_var gpdat_force1 cp2_112l.Fz
endif
if_then_init .exist. cp3_111r.Fx
s_var gpdat_force1 cp3_111r.Fx s_var gpdat_force1 cp3_111r.Fy s_var gpdat_force1 cp3_111r.Fz
s_var gpdat_force1 cp3_111l.Fx s_var gpdat_force1 cp3_111l.Fy s_var gpdat_force1 cp3_111l.Fz
s_var gpdat_force1 cp3_112r.Fx s_var gpdat_force1 cp3_112r.Fy s_var gpdat_force1 cp3_112r.Fz
s_var gpdat_force1 cp3_112l.Fx s_var gpdat_force1 cp3_112l.Fy s_var gpdat_force1 cp3_112l.Fz
endif
#
s_var gpdat_wheel_info 111r lsa_111.b $genkpf/../w_prof/EN13715.2006/S1002t32.5_EN13715.wheel
s_var gpdat_wheel_info 111l lsa_111.b $genkpf/../w_prof/EN13715.2006/S1002t32.5_EN13715.wheel
s_var gpdat_wheel_info 112r lsa_112.b $genkpf/../w_prof/EN13715.2006/S1002t32.5_EN13715.wheel
s_var gpdat_wheel_info 112l lsa_112.b $genkpf/../w_prof/EN13715.2006/S1002t32.5_EN13715.wheel
#
if_then_char_init ckpfr .eq. "Variable_W/R-geom"
s_var gpdat_rail_info_right -100 $genkpf/../r_prof/bv50/bv50i30.rail
0 $genkpf/../r_prof/bv50/bv50i30.rail
5 $genkpf/../r_prof/bv50_worn/worn_rail_low3.rail
300 $genkpf/../r_prof/bv50_worn/worn_rail_low3.rail
305 $genkpf/../r_prof/bv50/bv50i30.rail
320 $genkpf/../r_prof/bv50/bv50i30.rail
325 $genkpf/../r_prof/bv50_worn/worn_rail_high3.rail
620 $genkpf/../r_prof/bv50_worn/worn_rail_high3.rail
625 $genkpf/../r_prof/bv50/bv50i30.rail
750 $genkpf/../r_prof/bv50/bv50i30.rail
#
s_var gpdat_rail_info_left -100 $genkpf/../r_prof/bv50/bv50i30.rail
0 $genkpf/../r_prof/bv50/bv50i30.rail
5 $genkpf/../r_prof/bv50_worn/worn_rail_high3.rail
300 $genkpf/../r_prof/bv50_worn/worn_rail_high3.rail
305 $genkpf/../r_prof/bv50/bv50i30.rail
320 $genkpf/../r_prof/bv50/bv50i30.rail
325 $genkpf/../r_prof/bv50_worn/worn_rail_low3.rail
620 $genkpf/../r_prof/bv50_worn/worn_rail_low3.rail
625 $genkpf/../r_prof/bv50/bv50i30.rail
750 $genkpf/../r_prof/bv50/bv50i30.rail
else
s_var gpdat_rail_info_right -100 $genkpf/../r_prof/uic60/uic60i40.rail
3000 $genkpf/../r_prof/uic60/uic60i40.rail
s_var gpdat_rail_info_left -100 $genkpf/../r_prof/uic60/uic60i40.rail
3000 $genkpf/../r_prof/uic60/uic60i40.rail
endif
##
## Write to MPdat-file for later postprocessing in program MPLOT
## ==============================================================
in_substruct save_car1 [ 1 ]
#
in_substruct save_bog1 [ 11 ]
in_substruct save_bog1 [ 12 ]
#
in_substruct save_axl1 [ 111 ]
in_substruct save_axl1 [ 112 ]
in_substruct save_axl1 [ 121 ]
in_substruct save_axl1 [ 122 ]
#
in_substruct save_creep1 [ 111l ]
in_substruct save_creep1 [ 111r ]
##
## Add couplings between the masses
## ==============================================================
##
## Secondary suspension: Coil springs
## ==================================
coupl k3_l kzcb11r # Name, first spring, right side
car_1 acb_1 kzcb.B -kzcb.H # Body #1 and its attachment point
bog_11 0.0 kzcb.B -kzcb.H # Body #2 and its attachment point
kxcb_11r kycb_11r kzcb_11r # Properties
kzcb.hs .5 # Height of spring
esys_1 m # Coordinate system and direction of action
bog_11.f bog_11.k bog_11.p # Spring tilted according to the bogie
#
coupl k3_l kzcb11l # Name, first spring, left side
car_1 acb_1 -kzcb.B -kzcb.H # Body #1 and its attachment point
bog_11 0.0 -kzcb.B -kzcb.H # Body #2 and its attachment point
kxcb_11l kycb_11l kzcb_11l # Properties
kzcb.hs .5 # Height of spring
esys_1 m # Coordinate system and direction of action
bog_11.f bog_11.k bog_11.p # Spring tilted according to the bogie
#
coupl k3_l kzcb12r # Name, second spring, right side
car_1 -acb_1 kzcb.B -kzcb.H # Body #1 and its attachment point
bog_12 0.0 kzcb.B -kzcb.H # Body #2 and its attachment point
kxcb_12r kycb_12r kzcb_12r # Properties
kzcb.hs .5 # Height of spring
esys_1 m # Coordinate system and direction of action
bog_12.f bog_12.k bog_12.p # Spring tilted according to the bogie
#
coupl k3_l kzcb12l # Name, second spring, left side
car_1 -acb_1 -kzcb.B -kzcb.H # Body #1 and its attachment point
bog_12 0.0 -kzcb.B -kzcb.H # Body #2 and its attachment point
kxcb_12l kycb_12l kzcb_12l # Properties
kzcb.hs .5 # Height of spring
esys_1 m # Coordinate system and direction of action
bog_12.f bog_12.k bog_12.p # Spring tilted according to the bogie
##
## Secondary suspension: Anti-roll bars
## ====================================
##
## coupl k c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## -----------------------------------------------------------------------------------------
coupl k kfcb11 car_1 acb_1 0.0 -kfcb.H bog_11 0.0 0.0 -kfcb.H kfcb_11 esys_1 f
coupl k kfcb12 car_1 -acb_1 0.0 -kfcb.H bog_12 0.0 0.0 -kfcb.H kfcb_12 esys_1 f
##
## Secondary suspension: Traction rods
## ===================================
##
## c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## -----------------------------------------------------------------------------------------------
coupl k ktr11 car_1 ktr.Ac ktr.Bc -ktr.Hc bog_11 ktr.Ab ktr.Bb -ktr.Hb ktr_11 esys_1 c
coupl k ktr12 car_1 -ktr.Ac ktr.Bc -ktr.Hc bog_12 -ktr.Ab ktr.Bb -ktr.Hb ktr_12 esys_1 c
coupl c ctr11 car_1 ktr.Ac ktr.Bc -ktr.Hc bog_11 ktr.Ab ktr.Bb -ktr.Hb ctr_11 esys_1 c
coupl c ctr12 car_1 -ktr.Ac ktr.Bc -ktr.Hc bog_12 -ktr.Ab ktr.Bb -ktr.Hb ctr_12 esys_1 c
##
## Secondary suspension: Lateral bumpstops
## =======================================
##
## coupl k c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## ----------------------------------------------------------------------------------------
coupl k kycbs11 car_1 acb_1 0.0 -kycbs.H bog_11 0.0 0.0 -kycbs.H kycbs_11 esys_1 y
coupl k kycbs12 car_1 -acb_1 0.0 -kycbs.H bog_12 0.0 0.0 -kycbs.H kycbs_12 esys_1 y
#
s_var sngl kycbs11.d
s_var sngl kycbs12.d
s_var sngl kycbs11.F
s_var sngl kycbs12.F
##
## Secondary suspension: Vertical bumpstops
## ========================================
##
## coupl k c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## -----------------------------------------------------------------------------------------------------------------
coupl k kzcbs11r car_1 acb_1+kzcbs.A kzcbs.B -kzcbs.H bog_11 kzcbs.A kzcbs.B -kzcbs.H kzcbs_11r esys_1 z
coupl k kzcbs11l car_1 acb_1+kzcbs.A -kzcbs.B -kzcbs.H bog_11 kzcbs.A -kzcbs.B -kzcbs.H kzcbs_11l esys_1 z
coupl k kzcbs12r car_1 -acb_1-kzcbs.A kzcbs.B -kzcbs.H bog_12 -kzcbs.A kzcbs.B -kzcbs.H kzcbs_12r esys_1 z
coupl k kzcbs12l car_1 -acb_1-kzcbs.A -kzcbs.B -kzcbs.H bog_12 -kzcbs.A -kzcbs.B -kzcbs.H kzcbs_12l esys_1 z
#
s_var sngl kzcbs11r.d s_var sngl kzcbs11l.d
s_var sngl kzcbs12r.d s_var sngl kzcbs12l.d
s_var sngl kzcbs11r.F s_var sngl kzcbs11l.F
s_var sngl kzcbs12r.F s_var sngl kzcbs12l.F
##
## Secondary suspension: Lateral viscous dampers
## =============================================
##
## coupl c c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## --------------------------------------------------------------------------------------------------------------
coupl c cycb11r car_1 acb_1+cycb.A cycb.Bc -cycb.Hc bog_11 cycb.A cycb.Bb -cycb.Hb cycb_11r esys_1 c
coupl c cycb11l car_1 acb_1+cycb.A -cycb.Bc -cycb.Hc bog_11 cycb.A -cycb.Bb -cycb.Hb cycb_11l esys_1 c
coupl c cycb12r car_1 -acb_1-cycb.A cycb.Bc -cycb.Hc bog_12 -cycb.A cycb.Bb -cycb.Hb cycb_12r esys_1 c
coupl c cycb12l car_1 -acb_1-cycb.A -cycb.Bc -cycb.Hc bog_12 -cycb.A -cycb.Bb -cycb.Hb cycb_12l esys_1 c
##
## Secondary suspension: Vertical viscous dampers
## ==============================================
##
## coupl c c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## -------------------------------------------------------------------------------------------------------------
coupl c czcb11r car_1 acb_1+czcb.A czcb.B -czcb.Hc bog_11 czcb.A czcb.B -czcb.Hb czcb_11r esys_1 z
coupl c czcb11l car_1 acb_1+czcb.A -czcb.B -czcb.Hc bog_11 czcb.A -czcb.B -czcb.Hb czcb_11l esys_1 z
coupl c czcb12r car_1 -acb_1-czcb.A czcb.B -czcb.Hc bog_12 -czcb.A czcb.B -czcb.Hb czcb_12r esys_1 z
coupl c czcb12l car_1 -acb_1-czcb.A -czcb.B -czcb.Hc bog_12 -czcb.A -czcb.B -czcb.Hb czcb_12l esys_1 z
##
## Secondary suspension: Yaw viscous dampers
## =========================================
##
## c_name body1 a1 b1 h1 body2 a2 b2 h2 prop_k prop_c esys dire
## -------------------------------------------------------------------------------------------------------------------
coupl kc cccb11r car_1 cccb.Ac cccb.Bc -cccb.Hc bog_11 cccb.Ab cccb.Bb -cccb.Hb kccb_11r cccb_11r esys_1 c
coupl kc cccb11l car_1 cccb.Ac -cccb.Bc -cccb.Hc bog_11 cccb.Ab -cccb.Bb -cccb.Hb kccb_11l cccb_11l esys_1 c
coupl kc cccb12r car_1 -cccb.Ac cccb.Bc -cccb.Hc bog_12 -cccb.Ab cccb.Bb -cccb.Hb kccb_12r cccb_12r esys_1 c
coupl kc cccb12l car_1 -cccb.Ac -cccb.Bc -cccb.Hc bog_12 -cccb.Ab -cccb.Bb -cccb.Hb kccb_12l cccb_12l esys_1 c
##
## Primary suspension: Springs
## ===========================
##
## c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## -------------------------------------------------------------------------------------------------------
coupl k kmba111r bog_11 aba_11 kmba.B -ro_111 axl_111 0.0 kmba.B -ro_111 kmba_111r esys_1 m
coupl k kmba111l bog_11 aba_11 -kmba.B -ro_111 axl_111 0.0 -kmba.B -ro_111 kmba_111l esys_1 m
coupl k kmba112r bog_11 -aba_11 kmba.B -ro_112 axl_112 0.0 kmba.B -ro_112 kmba_112r esys_1 m
coupl k kmba112l bog_11 -aba_11 -kmba.B -ro_112 axl_112 0.0 -kmba.B -ro_112 kmba_112l esys_1 m
coupl k kmba121r bog_12 aba_12 kmba.B -ro_121 axl_121 0.0 kmba.B -ro_121 kmba_121r esys_1 m
coupl k kmba121l bog_12 aba_12 -kmba.B -ro_121 axl_121 0.0 -kmba.B -ro_121 kmba_121l esys_1 m
coupl k kmba122r bog_12 -aba_12 kmba.B -ro_122 axl_122 0.0 kmba.B -ro_122 kmba_122r esys_1 m
coupl k kmba122l bog_12 -aba_12 -kmba.B -ro_122 axl_122 0.0 -kmba.B -ro_122 kmba_122l esys_1 m
#
coupl c cmba111r bog_11 aba_11 kmba.B -ro_111 axl_111 0.0 kmba.B -ro_111 cmba_111r esys_1 m
coupl c cmba111l bog_11 aba_11 -kmba.B -ro_111 axl_111 0.0 -kmba.B -ro_111 cmba_111l esys_1 m
coupl c cmba112r bog_11 -aba_11 kmba.B -ro_112 axl_112 0.0 kmba.B -ro_112 cmba_112r esys_1 m
coupl c cmba112l bog_11 -aba_11 -kmba.B -ro_112 axl_112 0.0 -kmba.B -ro_112 cmba_112l esys_1 m
coupl c cmba121r bog_12 aba_12 kmba.B -ro_121 axl_121 0.0 kmba.B -ro_121 cmba_121r esys_1 m
coupl c cmba121l bog_12 aba_12 -kmba.B -ro_121 axl_121 0.0 -kmba.B -ro_121 cmba_121l esys_1 m
coupl c cmba122r bog_12 -aba_12 kmba.B -ro_122 axl_122 0.0 kmba.B -ro_122 cmba_122r esys_1 m
coupl c cmba122l bog_12 -aba_12 -kmba.B -ro_122 axl_122 0.0 -kmba.B -ro_122 cmba_122l esys_1 m
##
## Primary suspension: Lateral bumpstops
## ======================================
##
## c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## ------------------------------------------------------------------------------------------------
coupl k kybas111 bog_11 aba_11 0.0 -kybas.H axl_111 0.0 0.0 -kybas.H kybas_111 esys_1 y
coupl k kybas112 bog_11 -aba_11 0.0 -kybas.H axl_112 0.0 0.0 -kybas.H kybas_112 esys_1 y
coupl k kybas121 bog_12 aba_12 0.0 -kybas.H axl_121 0.0 0.0 -kybas.H kybas_121 esys_1 y
coupl k kybas122 bog_12 -aba_12 0.0 -kybas.H axl_122 0.0 0.0 -kybas.H kybas_122 esys_1 y
#
s_var sngl kybas111.d
s_var sngl kybas112.d
s_var sngl kybas121.d
s_var sngl kybas122.d
s_var sngl kybas111.F
s_var sngl kybas112.F
s_var sngl kybas121.F
s_var sngl kybas122.F
##
## Primary suspension: Vertical bumpstops
## ======================================
##
## c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## -----------------------------------------------------------------------------------------------------------------------
coupl k kzbas111r bog_11 aba_11+kzbas.A kzbas.B -kzbas.H axl_111 kzbas.A kzbas.B -kzbas.H kzbas_111r esys_1 z
coupl k kzbas112r bog_11 -aba_11-kzbas.A kzbas.B -kzbas.H axl_112 -kzbas.A kzbas.B -kzbas.H kzbas_112r esys_1 z
coupl k kzbas121r bog_12 aba_12+kzbas.A kzbas.B -kzbas.H axl_121 kzbas.A kzbas.B -kzbas.H kzbas_121r esys_1 z
coupl k kzbas122r bog_12 -aba_12-kzbas.A kzbas.B -kzbas.H axl_122 -kzbas.A kzbas.B -kzbas.H kzbas_122r esys_1 z
coupl k kzbas111l bog_11 aba_11+kzbas.A -kzbas.B -kzbas.H axl_111 kzbas.A -kzbas.B -kzbas.H kzbas_111l esys_1 z
coupl k kzbas112l bog_11 -aba_11-kzbas.A -kzbas.B -kzbas.H axl_112 -kzbas.A -kzbas.B -kzbas.H kzbas_112l esys_1 z
coupl k kzbas121l bog_12 aba_12+kzbas.A -kzbas.B -kzbas.H axl_121 kzbas.A -kzbas.B -kzbas.H kzbas_121l esys_1 z
coupl k kzbas122l bog_12 -aba_12-kzbas.A -kzbas.B -kzbas.H axl_122 -kzbas.A -kzbas.B -kzbas.H kzbas_122l esys_1 z
#
s_var sngl kzbas111r.d s_var sngl kzbas111l.d
s_var sngl kzbas112r.d s_var sngl kzbas112l.d
s_var sngl kzbas121r.d s_var sngl kzbas121l.d
s_var sngl kzbas122r.d s_var sngl kzbas122l.d
s_var sngl kzbas111r.F s_var sngl kzbas111l.F
s_var sngl kzbas112r.F s_var sngl kzbas112l.F
s_var sngl kzbas121r.F s_var sngl kzbas121l.F
s_var sngl kzbas122r.F s_var sngl kzbas122l.F
##
## Primary suspension: Vertical viscous damper
## ===========================================
##
## c_name body1 a1 b1 h1 body2 a2 b2 h2 prop esys dire
## -----------------------------------------------------------------------------------------------------------------
coupl c czba111r bog_11 aba_11+czba.A czba.Bb -czba.Hb axl_111 +czba.A czba.Ba -czba.Ha czba_111r esys_1 c
coupl c czba111l bog_11 aba_11+czba.A -czba.Bb -czba.Hb axl_111 +czba.A -czba.Ba -czba.Ha czba_111l esys_1 c
coupl c czba112r bog_11 -aba_11-czba.A czba.Bb -czba.Hb axl_112 -czba.A czba.Ba -czba.Ha czba_112r esys_1 c
coupl c czba112l bog_11 -aba_11-czba.A -czba.Bb -czba.Hb axl_112 -czba.A -czba.Ba -czba.Ha czba_112l esys_1 c
coupl c czba121r bog_12 aba_12+czba.A czba.Bb -czba.Hb axl_121 +czba.A czba.Ba -czba.Ha czba_121r esys_1 c
coupl c czba121l bog_12 aba_12+czba.A -czba.Bb -czba.Hb axl_121 +czba.A -czba.Ba -czba.Ha czba_121l esys_1 c
coupl c czba122r bog_12 -aba_12-czba.A czba.Bb -czba.Hb axl_122 -czba.A czba.Ba -czba.Ha czba_122r esys_1 c
coupl c czba122l bog_12 -aba_12-czba.A -czba.Bb -czba.Hb axl_122 -czba.A -czba.Ba -czba.Ha czba_122l esys_1 c