Skip to content

Repository files navigation

Structural Dynamics Toolbox

Compact Python toolbox for linear structural dynamics: eigenvalue analysis, FFT, frequency response functions, and singular value decomposition.

Overview

The collection implements the numerical primitives used in system identification and SHM preprocessing: generalized eigenvalue solution, Fourier analysis, MDOF FRF synthesis, and SVD for signal/data matrices.

Features

  • Generalized eigenvalue problem K φ = λ M φω, f, T (eigenvalue_problem.py via scipy.linalg.eigh)
  • FFT wrapper (FFT.py) and undamped MDOF FRF (FRF_Undamped_MDOF.py) with plotting variant
  • SVD (real and complex: SVD.py, SVD_Complex.py) with example main.py
  • Sample INPUT.py providing stiffness_matrix and mass_matrix for immediate testing
  • Fourier/Laplace reference tables in results/figures

Project Structure

eigenvalue_problem.py   # eigh(K, M) → ω, f, T
INPUT.py                # example K, M
FFT.py                  # FFT utility
FRF_Undamped_MDOF.py    # MDOF FRF synthesis
SVD.py, SVD_Complex.py  # SVD examples
main.py                 # SVD demo
q3.ipynb                # integrated example notebook
results/figures/
  Fourier Transform Table.png

Requirements

  • Python 3.10+
  • numpy, scipy, matplotlib

Installation

pip install numpy scipy matplotlib

Usage

Eigenvalue analysis:

python eigenvalue_problem.py

FRF synthesis:

python FRF_Undamped_MDOF.py

SVD example:

python main.py
# or
python SVD.py

Adapt INPUT.py to your own K and M for other structures.

Limitations

  • Linear systems only; damping is handled in FRF_Undamped_MDOF as undamped — damped extension is left for the SHM toolbox variant.
  • Toolbox is intentionally compact; no packaging or CLI is provided.

Author

Mohammad Shamsi — Sharif University of Technology

About

Compact toolbox for structural dynamics: eigenvalue, FFT, FRF, SVD

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages