Commit Graph
20 Commits
Author SHA1 Message Date
wangfq 60413be73f feat(V4B): 方案B实验 V4.05 — USE_SLOW_RELEASE=0 + 调深释放阈值表 ReleaseTable_B
对比路线(与V4.04方案A A/B): 释放走快滤波(无慢滤波状态, 消除悬停风险),
手感对齐改由调深释放表 {80,42,27,18}(原始{60,32,21,14}加深30%)承担。

⚠关键认知(仿真+单测双确认): 释放方向是CAPVD向Origin恢复,
dlt增大(调深)→释放线降低→释放更早(与'调深=更严格'直觉相反)。
仿真预测: 深信号(≥0.2%)原始表更接近PD132T; 浅信号(0.1%)加深表更接近。

单测: tests/test_planb_release.c 新增(滞回为正✓/加深表释放≤原始表✓/释放时刻合理✓)
     test_release_slow_filter.c(方案A)仍通过, 两方案可回归
文档: devlog V2.14 + technical-spec §4.3.3 方案B段
2026-09-01 13:48:22 +08:00
wangfq 97a7fb2dba fix(V4B): 方案A现场复核修正 V4.04 — RELEASE_ALFA 18→21(精确τ117ms对齐PD132T) + 进入snap消除HR0/2假释放
现场金属板复测两现象:
1. 慢速抬板释放高度 V4B 仍比 PD132T 高一点(跟手速有关) — 根因: τ对齐用了近似口径
   (α18 精确τ≈137ms vs PD132T α79@43.7ms 精确τ≈118ms, α=79时 T×256/α 高估19.6%)
   + V4B 3次确认30ms。修正: RELEASE_ALFA 18→21 (精确τ≈117ms)。
2. 定在HR0/2(释放高度一半)保持~1s V4B释放、PD132T不释放 — 根因: 双滤波进入瞬态假释放
   (快滤波30ms确认进入, 慢滤波还悬在基线附近, 残余信号0.032%~0.044%时释放条件瞬时为真)。
   修正: 进入确认瞬间 snap loop1_CAPVD_slow = loop1_CAPVD (进入线恒深于离开线, 释放条件结构性为假)。

验证: gcc单测 τ fast=30ms/slow=120ms, 释放时机差 200ms ✓
仿真: 3s抬升高度差 +9mm→+3mm; 0.10%板HR0/2假释放消除 ✓
文档: devlog V2.13 + technical-spec §4.3.3
2026-09-01 09:46:55 +08:00
wangfq 9391e1b808 feat(V4B): 释放手感对齐 PD132T — 释放慢滤波(方案A, 固件 V4.03)
现场金属板测试: 灵敏度表已对齐, 但释放高度 V4B 比 PD132T 低
(刚离开触发位置即释放 vs 需离更远)。根因: IIR 滤波时间常数差异
(V4B 10ms+α79→τ32ms vs PD132T 43.7ms+α79/64→τ142~175ms),
释放阈值浅(进入20%)放大差异。

修复(USE_SLOW_RELEASE 开关, 默认 1):
- 新增独立慢滤波 loop1_CAPVD_slow(α=18/256 @10ms→τ≈142ms),
  吃原始 Value 不经斜率限幅, 复刻 PD132T 恢复速度
- 离开判定改用慢滤波值, 进入路径不变
- RELEASE_ALFA=18 可调(PD132T SET_FLT=ON 时用 15≈τ170ms)
- 同步: INIT_VD/稳定期/线圈重连
- 版本 V4.03(顺带修正 cmcng.h 字符串"4.00"与数字 4/2 不一致)

