Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alejoduarte23/ssi-cov
The SSICOV is 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.
https://github.com/alejoduarte23/ssi-cov
matplotlib modal-analysis numpy scikit-learn scipy signal-processing system-identification
Last synced: 3 months ago
JSON representation
The SSICOV is 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.
- Host: GitHub
- URL: https://github.com/alejoduarte23/ssi-cov
- Owner: AlejoDuarte23
- License: cc0-1.0
- Created: 2024-07-13T18:14:58.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-25T00:33:52.000Z (5 months ago)
- Last Synced: 2024-10-14T01:20:54.449Z (3 months ago)
- Topics: matplotlib, modal-analysis, numpy, scikit-learn, scipy, signal-processing, system-identification
- Language: Python
- Homepage:
- Size: 2.11 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SSICOV Class
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.
## Installation
```bash
pip install -r requirements.txt
```## Usage
### Initialization
Create an instance of the `SSICOV` class with the required parameters.
```python
import numpy as np
from SSICOV import SSICOVssicov = SSICOV(acc, fs, Ts, Nc, Nmax, Nmin)
```### Methods
#### `NexT`
Calculates the Impulse Response Function (IRF) using cross-correlation of the input acceleration data.
```python
IRF = ssicov.NexT()
```#### `blockToeplitz`
Generates the block Toeplitz matrix and performs Singular Value Decomposition (SVD).
```python
U, S, V, T1 = ssicov.blockToeplitz(IRF)
```#### `modalID`
Identifies modal parameters from the SVD components.
```python
fn, zeta, phi = ssicov.modalID(U, S, Nmodes, Nyy, fs)
```#### `stabilityCheck`
Checks the stability of the identified modes.
```python
fn, zeta, phi, MAC, stability_status = ssicov.stabilityCheck(fn0, zeta0, phi0, fn1, zeta1, phi1)
```#### `getStablePoles`
Filters and returns the stable poles from the identified modes.
```python
fnS, zetaS, phiS, MACS = ssicov.getStablePoles(fn, zeta, phi, MAC, stability_status)
```#### `run`
Runs the complete SSI process and returns the stable modal parameters.
```python
fnS, zetaS, phiS, MACS, stability_status, fn2 = ssicov.run()
plotStabDiag(fn2, acc, fs, stability_status, Nmin, Nmax, acc.shape[1], 0, 7.5)```
## OUTPUT
![STAB diagram](data/SSI.svg)
## UtilitiesThe class uses several utility functions for timing and size printing. Ensure to include these utility functions in your project.
```python
from utils import print_input_sizes, timeit
```