Compact Python toolbox for linear structural dynamics: eigenvalue analysis, FFT, frequency response functions, and singular value decomposition.
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.
- Generalized eigenvalue problem
K φ = λ M φ→ω, f, T(eigenvalue_problem.pyviascipy.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 examplemain.py - Sample
INPUT.pyprovidingstiffness_matrixandmass_matrixfor immediate testing - Fourier/Laplace reference tables in
results/figures
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
- Python 3.10+
numpy,scipy,matplotlib
pip install numpy scipy matplotlibEigenvalue analysis:
python eigenvalue_problem.pyFRF synthesis:
python FRF_Undamped_MDOF.pySVD example:
python main.py
# or
python SVD.pyAdapt INPUT.py to your own K and M for other structures.
- Linear systems only; damping is handled in
FRF_Undamped_MDOFas undamped — damped extension is left for the SHM toolbox variant. - Toolbox is intentionally compact; no packaging or CLI is provided.
Mohammad Shamsi — Sharif University of Technology