Home
Reference Manual
Return
BoBo-vehicle tutorial
This tutorial consists of the following steps:
Start the filemanager program GENFILE
If the installation has been made for KDE or GNOME just click on
the
-icon on the desktop.
On other systems open a terminal and write: genfile
If the genfile-window has been started via the
-icon,
the gensys filemanager will start in directory $HOME/analyse.
In the title of the genfile-window you can see your location.
The file managing program that now starts will be referred as the
GENFILE- or GENSYS-window, and
is described in more detail in the
genfile users manual.
Copy the BoBo-example to your working directory
- Create a new and empty directory by writing
mkdir tutor_bobo_test
in the "Command input area"
of the genfile window.
- Go to the new directory by double-clicking the directory name, and press the cd –pushbutton.
- Copy example files to the newly created directory.
Please choose one of the following methods:
Examine the directory "intro_tutor_bobo"
- Program GENFILE now shows the contents of directory intro_tutor_bobo.
- 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/Master.runf-file and select open->op with the right mouse button in the window background menu.
The vehicle
The vehicle defined in file runf/Master.runf is a motor car with 2 bogies and 4-axles.
The runf/Master.runf-file make calls to subfiles in the input data reading process,
the subfiles are:
| kpfr/ENS1002_uic60i40.kpfr |
|
The wheel/rail geometry functions.
|
| vhedat/std_inserts.ins |
|
Standard input data which are common for all railway vehicles.
|
| vhedat/BoBo.propf |
|
Property file defining the default vehicle data properties.
|
| vhedat/BoBo.ins |
|
Model file creating all masses, springs, dampers,,, etc.
|
A detailed description of the runf/Master.runf-file with its sub-files can be found in
Description of a rail road vehicle model.
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/Master.runf by:
- Double-click directory runf/ in the subdirectory text field
- Double-click file runf/Master.runf 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/Master.runf to runf/modalRigid.modalf,
by giving the command
cp runf/Master.runf 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 19 from:
func const vkmh= 160 # The initial speed of the vehicle in km/h
To:
func const vkmh= 250 # The initial speed of the vehicle 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 94 from:
# pre_process= 'quasi $CURRENT_FILE'
To:
pre_process= 'quasi $CURRENT_FILE'
Change lines 314-317 from:
##
## Read initial values from GPdat-file, generated by QUASI
## ==========================================================
# if_then_char_init CalcType .eq. TSIM
# .or. CalcType .eq. MODAL
# initval read_gpdat gp/$IDENT.gp 1
# endif
To:
##
## Read initial values from GPdat-file, generated by QUASI
## ==========================================================
if_then_char_init CalcType .eq. TSIM
.or. CalcType .eq. MODAL
initval read_gpdat gp/$IDENT.gp 1
endif
- 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:
| calcmod/modalRigid.modjac |
|
The Jacobian of the linearized system. |
| calcmod/modalRigid.modf |
|
ASCII-file containing the eigen forms |
| calcmod/modalRigid.mode |
|
ASCII-file containing the eigen values |
| gp/modalRigid.gp |
|
File written in GPdat-format for animation in program GPLOT. |
| id/modalRigid.id |
|
File written in MPdat-format for plotting of root-locus plots in program MPLOT. |
- 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 mode number 6, which is the first mode of vibration having a relative damping less than 100%.
- Eigen modes 1 to 5 and 7 to 15, are highly damped eigen modes.
If the damping of the mode exceeds 100% the mode does no longer have a harmonic solution,
instead the eigen mode have an exponential solution.
- 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 eigen frequency and the other has a negative eigen frequency.
In the Deform->draw_deform–menu only modes with a positive eigen frequency has been listed.
You can see that all eigen modes with a negative eigen frequency has been removed from the list,
for example mode 5, 16, 18, 21, , , etc.
- To start the animation, press the Fwd –pushbutton in the lower left corner of the window.
- 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:

Exercise:
Find the following mode shapes in the vehicle:
| Lower sway: |
_________________________________________________ |
| Upper sway: |
_________________________________________________ |
| Body bounce: |
_________________________________________________ |
| Body pitch: |
_________________________________________________ |
| Body yaw: |
_________________________________________________ |
| 1:st bogie kinematic mode: |
_________________________________________________ |
| 2:d bogie kinematic mode: |
_________________________________________________ |
| Bogie longitudinal vibration: |
_________________________________________________ |
Answers
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:
cp 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 92-93 from:
# pre_process= 'sed "s!runf/Master.runf!$CURRENT_FILE!" npickf/flex_car.npickf > npickf/$IDENT.npickf'
# pre_process= 'npick npickf/$IDENT.npickf'
To:
pre_process= 'sed "s!runf/Master.runf!$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 program QUASI and MODAL
change the lines 307-309 from:
##
## Read flexible parameters for the carbody
## ==========================================================
# if_then_char_init CalcType .ne. NPICK
# insert file npickr/$IDENT.npickr
# endif
To:
##
## Read flexible parameters for the carbody
## ==========================================================
if_then_char_init CalcType .ne. NPICK
insert file npickr/$IDENT.npickr
endif
- 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 eigen values, compared to the previous case modalRigid.
These new equations arise from the three flexible modes added by program NPICK.
Exercise:
Find the following mode shapes in the vehicle:
| Lower sway: |
_________________________________________________ |
| Upper sway: |
_________________________________________________ |
| Body bounce: |
_________________________________________________ |
| Body pitch: |
_________________________________________________ |
| Body yaw: |
_________________________________________________ |
| 1:st bogie kinematic mode: |
_________________________________________________ |
| 2:d bogie kinematic mode: |
_________________________________________________ |
| Car-body bending mode in phase with bogies: |
_________________________________________________ |
| Car-body bending mode out of phase with bogies: |
_________________________________________________ |
| Car-body torsion mode: |
_________________________________________________ |
| Car-body 2:d bending mode: |
_________________________________________________ |
Answers
Please close the GPLOT-window, before continuing with the next section.
Make a stability analysis on tangent track at 340[km/h].
- Copy file runf/Master.runf to runf/stab_340.tsimf
by giving the following command:
cp runf/Master.runf runf/stab_340.tsimf
- Open file runf/stab_340.tsimf and change the line 19 from:
func const vkmh= 160 # The initial speed of the vehicle in km/h
to:
func const vkmh= 340 # The initial speed of the vehicle in km/h
Change line 322 from:
# initval set_var car_1.vp= .15
to:
initval set_var car_1.vp= .15
- 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
- Click the -> –pushbutton
- In order to step frame by frame in the animation, press the +1 – or
-1 –pushbutton in the pull-down menu.
- Show animation in GLPLOT:

