From e9a19b40d307b58948eef08ac1724146306d7af9 Mon Sep 17 00:00:00 2001 From: wangfq Date: Tue, 25 Aug 2026 15:02:15 +0800 Subject: [PATCH] =?UTF-8?q?docs(vd960Loop):=209=E7=BA=A7=E5=88=B6=E7=81=B5?= =?UTF-8?q?=E6=95=8F=E5=BA=A6=E8=A1=A8=E8=AE=BE=E8=AE=A1=20(0.01%~5.00%=20?= =?UTF-8?q?=CE=94L/L,=20=E7=AD=89=E6=AF=94=E5=85=AC=E6=AF=942.198)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - variation-analysis.md §9.3.1: 9级 sens_in/sens_out 表 (0=最低, 8=最高) - sens_in {1638,745,339,154,70,32,15,7,3} 端点精确 0.01%/5.00% - sens_out 滞回渐变 50%→65%→90%/100% (高档防不释放) - 4级→9级迁移映射 0→3,1→4,2→5,3→7 - 工程警示: SENS=8 贴噪声底, SENS=0 只认重型车 - tools/variation_calc.py: --sens-table 9 支持 9级显示 (4级默认兼容) - devlog 2026-08-25 条目追加 9级制设计小节 代码落地 (set_factory_param/sens_level_from_config) 待 9级立项 --- vd960Loop/docs/devlog.md | 30 ++++++++++++++++++++++ vd960Loop/docs/variation-analysis.md | 38 ++++++++++++++++++++++++++++ vd960Loop/tools/variation_calc.py | 26 +++++++++++++------ 3 files changed, 86 insertions(+), 8 deletions(-) diff --git a/vd960Loop/docs/devlog.md b/vd960Loop/docs/devlog.md index 4d49887..bbb35fc 100644 --- a/vd960Loop/docs/devlog.md +++ b/vd960Loop/docs/devlog.md @@ -39,6 +39,36 @@ gcc 单测 PASS:0→0, 1→1, 2→2, 3→3 无折叠;`7&0x0F → 3` 兼容旧默认。实机待金属块复测(建议小金属块测临界感应高度)。 +### 9 级制灵敏度表设计(2026-08-25) + +用户给行业典型范围:**0.01% ~ 5.00% ΔL/L**(跨度 546 倍)。9 级等比公比 2.198,方向 0=最低、8=最高(与 4 级一致)。 + +| SENS | sens_in | ΔL/L 进入 | sens_out | ΔL/L 离开 | out/in | +|------|---------|-----------|----------|-----------|--------| +| 0 | 1638 | 5.00% | 819 | 2.50% | 50% | +| 1 | 745 | 2.27% | 373 | 1.14% | 50% | +| 2 | 339 | 1.03% | 170 | 0.52% | 50% | +| 3 | 154 | 0.47% | 100 | 0.31% | 65% | +| 4 | 70 | 0.21% | 46 | 0.14% | 65% | +| 5 | 32 | 0.098% | 21 | 0.064% | 65% | +| 6 | 15 | 0.046% | 14 | 0.043% | 90% | +| 7 | 7 | 0.021% | 6 | 0.018% | 90% | +| 8 | 3 | 0.01% | 3 | 0.01% | 100% | + +设计要点: +- 滞回渐变 50%→65%→90%/100%:高档 out 低于噪声底会不释放(对齐 DLD154Pro 最高档 86% 经验) +- 4 级→9 级迁移(就近):0→3、1→4、2→5、3→7(端点不再保留,需现场复测) +- 工程警示:SENS=8 dlt≈6 counts 贴噪声底(仅低噪声环境);SENS=0 dlt≈3275(只认重型车) +- 溢出检查:Origin×1638 = 214M < 2³² ✓ + +落地: +| 文件 | 内容 | +|------|------| +| `docs/variation-analysis.md` | §9.3.1 9 级制表(设计稿) | +| `tools/variation_calc.py` | `--sens-table 9` 支持 9 级显示(4 级默认兼容) | + +验证:工具 9 级端点 0.0092%/4.9988% ≈ 0.01%/5.00% ✓。代码落地(set_factory_param/sens_level_from_config)待 9 级立项。 + ### 补充根因(同日):INIT_VDs 硬编码覆盖配置 + flash 坏数据 现场串口日志(`Read_Cng_Store`)显示:配置 4 通道 SENS=3/2/1/0,但检测时 `Car_In` 全部打印 `sens_in:36`(SENS=2 表值)——4 通道检测全用 SENS=2。定位两个根因: diff --git a/vd960Loop/docs/variation-analysis.md b/vd960Loop/docs/variation-analysis.md index 50d6247..c12e7d9 100644 --- a/vd960Loop/docs/variation-analysis.md +++ b/vd960Loop/docs/variation-analysis.md @@ -274,6 +274,44 @@ variation = Origin − CAPVD = Origin·[1 − √(1 + ΔL/L₀)] > 交叉验证:DLD154Pro 技术文档 sens_in {108,54,28,14} 标注 ΔL/L = 0.330%/0.165%/0.085%/0.043%,恰为 SensTable/65536 的 2 倍——产品线已统一使用 `ΔL/L ≈ 2×SensTable/65536` 口径。 +### 9.3.1 9 级制灵敏度表(设计稿 2026-08-25) + +行业典型范围:**0.01% ~ 5.00% ΔL/L**(跨度 546 倍,9 级等比公比 2.198)。方向:SENS **0=最低灵敏度、8=最高灵敏度**(值越大越灵敏,与 4 级一致)。 + +**sens_in(车来触发)**: + +| SENS | sens_in | Δf/f | **ΔL/L** | 典型用途 | +|------|---------|------|----------|----------| +| 8(最高) | 3 | 0.005% | **0.01%** | 摩托车/低噪声极限档 | +| 7 | 7 | 0.011% | 0.021% | 摩托车 | +| 6 | 15 | 0.023% | 0.046% | 小型车/电动车 | +| 5 | 32 | 0.049% | 0.098% | 轿车 | +| 4 | 70 | 0.107% | 0.214% | 轿车/SUV | +| 3 | 154 | 0.235% | 0.470% | 常规 | +| 2 | 339 | 0.517% | 1.034% | 大车优先 | +| 1 | 745 | 1.137% | 2.273% | 大车/货车 | +| 0(最低) | 1638 | 2.500% | **5.00%** | 只认重型车/强干扰环境 | + +**sens_out(车走释放,滞回渐变 50%→65%→90%/100%)**: + +| SENS | sens_out | out/in | ΔL/L 离开 | +|------|----------|--------|-----------| +| 0 | 819 | 50% | 2.50% | +| 1 | 373 | 50% | 1.14% | +| 2 | 170 | 50% | 0.52% | +| 3 | 100 | 65% | 0.31% | +| 4 | 46 | 65% | 0.14% | +| 5 | 21 | 65% | 0.064% | +| 6 | 14 | 90% | 0.043% | +| 7 | 6 | 90% | 0.018% | +| 8 | 3 | 100% | 0.01% | + +- **滞回渐变原因**:高档 sens_in 很小,out 若按 50% 会低于噪声底 → 车走不释放。6/7/8 档收窄到 90%/100%(对齐 DLD154Pro 最高档 out/in=86% 经验) +- **4 级→9 级迁移**(就近):4级 SENS 0→9级3、1→4、2→5、3→7(4 级端点不再保留,迁移后阈值小幅变化,需现场复测) +- **工程警示**:SENS=8(0.01%)dlt≈6 counts 贴着噪声底,仅限低噪声环境;SENS=0(5%)dlt≈3275,只认重型车 +- **乘法溢出检查**:Origin(131072)×1638 = 214M < 2³² ✓ +- 代码落地:`set_factory_param` total=9 填上表;`sens_level_from_config` 改 `sensitvity & 0x0F`(0~8 直接索引);协议 sensitvity 0~8 + ### 9.4 电容档位无关性(33/43/66/76nF) 四档电容只改绝对工作频率 f₀ = 1/(2π√(L₀C)): diff --git a/vd960Loop/tools/variation_calc.py b/vd960Loop/tools/variation_calc.py index b70ff02..59f4fff 100644 --- a/vd960Loop/tools/variation_calc.py +++ b/vd960Loop/tools/variation_calc.py @@ -35,7 +35,13 @@ import sys CAP_OPTIONS = (33, 43, 66, 76) # 线圈内部电容四档 (nF) ORIGIN_DEFAULT = 131072 # MEASUREMENT_BASE = 2^17 SENS_TABLE = {0: (216, 108), 1: (108, 72), 2: (36, 18), 3: (10, 9)} +SENS_TABLE_9 = { # 9级制设计稿 (0=最低, 8=最高, 0.01%~5.00% ΔL/L) + 0: (1638, 819), 1: (745, 373), 2: (339, 170), 3: (154, 100), 4: (70, 46), + 5: (32, 21), 6: (15, 14), 7: (7, 6), 8: (3, 3), +} SENS_NAMES = {0: "0(低)", 1: "1(中)", 2: "2(高)", 3: "3(最高)"} +SENS_NAMES_9 = {0: "0(最低)", 1: "1", 2: "2", 3: "3", 4: "4", + 5: "5", 6: "6", 7: "7", 8: "8(最高)"} # ---------------------------------------------------------------- 核心计算 @@ -91,14 +97,17 @@ def parse_var_3byte(hex_str): return v -def fmt_sens_table(): - lines = ["灵敏度档位 → ΔL/L 触发阈值 (vd960Loop SensTable, 一阶 ΔL/L≈−2×vr):"] - lines.append(f"{'SENS':<8}{'进入表':<8}{'离开表':<8}{'Δf/f进入':<12}{'ΔL/L进入':<12}{'ΔL/L离开'}") - for sens in (0, 1, 2, 3): - sin, sout = SENS_TABLE[sens] +def fmt_sens_table(sens_count=4): + """打印灵敏度档位对照表 (4级或9级)""" + table = SENS_TABLE if sens_count == 4 else SENS_TABLE_9 + names = SENS_NAMES if sens_count == 4 else SENS_NAMES_9 + lines = [f"灵敏度档位 → ΔL/L 触发阈值 ({sens_count}级制, 一阶 ΔL/L≈−2×vr):"] + lines.append(f"{'SENS':<10}{'进入表':<8}{'离开表':<8}{'Δf/f进入':<12}{'ΔL/L进入':<12}{'ΔL/L离开'}") + for sens in sorted(table): + sin, sout = table[sens] vr_in = sin / 65536.0 vr_out = sout / 65536.0 - lines.append(f"{SENS_NAMES[sens]:<8}{sin:<8}{sout:<8}" + lines.append(f"{names[sens]:<10}{sin:<8}{sout:<8}" f"{vr_in * 100:>7.4f}%{'':<4}{-2 * vr_in * 100:>8.4f}%{'':<4}{-2 * vr_out * 100:>8.4f}%") return "\n".join(lines) @@ -186,12 +195,13 @@ def main(): help="反推模式: 给定 |ΔL/L|%% → 所需 variation") p.add_argument("--parse-var", metavar="HEX6", help="解析 V1.05 协议 3B LE 有符号补码 (如 F6FFFF = −10)") - p.add_argument("--sens-table", action="store_true", help="打印灵敏度档位对照表") + p.add_argument("--sens-table", nargs="?", const="4", type=int, choices=[4, 9], + help="打印灵敏度档位对照表 (4=4级制默认, 9=9级制设计稿)") p.add_argument("--interactive", action="store_true", help="交互模式") args = p.parse_args() if args.sens_table: - print(fmt_sens_table()) + print(fmt_sens_table(args.sens_table)) return if args.parse_var: