Geometry-Aware Oscillatory Representation for Early Degradation Detection
Brand: Datar Consulting
Author: Vashista Nobaub
Contact: labs@datar.fr
This repository contains reference code accompanying the paper:
GO-OSC and VASH: Geometry-Aware Representation Learning for Early Degradation Detection
It provides:
- a compact benchmark + CLI for classification and degradation experiments, and
- a feature / indicator library (VASH) for classical and geometry-aware health monitoring.
The focus is early, phase-dominated degradation in oscillatory systems (e.g. bearings, rotating machinery).
GO-OSC models signals as latent oscillatory dynamics with:
- explicit frequency and damping structure,
- a canonical parameterization (fixed gauge),
- stable, comparable latent coordinates across windows.
This makes subtle phase and coherence changes detectable before energy changes.
VASH is a set of invariant geometric indicators derived from GO-OSC outputs, including:
- PCC – Phase Coherence Collapse
- FWR – Frequency Wander Rate
- DDI – Damping Drift Integral
- GSI – Geometric State Indicator
- MLL – Mode-Locking Loss
- LQF – Latent Q-Factor proxy
These are designed to respond earlier than RMS or spectral power.
.
├── oscdyn_degradation_benchmark_*.py # Benchmark + CLI (classification & degradation)
├── vash_indicators_paper.py # VASH feature & indicator library
├── README.md
Minimal (CPU-only):
pip install numpy pandas torch scikit-learn
Optional:
pip install aeon
pip install scipy
pip install pywt PyEMD
oscdyn_degradation_benchmark_*.py
A compact experimentation script supporting:
- Time-series classification (UEA/UCR via
aeon) - Run-to-failure / degradation datasets (IMS, PRONOSTIA, XJTU-SY)
- GO-OSC-style oscillatory classifiers for research comparison
python oscdyn_degradation_benchmark.py classify \
--dataset EthanolConcentration \
--model go_osc_p_damp \
--device cpu
Available models:
linossgo_osc_pgo_osc_p_dampgo_osc_implicit
IMS:
python oscdyn_degradation_benchmark.py ims --root /path/IMS --run 0
PRONOSTIA:
python oscdyn_degradation_benchmark.py pronostia --root /path/PRONOSTIA --run 1
XJTU-SY:
python oscdyn_degradation_benchmark.py xjtu --root /path/XJTU --run 0
vash_indicators_paper.py
- Classical time, frequency, and time–frequency indicators
- Nonlinear and complexity metrics
- GO-OSC / VASH-native geometric indicators
- Health Index construction with baseline normalization
from vash_indicators_paper import FeatureBank, HealthIndex
fb = FeatureBank(fs=25600)
features = fb.compute_window(signal)
hi = HealthIndex(weights={"GSI":1.0,"PCC":1.0,"FWR":0.5,"DDI":0.5})
hi.fit_baseline(healthy_feature_dicts)
score = hi.score(features)- Targets early, phase-only degradation
- Assumes oscillatory dynamics and local stationarity
- Not optimized for late-stage, high-energy faults
Researchers and practitioners in:
- condition monitoring
- time-series machine learning
- early fault detection
A companion Google Colab notebook is provided to reproduce key figures, indicators, and analysis from the paper without requiring local setup.
Notebook: GOOSC_VASH_PAPER_FIGURES.ipynb
- Loading and preprocessing oscillatory vibration signals
- Computing classical vibration indicators (RMS, kurtosis, spectral features)
- Computing GO-OSC / VASH geometric indicators (PCC, GSI, FWR, DDI, MLL, LQF)
- Visualizing early degradation effects where energy-based metrics fail
- Reproducing representative plots and figures used in the paper
The notebook is designed for:
- reviewers and readers of the paper,
- rapid experimentation and inspection of indicators,
- educational and presentation purposes.
It runs entirely on CPU in Google Colab and installs only lightweight dependencies.
- Open the notebook in Google Colab
- Run the setup cell to install dependencies
- Execute cells sequentially to reproduce figures and indicator trends
- Modify signal sources or parameters to explore sensitivity
No training is required; the notebook focuses on analysis and interpretation, not model fitting.