验证: gcc 单测 tests/test_release_slow_filter.c
τ fast=30ms/slow=140ms; 释放时机差 260ms ✓
文档: technical-spec §4.3.3 + devlog V2.12
待板级: 真机金属板测试 + MRS 编译
2026-08-31 16:52:45 +08:00
wangfq f0f2c29a04 V2.11: 灵敏度表全档与PD132T完全一致{300,60,32,21}/{60,32,21,14}(用户本机已调) + 全文档同步 2026-08-28 17:39:07 +08:00
wangfq e3fe373fe5 V2.11: 离开表改回分档{60,32,21,14}——现场确认SENUP标贴OFF=SET_ASB=1(出厂默认) + 文档同步 2026-08-28 11:55:30 +08:00
wangfq c43d5297cb V2.11: 拨码低有效(标贴ON=电平0)修正——恒14对应SENUP标贴ON, 出厂默认全OFF=分档态 2026-08-28 11:51:13 +08:00
wangfq 0651c3f67b V2.11: technical-spec §4.3.3 补充恒14离开阈值设计依据(对齐PD132T默认) 2026-08-28 11:44:37 +08:00
wangfq 7b2de21ef4 V2.11: 离开表恒14对齐PD132T默认(ASB=OFF), 进入+离开双向对齐 + 文档同步 2026-08-28 11:40:49 +08:00
wangfq b3bbb29300 feat(DLD154V4B): V2.11 灵敏度 0/1 档对齐 PD132T(216/108→300/60)
PD132T 客户现场替换平滑交付:
- SensTable {216,108,36,20} → {300,60,36,20}
  0/1 档严格对齐 PD132T (Δf/f 0.33%/0.16%→0.46%/0.09%)
  2/3 档保持 V4B 优化值 (与 PD132T 32/21 几乎一致)
- 离开表不动 (3 次确认+滞回已更稳)
- 文档同步: technical-spec/product-manual/release-notes/devlog (V2.11)
- 完整交付分析: vd-analysis/docs/pd132t-to-v4b-delivery-alignment.md
2026-08-28 10:38:02 +08:00
wangfq 794e097587 fix(DLD154V4B): 修复 WDT_DIV 分频枚举传值 bug — 实际分频 4 导致 410ms 超时不断复位
现场实测 LIMIT=100 (500ms 喂狗) 不断复位重启, 改 50 正常。
根因: wdt_divider_set() 参数是枚举值 (WDT_CLK_DIV_16=0x02),
宏误传 16 (0b10000) -> 3bit 寄存器截断为 0 = WDT_CLK_DIV_4
-> 实际分频 4, 超时 4x4096/40k = 410ms < 500ms 喂狗周期。
修复: WDT_DIV=2 (枚举值) + (wdt_division_type) 显式转换。
隔离测试 mock 升级为 3bit 截断+反推分频, 复现 bug 并断言修复。
vd960Loop 原实现用 WDT_CLK_DIV_64 枚举写法, 无此问题。
2026-08-28 09:08:42 +08:00
wangfq 8f43f8f1c9 feat(DLD154V4B): V2.10 新增 IWDT 硬件看门狗(超时≈1.64s,双保险喂狗)
- 对齐 DLD154Pro V3.03 方案: TMR15 ISR 5ms 递增 g_wdg_counter,
  主循环 poll_wdg() 每 500ms 喂狗, 超时 16×4096/40k ≈ 1.64s
- 双保险: ISR 死→计数不涨→永不喂狗; 主循环死→poll_wdg 不执行→复位
- main() 使能后立即喂一次, 给 FreeRTOS 启动留足时间
- 隔离测试 5 项断言全过 (init 配置/10s 喂狗 20 次/ISR 死不喂/边界 99-100 tick)
- 文档同步: technical-spec(架构图+§13.1 机制) / release-notes(V2.10)
  / product-manual(特性+版本) / roadmap / devlog
2026-08-28 08:56:33 +08:00
wangfq 859842aba0 feat(DLD154V4B): V2.9 平坦性离开判定默认关闭(现场实测不理想)+ 全量文档同步
- TaskLoop.h: USE_FLATNESS_EXIT 1→0,离开判定切回简单滞回 3 次防抖
  (与 DLD154Pro 一致);平坦性代码保留 #if 内可一行开启
- technical-spec: 模式1标默认(V2.9起)/模式2标禁用;修正模式1伪代码
  方向错误(CAPVD<Origin+dlt → (Origin-dlt)<CAPVD);延迟/误检率表同步
- product-manual/release-notes: 离开判定口径改'滞回+连续确认(平坦性可选)',
  最高档灵敏度 0.015%→0.031%(V2.8 残留);版本历史补 V2.7/V2.8 缺行
