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低通滤波器设计流程,你可以参考:
3.6 实际设计举例
假设你有一个电机驱动项目:
- PWM频率:20kHz
- 电流环带宽:1kHz
- ADC采样速率:100kSPS
- 信号幅度:0~3.3V
我的设计步骤:
- 估算截止频率:f_c = 20kHz / 10 = 2kHz。同时检查是否大于电流环带宽的5倍(1kHz × 5 = 5kHz),2kHz小于5kHz,需要调整。取f_c = 5kHz。
- 选择阶数:一阶在5kHz处衰减-20dB,对20kHz噪声衰减约-12dB,不够。选二阶,衰减-40dB,20kHz处衰减约-24dB,够用。
- 选择响应类型:电流环对相位敏感,但带宽1kHz不算高,用巴特沃斯,过渡带更陡。
- 计算R、C:取R=2.2kΩ,C=1/(2π×5kHz×2.2kΩ)≈14.5nF。选标称值15nF(C0G材质)。
- 验证:上示波器看采样点波形,毛刺幅度小于1%满量程即可。
提示:实际调试时,我习惯在PCB上预留多个RC焊盘位置,方便换不同阻容值。有时候仿真结果和实测差很多,尤其是电容的ESR和ESL会影响高频特性。
嗯,RC低通滤波器设计就聊到这儿。记住:公式是死的,电路是活的。多动手测波形,比看一百遍理论都管用。