** **

## 5.5 Introduction to vibration of systems with many degrees of freedom

The simple 1DOF systems analyzed in the preceding section are very helpful to develop a feel for the general characteristics of vibrating systems. They are too simple to approximate most real systems, however. Real systems have more than just one degree of freedom. Real systems are also very rarely linear. You may be feeling cheated are the simple idealizations that you get to see in intro courses really any use? It turns out that they are, but you can only really be convinced of this if you know how to analyze more realistic problems, and see that they often behave just like the simple idealizations.

The motion of systems with many degrees of freedom, or nonlinear systems, cannot usually be described using simple formulas. Even when they can, the formulas are so long and complicated that you need a computer to evaluate them. For this reason, introductory courses typically avoid these topics. However, if you are willing to use a computer, analyzing the motion of these complex systems is actually quite straightforward in fact, often easier than using the nasty formulas we derived for 1DOF systems.

This section of the notes is intended mostly for advanced students, who may be insulted by simplified models. If you are feeling insulted, read on…

**5.5.1 Equations of motion for undamped
linear systems with many degrees of freedom**.

We always express the equations of motion for a system with many degrees of freedom in a standard form. The two degree of freedom system shown in the picture can be used as an example. We won’t go through the calculation in detail here (you should be able to derive it for yourself draw a FBD, use Newton’s law and all that tedious stuff), but here is the final answer:

To solve vibration problems, we always write the equations of motion in matrix form. For an undamped system, the matrix equation of motion always looks like this

where
**x **is a vector of the variables
describing the motion,** ** **M **is
called the ‘mass matrix’ and **K** is
called the ‘Stiffness matrix’ for the system.
For the two spring-mass example, the equation of motion can be written
in matrix form as

For
a system with two masses (or more generally, two degrees of freedom), **M **and **K** are 2x2 matrices. For a
system with *n *degrees of freedom,
they are *n*x*n* matrices.

The spring-mass system is linear. A nonlinear system has more complicated equations of motion, but these can always be arranged into the standard matrix form by assuming that the displacement of the system is small, and linearizing the equation of motion. For example, the full nonlinear equations of motion for the double pendulum shown in the figure are

Here,
a single dot over a variable represents a time derivative, and a double dot
represents a second time derivative (i.e. acceleration). These equations look
horrible (and indeed they are the motion of a double pendulum can even be
chaotic), but if we assume that if ,
,
and their time derivatives are all small, so that terms involving squares, or
products, of these variables can all be neglected, that and recall that and for small *x*,
the equations simplify to

Or, in matrix form

This is again in the standard form.

Throughout
the rest of this section, we will focus on exploring the behavior of systems of
springs and masses. This is not because
spring/mass systems are of any particular interest, but because they are easy
to visualize, and, more importantly ** the equations of motion for a spring-mass
system are identical to those of any linear system**. This could include a realistic mechanical
system, an electrical system, or anything that catches your fancy. (Then again, your fancy may tend more towards
nonlinear systems, but if so, you should keep that to yourself).

**5.5.2 Natural frequencies and mode
shapes for undamped linear systems with many degrees of freedom**.

* *

First, let’s review the definition of natural frequencies and mode shapes. Recall that we can set a system vibrating by displacing it slightly from its static equilibrium position, and then releasing it. In general, the resulting motion will not be harmonic. However, there are certain special initial displacements that will cause harmonic vibrations. These special initial deflections are called mode shapes, and the corresponding frequencies of vibration are called natural frequencies.

The natural frequencies of a vibrating system are its most important property. It is helpful to have a simple way to calculate them.

Fortunately, calculating natural frequencies turns out to be quite easy (at least on a computer). Recall that the general form of the equation of motion for a vibrating system is

where **x **is a time dependent vector that describes the motion, and **M **and **K** are mass and stiffness matrices. Since we are interested in
finding harmonic solutions for **x**, we
can simply assume that the solution has the form ,
and substitute into the equation of motion