- roadmap: V2.6→V2.9 行更新 + 突破表离开判定
- devlog: 置顶 2026-08-28 条目(背景/决定/同步清单)
2026-08-28 08:45:34 +08:00
wangfq cb1c9c3f82 docs(DLD154V4B): 补充 SENS=3 调档现场原因 — 广告杆落杆误触发
现场现象: 广告杆/道闸落杆时最高灵敏度档(10/9)易误触发, 落杆机械动作+电机
电磁扰动越过 0.015% Δf/f 阈值。V2.8 调至 20/14(0.031% + 滞回70%)后
落杆扰动不再越线, 正常车辆信号(ΔL/L 1~5%)不受影响。
2026-08-27 16:26:24 +08:00
wangfq 50dbb07dde feat(DLD154V4B): 灵敏度最高档调整 SENS=3 10→20 + 文档同步
- src/TaskLoop.c: SensTable[3] 10→20 (Δf/f 0.015%→0.031%,
  ΔL/L 0.031%→0.061%), SensTable_1[3] 9→14 (滞回 90%→70%) —
  最高档原阈值贴近噪声底易误触发, 提高并加大滞回
- src/main.c: 注释掉重复定义 g_input_div=1 (TaskLoop.c:23 已有, 清理 ODR)
- docs/technical-spec.md §4.3.1 灵敏度表+表格+口径说明
- docs/reference_analysis.md §5.6 灵敏度表
- docs/devlog.md 置顶 2026-08-27 条目 + 修订记录 V2.8
2026-08-27 16:22:58 +08:00
wangfq 266ffc5909 docs: 四文档更新至 V2.6 — 单路 IIR + WINDOW_ORIGIN=500
- devlog: 新增 V2.6 架构简化章节 + 两阶段基线策略
- release-notes: V2.5→V2.6, 更新 M4 优化表(双路→单路 IIR)
- product-manual: V2.5→V2.6 + 版本历史
- technical-spec: §4.2 重写为单路 IIR ALFA_CAP1=79 @10ms,
  §4.3.2 去除 CAPVD_fast 引用, §4.4.3 两阶段基线表,
  §15 新增 V2.1 修订记录
2026-06-29 19:16:11 +08:00
wangfq 935e11e006 docs: 四文档同步更新至 V2.5
- devlog: 修订记录修正 30s→10s, 新增 V2.5
- release-notes: V1.6→V2.5, 新增 M4 优化特性 + 完整版本历程
- product-manual: V1.5→V2.5, 补充 V1.6~V2.5 版本历史
- technical-spec: V1.5→V2.5, 重写 §§4.2-4.5/5.2/12.1/13:
  - §4.2: 双路 IIR 架构(慢速基线 τ=135ms + 快速检测 τ=28ms)
  - §4.3.2: 进入确认机制(CAPVD_fast + ENTRY_CONFIRM=3)
  - §4.4: 斜率限幅 5% + 基线更新速率 1s (10ms tick)
  - §4.5: 冻结超时恢复演进史 V1.5→V2.5,完整逻辑 + 常量表
  - §5.2: Tick 改为 10ms,新增 FREEZE_TIMEOUT 参数
  - §12.1: 进入延迟 ~530ms,瞬态抑制,温漂 1s 补偿
  - §13: 新增 M4 优化编译选项
2026-06-29 10:57:24 +08:00
wangfq 7ccd26997f docs: §4.4.1 新增基线更新速率分析(DLD154/M1H/TLD-110 对比) 2026-06-24 11:48:53 +08:00
wangfq 2f6cb54847 fix: 时序参数修正 — OUT/PULSE_DELAY 均为500ms
- OUT_DELAY: 1.9s→500ms (10 tick), SW_4=ON时生效, OFF时为0
- PULSE_DELAY: 950ms→500ms (10 tick), 固定不变
- 删除 OUT_DELAY_FAST/PULSE_DELAY_FAST, 仅保留一组值
- SW_4 语义: 0=无离开延时, 1=500ms离开延时
- 同步更新产品手册、技术规格书、README、devlog
2026-06-24 09:13:46 +08:00
wangfq 07a80763cd fix: SW4 延时修正为500ms快速模式;RS485→TTL Tx调试口 2026-06-24 09:04:05 +08:00
wangfq 7d15be9783 docs: 添加产品手册和技术规格书 2026-06-24 08:11:01 +08:00