vibration analysis of a truss bridge due to a moving …

78
VIBRATION ANALYSIS OF A TRUSS BRIDGE DUE TO A MOVING LOAD Date: 09/11/18 Submitted to: Dr. Emre Erkmen Revision: Issued for Submission Team Members: Bill Sidis 11023482 Daniel Tringali 11984325 Kien Quan Trinh11673480 Ngoc Minh Hang Tran 97108740 Nattapong Sumonta 12192353 George Tannous 99139014 Raj Shah 12085256 Louis Truong 11442492

Upload: others

Post on 25-Apr-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

A MOVING LOAD
Revision: Issued for Submission
Nattapong Sumonta 12192353
George Tannous 99139014
Raj Shah 12085256
Louis Truong 11442492
Figure 2: Geometry of element section used for SAP2000. ............................................................. 10
Figure 3: Axle loading configuration for 1.5t vehicle. ....................................................................... 10
Figure 4: Axle loading configuration for 11.5t vehicle. ..................................................................... 10
Figure 5: Flowchart for Newmark's method of analysis (Dr. Emre Erkmen, 2018) ........................... 13
Figure 6: 2D truss bridge model with nodes and members labelled. ............................................... 14
Figure 7: Member connectivity of the structure. .............................................................................. 15
Figure 8: Element 2 DoF coordinate system. .................................................................................. 15
Figure 9: Member stiffness matrix in global coordinate system. ...................................................... 16
Figure 10: Element DoFs in global coordinate system. ................................................................... 16
Figure 11: DoF allocation on each nodes of the structure. .............................................................. 16
Figure 12: Element stiffness matrix and allocated DoFs. ................................................................. 17
Figure 13: Assembled global mass matrix of the structure. ............................................................. 17
Figure 14: Mass distribution on the member to nodes. .................................................................... 17
Figure 15: Element mass matrix arrangement. ............................................................................... 17
Figure 16: Assembled global mass matrix of the structure. ............................................................. 18
Figure 17: Stored boundary condition of the truss bridge as 24x1 vector. ....................................... 18
Figure 18: Gaussian elimination matrix of the structure. .................................................................. 19
Figure 19: Assembled damping matrix for the structure (am = 0.02 and ak = 0.04). .......................... 20
Figure 20: Assembled effective stiffness matrix of the structure. ..................................................... 20
Figure 21: The direction of the car and the location of node A and B. ............................................. 21
Figure 22: Example calculation of the instantaneous vector (x). ...................................................... 21
Figure 23: The relationship between the location of the car and the load on node A (left) and node B
(right). ............................................................................................................................................. 22
Figure 24: The relationship between the time and load on node A (left) and node B (right). ............ 22
Figure 25: Assembled load vector matrix for v=30km/h. .................................................................. 22
Figure 26: Flowchart of Dynamic analysis procedure ...................................................................... 23
Figure 27: Eliminated stiffness matrix (no damping). ....................................................................... 24
Figure 28: The effective load vector at T=0s. .................................................................................. 24
Figure 29: Example of eliminated stiffness and load matrices with corresponding deflection values
for each DoFs. ................................................................................................................................ 24
Figure 30: Main form of the GUI used for the analysis. ................................................................... 26
Figure 31: Structure editor form used for the analysis. .................................................................... 26
Figure 32: Comparison between the global stiffness matrix from numerical and MATLAB. ............. 34
Figure 33: Comparison between the global mass matrix from numerical and MATLAB................... 34
Figure 34: Comparison between the damping matrix from numerical and MATLAB. ....................... 34
Figure 35: Comparison between the effective stiffness matrix from numerical and MATLAB (no
damping)......................................................................................................................................... 34
Figure 36: Comparison between the effective stiffness matrix from numerical and MATLAB
(damping). ...................................................................................................................................... 35
Figure 37: Time dependent load matrix from MATLAB at v=50km/h, W=50kN. ............................... 35
Figure 38: Time dependent load matrix from numerical analysis at v=50km/h, W=50kN. ................ 35
Figure 39: The deformation results from numerical analysis (left) and MATLAB (right). .................. 36
Figure 40: The vertical deflection for DOF 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, and 24 at v=30 km/h,
m=1.5t. ........................................................................................................................................... 37
Figure 41: The vertical deflection for DOF 14 at v=30 km/h, m=1.5t (undamping). .......................... 38
Figure 42: Vibration of DOF 14 at v=45 km/h, m=1.5t (undamping). ............................................... 38
Page 2 of 78
Figure 43: Vibration of DOF 14 at v=50 km/h, m=1.5t (undamping). ............................................... 39
Figure 44: Vibration of DOF 14 at v=60 km/h, m=1.5t (undamping). ............................................... 39
Figure 45: The vertical deflection for DOF 14 at v=30 km/h, m=1.5t (damping). .............................. 41
Figure 46: The vertical deflection for DOF 14 at v=30 km/h, m=1.5t (undamping). .......................... 41
Figure 47: Vibration of DOF 14 at v=50 km/h, m=11.5t (undamping). ............................................. 42
Figure 48: Vibration of DOF 14 at v=50 km/h, m=1.5t (undamping). ............................................... 42
Figure 49: The vertical deflection at DOF 4, 6, 8, 10, 12,14, 16,18, 20, 22 and 24 at v=50km/h,
m=1.5t. ........................................................................................................................................... 43
Figure 50: The vertical deflection of DOF 4, 6, 8, 10, 12,14, 16,18, 20, 22 and 24 at v=50km/h,
m=11.5t. ......................................................................................................................................... 43
Figure 51: The vertical deflection at DOF 14 at v = 30km/h, m=1.5t, h=0.1s (undamping). ............. 44
Figure 52: The vertical deflection at DOF 14 at v = 30km/h, m=11.5t, h=0.01s (undamping). ......... 44
Figure 53: The zoomed minimum vertical deflection at DOF 14 at v = 30km/h, m=11.5t, h=0.01s
(undamping). .................................................................................................................................. 45
Figure 54: The zoomed minimum vertical deflection at DOF 14 at v = 30km/h, m=11.5t, h=0.1s
(undamping). .................................................................................................................................. 45
Figure 55: The vertical deflection at DOF 14 at v = 45km/h, m=1.5t, h=0.1s (undamping). ............. 45
Figure 56: The vertical deflection at DOF 14 at v = 45km/h, m=1.5t, h=0.01s (undamping). ........... 46
Figure 57: The zoomed first peak at DOF 14 at v = 45km/h, m=1.5t, h=0.1s (undamping). ............. 46
Figure 58: The zoomed first peak at DOF 14 at v = 45km/h, m=1.5t, h=0.01s (undamping). ........... 46
Figure 59: The vertical deflection at DOF 4, 6, 8, 10, 12,14, 16,18, 20, 22 and 24 at v=30km/h,
m=1.5t (aluminium). ........................................................................................................................ 47
Figure 60: The vertical deflection at DOF 4, 6, 8, 10, 12,14, 16,18, 20, 22 and 24 at v=30km/h,
m=1.5t (steel). ................................................................................................................................. 47
Figure 61: Comparison of the peak frequency while varying the truck mass (with a constant
velocity). Note that all of the peak frequencies are the same. ......................................................... 49
Figure 62: Comparison of the peak frequency while varying the vehicle velocity (with a constant
mass). Note that the peak frequencies increase with vehicle velocity. ............................................ 50
Figure 63: The vertical deflection for DOF 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, and 24 at v=50 km/h,
m=1.5t. ........................................................................................................................................... 51
Figure 64: difference between Euler Bernoulli and Timoshenko (Habituating FEA 2013) ................ 53
Table list
Table 1: Nodal Coordinates for x and y axis .................................................................................... 14
Table 2: Methodology validation checklist. ...................................................................................... 32
Table 3: Comparison between different frequencies at different load cases. ................................... 48
Table 4: Improvements between preliminary and final build of GUI program. .................................. 52
Page 3 of 78
1.1. Background 4
3.1. Building the Model 9
3.2. Material Properties 9
3.3. Section Properties 9
3.2. Applied Loadings 10
4.2. MATLAB Approach 26
5. Validation Study 32
5.1. Validation Methods 32
5.3. Validation: Using Commercial Software 36
6. Parametric Study 37
6.1. Vehicle Velocity 37
7. Discussion 51
7.1. Errors 51
7.2. Improvements 52
8. Conclusion 55
9. Reference 56
10. Appendices 57
1. Introduction
1.1. Background
Vibration is a natural phenomenon that occurs within a structure whenever an external force is applied
on the structure. Some of the sources of vibration could stem from human activity, plant operations,
construction activity, as well as rail and road traffic. However, there are other sources that we may
not be well aware of such as the vibration caused by low-frequency, airborne pressure waves emitted
by aircraft, heavy vehicles and machinery. This occurrence is very much true to a bridge structure
under conditions of normal use is exposed to dynamic loads of live vehicles and pedestrians.
The effects of vibration can be detrimental which is why it is important to perform vibration analysis
on structures and to ensure the designed and built structure does not exceed the vibration limit. Other
effects of vibration can cause structural weakness and could also be a health and safety hazard to
the users and surrounding.
In recent decades, the methods of structural analysis and design have become more refined, the
systems are better integrated, the use of high strength construction materials and welded or bolted
joints are advantageous and versatile in multi-purpose structures. As such, limit states design, with
emphasis on structural behaviour can result in a more flexible structural system.
Developments in contemporary design and construction practices have led to structural systems in
which the motion is perceptible and objectionable unless it is controlled by proper design. Therefore,
merely adhering to serviceability requirements in current standards and specifications for minimising
objectionable motion in flexible modern structures are often inadequate.
It is therefore relevant to understand the dynamic behaviour of a structure through the observation of
structural response to time-dependent loads. This discipline is called structural dynamics. Often the
method of analysis by which involves static loads at particular point. Whilst this study does invoke its
usefulness for strength criteria, it lacks consideration for serviceability. The structure that is presented
for this study is susceptible to excessive vibrations under certain dynamic loads, as it will be discussed
later in the report. Depending on the structural conditions and loading characteristics, the resulting
response could be a few times larger than those predicted in static analysis.
Page 5 of 78
1.2. Theoretical Concepts
When analysing a time dependent problems, the presumption is that the problem involves inertia
forces and it is time varying by nature. Under this presumption, we can relate to Newton’s law of
motion and develop a relationship between internal forces of the structure and the excitation in which
the external force acting upon a structure creating a disturbance in the equilibrium condition.
f I + f
Naturally, the conditions of dynamic equilibrium requires external force acting on the structure as well
as the internal forces such as the elastic resisting force, the damping force and inertia force. The
annotative character ‘k’ is the structure stiffness, ‘c’ is the damping coefficient and ‘m’ is the mass of
the structure.
f I = mu (2.3)
By substituting the internal structural forces into the previous equation, we now have an equation of
motion governing the deformation ‘u(t)’ subjected to external load.
mu + cu + ku = p(t) (3)
The structure will displace accordingly to the magnitude of the external force and its structural
properties. The displacement with respect to time indicates that the structure experiences a dynamic
behaviour propagating what is known as a sinusoid either a sine or a cosine wave. In theoretical
sense, this represents a structure without any damping properties. Therefore, the structure will
continue to be in motion for an infinite amount of time. Of course, real life structures do have damping
properties from the material or intentional designs that could mitigate vibration.
Figure 1: Common sine wave generated from MATLAB.
Page 6 of 78
One could then easily obtain the frequency of one cycle by measuring the distance between the peaks
of the plot to obtain the period to which the frequency is the reciprocal of the period.
T = 1
f (4)
However, the nature of the problem does present itself to be a more complicated than it seems as the
moving load suggests that the instantaneous position of the load changes with respect to time.
Therefore, the loading could be recognised as transient, which would require a time history analysis
that accounts for changes at each “time-step”. Direct integration methods such as the Newmark-beta
method flexible computational process is a well-accommodated application. It adds another
dimension to solving the problem, which involves creating load and displacement vectors through an
iterative process. Newmark’s method utilises the integral relations between displacement, velocity
and acceleration to describe the dynamic behaviour time history.
vi+1= vi + ∫ vdt ti+1
ti (5)
Displacement is denoted as ‘v’, velocity as ‘v’ and acceleration as ‘v’. Under the assumption of
constant acceleration, we have these relationships, which can then be used to develop the effective
load vector and effective stiffness matrix.
(6)
(7)
The process of this methodology will be discussed in further details in section 3. After each iteration,
the expression for acceleration and velocity at time step i+1 are updated. The process is repeated
until the number of steps have converged. The result is a series of displacement that can be used to
plot the displacement-time graph to find the vibration frequency.
When looking at data which contains periodic signals (such as changes in displacement –
“vibrations”), the most powerful and widely used tool is that of Fourier analysis. Fourier theory is based
on the concept that all periodic functions can be precisely reconstructed as a (potentially infinite) sum
of “fundamental” sine and cosine waves oscillating at different frequencies. In essence, it allows for
the breakdown of any composite periodic signal into the precise frequencies that make up that signal
(as well as tell us the relative amplitudes of each signal).
When used for practical data, Fourier analysis allows for periodic signals to be detected even if there
are significant levels of noise. Even a decaying or interspersed periodic signal will still be detected
Page 7 of 78
through Fourier analysis (though this does somewhat depend on which technique is used for such
analysis).
The main benefit of Fourier analysis is that it is mathematically rigorous and is incredibly widely used
for the purposes of – among countless other uses – periodic signal analysis in mathematics, physics,
engineering, data science, and many other disciplines.
But in our case, we are not really interested in reconstructing our data as a series of sine waves – we
want to know how much each of these are sinusoids. The Fourier transformation is an operation which
takes a particular function of time and converts it into a function of frequency, which in turn tells you
how strong the contribution of any given frequency is to the overall signal (as well as the phase of
each sinusoid, but this information is not used in this analysis). Plotting this new function over a range
of frequencies can tell you a lot about what the primary periodic signals are in a specific time-series
dataset. This idea will be explored further in section 6.7.
Page 8 of 78
2. Project Scope
2.1. Project Overview
The project involves the investigation of the dynamic behaviours of a truss bridge structure subjected
to moving loads at moderate speeds between 30-60 km/h. The main objective is to observe dynamic
properties such as vibrational frequencies and modal analysis through stimulating variable vehicle
speeds, vehicle mass and damping. This was achieved through developing a tool in a numerical
computing environment, MATLAB as well as validating against other methods in order to perform a
parametric study.
In this study, the following works have been carried out:
Verification of the software – SAP2000 for analysis of truss bridges
Development of the analysis tool – MATLAB for analysis of truss bridges
Comparison of static analysis for the common 2D bridge model between MATLAB functions,
numerical and Strand7 model.
Comparison of the time history analysis results for different load cases under the same 2D
truss bridge model – displacement and frequencies.
2.2. Assumptions
The project also requires key assumptions to be made during preliminary analysis, to simplify the
process by creating some constraints. However, the project has developed and some of the initial
assumptions have been altered to suit the scope of work.
For preliminary analysis:
The structure is undamped;
Velocity of vehicle remains constant throughout the travel time on the bridge;
Vehicle acceleration is constant as part of the initial condition;
The load path is linear and occurs along the bottom chord of the truss;
External influences such as superimposed dead loads, wind effects and earthquake loads will
not be considered;
Structural defects such as corrosion, pitting and other manufacturing defects will not be
considered, thus strength requirement will be ignored;
For final analysis:
The structure is damped with acceleration coefficient appropriate for the Newmark’s beta
method: β = 0.25, γ = 0.5;
Velocity of vehicle remains constant throughout the travel time on the bridge;
Page 9 of 78
There are no vehicle acceleration as part of the initial condition;
The load path is linear and occurs along the bottom chord of the truss;
External influences such as superimposed dead loads, wind effects and earthquake loads will
not be considered;
Structural defects such as corrosion, pitting and other manufacturing defects will not be
considered, thus strength requirement will be ignored;
For displacement, analysis for the worst case scenario will be performed only on Joint No. 7
which is the middle node of the bottom chord.
3. 2D Truss Bridge Model
3.1. Building the Model
This study was carried out on a 2D plane frame system. This is consistent throughout both commercial
software (Strand7 and SAP2000) used for this project. The superstructure that bears majority of the
live load as it spans 18m in length while the height of the structure is 4m. The structure is supported
by pin restraints resting on the edge of the cliff. Presumably, the material of the structure is structural
steel as it is found to be the most commonly used material for truss bridges with a modified material
density of 7,500kg/m3 rather than the standard 7,850kg/m3 from the steelworks. The structure is
homogenous in both its material and section being structural steel and a slender rectangular section.
The model have been analysed for both static and dynamic cases but have been treated as separate
analysis.
Poisson’s ratio: 0.25
Density: 7,500 kg/m3
3.3. Section Properties
Material: Structural Steel
Page 10 of 78
Area: 1 x 10-2 m2, 9.9864 x 10-3 m2 (For Strand7 & SAP2000 models)
Second Moment of Inertia: 4 x 10-5 m4, 3.9913 x 10-5 m4 (For Strand7 & SAP2000 models)
Figure 2: Geometry of element section used for SAP2000.
3.2. Applied Loadings
When determining the appropriate load for the structure, it needs to represent the common types of
vehicle that would use the bridge. For this analysis, the vehicles are a 4 door sedan (1.5 tonnes) and
2 axle rigid truck (11.5 tonnes). The different types of vehicles have been intentionally chosen for an
analysis of extreme ends of the spectrum for common vehicles. The axle load was obtained by
multiplying the mass by the gravity (9.81 m/s2) then distribute the load equally on each axle. The
configuration of the axle loads shown in figure 3 and 4 was used throughout the analysis.
v
Page 11 of 78
The main loadings for the parametric study are as follows:
a) Vehicle Variation:
b) Damping Variation:
c) Mass Variation:
Page 12 of 78
4.1. Primary Solving Approach
In this section of the report, the methodology used in the vibration analysis is discussed, and the
integration of Newmark‘s beta method and the finite element method is demonstrated. As seen in
figure 5, the flowchart developed by Dr. Emre Erkmen comprises of several logical steps of the
Newmark’s method that will predominantly be used throughout this analysis. There are 9 main steps
of the analysis:
Step 2: Calculates element stiffness matrix.
Step 3: Forming global stiffness matrix.
Step 4: Forming element mass matrix and global mass matrix.
Step 5: Reads and store boundary condition, damping factors and data for dynamic analysis.
Step 6: Forms damping matrix.
Step 7: Calculates effective stiffness matrix.
Step 8: Creates external time depend load vector.
Step 9: Calculates the deformation, velocity and acceleration of each node.
Page 13 of 78
Figure 5: Flowchart for Newmark's method of analysis (Dr. Emre Erkmen, 2018)
Page 14 of 78
Step 1: Read and store for the formation of the mass and stiffness matrix
Figure 6: 2D truss bridge model with nodes and members labelled.
The first step involved separating our structure into nodes and members, then assigning each node
and member an appropriate number, which is shown above in Figure 4. Since the structure is
arranged as a truss, all the elements will be acting as bar elements with 4 degrees of freedom (DoFs),
comprising of the global x and y components at each end of the element. The coordinates of each
node and the connectivity between the nodes are shown in Figure 5. For example, member 201 has
been created by the connectivity between node 2 and node 4.
Table 1: Nodal Coordinates for x and y axis
Page 15 of 78
Step 2: Calculate stiffness matrix
Figure 8: Element 2 DoF coordinate system.
The following procedure is used to define the stiffness matrix for each member.
1. Calculate the length of Lx, Ly from the coordinate. It is important to note that Lx and Ly can be
either a positive or negative number.
Lx = X2 − X1
Ly = Y2 − Y1
2. Calculate the total length of the member using Pythagoras’ theorem.
L = √ Lx 2 + Ly
2
3. Calculate the sine and cosine by using the following equations. sin(k) and cos(k) can be also
both positive and negative number.
Page 16 of 78
L
4. There are in total 4 degrees of freedom for each member, therefore a 4x4 matrix will be
employed. The values of the stiffness are determined using the sine and cosine of the angle
and follows the format shown in Figure 9.
Figure 9: Member stiffness matrix in global coordinate system.
Step 3: Forming global stiffness matrix
Figure 10: Element DoFs in global coordinate system.
The next step in the process is to assemble the global stiffness matrix. Each individual member
stiffness matrix is allotted a location in the global mass matrix according to the specified Degree of
Freedom (DoF) number. The systematic process for assigning DoF values is shown in Figure 10. The
proposed question has a total of 24 DoF.
Figure 11: DoF allocation on each nodes of the structure.
Page 17 of 78
Figure 12: Element stiffness matrix and allocated DoFs.
The DoF number determines the location in rows and the columns within the global mass matrix. In
instances where multiple members intersect the same node then the values are summed together in
the assembly of the global stiffness matrix.
Figure 13: Assembled global mass matrix of the structure.
Step 4: Forming element mass matrix and global mass matrix
Figure 14: Mass distribution on the member to nodes.
The global mass matrix contains the lumped masses at each node of the truss bridge. Similar to the
global stiffness matrix, the assembly of the global mass matrix will follow the same procedure, as the
element mass matrix will be allocated to the global mass matrix resulting in a 24x24 matrix.
Figure 15: Element mass matrix arrangement.
The lumped masses are calculated by first multiplying the density by the cross-sectional area and
then the length and then distributing the mass equally between the two end nodes, this equation is
found below. During the assembly stage of the global mass matrix the mass of a node is then found
Page 18 of 78
by summing all of the mass components of each element that meets at that specific node. The global
mass matrix for the proposed problem can be found below in Figure 16.
Figure 16: Assembled global mass matrix of the structure.
Step 5: Reads and store boundary condition, damping factors and data for dynamic analysis
The boundary condition are utilised in reducing the global stiffness matrix and deformation matrix by
eliminating columns and rows during the dynamic analysis. Regarding the truss bridge, there are two
pinned supports on the left and right ends of the bridge. Thus, the boundary conditions are stored as
shown below in Figure 17.
Figure 17: Stored boundary condition of the truss bridge as 24x1 vector.
Page 19 of 78
Step 6: Forms damping matrix
In terms of forming damping matrix, the following two damping factors are required:
1. Mass proportional damping factor (am)
2. Mass proportional damping factor (ak)
The data for dynamic analysis comprises:
1. Mass of the car (kg)
2. Velocity of the car (km/h)
3. Damping factor
4. Time for the analysis (s) and time increment (s) or
5. Time increment (s) and the number of time step
Damping matrix can be formed from the equation
M – global mass matrix
ak – stiffness proportional damping factor
am – mass proportional damping factor
The mass and stiffness proportional damping factors are defined above. The damping matrix in which
the mass and stiffness proportional damping factors are 0.02 and 0.04 respectively, can be seen
below in Figure 19. The damping matrix will be zero if those factors are zero and the matrix does not
influence the effective stiffness matrix.
Page 20 of 78
Figure 19: Assembled damping matrix for the structure (am = 0.02 and ak = 0.04).
Step 7: Calculating the effective stiffness matrix
The calculation of the deformation, vibration velocity, and acceleration require the factored effective
stiffness which is determined via the effective stiffness matrix. The effective stiffness matrix of the
proposed truss bridge is shown below in Figure 20. The effective stiffness matrix is a constant matrix
that is formed using the following relationship:
K – global stiffness matrix
Step 8: Creates external time depend load vector
Page 21 of 78
Figure 21: The direction of the car and the location of node A and B.
Initially, the vector of the car location is called the instantaneous x-vector which is formed based on
the velocity of the car by considering the equation:
() = ×
The velocity, is to be defined by the user in km/h and will be converted to m/s. Time in the equation
is the time increment (in seconds) which has been defined by the user in Step 6. The length of the
vector is governed by the time for analysis. For instance, if the time for the dynamic analysis is 10
second and time increment is 0.1 second, the length of the load vector is 10/0.1 = 100 steps. An
example of how the ‘X’ vector is calculated can be found in Figure 22.
Figure 22: Example calculation of the instantaneous vector (x).
After acquiring the distance vector X, the next step is to create an external time dependent load vector.
The length of the external time dependent load vector is based on the number of time intervals for the
dynamic analysis. The height of the dependent load vector depends on the number of the total degree
of freedom in the structure.
Consider Figure 23 and 24 below, the mass of the car is carried entirely by Node A. As the car moves
from Node A to Node B, the load at A decreases linearly at the same rate as the load at Node B
increases, this progresses until the entire mass of the car is carried entirely by Node B. This
relationship is thus defined as the following:
Page 22 of 78
member length × x)
Pb = ( car weight
member length × x)
Figure 23: The relationship between the location of the car and the load on node A (left) and node B (right).
Figure 24: The relationship between the time and load on node A (left) and node B (right).
For the analysis, the MATLAB code determines the external time dependent load vector and records
it for each time step. An example of the time dependent effective load is shown in Figure below 24.
The time increment is 0.1 second and the car velocity is 30 km/h.
Figure 25: Assembled load vector matrix for v=30km/h.
It is assumed that the car moves at a constant velocity along the bridge, and that the weight of the
vehicle is only exerted vertically with no horizontal force component caused by the car travelling. As
the car leaving the truss bridge, the time depend load vector is zero. The time taken for the car to
travel the length of the bridge is calculated using the following:
Page 23 of 78
velocity (m/s)
From the example above, with the car travelling at 30 km/h or 8.33 m/s the time taken for the car to
traverse the length of the bridge is equal to T = 18/8.33 = 2.16 s. Thus, at the time T= 2.2 second, the
time depend load vector is zero.
Step 9: Calculating the deformation, velocity and acceleration of each node
Figure 26: Flowchart of Dynamic analysis procedure
The procedures to analyse the deformation under dynamic circumstance is illustrated in Figure 26.
The dynamic analysis requires an external time dependent load vector, initial node deformation, and
the vibration velocity and acceleration of each node. Thus, looping is essential as the calculation of
the deformation for each subsequent step requires the updated deformation, vibration velocity and
acceleration. Initially, the effective load vector can be form by considering the equation below:
After that point, the effective stiffness matrix and the effective load vector will be eliminated using the
following relationships:
Figure 28: The effective load vector at T=0s.
According to Figure 27 and 28, the deformation at DoF 1, 2, 23, and 24 are zero because of the
pinned support. Thus, the corresponding rows and columns are eliminated resulting in a 20x20 matrix.
Similarly, the corresponding rows in the effective load vector are also to be eliminated resulting in a
20x1. At this point, the deflection of each node can be determined by using the equation
{ = } = [ ]−1 × [ ]
Figure 29: Example of eliminated stiffness and load matrices with corresponding deflection values for each DoFs.
The final step in the loop is to update the vibration acceleration and velocity which can be done by
substituting the updated deformation, and current deformation, vibration velocity and acceleration
vectors into the following equations:
Page 25 of 78
The worked example above shows that the updated vibration acceleration and velocity at T= 0.1 are
zero. The dynamic analysis continues by repeating the steps and procedures as long as the value of
‘i’ is less than the number of the intervals.
Page 26 of 78
4.2. MATLAB Approach
As mentioned in previous sections, the MATLAB program follows the flowchart for Newmark’s time
integration method as the basis guideline for the approach. There are several reasons for MATLAB
to be chosen as the way to approach for the project:
MATLAB has ability to calculate, create or reduce matrices as well as other pre-compiled
codes that is useful for our project. This saves time as output data will be changed
automatically when any variables are changed, as opposed to hand-calculation.
MATLAB’s ability to incorporate a GUI, while allowing for the input of custom parameter and
variables to be used in the analysis. The flexibility to customise variables assists the
parametric studies of how changes can affect the vibration frequency of a structure.
Limitations on time and as well as understanding prevent the use of alternative tools or
programming languages. As any other approach would require a significant time in just
learning how to use the tool or programming language to achieve the desired results.
Graphical user interface (GUI) provides a user-friendly workspace. The GUI program is
capable of creating new projects as well as saving and loading existing projects. Inputs can
be changed based on the structure or problem with little to no issue. The GUI can also plot
the displacement against time graph, which can be generated for and all nodes. There is also
the ability to output the frequency graphs, which show the peak value of the vibration.
Figure 30: Main form of the GUI used for the analysis.
Figure 31: Structure editor form used for the analysis.
Page 27 of 78
a) Simulation Properties
% What is the furthest distance that our car has to travel? xs = zeros(size(NODES)); for idx = 1:length(NODES)
xs(idx) = NODES{idx}.pos.x; end deltax = max(xs) - min(xs); Ttotal = cfg.T_EXTRA + deltax ./ VEHICLE_VELOCITY; Tdelta = Ttotal ./ cfg.NUM_STEPS; % "h"
The user is asked for the number of simulation steps they want (which allows for the computation time
to be consistent), which is used to determine what the time step is. This is calculating the time it takes
a vehicle to travel the length of the truss plus the time in which the truss is in free vibration, divided
by the number of steps.
b) Element Properties
elem.len = sqrt((a.pos.x - b.pos.x).^2 + (a.pos.y - b.pos.y).^2); elem.theta = atan((a.pos.y - b.pos.y) / (a.pos.x - b.pos.x)); s = sin(elem.theta); c = cos(elem.theta); % Global-to-local transformation matrix for displacements. elem.transform = [ c, s, 0, 0; 0, 0, c, s; ]; % What degree-of-freedom indices are linked to this element? elem.degrees = [ xdegree(elem.aidx), ydegree(elem.aidx), ... % ax, ay xdegree(elem.bidx), ydegree(elem.bidx) % bx, by ]; % Stiffness of element in global coordinates. elem.Kglobal = (cfg.E*cfg.A / elem.len) .* [ % ax ay bx by c.^2, c.*s, -c.^2, -c.*s; % ax c.*s, s.^2, -c.*s, -s.^2; % ay -c.^2, -c.*s, c.^2, c.*s; % bx -c.*s, -s.^2, c.*s, s.^2; % by ]; ELEMENTS = [ ELEMENTS elem ];
After the elements have been configured using the built-in truss editor, several properties of each
element require assembly, including the transformed matrix. The stiffness matrix (in global
coordinates) for each element is the key thing being pre-calculated, with each entry in the stiffness
matrix being associated with two Degrees of Freedom (DoF). DoF are indexed by the node and the
local degree of freedom (global x-axis or y-axis), which is needed when constructing and operating
on the various global matrices created later.
c) Structure Properties
% Global structure stiffness matrix. Effectively each column+row
% represents a degree of freedom and the contents is the sum of the
% element stiffness matrices which have cells that correspond to the
% same degree of freedom. Kstruct = zeros(DEG_FREE*NJ, DEG_FREE*NJ);
Page 28 of 78
for idx = 1:NE elem = ELEMENTS(idx); % Figure out which elements of Kglobal we need to add our
% element stiffness matrix to... [Kxs, Kys] = ndgrid(elem.degrees, elem.degrees); Kxs = reshape(Kxs, 1, []);
Kys = reshape(Kys, 1, []);
% Same for the Kglobal of our element. [Exs, Eys] = ndgrid(1:length(elem.degrees), ...
1:length(elem.degrees)); Exs = reshape(Exs, 1, []); Eys = reshape(Eys, 1, []); Eidxs = sub2ind(size(elem.Kglobal), Exs, Eys);
Kstruct(Kidxs) = Kstruct(Kidxs) + elem.Kglobal(Eidxs);
end
The global structural stiffness matrix is generated by using all of the elements. Since we represent
each element as having a separate matrix, combining them efficiently and concisely requires a little
ingenuity.
For each element, we figure out the mapping between the elements in the element’s stiffness matrix
and the structural stiffness matrix – which is done by using the element’s degrees of freedom. Each
cell is effectively “labelled” by the degrees of freedom it corresponds to, and then the corresponding
degrees of freedom in the structural stiffness matrix are similarly found. Then we update the sum of
all the structure stiffness matrix elements that were found with this mapping. As a result, we only need
to loop over the set of elements once (while the notes’ solution requires far more iterations) and thus
we can efficiently calculate the structural stiffness matrix.
% Global mass matrix. We distribute half of the mass of each link to
% either node (basically assuming even mass distribution). In global
% form, we assign the mass in both degrees of freedom. Mvector = zeros(DEG_FREE*NJ, 1); for idx = 1:NE
elem = ELEMENTS(idx); mass = cfg.A*elem.len * cfg.RHO; Mvector(elem.degrees) = Mvector(elem.degrees) + mass/2;
end Mglobal = diag(Mvector);
% Effective structural matrix for simulation... Keff = Kstruct + (2/Tdelta).*Cglobal + (4/Tdelta^2).*Mglobal;
Then we just simply compute the global mass, damping, and effective structural matrices, using the
element data as before. Notably, we evenly distribute the mass of the element between the two nodes
(in the plane truss representation only the nodes have mass while the elements do not, so this is the
closest representation of a uniformly dense element).
Page 29 of 78
d) Degrees of Freedom
% What degrees of freedom are set to zero -- the "boundary
% conditions" (or rather the constraints of the system)? These are % the degrees of freedom associated with fixed nodes. nodes_arr = [NODES{:}]; locked_idxs = find(strcmp([{nodes_arr.type}], FIXED_TYPE)); locked_degrees = [ xdegree(locked_idxs) ydegree(locked_idxs) ];
unlocked_degrees = 1:DEG_FREE*NJ; unlocked_degrees(locked_degrees) = [];
% SUP is an identity matrix with the columns to be removed in the
% target matrix removed from the identity matrix (row removal is the
% transpose). SUP = eye(DEG_FREE*NJ); SUP(:,locked_degrees) = [];
Several of the nodes are fixed, and thus cannot move. In this method of dynamic analysis, this is
represented by having “locked” degrees of freedom (which are degrees of freedom in the various
matrices such that the corresponding columns and rows are missing). SUP is an identity matrix with
the columns corresponding to each locked degree of freedom removed – this is mostly just used so
that some later linear algebra is much more readable.
e) “Bottom Elements”
% Get list of "bottom" elements. For this simulation we assume there
% is some "floor" at y=0 and we are going along it. The only elements
% we care about are those. BOTTOM_NODE_IDXS = find(is_ground([nodes_arr.pos])); BOTTOM_ELEMENTS = []; for idx = 1:NE
elem = ELEMENTS(idx); % Are both nodes of the element on the ground? if sum(elem.aidx == BOTTOM_NODE_IDXS | ... elem.bidx == BOTTOM_NODE_IDXS) == 2
% It's a ground element. BOTTOM_ELEMENTS = [ BOTTOM_ELEMENTS elem ];
end end
In the simulation, our mass will apply a force to nodes underneath it. In order to avoid confusion, we
require that the only elements which are considered to be “underneath” the truck are completely flat
elements with a y-coordinate of zero. This avoids having to give the truck coordinates and do any
other calculation to figure out what element the truck is on. The truck is on whatever “bottom” element
contains its x-coordinate.
f) Dynamic Simulation
The code for the simulation follows the textbook description of plane truss simulations as well as
Newark’s method. Iterating over the time steps of our simulation, we do the following. It should be
noted that all of the following computations are done for *all* nodes simultaneously, allowing for users
to check individual node data without re-running simulations.
Page 30 of 78
Tcurrent = (tidx-1) * Tdelta; Vehicle_x = VEHICLE_VELOCITY * Tcurrent;
elem_current = []; % What bottom element is the car currently on? for idx = 1:length(BOTTOM_ELEMENTS)
elem = BOTTOM_ELEMENTS(idx); if elem.start.x <= Vehicle_x && Vehicle_x < elem.end.x
elem_current = elem; end
end
% Apply gravity load due to the car, if it's currently on an
% element. We distribute the load on each node as a linear
% scale to the distance the node (to make the simulation much
% smoother). Pvehicle = zeros(DEG_FREE*NJ, 1); if ~isempty(elem_current)
% F = ma -- gravity is *down*. Pvehicletotal = cfg.VEHICLE_MASS .* -9.8; for idx = [ elem.aidx elem.bidx ]
Pvehicle(ydegree(idx)) = Pvehicletotal .*
end
First, we update the current position of the vehicle using the current time. If the vehicle is still above
an element, we figure out what element and then apply an external load to the nodes that the element
is connected to (in order to get around the restrictions of the plane truss model, we weight the load
on each node based on how close it is to each node (to make the simulation more realistic). If the
vehicle has already gone past the bridge then this code is not used.
% Get effective load vector. Vcurrent = Vs(:,tidx); Peff = Pvehicle + ... Cglobal * ((2/Tdelta).*Vcurrent + Vdotcurrent) + ... Mglobal * ((4/Tdelta^2).*Vcurrent + (4/Tdelta).*Vdotcurrent +
Vdotdotcurrent);
Then the effective load vector is calculated, based on the displacements (and derivatives of the
displacements) as per the plane truss model.
% Solve for next displacements. % We have to solve % SUP' Keff SUP Vnext = SUP' Peff % Vnext = inv(SUP' Keff SUP) SUP' Peff % Easy. Vnext_reduced = (SUP'*Keff*SUP) \ (SUP'*Peff); % The answer above is reduced -- set the fixed points to 0. Vnext = zeros(DEG_FREE*NJ, 1);
Then the displacements are solved for (the problem of solving the linear algebra expression is done
using MATLAB’s support for solving such expressions with “matrix division”), as per the plane truss
model.
Vdotcurrent = Vdotnext; Vdotdotcurrent = Vdotdotnext;
Then the next set of displacements and derivatives are calculated as per Newark’s method. After the
end of the simulation, we now have the displacements of all the nodes and thus we can find the
vibration frequency of the structure.
% We don't really care about the angle. The frequency information should be
% contained in both, so whatever (it's non-trivial to use the angle of the
% element a node is connected to becaused nodes can be connected to several
% non-collinear elements).
Ds = 0.5.*Vs(xdegree(1:NJ),:) + 0.5.*Vs(ydegree(1:NJ),:);
One final complication is that we have displacement data in both axes, while for our analysis we would
ideally want to know the vibration in the primary plane of motion. Unfortunately, because each node
has multiple elements linked to it, it is not really feasible to figure out what the primary plane of motion
for each node is (nor is there an obvious plane of motion to choose).
However, we can make a reasonable assumption that the oscillations must be present in both axes
(unless the oscillation is along precisely one axis) and thus by combining the two we can find the
oscillation frequency -- if our 45° guess is off only the amplitude will be wrong (though of course if the
oscillation is precisely perpendicular to our chosen axis we will not detect anything -- but in that case
we can just modify the angle slightly).
4.3. Consideration of Other Methods
Using Finite Element Method:
Difficulty in defining appropriate mesh size, element type
Discretization error due to a mathematical model having infinite degrees of freedom
Using ANSYS:
Correct modelling technique
Requires further validation and consequently adds another layer of complexity
Page 32 of 78
5. Validation Study
The following is a checklist developed to measure up against other methodologies for similar results
for the different steps of the dynamic analysis. The numerical model serves as the reference model
because the steps are consistent with the
Table 2: Methodology validation checklist.
Task No.
2 Global Mass Matrix N/A
3 Damping Matrix N/A N/A
4 Effective Stiffness Matrix N/A N/A
5 Time Dependent Effective Load Vector N/A N/A
6 Time Dependent Displacement Vector N/A
7 Displacement Plot N/A
5.1. Validation Methods
As a means of validating the MATLAB code our group has utilised three methods of approach they
are as follows:
2. Strand7 (A commercial software package).
3. SAP2000 (A commercial software package).
Validation plays a crucial part in the development of our program, as it allows us to confirm that our
code works or at least produces comparable answers, or it shows that there is an issue in our code
which requires more attention. It is for this reason that a lot of thought went into the validation methods,
as the group determined that the code be validated using two unique tools to determine if the program
we created works.
All methods of validation were chosen carefully for different reasons, a numerical analysis was
specifically used to ensure that the code within the program followed the correct steps in attaining the
displacement and thus frequency. Hand Calculations were performed using Microsoft Excel to simplify
the process and ensure human error was minimised.
Page 33 of 78
The reasoning behind the use of a commercial grade software package, in this case Strand7 and
SAP2000, was that code and program required validation using an uninfluenced and external tool. As
the hand calculations, MATLAB code, and GUI were all created together there is a very real possibility
that any mistakes that were made, were made in each, and so validation using just hand calculations
would be null and void. This highlights the need for a validation approach that is not influenced by the
group’s developing understanding of performing a dynamic analysis as well as learning to create a
program using MATLAB code.
As each parametric study is performed, so to it must be performed in Strand7 and SAP2000. Even if
the MATLAB code does not output accurate displacement values, it is important to ensure that when
a variable is changed its effect is recorded and is accurate to how the structure would behave in
reality. Thus, Strand7 has been used to provide an accurate representation of the relationship
between variables and the structures dynamic response, and to determine if the MATLAB output has
s similar response to any changes in variables. For example, if the load is changed the amplitude of
the resulting graph is affected. Strand7 has then been used to determine if the MATLAB code records
the change in amplitude.
5.2. Validation: Numerical Analysis
The validation of the MATLAB coding can be undertaken by comparing the results from numerical
analysis to that of the MATLAB output. The reason for comparing the results from MATLAB to that of
a numerical analysis is to ensure that the code follows the steps as defined in the previous section of
this report. The code needs to automate the process, whereas the numerical analysis allows for each
step to be performed and checked accordingly
The numerical analysis output is comprised of the following:
1. Global stiffness matrix
2. Global mass matrix
5. Time depend load vector
The matrices formed by the MATLAB code as well as the final displacement values have been
compared to the outputs and matrices formed in the numerical analysis. The difference between the
results of the numerical analysis and MATLAB code are found in the following figures, and include a
comparison between the global stiffness matrices, global mass matrices, damping matrices, effective
stiffness matrices, and time dependent load vectors.
Page 34 of 78
Figure 32: Comparison between the global stiffness matrix from numerical and MATLAB.
Figure 33: Comparison between the global mass matrix from numerical and MATLAB.
Figure 34: Comparison between the damping matrix from numerical and MATLAB.
Figure 35: Comparison between the effective stiffness matrix from numerical and MATLAB (no damping).
Page 35 of 78
Figure 36: Comparison between the effective stiffness matrix from numerical and MATLAB (damping).
It becomes apparent using the previous comparisons as to how similar the each matrix is and how for
the most part there is either no or negligible difference between the two approaches. The error and
change is likely a result due human error in how a values was rounded, or possibly how Microsoft
Excel and MATLAB store numbers.
Figure 37: Time dependent load matrix from MATLAB at v=50km/h, W=50kN.
Figure 38: Time dependent load matrix from numerical analysis at v=50km/h, W=50kN.
According to Figure 35 and 36, the time dependent load vector is created as the car velocity is 50
km/h, car weight is 50 kN and time increment is 0.1 second. It is becomes apparent that the results
from the two approaches are identical.
Page 36 of 78
Figure 39: The deformation results from numerical analysis (left) and MATLAB (right).
Finally, to validate the code for the dynamic analysis, the effective stiffness is used for the numerical
analysis, and it is expected and confirmed that the MATLAB code and numerical approach produce
the same values, as demonstrated in Figure 37 above. With the code proven to follow the correct
steps as set out in Section 4 of this report the output requires further validation against a commercial
grade software.
5.3. Validation: Using Commercial Software
The group originally planned to use Strand7 to validate the MATLAB code and GUI, as it was
guaranteed that the moving load and dynamic analysis modules were available to students. Strand7
was also chosen as it was known to use the Newmark Beta method to find the time dependant
response of a structure.
With Strand7 in mind, a model was created and a dynamic analysis was run. It was found that the
displacements did not match that of the MATLAB programs output. The group came to the consensus
that it was likely that the Strand7 model was incorrect, likely due to inexperience modelling a moving
load, as well as some other custom parameters.
As little progress was made in fixing the Strand7 model, a decision was made to develop the model
in SAP2000 in conjunction with Strand7. By doing so it would become clear as to where the error lies.
The SAP2000 model proved that the group’s assumption were correct and that the MATLAB code
Page 37 of 78
was outputting the correct displacements over time. There have been attempts to rectify the Strand7
model to understand where the error lies. For a comparison between the Strand7 and SAP2000
outputs please refer to Appendix C and Appendix D of this report.
6. Parametric Study
Parametric study is a description and examination of relationships between different types of
parameters. The input boxes which we created through our MATLAB code and GUI gives us different
results. With any change of input, it is expected that there will be a corresponding change in the output
of our vibration analysis of the bridge. In this section we will be showing and explaining how changes
in inputs can affect the outcome of our results. If we make changes in the speed and weight of the
moving object, cross sectional area of the truss, density and number of jumps, a parametric study
shall allow us to examine the different effects changing these parameters will cause.
6.1. Vehicle Velocity
Figure 40: The vertical deflection for DOF 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, and 24 at v=30 km/h, m=1.5t.
Page 38 of 78
Figure 41: The vertical deflection for DOF 14 at v=30 km/h, m=1.5t (undamping).
Figure 42: Vibration of DOF 14 at v=45 km/h, m=1.5t (undamping).
Page 39 of 78
Figure 43: Vibration of DOF 14 at v=50 km/h, m=1.5t (undamping).
Figure 44: Vibration of DOF 14 at v=60 km/h, m=1.5t (undamping).
A change in a parameter whether that be of the structure or loading can result in a different output or
value, affecting values such as frequency, bridge acceleration, dynamic amplification factor, etc.
Figures 40 to 45 shows the different displacement time graph which we obtained from our MATLAB
code. The vibration graph is of different speeds, 30km/h, 40km/h and 50km/h respectively. It can be
clearly seen from the graphs that as speed increases of the object the displacement reaches its peak
point, it can be noted from the above graphs that velocity at 30km/h and 50km/h has a smoother
graph. We were all quiet amused when we got the vibration graph for 40km/h, we were expecting it
to be similar to the velocity of 30km/h and 50km/h with a little bit of difference, this shows that there
is a slight error in our validation code. We have been unsuccessful in finding the source of the error
as of yet.
6.2. Damping
Damping is described as the process of suppressing vibrations or oscillations and this is essentially
what adding a damping ratio does. It plays a vital role in determining the time taken for the truss to
dampen, and we can intuitively expect that a higher damping ratio will cause the truss to dampen
quicker than ones with a lower ratio. This can be shown in the figures below.
In the No Damping Scenario, the damping ratio has been set to zero. This means that the structure
will freely vibrate forever as it is displayed. The peak amplitudes do not change as time goes on, nor
does the frequency but this isn’t realistic in the real world where a variety of resistive factors will cause
a truss to slow down its vibration. In many dynamic systems, damping plays an important role in
ensuring a structures stability. The figure beneath this is the Damping Scenario which illustrates the
effects of the vibration once we have added a damping value. The results show a slow decay of the
vibrations which is why graphical output appears in this form. It begins with a large peak before slowly
reducing until it eventually becomes static with zero displacement.
As we expected before assessing the truss, it is clear from this, that a large damping coefficient will
further increase the rate of decay of the free vibrations and have it come to rest sooner.
Page 41 of 78
Figure 45: The vertical deflection for DOF 14 at v=30 km/h, m=1.5t (damping).
Figure 46: The vertical deflection for DOF 14 at v=30 km/h, m=1.5t (undamping).
Page 42 of 78
6.3. Vehicle Weight
Figure 47: Vibration of DOF 14 at v=50 km/h, m=11.5t (undamping).
Figure 48: Vibration of DOF 14 at v=50 km/h, m=1.5t (undamping).
An influential part of our dynamic analysis results is the magnitude of the load, or when considering it
in practise, the weight of the vehicle travelling over the bridge. This study has been carried out at the
centre of the truss in order to analyse the structure at the point of the largest deflection. It can be seen
that the increase in the mass of the vehicle ultimately increases the deflection on that node. Ultimately
the amplitude of the displacement vs time graph increases although when considering the frequency
of the node, it remains the same. Our MATLAB program simulating the principal that the mass only
affects the amplitude of the displacement vs time graph and not the frequency is somewhat in itself a
validation as research states that this is the case.
Page 43 of 78
When analysing these results, we have also taken note of the first maximum displacement that occurs,
both mass analysis’ being at the same time. To check whether this is accurate or not, we have simply
applied the Time = Distance/Speed. At a speed of 50 km/h or 13.9 m/s, and a distance of 12m, the
weight should be directly over the node at 0.8seconds into the analysis which can be seen as being
the case within our analysis.
Figure 49: The vertical deflection at DOF 4, 6, 8, 10, 12,14, 16,18, 20, 22 and 24 at v=50km/h, m=1.5t.
Figure 50: The vertical deflection of DOF 4, 6, 8, 10, 12,14, 16,18, 20, 22 and 24 at v=50km/h, m=11.5t.
As can be seen within the time history plot of all the notes and their respective displacements, it is
evident that the nodal deflections are periodic whilst each node reaching their peak at the same time.
The structure or this analysis can be said to be vibrating in the first mode being associated with the
longest period and highest displacement. This is ultimately useful as the first mode will provide the
most useful information in order for design requirements within real world applications.
Page 44 of 78
6.4. Time Intervals
The time increment of 0.1 and 0.01 second are selected to observe the change of the smoothness of
the curve. The line graphs are plotted in MATLAB. In order to get an in-depth view the graphs are
magnified at the time that the minimum deflection occur is observed, as shown in Figures 51 to Figure
58 below.
It is noticeable that the graph created with the time of 0.01 second is smoother compared to the one
with the time increment of 0.1 second. In 0.1 second, there are 10 points in graph created by the time
increment of 0.01 second whereas there are only 2 points in the one formed by the time increment of
0.1 second. Additionally, from Figure 51 and Figure 52, the wavelength are somewhat different. The
evidence is that, at the time between 9 to 10 second, the line graph with 0.1 second does not reach
the peak while the one created by 0.01 second reach the peak.
Figure 51: The vertical deflection at DOF 14 at v = 30km/h, m=1.5t, h=0.1s (undamping).
Figure 52: The vertical deflection at DOF 14 at v = 30km/h, m=11.5t, h=0.01s (undamping).
Page 45 of 78
Figure 53: The zoomed minimum vertical deflection at DOF 14 at v = 30km/h, m=11.5t, h=0.01s (undamping).
Figure 54: The zoomed minimum vertical deflection at DOF 14 at v = 30km/h, m=11.5t, h=0.1s (undamping).
Figure 55: The vertical deflection at DOF 14 at v = 45km/h, m=1.5t, h=0.1s (undamping).
Page 46 of 78
Figure 56: The vertical deflection at DOF 14 at v = 45km/h, m=1.5t, h=0.01s (undamping).
Figure 57: The zoomed first peak at DOF 14 at v = 45km/h, m=1.5t, h=0.1s (undamping).
Figure 58: The zoomed first peak at DOF 14 at v = 45km/h, m=1.5t, h=0.01s (undamping).
Page 47 of 78
6.5. Elastic modulus
Aluminium is selected to observe the vibration behaviour. The elastic modulus of the aluminium is 6.5
x 107 kN/m2 which is lower compared to elastic modulus of the steel of 2x108 kN/m2.
Figure 59: The vertical deflection at DOF 4, 6, 8, 10, 12,14, 16,18, 20, 22 and 24 at v=30km/h, m=1.5t (aluminium).
Figure 60: The vertical deflection at DOF 4, 6, 8, 10, 12,14, 16,18, 20, 22 and 24 at v=30km/h, m=1.5t (steel).
According to Figures 59 and 60 above, the maximum and minimum deflection of the aluminium are
higher compared to the steel. The frequency of the vibration of the steel is higher. The number of
oscillations in the vibration of the steel is 9 whereas there is only 5 in the aluminium. From that
observation, it could be determined that the lower elastic modulus yields high deflection and that the
frequency is lower compared to the vibration of the stiffer material.
Page 48 of 78
6.6. Frequency
The frequency result have been yielded from above load cases and are displayed on this table below:
Table 3: Comparison between different frequencies at different load cases.
From this observation, we can draw to a few conclusions:
Changes in mass under same velocity does not affect the frequency of the structure
Increase in velocity will increase the frequency of the structure
Increase in damping will decrease the frequency of the structure (not all cases)
6.7. Using Fourier Analysis
In our analysis, we have plotted periodograms, which are fundamentally the same as a Fourier
transform but with slightly different y-values. Rather than being the amplitude of each sinusoid, it’s
the “power spectral density” – which allows you to take a range of frequencies and (by looking at the
area under the curve in that slice) calculate how much of the overall power was contributed by that
frequency range. We do not use that data for this analysis, but it is still a very useful method of plotting
Fourier transforms.
In each plot, we have highlighted the peak, which corresponds to the strongest signal contributing to
the data. The x-value tells us the precise frequency of this signal. In our case, the signal is decaying
(which in Fourier space is represented by a wider peak with longer tails – a perfect sine wave would
be represented by a single thin peak).
There are several hypotheses that can be made about the vibration of a truss in our configuration,
and these can be verified by observing properties of the Fourier transform.
In our simulation, there is a single moving mass (at constant velocity) without any other
external forces. Thus, it is fairly reasonable to hypothesise that the vibration will only have a
single primary vibration frequency – which would be represented in Fourier space as a single
peak. All of our plots have a single peak, validating this prediction.
Since the vibration of the truss has a single source, and all of the nodes are fairly strongly
interconnected, it is also reasonable to hypothesise that all of the non-fixed nodes (fixed nodes
Page 49 of 78
won’t vibrate at all) will vibrate with the same primary vibration frequency. When plotting the
Fourier transform of all node vibrations on the same plot, it’s clear they have a peak at the
same (or very similar) frequency, validating this prediction.
It is also expected that the mass of the truck should only affect the intensity of the vibration
not the frequency (an analysis and justification of this is given in a later section). When plotting
and comparing the peak frequencies and running the simulation with different truck masses
but identical velocities, the peaks are all at the same frequency – validating our prediction.
100kg at 60km/h
5000kg at 60km/h
7000kg at 60km/h
Peak frequencies of all nodes with 7000kg at 60km/h. Note that they all have a peak at the same frequency.
Figure 61: Comparison of the peak frequency while varying the truck mass (with a constant velocity). Note that all of the peak frequencies are the same.
Page 50 of 78
1500kg at 40km/h
1500kg at 45km/h
1500kg at 50km/h
1500kg at 55km/h
1500kg at 60km/h
Peak frequencies of all nodes with 1500kg at 60km/h. Note that they all have a peak at the same frequency.
Figure 62: Comparison of the peak frequency while varying the vehicle velocity (with a constant mass). Note that the peak frequencies increase with vehicle velocity.
Page 51 of 78
7. Discussion
7.1. Errors
The displacement results from the MATLAB program are quite significant compared to what would
realistically occur for a truss of a similar size (i.e displacement for a mass of 1500kg at 50km/h cannot
be greater than 0.1m). In a real life engineering scenario, such large displacements would result in
failure of a structure. Testing and debugging with other mentioned software were our approach to
determine the reasons for the results from MATLAB are so large. Our structure takes degrees of
freedom of both x-axis and y-axis into account for the dynamic analysis, which gives out the results
as shown in below figure. If the program only considers degree of freedom from x-axis and ignores
the ones from y-axis, the displacement vs time graph would be relatively less. However, considering
only one axis’s degree of freedom means the results could be inaccurate in terms of structural analysis
and hence the decision to go with our original approach was made.
Figure 63: The vertical deflection for DOF 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, and 24 at v=50 km/h, m=1.5t.
Discretization errors between the mathematical model vs. physical model as such that the
macro elements (i.e. connections, voids, geometric irregularities) are ignored.
Discretization errors between standard mesh size vs. refined mesh size
Human errors: understanding the scope of the problem, entering incorrect data when
analysing the model
Not accounting the strength of the structure, in other words the dynamic analysis may be
correct but under nominated conditions, the structure will fail due to lack of representation of
the physical model
MATLAB code difficult.
Page 52 of 78
Error with obtaining the frequency result due to insufficient validity of the MATLAB GUI
program.
Slightly different model; i.e. material and section were specified in the commercial software
whereas MATLAB did not
It is important to note that because we do not have data from real life model, there is no empirical
data to compare to and therefore, the assumption that the obtained results are false are purely
speculation.
7.2. Improvements
Throughout the development cycle of the MATLAB program, many aspects and functionality of the
program have made significant improvements. The preliminary build of the program meet the
requirements for obtaining the results on the scope but there were several aspects of the program
that made it non-applicable to diverse range of problems or it did not capture real world problems.
When designing the form, key criterias were taken into consideration:
The program must be user-friendly (easy to use and be able to change most parameters)
The program must offer a range of input for user to customise allowing control over how the
model is to be created (i.e. nodes, material properties, velocity, mass, damping, etc.
The program must be able to save and load data for convenience purposes.
The program must be visually appealing with a range of options but at the same time, must
not be cluttered and confusing for the user.
Table 4: Improvements between preliminary and final build of GUI program.
Preliminary Build Final Build
Incomplete GUI functions, thus the computing time is slow;
Reads data from “.txt” file; Outputs result into “.txt” file; Graphic output such as plots via MS Excel; Does not consider damping properties;
Improved code sequence resulting a much faster computing time;
Improved form layout for ease of access; User input directly on the GUI; User has control over which node for
analysis; Has the ability to display graphical results
directly on the form; Has the ability to analyse both damped and
undamped cases;
7.2.1. Alternate Bridge Structure Analysis In its current state, the code that has been created is made in a way that it is only able to analyse
truss sections and provide a vibration analysis for a structure with same section types. In a real world
scenario, a bridge will be of course made up of multiple different types of sections. These different
types may include structures like a simple beam bridge or a cable stayed bridge. In order to create a
Page 53 of 78
code that can run an analysis to determine vibration of a structure, other structures must be
implemented. The main difference that the code would be required to adjust is the fact that the nodes
of the truss system do not experience moments. In order to expand the flexibility of the code, a feature
we would like to add is the ability to choose between different systems, such as a truss or a non-truss
systems in order to analyse the structure with or without moments.
Applying these features to the code would potentially require the selection of beam or bar elements.
Beam elements experiencing shear forces and bending moments contrast to bar elements which only
includes axial forces (current form of analysis). This change would require the code to analyse each
member with 6 degrees of freedom rather then 4 (3 degrees of freedom for each node rather then 2).
From this point, another factor that would have to be taken into consideration is the type of beam or
how the beam will be analysed, as a Timoshenko beam or a Euler-Bernoulli beam element. This
significant difference between these two approaches is the inclusion of shear deformation which
Timoshenko takes into consideration. Ideally, future variations of this code would include the
applicability of both these approaches, allowing it to be a user defined variable.
Figure 64: difference between Euler Bernoulli and Timoshenko (Habituating FEA 2013)
7.2.2. Alternate Load Cases One of the most influential factors of the code as well as its results is the load that is being used for
the dynamic analysis. As the project brief stated, the load the bridge is subjected to is a singular point
load travelling at between 30-60 km/h. From this, the team has assumed that the load experiences
no acceleration and is ultimately travelling at a constant velocity. This has a number of implications,
travelling at 0 acceleration essentially means that there is no horizontal load that is being applied to
the bridge and ultimately means that the program only considers vertical vibration of the nodes rather
than horizontal. In actuality this is not indicative of a real life situation as vehicles will be constantly
Page 54 of 78
accelerating and decelerating. Future variations of this program would then include acceleration within
the program in order to make the code more flexible and applicable to real life situations.
In conjunction to horizontal acceleration, adjusting the load itself will provide a more realistic program.
Adjusting the point load to 4 point loads or a certain number of point loads based on a vehicle profile
will provide a more accurate program. Ideally, the program will include a vehicle input type, having a
list of different vehicle types that can be chosen from which each type of vehicle being specified a
certain weight and wheel distribution. In conjunction to this, including multiple lanes with multiple
vehicles in order to get the most accurate representation of this system.
Page 55 of 78
8. Conclusion
Upon the completion of our project the group has come to develop an understanding as to how to
perform a dynamic analysis, how to apply the finite element method to a computational tool, as well
as learning to collaborate in the development of an engineering program. While the program the group
has created has been successful in multiple ways there is still improvements that need to be made,
as well as errors that requires attention, these have been touched on in the discussion section of this
report, and will need to be addressed before the tool can truly be considered as a reliable way to
determine the frequency of a structure.
Ultimately we feel that we have been successful in creating an engineering tool and accompanying
GUI, that certainly requires further improvement but is also incredibly capable with the ability to view
and plot the time history of any nodes, analyse numerous structures, and is versatile enough to allow
a user to input custom parameters including vehicle mass.
Page 56 of 78
9. Reference
ANSYS n.d., Chapter 1: Overview of Structural Analyses, viewed 1 November 2018,
<http://www.ansys.stuba.sk/html/guide_55/g-str/GSTR1.htm>.
CSI knowledge base 2018, Damping coefficient , viewed 31 October 2018,
,<https://wiki.csiamerica.com/display/kb/Damping+coefficients>.
Erkmen e. 2018, 'Computer Programming for Finite Element Analysis', UTS Online Subject
48371,lecture notes, UTS, Sydney, viewed 1 September 2018,
<https://online.uts.edu.au/bbcswebdav/pid-2843939-dt-content-rid-33127648_1/courses/48371-
2018-SPRING-CITY/Supplementary_Notes_3.pdf>.
Erkmen e. 2018, 'Finite Element Method For Plane Truss', UTS Online Subject 48371,lecture notes,
UTS, Sydney, viewed 10 September 2018, <https://online.uts.edu.au/bbcswebdav/pid-2843939-dt-
content-rid-33127646_1/courses/48371-2018-SPRING-CITY/Supplementary_Notes_1.pdf>.
Erkmen e. 2018, 'Lecture 10', UTS Online Subject 48371,lecture notes, UTS, Sydney, viewed 10
September 2018, <https://online.uts.edu.au/bbcswebdav/pid-2843932-dt-content-rid-
33127333_1/courses/48371-2018-SPRING-CITY/Lecture10%287%29.pdf>.
Habituating FEA 2013, ‘Thin Beam vs. Thick Beam’, web block, viewed 4 November 2018,
<http://habituatingfea.blogspot.com/2012/11/thin-beam-vs-thick-beam.html>.
Newton Excel Bach 2009, ‘Frame Analysis with Excel 1 – Single beam’, web block, viewed 4
November 2018, <https://newtonexcelbach.com/2009/01/31/frame-analysis-with-excel-1-single-
<https://www.orcina.com/SoftwareProducts/OrcaFlex/Documentation/Help/Content/html/RayleighDa
mping,Guidance.htm >.
Zhang K., Dearing J. and Sadler J. n.d.,Transient dynamic ,viewd 3 November
2018,<http://www.complexity.soton.ac.uk/theory/_Transient_Dynamics.php>.
The global stiffness matrix
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
8.11E+05 192000 -144000 -192000 -666666.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1.92E+05 256000 -192000 -256000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
-1.44E+05 -192000 954666.7 0 0 0 -666666.7 0 -144000 192000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
-1.92E+05 -256000 0 1012000 0 -500000 0 0 192000 -256000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
-666666.7 0 0 0 1477333 192000 -144000 -192000 -666666.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5
0 0 0 -500000 192000 756000 -192000 -256000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
0 0 -666666.7 0 -144000 -192000 1621333 0 0 0 -666666.7 0 -144000 192000 0 0 0 0 0 0 0 0 0 0 7
0 0 0 0 -192000 -256000 0 1012000 0 -500000 0 0 192000 -256000 0 0 0 0 0 0 0 0 0 0 8
0 0 -144000 192000 -666666.7 0 0 0 1621333 0 -144000 -192000 -666666.7 0 0 0 0 0 0 0 0 0 0 0 9
0 0 192000 -256000 0 0 0 -500000 0 1012000 -192000 -256000 0 0 0 0 0 0 0 0 0 0 0 0 10
0 0 0 0 0 0 -666666.7 0 -144000 -192000 1621333 0 0 0 -666666.7 0 -144000 192000 0 0 0 0 0 0 11
0 0 0 0 0 0 0 0 -192000 -256000 0 1012000 0 -500000 0 0 192000 -256000 0 0 0 0 0 0 12
0 0 0 0 0 0 -144000 192000 -666666.7 0 0 0 1621333 0 -144000 -192000 -666666.7 0 0 0 0 0 0 0 13
0 0 0 0 0 0 192000 -256000 0 0 0 -500000 0 1012000 -192000 -256000 0 0 0 0 0 0 0 0 14
0 0 0 0 0 0 0 0 0 0 -666666.7 0 -144000 -192000 1621333 0 0 0 -666666.7 0 -144000 192000 0 0 15
0 0 0 0 0 0 0 0 0 0 0 0 -192000 -256000 0 1012000 0 -500000 0 0 192000 -256000 0 0 16
0 0 0 0 0 0 0 0 0 0 -144000 192000 -666666.7 0 0 0 1621333 0 -144000 -192000 -666666.7 0 0 0 17
0 0 0 0 0 0 0 0 0 0 192000 -256000 0 0 0 -500000 0 1012000 -192000 -256000 0 0 0 0 18
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -666666.7 0 -144000 -192000 954666.7 0 0 0 -144000 192000 19
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -192000 -256000 0 1012000 0 -500000 192000 -256000 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -144000 192000 -666666.7 0 0 0 1477333 -192000 -666666.7 0 21
0 0 0 0 0 0 0 0 0 0 0 0 0 0 192000 -256000 0 0 0 -500000 -192000 756000 0 0 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -144000 192000 -666666.7 0 810666.7 -192000 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 192000 -256000 0 0 -192000 256000 24
Page 58 of 78
The global mass matrix
The effective stiffness matrix without damping
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
3.00E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 3.00E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
0 0 6.38E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
0 0 0 6.38E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
0 0 0 0 5.63E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5
0 0 0 0 0 5.63E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7
0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8
0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10
0 0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 0 0 0 0 11
0 0 0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 0 0 0 12
0 0 0 0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 0 0 13
0 0 0 0 0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 0 14
0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 0 15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 0 16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 0 17
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.50E+02 0 0 0 0 0 0 18
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.38E+02 0 0 0 0 0 19
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.38E+02 0 0 0 0 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.63E+02 0 0 0 21
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.63E+02 0 0 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.00E+02 0 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.00E+02 24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
9.31E+05 192000 -144000 -192000 -666666.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1.92E+05 376000 -192000 -256000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
-1.44E+05 -192000 1209666.7 0 0 0 -666666.7 0 -144000 192000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
-1.92E+05 -256000 0 1267000 0 -500000 0 0 192000 -256000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
-666666.7 0 0 0 1702333.3 192000 -144000 -192000 -666666.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5
0 0 0 -500000 192000 981000 -192000 -256000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
0 0 -666666.7 0 -144000 -192000 1921333.3 0 0 0 -666666.7 0 -144000 192000 0 0 0 0 0 0 0 0 0 0 7
0 0 0 0 -192000 -256000 0 1312000 0 -500000 0 0 192000 -256000 0 0 0 0 0 0 0 0 0 0 8
0 0 -144000 192000 -666666.7 0 0 0 1921333.3 0 -144000 -192000 -666666.7 0 0 0 0 0 0 0 0 0 0 0 9
0 0 192000 -256000 0 0 0 -500000 0 1312000 -192000 -256000 0 0 0 0 0 0 0 0 0 0 0 0 10
0 0 0 0 0 0 -666666.7 0 -144000 -192000 1921333.3 0 0 0 -666666.7 0 -144000 192000 0 0 0 0 0 0 11
0 0 0 0 0 0 0 0 -192000 -256000 0 1312000 0 -500000 0 0 192000 -256000 0 0 0 0 0 0 12
0 0 0 0 0 0 -144000 192000 -666666.7 0 0 0 1921333.3 0 -144000 -192000 -666666.7 0 0 0 0 0 0 0 13
0 0 0 0 0 0 192000 -256000 0 0 0 -500000 0 1312000 -192000 -256000 0 0 0 0 0 0 0 0 14
0 0 0 0 0 0 0 0 0 0 -666666.7 0 -144000 -192000 1921333.3 0 0 0 -666666.7 0 -144000 192000 0 0 15
0 0 0 0 0 0 0 0 0 0 0 0 -192000 -256000 0 1312000 0 -500000 0 0 192000 -256000 0 0 16
0 0 0 0 0 0 0 0 0 0 -144000 192000 -666666.7 0 0 0 1921333.3 0 -144000 -192000 -666666.7 0 0 0 17
0 0 0 0 0 0 0 0 0 0 192000 -256000 0 0 0 -500000 0 1312000 -192000 -256000 0 0 0 0 18
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -666666.7 0 -144000 -192000 1209666.7 0 0 0 -144000 192000 19
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -192000 -256000 0 1267000 0 -500000 192000 -256000 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -144000 192000 -666666.7 0 0 0 1702333.3 -192000 -666666.7 0 21
0 0 0 0 0 0 0 0 0 0 0 0 0 0 192000 -256000 0 0 0 -500000 -192000 981000 0 0 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -144000 192000 -666666.7 0 930666.67 -192000 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 192000 -256000 0 0 -192000 376000 24
Page 59 of 78
The effective stiffness matrix with damping matrix
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
32432.6667 7680 -5760 -7680 -26666.667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
7680 10246 -7680 -10240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
-5760 -7680 38199.4167 0 0 0 -26666.667 0 -5760 7680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
-7680 -10240 0 40492.75 0 -20000 0 0 7680 -10240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
-26666.667 0 0 0 59104.5833 7680 -5760 -7680 -26666.667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5
0 0 0 -20000 7680 30251.25 -7680 -10240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
0 0 -26666.667 0 -5760 -7680 64868.3333 0 0 0 -26666.667 0 -5760 7680 0 0 0 0 0 0 0 0 0 0 7
0 0 0 0 -7680 -10240 0 40495 0 -20000 0 0 7680 -10240 0 0 0 0 0 0 0 0 0 0 8
0 0 -5760 7680 -26666.667 0 0 0 64868.3333 0 -5760 -7680 -26666.667 0 0 0 0 0 0 0 0 0 0 0 9
0 0 7680 -10240 0 0 0 -20000 0 40495 -7680 -10240 0 0 0 0 0 0 0 0 0 0 0 0 10
0 0 0 0 0 0 -26666.667 0 -5760 -7680 64868.3333 0 0 0 -26666.667 0 -5760 7680 0 0 0 0 0 0 11
0 0 0 0 0 0 0 0 -7680 -10240 0 40495 0 -20000 0 0 7680 -10240 0 0 0 0 0 0 12
0 0 0 0 0 0 -5760 7680 -26666.667 0 0 0 64868.3333 0 -5760 -7680 -26666.667 0 0 0 0 0 0 0 13
0 0 0 0 0 0 7680 -10240 0 0 0 -20000 0 40495 -7680 -10240 0 0 0 0 0 0 0 0 14
0 0 0 0 0 0 0 0 0 0 -26666.667 0 -5760 -7680 64868.3333 0 0 0 -26666.667 0 -5760 7680 0 0 15
0 0 0 0 0 0 0 0 0 0 0 0 -7680 -10240 0 40495 0 -20000 0 0 7680 -10240 0 0 16
0 0 0 0 0 0 0 0 0 0 -5760 7680 -26666.667 0 0 0 64868.3333 0 -5760 -7680 -26666.667 0 0 0 17
0 0 0 0 0 0 0 0 0 0 7680 -10240 0 0 0 -20000 0 40495 -7680 -10240 0 0 0 0 18
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -26666.667 0 -5760 -7680 38199.4167 0 0 0 -5760 7680 19
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7680 -10240 0 40492.75 0 -20000 7680 -10240 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5760 7680 -26666.667 0 0 0 59104.5833 -7680 -26666.667 0 21
0 0 0 0 0 0 0 0 0 0 0 0 0 0 7680 -10240 0 0 0 -20000 -7680 30251.25 0 0 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5760 7680 -26666.667 0 32432.6667 -7680 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7680 -10240 0 0 -7680 10246 24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1579320 345600 -259200 -345600 -1200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
345600 580920 -345600 -460800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
-259200 -345600 1973655 0 0 0 -1200000 0 -259200 345600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
-345600 -460800 0 2076855 0 -900000 0 0 345600 -460800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
-1200000 0 0 0 2884425 345600 -259200 -345600 -1200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5
0 0 0 -900000 345600 1586025 -345600 -460800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
0 0 -1200000 0 -259200 -345600 3218700 0 0 0 -1200000 0 -259200 345600 0 0 0 0 0 0 0 0 0 0 7
0 0 0 0 -345600 -460800 0 2121900 0 -900000 0 0 345600 -460800 0 0 0 0 0 0 0 0 0 0 8
0 0 -259200 345600 -1200000 0 0 0 3218700 0 -259200 -345600 -1200000 0 0 0 0 0 0 0 0 0 0 0 9
0 0 345600 -460800 0 0 0 -900000 0 2121900 -345600 -460800 0 0 0 0 0 0 0 0 0 0 0 0 10
0 0 0 0 0 0 -1200000 0 -259200 -345600 3218700 0 0 0 -1200000 0 -259200 345600 0 0 0 0 0 0 11
0 0 0 0 0 0 0 0 -345600 -460800 0 2121900 0 -900000 0 0 345600 -460800 0 0 0 0 0 0 12
0 0 0 0 0 0 -259200 345600 -1200000 0 0 0 3218700 0 -259200 -345600 -1200000 0 0 0 0 0 0 0 13
0 0 0 0 0 0 345600 -460800 0 0 0 -900000 0 2121900 -345600 -460800 0 0 0 0 0 0 0 0 14
0 0 0 0 0 0 0 0 0 0 -1200000 0 -259200 -345600 3218700 0 0 0 -1200000 0 -259200 345600 0 0 15
0 0 0 0 0 0 0 0 0 0 0 0 -345600 -460800 0 2121900 0 -900000 0 0 345600 -460800 0 0 16
0 0 0 0 0 0 0 0 0 0 -259200 345600 -1200000 0 0 0 3218700 0 -259200 -345600 -1200000 0 0 0 17
0 0 0 0 0 0 0 0 0 0 345600 -460800 0 0 0 -900000 0 2121900 -345600 -460800 0 0 0 0 18
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1200000 0 -259200 -345600 1973655 0 0 0 -259200 345600 19
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -345600 -460800 0 2076855 0 -900000 345600 -460800 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -259200 345600 -1200000 0 0 0 2884425 -345600 -1200000 0 21