3. RC低通滤波器设计:截止频率计算、电阻电容选型、滤波器阶数选择、巴特沃斯/贝塞尔滤波器对比

采样噪声这东西,说白了就是高频毛刺叠加在电流信号上。你想想看,FOC电流环里,ADC采到的信号如果带着一堆高频噪声,那PI调节器算出来的电压肯定不准。电机转起来嗡嗡响,甚至可能失控。

我刚开始做FOC驱动时,就吃过这个亏。当时采样波形看着还行,一上闭环就抖得厉害。查了半天,发现是RC滤波器截止频率设得太高,根本没把PWM开关噪声滤干净。从那以后,我对RC滤波器的设计就格外上心。

3.1 截止频率计算:别只套公式

RC低通滤波器的截止频率公式很简单:

f_c = 1 / (2π × R × C)

但实际选型时,不能光套公式。你得考虑几个关键因素:

  • PWM开关频率:通常要把截止频率设在开关频率的1/10到1/20。比如20kHz的PWM,截止频率选1kHz~2kHz比较合适。
  • 电流环带宽:截止频率不能低于电流环带宽的3~5倍。否则有用信号也被衰减了,环路响应变慢。
  • 采样保持时间:ADC采样需要建立时间,RC时间常数τ = R×C不能太大,否则采样值还没稳定就被读走了。

经验公式:我个人习惯先按f_c = f_PWM / 10估算,再根据实际波形微调。比如20kHz PWM,先试2kHz截止频率,看采样波形毛刺是否明显。

3.2 电阻电容选型:避坑指南

电阻和电容的选型,看似简单,其实坑不少。我列几个常见的:

  • 电阻值:别选太大。R大了,热噪声增加,而且ADC输入阻抗会拉低信号。一般1kΩ~10kΩ比较常见。我习惯用2.2kΩ或4.7kΩ。
  • 电容值:C大了,截止频率低,但建立时间变长。而且陶瓷电容有DC偏压特性——电压越高,容值掉得越厉害。我遇到过用10μF电容,实际在3.3V下只剩4μF的情况。
  • 电容类型:采样电路建议用C0G/NP0或X7R。X5R温度稳定性差,Y5V就别用了。
  • 封装:0402或0603都行,但注意耐压。采样信号一般3.3V或5V,选6.3V或10V耐压就够了。

警告:我曾经在项目里用了0805封装的10μF陶瓷电容,结果在5V偏压下实际容值只有标称的60%。截止频率直接偏移,噪声没滤干净。后来换成C0G材质才解决。

3.3 滤波器阶数选择:一阶够用吗?

一阶RC滤波器,衰减斜率只有-20dB/dec。如果噪声频率离截止频率不远,衰减效果有限。

那什么时候用二阶?

  • 噪声频谱密集:比如PWM开关噪声附近还有振铃,一阶滤不干净。
  • 信号带宽要求高:想保留更高频率的有用信号,同时抑制噪声,二阶更陡的衰减曲线更合适。
  • 采样速率高:高速ADC需要更干净的信号,二阶滤波能提供更好的抗混叠效果。

二阶滤波器可以用两个RC级联,也可以用运放构成有源滤波器。我一般用无源二阶,成本低,不引入运放噪声。但要注意:级联时后级会加载前级,需要做阻抗隔离,或者用缓冲器。

小技巧:如果空间允许,我习惯在采样电阻后先放一阶RC(R=2.2kΩ,C=10nF),再到运放输入端。运放输出再接一阶RC(R=1kΩ,C=1nF),这样等效二阶滤波,效果不错。

3.4 巴特沃斯 vs 贝塞尔滤波器对比

这两个是经典的有源滤波器响应类型。用在电流环采样上,各有优劣。

特性 巴特沃斯 贝塞尔
通带平坦度 最平坦,无纹波 平坦,但不如巴特沃斯
过渡带陡峭度 较陡,-40dB/dec(二阶) 较缓,-20dB/dec(二阶)
群延迟 非线性,有过冲 线性,无过冲
阶跃响应 有振铃 无过冲,平滑
适用场景 需要陡峭衰减,对相位不敏感 需要保真信号波形,避免过冲

在FOC电流环里,我个人的选择逻辑:

  • 如果采样信号是直流或低频(比如电流环带宽1kHz以内),用巴特沃斯,衰减更陡,噪声抑制更好。
  • 如果采样信号包含快速变化的电流波形(比如高速电机启动、堵转),用贝塞尔,避免滤波器过冲导致电流环误动作。
  • 如果对相位延迟敏感(比如需要精确电流相位),贝塞尔更优,因为群延迟恒定。

我的经验:大多数通用FOC应用,二阶巴特沃斯就够了。只有在伺服驱动或高精度电流控制时,我才会换成贝塞尔。记住:滤波器引入的相位延迟会降低电流环相位裕度,设计时一定要留余量。

3.5 滤波器设计流程总结

下面这张图是我自己总结的RC低通滤波器设计流程,你可以参考:

RC低通滤波器设计流程 RC低通滤波器设计流程 确定PWM开关频率 估算截止频率 f_c = f_PWM/10 选择滤波器阶数(1阶/2阶) 选择响应类型(巴特沃斯/贝塞尔) 计算R、C值并选型 实测验证波形 注意事项 • 考虑ADC输入阻抗 • 电容DC偏压特性 • 电阻热噪声 常见问题 • 截止频率偏移 • 建立时间不足 • 相位延迟过大

3.6 实际设计举例

假设你有一个电机驱动项目:

  • PWM频率:20kHz
  • 电流环带宽:1kHz
  • ADC采样速率:100kSPS
  • 信号幅度:0~3.3V

我的设计步骤:

  1. 估算截止频率:f_c = 20kHz / 10 = 2kHz。同时检查是否大于电流环带宽的5倍(1kHz × 5 = 5kHz),2kHz小于5kHz,需要调整。取f_c = 5kHz。
  2. 选择阶数:一阶在5kHz处衰减-20dB,对20kHz噪声衰减约-12dB,不够。选二阶,衰减-40dB,20kHz处衰减约-24dB,够用。
  3. 选择响应类型:电流环对相位敏感,但带宽1kHz不算高,用巴特沃斯,过渡带更陡。
  4. 计算R、C:取R=2.2kΩ,C=1/(2π×5kHz×2.2kΩ)≈14.5nF。选标称值15nF(C0G材质)。
  5. 验证:上示波器看采样点波形,毛刺幅度小于1%满量程即可。

提示:实际调试时,我习惯在PCB上预留多个RC焊盘位置,方便换不同阻容值。有时候仿真结果和实测差很多,尤其是电容的ESR和ESL会影响高频特性。

嗯,RC低通滤波器设计就聊到这儿。记住:公式是死的,电路是活的。多动手测波形,比看一百遍理论都管用。