电控系统信号采集与滤波算法:从传感器到可靠数据
2026/5/8 12:32:56 网站建设 项目流程

电控系统信号采集与滤波算法实现

1)模拟信号的采集电路设计,如传感器选型(热电偶、霍尔传感器)、信号调理(放大、分压、隔离);
2)数字滤波算法(均值滤波、卡尔曼滤波、滑动窗口滤波)的代码实现与适用场景对比;
3)模拟滤波电路(RC 低通 / 高通、巴特沃斯滤波器)的参数计算与 PCB 布局技巧;
4)信号采集的抗干扰设计,如差分输入、接地隔离、屏蔽层处理;
5)多通道信号同步采集方案,如 ADC 多通道轮询、DMA 批量传输与数据拼接。

电控系统信号采集与滤波算法:从传感器到可靠数据

一、为什么信号处理如此重要?

一个真实的故事:某机器人团队调试电机电流反馈。读取ADC数值一直是1200左右,无论电机转不转。示波器一查——电源纹波高达200mV,完全淹没了10mV的电流采样信号。没有处理好信号采集,再强的控制算法也等于零。

本章将贯穿一条完整的信号链:物理量 → 传感器 → 调理电路 → ADC采集 → 数字滤波 → 可用数据。

二、模拟信号采集电路设计

2.1 传感器选型

物理量传感器类型输出信号选型要点
温度热电偶(K型)μV级电压需要冷端补偿、高增益运放
温度PT100电阻(100Ω@0℃)需要恒流源、电桥
电流ACS712电压(66mV/A)隔离型、带宽决定响应速度
位置霍尔开关数字脉冲磁铁强度、检测距离

热电偶信号极其微弱(μV/℃),必须经过精密运放放大后再送入ADC。使用INA333等仪表放大器能有效抑制共模噪声。PT100常用恒流源驱动,配合电桥测量微小电阻变化。

磁场随距离的三次方衰减,霍尔开关需要精确计算磁铁尺寸及强度,设计时应关注门限磁感应强度参数。

2.2 信号调理电路

保护电路

信号调理链

传感器
微弱信号

前置放大
仪表放大器

滤波
RC低通

电平移位
匹配ADC量程

ADC

TVS管

串联电阻

// 典型信号调理参数计算#definePT100_REF_CURRENT1.0f// 1mA恒流源#definePT100_0C_RES100.0f// 0℃时100Ω#defineV_REF2.5f// ADC基准电压2.5Vfloatpt100_to_temperature(uint16_tadc_value){// 电压 = ADC值 / 满量程 * V_REFfloatvoltage=(float)adc_value/4095.0f*V_REF;// 电阻 = 电压 / 电流floatresistance=voltage/0.001f;// 线性近似(0-100℃)floattemp=(resistance-100.0f)/0.385f;returntemp;}

2.3 隔离电路设计

工业现场中,传感器侧地、MCU侧地、功率地三者不能简单直连,否则构成共地噪声环路。

单点连接

隔离设计

隔离器件

隔离放大器
AMC1200

隔离SPI
ADuM3150

传感器地

模拟地

功率地

功率地

数字地

数字地

星形一点接


三、模拟滤波电路设计

3.1 基本原理

容抗与频率负相关:高频成分容易被电容旁路到地,保留直流和低频。电阻与电容在反馈网络中的连接方式决定滤波器类型。

3.2 RC低通滤波器

最简单的一阶无源低通滤波器,用于高频噪声衰减。

RC截止频率fc适用场景
1kΩ0.1µF1.59kHz电机电流采样
10kΩ0.1µF159Hz温度信号
10kΩ1µF15.9Hz压力信号
// RC滤波截止频率计算#defineRC_CUTOFF_FREQ(R,C)(1.0f/(2.0f*3.14159f*(R)*(C)))

二阶压控电压源低通滤波器(改善滚降特性)设计基本步骤:选择电容C,根据截止频率计算电阻,设定增益K。

// 巴特沃斯滤波器参数表(K=1)// 归一化参数 (截止频率=1 rad/s)// 1阶: S// 2阶: S^2 + 1.414S + 1// 3阶: (S+1)(S^2+S+1)// 根据此表可由频率缩放和阻抗缩放得到实际元件值。

3.3 PCB布局技巧

模拟滤波器性能高度依赖PCB布局,常见错误:电容接地回路过长(引入额外电阻和电感)、滤波器紧邻数字走线(寄生电容耦合数字噪声)。

问题后果解决方法
接地回路过长等效电阻、电感增大低阻抗回流路径,就近接模拟地
数字信号紧邻寄生电容使性能失效保持3W间距
反馈路径过长引入额外相位延迟元件紧靠放大器引脚

四、数字滤波算法

4.1 滤波器选型指南

场景推荐算法原因
光电传感器均值滤波白噪声为主,计算简单
电机电流卡尔曼滤波动态响应快,噪声有模型
温度测量滑动窗口滤波慢变信号,突发噪声
加速度计互补滤波融合多传感器

