Home
Reference Manuals
Return
BoBo-vehicle with wheel/rail-contact creep_lookuptable_1
Introduction
Example tutor_3_bobo_lookuptable_1
is very similar to example intro_tutor_3_bobo_pe3,
but the model of the track has been created differently.
In this example the wheel rail couplings are created with coupl creep_lookuptable_1.
In example intro_tutor_3_bobo_pe3 the wheel rail couplings were created with
command func wr_coupl_pe3.
The coupling coupl creep_lookuptable_1
is more flexible but slower in execution
compared to func wr_coupl_pe3.
Download the example
- Download the tar-file tutor_3_bobo_lookuptable_1.tgz
- List the contents of the tar-file with "tar tvfkz tutor_3_bobo_lookuptable_1.tgz"
- Extract the contents of the tar-file with "tar xvfkz tutor_3_bobo_lookuptable_1.tgz"
Examine the directory "tutor_3_bobo_lookuptable_1"
- The input data files for program TSIM (time-domain simulation) is located in subdirectory runf.
- In order to see the contents of subdirectory runf double-click subdirectory runf,
and all files in the runf-subdirectory will appear in the
File area
to the right.
- Open the master input data file for editing by double-clicking the
runf/tang_ideal.tsimf-file and select open->op with the right mouse button in the window background menu.
Examine the vehicle in program RUNF_INFO
Program RUNF_INFO is a program which lists how masses and couplings in the model are linked together.
Program RUNF_INFO is controlled by an input data file which is described in the
RUNF_INFO users manual.
- Create an input data file for program RUNF_INFO
- Open and examine the newly created file by double-clicking the runf_infof-directory in the "Subdirectory Area".
The "File Area" now shows the contents of the runf_infof-directory.
Double-click the input data file in the
"File Area"
and select
File -> Open from the pulldown menu.
- Execute program RUNF_INFO
- Program RUNF_INFO creates the following files:
calc.out | = | Memory dump of all variables in the model |
diags/runf_info.ps | = | A two-dimensional plot, showing how all bodies connects to each other |
runf_infor/Master.runf_infor | = | An ASCII-file containing text information about the model |
Examine the files by double-clicking on them and select open->op with the right mouse button.
-
The first graph in file diags/runf_info.ps:
Horizontal boxes are masses.
Vertical boxes are couplings.
The files calc.out,
runf_infor/Master.runf_infor and
diags/runf_info.ps can now be closed.
View the vehicle in program GPLOT
Program GPLOT is a graphic program showing a three dimensional view of the vehicle.
Start program GPLOT with the file runf/tang_ideal.tsimf by:
- Double-click directory runf/ in the subdirectory text field
- Double-click file runf/tang_ideal.tsimf in the file text field
- Press the Gplot–pushbutton
In the GPLOT-window the mouse buttons are defined as:
- Mouse button #1(left) zooms the model
- Mouse button #2(middle) rotates the model
- Mouse button #3(right) moves the model
If you zoom in to a bogie you can see that all couplings have a hot-spot.
If you press the hot-spot with mouse button #1 you will get information of that specific coupling.
Below is a close up of the first bogie of the vehicle:
Close the GPLOT-window, before continuing with the next section.
Perform a modal analysis of the vehicle
Program MODAL calculates all possible modes of vibration in the model.
Number of modes are as many as the number of equations in the model.
A low damped mechanical system of one degree of freedom has two complex conjugated eigenvalues.
A high damped mechanical system of one degree of freedom has two real eigenvalues, both eigenvalues are negative.
A self oscillating mechanical system is a system where the real part of the eigenvalue is positive.
Before the modal analysis starts, program MODAL linearizes the nonlinear equations
by an amplitude defined in command modal_param.
Make a modal analysis of the vehicle:
- Copy the file runf/tang_ideal.tsimf to runf/modalRigid.modalf, by giving the command
copy runf/tang_ideal.tsimf runf/modalRigid.modalf
in the "Command Input Area".
- Open the new file by double-clicking on runf/modalRigid.modalf
and select open->op with the right mouse button.
- Change line from:
func const vkmh= 160 # Speed in km/h
To:
func const vkmh= 300 # Speed in km/h
-
In order to make sure that we have the correct contact forces between wheel and rail,
it is advisable to use results from QUASI as initial values into program MODAL.
Change line from:
# pre_process= 'quasi $CURRENT_FILE'
To:
pre_process= 'quasi $CURRENT_FILE'
Change lines from:
###
### Initial values
#[-]{ ================================================================
# if_then_char_init CalcType .eq. TSIM .or.
# CalcType .eq. MODAL
# initval read_gpdat gp/$IDENT.gp 1
# endif
#[-]} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
To:
###
### Initial values
#[-]{ ================================================================
if_then_char_init CalcType .eq. TSIM .or.
CalcType .eq. MODAL
initval read_gpdat gp/$IDENT.gp 1
endif
#[-]} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Press CTRL+S to save the file
- Launch program MODAL by clicking Gensys -> Run Current File in the pulldown menu.
- A pop-up menu will appear in order to let you select different command line arguments.
Start the job by clicking the OK-button.
- In the output from program MODAL you can see that a number of files has been created:
id/modalRigid.id | MPdat-file for plotting in MPLOT |
gp/modalRigid.gp | GPdat-file for animation in GPLOT |
calcmod/modalRigid.mode | mode-file containing all eigenvalues |
calcmod/modalRigid.modf | modf-file containing all eigen forms |
calcmod/modalRigid.modjac | modjac-file for linear analysis |
- Open a file by double-clicking the file and select open->op with the right mouse button.
N.B. You will notice that file id/modalRigid.id is unformatted.
Instead of opening the file directly it will be filtered through program mp2ascii.
A popup-menu will appear where you can choose how to translate file id/modalRigid.id.
- Start program GPLOT, by double-clicking file runf/modalRigid.modalf and
press the Gplot–pushbutton.
- To read the eigenvalues and modal shapes into program GPLOT, select File->read_gpdat from the pulldown menu.
Double-click file gp/modalRigid.gp.
- When program GPLOT has read the file gp/modalRigid.gp, a picture of mode #1 will be shown.
- Click on Deform->draw_deform in the pulldown menu, in order to see a list of all available eigen modes.
- Double-click a mode of vibration having a relative damping less than 100%.
- Many modes are highly damped.
If the damping of the mode exceeds 100% the mode does not have a harmonic solution,
instead the solution is exponential.
- Eigen modes having a relative damping less than 100% are complex valued eigen modes.
Each complex valued eigen modes consists of two complex conjugated value pairs.
Where one of the modes has a positive eigenfrequency and the other has a negative eigenfrequency.
In the Deform->draw_deform–menu only modes with a positive eigenfrequency has been listed.
Modes of vibration having a negative eigenfrequency has been removed.
- Start animation by pressing the Fwd–pushbutton
- Eigenmodes can also be changed with the
Next and
Prev pushbuttons
in the pull-down menu.
- An alternative way of starting program GPLOT with the modalRigid-model is to write the following command:
gplot runf/modalRigid.modalf gp/modalRigid.gp &
Now both files are read into GPLOT during its startup phase.
Show animation of the lower sway mode of the BoBo-vehicle:
Close the GPLOT-window, before continuing with the next section.
Perform a modal analysis taking car-body structural flexibility into account
Results from a modal analysis in a FEM-program of a car-body at free-free conditions
are stored in the subdirectory patranr.
This example shows how to take car-body structural flexibility into account:
-
Copy file runf/modalRigid.modalf into runf/gplot_id.modalf
by giving the command:
copy runf/modalRigid.modalf runf/gplot_id.modalf
(If you not have the runf/modalRigid.modalf-file,
please go to section Perform a modal analysis of the vehicle)
- Double-click file runf/gplot_id.modalf and select open->op with the right mouse button.
-
Run program NPICK inside program MODAL by doing the following
changes in file runf/gplot_id.modalf:
Change the lines from:
# pre_process= 'sed "s!runf/tang_ideal.tsimf!$CURRENT_FILE!" npickf/flex_car.npickf > npickf/$IDENT.npickf'
# pre_process= 'npick npickf/$IDENT.npickf'
To:
pre_process= 'sed "s!runf/tang_ideal.tsimf!$CURRENT_FILE!" npickf/flex_car.npickf > npickf/$IDENT.npickf'
pre_process= 'npick npickf/$IDENT.npickf'
In order to model the car-body as a flexible body in all programs except in program NPICK,
change the following lines from:
##
## Read flexible parameters for the car-body
## ==========================================================
# if_then_char_init CalcType .ne. NPICK
# insert file npickr/$IDENT.npickr
# insert file npickr/tors.npickr # Torsional eigenmode wheelset
# endif
To:
##
## Read flexible parameters for the car-body
## ==========================================================
if_then_char_init CalcType .ne. NPICK
insert file npickr/$IDENT.npickr
# insert file npickr/tors.npickr # Torsional eigenmode wheelset
endif
- Press CTRL+S to save the file
- Launch program MODAL by clicking Gensys -> Run Current File in the pulldown menu.
Program NPICK and QUASI will automatically be executed within MODAL.
- If you open file calcmod/gplot_id.mode and compare its
contents with file calcmod/modalRigid.mode, you can see
that we now have got 6 more eigen modes.
Since each equation of motion is a second order differential equation,
it will lead to two new equations for each degree of freedom.
The 6 new equations are named car_1.c1, car_1.c2, car_1.c3, car_1.v1, car_1.v2 and car_1.v3.
Equation car_1.c1 tells us how much the first bending mode of the car-body is excited.
Equation car_1.c2 tells us how much the torsional mode of the car-body is excited.
Equation car_1.c3 tells us how much the second bending mode of the car-body is excited.
The equations car_1.v1, car_1.v2 and car_1.v3 tells us the speed of the
first bending mode, torsional mode and second bending mode, respectively.
- Start the GPLOT program, by writing:
gplot runf/gplot_id.modalf gp/gplot_id.gp &
- In order to change eigenmode: click on Deform->draw_deform in the pulldown menu or
press the Next–pushbutton in the pull-down menu.
- In order to start the animation, press the Fwd–pushbutton in the lower left corner of the window.
Show animation of the first bending mode of the car-body:
If you open the Deform->draw_deform popup menu.
You will see that you have got 6 more eigenvalues, compared to the previous case modalRigid.
These new equations arise from the three flexible modes added by program NPICK.
Please close the GPLOT-window, before continuing with the next section.
Modal analysis if program QUASI struggles in finding a quasi-static position
There are many reasons that program QUASI sometimes can have difficulties to find the quasi-static position of the vehicle.
If this happens, there is a possibility to use program TSIM instead.
In order to use program TSIM do the following:
- Copy the file runf/tang_ideal.tsimf to runf/tang_ideal_vkmh300.tsimf, by giving the command
copy runf/tang_ideal.tsimf runf/tang_ideal_vkmh300.tsimf
in the "Command Input Area".
- Change line from:
func const vkmh= 160 # Speed in km/h
To:
func const vkmh= 300 # Speed in km/h
- Press CTRL+S to save file runf/tang_ideal_vkmh300.tsimf
- Launch program TSIM by clicking Gensys -> Run Current File in the pulldown menu.
- To check that the simulation is long enough to find the quasi-static position.
Please start program MPLOT and look at the wheel/rail contact forces.
In the end of the simulation,
all curves shall end horizontally.
- If all curves ends horizontally without noise.
The last timestep can be considered as the quasi-static position of the vehicle.
Then proceed and make the modal analysis using this position as initial value.
- Copy the file runf/tang_ideal_vkmh300.tsimf to runf/modalRigid_tsim.modalf, by giving the command
copy runf/tang_ideal_vkmh300.tsimf runf/modalRigid_tsim.modalf
- Open file runf/modalRigid_tsim.modalf and change the following lines:
###
### Initial values
#[-]{ {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
# if_then_char_init CalcType .eq. TSIM .or.
# CalcType .eq. MODAL
# initval read_gpdat gp/$IDENT.gp 1
# endif
#[-]} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
To:
###
### Initial values
#[-]{ {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
if_then_char_init CalcType .eq. TSIM .or.
CalcType .eq. MODAL
initval read_gpdat gp/tang_ideal_vkmh300.gp -1
endif
#[-]} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
- Deformation state number "-1", refers to the last deformation state in the .gp-file.
- Press CTRL+S to save file runf/modalRigid_tsim.modalf
- Launch program MODAL by clicking Gensys -> Run Current File in the pulldown menu.
Make a simulation on tangent track at 340[km/h].
- Copy file runf/tang_ideal.tsimf to runf/stab_340.tsimf
by giving the following command:
copy runf/tang_ideal.tsimf runf/stab_340.tsimf
- Open file runf/stab_340.tsimf and change the line from:
func const vkmh= 160 # Speed in km/h
to:
func const vkmh= 340 # Speed in km/h
Change the lines from:
# initval set_var car_1.vy= .15
# initval set_var car_1.vp= .15
to:
initval set_var car_1.vy= .15
initval set_var car_1.vp= .15
- Press CTRL+S to save the file
- Launch program TSIM by clicking Gensys -> Run Current File in the pulldown menu.
- Animate the time-domain simulation in GPLOT:
- Double-click file runf/stab_340.tsimf and press the Gplot–pushbutton
- Select File->read_gpdat from the pulldown menu
- Double-click the gp/stab_340.gp-file
- Select View->show_1_diag
- Set the Deformation scale fact equal to 25 approximately
- Click the Fwd–pushbutton
- In order to step frame by frame in the animation, press the Next– or
Prev–pushbutton in the pull-down menu.
- Close the GPLOT-window
- Animate the time-domain simulation in GLPLOT:
- Double-click file runf/stab_340.tsimf and press the Glplot–pushbutton
- Select File->read_gpdat from the pulldown menu
- Double-click the gp/stab_340.gp-file
- In the pulldown-meny select View->Window Center
- Set the X-coordinate equal to -10
- Click the ->–pushbutton
- In order to step frame by frame in the animation, press the +1– or
-1–pushbutton in the pull-down menu.
- Close the GLPLOT-window
- Plot the results in MPLOT running in interactive mode:
- Press the Mplot–pushbutton
- Select File->open mpdat-file in the pulldown menu
- Double-click the stab_340-ident
- Select Draw->curve from current ident in the pulldown menu
- Write axl_122 in the upper Text-Field, and press return
- Double-click the axl_122.y variable, which is the lateral position of last axle of the vehicle
- Write bog_12 in the upper Text-Field, and press return
- Double-click the bog_12.y variable, which is the lateral position of the last bogie of the vehicle
- Write car_1 in the upper Text-Field, and press return
- Double-click the car_1.y variable, which is the lateral position of the car-body
- Press the Undo–pushbutton or the Del-Key if you like to erase the last input
- Press the New–pushbutton if you like to start plotting in a new page
and keep all curves in current page.
- Press the Edit–pushbutton if you like to change curves, grid, scales,,, etc.
The following example changes the scale of the X-axle:
- In the new window change xint/cm= auto to xint/cm= 0.2
- Press CTRL+S to save the file
- In the MPLOT-window click the Reload–pushbutton
- By clicking Draw->diagram # the drawing area can be divided into several smaller diagrams
- Close the diagram editing file page1.mplotf
- Close the MPLOT-window
- Plot the results by MPLOT in batch mode:
- In the file mplotf/stab_batch.mplotf the same plot is stored as a batch job
- Double-click the file mplotf/stab_batch.mplotf and press Ctrl+R
- Select mode of operation to batch
- Set ident1 equal to stab_340 and press the OK–-pushbutton
- Answer Replace in the next pop-up window
- Double-click file diags/stab_340.ps Select open->genrun with the right mouse button
- Close the mgv-window
Find the non-linear critical speed of the vehicle.
- Copy file runf/tang_ideal.tsimf to runf/crit_ideal.tsimf
by giving the following command:
copy runf/tang_ideal.tsimf runf/crit_ideal.tsimf
- Open file runf/crit_ideal.tsimf and change the lines from:
func const vkmh= 160 # The initial speed of the vehicle in km/h
# func operp vkmh= 400 - 5 * time # Vary vkmh in order to calculate critical speed
to:
# func const vkmh= 160 # The initial speed of the vehicle in km/h
func operp vkmh= 400 - 5 * time # Vary vkmh in order to calculate critical speed
Change the lines from:
# initval set_var bog_11.p= .015
# initval set_var bog_12.p= .015
# force rel_lsys1 retard_car_1 car_1 0 0 -hccg_1 -mc_1*5/3.6 0. 0. 0. 0. 0. # Apply redardation 5[km/h/s]
# force rel_lsys1 retard_bog_11 bog_11 0 0 -hbcg_11 -mb_11*5/3.6 0. 0. 0. 0. 0. # as external forces
# force rel_lsys1 retard_bog_12 bog_12 0 0 -hbcg_12 -mb_12*5/3.6 0. 0. 0. 0. 0.
# force rel_lsys1 retard_axl_111 axl_111 0 0 -ro_111 -(ma_111+Jka_111/ro_111^2)*5/3.6 0. 0. 0. 0. 0.
# force rel_lsys1 retard_axl_112 axl_112 0 0 -ro_112 -(ma_112+Jka_112/ro_112^2)*5/3.6 0. 0. 0. 0. 0.
# force rel_lsys1 retard_axl_121 axl_121 0 0 -ro_121 -(ma_121+Jka_121/ro_121^2)*5/3.6 0. 0. 0. 0. 0.
# force rel_lsys1 retard_axl_122 axl_122 0 0 -ro_122 -(ma_122+Jka_122/ro_122^2)*5/3.6 0. 0. 0. 0. 0.
to:
initval set_var bog_11.p= .015
initval set_var bog_12.p= .015
force rel_lsys1 retard_car_1 car_1 0 0 -hccg_1 -mc_1*5/3.6 0. 0. 0. 0. 0. # Apply redardation 5[km/h/s]
force rel_lsys1 retard_bog_11 bog_11 0 0 -hbcg_11 -mb_11*5/3.6 0. 0. 0. 0. 0. # as external forces
force rel_lsys1 retard_bog_12 bog_12 0 0 -hbcg_12 -mb_12*5/3.6 0. 0. 0. 0. 0.
force rel_lsys1 retard_axl_111 axl_111 0 0 -ro_111 -(ma_111+Jka_111/ro_111^2)*5/3.6 0. 0. 0. 0. 0.
force rel_lsys1 retard_axl_112 axl_112 0 0 -ro_112 -(ma_112+Jka_112/ro_112^2)*5/3.6 0. 0. 0. 0. 0.
force rel_lsys1 retard_axl_121 axl_121 0 0 -ro_121 -(ma_121+Jka_121/ro_121^2)*5/3.6 0. 0. 0. 0. 0.
force rel_lsys1 retard_axl_122 axl_122 0 0 -ro_122 -(ma_122+Jka_122/ro_122^2)*5/3.6 0. 0. 0. 0. 0.
Change the line from:
tstop= 10.
to:
tstop= 40.
- Press CTRL+S to save the file
- Launch program TSIM by clicking Gensys -> Run Current File in the pulldown menu.
- Double-click the file mplotf/critSpeedPlot.mplotf in the mplotf-directory.
- Launch program MPLOT by pressing Ctrl+R.
Select ident crit
- Estimate the critical speed in the plot.
In order to make the estimate more accurate,
use the middle mouse button.
When the middle mouse button is pressed the position of the mouse can seen in the text fields at the top of the window.
- Calculate the critical speed defined as max.track-shift force less than 2.5[kN],
by double-clicking the file ./crit_bobo.sh and press Ctrl+R.
- If the instruction above has been followed the script ./crit_bobo.sh should
give the following output:
Ident Critical speed
-----------------------------------
crit_ideal 303.000000
Make a simulation through a curve, without track irregularities.
- Copy file runf/tang_ideal.tsimf to runf/R600ideal.tsimf
by giving the following command:
copy runf/tang_ideal.tsimf runf/R600ideal.tsimf
- Open file runf/R600ideal.tsimf and
change the lines from:
func const Y_cp= 0.65*sign(CurveRadius) # lateral acc. in track plane
# func const vkmh= 3.6*sqrt(CurveRadius*(Y_cp+CurveCant/(2*bo_)*9.81))
#
func const vkmh= 160 # Speed in km/h
to:
func const Y_cp= 0.65*sign(CurveRadius) # lateral acc. in track plane
func const vkmh= 3.6*sqrt(CurveRadius*(Y_cp+CurveCant/(2*bo_)*9.81))
#
# func const vkmh= 160 # Speed in km/h
The speed vkmh will be automatically calculated giving a lateral acceleration of 0.65[m/s2] in the track plane.
- Change lines from:
func const CurveRadius= 1e99 # Curve radius in [m]
func const CurveCant= 0.000 # Cant of track in [m]
to:
func const CurveRadius= 600 # Curve radius in [m]
func const CurveCant= 0.150 # Cant of track in [m]
- Change line from:
tstop= 10.
to:
tstop= 24.
- Press CTRL+S to save the file
- Launch program TSIM by clicking Gensys -> Run Current File in the pulldown menu.
- Animate the results in GPLOT by writing:
gplot runf/R600ideal.tsimf gp/R600ideal.gp &
- Set the Deformation scale fact equal to 10 approximately
- Animate Contact forces by selecting View->show_4_diags from the pulldown menu
- Animate the results in GLPLOT by writing:
glplot runf/R600ideal.tsimf gp/R600ideal.gp &
- Display the results in MPLOT.
Double-click the mplotf/-directory.
Double-click the mplotf/Tsim_All_BoBo.mplotf-file in the right window.
Select open->run with the right mouse button.
In the MPLOT command line popup menu select ident R600ideal.
In file mplotf/Tsim_All_BoBo.mplotf a number of plots are predefined,
you can select plot with the radio-buttons to the right of the pulldown menu bar.
Make a simulation through a curve, with track irregularities and in-line post processing.
- Copy file runf/R600ideal.tsimf to runf/R600tirr.tsimf
by giving the following command:
copy runf/R600ideal.tsimf runf/R600tirr.tsimf
- Open file runf/R600tirr.tsimf and change line from:
# post_process= 'mplot mplotf/Tsim_All_BoBo.mplotf $IDENT'
to:
post_process= 'mplot mplotf/Tsim_All_BoBo.mplotf $IDENT'
Change line from:
func char ctrack_irreg= Ideal_track
to:
func char ctrack_irreg= track_V120a
- Press CTRL+S to save the file
- Launch program TSIM by clicking Gensys -> Run Current File in the pulldown menu.
- Inspect the results from post processor MPLOT.
In the end of the simulation you can see that three result files were generated
mplotr/R600tirr.print,
diags/R600tirr.ps and
mplotr/R600tirr.resu.
Open and inspect the results by double-clicking the files and select open->op with the right mouse button.