$ Script for FRP footbridge $██████████████████████████████████████████████████████████████████████████████████████████ $██████████████████████████████████████████████████████████████████████████████████████████ !#!Chapter: Quantities $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -PROG TEMPLATE urs:15.2 HEAD List of abbreviations $min minimum $max maximum $add additional $ctc center to center $ped pedestrian $mat material $lf lower flange $uf upper flange $sf side flange $sfh side flange horizontal $sfv side flange vertical $l left $r right $grp group $cs cross section $dl dead load $imp impulse $sw selfweight $bot bottom $nr number $ts time step $std standard deviation $sect section $dbl double $int integer $coord coordinate $vol volume $lc load case $tot total END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG TEMPLATE urs:15.1 HEAD User input $$$#0123456789ABCDEF $ use this line to check length of variable name (max 16 characters!) $__________________________________________________________________________________________ !*! Bridge dimensions sto#span 16.2 $ [m] span of the bridge (distance between supports) sto#width 4.6 $ [m] width of the bridge (includes the width of the upper flange and two times the width of the side flanges) sto#sf_setting 1 $ variable to choose if there is a side flange and if it contains both a horizontal and a vertical plate or only a horizontal plate: 0 = no side flange, 1 = only horizontal plate, 2 = horizontal and vertical plate sto#width_sf 0.2 $ [m] width of the horizontal part of the side flange; this variable won't be used if there is no side flange sto#height_sf 0.3 $ [m] height of the vertical part of the side flange; this variable won't be used if there is no side flange or if the side flange doesn't contain a vertical plate sto#total_height 0.4 $ [m] height from top side of upper flange to bottom side of lower flange sto#ctc 0.21 $ [m] distance between web plates, center to center sto#angle 85 $ [°] angle between horizontal plane and edge plates (equal to 90° if edges are not slanted) sto#wear_thickness 15 $ [mm] thickness of the wearing layer $__________________________________________________________________________________________ !*! Plate thicknesses sto#thickness_web 5 $ [mm] thickness of webs sto#thickness_uf 12 $ [mm] thickness of upper flange sto#thickness_lf 14 $ [mm] thickness of lower flange sto#thickness_sf 31 $ [mm] thickness of side flanges sto#thickness_edge 22 $ [mm] thickness of edges $__________________________________________________________________________________________ !*! Materials sto#frp_density 2568.8 $ [kg/m³] density of FRP material sto#wear_density 1500 $[kg/m³] density of the wearing layer sto#foam_density 50 $[kg/m³] density of the core foam material $__________________________________________________________________________________________ !*! Pedestrians $ Number of pedestrians to be generated: sto#main_ped 0 $ set this variable equal to 1 to generate the main pedestrian in the middle of the bridge sto#additional_peds 3 $ set this variable equal to 1 to generate 1 longitudinal line of additional pedestrians on the bridge $ set this variable equal to 2 to generate maximum number of additional pedestrians across the entire bridge (note that this may be an unrealistically high number) $ set this variable equal to 3 to generate custom number (#nr_of_add_peds) of additional pedestrians across the entire bridge sto#nr_of_add_peds 234 $ number of additional pedestrians that should be generated in case a custom number of additional pedestrians is desired $ Geometrical characteristics of pedestrians: sto#ped_mass 70 $ [kg] mass of a pedestrian $$$ sto#ped_height 1.8 $ [m] combined height of truss elements that represent sprung and unsprung masses of pedestrian $$$ sto#ped_width 0.15 $ [m] width of truss element that represents pedestrian; make sure the width of the cross section used for this truss element is equal to this value sto#ped_offset 0.5 $ [m] height of the damper/spring between the unsprung and sprung truss masses that represent the pedestrian sto#ped_m1_percent 5 $ [%] percentage of the total mass of the pedestrian which makes up the unsprung mass (m1) $ Dynamic characteristics of pedestrians: sto#ped_f1 3.25 $ [Hz] natural frequency of the sprung mass of the main pedestrian (3.25 Hz on average according to Van Nimmen et al.) sto#ped2_f1 3.25 $ [Hz] natural frequency of the sprung mass of an additional pedestrian (3.25 Hz on average according to Van Nimmen et al.) sto#ped_damp_ratio 0.3 $ [-] damping ratio of the sprung mass of the main pedestrian (0.30 on average according to Van Nimmen et al.) sto#ped2_damp_ratio 0.3 $ [-] damping ratio of the sprung mass of an additional pedestrian (0.30 on average according to Van Nimmen et al.) $__________________________________________________________________________________________ !*! Damping properties sto#bri_damp_ratio 0.03 $ [-] Rayleigh damping factor of the bridge sto#modefordamping 2 $ mode in which it is assumed that the Rayleigh damping is equal to that of the first natural frequency (e.g. if this parameter is set to 5, the 5th natural frequency will be used to calculate the Rayleigh coefficients alpha and beta) sto#f1 2.38 $ [Hz] 1st natural frequency of the bridge without any pedestrians on it sto#f2 3.46 $ [Hz] 2nd natural frequency of the bridge without any pedestrians on it sto#f3 7.65 $ [Hz] 3rd natural frequency of the bridge without any pedestrians on it sto#f4 8.40 $ [Hz] 4th natural frequency of the bridge without any pedestrians on it sto#f5 9.21 $ [Hz] 5th natural frequency of the bridge without any pedestrians on it sto#f6 10.39 $ [Hz] 6th natural frequency of the bridge without any pedestrians on it sto#f7 12.82 $ [Hz] 7th natural frequency of the bridge without any pedestrians on it sto#f8 16.56 $ [Hz] 8th natural frequency of the bridge without any pedestrians on it sto#f9 17.91 $ [Hz] 9th natural frequency of the bridge without any pedestrians on it sto#f10 18.25 $ [Hz] 10th natural frequency of the bridge without any pedestrians on it sto#f15 25.53 $ [Hz] 15th natural frequency of the bridge without any pedestrians on it sto#f20 32.66 $ [Hz] 20th natural frequency of the bridge without any pedestrians on it sto#f25 38.56 $ [Hz] 25th natural frequency of the bridge without any pedestrians on it sto#f30 45.18 $ [Hz] 30th natural frequency of the bridge without any pedestrians on it sto#f35 51.34 $ [Hz] 35th natural frequency of the bridge without any pedestrians on it sto#f40 58.06 $ [Hz] 40th natural frequency of the bridge without any pedestrians on it sto#f45 64.59 $ [Hz] 45th natural frequency of the bridge without any pedestrians on it sto#f50 69.40 $ [Hz] 50th natural frequency of the bridge without any pedestrians on it $__________________________________________________________________________________________ !*! Impulse load sto#type_of_load 1 $ set this variable equal to 1 to use a triangular impulse load $ set this variable equal to 2 to use a gaussian impulse load sto#load_factor 0.7 $ factor by which the weight of a person is multiplied to obtain the impulse load END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG TEMPLATE urs:2 HEAD Developer input $ Note: the input in this section is only required to ensure the script runs correctly $__________________________________________________________________________________________ !*! Material ID's sto#mat_web 1 $ material ID of webs sto#mat_uf 2 $ material ID of upper flange sto#mat_lf 3 $ material ID of lower flange sto#mat_edge 4 $ material ID of edges sto#mat_sf 5 $ material ID of side flanges sto#mat_ped 6 $ material ID of truss element that represents pedestrian sto#mat_stick 7 $ material ID of stick to connect elements $__________________________________________________________________________________________ !*! Plate ID's sto#id_lf_l 5 $ plate ID of left outer side of lower flange sto#id_lf_r 6 $ plate ID of right outer side of lower flange sto#id_uf_l 3 $ plate ID of left outer side of upper flange sto#id_uf_r 4 $ plate ID of right outer side of upper flange sto#id_sfh_l 1 $ plate ID of horizontal part of left side flange sto#id_sfh_r 2 $ plate ID of horizontal part of right side flange sto#id_sfv_l 7 $ plate ID of vertical part of left side flange sto#id_sfv_r 8 $ plate ID of vertical part of right side flange $__________________________________________________________________________________________ !*! Truss ID's sto#truss_unsprung 98 $ truss ID of truss element that represents unsprung mass of pedestrian sto#truss_sprung 99 $ truss ID of truss element that represents sprung mass of pedestrian $__________________________________________________________________________________________ !*! Group ID's sto#grp_lf 1 $ group ID of lower flange sto#grp_uf 2 $ group ID of upper flanges sto#grp_edge 3 $ group ID of edges sto#grp_sfh 4 $ group ID of horizontal parts of side flanges sto#grp_sfv 5 $ group ID of vertical parts of side flanges sto#grp_web 6 $ group ID of webs sto#grp_pednodes 97 $ group ID of nodes of truss element that represents pedestrian sto#grp_pedspring 98 $ group ID of contact spring between truss element that represents pedestrian and bridge sto#grp_ped 99 $ group ID of truss element that represents pedestrian, and its stabilizing horizontal springs sto#grp_ped2 94 $ group ID of truss elements that represent other pedestrians on 1 line, and their stabilizing horizontal springs sto#grp_ped3 95 $ group ID of truss elements that represent other pedestrians across entire bridge, and their stabilizing horizontal springs sto#grp_ped2nodes 90 $ group ID of nodes of truss elements that represents other pedestrians on 1 line sto#grp_ped3nodes 91 $ group ID of nodes of truss elements that represents other pedestrians across entire bridge sto#grp_ped2spring 92 $ group ID of contact springs between truss elements that represent other pedestrians on 1 line and bridge sto#grp_ped3spring 100 $ group ID of contact springs between truss elements that represent other pedestrians across entire bridge and bridge $__________________________________________________________________________________________ !*! Cross section ID's sto#cs_ped 1 sto#cs_stick 2 $__________________________________________________________________________________________ !*! Load case ID's sto#lc_wear 2 $ load case ID of wearing layer load sto#lc_foam 3 $ load case ID of foam load sto#lc_dl 7001 $ load case ID of load case that contains all dead loads sto#lc_dl_sw 1 $ load case ID of load case that contains all dead loads and selfweight sto#lc_imp 7002 $ load case ID of impulse load sto#lc_dyna_first 8000 $ load case ID of the first load case of time step analysis $__________________________________________________________________________________________ !*! Pedestrians $$$sto#node_ped_m1_bot 10001 $ number of the node at the bottom of the truss element that represents the unsprung mass (m1) of the pedestrian (this node is not used anywhere because the bottom of the unsprung mass is assumed to coincide with a node of the bridge, because it is not separated from it with a spring) $$$sto#node_ped_m1_top 10002 $ number of the node at the top of the truss element that represents the unsprung mass (m1) of the pedestrian $$$sto#node_ped_m2_bot 10003 $ number of the node at the bottom of the truss element that represents the sprung mass (m2) of the pedestrian $$$sto#node_ped_m2_top 10004 $ number of the node at the top of the truss element that represents the sprung mass (m2) of the pedestrian sto#node_ped 10001 $ number of the node in which the main pedestrian's sprung mass is concentrated $__________________________________________________________________________________________ !*! Time step analysis sto#dt 0.005 $ [s] duration of one time step sto#nr_of_ts 5000 $ number of time steps in the simulation $__________________________________________________________________________________________ !*! Triangular impulse load sto#ts_of_imp_start 20 $ time step in which the impulse load starts sto#ts_buildup_imp 30 $ number of time steps over which the triangular impulse load increases linearly from 0 to its maximum value sto#ts_buildoff_imp 50 $ number of time steps over which the triangular impulse load decreases linearly from its maximum to 0 $sto#start_time_imp 5 $ time at which the triangular or gaussian impulse load starts $sto#time_of_imp_max 8 $ time at which the triangular impulse load reaches its maximum $sto#end_time_imp 13 $ time at which the triangular impulse load ends $__________________________________________________________________________________________ !*! Gaussian impulse load sto#gauss_start 0.2 $ [s] starting time sto#gauss_duration 0.1 $ [s] duration of the gaussian impulse load sto#gauss_stds 6 $ number of equivalent standard deviations centered around the peak which are considered in the gauss curve sto#gauss_nr_of_ts 19 $ number of time steps in which the magnitude of the gaussian impulse load is calculated (in between these time steps, the load is linearly interpolated) (note: these have nothing to do with the duration of the time steps in the DYNA analysis); if this variable is changed, the corresponding FUNC record must be updated as well so that it uses the same number of time steps $__________________________________________________________________________________________ !*! Other sto#pi 3.1415 sto#nr_of_nodes_cs 8 $ the number of nodes in a cross section (not including those of the webs) sto#nr_of_long_sect 20 $ number of longitudinal sections: the bridge is modeled in multiple parts or 'sections' in longitudinal direction so that the nodes between these sections can be used to place loads on sto#meshsize 1 $ this value determines how fine or coarse the mesh is sto#nr_of_eigenmodes 50 $ number of eigenmodes and eigenfrequencies which will be calculated END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG TEMPLATE urs:3 HEAD Calculated quantities, before creating the model $__________________________________________________________________________________________ !*! Dimensions sto#width_uf #width-2*#width_sf $[m] width of upper flange sto#width_lf #width_uf-2*#height/tan(#angle) $[m] width of lower flange sto#height #total_height-#thickness_uf/(2*1000)-#thickness_lf/(2*1000) $ [m] height of wire model (distance between center planes of flanges) sto#sectionlength #span/#nr_of_long_sect $ length of a longitudinal section sto#deck_area #width*#span $ [m²] area of the deck $__________________________________________________________________________________________ !*! Number of webs $ Note: this calculation is done in steps, because there is no simple round(...) function sto#nr_of_webs_dbl #width_lf/#ctc $ non-rounded value (a.k.a. 'double') of number of webs sto#nr_of_webs_int div(#nr_of_webs_dbl,1) $ rounded-down value (a.k.a. 'integer') of number of webs sto#remainder mod(#nr_of_webs_dbl,1) if (#remainder < 0.5) sto#nr_of_webs #nr_of_webs_int $ actual number of webs else sto#nr_of_webs #nr_of_webs_int+1 $ actual number of webs endif $__________________________________________________________________________________________ !*! Determination of node in the middle of the bridge if mod(#nr_of_long_sect,2) == 0 $ determine if number of longitudinal sections is even sto#middle_long_sect (#nr_of_long_sect+2)*100 $ in case it is even sto#y_middle #sectionlength*#nr_of_long_sect/2 else sto#middle_long_sect (#nr_of_long_sect+1)*100 $ in case it is uneven sto#y_middle #sectionlength*(#nr_of_long_sect-1)/2 endif if mod(#nr_of_webs,2) == 0 $ determine if number of webs is even sto#middle_web #nr_of_nodes_cs+#nr_of_webs/2 $ in case it is even sto#x_middle #ctc/2 else sto#middle_web #nr_of_nodes_cs+(#nr_of_webs+1)/2 $ in case it is uneven sto#x_middle 0 endif sto#node_middle #middle_long_sect+#middle_web $ node in the middle of the bridge (both in transverse and longitudinal direction) sto#node_neighbor #node_middle+1 $ node right next to (in transverse direction) node in which the impulse load acts $__________________________________________________________________________________________ !*! Determination of x-coordinate of first web if mod(#nr_of_webs,2) == 0 $ determine if number of webs is even sto#first_x_coord #x_middle-#ctc*#nr_of_webs/2 $ x-coordinate of first web in case number of webs is even else sto#first_x_coord #x_middle-#ctc*(#nr_of_webs-1)/2 $ x-coordinate of first web in case number of webs is uneven endif $__________________________________________________________________________________________ !*! Pedestrians sto#ped_m2_percent 100-#ped_m1_percent $ [%] percentage of the total mass of the pedestrian which makes up the sprung mass (m2) sto#ped_m1_mass (#ped_m1_percent/100)*#ped_mass $ [kg] mass of the unsprung mass (m1) sto#ped_m2_mass (#ped_m2_percent/100)*#ped_mass $ [kg] mass of the sprung mass (m2) sto#ped_w1 #ped_f1*2*#pi $ [rad/s] angular natural frequency of the sprung mass of the main pedestrian sto#ped2_w1 #ped2_f1*2*#pi $ [rad/s] angular natural frequency of the sprung mass of an additional pedestrian sto#ped_spring_cst #ped_m2_mass*#ped_w1^2/10^3 $ [kN/m³] spring constant of the main pedestrian sto#ped2_spring_cst #ped_m2_mass*#ped2_w1^2/10^3 $ [kN/m³] spring constant of an additional pedestrian sto#ped_damp_coef 2*#ped_damp_ratio*#ped_w1*#ped_m2_mass/10^3 $ [kNs/m³] damping coefficient of the main pedestrian sto#ped2_damp_coef 2*#ped2_damp_ratio*#ped2_w1*#ped_m2_mass/10^3 $ [kNs/m³] damping coefficient of an additional pedestrian $$$sto#ped_vol #ped_width^2*#ped_height $ [m³] volume of truss element that represents pedestrian $$$sto#ped_density #ped_mass/#ped_vol $ [kg/m³] density of truss element that represents pedestrian $$$sto#ped_unitweight 9.81*#ped_density/10^3 $ [kN/m³] density of truss element that represents pedestrian; make sure the density of the material used for this truss element is equal to this value $$$sto#ped_m1_height #ped_height*#ped_m1_percent/100 $ [m] height of truss element that represents unsprung mass (m1) of pedestrian $$$sto#ped_m2_height #ped_height-#ped_m1_height $ [m] height of truss element that represents sprung mass (m2) of pedestrian sto#ped_weight 9.81*#ped_mass/10^3 $ [kN] total weight of a pedestrian if #additional_peds == 0 sto#nr_of_add_peds2 0 $ zero additional pedestrians elseif #additional_peds == 1 sto#nr_of_add_peds2 #nr_of_long_sect+1 $ number of additional pedestrians when a single line of additional pedestrians is generated elseif #additional_peds == 2 sto#nr_of_add_peds2 (#nr_of_long_sect+1)*#nr_of_webs $ number of additional pedestrians when the maximum number of additional pedestrians is generated elseif #additional_peds == 3 sto#nr_of_add_peds2 0 $ number of additional pedestrians when a custom number of additional pedestrians is generated; this variable is set equal to 0 here and counts up by 1 every time a pedestrian is generated (see SOFIMSHA), because the actual number of additional pedestrians generated may differ (by at maximum 1) from the submitted number sto#ratio_add_peds max(1.0001,#max_add_peds/#nr_of_add_peds) $ ratio of the maximum number of additional pedestrians to the desired number of additional pedestrians, which must be greater than 1 endif sto#max_add_peds (#nr_of_long_sect+1)*#nr_of_webs $ maximum number of additional pedestrians $__________________________________________________________________________________________ !*! Total mass of bridge sto#frp_unitweight 9.81*#frp_density/10^3 $ [kN/m³] unit weight of FRP material sto#vol_web #nr_of_webs*(#thickness_web/10^3)*#span*#height $ [m³] volume of all webs sto#vol_uf (#thickness_uf/10^3)*#span*#width_uf $ [m³] volume of upper flange sto#vol_lf (#thickness_lf/10^3)*#span*#width_lf $ [m³] volume of lower flange sto#vol_edge 2*(#thickness_edge/10^3)*#span*#height/sin(#angle) $ [m³] volume of edges if #sf_setting == 0 sto#vol_sf 0 $ [m³] volume of 0 m³ of side flanges in case no side flanges are present elseif #sf_setting == 1 sto#vol_sf 2*(#thickness_sf/10^3)*#span*#width_sf $ [m³] volume of side flanges in case they only contain a horizontal plate elseif #sf_setting == 2 sto#vol_sf 2*(#thickness_sf/10^3)*#span*(#width_sf+#height_sf) $ [m³] volume of side flanges in case they contain both a horizontal and a vertical plate endif sto#mass_web #frp_density*#vol_web $ [kg] mass of all webs sto#mass_uf #frp_density*#vol_uf $ [kg] mass of upper flange sto#mass_lf #frp_density*#vol_lf $ [kg] mass of lower flange sto#mass_sf #frp_density*#vol_sf $ [kg] mass of side flanges sto#mass_edge #frp_density*#vol_edge $ [kg] mass of edges sto#mass_bridge_str #mass_web+#mass_uf+#mass_lf+#mass_sf+#mass_edge $ [kg] total mass of the structural elements of the bridge sto#mass_wear #wear_density*(#wear_thickness/10^3)*#span*#width_uf $ [kg] mass of wearing layer sto#mass_foam #foam_density*#foam_height*#span*#width_lf $ [kg] mass of foam core sto#mass_bridge_tot #mass_bridge_str+#mass_wear+#mass_foam $ [kg] total mass of the bridge (structural elements, wearing layer and foam core) $__________________________________________________________________________________________ !*! Loads sto#wear_load 9.81*#wear_density*#wear_thickness/(1000*1000) $ [kN/m²] distributed load due to wearing layer sto#foam_height #total_height-(#thickness_uf/1000)-(#thickness_lf/1000) $ [m] height of the foam core sto#foam_load 9.81*#foam_density*#foam_height/1000 $ [kN/m²] distributed load due to foam core sto#imp_force #load_factor*#ped_weight $ [kN] force magnitude of the impulse load $__________________________________________________________________________________________ !*! Damping properties sto#w1 #f1*2*#pi $ [rad/s] 1st angular natural frequency of the bridge without any pedestrians on it sto#w2 #f2*2*#pi $ [rad/s] 2nd angular natural frequency of the bridge without any pedestrians on it sto#w3 #f3*2*#pi $ [rad/s] 3rd angular natural frequency of the bridge without any pedestrians on it sto#w4 #f4*2*#pi $ [rad/s] 4th angular natural frequency of the bridge without any pedestrians on it sto#w5 #f5*2*#pi $ [rad/s] 5th angular natural frequency of the bridge without any pedestrians on it sto#w6 #f6*2*#pi $ [rad/s] 6th angular natural frequency of the bridge without any pedestrians on it sto#w7 #f7*2*#pi $ [rad/s] 7th angular natural frequency of the bridge without any pedestrians on it sto#w8 #f8*2*#pi $ [rad/s] 8th angular natural frequency of the bridge without any pedestrians on it sto#w9 #f9*2*#pi $ [rad/s] 9th angular natural frequency of the bridge without any pedestrians on it sto#w10 #f10*2*#pi $ [rad/s] 10th angular natural frequency of the bridge without any pedestrians on it sto#w15 #f15*2*#pi $ [rad/s] 15th angular natural frequency of the bridge without any pedestrians on it sto#w20 #f20*2*#pi $ [rad/s] 20th angular natural frequency of the bridge without any pedestrians on it sto#w25 #f25*2*#pi $ [rad/s] 25th angular natural frequency of the bridge without any pedestrians on it sto#w30 #f30*2*#pi $ [rad/s] 30th angular natural frequency of the bridge without any pedestrians on it sto#w35 #f35*2*#pi $ [rad/s] 35th angular natural frequency of the bridge without any pedestrians on it sto#w40 #f40*2*#pi $ [rad/s] 40th angular natural frequency of the bridge without any pedestrians on it sto#w45 #f45*2*#pi $ [rad/s] 45th angular natural frequency of the bridge without any pedestrians on it sto#w50 #f50*2*#pi $ [rad/s] 50th angular natural frequency of the bridge without any pedestrians on it if #modefordamping == 2 sto#w_modefordamping #w2 elseif #modefordamping == 3 sto#w_modefordamping #w3 elseif #modefordamping == 4 sto#w_modefordamping #w4 elseif #modefordamping == 5 sto#w_modefordamping #w5 elseif #modefordamping == 6 sto#w_modefordamping #w6 elseif #modefordamping == 7 sto#w_modefordamping #w7 elseif #modefordamping == 8 sto#w_modefordamping #w8 elseif #modefordamping == 9 sto#w_modefordamping #w9 elseif #modefordamping == 10 sto#w_modefordamping #w10 elseif #modefordamping == 15 sto#w_modefordamping #w15 elseif #modefordamping == 20 sto#w_modefordamping #w20 elseif #modefordamping == 25 sto#w_modefordamping #w25 elseif #modefordamping == 30 sto#w_modefordamping #w30 elseif #modefordamping == 35 sto#w_modefordamping #w35 elseif #modefordamping == 40 sto#w_modefordamping #w40 elseif #modefordamping == 45 sto#w_modefordamping #w45 elseif #modefordamping == 50 sto#w_modefordamping #w50 endif sto#alpha 2*#bri_damp_ratio*#w1*#w_modefordamping*(#w_modefordamping-#w1)/(#w_modefordamping^2-#w1^2) $ [Hz] alpha Rayleigh coefficient: mass proportional damping sto#beta 2*#bri_damp_ratio*(#w_modefordamping-#w1)/(#w_modefordamping^2-#w1^2) $ [s] beta Rayleigh coefficient: stiffness proportional damping $__________________________________________________________________________________________ !*! Time step analysis sto#duration #nr_of_ts*#dt $ duration of the simulation sto#lc_dyna_last #lc_dyna_first+#nr_of_ts-1 $ last load case of time step analysis $__________________________________________________________________________________________ !*! Triangular impulse load sto#start_time_imp #ts_of_imp_start*#dt $ time at which the triangular impulse load starts sto#time_of_imp_max #start_time_imp+#dt*#ts_buildup_imp $ time at which the triangular impulse load reaches its maximum sto#end_time_imp #time_of_imp_max+#dt*#ts_buildoff_imp $ time at which the triangular impulse load ends $__________________________________________________________________________________________ !*! Gaussian impulse load sto#gauss_ts #gauss_duration/#gauss_nr_of_ts $ [s] duration of a single time step of the gaussian impulse load sto#gauss_sigma #gauss_duration/#gauss_stds $ Gaussian RMS width (equivalent to the standard deviation in a normal distribution in statistics) sto#gauss_peak #gauss_start+#gauss_duration/2 $ [s] time at which the peak of the gaussian impulse load occurs $ Time steps: sto#gauss_t1 #gauss_start+#gauss_ts sto#gauss_t2 #gauss_t1+#gauss_ts sto#gauss_t3 #gauss_t2+#gauss_ts sto#gauss_t4 #gauss_t3+#gauss_ts sto#gauss_t5 #gauss_t4+#gauss_ts sto#gauss_t6 #gauss_t5+#gauss_ts sto#gauss_t7 #gauss_t6+#gauss_ts sto#gauss_t8 #gauss_t7+#gauss_ts sto#gauss_t9 #gauss_t8+#gauss_ts sto#gauss_t10 #gauss_t9+#gauss_ts sto#gauss_t11 #gauss_t10+#gauss_ts sto#gauss_t12 #gauss_t11+#gauss_ts sto#gauss_t13 #gauss_t12+#gauss_ts sto#gauss_t14 #gauss_t13+#gauss_ts sto#gauss_t15 #gauss_t14+#gauss_ts sto#gauss_t16 #gauss_t15+#gauss_ts sto#gauss_t17 #gauss_t16+#gauss_ts sto#gauss_t18 #gauss_t17+#gauss_ts sto#gauss_t19 #gauss_t18+#gauss_ts sto#gauss_t20 #gauss_t19+#gauss_ts $ Values of gauss curve at each moment in time: sto#gauss_f1 exp((-1/2)*((#gauss_t1-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f2 exp((-1/2)*((#gauss_t2-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f3 exp((-1/2)*((#gauss_t3-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f4 exp((-1/2)*((#gauss_t4-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f5 exp((-1/2)*((#gauss_t5-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f6 exp((-1/2)*((#gauss_t6-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f7 exp((-1/2)*((#gauss_t7-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f8 exp((-1/2)*((#gauss_t8-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f9 exp((-1/2)*((#gauss_t9-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f10 exp((-1/2)*((#gauss_t10-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f11 exp((-1/2)*((#gauss_t11-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f12 exp((-1/2)*((#gauss_t12-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f13 exp((-1/2)*((#gauss_t13-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f14 exp((-1/2)*((#gauss_t14-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f15 exp((-1/2)*((#gauss_t15-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f16 exp((-1/2)*((#gauss_t16-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f17 exp((-1/2)*((#gauss_t17-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f18 exp((-1/2)*((#gauss_t18-#gauss_peak)/#gauss_sigma)^2) sto#gauss_f19 exp((-1/2)*((#gauss_t19-#gauss_peak)/#gauss_sigma)^2) $__________________________________________________________________________________________ !*! Other END $██████████████████████████████████████████████████████████████████████████████████████████ $██████████████████████████████████████████████████████████████████████████████████████████ !+!Chapter: Creation of the model $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG AQUA urs:5.3 HEAD Creation of materials and cross sections $__________________________________________________________________________________________ !*! FRP materials UNIT 5 NORM 'EN' '1992-2004' COUN 0 CAT 'C' SNOW '1' UNIT 5 TIMB NO #mat_web TYPE GFK 'UP' EP 12000 G 4000 E90 11920 QH 0.300000 QH90 0.100000 GAM #frp_unitweight FM 144 FT0 144 FT90 143 FC0 144 FC90 143 FV 64 FVR 64 FM90 143 TITL "=Webs" SSLA EPS ULTI SIG 3[-] HMAT NO #mat_web TYPE FOUR NSP 0.100000 A 1 TIMB NO #mat_lf TYPE GFK 'UP' EP 30000 G 2440 E90 17667 QH 0.300000 QH90 0.100000 GAM #frp_unitweight FM 366 FT0 366 FT90 212 FC0 366 FC90 212 FV 39 FVR 39 FM90 212 TITL "=Lower flange" SSLA EPS ULTI SIG 3[-] HMAT NO #mat_lf TYPE FOUR NSP 0.100000 A 1 TIMB NO #mat_uf TYPE GFK 'UP' EP 27000 G 9670 E90 21167 QH 0.300000 QH90 0.100000 GAM #frp_unitweight FM 321 FT0 321 FT90 254 FC0 321 FC90 254 FV 155 FVR 155 FM90 254 TITL "=Upper flange" SSLA EPS ULTI SIG 3[-] HMAT NO #mat_uf TYPE FOUR NSP 0.100000 A 1 TIMB NO #mat_edge TYPE GFK 'UP' EP 24000 G 6000 E90 35000 QH 0.300000 QH90 0.100000 GAM #frp_unitweight FM 288 FT0 288 FT90 420 FC0 288 FC90 420 FV 96 FVR 96 FM90 420 TITL "=Edges" SSLA EPS ULTI SIG 3[-] HMAT NO #mat_edge TYPE FOUR NSP 0.100000 A 1 TIMB NO #mat_sf TYPE GFK 'UP' EP 25000 G 2438 E90 24583 QH 0.300000 QH90 0.100000 GAM #frp_unitweight FM 300 FT0 300 FT90 295 FC0 300 FC90 295 FV 39 FVR 39 FM90 295 TITL "=Side flanges" SSLA EPS ULTI SIG 3[-] HMAT NO #mat_sf TYPE FOUR NSP 0.100000 A 1 $__________________________________________________________________________________________ !*! Pedestrian materials $$$ MATE NO #mat_ped E 10000000 GAM #ped_unitweight TITL "Pedestrian" $ Material of the truss element that represents pedestrian $$$ MATE NO #mat_stick GAM 25 TITL "Infinitely stiff material" $__________________________________________________________________________________________ !*! Cross section of truss element that represents pedestrian $$$$ UNIT 5 $$$ SREC NO #cs_ped H #ped_width*1000 B #ped_width*1000 MNO #mat_ped MRF 0 REF C IT 0[o/o] AY 0[o/o] AZ 0[o/o] BCYZ '0' SPT 0 TITL "B/H = 300 / 300 mm" $$$ SREC NO #cs_stick H 1 B 1 MNO #mat_stick END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG SOFIMSHA urs:5.2 HEAD Creation of the bridge model and the pedestrians SYST type 3D GDIR NEGZ GDIV 5000 $ global parameters of the system: spatial structure (3D) with the negative z-axis as the direction of gravity $__________________________________________________________________________________________ !*! Creation of web plates loop#i0 #nr_of_webs*#nr_of_long_sect let#i1 #i0+1 let#j1 mod(#i1-1,#nr_of_long_sect)+1 $ rank of longitudinal section let#k1 (#i1-#j1)/#nr_of_long_sect+1 $ rank of web let#a1 (#j1*2-1)*100+#k1+#nr_of_nodes_cs let#b1 (#j1*2-0)*100+#k1+#nr_of_nodes_cs let#c1 (#j1*2+1)*100+#k1+#nr_of_nodes_cs let#d1 (#j1*2+2)*100+#k1+#nr_of_nodes_cs if #j1 == 1 node no #a1 x (#nr_of_webs-1)*#ctc/2-(#k1-1)*#ctc y 0 z 0 node no #b1 x (#nr_of_webs-1)*#ctc/2-(#k1-1)*#ctc y 0 z #height endif node no #c1 x (#nr_of_webs-1)*#ctc/2-(#k1-1)*#ctc y #j1*#sectionlength z 0 node no #d1 x (#nr_of_webs-1)*#ctc/2-(#k1-1)*#ctc y #j1*#sectionlength z #height grp #grp_web titl 'Webs' quad no (#j1*1000)+#k1+#nr_of_nodes_cs n1 #a1 n2 #b1 n3 #d1 n4 #c1 t #thickness_web m #height/#meshsize n 1 mno #mat_web endloop $__________________________________________________________________________________________ !*! Creation of lower flange $ Creation of outer sides of lower flange: node no 100+#id_lf_l x #width_lf/2 y 0 z 0 node no 100+#id_lf_r x -#width_lf/2 y 0 z 0 $fix PX loop#i0 #nr_of_long_sect let#i1 #i0+1 node no (#i1*2+1)*100+#id_lf_l x #width_lf/2 y #i1*#sectionlength z 0 node no (#i1*2+1)*100+#id_lf_r x -#width_lf/2 y #i1*#sectionlength z 0 grp #grp_lf titl 'Lower flange' quad no (#i1*1000)+#id_lf_l n1 (#i1*2-1)*100+#id_lf_l n2 (#i1*2-1)*100+1+#nr_of_nodes_cs n3 (#i1*2+1)*100+1+#nr_of_nodes_cs n4 (#i1*2+1)*100+#id_lf_l t #thickness_lf m 1 n 1 mno #mat_lf quad no (#i1*1000)+#id_lf_r n1 (#i1*2-1)*100+#id_lf_r n2 (#i1*2-1)*100+#nr_of_nodes_cs+#nr_of_webs n3 (#i1*2+1)*100+#nr_of_nodes_cs+#nr_of_webs n4 (#i1*2+1)*100+#id_lf_r t #thickness_lf m 1 n 1 mno #mat_lf endloop $ Creation of parts of lower flanges between webs: loop#i0 (#nr_of_webs-1)*#nr_of_long_sect let#i1 #i0+1 let#j1 mod(#i1-1,#nr_of_long_sect)+1 $ rank of longitudinal section let#k1 (#i1-#j1)/#nr_of_long_sect+1 $ rank of web let#a1 (#j1*2-1)*100+#k1+#nr_of_nodes_cs let#b1 (#j1*2-1)*100+#k1+1+#nr_of_nodes_cs let#c1 (#j1*2+1)*100+#k1+1+#nr_of_nodes_cs let#d1 (#j1*2+1)*100+#k1+#nr_of_nodes_cs quad no (#j1*10000)+#k1+#nr_of_nodes_cs n1 #a1 n2 #b1 n3 #c1 n4 #d1 t #thickness_lf m 1 n 1 mno #mat_lf endloop $__________________________________________________________________________________________ !*! Creation of upper flange $ Creation of outer sides of upper flange: node no 100+#id_uf_l x #width_uf/2 y 0 z #height node no 100+#id_uf_r x -#width_uf/2 y 0 z #height loop#i0 #nr_of_long_sect let#i1 #i0+1 node no (#i1*2+1)*100+#id_uf_l x #width_uf/2 y #i1*#sectionlength z #height node no (#i1*2+1)*100+#id_uf_r x -#width_uf/2 y #i1*#sectionlength z #height grp #grp_uf titl 'Upper flange' quad no (#i1*1000)+#id_uf_l n1 (#i1*2-1)*100+#id_uf_l n2 (#i1*2-0)*100+1+#nr_of_nodes_cs n3 (#i1*2+2)*100+1+#nr_of_nodes_cs n4 (#i1*2+1)*100+#id_uf_l t #thickness_uf m 1 n 1 mno #mat_uf quad no (#i1*1000)+#id_uf_r n1 (#i1*2-1)*100+#id_uf_r n2 (#i1*2-0)*100+#nr_of_nodes_cs+#nr_of_webs n3 (#i1*2+2)*100+#nr_of_nodes_cs+#nr_of_webs n4 (#i1*2+1)*100+#id_uf_r t #thickness_uf m 1 n 1 mno #mat_uf endloop $ Creation of parts of upper flanges between webs: loop#i0 (#nr_of_webs-1)*#nr_of_long_sect let#i1 #i0+1 let#j1 mod(#i1-1,#nr_of_long_sect)+1 $ rank of longitudinal section let#k1 (#i1-#j1)/#nr_of_long_sect+1 $ rank of web let#a1 (#j1*2-0)*100+#k1+#nr_of_nodes_cs let#b1 (#j1*2-0)*100+#k1+1+#nr_of_nodes_cs let#c1 (#j1*2+2)*100+#k1+1+#nr_of_nodes_cs let#d1 (#j1*2+2)*100+#k1+#nr_of_nodes_cs quad no (#j1*100000)+#k1+#nr_of_nodes_cs n1 #a1 n2 #b1 n3 #c1 n4 #d1 t #thickness_uf m 1 n 1 mno #mat_uf endloop $__________________________________________________________________________________________ !*! Creation of edges grp #grp_edge titl 'Edges' loop#i0 #nr_of_long_sect let#i1 #i0+1 let#a1 (#i1*2-1)*100+#id_uf_l let#b1 (#i1*2-1)*100+#id_lf_l let#c1 (#i1*2+1)*100+#id_lf_l let#d1 (#i1*2+1)*100+#id_uf_l quad no (#i1*1000)+35 n1 #a1 n2 #b1 n3 #c1 n4 #d1 t #thickness_edge m #height/#meshsize n 1 mno #mat_edge let#e1 (#i1*2-1)*100+#id_uf_r let#f1 (#i1*2-1)*100+#id_lf_r let#g1 (#i1*2+1)*100+#id_lf_r let#h1 (#i1*2+1)*100+#id_uf_r quad no (#i1*1000)+46 n1 #e1 n2 #f1 n3 #g1 n4 #h1 t #thickness_edge m #height/#meshsize n 1 mno #mat_edge endloop $__________________________________________________________________________________________ !*! Creation of horizontal part of side flanges grp #grp_sfh titl 'Horizontal side flanges' if #sf_setting > 0 node no 100+#id_sfh_l x #width/2 y 0 z #height node no 100+#id_sfh_r x -#width/2 y 0 z #height loop#i0 #nr_of_long_sect let#i1 #i0+1 let#a1 (#i1*2-1)*100+#id_sfh_l let#b1 (#i1*2-1)*100+#id_uf_l let#c1 (#i1*2+1)*100+#id_uf_l let#d1 (#i1*2+1)*100+#id_sfh_l node no #d1 x #width/2 y #i1*#sectionlength z #height quad no (#i1*1000)+#id_sfh_l n1 #a1 n2 #b1 n3 #c1 n4 #d1 t #thickness_sf m #width_sf/#meshsize n 1 mno #mat_sf let#e1 (#i1*2-1)*100+#id_sfh_r let#f1 (#i1*2-1)*100+#id_uf_r let#g1 (#i1*2+1)*100+#id_uf_r let#h1 (#i1*2+1)*100+#id_sfh_r node no #h1 x -#width/2 y #i1*#sectionlength z #height quad no (#i1*1000)+#id_sfh_r n1 #e1 n2 #f1 n3 #g1 n4 #h1 t #thickness_sf m #width_sf/#meshsize n 1 mno #mat_sf endloop endif $__________________________________________________________________________________________ !*! Creation of vertical part of side flanges grp #grp_sfv titl 'Vertical side flanges' if #sf_setting == 2 node no 100+#id_sfv_l x #width/2 y 0 z #height-#height_sf node no 100+#id_sfv_r x -#width/2 y 0 z #height-#height_sf loop#i0 #nr_of_long_sect let#i1 #i0+1 let#a1 (#i1*2-1)*100+#id_sfv_l let#b1 (#i1*2-1)*100+#id_sfh_l let#c1 (#i1*2+1)*100+#id_sfh_l let#d1 (#i1*2+1)*100+#id_sfv_l node no #d1 x #width/2 y #i1*#sectionlength z #height-#height_sf quad no (#i1*1000)+#id_sfv_l n1 #a1 n2 #b1 n3 #c1 n4 #d1 t #thickness_sf m #width_sf/#meshsize n 1 mno #mat_sf let#e1 (#i1*2-1)*100+#id_sfv_r let#f1 (#i1*2-1)*100+#id_sfh_r let#g1 (#i1*2+1)*100+#id_sfh_r let#h1 (#i1*2+1)*100+#id_sfv_r node no #h1 x -#width/2 y #i1*#sectionlength z #height-#height_sf quad no (#i1*1000)+#id_sfv_r n1 #e1 n2 #f1 n3 #g1 n4 #h1 t #thickness_sf m #width_sf/#meshsize n 1 mno #mat_sf endloop endif $__________________________________________________________________________________________ !*! Creation of supports node fitl 100+#id_lf_l 100+#id_lf_r fix xp $ should be 'xp' to block movement in Y (longitudinal direction) and Z (vertical direction) along the entire edge node fitl (#nr_of_long_sect*2+1)*100+#id_lf_l (#nr_of_long_sect*2+1)*100+#id_lf_r fix pz $should be 'pz' to block movement in Z (vertical direction) along the entire edge node no 100+#id_lf_r fix px $ fix a single node on the side of the bridge where the coordinate system origin is located node no (#nr_of_long_sect*2+1)*100+#id_lf_r fix px $ fix a single node on the opposite side of the bridge $__________________________________________________________________________________________ !*! Creation of main pedestrian if #main_ped == 1 grp #grp_pednodes $$$ node no #node_ped_m1_top x #x_middle y #y_middle z #height+#ped_m1_height fix ZP $ node at top side of truss element that represents unsprung mass (m1) of pedestrian $$$ node no #node_ped_m2_bot x #x_middle y #y_middle z #height+#ped_m1_height+#ped_offset fix ZP $ node at bottom side of truss element that represents sprung mass (m2) of pedestrian $$$ node no #node_ped_m2_top x #x_middle y #y_middle z #height+#ped_m1_height+#ped_offset+#ped_m2_height fix ZP $ node at top side of truss element that represents sprung mass (m2) of pedestrian node no #node_ped x #x_middle y #y_middle z #height+#ped_offset fix zpmm $ node in which the sprung mass is concentrated grp #grp_ped $$$ TRUS no #truss_unsprung na #node_middle ne #node_ped_m1_top NCS #cs_ped $ truss element that represents unsprung mass (m1) of pedestrian $$$ TRUS no #truss_sprung na #node_ped_m2_bot ne #node_ped_m2_top NCS #cs_ped $ truss element that represents sprung mass (m2) of pedestrian MASS NO #node_ped MZ #ped_m2_mass/10^3 $ creation of the mass in the node in which the main pedestrian's sprung mass is concentrated (note: the unit for mass in this record is tons) grp #grp_pedspring $$$ SPRI no 1 na #node_ped_m1_top ne #node_ped_m2_bot DZ -1 CP #ped_spring_cst DP #ped_damp_coef $ contact spring between unsprung and sprung truss masses that represent pedestrian, works in DYNA analysis SPRI NO 1 NA #node_ped NE #node_middle DZ -1 CP #ped_spring_cst DP #ped_damp_coef $ contact spring between bridge and sprung mass of the main pedestrian endif $__________________________________________________________________________________________ !*! Creation of additional pedestrians on a single longitudinal line in the middle of the bridge if #additional_peds == 1 $ Creation of 1 line of additional pedestrians, positioned on a longitudinal line in the middle of the bridge grp #grp_ped2nodes loop#i0 #nr_of_long_sect+1 let#ped_pos_x 1 let#ped_pos_y #i0 $$$ node no 5000+#i0 x #x_middle+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height fix ZP $ node at top side of truss element that represents unsprung mass (m1) of pedestrian $$$ node no 5200+#i0 x #x_middle+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height+#ped_offset fix ZP $ node at bottom side of truss element that represents sprung mass (m2) of pedestrian $$$ node no 5400+#i0 x #x_middle+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height+#ped_offset+#ped_m2_height fix ZP $ node at top side of truss element that represents sprung mass (m2) of pedestrian node no 5000+#i0 x #x_middle+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_offset fix zpmm $ node in which the sprung mass is concentrated endloop grp #grp_ped2 $ generation of concentrated sprung masses that represent pedestrians loop#i0 #nr_of_long_sect+1 $$$ TRUS no 100+#i0 na 217+200*#i0 ne 5000+#i0 ncs #cs_ped $ truss element that represents unsprung mass (m1) of pedestrian $$$ TRUS no 300+#i0 na 5200+#i0 ne 5400+#i0 ncs #cs_ped $ truss element that represents sprung mass (m2) of pedestrian MASS NO 5000+#i0 MZ #ped_m2_mass/10^3 $ creation of the mass in the node in which the pedestrian's sprung mass is concentrated (note: the unit for mass in this record is tons) endloop grp #grp_ped2spring loop#i0 #nr_of_long_sect+1 $$$ SPRI no (#i0+1)*10+1 na 5000+#i0 ne 5200+#i0 DZ -1 CP #ped2_spring DP #ped2_damp $ contact spring between unsprung and sprung truss masses that represent pedestrian, works in DYNA analysis SPRI NO (#i0+1)*10+1 NA 5000+#i0 NE 217+200*#i0 DZ -1 CP #ped2_spring_cst DP #ped2_damp_coef $ contact spring between bridge and sprung mass of the pedestrian endloop endif $__________________________________________________________________________________________ !*! Creation of maximum number of additional pedestrians all across the bridge if #additional_peds == 2 | (#additional_peds == 3 & #nr_of_add_peds >= #max_add_peds) $ Creation of multiple lines of additional pedestrians across the entire bridge grp #grp_ped3nodes loop#i0 (#nr_of_long_sect+1)*#nr_of_webs let#i1 #i0+1 let#j1 mod(#i1-1,#nr_of_long_sect+1)+1 $ rank of transverse cross section let#k1 (#i1-#j1)/(#nr_of_long_sect+1)+1 $ rank of longitudinal cross section let#ped_pos_x #k1-1 let#ped_pos_y #j1-1 $$$ node no 6000+#i0 x #first_x_coord+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height fix ZP $ node at top side of truss element that represents unsprung mass (m1) of pedestrian $$$ node no 7000+#i0 x #first_x_coord+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height+#ped_offset fix ZP $ node at bottom side of truss element that represents sprung mass (m2) of pedestrian $$$ node no 8000+#i0 x #first_x_coord+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height+#ped_offset+#ped_m2_height fix ZP $ node at top side of truss element that represents sprung mass (m2) of pedestrian node no 6000+#i0 x #first_x_coord+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_offset fix zpmm $ node in which the sprung mass is concentrated endloop grp #grp_ped3 $ generation of concentrated sprung masses that represent pedestrians loop#i0 (#nr_of_long_sect+1)*#nr_of_webs $$$ let#i1 #i0+1 $$$ let#j1 mod(#i1-1,#nr_of_long_sect+1)+1 $ rank of transverse cross section $$$ let#k1 (#i1-#j1)/(#nr_of_long_sect+1)+1 $ rank of longitudinal cross section $$$ TRUS no 100+#i0 na #nodeonbridge ne 6000+#i0 ncs #cs_ped $ truss element that represents unsprung mass (m1) of pedestrian $$$ TRUS no 1100+#i0 na 7000+#i0 ne 8000+#i0 ncs #cs_ped $ truss element that represents sprung mass (m2) of pedestrian MASS NO 6000+#i0 MZ #ped_m2_mass/10^3 $ creation of the mass in the node in which the pedestrian's sprung mass is concentrated (note: the unit for mass in this record is tons) endloop grp #grp_ped3spring loop#i0 (#nr_of_long_sect+1)*#nr_of_webs let#i1 #i0+1 let#j1 mod(#i1-1,#nr_of_long_sect+1)+1 $ rank of transverse cross section let#k1 (#i1-#j1)/(#nr_of_long_sect+1)+1 $ rank of longitudinal cross section let#nodeonbridge 209+(#nr_of_webs-#k1)+200*(#j1-1) $ determination of the node number on the bridge deck the pedestrian is standing on $$$ SPRI no 6+0*((#nr_of_long_sect+1)*#nr_of_webs+1)+#i0 na 6000+#i0 ne 7000+#i0 DZ -1 CP #ped2_spring DP #ped2_damp $ contact spring between unsprung and sprung truss masses that represent pedestrian, works in DYNA analysis SPRI NO 6+0*((#nr_of_long_sect+1)*#nr_of_webs+1)+#i0 NA 6000+#i0 NE #nodeonbridge DZ -1 CP #ped2_spring_cst DP #ped2_damp_coef $ contact spring between bridge and sprung mass of the pedestrian endloop endif $__________________________________________________________________________________________ !*! Creation of custom number of additional pedestrians all across the bridge if #additional_peds == 3 $ & #nr_of_add_peds < #max_add_peds $ Creation of multiple lines of additional pedestrians across the entire bridge grp #grp_ped3nodes loop#i0 (#nr_of_long_sect+1)*#nr_of_webs if mod(#i0,#ratio_add_peds) < mod(#i0-1,#ratio_add_peds) sto#nr_of_add_peds2 #nr_of_add_peds2+1 let#i1 #i0+1 let#j1 mod(#i1-1,#nr_of_long_sect+1)+1 $ rank of transverse cross section let#k1 (#i1-#j1)/(#nr_of_long_sect+1)+1 $ rank of longitudinal cross section let#ped_pos_x #k1-1 let#ped_pos_y #j1-1 $$$ node no 6000+#i0 x #first_x_coord+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height fix ZP $ node at top side of truss element that represents unsprung mass (m1) of pedestrian $$$ node no 7000+#i0 x #first_x_coord+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height+#ped_offset fix ZP $ node at bottom side of truss element that represents sprung mass (m2) of pedestrian $$$ node no 8000+#i0 x #first_x_coord+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_m1_height+#ped_offset+#ped_m2_height fix ZP $ node at top side of truss element that represents sprung mass (m2) of pedestrian node no 6000+#i0 x #first_x_coord+#ped_pos_x*#ctc y #ped_pos_y*#sectionlength z #height+#ped_offset fix ZPMM $ node in which the sprung mass is concentrated endif endloop grp #grp_ped3 $ generation of pedestrian trusses loop#i0 (#nr_of_long_sect+1)*#nr_of_webs let#i1 #i0+1 let#j1 mod(#i1-1,#nr_of_long_sect+1)+1 $ rank of transverse cross section let#k1 (#i1-#j1)/(#nr_of_long_sect+1)+1 $ rank of longitudinal cross section if mod(#i0,#ratio_add_peds) < mod(#i0-1,#ratio_add_peds) let#nodeonbridge 209+(#nr_of_webs-#k1)+200*(#j1-1) $ determination of the node number on the bridge deck the pedestrian is standing on $$$ TRUS no 100+#i0 na #nodeonbridge ne 6000+#i0 ncs #cs_ped $ truss element that represents unsprung mass (m1) of pedestrian $$$ TRUS no 1100+#i0 na 7000+#i0 ne 8000+#i0 ncs #cs_ped $ truss element that represents sprung mass (m2) of pedestrian MASS NO 6000+#i0 MZ #ped_m2_mass/10^3 $ creation of the mass in the node in which the pedestrian's sprung mass is concentrated (note: the unit for mass in this record is tons) endif endloop grp #grp_ped3spring loop#i0 (#nr_of_long_sect+1)*#nr_of_webs let#i1 #i0+1 let#j1 mod(#i1-1,#nr_of_long_sect+1)+1 $ rank of transverse cross section let#k1 (#i1-#j1)/(#nr_of_long_sect+1)+1 $ rank of longitudinal cross section let#nodeonbridge 209+(#nr_of_webs-#k1)+200*(#j1-1) $ determination of the node number on the bridge deck the pedestrian is standing on if mod(#i0,#ratio_add_peds) < mod(#i0-1,#ratio_add_peds) $$$ SPRI no 6+0*((#nr_of_long_sect+1)*#nr_of_webs+1)+#i0 na 6000+#i0 ne 7000+#i0 DZ -1 CP #ped2_spring DP #ped2_damp $ contact spring between unsprung and sprung truss masses that represent pedestrian, works in DYNA analysis SPRI NO 6+0*((#nr_of_long_sect+1)*#nr_of_webs+1)+#i0 NA 6000+#i0 NE #nodeonbridge DZ -1 CP #ped2_spring_cst DP #ped2_damp_coef $ contact spring between bridge and sprung mass of the pedestrian endif endloop endif END +PROG TEMPLATE urs:15.8 HEAD Calculated quantities, after creating the model $__________________________________________________________________________________________ !*! Pedestrians sto#nr_of_peds #nr_of_add_peds2+#main_ped $ number of pedestrians, including the main pedestrian (if present) and the additional pedestrians (if present) sto#tot_ped_mass #nr_of_peds*#ped_mass $ [kg] total mass of the pedestrians sto#mass_ratio #tot_ped_mass/#mass_bridge_tot $ [-] ratio of total mass of pedestrians to total mass of the bridge sto#ped_dens #nr_of_peds/#deck_area $ [pedestrians/m²] pedestrian density; average number of pedestrians per unit of area of the deck END $██████████████████████████████████████████████████████████████████████████████████████████ $██████████████████████████████████████████████████████████████████████████████████████████ !#!Chapter: Loads $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG SOFILOAD urs:6.2 HEAD Loads on the bridge $__________________________________________________________________________________________ !*! Actions ACT G gamu 1 gamf 1 $ dead load ACT Q $ variable load $__________________________________________________________________________________________ !*! Loadcases $ If the load type is 'PG', the load acts in the direction of gravity. LC #lc_wear type G TITL 'dead load: wearing layer' $gamu 1 gamf 1 quad grp #grp_uf type PG P #wear_load $ dead load from wearing layer on upper flange LC #lc_foam type G TITL 'dead load: foam' gamu 1 gamf 1 quad grp #grp_lf type PG P #foam_load $ dead load from foam core on lower flange LC #lc_imp type Q TITL 'live load: impulse' if #main_ped == 1 node #node_ped TYPE PG P1 #imp_force $ impulse load applied to the pedestrian else node #node_middle TYPE PG P1 #imp_force $ impulse load applied to the middle of the bridge endif if #type_of_load == 1 FUNC T 0,#start_time_imp,#time_of_imp_max,#end_time_imp,#duration F 0,0,1,0,0 $ time variation of the triangular impulse load elseif #type_of_load == 2 FUNC T 0,#gauss_start,#gauss_t1,#gauss_t2,#gauss_t3,#gauss_t4,#gauss_t5,#gauss_t6,#gauss_t7,#gauss_t8,#gauss_t9,#gauss_t10,#gauss_t11,#gauss_t12,#gauss_t13,#gauss_t14,#gauss_t15,#gauss_t16,#gauss_t17,#gauss_t18,#gauss_t19,#gauss_t20,#duration $$ two dollar signs: the record is continued on the next line F 0,0,#gauss_f1,#gauss_f2,#gauss_f3,#gauss_f4,#gauss_f5,#gauss_f6,#gauss_f7,#gauss_f8,#gauss_f9,#gauss_f10,#gauss_f11,#gauss_f12,#gauss_f13,#gauss_f14,#gauss_f15,#gauss_f16,#gauss_f17,#gauss_f18,#gauss_f19,0,0 endif END $██████████████████████████████████████████████████████████████████████████████████████████ $██████████████████████████████████████████████████████████████████████████████████████████ !#!Chapter Analysis $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG ASE urs:9 $ Linear Analysis HEAD Calculation of forces and moments PAGE UNII 0 CTRL OPT WARP VAL 0 LC ALL END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG ASE URS:5 HEAD Loadcases in ASE ECHO DISP,REAC,FORC,NOST,BEDD NO $ Create load case which contains the selfweight and the two dead loads: wearing layer and foam LC #lc_dl_sw FACD 1 TITL 'Primary LC: dead weight + SW' $ FACD 1 sets factor of structural dead weight (= selfweight) to 1, because this is 0 by default LCC #lc_wear $ add wearing layer load, as defined in sofiload, to this load case LCC #lc_foam $ add foam load, as defined in sofiload, to this load case $As a result, this load case contains the selfweight (because of 'FACD 1'), the wearing layer load and the foam load $ Create load case which contains the two dead loads: wearing layer and foam LC #lc_dl FACD 0 TITL 'Only additional masses' $ this time FACD is set to 0, so selfweight is not taken into account LCC #lc_wear LCC #lc_foam $ Create load case which contains the dirac impulse load LC #lc_imp $ this load case is already defined in Sofiload, but has to be defined again in ASE in order to use it for the impulse load (in one of the next ASE programs) END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG ASE URS:6 HEAD Eigenfrequencies [without damping] $ Note: the eigenfrequencies returned by SOFiSTiK are undamped eigenfrequencies. However, damped eigenfrequencies are used in further calculations (this can be observed for instance in the resulting acceleration of a free vibration) MASS LC #lc_dl PRZ 100 EIGE NEIG #nr_of_eigenmodes LC #lc_dl_sw $ NEIG determines the number of eigenfrequencies that will be calculated END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -PROG ASE urs:10 HEAD Triangular impulse load $$$#0123456789ABCDEF $ use this line to check length of variable name (max 16 characters!) let#dt 0.01 $ [s] duration of one time step let#nr_of_ts 10 $ number of time steps in the simulation let#duration #nr_of_ts*#dt $ duration of the simulation let#ts_of_imp_start 2 $ time step in which the impulse load starts let#ts_buildup_imp 3 $ number of time steps over which the triangular impulse load increases linearly from 0 to its maximum value let#ts_buildoff_imp 5 $ number of time steps over which the triangular impulse load decreases linearly from its maximum to 0 let#start_time_imp #ts_of_imp_start*#dt $ time at which the triangular impulse load starts let#time_of_imp_max #start_time_imp+#dt*#ts_buildup_imp $ time at which the triangular impulse load reaches its maximum let#end_time_imp #time_of_imp_max+#dt*#ts_buildoff_imp $ time at which the triangular impulse load ends let#plf #lc_dl_sw $ this variable indicates which load case is considered in the first time step of the time step analysis (it is used in the SYST command later on as the PLC or primary load case); afterwards it is increased by 1 in each time step, thus works as a running load case ID Time step of impulse start = #(ts_of_imp_start,8.0) Number of time steps in impulse buildup = #(ts_buildup_imp,8.0) Number of time steps in impulse buildoff = #(ts_buildoff_imp,8.0) Time of impulse start = #(start_time_imp,8.2) Time of impulse max = #(time_of_imp_max,8.2) Time of impulse end = #(end_time_imp,8.2) loop#i0 #nr_of_ts $$$#0123456789ABCDEF $ use this line to check length of variable name (max 16 characters!) let#time_begin #i0*#dt $ [s], time at the beginning of the current time step let#time_end #time_begin+#dt $ [s], time at the end of the current time step let#time (#time_begin+#time_end)/2 $ [s], time in the middle of the current time step let#factor 0.000001 $ this is the factor that will be multiplied by the actual load, but it may not be 0 $ Dirac load, where the load is only non-zero in a single time step: $if (#time > #start_time_imp)&(#time < #start_time_imp+#dt) ; let#factor 1.0 ; endif $ Impulse load with triangular time variation: if (#time >= #start_time_imp)&(#time < #time_of_imp_max) let#factor (#time-#start_time_imp)/(#time_of_imp_max-#start_time_imp) elseif (#time >= #time_of_imp_max)&(#time < #end_time_imp) let#factor (#end_time_imp-#time)/(#end_time_imp-#time_of_imp_max) endif Time = #(time_begin,8.2)s, load factor = #(factor,8.6) $ STEP n 1 DT #dt ALF 0.4 DEL 0.55 THE 1.0 LCSM 9900 $ the step command makes sure that a time step analysis will be performed, the number of time steps (next to "n") is set to 1 because in this case, we use a loop for the different time steps, it is also possible to use a time step analysis without a loop, but by setting the number of time steps equal to a higher number (e.g. STEP N 50 for 50 time steps) $ STEP n 1 DT #dt ALF 20 5.5 1.0 LCSM 9900 $ the step command makes sure that a time step analysis will be performed, the number of time steps (next to "n") is set to 1 because in this case, we use a loop for the different time steps, it is also possible to use a time step analysis without a loop, but by setting the number of time steps equal to a higher number (e.g. STEP N 50 for 50 time steps) STEP n 1 DT #dt BET 0.25 DEL 0.5 THE 1 LCSM 9900 $ the step command makes sure that a time step analysis will be performed, the number of time steps (next to "n") is set to 1 because in this case, we use a loop for the different time steps, it is also possible to use a time step analysis without a loop, but by setting the number of time steps equal to a higher number (e.g. STEP N 50 for 50 time steps) SYST prob nonl PLC #plf $nonlinear analysis, and primary load case is set to be the load case that is considered in this time step of the loop let#plf #plf+1 $ add 1 to the running load case ID MASS LC #lc_dl PRZ 100 $ "g_2 mass - is applied as dynamic mass and also as static load" $ "via dead load factor LC...FACD! No more LCC 7001 necessary !" $ "(only on LC-FACD - not on GRP...FACD )" $ "The structural mass is automatically applied as mass with LC-FACD" LC #plf FACD 1.0 $ definition of a new load case, corresponding to the current time step LCC no #lc_imp fact #factor $ the load case of the current time step contains the impulse load multiplied by the factor value corresponding to the current time step END endloop END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG DYNA urs:25.1 HEAD Dynamic time step analysis of response to impulse load SYST TYPE REST PHYS NONL CTRL RLC #lc_dyna_first $ RLC: "Result load case for Histories" [source: manual] CTRL STYP MAX $ STYP: "Superposition of results of spectra and stationary response" [source: manual] $ STYP MAX: "The functions are evaluated separately followed by a max/min selection" [source: manual] $ GRP NO - VAL FULL RADA #alpha RADB #beta $ calculation with Rayleigh damping, determined from predefined damping factor and two natural frequencies GRP NO #grp_lf,#grp_uf,#grp_edge,#grp_sfh,#grp_sfv,#grp_web VAL FULL RADA #alpha RADB #beta $ calculation with Rayleigh damping, determined from predefined damping factor and two natural frequencies $ GRP NO #grp_sfh,#grp_uf VAL FULL RADA #alpha RADB #beta $ calculation with Rayleigh damping, determined from predefined damping factor and two natural frequencies GRP NO #grp_ped,#grp_ped2,#grp_ped3,#grp_pedspring,#grp_ped2spring,#grp_ped3spring,#grp_pednodes,#grp_ped2nodes,#grp_ped3nodes VAL FULL RADA 0 RADB 0 $ no Rayleigh damping for pedestrians, so alpha and beta are zero CTRL MCON 2 $ MCON: "Formulation of the mass matrix" $ MCON 2: "Consistent mass matrix for system, consistent translatoric element matrices" STEP DT #dt N #nr_of_ts BET 0.25 DEL 0.5 THE 1 $ BET, DEL and THE are parameters related to the integration method, they should be set to 0.25, 0.5 and 1 respectively in order to avoid numerical damping LC #lc_imp MASS LC #lc_dl $CONT NR 101 V 140/3.6 $ Movement of load HIST TYPE AZ LCST 802 HIST TYPE AZ FROM #node_middle LCST 800 $ save time history of the vertical acceleration (AZ) in the middle node to the database HIST TYPE AZ FROM #node_neighbor LCST 801 $ save time history of the vertical acceleration (AZ) in the node neighboring to the middle node to the database END $██████████████████████████████████████████████████████████████████████████████████████████ $██████████████████████████████████████████████████████████████████████████████████████████ !#!Chapter Results $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG DYNR urs:25.2 HEAD Time plots $ Note: the functionality of the HIST record in the DYNR program is not the same as that of the HIST record in the DYNA program HIST LCS 801 TYPE A-Z NO0 #node_neighbor C0 1001 DUMP Simulation83 $ Plot the vertical acceleration of the node neighboring to the middle node as a function of time, and write a file that contains the time and acceleration values HIST LCS END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -PROG ASE urs:26.1 HEAD Time plots of node in the middle of the bridge $ Displacement: PLOT LC #lc_dyna_first TO #lc_dyna_last NNO #node_neighbor DIRE UZ TYPE TIME $ Plot of the vertical displacement (z-direction) of the node just next to the impacted node as a function of time PLOT LC #lc_dyna_first TO #lc_dyna_last NNO #node_middle DIRE UZ TYPE TIME $ Plot of the vertical displacement (z-direction) of the impacted node as a function of time $ Acceleration: PLOT LC #lc_dyna_first TO #lc_dyna_last NNO #node_neighbor DIRE AZ TYPE TIME $ Plot of the vertical acceleration (z-direction) of the node just next to the impacted node as a function of time PLOT LC #lc_dyna_first TO #lc_dyna_last NNO #node_middle DIRE AZ TYPE TIME $ Plot of the vertical acceleration (z-direction) of the node just next to the impacted node as a function of time END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -PROG WING urs:9.1 $ Graphical Output HEAD Graphical Output PAGE UNII 0 CTRL EMPT YES $ create empty pages if results not available CTRL WARN (800 802 1) $ no warnings if no values found CTRL WARN (804 808 1) $ no warnings if no values found CTRL WARN 873 $ no warning for 2D visibility #define SCHR=0.2 SCHH H6 0.2 #define FILL=- #define FILLI=- #define FILLC=- #define SCHRI=- #define SCHRC=- VIEW EGXY $ view in global Z direction MOVE UNIT PRWC X 0 Y 33 DTYP QSEC ; DRAW UNIT PRWC X 100 Y 33 DTYP QSEC $ cut in global X direction MOVE UNIT PRWC X 0 Y 66 DTYP QSEC ; DRAW UNIT PRWC X 100 Y 66 DTYP QSEC $ cut in global X direction MOVE UNIT PRWC X 33 Y 0 DTYP QSEC ; DRAW UNIT PRWC X 33 Y 100 DTYP QSEC $ cut in global Y direction MOVE UNIT PRWC X 66 Y 0 DTYP QSEC ; DRAW UNIT PRWC X 66 Y 100 DTYP QSEC $ cut in global Y direction SIZ2 SPLI PICT SIZE -URS SC 0 SPLI 2x1 MARG NO FORM STAN VIEW EG3 LC 2 DESI 2 LOAD TYPE ALL NODE TYPE SV SCHH YES NODE TYPE UZ FILL $(FILLI) SCHH $(SCHRI) REPR DISO DEFO TYPE FULL FAC DEFA LC CURR; STRU NUME 0 0; DEFO NO QUAD TYPE HM SCHH NO REPR DVEC END $■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ +PROG TEMPLATE urs:1 HEAD Printing quantities to output file Span = #(span,3.2) m Width = #(width,3.2) m Area = #(deck_area,3.2) m² Width side flange = #(width_sf,3.2) m Width upper flange = #(width_uf,3.2) m Height = #(height,3.2) m Center to centre distance = #(ctc,3.2) m Angle = #(angle,3.2) ° Width lower flange = #(width_lf,3.2) m Number of webs (not rounded) = #(nr_of_webs_dbl,3.2) Number of webs = #(nr_of_webs,3.2) $ x-coordinate of first web = #(first_x_coord,3.2) Damping factor = #(bri_damp_ratio,3.6) Rayleigh coefficient alpha = #(alpha,3.6) Rayleigh coefficient beta = #(beta,3.6) Mass of wearing layer = #(mass_wear,3.2) kg Mass of foam core = #(mass_foam,3.2) kg Mass of structural elements = #(mass_bridge_str,3.2) kg Total mass of bridge = #(mass_bridge_tot,3.2) kg Main pedestrian: #(main_ped,3.0) ped(s) Maximum number of additional pedestrians: #(max_add_peds,3.0) peds Desired number of additional pedestrians (only relevant in case option is chosen to generate custom number of additional pedestrians): #(nr_of_add_peds,3.0) peds Actual number of additional pedestrians: #(nr_of_add_peds2,3.0) peds Total number of pedestrians: #(nr_of_peds,3.0) peds Mass of one pedestrian = #(ped_mass,3.2) kg Mass of all pedestrians = #(tot_ped_mass,3.2) kg Ratio of total mass of pedestrians to total mass of the bridge = #(mass_ratio,3.2) $Ratio of maximum number of pedestrians to desired number of pedestrians: #(ratio_add_peds,3.2) Pedestrian density: #(ped_dens,3.2) peds/m² Spring constant (main ped) = #(ped_spring_cst,3.2) kN/m³ Spring constant (additional ped) = #(ped2_spring_cst,3.2) kN/m³ Damping coefficient (main ped) = #(ped_damp_coef,3.2) kNs/m³ Damping coefficient (additional ped) = #(ped2_damp_coef,3.2) kNs/m³ END