- 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 axle 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.5
- Save the file by pressing Ctrl+S
- In the MPLOT-window click the Reload –pushbutton
- By clicking Draw->diagram # the drawing area can be divided into several smaller diagrams
- The interactively generated plot:

- 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/Master.runf to runf/crit.tsimf
by giving the following command:
cp runf/Master.runf runf/crit.tsimf
- Open file runf/crit.tsimf and change the lines 19-20 from:
func const vkmh= 160 # The initial speed of the vehicle in km/h
# func operp vkmh= 450 - 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= 450 - 5 * time # Vary vkmh in order to calculate critical speed
Change lines 322-323 from:
# initval set_var car_1.vp= .15
# force rel_lsys1 retard car_1 0 0 -hccg*.6 -mvhe1*5/3.6 0. 0. 0. 0. 0. # Apply redardation 5[km/h/s] as an external force
to:
initval set_var car_1.vp= .15
force rel_lsys1 retard car_1 0 0 -hccg*.6 -mvhe1*5/3.6 0. 0. 0. 0. 0. # Apply redardation 5[km/h/s] as an external force
Change the line 328 from:
tstop= 10.
to:
tstop= 40.
- 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.bat and press Ctrl+R.
- If the instruction above has been followed the script ./crit.bat should
give the following output:
Ident Critical speed
-----------------------------
crit 316.200000
Make a simulation through a curve, without track irregularities.
- Copy file runf/Master.runf to runf/R600ideal.tsimf
by giving the following command:
cp runf/Master.runf runf/R600ideal.tsimf
- Open file runf/R600ideal.tsimf and
change line 19 from:
func const vkmh= 160 # The initial speed of the vehicle in km/h
to:
func const vkmh= 0 # The initial speed of the vehicle in km/h
By setting vkmh= 0 the speed of the vehicle will be calculated automatically,
in order to obtain a lateral acceleration of 0.65[m/s2] in the track plane
(See line #240 in the input data file)
- Change lines 200-201 from:
func const Curve_radius= 1e99 # Curve radius in [m]
func const Curve_cant= 0.000 # Cant of track in [m]
to:
func const Curve_radius= 600 # Curve radius in [m]
func const Curve_cant= 0.150 # Cant of track in [m]
- Change line 329 from:
tstop= 10.
to:
tstop= 24.
- Run file runf/R600ideal.tsimf, by clicking Gensys -> Run Current File in the pulldown menu.
- Animate the results in GPLOT by writing:
gplot runf/R600ideal.tsimf gp/R600ideal.gp &
- Contact forces and contact surfaces can be animated in program GPLOT.
Select View->show_4_diags from the pulldown menu.
- Show animation in GPLOT:

- Animate the results in GLPLOT by writing:
glplot runf/R600ideal.tsimf gp/R600ideal.gp &
- Show animation in GLPLOT:

- 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.
The predefined plots are:
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:
cp runf/R600ideal.tsimf runf/R600tirr.tsimf
- Open file runf/R600tirr.tsimf and change line 95 from:
# post_process= 'mplot mplotf/Tsim_All_BoBo.mplotf $IDENT'
to:
post_process= 'mplot mplotf/Tsim_All_BoBo.mplotf $IDENT'
Change line 103 from:
func char ctrack_irreg= Ideal_track
to:
func char ctrack_irreg= track_V120a
- Start the simulation, 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.
The files have the following contents:
- mplotr/R600tirr.print
Output of scalars defined in command print in the file mplotf/Tsim_All_BoBo.mplotf.
In current example the file has the following contents:
| car_1.m.Nmv | Mean Comfort simplified according to CEN Technical |
| car_1b1.Nmv | Committee 256 WG 7 and ERRI Question B 153. |
| car_1b2.Nmv | At center of car-body, over bogie #1 and over bogie #2 respectively. |
| S1_max | Max lateral track-shift force |
| Y/Q_1_max | Max flange climb ratio |
| bt1MIN | Min vehicle turnover ratio |
| car_1b2.yMAX | Max pantograph sway over trailing bogie |
| car_1b2.yMIN | Min pantograph sway over trailing bogie |
- diags/R600tirr.ps
All plots written in postscript format.
- mplotr/R600tirr.resu
Result summaries from all FTWZ- and STAT- commands given in the mplotf/Tsim_All_BoBo.mplotf-file.
Open and inspect the results by double-clicking the files and select open->op with the right mouse button.