# 缸体温度统一演化检测(临时实验目录) > 位置:项目根目录 `_tmp_temperature/`。**未改动 `models/` 下任何现有代码**; > 验证通过后再决定是否合并进 `models/temperature/`。 ## 目标 把缸体温度的四类特征统一成一个检测器,输出带**演化周期**的事件数据: 1. **同级温差**(常开特征):两两温差、级差、每缸相对同级中位、每缸历史同级偏移; 2. **短时单缸上升/下降**:1h/3h/6h 同级相对变化,1h 观察、2h 事件; 3. **7#/8#/9# 三级高频波动**:只用小时标准差相对基线,单独成表,不混入温度事件; 4. **温度通道异常**:停机/突然到环境温度、通道骤降、冻值、坏道,独立成表,不混入温度故障。 压力、振动不参与本目录的计算。 ## 目录 | 文件 | 作用 | |---|---| | `config.py` | 机组→批次、点位→级/缸、运行态、`site_point` 阈值、统一阈值 | | `data.py` | 小时聚合(宽表行 + 运行覆盖率) | | `unified.py` | **统一算法**:通道异常、特征、分级、事件、演化周期 | | `algorithm.py` | 第一版(仅同级温差)实现,保留作对照 | | `scan.py` | 从数据库全量扫描 4#~9# | | `rescan.py` | 复用 `out/pks_temperature_hourly.csv` 秒级重跑(调阈值) | | `backtest.py` | 用 `compressor_fault` 温度类事件 + 通道异常回测 | | `make_report.py` | 生成 `out/分析报告.md` | | `out/` | 结果、小时长表、回测表、报告 | ## 快速运行 ```bash # 全量扫描(查库,约 6 分钟) python3 _tmp_temperature/scan.py --device 4# 5# 6# 7# 8# 9# --output-dir _tmp_temperature/out # 复用小时长表快速重跑(约 25 秒) python3 _tmp_temperature/rescan.py --out _tmp_temperature/out # 回测 + 报告 python3 _tmp_temperature/backtest.py --dir _tmp_temperature/out python3 _tmp_temperature/make_report.py ``` ## 输出 | 文件 | 内容 | |---|---| | `温度小时特征.csv` | 每小时 × 级:全部特征 + 等级/方向/类型/置信度/依据 | | `温度异常段.csv` | **唯一故障段表**:温度事件 + 已确认高频波动,一行一段;当前 96 行 | | `温度观察段.csv` | 1h 观察,逐小时一行,关联后续事件 | | `温度过渡段.csv` | 启停/运行中过渡段(只保留 CSV,不进入页面和故障表) | | `温度高频波动段.csv` | `温度异常段.csv` 中已确认的高频波动(47 行) | | `温度高频候选.csv` | 高频首轮候选 60 行,含去趋势残差、反复升降次数和是否确认 | | `温度演化周期.csv` | 每次开机周期 × 级 的演化汇总(“一份数据”) | | `温度通道异常段.csv` | 停机/通道异常、骤降、冻值、坏道 | | `温度通道质控.csv` | 死道/冻值/越界统计 | | `同级温差特征.csv` | 常开同级温差(无事件也输出) | | `温度短时特征.csv` | 1h/3h/6h 同级相对变化 | | `pks_temperature_hourly.csv` | 小时长表(点位级) | | `回测_温度事件.csv` | 维修事件回测(含通道异常命中/同日命中) | | `分析报告.md` | 结果与阈值说明 | ## 温度事件 / 高频波动观察页 ```bash # 过渡段 CSV 单独生成;页面不再加载过渡段 python3 _tmp_temperature/make_transition_labels.py # 后端(8000) cd backend && python3 -m uvicorn app.main:app --host 127.0.0.1 --port 8000 # 前端(已有 5173 则直接用) cd frontend && npm run dev # 打开 # http://127.0.0.1:5173/temperature.html ``` 页面只读 `温度异常段.csv`: - 温度事件 49 条(含 1 条单缸 6h 相对抬升); - 高频波动 47 条(同一张表中的 `特征类型=高频波动` 行); - 共 96 条,按类型(温度事件 / 高频波动)、机组、级、阶段、维修命中、温度事件命中筛选。 - 过渡段只保留 `温度过渡段.csv`,不进入页面和确认事件。 - 标签接口:`/api/temperature-transition/labels` - 波形接口:`/api/temperature-transition/series?key=event:0`(5 秒粒度、前后各 6h) - 列表标注:`维修命中/未命中`(`compressor_fault`,前 7 天~后 1 天)、`温度事件命中/未命中`(`温度异常段.csv`)、`观察命中/未命中`(`温度观察段.csv`) - `维修命中` 目前 25/96。 - 字段和取值域见 `_tmp_temperature/温度异常段_字段说明.md`。 - 图上方固定显示:`维修命中`(命中时)、`阶段触发依据`(不占列表);`关联通道异常`不再显示。 - 图内画出:各级缸温、级差/同级偏高/同级偏低、运行状态、累计运行小时/转速、机身振动、排压、调节阀等。 - 高频波动标签额外显示小时标准差、基线标准差、波动倍数和 z。 ## 规则要点 - **运行态**:7/8/9 用 `YSJ_41>0`;4# 用**累计运行小时** `YSJ_31`(+1/h=运行、0=停机,机身振动/进气压力兜底);5#/6# 用 **2/4 信号**(一级排气压力、一级进气压力、机身振动、调节阀开度)。 - **有效小时**:覆盖率 ≥80%;整级最高温度 <45℃ 视为停机;单通道突然到环境温度并恢复 → `停机/通道异常`,不参与故障。 - **小时聚合**:温度均值/最小值/最大值/标准差均排除 0 值;另存原始最小值、零值样本数用于通道掉点判定。 - **常开特征**:级差、级差较平时变化、同级偏高/偏低、自身历史偏移、1h/3h/6h 相对变化、6h 整级/单缸抬升。 - **触发**:一级/二级用同级相对量;三级高频先去慢趋势,要求去趋势残差标准差 ≥0.5℃、反复升降 ≥5 次/小时、持续 ≥3h,首轮候选写入 `温度高频候选.csv`,确认后才进入事件;6h 单缸相对抬升(单缸 3/4.5/6℃、整级 6h 抬升在 ±3℃ 内、持续 ≥2h)并入事件;已有持续偏高事件保持原类型;整级共同抬升只作特征。 - **通道掉点**:原始最小值 ≤45℃ 或零值样本数 ≥5 时标记;部分掉点用原始最小值 vs 近期基准(≥20℃)标记;掉点恢复段不参与短时变化。 - **确认**:持续型 3h;短时型 1h 观察、2h 事件;相邻段间隔 ≤6h 合并;启停过渡 2h 剔除。 - **方向**:偏高 / 偏低 / 混合;`观察` 不报警,只做提示。 - **统一阈值**: - 同级偏高/偏低:轻微 4/5℃、异常 6/8℃、严重异常 10/12℃ - 级差变化:轻微 4℃、异常 8℃、严重异常 15℃ - 短时同级相对:1h 3/4/6/9℃、3h 4/5/7/11℃、6h 6/7/9/13℃ - 高频确认:去趋势残差标准差 ≥0.5℃、反复升降 ≥5 次/小时、持续 ≥3h - **通道异常**:突然到环境温度/归零并恢复 → 停机/通道异常;短时骤降 >15℃ 并恢复 → 通道骤降;连续 ≥12h 不变且同级变化 ≥3℃ → 冻值;零值/越界/长期低温 → 坏道。