3. 信号调理技术:信号放大、滤波、隔离、线性化处理
做数据采集这些年,我最大的体会是:传感器出来的信号,很少能直接用的。你想想看,热电偶输出才几毫伏,PT100的阻值变化就那么一点点,工业现场还有各种干扰。这时候就需要信号调理技术登场了。
说白了,信号调理就是把原始信号"收拾"成ADC能愉快接受的样子。我习惯把这部分工作分成四大块:放大、滤波、隔离、线性化。咱们一个一个聊。
3.1 信号放大
放大是最基础的操作。为什么?因为很多传感器的输出信号太弱了。比如热电偶,温度变化1°C才产生几十微伏的变化。ADC的输入范围通常是0-5V或0-10V,你不放大,ADC根本分辨不出来。
我个人习惯用仪表放大器(Instrumentation Amplifier,简称INA)。它有三个特点:高输入阻抗、高共模抑制比、增益可调。这三个特性在工业现场特别实用。
选型时我关注三个参数:
- 增益范围:根据信号幅度和ADC量程来算。比如信号最大50mV,ADC量程5V,那增益至少100倍。
- 共模抑制比(CMRR):这个参数越高越好。工业现场共模干扰很严重,CMRR低了信号会被淹没。
- 噪声密度:放大器本身也会引入噪声。选低噪声的型号,比如AD620、INA128。
举个例子,我曾经做一个温度采集项目,热电偶信号只有0-20mV。我选了INA128,增益设成250倍,输出0-5V。效果很好,噪声控制在0.1%以内。
3.2 滤波
放大之后,噪声也被放大了。这时候就需要滤波。滤波的目的很简单:把有用的信号留下,把没用的干扰滤掉。
常见的干扰源:
- 50Hz工频干扰(来自电源线)
- 高频开关噪声(来自DC-DC转换器)
- 射频干扰(来自无线设备)
我一般用两种滤波器:
| 类型 | 特点 | 适用场景 |
|---|---|---|
| RC低通滤波器 | 简单、便宜、无源 | 低频信号,截止频率固定 |
| 有源滤波器(如Sallen-Key) | 增益可调、陡峭的滚降特性 | 需要精确截止频率的场景 |
嗯,这里要注意:滤波器的截止频率要选对。我见过有人把截止频率设得太低,结果有用的信号变化也被滤掉了。一般规则是:截止频率设为信号最高频率的3-5倍。
3.3 隔离
隔离是信号调理里最容易被忽视的一环。很多人觉得只要信号放大了、滤干净了就行。但工业现场,地环路干扰能让你怀疑人生。
隔离的作用:切断两个电路之间的电气连接,但让信号能传过去。常见的隔离方式有三种:
- 光耦隔离:用光传递信号,便宜,适合数字信号。
- 磁耦隔离:用变压器传递信号,适合模拟信号。
- 电容隔离:用电容耦合,速度快,适合高频信号。
我个人习惯在传感器和ADC之间加一级隔离。特别是当传感器和采集系统距离超过10米时,隔离是必须的。否则地电位差就能把ADC烧掉。
3.4 线性化处理
很多传感器的输出和被测物理量不是线性关系。比如热电偶,温度-电压曲线是非线性的;PT100的阻值-温度曲线也不是直线。如果不做线性化,采集出来的数据误差会很大。
线性化有两种方法:
- 硬件线性化:用模拟电路做补偿。比如用对数放大器处理热电偶信号。优点是实时性好,缺点是电路复杂、精度有限。
- 软件线性化:在MCU或上位机里用查表法或多项式拟合。优点是灵活、精度高,缺点是需要计算资源。
我现在基本都用软件线性化。查表法最常用:把传感器的标准曲线做成表格,采集到信号后直接查表得到物理量。如果表格不够密,可以用插值法。
// 热电偶线性化查表示例(简化版)
// 输入:电压值(mV)
// 输出:温度值(°C)
float lookup_table[] = {0.0, 0.5, 1.0, 1.5, 2.0, ...}; // 电压值
float temp_table[] = {0.0, 12.5, 25.0, 37.5, 50.0, ...}; // 对应温度
float linearize(float voltage) {
int i;
for (i = 0; i < TABLE_SIZE - 1; i++) {
if (voltage >= lookup_table[i] && voltage < lookup_table[i+1]) {
// 线性插值
float ratio = (voltage - lookup_table[i]) / (lookup_table[i+1] - lookup_table[i]);
return temp_table[i] + ratio * (temp_table[i+1] - temp_table[i]);
}
}
return -1; // 超出范围
}
知识体系总览
下面这张图是我自己整理的信号调理技术知识结构。你可以看到,四大技术不是孤立的,而是环环相扣的。
这张图把信号调理的四个核心模块串起来了。你从传感器拿到信号,先放大,再滤波,然后隔离,最后线性化。每一步都有讲究,每一步都不能省。
公众号:蓝海资料掘金营,微信deep3321