现场金属板测试: 灵敏度表已对齐, 但释放高度 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 编译
73 lines
1.7 KiB
C
73 lines
1.7 KiB
C
/**
|
|
**************************************************************************
|
|
* @file cmcng.h
|
|
* @version v1.0
|
|
* @date 2025-09-08
|
|
* @brief һЩÅäÖÃ
|
|
**************************************************************************
|
|
* Copyright notice & Disclaimer
|
|
* * Create 2025-09-08 by wangfq
|
|
* *
|
|
**************************************************************************
|
|
*/
|
|
#ifndef __CMCNG_H__
|
|
#define __CMCNG_H__
|
|
|
|
#define PRODUCT_MODEL "DLD154"
|
|
#define FIRMWARE_VER "4.03"
|
|
#define HARDWARE_VER "3.00"
|
|
#define FIRMWARE_VER_MAIN 4
|
|
#define FIRMWARE_VER_SUB 3
|
|
#define HARDWARE_VER_MAIN 3
|
|
#define HARDWARE_VER_SUB 0
|
|
|
|
|
|
#include <stdio.h>
|
|
#include <stdint.h>
|
|
|
|
|
|
#ifdef DEBUG
|
|
#define PRINT(X...) printf(X)
|
|
#else
|
|
#define PRINT(X...)
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct _LOOP_ACS_INFO
|
|
{
|
|
uint8_t flag_event;
|
|
uint8_t loop_num;
|
|
uint8_t freq_level;
|
|
uint8_t sensity;
|
|
uint8_t relay1_cng;
|
|
uint8_t relay1_state;
|
|
uint8_t relay2_cng;
|
|
uint8_t relay2_state;
|
|
uint8_t loop_state;
|
|
uint8_t output_mode;
|
|
uint8_t dir_mode;
|
|
uint8_t delay;
|
|
uint8_t car_state;
|
|
uint8_t direction;
|
|
uint8_t flag_loop_safe;
|
|
uint32_t loop_safe_counter;
|
|
uint8_t condition;
|
|
uint32_t frequent;
|
|
uint32_t loop_capvd;
|
|
int16_t variation;
|
|
uint32_t event_counter;
|
|
uint32_t report_counter;
|
|
} Loop_ACS_Info;
|
|
extern Loop_ACS_Info g_loop_acs_info;
|
|
|
|
|
|
extern uint8_t g_flag_output;
|
|
extern uint8_t g_flag_output2;
|
|
|
|
extern uint8_t g_input_div;
|
|
|
|
|
|
|
|
#endif
|