3、相位裕度与增益裕度:稳定性的两个标尺
聊完了传递函数和波特图,咱们终于要碰最核心的东西了——怎么判断一个环路到底稳不稳?
你可能会想,搭个电路,上电看看输出有没有振荡不就知道了?嗯,理论上可以。但实际项目中,你不可能每次都把板子焊出来再调。更何况,有些振荡是间歇性的,或者只在特定负载下才出现,等你发现的时候,芯片可能已经烧了。
所以,我们需要两个提前判断的指标:相位裕度(Phase Margin, PM)和增益裕度(Gain Margin, GM)。说白了,它们就是稳定性的两个标尺。
核心观点:一个反馈系统要稳定,必须同时满足两个条件——在增益为 0dB 时,相位不能到 -180°;在相位为 -180° 时,增益必须小于 0dB。PM 和 GM 就是量化这两个“安全距离”的数值。
3.1 相位裕度(PM):你离振荡还有多少度?
先讲相位裕度。我个人习惯把它理解为“安全余量”。
定义:在开环增益下降到 0dB(也就是增益为 1)的那个频率点(我们叫它穿越频率,ωc),此时开环相移与 -180° 之间的差值。
公式很简单:
PM = ∠G(s)H(s) | 在 |G(s)H(s)| = 1 处 - (-180°)
= 180° + ∠G(s)H(s) | 在 0dB 处
举个例子:假设在 0dB 频率点,你的环路相移是 -120°,那么 PM = 180° + (-120°) = 60°。
这个 60° 意味着什么?意味着在系统开始振荡之前,你还有 60° 的“缓冲空间”。
我的经验:刚入行时,我觉得 PM 只要大于 0° 系统就不会振荡。结果有一次做 Buck 变换器,PM 只有 15°,示波器上看输出确实没振荡,但一加载动态负载,输出就出现了一串衰减振荡,持续了好几个周期才稳定下来。后来我才明白,PM 太小,系统虽然不振荡,但瞬态响应会非常差,像“打摆子”一样。
典型设计目标:
| PM 范围 | 系统表现 | 我的建议 |
|---|---|---|
| PM < 0° | 系统振荡,不稳定 | 必须重新补偿 |
| 0° < PM < 30° | 勉强稳定,瞬态响应差,有振铃 | 不推荐用于量产 |
| 30° < PM < 45° | 稳定,但瞬态有轻微过冲 | 可接受,但需谨慎 |
| 45° < PM < 70° | 稳定,瞬态响应良好 | 推荐设计目标 |
| PM > 70° | 非常稳定,但响应偏慢 | 适合对稳定性要求极高的场合 |
你想想看,为什么 45° 到 70° 是最佳区间?因为在这个范围内,系统既有足够的稳定裕度,又能保证较快的响应速度。PM 太大(比如 90°),系统是稳了,但跟“老牛拉车”一样慢。
3.2 增益裕度(GM):你离振荡还有多少 dB?
相位裕度看的是“增益为 0dB 时的相位”,那增益裕度反过来——看的是“相位为 -180° 时的增益”。
定义:在开环相移达到 -180° 的那个频率点(我们叫它相位穿越频率,ωp),此时开环增益与 0dB 之间的差值。
公式:
GM = 0dB - |G(s)H(s)| 在 ∠G(s)H(s) = -180° 处
= -20log|G(s)H(s)| 在 -180° 处
举个例子:如果在相移 -180° 的频率点,你的开环增益是 -10dB,那么 GM = 0 - (-10) = 10dB。这个 10dB 意味着,系统增益还可以再增加 10dB 才会开始振荡。
注意:增益裕度通常用正值表示。如果 GM 是负数,说明在 -180° 相移时增益已经大于 0dB,系统必然振荡。我曾经见过一个同事设计的 LDO,仿真时 PM 有 50°,但 GM 只有 2dB。他以为没问题,结果打样回来,轻载时正常,重载时输出纹波巨大。一测环路,发现重载下 GM 变成了负值。所以,PM 和 GM 要一起看,缺一不可。
典型设计目标:
| GM 范围 | 系统表现 | 我的建议 |
|---|---|---|
| GM < 0dB | 系统振荡 | 必须重新设计补偿 |
| 0dB < GM < 6dB | 临界稳定,易受参数变化影响 | 风险高,不推荐 |
| 6dB < GM < 20dB | 稳定,有足够安全裕量 | 推荐设计目标 |
| GM > 20dB | 非常稳定,但可能带宽过窄 | 视应用场景而定 |
3.3 如何测量 PM 和 GM?
实际项目中,我们不可能用手算传递函数来求 PM 和 GM。常用的方法有两种:
方法一:仿真测量(最常用)
用 SPICE 或 SIMPLIS 做交流小信号分析。步骤很简单:
- 在反馈环路中插入一个交流扰动源(通常用 1V 的 AC 源)
- 运行 AC 扫描,得到开环增益和相位的波特图
- 在增益曲线上找到 0dB 点,对应读出相位值,计算 PM
- 在相位曲线上找到 -180° 点,对应读出增益值,计算 GM
以 LTspice 为例,测量命令很简单:
.ac dec 100 10 1Meg ; 扫描范围 10Hz 到 1MHz
.probe ; 输出波形
仿真完成后,在波形图上用光标读取 0dB 和 -180° 点的数值即可。
方法二:实际硬件测量(用网络分析仪)
硬件测量稍微麻烦一些,但更真实。我记得第一次在实验室用网络分析仪测环路,手都在抖——那台仪器几十万,生怕接错线烧了。
基本步骤:
- 在反馈环路中串入一个小阻值电阻(通常 10Ω~50Ω)
- 用网络分析仪的注入变压器,通过这个电阻注入小信号扰动
- 测量注入点前后的电压,计算开环传递函数
- 读取 PM 和 GM
避坑指南:我曾经在测一个 DC-DC 的环路时,发现测出来的 PM 只有 20°,但仿真明明是 55°。查了半天,原来是注入电阻选得太大了(100Ω),影响了环路本身的增益。后来换成 10Ω,结果就对了。所以,注入电阻要尽量小,一般不超过反馈电阻的 1/10。
3.4 PM 和 GM 的关系:一张图看懂
说了这么多,不如一张图来得直观。下面这张 SVG 图展示了 PM 和 GM 在波特图上的位置:
从这张图可以看得很清楚:PM 是紫色箭头标出的那段“角度差”,GM 是青色箭头标出的那段“增益差”。两者都是越大越稳定,但也不是越大越好——太大了会影响带宽和响应速度。
3.5 实战中的设计目标
说了这么多理论,最后给个实战中的参考值。我一般这样设目标:
- 电源类(DC-DC、LDO):PM ≥ 50°,GM ≥ 10dB。这是最常用的标准,能保证在各种负载和温度下稳定。
- 高速运放电路:PM ≥ 45°,GM ≥ 6dB。高速电路对带宽要求高,可以适当牺牲一点裕度。
- 音频功放:PM ≥ 60°,GM ≥ 15dB。音频对失真敏感,需要更大的裕度来保证音质。
- 汽车电子:PM ≥ 55°,GM ≥ 12dB。温度范围宽,元器件老化,需要留足余量。
最后提醒一句:仿真出来的 PM 和 GM 是“理想值”。实际 PCB 布局、寄生参数、温度变化都会让它们变差。我习惯在仿真目标上再加 10° 的 PM 和 3dB 的 GM 作为设计余量。这样,即使实物有点偏差,系统依然能稳稳地工作。