4、数据采集技术:编码器类型、采集频率与分辨率、信号滤波与抗干扰、采集卡选型

大家好,我是老张。今天咱们聊聊数据采集这块硬骨头。说实话,搞运动控制这么多年,我见过太多系统跑飞、定位不准的案例,十有八九都出在数据采集这个环节。编码器信号没采好,后面PID调得再漂亮也是白搭。咱们一步步拆开来看。

4.1 编码器类型:增量式 vs 绝对式

编码器说白了就是电机的「眼睛」。它告诉控制器:轴现在在哪儿、转得多快。但这两只「眼睛」的视力差别很大。

4.1.1 增量式编码器

增量式编码器只输出脉冲信号。它不告诉你绝对位置,只告诉你「我动了多少步」。每次上电,位置都得从零开始重新找。

工作原理:内部有个码盘,上面刻着明暗相间的条纹。光通过条纹,产生A、B两路相位差90°的脉冲。通过判断A相领先还是B相领先,就知道正反转。

我个人的习惯:在项目初期选型时,如果系统允许每次上电回零(比如机床、机器人),我首选增量式。便宜、响应快、分辨率高。但要注意一点——断电后位置丢失。我曾经在一个包装机上吃过亏,客户突然断电,重新上电后机械手直接撞了限位。从那以后,但凡涉及安全,我至少会加个电池保持。

增量式编码器关键参数
  • 分辨率:每转脉冲数(PPR),常见500~5000 PPR
  • 输出类型:NPN/PNP、推挽、差分(RS422)
  • 最高响应频率:决定了你能跑多快

4.1.2 绝对式编码器

绝对式编码器就高级多了。它每个位置都有唯一的二进制码。上电就知道当前位置,不需要回零。多圈绝对式还能记住转了多少圈。

通信方式:现在主流是SSI、BiSS、EnDat、HIPERFACE。我个人偏爱BiSS,速度快、抗干扰好,而且开源协议不用交授权费。

避坑指南:我曾经在一个伺服项目里用了某品牌的17位单圈绝对式编码器。调试时一切正常,结果客户反馈「每次开机位置都不一样」。查了半天,发现是电池供电的掉电保持电路出了问题。嗯,绝对式也不是绝对可靠,电池得定期换。

对比项 增量式 绝对式
上电位置 未知,需回零 已知
成本 高(约2~5倍)
分辨率 可做很高(几万PPR) 受位数限制(常见17~23位)
抗干扰 一般(脉冲易受干扰) 较好(数字通信)
典型应用 步进电机、普通伺服 机器人、数控机床、AGV

4.2 数据采集频率与分辨率

这两个参数直接决定了你的控制精度。你想想看,采集频率不够,高速运动时位置信息就丢了;分辨率不够,定位精度就上不去。

4.2.1 采集频率

采集频率就是控制器每秒读取编码器数据的次数。单位是Hz或kHz。

怎么选? 有个经验法则:采集频率至少是电机最高转速对应脉冲频率的5~10倍。举个例子:电机最高转速3000rpm,编码器2500 PPR,那脉冲频率就是3000/60×2500 = 125kHz。采集频率至少625kHz,最好1MHz以上。

我建议:别卡着理论值选。实际项目中,线缆长度、干扰、CPU负载都会影响。我一般留50%余量。比如算出来需要1MHz,我会选1.5MHz或2MHz的采集卡。

4.2.2 分辨率

分辨率决定了你能分辨的最小位移。增量式编码器的分辨率就是每转脉冲数。绝对式编码器的分辨率由位数决定:2^N分之一圈。

举个例子:17位绝对式编码器,分辨率是1/131072圈。如果丝杠导程10mm,那理论定位精度就是10/131072 ≈ 0.076μm。嗯,理论上很美。但实际机械间隙、弹性变形、热膨胀都会吃掉这个精度。

我的经验:分辨率选高不选低。但别盲目追求超高分辨率。我曾经见过一个项目,用了23位编码器,结果机械振动导致位置数据一直在跳,最后不得不做低通滤波,反而降低了有效分辨率。合适才是最好的。

