Python Shock Response Spectrum

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

A Fortran SRS program 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

Vibrationdata SRS Page

Vibrationdata Blog SRS

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s