|
@@ -209,4 +209,22 @@ MAD=0.80209 → z=−0.3116 · IQR/1.349=1.46899 → z=−0.1701 ·
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
> 台账现状(2026-09-17):✓ 呼应成立 1742 件 · ✗ 无生成端 285 件 · ◆ 人工件 209 件 · 无法验证 0 · 未归类 0。
|
|
> 台账现状(2026-09-17):✓ 呼应成立 1742 件 · ✗ 无生成端 285 件 · ◆ 人工件 209 件 · 无法验证 0 · 未归类 0。
|
|
|
-> 缺料自查:`python scripts/chain_gap_check.py --check`;取料单:`docs/向振动线取料单_v0.1.md`。
|
|
|
|
|
|
|
+> 缺料自查:`python scripts/chain_gap_check.py --check`;取料单:`docs/向振动线取料单_v0.1.md`。
|
|
|
|
|
+
|
|
|
|
|
+### 7.5 `blade_1p_records` 的接续入口(本轮探到的确切起点)
|
|
|
|
|
+
|
|
|
|
|
+按"先啃运动学已确定的那件"继续,把下一次能接着做的入口探清楚了:
|
|
|
|
|
+
|
|
|
|
|
+| 事项 | 实测结论 |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| 覆盖范围 | 只两个测点:`Main_bearing_front` / `Main_bearing_rear`;662 行;时间 2026-01-27 11:35 ~ 2026-02-01 23:16(**w0127 首窗**,其索引在 `m5/tcm_index.parquet`,不在 `windows/w0127/`) |
|
|
|
|
|
+| 转速来源 | ★ 样件行的 `rpm` **不是**同一记录里 `Kurtosis` 行的 rpm:样件 `rpm=1601.0371`,而索引里 `trigger_time` 同一条的 `Kurtosis` 行 `rpm=1604.2537`。⇒ 1P 分析用的是**该记录自己的转速**(`RpmProfile` / `rawRPM` 那类),不是标量指标行带的转速。这条搞错,`f1P` 就对不上(速比 119.75 本身不变) |
|
|
|
|
|
+| 谱文件命名 | `spectra/p<NN>/<meas_name>_n<lines>_<seq>.npz`(例 `FFT_10000_Tr_n401_0000.npz`)—— 谱件**不带源件 UUID**,所以"某条记录 ↔ 某个 npz"要靠 `scripts/rudong_tcm_spectra.py` 的**枚举顺序**去对(该脚本在包内,规则可读) |
|
|
|
|
|
+| 谱本身 | npz 内是幅值数组;频率轴由索引的 `x_offset`/`x_delta`/`lines` 给出(例 `FFT_16000: lines=400, x_offset=0, x_delta=40` ⇒ 40 Hz/线)⇒ 频率轴可算;`f1P=0.223 Hz` 落在**第 0 条线**上 —— 这正是"1P 在低频谱里极难分辨"的原因,也解释了为什么这一族要专门做(样件 `energy_pct` 只有 0.38%) |
|
|
|
|
|
+
|
|
|
|
|
+**下一次接手的最短路径**(三步,都在包内可做):
|
|
|
|
|
+① 读 `scripts/rudong_tcm_spectra.py` 的枚举顺序,建立"记录 → npz"映射;
|
|
|
|
|
+② 用 `x_offset + i*x_delta` 重建频率轴,在 `f1P` 附近按候选口径(最近线 / ±2% 带内取最大 / 抛物线插值)取幅值,与样件 `a1P` 对拍;
|
|
|
|
|
+③ `a1P` 一旦对上,`struct`(疑似 `a1P / fleet` 归一分)、`energy_pct`、`g1/g2/g4` 闸门与 `verdict` 有望按同样办法逐个对拍。
|
|
|
|
|
+
|
|
|
|
|
+> 本轮到此为止的自我约束:**没有**在"峰值拾取口径未知"时硬写实现 —— 那样产出的数字无法证明是复现,只会给交付物掺进"看起来对"的东西。取料单里那**一句话**(或那四个脚本)到位后,上面三步当天可做完。
|