【伯德图与运放稳定性】06 实战案例(二):补偿设计与剩余风险
【伯德图与运放稳定性】06 实战案例(二):补偿设计与剩余风险
1、 先回顾第5章的结论
1.1 问题出在哪里
第5章分析了一个OP07驱动NMOS的恒流源电路。在理想模型下,电路是稳定的,但稳定余量很小。
具体来说,问题出在两个地方。
第一个地方,运放输出电阻 \(R_o\) 和MOS管栅源电容 \(C_{gs}\) 构成了一个极点,频率约663kHz。这个极点和环路增益的交越频率598kHz离得很近。如果 \(C_{gs}\) 或 \(R_o\) 增大,极点频率会降低,可能跑到交点以下。一旦极点跑到交点以下,闭合速率就从-20dB/dec变成-40dB/dec,系统就不稳定了。
第二个地方,MOS管的跨导 \(g_m\) 会随漏极电流变化。第5章取 \(g_m = 0.25\),对应100mA的漏极电流。如果实际电流更大,\(g_m\) 增大,青色曲线 \(1/(G_{lf} \cdot G_{mos})\) 会整体下移。下移之后,交点频率升高,可能接近或超过663kHz,进入青色曲线的上升段。这时候闭合速率也会变成-40dB/dec。
所以,补偿的目标很明确:把 \(G_{lf}\) 的极点推远,或者用零点抵消它。
1.2 三条思路
针对这个问题,有三条补偿思路。
第一条思路:降低 \(R_o\)。既然极点是 \(R_o\) 和 \(C_{gs}\) 共同产生的,那么降低 \(R_o\) 就能提高极点频率。怎么降低 \(R_o\)?在运放输出端加一级缓冲器,比如射极跟随器或者推挽级。缓冲器的输出阻抗很低,可以大大减小 \(R_o\)。
第二条思路:引入零点抵消极点。\(G_{lf}\) 的极点带来-20dB/dec的斜率和-90°的相位滞后。如果在环路中引入一个零点,零点带来+20dB/dec的斜率和+90°的相位超前。如果零点和极点频率合适,就可以相互抵消。
第三条思路:在反馈网络中增加补偿。这个思路比较复杂,但有时候也更灵活。
本章依次讨论这三种思路,看看各自的优缺点。
2、 方案一:降低输出电阻
2.1 电路结构
在运放输出端和MOS管栅极之间插入一级缓冲器,电路如图6-1所示。

推挽级的作用是提供电流放大,运放只需要输出很小的电流,就能驱动MOS管栅极。由于射极跟随器的输出阻抗很低,从MOS管栅极看进去,驱动源的阻抗从 \(R_o\) 降低到了缓冲器的输出阻抗。
射极跟随器的输出阻抗大约为:
其中 \(r_e\) 是发射极动态电阻,约 \(26\text{mV}/I_E\)。如果缓冲器静态电流为10mA,\(r_e\) 约2.6Ω。这比200Ω小两个数量级。
2.2 极点频率的变化
\(R_o\) 降低后,\(G_{lf}\) 的极点频率变为:
代入 \(R_{out} \approx 3\Omega\),\(C_{gs} = 1.2\text{nF}\):
极点频率从663kHz提高到了44MHz,远远超过了0dB交越频率。这意味着在环路增益下降到0dB之前,\(G_{lf}\) 的极点不会带来明显的相位滞后,闭合速率保持在-20dB/dec,系统稳定性大大提高。

2.3 缓冲器的代价
加缓冲器不是没有代价的。主要有三个问题。
第一个问题,电路复杂度增加。推挽级需要两个三极管、偏置电路,可能还需要过流保护。这会增加BOM成本和PCB面积。
第二个问题,引入交越失真。推挽级在过零点附近可能产生交越失真,影响输出精度。对于恒流源应用,这可能不是问题;但对于高精度运放电路,需要考虑。
第三个问题,可能引入新的极点。缓冲器本身也有输入电容和输出电容,三极管的基极电容和发射极电容也可能在高频段产生额外的极点。如果这些极点频率不够高,可能反而破坏稳定性。
3、 方案二:Rg//Cs 栅极补偿
3.1 电路结构
第二条思路是在运放输出和MOS管栅极之间插入一个电阻 \(R_g\),并在 \(R_g\) 上并联一个电容 \(C_s\)。电路如图6-3所示。

这个电路的工作原理是:\(R_g\) 和 \(C_s\) 构成一个并联网络,在高频时 \(C_s\) 阻抗下降,相当于短路 \(R_g\),使得驱动信号直接到达栅极;低频时 \(C_s\) 阻抗很大,\(R_g\) 起作用。这个网络的传递函数会引入一个零点和一个极点。
3.2 传递函数推导
从运放输出到MOS管栅极电压 \(V_o\) 的传递函数可以这样推。

