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
This commit is contained in:
+2
-1
@@ -6,8 +6,9 @@
|
|||||||
|
|
||||||
## 2026-09-01 — 方案B 现场调校定稿:进入加深 + 释放调浅(固件 V4.06)
|
## 2026-09-01 — 方案B 现场调校定稿:进入加深 + 释放调浅(固件 V4.06)
|
||||||
|
|
||||||
> **固件版本:V4.06**(cmcng.h:FIRMWARE_VER="4.06" + MAIN=4/SUB=6)。devlog 修订 V2.15。
|
> **固件版本:V4.07**(cmcng.h:FIRMWARE_VER="4.07" + MAIN=4/SUB=7)。devlog 修订 V2.16。
|
||||||
> **状态:方案B 定稿候选**——SENS=3 现场实测接近 PD132T,等比推全档。
|
> **状态:方案B 定稿候选**——SENS=3 现场实测接近 PD132T,等比推全档。
|
||||||
|
> **V4.07 微调**:SENS=0 进入 357→**337**(等比值偏低档触发过深,现场回调折中)。最终表:进入 `{337,71,38,25}`、释放 `{51,27,18,12}`。
|
||||||
|
|
||||||
### 现场调校过程(用户金属板测试)
|
### 现场调校过程(用户金属板测试)
|
||||||
|
|
||||||
|
|||||||
@@ -280,7 +280,7 @@ if ((Origin - dlt_ORG) < CAPVD) { // CAPVD 回升至距基线不
|
|||||||
|
|
||||||
> **⚠ V4.05(2026-09-01)方案B 实验(USE_SLOW_RELEASE=0 + USE_PLANB_TABLE=1)**:对比路线——释放走**快滤波**(无慢滤波状态),手感对齐改由**调深释放阈值表** `ReleaseTable_B={80,42,27,18}`(原始 `{60,32,21,14}` 加深 ~30%)承担。⚠ **关键认知:释放方向是 CAPVD 向 Origin 恢复,dlt 增大(调深)→ 释放线降低 → 释放更早**(与"调深=更严格"直觉相反,仿真+单测双确认)。仿真预测:深信号(≥0.2%)加深表比 PD132T 早 3~6 counts,原始表更接近;浅信号(~0.1%)加深表更接近(差 ~1.3 counts)。HR0/2 假释放结构性免疫(无悬停状态)。现场 A/B 对比后定稿,`USE_SLOW_RELEASE`/`USE_PLANB_TABLE` 两宏二选一保留。
|
> **⚠ V4.05(2026-09-01)方案B 实验(USE_SLOW_RELEASE=0 + USE_PLANB_TABLE=1)**:对比路线——释放走**快滤波**(无慢滤波状态),手感对齐改由**调深释放阈值表** `ReleaseTable_B={80,42,27,18}`(原始 `{60,32,21,14}` 加深 ~30%)承担。⚠ **关键认知:释放方向是 CAPVD 向 Origin 恢复,dlt 增大(调深)→ 释放线降低 → 释放更早**(与"调深=更严格"直觉相反,仿真+单测双确认)。仿真预测:深信号(≥0.2%)加深表比 PD132T 早 3~6 counts,原始表更接近;浅信号(~0.1%)加深表更接近(差 ~1.3 counts)。HR0/2 假释放结构性免疫(无悬停状态)。现场 A/B 对比后定稿,`USE_SLOW_RELEASE`/`USE_PLANB_TABLE` 两宏二选一保留。
|
||||||
|
|
||||||
> **⚠ V4.06(2026-09-01)方案B 现场调校定稿(USE_SLOW_RELEASE=0 + USE_PLANB_TABLE=1)**:现场实测——加深表失败(释放更早);**用户改 SENS=3 进入 21→25、释放 14→12 → 接近 PD132T 最高灵敏手感**。关键:**进入加深(触发更严)+ 释放调浅(释放更晚)**组合,滞回 66%→47%。全档等比(×25/21 进入、×12/14 释放):进入 `{357,71,38,25}`、释放 `{51,27,18,12}`。⚠ 与 PD132T 表值不再一致(行为等效);SENS=0 进入 300→357 变化大,现场低档漏检可单独回调。废弃 `ReleaseTable_B`(方向错误,并入 SensTable_1 调校)。
|
> **⚠ V4.06/V4.07(2026-09-01)方案B 现场调校定稿(USE_SLOW_RELEASE=0 + USE_PLANB_TABLE=1)**:现场实测——加深表失败(释放更早);**用户改 SENS=3 进入 21→25、释放 14→12 → 接近 PD132T 最高灵敏手感**。关键:**进入加深(触发更严)+ 释放调浅(释放更晚)**组合,滞回 66%→47%。全档等比(×25/21 进入、×12/14 释放)后 **V4.07 SENS=0 回调 357→337**:进入 `{337,71,38,25}`、释放 `{51,27,18,12}`。⚠ 与 PD132T 表值不再一致(行为等效)。废弃 `ReleaseTable_B`(方向错误,并入 SensTable_1 调校)。
|
||||||
|
|
||||||
##### 模式 2:平坦性判定 (USE_FLATNESS_EXIT=1) — ⚠ 默认禁用(#if 0,代码保留)
|
##### 模式 2:平坦性判定 (USE_FLATNESS_EXIT=1) — ⚠ 默认禁用(#if 0,代码保留)
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
#define TICK_MS 10
|
#define TICK_MS 10
|
||||||
#define ORIGIN 100000UL
|
#define ORIGIN 100000UL
|
||||||
|
|
||||||
/* 方案B V4.06 调校表 (与 TaskLoop.c 一致) */
|
/* 方案B V4.07 调校表 (与 TaskLoop.c 一致) */
|
||||||
static const uint16_t SensTable[4] = {357, 71, 38, 25}; /* 进入: 原{300,60,32,21} ×1.190 */
|
static const uint16_t SensTable[4] = {337, 71, 38, 25}; /* 进入: 原{300,60,32,21}, V4.07 SENS=0 回调 357→337 */
|
||||||
static const uint16_t SensTable_1[4] = { 51, 27, 18, 12}; /* 释放: 原{60,32,21,14} ×0.857 */
|
static const uint16_t SensTable_1[4] = { 51, 27, 18, 12}; /* 释放: 原{60,32,21,14} ×0.857 */
|
||||||
static const uint16_t SensTable_1_old[4] = { 60, 32, 21, 14}; /* 原始表(对比用) */
|
static const uint16_t SensTable_1_old[4] = { 60, 32, 21, 14}; /* 原始表(对比用) */
|
||||||
|
|
||||||
@@ -53,15 +53,15 @@ static void test_hysteresis_positive(void)
|
|||||||
printf("[OK] 滞回为正: 四档释放表均 < 进入表\n");
|
printf("[OK] 滞回为正: 四档释放表均 < 进入表\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_v406_tuned_values(void)
|
static void test_v407_tuned_values(void)
|
||||||
{
|
{
|
||||||
/* SENS=3: 进入 25 / 释放 12 (用户现场实测) */
|
/* SENS=3: 进入 25 / 释放 12 (用户现场实测) */
|
||||||
assert(SensTable[3] == 25);
|
assert(SensTable[3] == 25);
|
||||||
assert(SensTable_1[3] == 12);
|
assert(SensTable_1[3] == 12);
|
||||||
/* 其他档等比: ×25/21 与 ×12/14 */
|
/* 其他档: SENS=0 回调 337, 其余等比 ×25/21 与 ×12/14 */
|
||||||
assert(SensTable[2] == 38 && SensTable[1] == 71 && SensTable[0] == 357);
|
assert(SensTable[2] == 38 && SensTable[1] == 71 && SensTable[0] == 337);
|
||||||
assert(SensTable_1[2] == 18 && SensTable_1[1] == 27 && SensTable_1[0] == 51);
|
assert(SensTable_1[2] == 18 && SensTable_1[1] == 27 && SensTable_1[0] == 51);
|
||||||
printf("[OK] V4.06 调校表值正确: 进入{357,71,38,25} 释放{51,27,18,12}\n");
|
printf("[OK] V4.07 调校表值正确: 进入{337,71,38,25} 释放{51,27,18,12}\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_tuned_later_than_old(void)
|
static void test_tuned_later_than_old(void)
|
||||||
@@ -92,7 +92,7 @@ int main(void)
|
|||||||
{
|
{
|
||||||
printf("=== 方案B (快滤波+灵敏度表现场调校 V4.06) 单测 ===\n");
|
printf("=== 方案B (快滤波+灵敏度表现场调校 V4.06) 单测 ===\n");
|
||||||
test_hysteresis_positive();
|
test_hysteresis_positive();
|
||||||
test_v406_tuned_values();
|
test_v407_tuned_values();
|
||||||
test_tuned_later_than_old();
|
test_tuned_later_than_old();
|
||||||
test_release_reasonable();
|
test_release_reasonable();
|
||||||
printf("\n全部通过 ✓\n");
|
printf("\n全部通过 ✓\n");
|
||||||
|
|||||||
@@ -14,10 +14,10 @@
|
|||||||
#define __CMCNG_H__
|
#define __CMCNG_H__
|
||||||
|
|
||||||
#define PRODUCT_MODEL "DLD154"
|
#define PRODUCT_MODEL "DLD154"
|
||||||
#define FIRMWARE_VER "4.06"
|
#define FIRMWARE_VER "4.07"
|
||||||
#define HARDWARE_VER "3.00"
|
#define HARDWARE_VER "3.00"
|
||||||
#define FIRMWARE_VER_MAIN 4
|
#define FIRMWARE_VER_MAIN 4
|
||||||
#define FIRMWARE_VER_SUB 6
|
#define FIRMWARE_VER_SUB 7
|
||||||
#define HARDWARE_VER_MAIN 3
|
#define HARDWARE_VER_MAIN 3
|
||||||
#define HARDWARE_VER_SUB 0
|
#define HARDWARE_VER_SUB 0
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,13 @@
|
|||||||
* SENS: 0=低灵敏, 3=高灵敏
|
* SENS: 0=低灵敏, 3=高灵敏
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
#if USE_PLANB_TABLE
|
#if USE_PLANB_TABLE
|
||||||
/* 方案B (V4.06): 现场实测调校 — SENS=3 进入 21→25、释放 14→12 接近 PD132T 最高灵敏手感
|
/* 方案B (V4.07): 现场实测调校 — SENS=3 进入 21→25、释放 14→12 接近 PD132T 最高灵敏手感
|
||||||
* 其他三档按等比 (进入 ×25/21=1.190, 释放 ×12/14=0.857) 推算:
|
* 其他三档按等比 (进入 ×25/21=1.190, 释放 ×12/14=0.857) 推算:
|
||||||
* {300,60,32,21}→{357,71,38,25} {60,32,21,14}→{51,27,18,12}
|
* {300,60,32,21}→{357,71,38,25} {60,32,21,14}→{51,27,18,12}
|
||||||
|
* V4.07: SENS=0 进入 357→337 现场回调 (等比值偏低档触发过深, 折中)
|
||||||
* 物理: 进入加深(触发更严) + 释放调浅(释放更晚), 滞回 66%→47%
|
* 物理: 进入加深(触发更严) + 释放调浅(释放更晚), 滞回 66%→47%
|
||||||
* ⚠ 与 PD132T 表值不再一致(行为等效); SENS=0 进入 300→357 变化大, 现场低档漏检可单独回调 */
|
* ⚠ 与 PD132T 表值不再一致(行为等效) */
|
||||||
const uint16_t SensTable[4] = {357, 71, 38, 25}; // 方案B: 进入调深 (V4.06 现场调校)
|
const uint16_t SensTable[4] = {337, 71, 38, 25}; // 方案B: 进入调深 (V4.07: SENS=0 回调 357→337)
|
||||||
const uint16_t SensTable_1[4] = { 51, 27, 18, 12}; // 方案B: 释放调浅 (V4.06 现场调校)
|
const uint16_t SensTable_1[4] = { 51, 27, 18, 12}; // 方案B: 释放调浅 (V4.06 现场调校)
|
||||||
#else
|
#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[4] = {300, 60, 32, 21}; // V2.11: 全档与 PD132T SensTable 完全一致 (0.458%/0.092%/0.049%/0.032% df/f)
|
||||||
|
|||||||
Reference in New Issue
Block a user