You are on page 1of 44

Chapter 5

Vibrations
5.1 Introduction to vibration
The subject of vibration - a subset of dynamics of rigid and deformable bodies - is
dedicated to the study of oscillatory motions of bodies and forces associated with
them.
All physical bodies, and structures made of them, posses the mass and stiffness
and are thus capable of vibration. In certain engineering cases vibration plays a
paramount role, in others it is negligible and is of no interest from a technical point
of view. To decide which type is the problem under consideration is a matter of
vibration analysis and fine engineering judgement.
In this chapter different ways are presented for ascertaining the character of
vibrations in terms of natural frequencies and modes of vibration. A number of
examples of simplified cases of real world structures are treated by basic approaches
of classical mechanics, numerical mathematics and Matlab programming.
The most difficult step in vibration analysis is the process of modelling - it
consists of the creation of a mathematical model of the system or structure to be
considered. The mathematical models fall into two basic categories, i.e. continuous or discrete parameter models. An example of a continuous model is a thin beam
treated according to Bernoulli-Euler hypothesis, an example of a discrete model is
a lattice - a structure composed of mass particles and massless springs. A continuous model leads to partial differential equations while a discrete one to ordinary
differential equations.
In order to understand the behaviour of real systems a series of simplified cases
will be shown and treated in this chapter. Often parts of systems can be treated rigid
and the number of degrees of freedom can thus be reduced. Although all vibrating
systems are subject to damping - since energy is always dissipated - it is often
advantageous to treat systems without damping since in case of small damping the
system behaviour is influenced only slightly.
301

CHAPTER 5. VIBRATIONS

302

We distinguish two general classes of vibration, namely free and forced.


Free vibration occurs when the system vibrates under action of internal forces
only; mathematically the free vibration is fully described by a so-called homogeneous integral of the corresponding equation of motion and numerically leads to the
solution of the generalized eigenproblem that produces eigenvalues and eigenvectors.
Eigenvalues (mathematical entities) directly correspond to eigenfrequencies or
to natural frequencies (mechanical entities) while eigenvectors are natural modes of
vibrations. It can be shown that a discrete system with n degrees of freedom has
n pairs of eigenfrequencies and eigenmodes. Continuous systems have unbounded
spectrum - the number of their natural frequencies and modes of vibrations is infinite. Free vibration of a linear system can always be expressed as a superposition
of all eigenmodes whose amplitudes depend on initial conditions.
Forced vibration takes place under the excitation of external forces. When the
excitation is oscillatory we talk about steady-state vibration, in other cases we talk
about transient vibration.
Assembling the equations of motion is an important step in the process of determination the vibration behaviour of the system. There are several methods for doing that, namely - the free body diagram, the principle of virtual work, Lagrangian
method (equations) and Hamiltonian principle, etc. To find more about these methods see chapter the Dynamics.
In this chapter we will concentrate on methods leading to the determination
of oscillatory motion by analytical and numerical methods. We will devote our
attention to linear systems and to simple 1D cases believing that the understanding
the procedures described here will allow the reader to use them effectively in more
complicated cases as well. A list of books and papers pertinent for the subject is in
the bibliography.
Matlab programs, accompanying the text, are used not only for the computation itself but also for reading. They are not written in the most possible efficient
way, the emphasis is given to the explanation of both mechanics and programming
principles.
The reader of the text is assumed to be familiar with basics of mechanics of
solids, matrix algebra manipulations, standard calculus analysis and with rudiments
of Matlab programming skills.

5.2 Harmonic and periodic motions


One-dimensional harmonic motion of a particle can be described by a sine (or cosine) function of time in the form

