传递函数定义:离散传递函数的标准形式、极点与零点、系统稳定性判据
好,咱们接着聊离散传递函数。这东西说白了,就是描述系统输入输出关系的数学工具。你给它一个输入序列,它告诉你输出会是什么样。我在项目里调试数字滤波器时,天天跟它打交道。
离散传递函数的标准形式
离散传递函数,通常写成 z 域的形式。为什么是 z 域?因为 z 变换天然适合处理采样信号。标准形式长这样:
b₀ + b₁z⁻¹ + b₂z⁻² + ... + bₘz⁻ᵐ
H(z) = ──────────────────────────────────
1 + a₁z⁻¹ + a₂z⁻² + ... + aₙz⁻ⁿ
嗯,这里要注意几点:
- 分子是 b 系数,对应输入信号的加权
- 分母是 a 系数,决定系统的反馈特性
- z⁻¹ 代表一个单位延迟,说白了就是「等一拍」
- m 和 n 分别是分子分母的阶次,一般 n ≥ m(因果系统)
我个人习惯把传递函数写成 z⁻¹ 的形式,而不是 z 的正幂次。为什么?因为这样写,系数直接对应差分方程,一眼就能看出怎么编程实现。
实际项目中的写法
我在做电机速度控制时,采样周期 1ms,传递函数写成:
0.2 + 0.15z⁻¹
H(z) = ──────────────
1 - 0.8z⁻¹
对应的差分方程就是:y[k] = 0.2u[k] + 0.15u[k-1] + 0.8y[k-1]
极点与零点
极点和零点,是理解系统行为的钥匙。你想想看,一个系统为什么会有共振?为什么有些频率会被放大?答案就在极点和零点里。
把传递函数写成因式分解形式:
(z - z₁)(z - z₂)...(z - zₘ)
H(z) = K ──────────────────────────
(z - p₁)(z - p₂)...(z - pₙ)
- 零点 zᵢ:让分子等于 0 的 z 值。系统对这些频率的输入「不响应」
- 极点 pᵢ:让分母等于 0 的 z 值。系统在这些频率上「发飙」
- K:增益系数,决定整体放大倍数
我记得有一次做音频均衡器,零点位置没调好,结果某个频段的声音直接消失了。后来把零点从单位圆上移开一点,问题就解决了。
极点的物理意义
极点越靠近单位圆,系统对该频率的响应越强烈。极点如果在单位圆外,系统就不稳定了——这个后面会细说。
系统稳定性判据
稳定性,是控制系统设计的底线。一个不稳定的系统,输出会越来越大,直到物理限幅或者烧坏设备。
离散系统的稳定性判据,核心就一句话:
所有极点必须在 z 平面的单位圆内
即 |pᵢ| < 1 对所有 i 成立
为什么会这样?因为极点对应系统的自然模态。如果某个极点的模大于 1,它的响应会随时间指数增长,系统就炸了。
我曾经调试一个数字电源,输出纹波越来越大,查了半天发现是极点计算时采样周期写错了。嗯,这种低级错误,犯过一次就记住了。
稳定性判据的几种方法
| 方法 | 原理 | 适用场景 |
|---|---|---|
| 直接求根法 | 计算分母多项式 = 0 的根 | 低阶系统(n ≤ 4) |
| 朱利判据 | 构造朱利表,检查系数 | 高阶系统,手算可行 |
| 双线性变换 | 映射到 s 域,用劳斯判据 | 熟悉连续系统的工程师 |
| 数值仿真 | 给个脉冲输入,看响应 | 任何系统,最直观 |
我个人最推荐数值仿真。为什么?因为直接求根在高阶时数值不稳定,朱利判据算起来又麻烦。你给系统一个脉冲输入,看输出是收敛还是发散,一目了然。
避坑指南
我曾经用直接求根法判断一个 10 阶系统的稳定性,结果因为浮点误差,把稳定系统判成了不稳定。后来改用双线性变换 + 劳斯判据,才得到正确结论。所以,高阶系统一定要交叉验证。
知识体系结构图
下面这张图,把离散传递函数的核心知识点串起来了:
这张图把三个核心概念串起来了。标准形式是「骨架」,极点和零点是「灵魂」,稳定性判据是「安全底线」。三者缺一不可。
我的经验之谈
实际项目中,我一般先根据性能指标写出传递函数,然后用极点配置法调整参数,最后用数值仿真验证稳定性。三步走,稳得很。
好了,离散传递函数的基本概念就聊到这儿。记住:标准形式是工具,极点和零点是本质,稳定性是红线。下次你看到 H(z),脑子里应该立刻浮现出这三个维度。