Reproducibility package for "Data-Driven Fault Detection and Cross-Loop Co-Occurrence Analysis in HVAC Chiller Plants Using Matrix Profile and Association Rule Mining: A BOPTEST Simulation Study"

Published: 9 September 2026| Version 1 | DOI: 10.17632/yzrjftx6tj.1
Contributor:

Description

Simulation code, exported Modelica FMU, Paris-Orly weather, fault-injection scripts and schedules, and summary result files to reproduce the Matrix-Profile (mSTOMP) + POT detection and Association-Rule-Mining cross-loop analysis reported in the paper on the BOPTEST Multizone Office Complex Air chiller-plant test case.

Files

Steps to reproduce

Environment: Python 3.9, install dependencies with pip install -r requirements.txt (numpy, pandas, matplotlib, scipy, stumpy, mlxtend). The FMU has a linux64 binary, so the FMU simulation steps require Linux (native or Docker); the detection, ARM and figure scripts run on any OS. A. Detection branch (Tables 3, 5, 6; Figures 3, 4, 5): run_thesis_faults_perstep.py — run the FMU with each single fault to produce the full-year per-scenario CSVs and the healthy baseline (S00). build_windowed_faults.py — convert the per-scenario CSVs into windowed datasets. run_mstomp_fdd.py --window-hours 48 --downsample 4 --threshold pot --pot-q 1e-3 --pot-level 0.02 --pot-coef 1.0 --preprocess full — mSTOMP + POT detection, produces mstomp_fdd_summary.csv (Table 3) and the per-scenario plot (Figure 5). Add --plot-sweep for the m-sweep (Figure 3). compute_pot_bootstrap_delay.py — event-based metrics and bootstrap delay (Tables 5, 6). plot_fdd_performance_bar.py — per-scenario F1 bar chart (Figure 4). B. Co-fault / ARM branch (Table 7; Figures 2, 6, 7, 9): 6. run_cofault_schedule.py — run the FMU with the co-fault schedule to produce cofault_timeline.csv. 7. build_loop_based_arm.py — intensity binning and association rule mining, produces arm_cross_loop_propagation.csv (Table 7), the propagation network (Figure 6) and the intensity heatmap (Figure 9). 8. plot_cofault_fault_activity_stack.py — co-fault injection timeline (Figure 2). 9. analyze_valve_stuck_signals.py — CF05 triple-fault process signals (Figure 7). The raw full-year CSVs (about 11 GB) are not included; they are regenerated by steps 1 and 6. Exact commands and hyperparameters are in REPRODUCIBILITY_NOTES.md

Institutions

Categories

System Fault Detection

Licence