StructuralVibration.jl


Generic badge MIT License Aqua QA DispatchDoctor

StructuralVibration.jl is a Julia package designed to generate vibration data for mechanical systems. This package can be used for educational and research purposes. As a teacher, you can use it to illustrate vibration theory and its practical implementation. As a researcher, you can use it to test new methods on synthetic data.

Warning

The package is under active development. The package is developed as part of my research activities on source identification in structural dynamics and acoustics.

Features

The package provides the following features:

Mechanical models

  • Discrete models
    • Spring-mass-damper SDOF system
    • Spring-mass-damper MDOF system
    • FE models of bar, rod, strings and beams
  • Continuous models
    • Longitudinal bars
    • Torsional bars
    • Strings
    • Beams
    • Rectangular plates
    • Rectangular membranes
  • State space model
    • Continuous state-space representation
    • Discrete state-space representation
      • Zero-order hold (ZOH)
      • First-order hold (FOH)
      • Band-limited hold (BLH)
      • RK4

Vibration data generation

  • Excitation signals
    • Rectangular wave
    • Triangular wave
    • Hammer impact
    • Smoothed rectangular wave
    • Sine wave
    • Half-sine pulse
    • Harversine pulse
    • Swept sine wave
    • Gaussian pulse
    • Colored noise
  • Solution for SDOF systems
    • Free response
    • Forced response due to a harmonic force or a base motion
    • Forced response due to any external force or base motion (Duhamel’s integral)
  • Time-domain integration schemes for linear second order systems
    • Central difference scheme
    • RK4
    • Newmark-beta method
    • Linear acceleration method
    • Fox-Goodwin method
    • HHT
    • WBZ
    • Generalized-alpha
    • Mid-Point rule
  • Frequency-domain calculations for linear systems
    • Frequency spectrum
      • Modal summation
      • Direct method
    • Frequency response function (FRF)
      • Modal summation
      • Direct method
  • State-space solvers
    • Time domain
      • RK4 for continuous systems
      • ZOH, FOH, BLH, RK4 for discrete models
    • Frequency spectrum
      • Modal summation
      • Direct method
    • Frequency response function (FRF)
      • Modal summation
      • Direct method
  • Measurement noise
    • Additive Gaussian white noise (agwn) with a prescribed SNR
    • Additive Colored noise (acn)
    • Multiplicative noise
    • Mixed - agwn + multiplicative noise
  • Signal processing
    • Measurement noise variance estimation algorithms from noisy data
    • SNR estimation from estimated measurement noise variance
    • Denoising algorithms
      • Regularization
      • Kalman filtering
    • Modal extraction - SDOF methods
      • Peak picking method
      • Circle fit method
    • Detrending data using polynomial fit
    • Gradient calculation using interpolation
    • Signal estimation
      • Transfer functions estimation (H1, H2, H3, Hv)
      • Welch method (PSD, ESD, Autopower, Autopower linear)
      • Signal spectrum estimation
  • Visualization
    • Bode plot
    • 2D and 3D Nyquist plot
    • Waterfall plot
    • General 2D plot

Reproducibility

Project StructuralVibration v0.1.0
Status
  [717857b8] DSP v0.8.3
  [7a1cc6ca] FFTW v1.8.1
  [442a2c76] FastGaussQuadrature v1.0.2
  [a98d9a8b] Interpolations v0.15.1
  [429524aa] Optim v1.12.0
  [18e31ff7] Peaks v0.5.3
⌅ [aea7be01] PrecompileTools v1.2.1
  [92933f4c] ProgressMeter v1.10.4
  [276daf66] SpecialFunctions v2.5.0
  [10745b16] Statistics v1.11.1
  [37e2e46d] LinearAlgebra v1.11.0
  [9a3f8284] Random v1.11.0
Julia Version 1.11.4
Commit 8561cc3d68 (2025-03-10 11:36 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 8 × Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, skylake)
Threads: 8 default, 0 interactive, 4 GC (on 8 virtual cores)
Environment:
  JULIA_EDITOR = code

License

This package is under MIT License.