节点A的电压是运放输出经过 \(R_o\) 后的电压。节点A到输出 \(V_o\) 经过 \(R_g//C_s\) 网络。输出 \(V_o\) 对地有 \(C_{gs}\)。
根据节点分析,传递函数为:
这个式子看起来复杂,但可以拆成零点和极点两部分来看。
先说零点。零点由分子为零得到:
解得:
零点频率为:
再说极点。极点由分母为零得到:
这个方程是关于 \(s\) 的二次方程,有两个极点。展开整理后:
两个极点频率的表达式比较复杂,可以写成:
这两个公式看起来很吓人,但在实际设计中可以简化。
如果 \(R_o\) 很小(比如10Ω以下),可以近似为0,那么两个极点可以化简为:
这种情况下,极点和零点非常接近,\(f_{p3} \approx f_z\),它们几乎相互抵消,系统只剩一个极点 \(f_{p4}\)。
但如果 \(R_o\) 不能忽略(比如200Ω),那么极点和零点的位置会更复杂,补偿效果也会打折扣。
3.3 参数计算
原帖作者取 \(R_g = 3.9\text{k}\Omega\),\(C_s = 100\text{nF}\)。代入计算。
零点频率:
极点 \(f_{p3}\) 和 \(f_{p4}\),取 \(R_o = 200\Omega\),\(C_{gs} = 1.2\text{nF}\)。
先算 \(f_{p3}\) 的近似值。由于 \(R_o\) 不为0,需要使用完整公式,但可以估算:
所以,\(R_g//C_s\) 网络产生了:
- 一个零点约408Hz;
- 一个极点约388Hz;
- 另一个极点约663kHz。
零点和第一个极点频率非常接近(408Hz和388Hz),它们的作用几乎相互抵消。所以,从整体效果看,\(G_{lf}\) 环节主要变为了两个极点:一个在388Hz,一个在663kHz。

3.4 为什么效果不好
从计算结果看,\(R_g//C_s\) 的效果并不理想。
原本的问题是663kHz的极点离交点598kHz太近。加了 \(R_g//C_s\) 之后,极点仍然是663kHz,只是多了一个388Hz的极点和408Hz的零点,两者相互抵消。663kHz的极点并没有被推远,也没有被零点抵消。
原因在于,\(R_g//C_s\) 网络的零点由 \(R_g C_s\) 决定,而高频极点主要由 \(R_o C_{gs}\) 决定。要让零点抵消高频极点,需要 \(R_g C_s \approx R_o C_{gs}\)。但实际电路中 \(R_g\) 是kΩ量级,\(C_{gs}\) 是nF量级,\(R_g C_s\) 远大于 \(R_o C_{gs}\),所以零点无法抵消高频极点。
此外,\(R_g//C_s\) 网络还引入了388Hz的极点和408Hz的零点。虽然它们相互抵消,但在抵消频率附近,相位会有先滞后再超前的波动,可能对相位裕度产生轻微影响。
所以,在这个模型下,\(R_g//C_s\) 不是一个有效的补偿方案。它引入了额外的零极点,但没有解决核心问题。
不过,这里要强调一点:这是在这个特定模型下的结论。如果 \(R_o\) 很小,或者 \(C_{gs}\) 很大,使得 \(R_o C_{gs}\) 接近 \(R_g C_s\),那么零点就能有效抵消高频极点,补偿效果会好很多。实际电路中的情况可能和模型不同,需要根据实际参数来判断。
4、 方案三:反馈网络补偿
4.1 电路结构
第三条思路是在反馈网络中增加补偿网络。
在第5章的电路中,反馈信号从MOS管源极经 \(R_S\) 到地,源极电压直接接回运放反相端。现在在反馈路径中插入一个补偿网络,如图6-6所示。

这个补偿网络的作用是:它和 \(R_f\) 一起,在反馈路径上产生一个零点和一个极点,用来抵消 \(G_{lf}\) 带来的高频极点的影响。
4.2 传递函数
设补偿网络的阻抗为 \(Z_c\):
反馈网络的传递函数为:
化简:
这个传递函数有一个零点和一个极点。
零点频率:
极点频率:
注意这里的极点频率和零点频率的关系:因为 \(R_f + R_c > R_c\),所以 \(f_p < f_z\)。也就是说,极点频率低于零点频率。这个网络的幅频曲线先从低频的0dB开始,在 \(f_p\) 处下降,在 \(f_z\) 处回升,最后趋于平坦。
4.3 参数计算
原帖作者取 \(R_f = 1\text{k}\Omega\),\(R_c = 470\Omega\),\(C_f = 100\text{nF}\)。
计算零点频率:
计算极点频率:
所以,补偿网络产生了一个1.08kHz的极点和一个3.39kHz的零点。
4.4 环路增益的变化
原来的环路增益是:
加入 \(G_{ff}(S)\) 后,环路增益变为:
按照前面的方法,把环路增益拆成两条曲线:
第一条曲线 \(20\log|G \cdot F|\) 不变。
第二条曲线变为 \(20\log|1/(G_{lf} \cdot G_{mos} \cdot G_{ff})|\)。
由于 \(G_{ff}\) 包含一个极点和一个零点,\(1/G_{ff}\) 也包含一个极点和一个零点,但位置互换。\(1/G_{ff}\) 的零点在 \(f_p = 1.08\text{kHz}\),极点在 \(f_z = 3.39\text{kHz}\)。
所以,第二条曲线在1.08kHz处出现一个零点(开始上升),在3.39kHz处出现一个极点(停止上升,转为平坦)。这个零点可以抵消 \(G_{lf}\) 高频极点的影响。

4.5 效果分析
加入 \(G_{ff}(S)\) 后,第二条曲线在1.08kHz处开始上升,在3.39kHz处趋于平坦。这意味着在3.39kHz之后,\(1/(G_{lf} \cdot G_{mos} \cdot G_{ff})\) 曲线比原来更高。
曲线更高,意味着与红色 \(G \cdot F\) 的交点频率会更高。交点频率升高,可能导致 \(G_{lf}\) 的极点663kHz进入交点以下,反而导致不稳定。
但另一方面,\(G_{ff}\) 的零点可以在交点附近提供相位超前,改善相位裕度。所以效果取决于零点位置和交点位置的匹配。
把两条曲线画在一起,如图6-8所示。

从图上看,相比未补偿前,补偿后的曲线在交点附近的形状有所改善。蓝色曲线的上升段(由 \(G_{ff}\) 的零点引入)部分抵消了 \(G_{lf}\) 高频极点的影响,使得闭合速率没有变得太差。
但是,663kHz的极点仍然存在,只是被 \(G_{ff}\) 的零点部分补偿。如果 \(g_m\) 进一步增大,或者 \(C_{gs}\) 进一步增大,系统仍然可能不稳定。
4.6 与其他方案的对比
三种补偿方案对比一下。
| 方案 | 原理 | 效果 | 代价 |
|---|---|---|---|
| 加缓冲器 | 降低 \(R_o\) | 最好,极点推到很远处 | 电路复杂,成本高 |
| \(R_g//C_s\) | 引入零点抵消极点 | 在本案例中效果有限 | 简单,成本低 |
| 反馈网络补偿 | 引入零点补偿相位 | 中等,需要仔细调参 | 中等复杂度 |
对于本案例的100mA恒流源,\(R_g//C_s\) 和反馈网络补偿都可以尝试。
5、 剩余风险
5.1 大电流下的问题
上面的分析基于100mA的漏极电流,\(g_m\) 取0.25。如果实际应用需要更大的电流,比如1A甚至10A,\(g_m\) 会显著增大。
\(g_m\) 增大意味着 \(1/G_{mos}\) 减小,青色曲线整体下移。下移之后,交点频率升高。如果交点频率升高到663kHz以上,闭合速率会变成-40dB/dec,系统不稳定。
所以,对于大电流应用,仅仅靠 \(R_g//C_s\) 或反馈网络补偿可能不够,需要考虑加缓冲器或者其他更强的补偿措施。
5.2 非理想因素的影响
第5章的分析基于以下简化假设:
- \(R_o = 200\Omega\) 是一个常数;
- \(C_{gs} = 1.2\text{nF}\) 是一个常数;
- 忽略了密勒效应;
- 忽略了PCB寄生电容;
- 忽略了电容的直流偏置效应。
这些假设在实际情况中可能不成立。比如:
- 运放输出电阻随频率变化,低频时可能只有几十Ω,高频时可能上升到几百Ω;
- \(C_{gs}\) 随漏源电压变化,在低压时可能远大于1.2nF;
- 密勒效应会放大栅漏电容,等效输入电容可能比 \(C_{gs}\) 大;
- PCB走线电容会额外增加栅极对地电容;
- 如果补偿网络中使用MLCC电容,其容值会随直流偏置电压变化。
这些非理想因素都会改变零极点的位置,影响稳定性,但是呢,要分具体的大小,在某些情况下,可以对某些因素做模糊处理。
5.3 温度的影响
\(g_m\) 和 \(C_{gs}\) 都随温度变化。\(g_m\) 的温度系数通常是负的,温度升高时 \(g_m\) 下降。\(C_{gs}\) 的变化相对较小,但在极端温度下也需要考虑。
温度变化会导致环路增益曲线移动,从而改变交越频率和相位裕度。设计时应该在最坏情况下留足余量。
5.4 负载变化的影响
恒流源的负载 \(R_L\) 也可能变化。虽然 \(R_L\) 不在反馈环路中,但它会影响MOS管的工作点,从而影响 \(g_m\) 和 \(C_{gs}\)。如果负载变化范围大,需要评估负载变化对稳定性的影响。
5.5 原帖的另一步补偿
其实大家如果看过原帖的话,就会发现原贴主还有一个额外的补偿措施,是在交流视角下,给这个负反馈系统添加了第二条反馈路径,这里没有详细讲述是因为这种存在多条反馈路径的最好还是通过仿真软件来解释,使用闭合速度法的话,会有一定的误差,而且理解起来有一点抽象,所以,关于系统存在多条反馈路径的解释后续我会写在仿真软件那边。



浙公网安备 33010602011771号