Official implementation of "Disentangling Slow and Fast Temporal Dynamics in Degradation Inference with Hierarchical Differential Models", accepted at Reliability Engineering & System Safety (RESS).
Mengjie Zhao, Olga Fink
Degradation introduces only subtle, long-term changes in sensor observations, while fast operational variations dominate the signal. H-CDE is a hierarchical controlled differential equation framework that explicitly disentangles slow degradation dynamics from fast operational dynamics through learnable path transformations with monotonicity-enforcing activation functions. The method achieves state-of-the-art performance over residual-based approaches on both mechanical (N-CMAPSS aero-engine) and infrastructural (bridge) systems.
Python 3.11 and PyTorch 2.2.0 are required. We recommend conda:
conda create -n hcde python=3.11
conda activate hcde
pip install -r requirements.txtNote: numpy must stay below 2.0 for compatibility with PyTorch 2.2.0. The
requirements.txtpinsnumpy==1.26.4.
Then set the project root on your PYTHONPATH:
export PYTHONPATH=/path/to/hcde| Dataset | Domain | Config dir |
|---|---|---|
| N-CMAPSS | Aero-engine RUL | run/configs/ncmapss/ |
| Bridge (synthetic) | Structural degradation | run/configs/bridge/ |
The bridge dataset is a synthetic dataset generated via a physics-based finite element simulation implemented in src/simulation/beam.py. The model represents a simply-supported 2D Euler–Bernoulli beam subject to:
- Distributed traffic load and ambient temperature time series as inputs
- Rayleigh damping and a Newmark-beta dynamic solver for structural response
- Continuum damage mechanics (CDM) for progressive stiffness degradation: Young's modulus E and second moment of area I decay with accumulated damage D
- Thermal loading (axial expansion + bending moment from through-depth temperature gradient via an exponential filter)
The simulation outputs per-record displacement, velocity, and acceleration at selected span locations, which form the sensor observations used for training and evaluation.
The N-CMAPSS dataset must be downloaded separately. Place all dataset files under the datasets/ directory matching the dataset.dir field in the corresponding config YAML.
The entry point is run/main.py, controlled by a YAML config file:
python run/main.py --cfg run/configs/<dataset>/<model>.yaml# Full H-CDE model
python run/main.py --cfg run/configs/ncmapss/hcde.yaml
# Ablation: without path transformation
python run/main.py --cfg run/configs/ncmapss/hcde-p=f.yaml
# Ablation: without monotonic activation
python run/main.py --cfg run/configs/ncmapss/hcde-pt=f.yaml
# FNN baseline
python run/main.py --cfg run/configs/ncmapss/fnn.yaml# Full H-CDE model
python run/main.py --cfg run/configs/bridge/hcde.yaml
# Ablation: without path transformation
python run/main.py --cfg run/configs/bridge/hcde-p=f.yaml
# Ablation: without monotonic activation
python run/main.py --cfg run/configs/bridge/hcde-pt=f.yaml
# FNN baseline
python run/main.py --cfg run/configs/bridge/fnn.yamlResults and checkpoints are written to the directory specified by out_dir in the config. TensorBoard logs are saved alongside:
tensorboard --logdir results/If you find this work useful, please cite:
@article{zhao2026hcde,
title = {Disentangling Slow and Fast Temporal Dynamics in Degradation Inference with Hierarchical Differential Models},
author = {Zhao, Mengjie and Fink, Olga},
journal = {Reliability Engineering \& System Safety},
year = {2026},
note = {arXiv:2509.00639},
doi = {10.48550/arXiv.2509.00639}
}