Files
vd-analysis/docs/pd136ha-to-dld154v4b-delivery-alignment.md
T
wangfq 96ba80bcb3 docs: 新增 PD136HA → DLD154V4B 交付对齐分析(替换评估)
- docs/pd136ha-to-dld154v4b-delivery-alignment.md(17.9KB,11 节)
  · 口径前提:两型号同为 Origin×表>>16,BASE 32768 vs 131072 不影响百分比口径
  · 进入灵敏度 4 档对照(现役方案B + PD132T 备选表),偏差非单调(档0 +108%)
  · 释放/滞回对照:V4B 离开/进入比 15~48% vs PD136HA 50~67%
  · 判据强度差异与高速车/短占压风险(100km/h 占压 36ms vs 低Q 50ms 确认)
  · 超时常量同源实证:HOLD 5*1200/6000、LC_HOLD 4*1200/4800(均 300s/240s)
  · 拨码:SA_1/SA_2 语义一致可直接照搬(两型号引脚均上拉,ON=读出 0)
  · 线圈电感四级门为替换最大风险(<24µH 恒判车)
- README: 新增「交付对齐报告」索引 + docs 树补全
- 两份 model analysis 加双向交叉链接
2026-09-11 02:24:10 +08:00

266 lines
18 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PD136HA → DLD154V4B 交付对齐分析
> **日期**2026-09-11
> **依据**`reference/PD136HA_V3.14-20211116/`HC32F005,固件 V3.14 / 2021-11-16,源 `user/main.c`
>     `DLD154V4B/utilities/at32f421_freertos_demo/`AT32F421F8P7,固件 V4.36.40,源 `src/TaskLoop.c`
>     `models/PD136HA/analysis.md`、`models/DLD154V4B/analysis.md`
> **场景**:现场/客户在用 PD136HA,评估以 DLD154V4B 替换后的**灵敏度一致性、手感差异、配置迁移、异常行为**。
> **目标**:给出可直接用于现场重拨与交付话术的对照表,并把所有"不能靠文档定论"的点明确列为实测项。
---
## 0. 结论摘要
| # | 类别 | 结论 | 等级 |
|---|------|------|------|
| 1 | 灵敏度口径 | ✅ **两型号可直接比百分比**(同为 `Origin×表>>16` 归一,BASE 差异不影响口径) | — |
| 2 | 进入灵敏度 | ⚠ 4 档偏差**非单调**:档0 V4B 钝 **+108%**,档2 灵敏 **30%**,档1/3 偏差约 11% | 中 |
| 3 | 释放/滞回 | ⚠ V4B **滞回显著更强**(离开/进入比 15~48% vs PD136HA 50~67%)→ 释放略晚、更抗抖 | 中 |
| 4 | 脉冲宽 / 超时常量 | ✅ **500ms / 300s / 240s 逐字同源**,零对齐成本 | — |
| 5 | 输出延时档 | ⚠ PD136HA 有 4 档脉冲延时(0 / 0.6 / 1.6 / 3s),**V4B 无对应项** | 高 |
| 6 | 拨码迁移 | ✅ **SA_1/SA_2 语义一致,拨码位置可原样照搬**;但文档公式表述有误导(见 §7.3) | 低 |
| 7 | 判据强度 | ⚠ 单次越线 vs 3~5 次确认 → **高速车 / 短占压风险**,必须实测 | 高 |
| 8 | 上电就绪 | ⚠ 从 ~1s(闪灯 6 次约 4s) 变为 **6.3~11.3s**(低Q 10s | 中 |
| 9 | 线圈质量门 | 🔴 **替换最大风险**:V4B 有电感四级判定(含"恒判车"与"判为断开"),PD136HA 无 → **老线圈可能直接不工作** | 高 |
| 10 | 异常处理 | ✅ V4B 全面优于 PD136HA(断开**不断电自愈** vs 整机复位) | — |
---
## 1. 平台与量纲对齐(口径前提)
| 项 | PD136HA | DLD154V4B | 对齐含义 |
|---|---|---|---|
| MCU | HC32F005M0+ | AT32F421F8P7M4120MHz | — |
| 运行形态 | 裸机主循环 | FreeRTOS 多任务 | — |
| **归一化基数 BASE** | **32768**2^15 | **131072**2^17 | **差 4 倍** |
| 测量窗 | ≈21.8ms12MHz 假设,⚠待实测) | **1.09ms**131072 / 120MHz | 快 ~20× |
| CAPVD 消费节拍 | 21.8ms | **10ms** | 快 2.2× |
| 阈值公式 | `dlt = Origin × SensTable[SensLevel] >> 16` | `dlt = Origin × SensTable[SENS] >> 16` | **逐字同构** |
### 1.1 为什么 BASE 差 4 倍、百分比却可直接比
两型号的**相对阈值都等于"表值 / 65536"**,与 BASE 无关:
```
相对阈值 = dlt / Origin = (Origin × 表值 >> 16) / Origin ≈ 表值 / 65536
```
物理上 `CAPVD ≈ BASE × (f₀/f)`,故 `(Origin CAPVD)/Origin ≈ Δf/f`,阈值表直接就是 Δf/f 的千分位表达 —— **同一张表值在两型号上代表同一个频率偏移百分比**。因此:
- ✅ 对照表**直接比** `表值/65536`,**不要比表值本身**(162 vs 337 数字差一倍,实际只差在档0);
- BASE 唯一的影响是**绝对码值分辨率**:同一个 dlt,在 V4B 上的计数是 PD136HA 的 **2~4 倍**(如档3 进入 14 → 50 counts),量化误差小 3.6~8.3×;
- ⚠ **第三方应用**若直接读 `variation` 绝对值再除以固定基数,两型号会差 4 倍。详见 skill `loop-measure-base-alignment`×4 检查清单。
---
## 2. 进入灵敏度对齐(Δf/f,正索引 0=最低灵敏 → 3=最高灵敏)
| 档 | PD136HA 表值 | Δf/f | ΔL/L | V4B 方案B 表值 | Δf/f | 偏差 | V4B PD132T 表值 | Δf/f |
|---|---|---|---|---|---|---|---|---|
| 0(低) | 162 | 0.2472% | 0.494% | 337 | **0.5142%** | **+108.0%** | 300 | 0.4578% |
| 1(中) | 81 | 0.1236% | 0.247% | 71 | 0.1083% | 12.3% | 60 | 0.0916% |
| 2(高) | 54 | 0.0824% | 0.165% | 38 | **0.0580%** | **29.6%** | 32 | 0.0488% |
| 3(最高) | 28 | 0.0427% | 0.085% | 25 | 0.0381% | 10.7% | 21 | 0.0320% |
> V4B 方案B`USE_PLANB_TABLE = 1`V4.06/07 定稿)为**当前编译生效**;PD132T 完全对齐表为备选。
**解读(现场最关心的两句)**
1. **档0 是最大的不一致点**V4B 需要 **2.08 倍** 的频率偏移才触发。现场若因**相邻车道串扰、金属路面、变频器干扰**而把 PD136HA 放在档0,换 V4B 后会**明显变钝**——高底盘车、摩托车、拖车尾部可能漏检。**这类现场换机后建议直接测试档1**(偏差仅 −12%)。
2. **档2"高"V4B 反而更灵敏 30%**:这是方案B 把档2 从 60 收到 38 的直接结果。若现场本来用档2 且环境干净,换机后**误触发概率会上升**(尤其广告杆落杆、机械震动,参见 V4B 分析 §3.5 的 V2.8 历史事故)。
3. 档3(出厂/常用最高档)两型号最接近(−10.7%),**默认档位替换风险最低**。
---
## 3. 释放与滞回对齐
| 档 | PD136HA 离开表值 | Δf/f | V4B 方案B 离开表值 | Δf/f | 偏差 | PD136HA 滞回带 | V4B 滞回带 | PD136HA 离/进 | V4B 离/进 |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 81 | 0.1236% | 51 | 0.0778% | 37.0% | 81 | 286 | 50.0% | **15.1%** |
| 1 | 54 | 0.0824% | 27 | 0.0412% | 50.0% | 27 | 44 | 66.7% | 38.0% |
| 2 | 32 | 0.0488% | 18 | 0.0275% | 43.8% | 22 | 20 | 59.3% | 47.4% |
| 3 | 18 | 0.0275% | 12 | 0.0183% | 33.3% | 10 | 13 | 64.3% | 48.0% |
**判定语义(防误读)**
- 进入线 = `Origin dlt_in`CAPVD 低于此线 → 判有车)
- 离开线 = `Origin dlt_out`(CAPVD 回到此线以上 → 判离开)
- **离开表值越小 ⇒ 离开线越高 ⇒ 要求恢复得越接近 Origin 才释放 ⇒ 滞回更强、释放更晚、抗抖更好。**
**解读**:V4B 的离开表全档都比 PD136HA **小 33~50%**,即**释放线整体抬高**。现场换机后典型手感是:
- **车尾释放略晚、绿灯熄灭稍慢** → 道闸"跟车释放"会晚一点(这通常是**好事**:防抖落、防半截车误释放);
- **档0 差异最大(离/进 15.1% vs 50%**V4B 档0 的滞回带 286 countsPD136HA 81**异常宽**,说明档0 在 V4B 上是"极钝的进入 + 较高的释放线"的组合,现场基本不具备可比性;
- V4B 另有 PD136HA **完全没有**的兜底:**低Q 环带超时 2.5s 强制释放**`REL_BAND_TIMEOUT_TICKS=250`,V4.36.30)—— 板停在触发-释放带回滞带内不再永久卡死。
---
## 4. 判据与滤波对齐(手感与抗扰)
| 项 | PD136HA | DLD154V4B |
|---|---|---|
| 进入判定 | **单次越线即判,无去抖** | `CAPVD < Origindlt` 连续 **3/4/5 次**(按 Q 档) |
| 进入确认耗时 | ≈1 个探测节拍 **~21.8ms** | **30~50ms**3~5×10ms+ IN_DELAY 500ms(时序标志) |
| 斜率限幅 | ❌ 无 | ✅ **单次变化 >5% 截断**(拒 EMI / 闪电尖峰) |
| 滤波 IIR | α=64/256 @21.8ms → **τ≈87.4ms** | α=79/256 @10ms**τ≈32ms**(低Q 释放另用 REL_ALFA=30 → τ≈85ms |
| 基线 | 256 窗滑动 ≈ **5.59s**,有车冻结 | 500 窗 ≈ **5s**,有车冻结 + 冻结超时 10s + 环境重校准 + 释放后降权补偿 |
| 离开判定 | 单次越线 | 简单滞回 **3~5 次防抖**(平坦性法 `#if` 禁用)+ 环带超时 2.5s |
| 拨码去抖 | 6 次 | 5 次 |
### 4.1 ⚠ 关键风险:高速车 / 短占压
PD136HA 是**单次越线**,等效响应 ~21.8msV4B 需 **30~50ms** 持续偏置,且进入前要过 **τ≈32ms** 的 IIR。
粗算:车长 1m 的线圈,**100km/h27.8m/s)占压约 36ms**。
| 车速 | 占压时间 | PD136HA(单次) | V4B 低Q5 次=50ms |
|---|---|---|---|
| 60km/h | 60ms | ✅ | ✅(临界) |
| 100km/h | 36ms | ✅ | ⚠ **可能漏检** |
| 120km/h | 30ms | ✅ | ⚠ 高风险 |
> **必须在现场实测**:用已知车速(或人工快速甩金属板)验证 V4B 高Q/低Q 两档的最小可检占压时间。若现场有高速道口,这是**是否可替换的硬门槛**。
---
## 5. 输出与时序对齐
| 项 | PD136HA | DLD154V4B | 结论 |
|---|---|---|---|
| 继电器 1RLY1 | `SET_PLUS(DIP7)` ? `VD_FLAG\|FLAG_OUT`(宽存在) : `FLAG_PLUSE`(脉冲) | `SET_PLUS(SW_3)` ? `VD_FLAG\|FLAG_OUT`(存在) : `FLAG_PLUSE`(脉冲) | ✅ **分支结构逐字同构** |
| 继电器 2RLY2 | `VD_FLAG` 存在输出,**无延时** | 存在输出(绿灯镜像) | ✅ 一致 |
| 脉冲宽 | `PLUSE_DELAY=10` ×50ms = **500ms** | `PULSE_DELAY=10` ×50ms = **500ms** | ✅ **同源同值** |
| IN_DELAY | 10 ticks(进入防抖计数已注释) | 500ms(时序标志,不影响继电器) | ✅ 等效 |
| **输出延时档** | **`DELAY_TIME[3SET_DLY]` = {0,12,32,60}×50ms = 0 / 0.6 / 1.6 / 3.0s**<br>作用于**脉冲输出的触发延时** | ❌ **无对应配置**(脉冲前固定 PULSE_DELAY=500ms | 🔴 **功能缺口** |
| 离开延时 | `OUT_DELAY=39`1.95s,相关计数已注释) | `SW_4=ON`**离开延时 500ms** | ⚠ 语义不同 |
| 安全复位 | DIP8 = 有限存在 | `SW_5` = 安全复位(触发复位) | ⚠ 需对照现场用途 |
> **§5 最高优先确认项**PD136HA 的延时档(0/0.6/1.6/3s)现场**是否在用**
> 若现场依赖 1.6s/3s 的脉冲延时(例如配合道闸缓冲、或错开相邻车道脉冲),**V4B 上无等效拨码**,需评估用上位机/时序改造替代 —— 这是替换前的**功能确认项**,不是性能项。
---
## 6. 超时与异常对齐(★ 同源常量,零成本)
| 项 | PD136HA | DLD154V4B | 结论 |
|---|---|---|---|
| 有限存在 | `HOLD_TIME = 5*1200 = 6000` @50ms = **300s****整机复位** | `HOLD_TIME = 6000` @50ms = **300s** | ✅ **数值逐字同源** |
| 安全复位(重学基线) | `LC_HOLD_TIME = 4*1200 = 4800` @50ms = **240s** → 重学基线 | `LC_HOLD_TIME = 4800` @50ms = **240s** | ✅ **数值逐字同源** |
| 看门狗 | WDT ≈ **820ms** | IWDT ≈ **1.64s**TMR15 ISR 计数 + 主循环 500ms 喂狗) | ⚠ 量级相同,V4B 更长 |
| 上电就绪 | 1s 延时 + LED 闪 **6 次**(≈4s),含继电器自检 | 判稳 ≈**1.3s** + 就绪巩固期 **5 / 7 / 10s**(按 Q 档,绿灯慢闪) | ⚠ **变长 1.5~3×** |
| 线圈断开 | `LOOP_OK=0`**整机复位**(反复复位) | 保持释放 + 黄灯快闪 + 四级电感监视 + **热切换自愈 ~6s(不断电)** | ✅ **V4B 显著更优** |
| 灵敏度拨码变更 | **整机复位** | **不重启**5 次去抖生效 | ✅ **V4B 更优** |
| 环境重校准 | ❌ 无 | ✅ 2s 预判 → 7s 补偿 → 2s 恢复 | ✅ V4B 更优 |
**两条"意外好消息"**`5*1200 / 4*1200``6000 / 4800` 是**同一组常量**50ms tick 下均为 300s / 240s)。这说明 PD136HA 与 V4B 虽分属两条血统(前者 PD132L 系 HC32 移植,后者 M1H 现代实现),却共享同一族**超时语义**——替换后这部分的现场预期**完全不用改**。
---
## 7. 拨码迁移对照
### 7.1 PD136HA 拨码定义(源码实测)
| 位 | 引脚 | 标签 | 功能 |
|---|---|---|---|
| bit5 | P32 | **SA2** | 灵敏度 |
| bit4 | P03 | **SA1** | 灵敏度 |
| bit3 | P24 | SW3 | `SET_HOLD` 有限存在 |
| bit2 | P25 | SW2 | `SET_PLUS` 输出模式 |
| bit1 | P26 | SW1 | `SET_DLY` 延时 bit1 |
| bit0 | P35 | SW0 | `SET_DLY` 延时 bit0 |
- 全部配置为 **`GpioPuEnable` 上拉** ⇒ 拨码**闭合(ON)= 引脚读出 0**
- 灵敏度 `SENS = swok & 0x30`;延时 `SET_DLY = swok & 0x03`(索引 **反序** `DELAY_TIME[3SET_DLY]`,即 DIP5-6 全 OFF → 3.0s
### 7.2 DLD154V4B 拨码定义
| 引脚 | 标签 | 功能 |
|---|---|---|
| PA0 | SA_1 | 灵敏度 |
| PA1 | SA_2 | 灵敏度 |
| PA2 | SW_3 | 输出模式 |
| PA3 | SW_4 | 离开延时 500ms |
| PA4 | SW_5 | 安全复位 |
- PA0~PA4 全部 `GPIO_PULL_UP``at32f421_board.c:275`)⇒ **同样 ON = 读出 0**
### 7.3 ✅ 灵敏度拨码语义:两型号一致,可原样照搬
| SA_2 | SA_1 | 档位 | 灵敏度 | PD136HA 进入 | V4B 方案B 进入 |
|---|---|---|---|---|---|
| ON | ON | 0 | 最低 | 0.2472% | 0.5142% |
| ON | OFF | 1 | 中 | 0.1236% | 0.1083% |
| OFF | ON | 2 | 高 | 0.0824% | 0.0580% |
| OFF | OFF | 3 | **最高** | 0.0427% | 0.0381% |
**结论**:**拨码位置无需换算,原样照搬到 V4B 即可得到同一档位语义**(同为"双 OFF = 最高灵敏")。两型号都是"SA_1 权重高于 SA_2"、都是上拉低有效,编码规则同构。
> ⚠ **文档表述待修正(非行为问题)**`DLD154V4B/docs/technical-spec.md:95` 与 `models/DLD154V4B/analysis.md:109 / :184` 写的 `SENS = 3-(sw&0x03)`(反码)与固件 `TaskLoop.c:632-642` 的 `switch` 分支**端点相反**(代码:mask 0x00→最低、0x03→最高)。该公式与 §7.3 表格(及 `product-manual.md:116-121`)不自洽。
> **30 秒实测即可定论**:单独翻转 SA_1(或 SA_2),看 DBG 打印的 `SENS` / `dlt` 变化方向;或万用表量 PA0/PA1 在 ON 时的电平。
### 7.4 ⚠ 输出模式(SW_3 / DIP7)极性
两型号结构**逐字同构**`SET_PLUS = 1 → RLY1 = 存在(宽)输出``SET_PLUS = 0 → RLY1 = 500ms 脉冲`
配合"ON = 读出 0"**拨到 ON → 脉冲输出;拨到 OFF → 存在输出**。
> `models/DLD154V4B/analysis.md` 与 `pd132t-to-v4b-delivery-alignment.md` 曾记为"代码注释与产品文档相反、待实测"。
> **本次源码核对结论:不是 bug,是变量命名误导** —— 变量名叫 `SET_PLUS` 但 `=1` 走的是"存在输出"分支;`product-manual.md:133`ON=脉冲输出)与代码**行为一致**。此条可从"待实测"降级为"已确认"。
---
## 8. 🔴 线圈质量门:替换的**最大**风险
PD136HA **没有**线圈电感质量判定;DLD154V4B 有**四级电感监视**(V4.36.37),且其中两级会**改变检测行为**:
| f 区间 | 电感(43nF | fault | 黄灯 | V4B 判定 |
|---|---|---|---|---|
| 18~125 kHz | 38µH~1.15mH | 0 | 灭 | 正常 |
| <18 kHz | L 偏大 | 1 | 一长一短 | 照常 |
| 125~156 kHz | 24~38µH | 1 | 一长一短 | 照常 |
| **156~171 kHz** | **20~24µH** | **2** | 一长两短 | 🔴 **恒判车(不随宏)** |
| **>171 kHz** | **<20µH 短路级** | **3** | 快闪 200ms | 🔴 **等同完全断开(出厂态)**:判定暂停 + 继电器保持释放 |
**现场影响**
- PD136HA 老线圈若**电感偏低(<38µH,即空场 f >125kHz** → 换 V4B 后**黄灯告警**
-**<24µHf >156kHz** → V4B **恒判车**,继电器可能常吸合 → **车道直接不放行**
-**<20µH** → 视为断开,**判定完全暂停**。
**替换前必须实测每路线圈的空场频率/电感**V4B 的 `EVT|coil_fault f:xx kHz L~xxx uH` 诊断可直接读)。这是**唯一一个"老设备能用、新设备不工作"级别的风险**,优先级高于所有灵敏度差异。
> 另注:V4B 另有**未解**问题 —— **23µH 悬停临界跳变极限环**(V4.36.40,代码未改,见 `models/DLD154V4B/analysis.md` §9)。若现场线圈恰落在 20~24µH 边缘,该风险与 §8 叠加。
---
## 9. V4B 先进点(可直接用于交付话术)
1. **抗扰**:斜率限幅 5% + 3~5 次确认 + IIR 快 2.7× → 对变频器/广告杆/闪电的鲁棒性显著优于单次判定的 PD136HA。
2. **线圈故障不停机**:断线/短路**不断电自愈约 6s**(热切换),PD136HA 是整机反复复位。
3. **拨码免断电**:灵敏度档位变更即时生效,PD136HA 需整机复位。
4. **环境自适应**:2s 预判 → 7s 补偿 → 2s 恢复的受控重校准(PD136HA 无),长时间温漂/金属板变化后可自动收敛。
5. **可诊断**DBG/EVT 串口输出 f、L、Origin、dlt、SENS、faultPD136HA 基本靠 LED 闪码。
6. **有限存在/安全复位语义完全同源**(300s / 240s),现场预期无需调整。
7. **分辨率**:同档 dlt 的计数是 PD136HA 的 2~4 倍,量化误差小 3.6~8.3×。
---
## 10. 待现场验证清单(替换前逐项打勾)
- [ ] **① 线圈电感**:每路线圈空场 f 是否落在 **18~125kHz**38µH~1.15mH)?<24µH 直接判定不可替换(§8)
- [ ] **② 最小可检占压**:用实测车速验证 V4B 高Q/低Q 档在 **100km/h(≈36ms 占压)** 下是否可靠触发(§4.1
- [ ] **③ 延时档用途**:现场是否使用 PD136HA 的 0.6/1.6/3s 脉冲延时?若在用,确认替代方案(§5)
- [ ] **④ 灵敏度档位**:现场当前 SA_1/SA_2 位置 → 按 §7.3 照搬;若为**档0**,必须复测灵敏度(V4B 钝 108%)
- [ ] **⑤ 拨码实测**:单翻 SA_1/SA_2 各一次,核对 `SENS/dlt` 方向与 §7.3 表格一致,并**顺手修正文档公式**(§7.3 注)
- [ ] **⑥ 上电就绪时间**:现场是否有"上电即可用"要求?低Q 线圈需 10s 巩固期(§6)
- [ ] **⑦ 输出模式**:确认 DIP7 / SW_3 位置与道闸期望(存在 vs 脉冲),并按 §7.4 极性核对
- [ ] **⑧ 相邻车道串扰**:若现场线距偏小,档1/档2 差值(−12% / −30%)会导致误触发倾向变化
---
## 11. 后续行动
- [ ] 修正 `DLD154V4B/docs/technical-spec.md:95``SENS = 3-(sw&0x03)` 表述(与代码/手册不一致)
- [ ] 修正 `models/DLD154V4B/analysis.md:109 / :184` 的同一处表述,并把 §7.4 的 `SW_3` 极性结论从"待实测"改为"已确认"
- [ ] `models/DLD154V4B/analysis.md` §3.5 的 `product-manual.md` 阈值数字为**方案A 时代**0.46/0.09/0.049/0.032%),现役方案B 实为 **0.5142/0.1083/0.0580/0.0381%** → 手册需同步
- [ ] 现场实测后回填 §10 结论,并补一份 `docs/pd136ha-to-dld154v4b-field-checklist.md`(可打印版)
- [ ] 将"线圈质量门(电感四级)作为替换前置门槛"写入交付流程