The SSICOV
class a system identification method for structural health monitoring (SHM) using Stochastic Subspace Identification (SSI). It processes acceleration data to extract modal parameters of a structure.
pip install -r requirements.txt
Create an instance of the SSICOV
class with the required parameters.
import numpy as np
from SSICOV import SSICOV
ssicov = SSICOV(acc, fs, Ts, Nc, Nmax, Nmin)
Calculates the Impulse Response Function (IRF) using cross-correlation of the input acceleration data.
IRF = ssicov.NexT()
Generates the block Toeplitz matrix and performs Singular Value Decomposition (SVD).
U, S, V, T1 = ssicov.blockToeplitz(IRF)
Identifies modal parameters from the SVD components.
fn, zeta, phi = ssicov.modalID(U, S, Nmodes, Nyy, fs)
Checks the stability of the identified modes.
fn, zeta, phi, MAC, stability_status = ssicov.stabilityCheck(fn0, zeta0, phi0, fn1, zeta1, phi1)
Filters and returns the stable poles from the identified modes.
fnS, zetaS, phiS, MACS = ssicov.getStablePoles(fn, zeta, phi, MAC, stability_status)
Runs the complete SSI process and returns the stable modal parameters.
fnS, zetaS, phiS, MACS, stability_status, fn2 = ssicov.run()
plotStabDiag(fn2, acc, fs, stability_status, Nmin, Nmax, acc.shape[1], 0, 7.5)
The class uses several utility functions for timing and size printing. Ensure to include these utility functions in your project.
from utils import print_input_sizes, timeit