滤波器基础理论:从一阶RC到椭圆滤波器
做FOC电流环噪声滤波,说白了就是跟各种频率的干扰信号打仗。我刚开始搞电机控制那会儿,总觉得滤波器嘛,不就是把高频砍掉就行了?结果踩了不少坑。后来才明白,选什么滤波器、用几阶、怎么权衡延迟和衰减,这里面的门道深着呢。
这一章咱们就把滤波器的基础理论捋一遍。别嫌基础,我敢说,你项目中遇到的90%的滤波问题,都能在这几种滤波器里找到答案。
一阶RC低通滤波器
这是最基础的滤波器了。一个电阻加一个电容,搞定。它的传递函数长这样:
H(s) = 1 / (1 + sRC)
截止频率 f_c = 1 / (2πRC)。超过这个频率,信号就开始被衰减。
特点很鲜明:
- 结构简单,成本低,一个电阻一个电容就完事
- 衰减率只有 -20dB/十倍频,说白了就是每翻十倍频率,信号才衰减到十分之一
- 相位滞后最大90度
二阶有源低通滤波器
一阶不够用怎么办?上二阶。二阶有源滤波器用运放加RC网络,衰减率能做到 -40dB/十倍频。常见的结构有Sallen-Key和Multiple Feedback两种。
我个人的习惯是,在电流环里做前置滤波时,优先用Sallen-Key结构。为什么?因为它对运放的增益带宽积要求没那么苛刻,而且元件少。
// 二阶Sallen-Key低通传递函数(单位增益)
H(s) = 1 / (s²R1R2C1C2 + s(R1+R2)C2 + 1)
这里有个关键参数——品质因数Q。Q值决定了滤波器在截止频率附近的响应特性:
- Q = 0.707:最平坦响应(巴特沃斯)
- Q > 0.707:有峰值,可能过冲
- Q < 0.707:响应偏缓,衰减更慢
巴特沃斯滤波器
巴特沃斯滤波器的特点就一个词——平坦。通带内幅频响应最平坦,没有波纹。它的极点均匀分布在s平面的左半圆上。
为什么在FOC里常用?因为电流环的带宽内,我们不希望增益有起伏。你想想看,如果某个频率的电流信号被放大了,而另一个频率的被衰减了,那电流环的响应就会变得“挑食”。
| 阶数 | 衰减率 | 通带特性 |
|---|---|---|
| 2阶 | -40dB/十倍频 | 最平坦,无波纹 |
| 4阶 | -80dB/十倍频 | 最平坦,无波纹 |
| 6阶 | -120dB/十倍频 | 最平坦,无波纹 |
我个人的建议是:如果对通带平坦度要求高,比如电流环的PI调节器后面需要滤波,优先考虑巴特沃斯。
切比雪夫滤波器
切比雪夫滤波器跟巴特沃斯正好相反——它允许通带内有波纹,但换来了更陡峭的过渡带。说白了,就是“用波纹换斜率”。
有两种类型:
- I型: 通带有波纹,阻带平坦
- II型: 通带平坦,阻带有波纹(也叫“逆切比雪夫”)
我记得有一次做高频PWM噪声抑制,巴特沃斯4阶的衰减还不够,但空间只够放4阶。后来换成切比雪夫I型,波纹设0.5dB,过渡带陡了很多,效果立竿见影。
贝塞尔滤波器
贝塞尔滤波器是“线性相位”的代表。它的群延迟在通带内最平坦,也就是说,不同频率的信号经过它之后,延迟时间几乎一样。
这有什么用?在FOC里,如果我们要对电流信号做同步采样或者做角度补偿,群延迟的一致性就很重要。否则,高频信号和低频信号到达ADC的时间不一样,你补偿都不知道怎么补。
但代价也很明显——贝塞尔滤波器的过渡带最缓。同样的阶数,它的衰减率比巴特沃斯和切比雪夫都差。
// 贝塞尔滤波器的极点位置(归一化)
// 2阶:-0.8660 ± j0.5000
// 3阶:-0.7455, -0.7110 ± j0.6010
我个人只在一种情况下用贝塞尔:当电流环需要做精确的延时补偿,而且噪声频率离信号频段足够远时。否则,衰减不够会出问题。
椭圆滤波器
椭圆滤波器(也叫考尔滤波器)是“最激进”的。它在通带和阻带都有波纹,但换来了最陡峭的过渡带。同样的阶数,椭圆滤波器的衰减率是最高的。
它的传递函数里有椭圆函数,所以叫椭圆滤波器。设计起来比前几种复杂,但效果确实猛。
| 滤波器类型 | 通带波纹 | 阻带波纹 | 过渡带陡峭度 |
|---|---|---|---|
| 巴特沃斯 | 无 | 无 | 一般 |
| 切比雪夫I型 | 有 | 无 | 较陡 |
| 贝塞尔 | 无 | 无 | 最缓 |
| 椭圆 | 有 | 有 | 最陡 |
滤波器阶数与衰减率
阶数越高,衰减率越大。这个道理很简单:每增加一阶,衰减率增加 -20dB/十倍频。
- 1阶:-20dB/十倍频
- 2阶:-40dB/十倍频
- 3阶:-60dB/十倍频
- 4阶:-80dB/十倍频
- n阶:-20n dB/十倍频
但阶数不是越高越好。每增加一阶,电路复杂度、功耗、噪声、成本都跟着涨。更重要的是,高阶滤波器的群延迟更大,相位失真更严重。
我一般遵循一个原则:在满足衰减要求的前提下,尽量用最低的阶数。比如,要抑制20kHz的PWM噪声,如果2阶巴特沃斯就够了,就别上4阶。
群延迟与相位失真
群延迟,说白了就是信号通过滤波器后,不同频率分量被延迟的时间。如果群延迟在通带内不是常数,那信号就会发生相位失真。
在FOC里,相位失真意味着什么?意味着电流的相位信息被扭曲了。你采样到的电流相位跟实际电机的电流相位对不上,角度估算就会出偏差,转矩控制就不准。
// 群延迟定义
τ_g(ω) = -dφ(ω)/dω
// 其中 φ(ω) 是滤波器的相位响应
不同类型的滤波器,群延迟特性差异很大:
- 贝塞尔: 通带内群延迟最平坦,相位失真最小
- 巴特沃斯: 群延迟在截止频率附近开始变化
- 切比雪夫: 群延迟在通带边缘变化剧烈
- 椭圆: 群延迟变化最剧烈,相位失真最大
知识体系总览
下面这张图把几种滤波器的核心特性串起来了,方便你对照选择: