滤波器基础理论:从一阶RC到椭圆滤波器

做FOC电流环噪声滤波,说白了就是跟各种频率的干扰信号打仗。我刚开始搞电机控制那会儿,总觉得滤波器嘛,不就是把高频砍掉就行了?结果踩了不少坑。后来才明白,选什么滤波器、用几阶、怎么权衡延迟和衰减,这里面的门道深着呢。

这一章咱们就把滤波器的基础理论捋一遍。别嫌基础,我敢说,你项目中遇到的90%的滤波问题,都能在这几种滤波器里找到答案。

一阶RC低通滤波器

这是最基础的滤波器了。一个电阻加一个电容,搞定。它的传递函数长这样:

H(s) = 1 / (1 + sRC)

截止频率 f_c = 1 / (2πRC)。超过这个频率,信号就开始被衰减。

特点很鲜明:

  • 结构简单,成本低,一个电阻一个电容就完事
  • 衰减率只有 -20dB/十倍频,说白了就是每翻十倍频率,信号才衰减到十分之一
  • 相位滞后最大90度
我的经验: 在FOC电流采样里,一阶RC通常只用来做简单的抗混叠滤波。比如ADC前端加一个RC,把远高于采样频率的噪声滤掉。但别指望它能干净利落地砍掉某个频段——它太“温柔”了。

二阶有源低通滤波器

一阶不够用怎么办?上二阶。二阶有源滤波器用运放加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:响应偏缓,衰减更慢
注意: 我曾经在一个项目里把Q值设到了1.2,结果在截止频率附近出现了明显的增益尖峰,电流环直接振荡了。嗯,从那以后我设计二阶滤波器时,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型 有 无 较陡
贝塞尔 无 无 最缓
椭圆 有 有 最陡
避坑: 椭圆滤波器的相位非线性非常严重。在FOC电流环里,如果你用椭圆滤波器做闭环内的滤波,相位失真可能导致电流环振荡。我建议只在开环路径或者信号采集链路的末端使用。

滤波器阶数与衰减率

阶数越高,衰减率越大。这个道理很简单:每增加一阶,衰减率增加 -20dB/十倍频。

  • 1阶:-20dB/十倍频
  • 2阶:-40dB/十倍频
  • 3阶:-60dB/十倍频
  • 4阶:-80dB/十倍频
  • n阶:-20n dB/十倍频

但阶数不是越高越好。每增加一阶,电路复杂度、功耗、噪声、成本都跟着涨。更重要的是,高阶滤波器的群延迟更大,相位失真更严重。

我一般遵循一个原则:在满足衰减要求的前提下,尽量用最低的阶数。比如,要抑制20kHz的PWM噪声,如果2阶巴特沃斯就够了,就别上4阶。

群延迟与相位失真

群延迟,说白了就是信号通过滤波器后,不同频率分量被延迟的时间。如果群延迟在通带内不是常数,那信号就会发生相位失真。

在FOC里,相位失真意味着什么?意味着电流的相位信息被扭曲了。你采样到的电流相位跟实际电机的电流相位对不上,角度估算就会出偏差,转矩控制就不准。

// 群延迟定义
τ_g(ω) = -dφ(ω)/dω

// 其中 φ(ω) 是滤波器的相位响应

不同类型的滤波器,群延迟特性差异很大:

  • 贝塞尔: 通带内群延迟最平坦,相位失真最小
  • 巴特沃斯: 群延迟在截止频率附近开始变化
  • 切比雪夫: 群延迟在通带边缘变化剧烈
  • 椭圆: 群延迟变化最剧烈,相位失真最大
我的做法: 在FOC电流环里,如果滤波器放在闭环内(比如反馈路径),我优先选贝塞尔或巴特沃斯。如果放在闭环外(比如信号采集前端),可以用切比雪夫甚至椭圆。记住一句话:闭环内的滤波器,相位特性比衰减率更重要。

知识体系总览

下面这张图把几种滤波器的核心特性串起来了,方便你对照选择:

滤波器类型对比与选型指南 一阶RC低通 -20dB/十倍频 二阶有源低通 -40dB/十倍频 巴特沃斯 通带最平坦 切比雪夫 通带有波纹 贝塞尔 线性相位 椭圆滤波器 过渡带最陡 核心权衡参数 衰减率 ↔ 群延迟 ↔ 相位失真 选型建议:闭环内优先贝塞尔/巴特沃斯 → 闭环外可用切比雪夫/椭圆 → 简单抗混叠用一阶RC 阶数与衰减率关系 1阶 → -20dB/十倍频 2阶 → -40dB/十倍频 n阶 → -20n dB/十倍频 群延迟特性对比 贝塞尔:最平坦 → 相位失真最小 巴特沃斯:截止频率附近开始变化 切比雪夫/椭圆:变化剧烈 → 慎用