The
vectors **u** and scalars that satisfy a matrix equation of the form are called ‘generalized eigenvectors’ and
‘generalized eigenvalues’ of the equation.
It is impossible to find exact formulas for and **u**
for a large matrix (formulas exist for up to 5x5 matrices, but they are so
messy they are useless), but MATLAB has built-in functions that will compute
generalized eigenvectors and eigenvalues given numerical values for **M** and **K**.

The special values of satisfying are related to the natural frequencies by

The
special vectors **X** are the ‘Mode
shapes’ of the system. These are the
special initial displacements that will cause the mass to vibrate
harmonically.

If you only want to know the natural frequencies (common) you can use the MATLAB command

d = eig(K,M)

This
returns a vector d, containing all the values of satisfying (for an *n*x*n* matrix, there are usually *n* different values). The natural frequencies follow as .

If you want to find both the eigenvalues and eigenvectors, you must use

[V,D] = eig(K,M)

This returns two matrices, V and D. Each column of the
matrix V corresponds to a vector **u **that
satisfies the equation, and the diagonal elements of D contain the
corresponding value of . To extract the ith frequency and mode shape,
use

omega = sqrt(D(i,i))

X = V(:,i)

For example, here is a MATLAB function that uses this function to automatically compute the natural frequencies of the spring-mass system shown in the figure.

function [freqs,modes] = compute_frequencies(k1,k2,k3,m1,m2)

M = [m1,0;0,m2];

K = [k1+k2,-k2;-k2,k2+k3];

[V,D] = eig(K,M);

for i = 1:2

freqs(i) = sqrt(D(i,i));

end

modes = V;

end

You could try running this with

>> [freqs,modes] = compute_frequencies(2,1,1,1,1)

