You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

动态传感器校准:嵌入式场景下旋转测量电感传感器的校准方案咨询

旋转电感式传感器动态校准解决方案

前置逻辑:信号活动性判别

先做旋转状态判定,避免停转阶段的无效值干扰校准参数:

  • 取最近20~50个采样点计算峰峰值,若峰峰值低于预设阈值(可根据传感器正常旋转时的最小输出幅值调整,参考值为10),判定为停转状态,冻结所有校准参数不更新。
  • 峰峰值超过阈值时判定为旋转状态,仅在该状态下执行后续校准逻辑。
    该逻辑可彻底解决停转阶段移动平均偏离真实值的问题。

可向内收缩的动态极值校准机制

放弃全局极值统计逻辑,选用以下两种嵌入式友好的实现方案:

方案1:带衰减的极值更新(内存占用极低,适合资源极受限的MCU)

给当前记录的最小值、最大值设置独立的衰减计数器,让极值范围具备缓慢向内收缩的能力,异常值仅会短期影响校准范围,不会造成永久偏移:

// 可根据实际场景调整参数
#define ATTEN_PERIOD 60000    // 极值衰减周期,单位ms,参考值1分钟
#define ATTEN_STEP 1          // 每次衰减步长
#define MIN_AMPLITUDE 20      // 保证最小输出幅值不低于该值,避免范围收缩为单点
static uint16_t calib_min = 2100, calib_max = 2200;
static uint32_t min_atten_tick = 0, max_atten_tick = 0;

// 旋转状态下每个采样点执行的极值更新逻辑
void update_calib(uint16_t sample) {
    uint32_t cur_tick = get_sys_tick();
    if (sample < calib_min) {
        calib_min = sample;
        min_atten_tick = cur_tick;
    }
    if (sample > calib_max) {
        calib_max = sample;
        max_atten_tick = cur_tick;
    }

    // 最小值衰减逻辑,可放在系统定时器回调中定期执行
    if (cur_tick - min_atten_tick > ATTEN_PERIOD) {
        if (calib_min < calib_max - MIN_AMPLITUDE) {
            calib_min += ATTEN_STEP;
        }
        min_atten_tick = cur_tick;
    }
    // 最大值衰减逻辑
    if (cur_tick - max_atten_tick > ATTEN_PERIOD) {
        if (calib_max > calib_min + MIN_AMPLITUDE) {
            calib_max -= ATTEN_STEP;
        }
        max_atten_tick = cur_tick;
    }
}

方案2:分块滑动窗极值统计(抗干扰能力更强,内存占用稍高)

如果MCU内存足够,开一个对应1030分钟采样量的环形缓存,将缓存拆分为510个固定大小的块,每个块独立统计自身的最小值、最大值,全局校准用的最小值取所有块最小值的中位数/平均值,最大值取所有块最大值的中位数/平均值。旧块被新采样数据覆盖时,全局校准范围会自动更新,天然支持向内收缩,且单个异常值仅会影响一个块的统计结果,抗干扰能力远高于普通全局极值统计。

平均值计算优化

类正弦信号的平均值等价于峰峰值的中点,直接用(calib_min + calib_max) / 2计算即可,完全不需要移动平均算法,也不会受停转状态的影响。

补充优化:异常值前置过滤

在所有信号处理逻辑前加一阶限幅滤波:当前采样值与上一个有效值的差值超过预设的最大跳变阈值(参考值为正常旋转时单采样间隔最大跳变值的2倍)时,直接丢弃该采样值,不参与校准和旋转计数,进一步降低异常值的干扰。


内容的提问来源于stack exchange,提问作者Ron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:15:03