4.3 信号滤波与抗干扰

这是最容易被忽视的环节。很多工程师把编码器线一接就完事了,结果现场一跑,脉冲乱跳、位置漂移。说白了,工业现场就是个电磁干扰的大染缸。

4.3.1 常见的干扰源

  • 变频器:开关频率几kHz到几十kHz,谐波丰富
  • 电机动力线:大电流变化产生强磁场
  • 继电器、接触器:触点通断产生电弧
  • 电源纹波:开关电源的噪声

4.3.2 硬件滤波

硬件滤波是最直接的手段。常用的有RC低通滤波、施密特触发器整形、差分信号传输。

RC低通滤波:在编码器信号线上串电阻、并电容。截止频率f = 1/(2πRC)。我一般取R=100Ω,C=100pF,截止频率约16MHz。够用。

差分信号:强烈推荐用RS422差分传输。A+、A-两根线,干扰在两根线上同时出现,接收端做差就抵消了。我在一个焊接机器人项目里,编码器线走了20米,用的就是差分信号,一点问题没有。

4.3.3 软件滤波

硬件搞完了,软件还得补一刀。常用的方法:

  • 中值滤波:连续采3~5个值,取中间那个。适合去除毛刺。
  • 滑动平均:取最近N个值的平均。平滑效果好,但有延迟。
  • 限幅滤波:相邻两次采样值之差超过阈值就丢弃。适合防止脉冲跳变。
// 限幅滤波示例(C语言)
#define MAX_DELTA 100  // 最大允许变化量

int16_t last_value = 0;

int16_t limit_filter(int16_t current) {
    int16_t delta = current - last_value;
    if (abs(delta) > MAX_DELTA) {
        // 变化太大,认为是干扰,保持上次值
        return last_value;
    }
    last_value = current;
    return current;
}
注意:软件滤波会引入延迟。位置环的延迟会降低系统稳定性。我一般把滤波放在速度环之前,位置环尽量少滤波。具体怎么取舍,得看你的控制周期和机械特性。

4.4 采集卡选型

采集卡是连接编码器和控制器的桥梁。选错了,后面全白搭。

4.4.1 关键选型指标

  1. 通道数:你需要采集几路编码器?留2~4个备用通道。
  2. 最大输入频率:前面算过的脉冲频率,乘以安全系数。
  3. 接口类型:增量式用脉冲输入,绝对式用SSI/BiSS等通信接口。
  4. 隔离:强烈建议选带隔离的。光电隔离或磁隔离都行。不隔离的话,编码器线缆上的共模干扰会直接烧控制卡。我烧过一块,教训深刻。
  5. 通信协议:PCIe、EtherCAT、USB?看你的控制器支持什么。现在主流是EtherCAT,实时性好。

4.4.2 常见采集卡对比

品牌/型号 通道数 最大频率 接口 隔离 参考价格
NI 9401 8 10MHz TTL/差分 ¥3000+
Beckhoff EL5101 1 1MHz 差分 ¥800+
国产某品牌 4 5MHz TTL/差分 ¥1500+

我的建议:预算够就上NI或Beckhoff,生态好、资料多。预算有限的话,国产卡现在也做得不错,但一定要先买样品测试。我曾经帮朋友调试一块国产卡,发现它的差分接收器输入阻抗偏低,导致长线传输信号衰减严重。换了进口卡就没事了。

4.5 知识体系总览

下面这张图把本章的核心逻辑串起来了。从编码器类型到采集卡选型,每一步都有坑,每一步都有技巧。

数据采集技术知识体系 编码器类型 增量式 绝对式 采集参数 采集频率 分辨率 信号滤波与抗干扰 硬件滤波 软件滤波 屏蔽接地 采集卡选型 通道数 输入频率 接口类型 隔离

好了,数据采集这块就聊到这儿。编码器选型、采集频率计算、滤波方法、采集卡参数,每个环节都关系到最终的控制效果。下次遇到编码器信号异常,别急着换硬件,先按这个思路排查一遍,多半能找到问题。


公众号:蓝海资料掘金营,微信deep3321