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 做交流小信号分析。步骤很简单:

  1. 在反馈环路中插入一个交流扰动源(通常用 1V 的 AC 源)
  2. 运行 AC 扫描,得到开环增益和相位的波特图
  3. 在增益曲线上找到 0dB 点,对应读出相位值,计算 PM
  4. 在相位曲线上找到 -180° 点,对应读出增益值,计算 GM

以 LTspice 为例,测量命令很简单:

.ac dec 100 10 1Meg   ; 扫描范围 10Hz 到 1MHz
.probe                 ; 输出波形

仿真完成后,在波形图上用光标读取 0dB 和 -180° 点的数值即可。

方法二:实际硬件测量(用网络分析仪)

硬件测量稍微麻烦一些,但更真实。我记得第一次在实验室用网络分析仪测环路,手都在抖——那台仪器几十万,生怕接错线烧了。

基本步骤:

  1. 在反馈环路中串入一个小阻值电阻(通常 10Ω~50Ω)
  2. 用网络分析仪的注入变压器,通过这个电阻注入小信号扰动
  3. 测量注入点前后的电压,计算开环传递函数
  4. 读取 PM 和 GM

避坑指南:我曾经在测一个 DC-DC 的环路时,发现测出来的 PM 只有 20°,但仿真明明是 55°。查了半天,原来是注入电阻选得太大了(100Ω),影响了环路本身的增益。后来换成 10Ω,结果就对了。所以,注入电阻要尽量小,一般不超过反馈电阻的 1/10。

3.4 PM 和 GM 的关系:一张图看懂

说了这么多,不如一张图来得直观。下面这张 SVG 图展示了 PM 和 GM 在波特图上的位置:

相位裕度与增益裕度在波特图上的位置 增益曲线 0dB 相位曲线 -180° ωc (0dB 点) PM = 60° ωp (-180° 点) GM = 12dB 如何读图: 1. 在增益曲线上找到 0dB 点(ωc),对应相位曲线上的相位值,计算 PM = 180° + 该点相位。 2. 在相位曲线上找到 -180° 点(ωp),对应增益曲线上的增益值,GM = 0dB - 该点增益。

从这张图可以看得很清楚: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 作为设计余量。这样,即使实物有点偏差,系统依然能稳稳地工作。