wangfq
|
672f143e99
|
feat(V4B): V4.24 — 环境重校准:永久环境变化自动恢复基线(金属板A拿走场景)
现场(2026-09-02实测): 线圈旁金属板A上电把Origin学低(128096),A拿走CAPVD弹回
真空场(128856) dev=+761(0.59%),被36321a1双向保护"dev>0永不更新"永久冻结
→ B触发需809cnt(正常54cnt) 灵敏度假性降低且不恢复(V4.20分钟级可自愈)
修复: dev>+4dlt高位两段式受控重校准
① 60s(ENV_RESYNC_WAIT)高位连续未回摆 → 判定永久环境变化(瞬态铁块类不污染)
② 学习基线B: 连续空闲窗200tick均值 + settle判稳(连续2窗漂移≤0.1%)
③ 空闲原子替换Origin, 清freeze/ORG/entry残留, slow snap, 黄灯恢复
- 学习期打断(回窗/dev<0/断线重连)→重算; 30s预算超时放弃保留旧Origin
- 黄灯模式4: 环境学习中常亮(优先级: 断开快闪>学习常亮>N短闪>灭)
- tests/test_env_resync.c 5场景ALL PASS(恢复66s/瞬态不学/打断重算/放弃/不震荡)
- docs: devlog V2.22 + spec V2.3 + 产品手册 V2.7 同步
|
2026-09-02 18:10:28 +08:00 |
|
wangfq
|
cd0fd90770
|
feat(V4B): V4.23 — 红灯呼吸对齐vd960Loop(≈2.6s) + 上电自检基准判稳
现场测试 DLD154V4 反馈两问题修复:
1. 红灯呼吸太快 → 借鉴 vd960Loop 效果 (main.c poll_red_pwm)
- 参数按 665/6800 缩放取整: 大步 100→39(≈5.9%), 近顶 20→10(≈1.5%),
分界 585(88%), 峰值保持 660×3 步
- 周期 ≈1.6s → ≈2.6s (仿真 42 步×60ms=2520ms)
2. 绿灯上电自检闪到"稳定基准值"才停 (TaskLoop.c 稳定期判稳)
- 根因: 固定 128 样本即判稳, 与基准是否稳定无关; static 计数不清零,
二次稳定期(安全复位)1 样本瞬间判稳
- 修复: 全局 g_stable_cnt/g_settle_cnt, 每窗(100样本≈1s)Origin 均值
漂移 ≤0.1% → settle++, 连续 2 窗 + 最少 128 样本判稳; 硬兜底 500
样本(5s); 计数判稳退出/INIT_VD 清零
验证: tests/test_power_on_stable.c (200/300/500/200 样本 PASS),
tests/test_red_breath.c (周期 2520ms/峰值保持/写值≤ARR PASS),
gcc -fsyntax-only 两文件 0 error (借 vd960Loop AT32F421 库头)
文档: devlog 置顶 + 修订表回填 V2.12~V2.20 + V2.21; product-manual §5.1/
核心特性; technical-spec V2.2 (§5.2 参数表/§7 判稳语义/§15 修订记录)
待现场验证: 呼吸观感、绿灯自检时长 (无车 2~3s / 首窗尖峰 3s / 5s 兜底)
|
2026-09-02 16:26:03 +08:00 |
|
wangfq
|
36321a171f
|
fix(V4B): 负variation铁块锁死修复 — 基线跟踪双向对称保护 (V4.20)
现场: 特殊铁块(磁导率主导)靠近 → variation负 → Origin被污染 → 离开时假进入 → 锁死不释放
根因: 基线跟踪单边保护(只挡dev>+4×dlt), 负偏差(CAPVD>Origin)照常更新Origin
FREEZE_TIMEOUT=10s后直接跳污染值更彻底
修复:
1. 偏差窗口对称 [-4×dlt, +4×dlt] — 负偏差也冻结基线
2. 负偏差只冻结、永不超时更新Origin(铁块停留多久不污染)
3. 正偏差保留FREEZE_TIMEOUT兜底(车辆长时间信号不丢)
4. 新增 EVT|neg_var_freeze 事件打印
单测: tests/test_neg_variation.c 6项全过(决策/超时/场景仿真)
文档: devlog V2.19
|
2026-09-02 10:26:41 +08:00 |
|
wangfq
|
3d8f412f33
|
feat(V4B): V4.07 SENS=0 触发回调 357→337 — 最终表 {337,71,38,25}/{51,27,18,12}
现场反馈: 等比值偏低档触发过深, SENS=0 回调至 337(300~357 折中)
- 进入表: {357,71,38,25} → {337,71,38,25}
- 释放表: {51,27,18,12} 不变
单测: test_planb_release.c 断言更新(V4.07), 全部通过
文档: devlog V2.16 + technical-spec §4.3.3
|
2026-09-01 15:31:05 +08:00 |
|
wangfq
|
778664067e
|
feat(V4B): 方案B现场调校定稿 V4.06 — 进入加深+释放调浅双表, 全档等比
现场实测: SENS=3 进入21→25 + 释放14→12 接近PD132T最高灵敏手感(用户调校)
- 关键认知: 释放方向是CAPVD向Origin恢复, 释放线调浅(dlt小)→更晚释放
(V4.05加深方向失败已记录, 现场实测确认调小有效)
- 全档等比: 进入×25/21 {300,60,32,21}→{357,71,38,25}
释放×12/14 {60,32,21,14}→{51,27,18,12}
- 滞回 66%→47%, 触发更严+释放更晚, 行为等效PD132T(表值不再一致)
- 废弃 ReleaseTable_B 独立表(方向错误, 并入 SensTable_1 调校)
单测: test_planb_release.c 更新(滞回正/表值/调浅释放≥原始4档×4速/释放时刻) ✓
test_release_slow_filter.c(方案A)仍通过
文档: devlog V2.15 + technical-spec §4.3.3 V4.06段
⚠ SENS=0 进入300→357变化大, 现场低档漏检可单独回调
|
2026-09-01 14:38:52 +08:00 |
|
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 |
|