Determines the free vibration of a single-degree-of-freedom system with viscous damping

View versions (1)

Interface

Overview

Consider the diagram below in which you have an object of mass m sliding with no friction due to the action of the spring in the left side of the diagram having spring constant k.

1/free_viscous.png

This module computes the displacement u of the object at any given moment of time, relative to the static equilibrium point. The constant c is called the coefficient of viscous damping and the values of \omega and \eta are calculated using the following rules

\omega^2 = \frac{k}{m}, \qquad \eta = \frac{c}{c_{cr}},
(5)

where c_{cr} is the critical damping coefficient and may be calculated using the formula:

c_{cr} = 2 m \omega.
(6)

Since the governing equation of this type of motion is given by

\ddot{u} + 2 \eta \omega \dot{u} + \omega u = 0,
(7)

this module basically evaluates the solution to the above second-order linear differential equation with constant coefficients.

We distinguish four types of solutions, based on the value of the viscous damping factor \eta. Also consider the initial conditions u_0 := u(0) and \dot{u}_0 := \dot{u}(0).

  • the undamped case (\eta = 0)
u(t) = u_0 \cos \omega t + \frac{\dot{u}_0}{\omega} \sin \omega t
(1)
  • the underdamped case (\eta < 1)
u(t) = \mathrm{e}^{-\eta \omega t} \left( u_0 \cos \omega_1 t +
\frac{\dot{u}_0 + \eta \omega u_0}{\omega_1} \sin \omega_1 t\right), \qquad
\omega_1 = \omega \sqrt{1 - \eta^2}
(2)
  • the critically damped case (\eta = 1)
u(t) = \mathrm{e}^{-\eta \omega t} \left[u_0 + \left(\dot{u}_0 + \eta \omega u_0\right) t\right]
(3)
  • the overdamped case (\eta > 1)
u(t) = \mathrm{e}^{-\eta \omega t} \left( u_0 \cosh \omega_2 t +
\frac{\dot{u}_0 + \eta \omega u_0}{\omega_2} \sinh \omega_2 t\right), \qquad
\omega_2 = \omega \sqrt{\eta^2 - 1}
(4)

References

"Structural Dynamics - An Introduction to Computer Methods", Roy R. Craig, Jr.

Note:

This module can also be used to study vertical free vibration, relative to the appropriate point of static equilibrium determined by the cancellation of the weight of the object and the other forces in the system.

GPL Licence — free for non commercial use. See Licence details.

FUNCTION

free_viscous

The example below calculates the displacement of a single-degree-of-freedom system having an undamped natural frequency \omega = 5 rad/s and a damping factor \eta = 20\%. Also the initial displacement u_0 is considered null, while the initial velocity is \dot{u}_0 = 20 m/s. The solution is evaluated over a period of 10 seconds with steps of half a second.

Example 1

#include <codecogs/engineering/structures/free_viscous.h>
#include <stdio.h>

int main() {
  double omega = 5, eta = 0.2,
  init_displacement = 0, init_velocity = 20;

  for (double t = 0; t < 10.5; t += 0.5)
    printf("t = %lf\tu(t) = %lf\n", t, 
    Engineering::Structures::free_viscous(t, omega, eta, 
    init_displacement, init_velocity));

  return 0;
}

Output

t = 0.000000    u(t) = 0.000000
t = 0.500000    u(t) = 1.580175
t = 1.000000    u(t) = -1.475793
t = 1.500000    u(t) = 0.796992
t = 2.000000    u(t) = -0.201432
t = 2.500000    u(t) = -0.105072
t = 3.000000    u(t) = 0.172233
t = 3.500000    u(t) = -0.122202
t = 4.000000    u(t) = 0.050769
t = 4.500000    u(t) = -0.002460
t = 5.000000    u(t) = -0.016380
t = 5.500000    u(t) = 0.016203
t = 6.000000    u(t) = -0.009107
t = 6.500000    u(t) = 0.002544
t = 7.000000    u(t) = 0.000974
t = 7.500000    u(t) = -0.001846
t = 8.000000    u(t) = 0.001365
t = 8.500000    u(t) = -0.000596
t = 9.000000    u(t) = 0.000055
t = 9.500000    u(t) = 0.000168
t = 10.000000   u(t) = -0.000177

Parameters

t
the moment of time at which to evaluate the displacement of the object (seconds)
omega
undamped circular natural frequency (radians per second)
eta
viscous damping factor (dimensionless)
init_displacement
Default value = 0
init_velocity
Default value = 0

Returns

the displacement of the object from the static equilibrium point at time t (meters)

Interactive Calculator

t
omega
eta
init_displacement
init_velocity
Result

FUNCTION

free_viscous

The example below calculates the displacement of a single-degree-of-freedom system having an object of mass m = 0.008 kg, a spring constant k = 0.2 N/m and a coefficient of viscous damping c = 0.016 Ns/m. Also the initial displacement u_0 is considered null, while the initial velocity is \dot{u}_0 = 20 m/s. The solution is evaluated over a period of 10 seconds with steps of half a second.

Example 1

#include <codecogs/engineering/structures/free_viscous.h>
#include <stdio.h>

int main() {
  double m = 0.008, k = 0.2, c = 0.016,
  init_displacement = 0, init_velocity = 20;

  for (double t = 0; t < 10.5; t += 0.5)
    printf("t = %lf\tu(t) = %lf\n", t, 
    Engineering::Structures::free_viscous(t, m, k, c, 
    init_displacement, init_velocity));

  return 0;
}

Output

t = 0.000000    u(t) = 0.000000
t = 0.500000    u(t) = 1.580175
t = 1.000000    u(t) = -1.475793
t = 1.500000    u(t) = 0.796992
t = 2.000000    u(t) = -0.201432
t = 2.500000    u(t) = -0.105072
t = 3.000000    u(t) = 0.172233
t = 3.500000    u(t) = -0.122202
t = 4.000000    u(t) = 0.050769
t = 4.500000    u(t) = -0.002460
t = 5.000000    u(t) = -0.016380
t = 5.500000    u(t) = 0.016203
t = 6.000000    u(t) = -0.009107
t = 6.500000    u(t) = 0.002544
t = 7.000000    u(t) = 0.000974
t = 7.500000    u(t) = -0.001846
t = 8.000000    u(t) = 0.001365
t = 8.500000    u(t) = -0.000596
t = 9.000000    u(t) = 0.000055
t = 9.500000    u(t) = 0.000168
t = 10.000000   u(t) = -0.000177

Parameters

t
the moment of time at which to evaluate the displacement of the object (seconds)
m
the mass of the object (kilograms)
k
the spring constant (Newtons per meter)
c
the coefficient of viscous damping (Newtons per meter per second)
init_displacement
the initial displacement of the object from the static equilibrium point (meters)
init_velocity
the initial velocity of the object (meters per second)

Returns

the displacement of the object from the static equilibrium point at time t (meters)

Interactive Calculator

t
m
k
c
init_displacement
init_velocity
Result