How hiral-kumar/cnc-digital-twin works
PC-NDT is a bearing-health digital twin: dataset-specific loaders extract vibration features and RUL labels, preprocessing prepares temporal windows, and the training entry point fits a graph-and-continuous-time model with physics constraints. Evaluation covers held-out IMS, PRONOSTIA cross-condition generalization, LSTM/GRU comparisons, and Archard validation. The graph follows documented architecture and SOURCE INDEX references; unsampled entry-point bodies limit claims about some detailed calls.
Main entry points: pc_ndt.py PC-NDT model · preprocessing.py Window preprocessing · train.py Training workflow · baselines.py Baseline comparison
Components 18
Data preparation
- IMS loader
src/data/ims_loader.py - PRONOSTIA loader
src/data/pronostia_loader.py - Milling loader
src/data/milling_loader.py - Window preprocessing
src/data/preprocessing.py - Graph utilities
src/data/graph_utils.py
Digital twin model
- AGCRN encoder
src/models/agcrn.py - Neural ODE
src/models/neural_ode.py - PC-NDT model
src/models/pc_ndt.py
Training and physics
- Physics constraints
src/physics/constraints.py - Trainer
src/training/trainer.py - Training workflow
scripts/train.py
Evaluation workflows
- LSTM and GRU
src/baselines/lstm_gru.py - Baseline comparison
scripts/baselines.py - IMS evaluation
scripts/evaluate.py - PRONOSTIA evaluation
scripts/evaluate_pronostia.py - Archard validation
scripts/validate_archard.py - Evaluation metrics
src/evaluation/metrics.py
Other components
- Engineer
Connections 29
- Engineer → Training workflow: starts training
README.md - Engineer → IMS evaluation: runs evaluation
README.md - Engineer → Baseline comparison: runs comparison
README.md - Engineer → PRONOSTIA evaluation: tests generalization
README.md - Engineer → Archard validation: validates physics
README.md - IMS loader → Window preprocessing: provides features
src/data/preprocessing.py - PRONOSTIA loader → Window preprocessing: provides features
src/data/preprocessing.py - Milling loader → Archard validation: supplies validation data
- Training workflow → Window preprocessing: prepares windows
scripts/train.py - Training workflow → PC-NDT model: trains model
scripts/train.py - Training workflow → Trainer: uses trainer
scripts/train.py - Training workflow → Physics constraints: configures physics
scripts/train.py - PC-NDT model → AGCRN encoder: encodes sensors
src/models/pc_ndt.py - PC-NDT model → Neural ODE: propagates state
src/models/pc_ndt.py - PC-NDT model → Physics constraints: computes disagreement
src/models/pc_ndt.py - Trainer → Physics constraints: computes physics loss
src/training/trainer.py - Physics constraints → Graph utilities: uses graph operations
src/physics/constraints.py - IMS evaluation → Window preprocessing: prepares inputs
scripts/evaluate.py - IMS evaluation → PC-NDT model: evaluates model
scripts/evaluate.py - IMS evaluation → Evaluation metrics: scores predictions
scripts/evaluate.py - PRONOSTIA evaluation → PRONOSTIA loader: loads bearings
scripts/evaluate_pronostia.py - PRONOSTIA evaluation → Window preprocessing: prepares inputs
scripts/evaluate_pronostia.py - PRONOSTIA evaluation → PC-NDT model: evaluates model
scripts/evaluate_pronostia.py - PRONOSTIA evaluation → Evaluation metrics: scores predictions
scripts/evaluate_pronostia.py - Baseline comparison → IMS loader: loads IMS data
scripts/baselines.py - Baseline comparison → Window preprocessing: prepares inputs
scripts/baselines.py - Baseline comparison → LSTM and GRU: runs baselines
scripts/baselines.py - Baseline comparison → Evaluation metrics: scores predictions
scripts/baselines.py - Archard validation → Physics constraints: validates constraint
scripts/validate_archard.py