This gives the natural frequencies as , and the mode shapes as (i.e. both masses displace in the same direction) and (the two masses displace in opposite directions.

If
you read textbooks on vibrations, you will find that they may give different
formulas for the natural frequencies and vibration modes. (If you read a lot of
textbooks on vibrations there is probably something seriously wrong with your
social life). This is partly because
solving for and **u**
is rather complicated (especially if you have to do the calculation by hand), and
partly because this formula hides some subtle mathematical features of the
equations of motion for vibrating systems.
For example, the solutions to are generally *complex *( and **u**
have real and imaginary parts), so it is not obvious that our guess actually satisfies the equation of
motion. It turns out, however, that the equations
of motion for a vibrating system can always be arranged so that **M** and **K** are symmetric. In this
case and **u **are
real, and is always positive or zero. The old fashioned formulas for natural frequencies
and vibration modes show this more clearly.
But our approach gives the same answer, and can also be generalized
rather easily to solve damped systems (see Section 5.5.5), whereas the
traditional textbook methods cannot.

** **

**5.5.3 Free vibration of undamped linear
systems with many degrees of freedom**.

As
an example, consider a system with *n*
identical masses with mass *m, *connected
by springs with stiffness *k*, as shown
in the picture. Suppose that at time *t=0* the masses are displaced from their
static equilibrium position by distances ,
and have initial speeds . We would like to calculate the motion of each
mass as a function of time.

It
is convenient to represent the initial displacement and velocity as *n *dimensional vectors **u **and **v**, as

,
and . In addition, we must calculate the natural
frequencies and mode shapes ,
*i=1..n* for the system. The motion can then be calculated using the
following formula

where

Here,
the dot represents an *n *dimensional
dot product (to evaluate it in matlab, just use the dot() command).

This
expression tells us that the general vibration of the system consists of a sum
of all the vibration modes, (which all vibrate at their own discrete
frequencies). You can control how big
the contribution is from each mode by starting the system with different
initial conditions. The mode shapes ** **have the curious property that the dot
product of two different mode shapes is always zero ( **,
**etc) so you can see that if the initial displacements
**u** happen to be the same as a mode
shape, the vibration will be harmonic.

The
figure on the right animates the motion of a system with 6 masses, which is set
in motion by displacing the leftmost mass and releasing it. The graph shows the displacement of the
leftmost mass as a function of time.
You can download the MATLAB code for this computation here, and see how
the formulas listed in this section are used to compute the motion. The program will predict the motion of a
system with an arbitrary number of masses, and since you can easily edit the
code to type in a different mass and stiffness matrix, it effectively solves *any* transient vibration problem.

**5.5.4 Forced vibration of lightly damped
linear systems with many degrees of freedom**.

It is quite simple to find a formula for the motion of an undamped system subjected to time varying forces. The predictions are a bit unsatisfactory, however, because their vibration of an undamped system always depends on the initial conditions. In a real system, damping makes the steady-state response independent of the initial conditions. However, we can get an approximate solution for lightly damped systems by finding the solution for an undamped system, and then neglecting the part of the solution that depends on initial conditions.

As an example, we will consider the system with two springs and masses shown in the picture. Each mass is subjected to a harmonic force, which vibrates with some frequency (the forces acting on the different masses all vibrate at the same frequency). The equations of motion are

We can write these in matrix form as

or, more generally,

To find the steady-state solution, we simply assume that the masses will all vibrate harmonically at the same frequency as the forces. This means that , , where are the (unknown) amplitudes of vibration of the two masses. In vector form we could write , where . Substituting this into the equation of motion gives

This is a system of linear
equations for **X**. They can easily be solved using MATLAB. As an example, here is a simple MATLAB
function that will calculate the vibration amplitude for a linear system with
many degrees of freedom, given the stiffness and mass matrices, and the vector
of forces **f**.

function X = forced_vibration(K,M,f,omega)

% Function to calculate steady state amplitude of

% a forced linear system.

% K is nxn the stiffness matrix

% M is the nxn mass matrix

% f is the n dimensional force vector

% omega is the forcing frequency, in radians/sec.

% The function computes a vector X, giving the amplitude of

% each degree of freedom

%

X = (K-M*omega^2)\f;

end

The function is only one line long!

As an example, the graph below shows the predicted steady-state vibration amplitude for the spring-mass system, for the special case where the masses are all equal , and the springs all have the same stiffness . The first mass is subjected to a harmonic force , and no force acts on the second mass. Note that the graph shows the magnitude of the vibration amplitude the formula predicts that for some frequencies some masses have negative vibration amplitudes, but the negative sign has been ignored, as the negative sign just means that the mass vibrates out of phase with the force.

Several features of the result are worth noting:

If the forcing frequency is close to
any one of the natural frequencies of the system, huge vibration amplitudes
occur. This phenomenon is known as **resonance**. You can check the natural frequencies of the
system using the little matlab code in section 5.5.2 they turn out to be and . At these frequencies the vibration amplitude
is theoretically infinite.

The figure predicts an intriguing new phenomenon at a magic frequency, the amplitude of vibration of mass 1 (that’s the mass that the force acts on) drops to zero. This is called ‘Anti-resonance,’ and it has an important engineering application. Suppose that we have designed a system with a serious vibration problem (like the London Millenium bridge). Usually, this occurs because some kind of unexpected force is exciting one of the vibration modes in the system. We can idealize this behavior as a mass-spring system subjected to a force, as shown in the figure. So how do we stop the system from vibrating? Our solution for a 2DOF system shows that a system with two masses will have an anti-resonance. So we simply turn our 1DOF system into a 2DOF system by adding another spring and a mass, and tune the stiffness and mass of the new elements so that the anti-resonance occurs at the appropriate frequency. Of course, adding a mass will create a new vibration mode, but we can make sure that the new natural frequency is not at a bad frequency. We can also add a dashpot in parallel with the spring, if we want this has the effect of making the anti-resonance phenomenon somewhat less effective (the vibration amplitude will be small, but finite, at the ‘magic’ frequency), but the new vibration modes will also have lower amplitudes at resonance. The added spring mass system is called a ‘tuned vibration absorber.’ This approach was used to solve the Millenium Bridge vibration problem.

**5.5.5 The effects of damping**

In most design calculations, we don’t worry about accounting for the effects of damping very accurately. This is partly because it’s very difficult to find formulas that model damping realistically, and even more difficult to find values for the damping parameters. Also, the mathematics required to solve damped problems is a bit messy. Old textbooks don’t cover it, because for practical purposes it is only possible to do the calculations using a computer. It is not hard to account for the effects of damping, however, and it is helpful to have a sense of what its effect will be in a real system. We’ll go through this rather briefly in this section.

**Equations of motion: **The figure shows a damped spring-mass system. The equations of motion for the system can
easily be shown to be

To solve these equations, we have to reduce them to a system that MATLAB can handle, by re-writing them as first order equations. We follow the standard procedure to do this define and as new variables, and then write the equations in matrix form as

(This result might not be obvious to you if so, multiply out the vector-matrix products to see that the equations are all correct). This is a matrix equation of the form

where **y **is a vector containing the unknown velocities and positions of
the mass.

**Free vibration response: **Suppose that at time *t=0* the system has initial positions and velocities ,
and we wish to calculate the subsequent motion of the system. To do this, we
must solve the equation of motion. We start by guessing that the solution has
the form (the negative sign is introduced because we
expect solutions to decay with time).
Here, is a constant vector, to be determined. Substituting this into the equation of
motion gives

This
is another generalized eigenvalue problem, and can easily be solved with
MATLAB. The solution is much more
complicated for a damped system, however, because the possible values of and that satisfy the equation are in general *complex* that is to say, each can be expressed as ,
where and are positive real numbers, and . This makes more sense if we recall Euler’s
formula

(if you haven’t seen Euler’s formula, try doing a Taylor expansion of both sides of the equation you will find they are magically equal. If you don’t know how to do a Taylor expansion, you probably stopped reading this ages ago, but if you are still hanging in there, just trust me…). So, the solution is predicting that the response may be oscillatory, as we would expect. Once all the possible vectors and have been calculated, the response of the system can be calculated as follows:

1.
Construct a
matrix **H** , in which each column is
one of the possible values of (MATLAB constructs this matrix automatically)

2. Construct a diagonal matrix (t), which has the form

where each is one of the solutions to the generalized eigenvalue equation.

3. Calculate a vector **a **(this represents the amplitudes of the various modes in the
vibration response) that satisfies

4. The vibration response then follows as

All the matrices and vectors in these formulas are complex valued but all the imaginary parts magically disappear in the final answer.

**HEALTH WARNING: **The formulas listed here only work if all the generalized
eigenvalues satisfying are different. For some very special choices of damping,
some eigenvalues may be repeated. In
this case the formula won’t work. A
quick and dirty fix for this is just to change the damping very slightly, and
the problem disappears. Your applied
math courses will hopefully show you a better fix, but we won’t worry about
that here.

This all sounds a bit involved, but it actually only
takes a few lines of MATLAB code to calculate the motion of any damped system.
As an example, a MATLAB code that animates the motion of a damped spring-mass
system shown in the figure (but with an arbitrary number of masses) can be
downloaded here. You can use the code
to explore the behavior of the system.
In addition, you can modify the code to solve any linear free vibration
problem by modifying the matrices **M**
and **D**.

Here
are some animations that illustrate the behavior of the system. The animations
below show vibrations of the system with initial displacements corresponding to
the three mode shapes of the undamped system (calculated using the procedure in
Section 5.5.2). The results are shown
for *k=m=*1 .
In each case, the graph plots the motion of the three masses if a color doesn’t show up, it means one of
the other masses has the exact same displacement.

Mode 1 Mode 2 Mode 3

Notice that

1. For each mode, the displacement history of any mass looks very similar to the behavior of a damped, 1DOF system.

2. The amplitude of the high frequency modes die out much faster than the low frequency mode.

This explains why it is so helpful to understand the behavior of a 1DOF system. If a more complicated system is set in motion, its response initially involves contributions from all its vibration modes. Soon, however, the high frequency modes die out, and the dominant behavior is just caused by the lowest frequency mode. The animation to the right demonstrates this very nicely here, the system was started by displacing only the first mass. The initial response is not harmonic, but after a short time the high frequency modes stop contributing, and the system behaves just like a 1DOF approximation. For design purposes, idealizing the system as a 1DOF damped spring-mass system is usually sufficient.

Notice also that light damping has very little effect on the natural frequencies and mode shapes so the simple undamped approximation is a good way to calculate these.

Of course, if the system is very heavily damped, then its behavior changes completely the system no longer vibrates, and instead just moves gradually towards its equilibrium position. You can simulate this behavior for yourself using the matlab code try running it with or higher. Systems of this kind are not of much practical interest.

**Steady-state forced vibration response**. Finally, we
take a look at the effects of damping on the response of a spring-mass system
to harmonic forces. The equations of
motion for a damped, forced system are

This is an equation of the form

where we have used Euler’s famous formula again. We can find a solution to

by guessing that , and substituting into the matrix equation

This equation can be solved for . Similarly, we can solve

by guessing that , which gives an equation for of the form . You actually don’t need to solve this equation you can simply calculate by just changing the sign of all the imaginary parts of . The full solution follows as

This is the steady-state vibration response. Just as for the 1DOF system, the general solution also has a transient part, which depends on initial conditions. We know that the transient solution will die away, so we ignore it.

The
solution for **y**(t) looks peculiar,
because of the complex numbers. If we
just want to plot the solution as a function of time, we don’t have to worry
about the complex numbers, because they magically disappear in the final
answer. In fact, if we use MATLAB to do
the computations, we never even notice that the intermediate formulas involve
complex numbers. If we do plot the solution,
it is obvious that each mass vibrates harmonically, at the same frequency as
the force (this is obvious from the formula too). It’s not worth plotting the function we are really only interested in the amplitude
of vibration of each mass. This can be calculated as follows

1. Let , denote the components of and

2.
The vibration of
the *j*th mass then has the form

where

are the amplitude and phase of the harmonic vibration of the mass.

If
you know a lot about complex numbers you could try to derive these formulas for
yourself. If not, just trust me your math classes should cover this kind of
thing. MATLAB can handle all these
computations effortlessly. As an
example, here is a simple MATLAB script that will calculate the steady-state
amplitude of vibration and phase of each degree of freedom of a forced *n *degree of freedom system, given the
force vector **f**, and the matrices **M** and **D** that describe the system.

function [amp,phase] = damped_forced_vibration(D,M,f,omega)

% Function to calculate steady state amplitude of

% a forced linear system.

% D is 2nx2n the stiffness/damping matrix

% M is the 2nx2n mass matrix

% f is the 2n dimensional force vector

% omega is the forcing frequency, in radians/sec.

% The function computes a vector ‘amp’, giving the amplitude of

% each degree of freedom, and a second vector ‘phase’,

% which gives the phase of each degree of freedom

%

Y0 = (D+M*i*omega)\f; % The i here is sqrt(-1)

% We dont need to calculate Y0bar - we can just change the sign of

% the imaginary part of Y0 using the 'conj' command

for j =1:length(f)/2

amp(j) = sqrt(Y0(j)*conj(Y0(j)));

phase(j) = log(conj(Y0(j))/Y0(j))/(2*i);

end

end

Again, the script is very simple.

Here is a graph showing the predicted vibration amplitude of each mass in the system shown. Note that only mass 1 is subjected to a force.

The important conclusions to be drawn from these results are:

1. We observe two resonances, at frequencies very close to the undamped natural frequencies of the system.

2. For light damping, the undamped model predicts the vibration amplitude quite accurately, except very close to the resonance itself (where the undamped model has an infinite vibration amplitude)

3.
In a damped
system, the amplitude of the lowest frequency resonance is generally much
greater than higher frequency modes. For
this reason, it is often sufficient to consider only the lowest frequency mode in
design calculations. This means we can
idealize the system as just a single DOF system, and think of it as a simple
spring-mass system as described in the early part of this chapter. The relative vibration amplitudes of the
various resonances do depend to some extent on the nature of the force it is possible to choose a set of forces that
will excite *only* a high frequency
mode, in which case the amplitude of this special excited mode will exceed all
the others. But for most forcing, the
lowest frequency one is the one that matters.

4. The ‘anti-resonance’ behavior shown by the forced mass disappears if the damping is too high.