u(t) = u0 sin(!t + ')

(5.1)

CHAPTER 5. VIBRATIONS

303

where

u(t)
u0
!
t
'

is the displacement measured in


is amplitude of motion
is angular frequency
is time
is an initial phase, phase constant or epoch

[m],
[m],
[rad/s],
[s],
[rad].

The angular frequency ! is related to the cyclic frequency f by

! = 2f

(5.2)

where f has the dimension [1/s].


When the harmonic motion is related to the rotary motion we can consider f as
revolutions per second and define

n = 60f

[1=min]

(5.3)

as R.P.M. or revolutions per minute.


If we add T to t, then the value of u t must remain unaltered. This requires that
the argument of the sine has been increased by  . From it follows that !T
.
The quantity T is called period and is

()

T = 2!

=2

[s]:

(5.4)

The velocity and acceleration of a harmonic motion are given by derivatives of


displacement with respect to time

u_ (t) = u0 ! cos (!t + ')

and

u(t) = u0 !2 sin(!t + ')

(5.5)

where u0 ! and u0 ! 2 are amplitudes of velocity and acceleration respectively.


The motion is harmonic if it is described by a sine or cosine function in time.
The motion is periodic if it has the same pattern after a period T or after its
integer multiples. For the function describing it we can write u t
u t kT , for

()= ( + )

k = 0; 1; 2; 3; : : :

Combination (superposition) of two harmonic motions being expressed by

u1 = u10 sin(!1t + '1 )

and

u2 = u20 sin(!2 t + '2)

(5.6)

gives a simple harmonic (sinusoidal) wave if and only if their angular frequencies
are the same, i.e. !1 !2 . In such a case

u = u1 + u2 = u0 sin(!t + '0)

(5.7)

CHAPTER 5. VIBRATIONS

304

where

1
u0 = u210 + u220 + 2 u10u20 cos('2 '1) 2 ; ! = !1 = !2;
sin '1 + u20 sin '2 :
'0 = arctan uu10 cos
10 '1 + u20 cos '2

(5.8)
(5.9)

The sum of two harmonic motions with different angular frequencies is not harmonic, i.e. u u1 u2 6 u0
!t '0 . It could, however, be periodic if the
ratio of frequencies is a rational number.
A special case of interest is when the frequencies are slightly different. Let us
consider the motion in the form

= + = sin( + )

u = u1 + u2 = u10 sin(!t) + u10 sin[(! + ")t] :

(5.10)

Simple trigonometric manipulation reveals that


" 

h

"

u = U sin
t = 2 u10 cos 2 t sin ! + 2 t :

(5.11)

The resulting motion could be considered as a sine wave with angular frequency

! "= and with varying amplitude U


u10
" t= . Every time the
amplitude reaches a maximum, there is said to be a beat. Beats are well pronounced
if the difference of frequencies is small, i.e. if "  ! .
Read carefully the following Matlab program VHMharpoh1a.m. Observe the
results shown in Fig. 5.1, Fig. 5.2 and Fig. 5.3. Observe what happens as the input
parameters are varied.

= + 2

% VHMharpoh1a
% addition of harmonic motions
clear
u10=10; u20=20;
om1=0.3;
om2=1.05;
fi1=0.1; fi2=0.4;
t=0:pi/64:12*pi;
u1=u10*sin(om1*t+fi1);
u2=u20*sin(om2*t+fi2);
uv=u1+u2;

=2

%
%
%
%
%
%
%

cos ( 2)

amplitudes
frequencies
phase angles
time range
the first motion
the second motion
add

figure(1)
subplot(3,1,1); plot(t,u1,k); axis(off)
subplot(3,1,2); plot(t,u2,k); axis(off)
subplot(3,1,3); plot(t,uv,k);
title(sum of two periodic motions,fontsize,13);
xlabel(does not generally give a periodic motion,fontsize,13);
print VHMharpohf1.eps -deps

CHAPTER 5. VIBRATIONS

335

Template T2 The Jacobi transformation matrix.


t = 0
for i = 1 to n
t(i,i) = 1
end
c = cos (); s = sin ()
t(p,p) = c; t(p,q) = s; t(q,p) = -s; t(q,q) = c;

The Jacobi method uses the transformation matrix T in the form shown in template T2 with trigonometrical entries in p-th and q -th columns and rows only, with
ones on the diagonal and zeros everywhere else. In each iteration the procedure is
based on such a choice of rotations that leads to zeroing the largest out of out-ofdiagonal element. For details see [25]. The generalized Jacobi method could be
conceived in such a way that the transformation of generalized eigenvalue problem
into a standard form could be avoided. See [2].
A command help eig reveals how to proceed when solving standard and/or
generalized eigenproblem in Matlab.
help eig
EIG
Eigenvalues and eigenvectors.
E = EIG(X) is a vector containing the eigenvalues of a square
matrix X.
[V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a
full matrix V whose columns are the corresponding eigenvectors so
that X*V = V*D.
[V,D] = EIG(X,nobalance) performs the computation with balancing
disabled, which sometimes gives more accurate results for certain
problems with unusual scaling.
E = EIG(A,B) is a vector containing the generalized eigenvalues
of square matrices A and B.
[V,D] = EIG(A,B) produces a diagonal matrix D of generalized
eigenvalues and a full matrix V whose columns are the
corresponding eigenvectors so that A*V = B*V*D.
See also CONDEIG, EIGS.

Solving a vibration problem defined by mass and stiffness matrices M and K


in engineering leads to a generalized eigenvalue problem. Matlab eig command is
then as follows
[V,D] = EIG(K,M),

CHAPTER 5. VIBRATIONS

336

where V is an eigenmode matrix, storing eigenvectors columnwise and D is a


diagonal matrix containing eigenvalues on corresponding diagonal entries. Eigenfrequencies are square roots of eigenvalues and are not stored according to their
magnitudes.

CHAPTER 5. VIBRATIONS

337

5.8.2 Numerical methods for transient problems


Transient problems of solid mechanics in their discretized form are usually described by a system of ordinary second order differential equations. The spatial
domain is usually discretized by finite elements, by which the partial differential
equations of continua in space and time variables are replaced by a system of ordinary differential equations in time. This system is then discretized in time using
various time integration methods.
The aim of computational procedures used for the solution of transient problems
is to satisfy the equation of motion, not continually, but at discrete time intervals
only. It is assumed that in the considered time span h ; tmax i all the discretized
quantities at times ; t; t; t; : : : ; t are known, while the quantities at times
t
t; : : : ; tmax are to be found. The quantity t, being the time step, need not
necessarily be constant throughout the integration process.
Time integration methods can be broadly characterized as explicit or implicit.
Explicit time integration algorithms
Explicit formulations follow from the equations of motion written at time t.
Corresponding quantities are denoted with a left superscript as in the equation of
t Fres . The residual force Fres Fext Fint is
motion written in the form M t q
the difference of external and internal forces.
tD tq
The vector of internal forces can alternatively be written as t Fint
t K t q where M, t D and t K are the mass, viscous damping and stiffness matrices,
respectively and t q, t q and t q are nodal accelerations, velocities and displacements.
In structural solid mechanics problems the mass matrix M does not change with
time.
A classical representative of the explicit time integration algorithm is the central
difference scheme.
If the transient problem is linear, then the stiffness and damping matrices are
constant as well. Substituting the central difference approximations for velocities
and accelerations


+

0  2 3

=

_+

 _

t q_ = t+t q
tq
 = t+t q

t t q = (2t) ;
2 tq + t t q =t2

(5.57)

into the equations of motion written at time t we get a system of algebraic equations
from which we can solve for displacements at time t
t namely Me t+t q Fe
where the effective quantities are

+

Fe = t Fext

Me = M=t2 + D= (2t) ;

K 2M=t2 t q M=t2 D= (2t) t tq:

(5.58)

The last term in the expression for the effective force indicates that the process
is not self-starting. A possible Matlab implementation is as follows.

CHAPTER 5. VIBRATIONS

338

function [disn,veln,accn] = ...


VTRcedif(dis,diss,vel,acc,xm,xmt,xk,xc,p,h)
% central difference method
%
%
%
%
%
%
%
%
%
%
%

dis,vel,acc ...... displacements, velocities, accelerations


at the begining of time step ... at time t
diss ............. displacements at time t - h
disn,veln,accn ... corresponding quantities at the end
of time step ... at time t + h
xm ............... mass matrix
xmt .............. effective mass matrix
xk ............... stiffness matrix
xc ............... damping matrix
p ................ loading vector at the end of time step
h ................ time step

% constants
a0=1/(h*h);
a1=1/(2*h);
a2=2*a0;
a3=1/a2;
% effective loading vector
r=p-(xk-a2*xm)*dis-(a0*xm-a1*xc)*diss;
% solve system of equations for displacements
disn=xmt\r;
% new velocities and accelerations
accn=a0*(diss - 2*dis + disn);
veln=a1*(-diss + disn);
% end of VTRcedif

The process is effective if the mass matrix is made diagonal by a suitable lumping process. The damping matrix needs to be diagonal as well. The inversion of
Me is then trivial and instead of a matrix equation we simply have the set of individual equations for each degree of freedom and no matrix solver is needed.
Stability analysis of explicit and implicit schemes has been studied for a long
time. Park [21] has investigated stability limits and stability regions for both linear
and nonlinear systems. A comprehensive survey showing a variety of approaches is
presented by Hughes in [3]. See also [1].
The explicit methods are only conditionally stable; the stability limit is approximately equal to the time for elastic waves to transverse the smallest element. The
critical time step securing the stability of the central difference method for a linear
undamped system is (see [21]) tcr
=!max being the maximum eigenfrequency,
related to the maximum eigenvalue max of the generalized eigenvalue problem
Kq Mq by !2 . Practical calculations show that the result is also applicable to nonlinear cases, since each time step in nonlinear response can roughly be

 =2

CHAPTER 5. VIBRATIONS

339

considered as a linear increment of the whole solution.


Finding the maximum eigenvalue of the system is an expensive task, especially
in nonlinear cases where eigenvalues of the system change with time and economy
considerations require us to change the time step as the solution evolves. It has
been proved, however, that the maximum eigenvalue of the system is bounded by
the maximum eigenvalue of all the elements assembled in the considered system
(see [9]) which simplifies the problem considerably and permits to march in time
efficiently, using a variable time step. This allows, for example, decreasing the value
of the time step if the system stiffens. The proper choice of time step for explicit
methods was until recently a matter of a judicious engineering judgment. Today,
many finite element transient codes do not rely on the user and calculate the correct
time step automatically.
Explicit time integration methods are employed mostly for the solution of nonlinear problems, since implementing complex physical phenomena and constitutive
equations is then relatively easy. The stiffness matrix need not be assembled so that
no matrix solver is required, which saves computer storage and time. The main disadvantage is the conditional stability, which clearly manifests itself in linear problems, where the solution quickly blows up if the time step is larger than the critical
one. In nonlinear problems results calculated with a wrong step could contain a
significant error and may not show immediate instability.
Implicit time integration algorithms
The implicit formulations stem from equations of motion written at time t
t;
unknown quantities are implicitly embedded in the formulation and the system of
algebraic equations must be solved to free them. In structural dynamic problems
implicit integration schemes give acceptable solutions with time steps usually one
or two orders of magnitude larger than the stability limit of explicit methods.
Perhaps the most frequently used implicit methods belong to the Newmark family. The Newmark integration scheme is based upon an extension of the linear acceleration method, in which it is assumed that the accelerations vary linearly within
a time step.
The Newmark method consists of the following equations [17]

+

M t+t q + t+t D t+tq_ + t+t K t+tq = t+t Fext ;


(5.59)
t+t q = t q + tq_ + 1 t2 (1 2 ) t q
t+t q  ;

+
2

2
(5.60)

t+t q_ = t q_ + t (1 ) t q + t+t q
 ;
 , t+t q_ and t+tq.
which are used for the determination of three unknowns t+t q

The parameters and determine the stability and accuracy of the algorithm and
were initially proposed by Newmark as
= and
= thus securing the
unconditional stability of the method, which means that the solution, for any set of

=14

=12

CHAPTER 5. VIBRATIONS

340

initial conditions, does not grow without bound regardless of the time step. Unconditional stability itself does not secure accurate and physically sound results,
however. See [3], [12], [27].
With the values of and mentioned above, the method is sometimes referred
to as the constant-average acceleration version of the Newmark method, and is
widely used for structural dynamic problems. In this case the method conserves
energy.
For linear problems the mass, damping and stiffness matrices are constant and
the method leads to the repeated solution of the system of linear algebraic equations
at each time step giving the displacements at time t
t by solving the system,
Ke t+tq Fe where the effective quantities are

+

Ke = K + a0 M +a1 D;

Fe = t+tFext + M a0 t q + a2 t q_ + a3 t q + D a1 t q + a4 tq_ + a5 tq
where

(5.61)

a0 = 1= t2 ; a1 = = ( t) ; a2 = 1= ( t) ;


a3 = 1= (2 ) 1; a4 = = 1; a5 = 1 t ( = 2) ;
2
a6 = t (1 ) ; a7 = t :

(5.62)

The last two parameters are used for calculating of the accelerations and velocities
at time t
t


+

t+t q = a t+t q t q
a2 tq_ a3 t q ;
0
t+t q_ = t q_ + a t q
 + a t+t q :

(5.63)

An efficient implementation of the Newmark methods for linear problems requires


that direct methods (e.g. Gauss elimination) be used for the solution of the system of
algebraic equations. The effective stiffness matrix is positive definite, which allows
proceeding without a search for the maximum pivot. Furthermore the matrix is
constant and thus can be factorized only once, before the actual time marching, and
at each step only factorization of the right hand side and backward substitution is
carried out. This makes Newmark method very efficient; the treatment of a problem
with a consistent mass matrix requires even less floating point operations than that
using the central difference method.
A possible Matlab implementation is as follows.
function [disn,veln,accn] = ...
VTRnewmd(beta,gama,dis,vel,acc,xm,xd,xk,p,h)
% Newmark integration method
%
% beta, gama
coefficients
% dis,vel,acc
displacements, velocities, accelerations

CHAPTER 5. VIBRATIONS

341

%
at the begining of time step
% disn,veln,accn
corresponding quantities at the end
%
of time step
% xm,xd
mass and damping matrices
% xk
effective rigidity matrix
% p
loading vector at the end of time step
% h
time step
%
% constants
a1=1/(beta*h*h);
a2=1/(beta*h);
a3=1/(2*beta)-1;
a4=(1-gama)*h;
a5=gama*h;
a1d=gama/(beta*h);
a2d=gama/beta-1;
a3d=0.5*h*(gama/beta-2);
% effective loading vector
r = p + ...
xm*(a1*dis+a2*vel+a3*acc)+xd*(a1d*dis+a2d*vel+a3d*acc);
% solve system of equations for displacements xk
disn=xk\r;
% new velocities and accelerations
accn=a1*(disn-dis)-a2*vel-a3*acc;
veln=vel+a4*acc+a5*accn;
% end of VTRnewmd

Examples of using central difference and the Newmark methods are in 5.10.2.
1 1 2 the method is still unconditionally stable but a
If  12 and
4 2
positive algorithmic damping is introduced into the process. With < 12 a negative damping is introduced, which eventually leads to an unbounded response. With
different values of parameters , , the Newmark scheme describes a whole series
of time integration methods, which are sometimes called the Newmark family. For
1
1 , it is a well known Fox-Goodwin formula, which
example if
12 and
2
1
is implicit and conditionally stable, else if
, then the Newmarks
2 and
method becomes a central difference method, which is conditionally stable and explicit.
The algorithmic damping introduced into the Newmark method, by setting the
1 1 2 is freparameter < 12 and calculating the other parameter as
4 2
quently used in practical computations, since it filters out the high-frequency components of the mechanical systems response. This damping is generally viewed as
desirable, since the high-frequency components are very often mere artifacts of finite element modelling, they have no physical meaning and are consequences of the
discrete nature of the finite element model and its dispersive properties. See [19].
It is known that algorithmic damping adversely influences the lower modes in
the solution. To compensate for the negative influence of algorithmic damping on

=0

CHAPTER 5. VIBRATIONS

342

the lower modes behaviour Hilber [11], Hilber and Hughes [10] modified Newmark
method with the intention of ensuring adequate dissipation in the higher modes and
at the same time guaranteeing that the lower modes are not affected too strongly.
The results of detailed numerical testing of Hilber and classical Newmark integration methods appear in [18].
A comprehensive survey of the algorithmizations of Newmark methods and also
of other implicit integration methods is presented in [27].
Matlab offers very efficient tools for the integration of ordinary differential
equations of the first order. They are based on Runge-Kutta methods (see [13]) of
different orders with an automatic choice of the time step. Use Matlab commands
help ODEFILE and
ODE23, ODE45, ODE113, ODE15S, ODE23S, ODE23T, ODE23TB
options handling:
ODESET, ODEGET
output functions:
ODEPLOT, ODEPHAS2, ODEPHAS3, ODEPRINT
odefile examples:
ORBITODE, ORBT2ODE, RIGIDODE, VDPODE

for more details.


An example showing a possible use of Matlab build in procedure named ode45
for the solution of the forced vibration of an one-degree-of-freedom system with
prescribed initial conditions is provided by the program VTRtode.m and functional
procedure vtronedofnum.m.
Using ode procedures one has to rewrite each differential equation of the second
order into a system of two differential equations of the first order. In our case we
could proceed as follows

mx + bx_ + kx = A sin(!t):


(5.64)
Defining
2 = k=m, B = b=m and A0 = A=m we have
x + B x_ +
2 x = A0 sin(!t):
(5.65)
Introducing a new variable z = x_ we get two first order differential equations in-

stead of (5.65), namely

x_ = z;
z_ = Bz
2 x + A0 sin(!t):

(5.66)

Renaming variables so that they form a vector by

we finally have

y1 = x;
y2 = z:

(5.67)

y_1 = y2;
y_2 = By2
2 y1 + A0 sin(!t):

(5.68)

CHAPTER 5. VIBRATIONS
% VTRtode
% test ode procedure for one dof ... see vtronedofnum.m
% m*xddot + b*xdot + k*x = A*sin(omega*t)
% xddot = -b*xdot/m - k*x/m + A*sin(omega*t)/m
% xddot = -B*xdot -OMEGA2*x + A0*sin(omega*t)
% lets introduce
% xdot = z; xddot = zdot;
% then
% zdot = -B*z -OMEGA*x + A0*sin(omega*t)
% define new variables
% y1 = x ... displacement
% y2 = z ... velocity
% and finally we have two ordinary diff. equations
% ydot1 = y2
% ydot2 = -B*y2 - OMEGA*y1 + A0*sin(omega*t)
%
clear
y0 = [1 0];
% initial conditions
tspan = [0 2.5];
% time domain
m = 400;
% mass
k = 60000;
% stiffness
b = 1000;
% damping coeff
B = b/m;
OMEGA2 = k/m;
% square of natural frequency
% f = 2;
% excitation frequency in Hz
% omega = 2*pi*f;
% corresponding circular frequency
omega = 10*sqrt(OMEGA2);
A0 = 1000;
% amplitude
[t,y]=ode45(vtronedofnum,tspan,y0,[],B,OMEGA2,A0,omega);
figure(1)
subplot(2,1,1); plot(t,y(:,1),k,linewidth,2);
title(displacement);grid
subplot(2,1,2); plot(t,y(:,2),k,linewidth,2);
title(velocity);grid
[omega sqrt(OMEGA2)]
print VTRtode -deps; print VTRtode -dmeta
% end of VTRtode
function dy = vtronedofnum(t,y,flag,B,OMEGA2,A0,omega);
% define the ode equation of the second order
% m*xddot + b*xdot + k*x = A*sin(omega*t)
% xddot = -b*xdot/m - k*x/m + A*sin(omega*t)/m
% xddot = -B*xdot -OMEGA2*x + A0*sin(omega*t)
% lets introduce
% xdot = z
% then
% zdot = -B*z -OMEGA2*x + A0*sin(omega*t)
% define new variables
% ydot1 = y2

343

CHAPTER 5. VIBRATIONS
%
%
%
%
%
%

344

ydot2 = -B*y2 - OMEGA2*y1 + A0*sin(omega*t)


define new variables
y1 = x ... displacement
y2 = z ... velocity
and finally we have two ordinary diff. equations
whose matlab interpretation is

dy = zeros(2,1);
dy(1) = y(2);
dy(2) = -B*y(2) - OMEGA2*y(1) + A0*sin(omega*t);
% end of vtronedofnum

The output of VTRtode is in Fig. 5.15


displacement
1.5
1
0.5
0
0.5
1

0.5

1.5

2.5

1.5

2.5

velocity
20
10
0
10
20
30

0.5

Figure 5.15: Particle displacement and velocity of the one-degree-of freedom system - numerical solution by ode45 procedure

You might also like