# Shock Response Spectrum

### From Python Wiki

**Introduction**

Mechanical shock pulses are often analyzed in terms of shock response spectra (SRS). The shock response spectrum assumes that the shock pulse is applied as a common base input to an array of independent single-degree-of-freedom systems. The shock response spectrum gives the peak response of each system with respect to the natural frequency. Damping is typically fixed at a constant value, such as 5%, which is equivalent to an amplification factor of Q=10.

The following tutorial gives further information: srs_intr.pdf

**Utility**

The scripts on this page require the utility module tompy.py

**Arbitrary Base Input - SRS Calculation**

The SRS for an an arbitrary base input can be calculated via a digital recursive filtering relationship, which models the convolution integral.

The filtering relationship can be implemented in Python by importing the lfilter function from scipy.

*from scipy.signal import lfilter*

A script for doing this is given at: srs.py

A version for calculating and plotting the SRS in tripartite format is given at: srs_tripartite.py

A script for calculating the SRS via a convolution integral is given at: srs_conv.py

**Arbitrary Base Input - SRS Calculation - GUI Version**

A GUI version written using Tkinter is given at srs_gui.py

**Arbitrary Base Input - Time Domain Response for a given SDOF System**

Digital recursive filtering relationship method: arbit.py

GUI version using Tkinter: arbit_gui.py

Runge-Kutta fourth order method (for non-stiff systems): arbit_rk4.py

**Half-sine Pulse**

The response of an SDOF system to a half-sine base input can be calculated via a Laplace transform which yields a closed-form solution, as shown in sbase.pdf

A script is given at: half_sine_base.py

Note that the peak response may occur either during or after the half-sine pulse depending on the pulse duration, natural frequency, and damping ratio.

**Terminal Sawtooth Pulse**

The response of an SDOF system to a terminal sawtooth base input can also be calculated via a Laplace transform. terminal_sawtooth.pdf

A script is given at: terminal_sawtooth_base.py

**Multi-pulse GUI**

Here is a GUI for classical pulses which uses Tkinter: classical_base_gui.py

**Fortran**

An SRS program for base excitation is given at: QSRS.F

**Arbitrary Applied Force - Time Domain Response for a given SDOF System**

A script for the response to an applied force is given at: arbit_force.py

**External References**

Return to: Main Page | Vibrationdata Python Scripts