GLRDETECT/
├── batch_diagnosis.py # 主脚本
├── residual_fault_table.json # 残差故障表(必需)
├── GLR/ # GLR模块目录
│ ├── glr_residual_diagnosis.py
│ ├── glr_detection.py
│ └── ...其他模块文件
└── 待处理的CSV文件目录/
# 进入GLRDETECT目录
cd GLRDETECT
# 运行批量诊断脚本
python batch_diagnosis.py
原始CSV数据
↓
数据加载和预处理
↓
时间数据过滤 (Time >= 5)
↓
根据正常时段数据进行robust_zscore标准化
↓
对每一列残差进行个性化阈值计算和缓存
↓
GLR检测执行
↓
相对决策值计算
↓
Time 150-300范围最大值提取作为threshold_multiplier
↓
动态阈值设置 (最大值的1/5)
↓
残差变化检测 (跟据每个残差最大GLR检测值与threshold_multiplier作比较,进而进行0/1标记)
↓
残差特征模式生成 (r1, r2, r3...)
↓
故障类型诊断和匹配
↓
结果输出和保存
batch_diagnosis_results/
├── batch_processing_summary.txt # 批量处理摘要报告
├── batch_processing_summary.csv # 批量处理摘要(CSV格式)
└── results_[文件名]_combined_results/ # 每个文件的处理结果
├── diagnosis_report.txt # 故障诊断报告
├── fault_summary.csv # 故障摘要
├── Timeline_diagnosis.csv # 时间序列诊断结果
├── residual_changes.csv # 残差变化数据
├── max_anomaly_info.csv # 最大异常信息
└── relative_decision_functions.png # 相对决策函数可视化图
-
基于最大异常残差特征的诊断: 核心诊断结果
-
故障诊断结果: 检测到的具体故障类型和置信度
-
置信度越高,故障诊断结果越可靠,并且允许‘或’的情况存在
-
置信度计算方法:
置信度 = 匹配的残差数量 / 故障定义中要求的残差总数
- 可视化显示各残差的相对决策函数
- 帮助分析残差变化趋势和异常检测效果
根据“正常数据段”(Time<early_threshold)确定的每列个性化阈值,用来把各列的 GLR 决策值标准化成“相对决策值”relative_decision = decision_function / threshold。 随后“残差变化”的判定不是直接用原始 GLR 值,而是比较 relative_decision 与一个“阈值倍数”threshold_multiplier:relative_decision > threshold_multiplier 即置1。 因而,正常段阈值的作用是提供一个“列间可比的标尺”,削弱量纲/幅值差异,使不同残差列在统一的相对尺度上做变化判定;这既影响普通逐时刻判定,也影响“最大异常残差特征”模式下的最大相对值与阈值倍数的设定。

