feat(vd960Loop): V1.03 — 上电自检基准判稳同步 V4B V4.23
绿灯上电自检快闪: 原固定 128 样本(≈1.3s)即判稳, 与基准是否真稳无关;
stable_cnt 仅 init_vd_single 清零, 有限存在超时/安全复位(LC_Reset=1)
重学阶段残留计数 → 二次稳定期 1 样本瞬间判稳 (同 V4B 旧缺陷)。
修复 (四路 unit 独立):
- TaskLoop.h: +STABLE_ORIGIN_PPT 1 / STABLE_SETTLE_WINDOWS 2 /
STABLE_MAX_SAMPLES 500(≈5s兜底); Loop154_Unit +settle_cnt
- TaskLoop.c vd1_task_per_channel 稳定期: 每窗(100样本≈1s)完成比较
Origin 均值漂移 ≤0.1% → settle++, 否则清零; 判稳=最少128样本+
连续2窗稳定 或 500 样本兜底; 判稳退出清零
- init_vd_single / 有限存在超时 / 安全复位超时重学路径统一清零自检计数
- poll_green_led 条件不变: 绿灯闪至本路基准稳定才停 (四路独立)
验证: tests/test_stable_settle.c 5 项 PASS (常量200/首窗尖峰400/
持续漂移500兜底/重学复位200防呆/Origin=0守卫);
gcc -fsyntax-only TaskLoop.c 0 error
文档: vd960Loop/docs/devlog V1.03 置顶; DLD960_技术规格书/产品手册
V1.04 (上电稳定期/绿灯自检语义 + 修订记录)
cmcng.h: FIRMWARE_VER "1.02"→"1.03" (MAIN=1/SUB=3, SSUB=1保持)
待现场验证: 绿灯自检时长(干净≈2s/扰动3~4s/兜底5s)与四路独立闪烁
This commit is contained in:
@@ -33,7 +33,10 @@
|
||||
#define ALFA_CAP1 79 // IIR α = 79/256 ≈ 0.31 (@10ms → τ≈32ms)
|
||||
#define MAX_SLOPE_RATE 5 // 斜率限幅: 单次最大变化 5%
|
||||
#define ENTRY_CONFIRM 3 // 进入确认: 连续 N 次低于阈值
|
||||
#define STABLE_SAMPLES 128 // 稳定期样本数
|
||||
#define STABLE_SAMPLES 128 // 稳定期最少样本数 (128×10ms≈1.3s)
|
||||
#define STABLE_ORIGIN_PPT 1 // 基准稳定判据: 窗口均值漂移 ≤ Origin×0.1%
|
||||
#define STABLE_SETTLE_WINDOWS 2 // 连续 2 窗(100样本/窗≈1s)漂移达标 → 判稳
|
||||
#define STABLE_MAX_SAMPLES 500 // 硬兜底 ≈5s (防环境长期不稳绿灯无限自检)
|
||||
|
||||
/*===========================================================================
|
||||
* 基线冻结超时 (V2.3~V2.5)
|
||||
@@ -182,7 +185,8 @@ typedef struct {
|
||||
uint16_t fault_tick;
|
||||
|
||||
/*--- 稳定期 ---*/
|
||||
uint16_t stable_cnt;
|
||||
uint16_t stable_cnt; // 稳定期累计样本 (每次 CAP_OK +1)
|
||||
uint16_t settle_cnt; // 基准稳定连续窗口计数 (窗=100样本≈1s, 漂移≤0.1%则+1)
|
||||
|
||||
/*--- 调试 ---*/
|
||||
uint32_t xn_counter;
|
||||
|
||||
Reference in New Issue
Block a user