4.2 均值滤波

对M个连续采样值求平均平滑测量噪声。

// 均值滤波#defineFILTER_SIZE10staticuint16_tfilter_buf[FILTER_SIZE];uint16_taverage_filter(uint16_tnew_value){staticuint8_tindex=0;staticuint32_tsum=0;staticuint8_tcount=0;// 移除旧值,添加新值sum-=filter_buf[index];filter_buf[index]=new_value;sum+=new_value;index=(index+1)%FILTER_SIZE;if(count<FILTER_SIZE)count++;returnsum/count;}

4.3 滑动窗口滤波

保留最近N个数据,去除历史影响,对突变跟踪更好。可移除最大最小值以抑制脉冲噪声,适合压力传感器受管路敲击等场景。

4.4 卡尔曼滤波

采用状态空间模型建模:预测(根据系统模型)+更新(根据测量值)。算法对程序资源占用较大,但噪声抑制能力极强,适合传感器信号中有色噪声的场景。

// 一维卡尔曼滤波器结构typedefstruct{floatx;// 估计值floatP;// 估计误差协方差floatQ;// 过程噪声协方差floatR;// 测量噪声协方差floatK;// 卡尔曼增益}KalmanFilter_t;// 卡尔曼滤波器核心迭代floatkalman_update(KalmanFilter_t*kf,floatmeasurement){// 1. 预测估计值不变(无外部输入)// 2. 预测误差协方差kf->P=kf->P+kf->Q;// 3. 计算卡尔曼增益kf->K=kf->P/(kf->P+kf->R);// 4. 更新估计值kf->x=kf->x+kf->K*(measurement-kf->x);// 5. 更新误差协方差kf->P=(1.0f-kf->K)*kf->P;returnkf->x;}

4.5 滤波器性能对比

指标均值滤波滑动滤波卡尔曼滤波
计算量
内存占用中(N个点)低(4个float)
对突变跟踪
噪声类型白噪声脉冲噪声有色噪声

五、多通道信号同步采集

5.1 架构对比

DMA批量

通道2

ADC

DMA传输

内存数组

软件轮询

通道0

CPU读取

通道1

CPU读取

通道2

CPU读取

5.2 DMA批量采集

// DMA双缓冲配置#defineADC_BUFFER_SIZE1024uint16_tadc_buffer[ADC_BUFFER_SIZE];volatileuint8_tbuffer_ready=0;voidDMA_Init(void){// 配置ADC为连续扫描模式ADC_InitTypeDef adc_init;adc_init.ScanConvMode=ENABLE;adc_init.ContinuousConvMode=ENABLE;adc_init.NbrOfConversion=3;// 3通道// 配置DMA为循环模式DMA_InitTypeDef dma_init;dma_init.DMA_Mode=DMA_Mode_Circular;dma_init.DMA_PeripheralInc=DMA_PeripheralInc_Disable;dma_init.DMA_MemoryInc=DMA_MemoryInc_Enable;dma_init.DMA_BufferSize=ADC_BUFFER_SIZE;}// 中断中通知数据就绪voidDMA_IRQHandler(void){if(DMA_GetITStatus(DMA1_IT_TC1)){buffer_ready=1;DMA_ClearITPendingBit(DMA1_IT_TC1);}}

六、抗干扰设计

6.1 干扰来源与对策

干扰源耦合路径解决方法
电源纹波传导LC滤波,隔离DCDC
电机启停磁场耦合屏蔽线,差分走线
数字串扰电容耦合模拟-数字分区
射频噪声空间辐射屏蔽罩

6.2 差分输入的优势

远距离传输或强干扰环境下,单端信号几乎无法工作。差分信号的抗共模干扰能力比单端强数十倍。长导线传输(>1m)场景必须使用差分信号。

6.3 PCB布局黄金法则

模拟地与数字地单点连接、反馈路径尽可能短、去耦电容紧贴芯片、信号参考层完整无分割,都是提升信噪比的有效方法。

七、项目文件结构

signal_acquisition/ ├── hardware/ │ ├── schematics/ │ ├── pcb/ │ └── datasheets/ ├── firmware/ │ ├── drivers/ │ ├── filters/ │ └── applications/ ├── tools/ │ └── filter_design.py └── README.md

八、总结

完整信号链的核心要点回顾:

环节关键技术常见问题
传感器电桥、热电偶共模电压漂移
调理仪表放大、电平移位运放自激振荡
模拟滤波RC有源滤波电阻热噪声
ADC采集DMA双缓冲采样抖动
数字滤波卡尔曼滤波延迟过大
PCB布局分区/接地数字回路耦合模拟域

核心原则层层递进:硬件解决共模、带状噪声,采样确保量化精度,数字滤波抑制残留干扰。三步走通,数据方能从“杂乱”走向“可用”。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询