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变化大, 现场低档漏检可单独回调
This commit is contained in:
@@ -37,13 +37,11 @@
|
||||
#define ALFA_CAP1 79 // IIR α = 79/256 ≈ 0.31 (@10ms → τ≈32ms)
|
||||
#define RELEASE_ALFA 21 // 释放慢滤波 α = 21/256 ≈ 0.082 (@10ms → 精确τ≈117ms, V4.04: 对齐 PD132T α79@43.7ms 精确τ≈118ms; 原18→精确τ137ms偏慢)
|
||||
#define USE_SLOW_RELEASE 0 // 方案A总开关: 1=释放走慢滤波(对齐PD132T) 0=原快滤波释放
|
||||
#define USE_PLANB_TABLE 1 // 方案B: 快滤波释放 + 调深释放阈值表 (2026-09-01 实验, V4.05)
|
||||
// 1=释放判定用 ReleaseTable_B(加深30%, 各档滞回仍为正)
|
||||
// 0=释放判定用 SensTable_1(原始PD132T对齐表)
|
||||
// ⚠仿真预测: 加深→释放线低→CAPVD恢复更早碰到→释放更早(与直觉相反)
|
||||
// 深信号(≥0.2%)下原始表更接近PD132T; 浅信号(0.1%)下加深表更接近
|
||||
// 现场实测对比后定稿, 后续二选一保留
|
||||
#define RELEASE_TABLE_B { 80, 42, 27, 18} // 方案B 释放表 (V2.11 原始表 {60,32,21,14} 加深~30%)
|
||||
#define USE_PLANB_TABLE 1 // 方案B (V4.06): 快滤波释放 + 灵敏度表现场调校
|
||||
// 1=进入加深/释放调浅双表(见 TaskLoop.c, SENS=3: 25/12 现场实测接近PD132T)
|
||||
// 0=原始PD132T对齐表 {300,60,32,21}/{60,32,21,14}
|
||||
// 历史: V4.05 曾用 ReleaseTable_B 加深释放表(实验失败, 方向反)
|
||||
// V4.06 改为 SENS=3 进入21→25+释放14→12, 等比推全档
|
||||
#define MAX_SLOPE_RATE 5 // 斜率限幅: 单次最大变化 5% (物理限制, 拒绝 EMI 尖峰)
|
||||
#define ENTRY_CONFIRM 3 // 进入确认: 连续 N 次低于阈值才判定有车
|
||||
#define FREEZE_TIMEOUT 1000 // 基线冻结超时: ~10s @ 10ms/tick, 持续偏高且稳定后强制更新基线
|
||||
@@ -81,9 +79,6 @@
|
||||
*===========================================================================*/
|
||||
extern const uint16_t SensTable[4];
|
||||
extern const uint16_t SensTable_1[4];
|
||||
#if USE_PLANB_TABLE
|
||||
extern const uint16_t ReleaseTable_B[4]; // 方案B: 调深释放表 (V4.05 实验)
|
||||
#endif
|
||||
|
||||
/*===========================================================================
|
||||
* 全局状态变量 — 捕获 & 测量
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
#define __CMCNG_H__
|
||||
|
||||
#define PRODUCT_MODEL "DLD154"
|
||||
#define FIRMWARE_VER "4.05"
|
||||
#define FIRMWARE_VER "4.06"
|
||||
#define HARDWARE_VER "3.00"
|
||||
#define FIRMWARE_VER_MAIN 4
|
||||
#define FIRMWARE_VER_SUB 5
|
||||
#define FIRMWARE_VER_SUB 6
|
||||
#define HARDWARE_VER_MAIN 3
|
||||
#define HARDWARE_VER_SUB 0
|
||||
|
||||
|
||||
@@ -13,10 +13,17 @@
|
||||
* 离开阈值(滞回)= Origin × SensTable_1[SENS] / 65536
|
||||
* SENS: 0=低灵敏, 3=高灵敏
|
||||
*===========================================================================*/
|
||||
#if USE_PLANB_TABLE
|
||||
/* 方案B (V4.06): 现场实测调校 — SENS=3 进入 21→25、释放 14→12 接近 PD132T 最高灵敏手感
|
||||
* 其他三档按等比 (进入 ×25/21=1.190, 释放 ×12/14=0.857) 推算:
|
||||
* {300,60,32,21}→{357,71,38,25} {60,32,21,14}→{51,27,18,12}
|
||||
* 物理: 进入加深(触发更严) + 释放调浅(释放更晚), 滞回 66%→47%
|
||||
* ⚠ 与 PD132T 表值不再一致(行为等效); SENS=0 进入 300→357 变化大, 现场低档漏检可单独回调 */
|
||||
const uint16_t SensTable[4] = {357, 71, 38, 25}; // 方案B: 进入调深 (V4.06 现场调校)
|
||||
const uint16_t SensTable_1[4] = { 51, 27, 18, 12}; // 方案B: 释放调浅 (V4.06 现场调校)
|
||||
#else
|
||||
const uint16_t SensTable[4] = {300, 60, 32, 21}; // V2.11: 全档与 PD132T SensTable 完全一致 (0.458%/0.092%/0.049%/0.032% df/f)
|
||||
const uint16_t SensTable_1[4] = { 60, 32, 21, 14}; // V2.11: 离开分档与 PD132T 完全一致 (SENUP 标贴OFF=SET_ASB=1=出厂默认)
|
||||
#if USE_PLANB_TABLE
|
||||
const uint16_t ReleaseTable_B[4] = RELEASE_TABLE_B; // 方案B: 调深释放表 (V4.05 实验, 见 TaskLoop.h 注释)
|
||||
#endif
|
||||
|
||||
/*===========================================================================
|
||||
@@ -884,11 +891,7 @@ void vd1_task(void)
|
||||
/*================================================================
|
||||
* 有车状态 — 简单 cnt_release 防抖离开
|
||||
*================================================================*/
|
||||
#if USE_PLANB_TABLE
|
||||
loop1_dlt_ORG = ((uint32_t)loop1_Origin * ReleaseTable_B[loop1_SensLevel]) >> 16; // 方案B: 调深释放表(V4.05)
|
||||
#else
|
||||
loop1_dlt_ORG = ((uint32_t)loop1_Origin * SensTable_1[loop1_SensLevel]) >> 16;
|
||||
#endif
|
||||
loop1_dlt_ORG = ((uint32_t)loop1_Origin * SensTable_1[loop1_SensLevel]) >> 16; // 方案B(V4.06): 调浅释放表已并入 SensTable_1
|
||||
|
||||
#if USE_SLOW_RELEASE
|
||||
if ((loop1_Origin - loop1_dlt_ORG) < loop1_CAPVD_slow) { // 方案A: 用慢滤波值对齐 PD132T 释放手感
|
||||
|
||||
Reference in New Issue
Block a user