3. 陷波滤波器数学模型:传递函数、零极点分布、陷波深度与陷波宽度

好,咱们今天来啃一块硬骨头——陷波滤波器的数学模型。

说实话,很多做运动控制的工程师,一看到「传递函数」「零极点」这几个字就头大。我当年刚入行时也一样,觉得这东西太理论了,跟实际调试八竿子打不着。直到有一次,我在一台高速贴片机上遇到了一个顽固的机械共振,调了三天参数都没搞定……最后发现,就是没搞懂陷波器的数学模型。

嗯,从那以后,我再也不敢跳过数学了。

3.1 传递函数:陷波器的「身份证」

陷波滤波器的传递函数,说白了就是描述它「怎么干活」的数学表达式。标准形式长这样:

        s² + ω₀²
H(s) = ----------
        s² + (ω₀/Q)s + ω₀²

这里:

  • ω₀ —— 陷波中心频率(rad/s),你想干掉哪个频率的振动,就设它
  • Q —— 品质因数,决定了陷波坑的「宽窄」

你可能会问:为什么分子分母都是二阶的?

我个人的理解是:分子负责「挖坑」,分母负责「填土」。分子把特定频率的信号彻底干掉,分母保证其他频率的信号不受影响。两者配合,就形成了一个完美的陷波效果。

关键点:传递函数的阶数决定了滤波器的实现复杂度。二阶陷波器是最常用的,因为它在性能和计算量之间取得了很好的平衡。我在项目中几乎只用二阶,除非遇到特别变态的共振。

3.2 零极点分布:看懂这张图,你就懂了陷波器

零极点分布图,是理解陷波器行为的「X光片」。咱们先看零点和极点分别在哪:

  • 零点: s = ±jω₀(纯虚数,在虚轴上)
  • 极点: s = -ω₀/(2Q) ± jω₀√(1 - 1/(4Q²))(在左半平面)

为什么会这样?

零点在虚轴上,意味着在频率 ω₀ 处,系统的增益为 0——这就是「陷波」的本质。极点在左半平面,保证了系统稳定。

下面这张 SVG 图,是我手绘风格的零极点分布,你一看就明白:

Re Im 0 零点 (jω₀) 零点 (-jω₀) 极点 极点 零点 极点

你看,零点在虚轴上,极点则在左半平面靠近虚轴的位置。极点离虚轴越近,陷波效果越尖锐,但系统也越容易不稳定——这是个 trade-off。

实战技巧:我在调试伺服驱动器时,习惯先把零极点图画出来看看。如果极点太靠近虚轴,我会适当降低 Q 值,给系统留点「安全余量」。别为了追求极致的陷波效果,把系统搞得不稳定,那就得不偿失了。

3.3 陷波深度:你能干掉多少振动?

陷波深度,就是滤波器在中心频率处能衰减多少信号。通常用 dB 表示。

理想情况下,陷波深度是无穷大——在 ω₀ 处信号完全被消除。但实际中,受限于数字实现的精度和量化误差,一般能做到 -30dB 到 -60dB 就不错了。

应用场景 推荐陷波深度 说明
普通工业机器人 -20dB ~ -30dB 够用就行,别过度设计
高精度机床 -30dB ~ -40dB 需要更干净的信号
半导体设备 -40dB ~ -60dB 振动控制要求极高

我记得有一次,一个客户非要把陷波深度做到 -80dB,结果系统在中心频率附近出现了相位跳变,反而引发了新的振荡。后来我跟他解释:陷波深度不是越深越好,够用就行。

3.4 陷波宽度:别把好信号也干掉了

陷波宽度,通常用 -3dB 带宽来表示。它决定了陷波器影响的频率范围。

宽度和 Q 值的关系很简单:

BW = ω₀ / Q

Q 值越大,陷波越窄,选择性越好。但窄了也有问题——如果共振频率稍微漂移一点,陷波器就失效了。

我个人的经验是:

  • 机械共振比较稳定(比如铸件结构):用高 Q 值(10~30),窄带陷波
  • 共振频率会漂移(比如温度变化、负载变化):用低 Q 值(1~5),宽带陷波

注意:Q 值太低(小于 1)时,陷波器会变成一个低通滤波器,失去了「陷波」的意义。我曾经见过有人把 Q 设成 0.5,结果整个系统的带宽都被压下来了,伺服响应慢得像蜗牛。

3.5 三个参数的关系:一个都不能少

ω₀、Q、陷波深度,这三个参数是相互关联的。你不能独立地调整它们。

举个例子:

  • 你提高了 Q 值 → 陷波变窄 → 但深度可能不变
  • 你调整了 ω₀ → 陷波位置移动 → 但宽度和深度不变
  • 你改变了陷波深度 → 实际上是在调整传递函数的增益 → 会影响其他频率

所以,调陷波器的时候,我建议按这个顺序来:

  1. 先定 ω₀ —— 通过频谱分析找到共振频率
  2. 再定 Q 值 —— 根据共振峰的尖锐程度选择
  3. 最后微调深度 —— 在保证稳定性的前提下,尽量衰减

嗯,这套流程我在几十个项目里验证过,基本没出过问题。

3.6 离散化:从连续域到数字域

咱们的控制器是数字的,所以得把连续传递函数变成离散的。常用的方法有:

  • 双线性变换(Tustin) —— 我最常用的方法,精度高,无混叠
  • 零极点匹配法 —— 适合对频率响应要求高的场合
  • 前向/后向差分 —— 简单,但精度一般

双线性变换的公式:

s = (2/T) * (1 - z⁻¹) / (1 + z⁻¹)

其中 T 是采样周期。代入连续传递函数,就能得到离散的差分方程。

我在实际项目中,一般直接用双线性变换。它有一个预畸变的功能,能保证在陷波频率处的特性不跑偏。其他方法嘛……说实话,我试过几次,效果都不太理想。

总结一下:陷波滤波器的数学模型,核心就是传递函数、零极点、陷波深度和宽度这四个概念。搞懂了它们,你就能像庖丁解牛一样,精准地干掉机械共振。下一节咱们会聊具体的参数整定方法,到时候我会拿实际案例来演示。


公众号:蓝海资料掘金营,微信deep3321