ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

三极管放大电路自激振荡根因分析:相位裕度、寄生参数与补偿实战

三极管放大电路自激振荡根因分析:相位裕度、寄生参数与补偿实战 每次做模拟放大最让人头疼的不是算静态工作点也不是调增益而是那种“原理图看着没问题、一上电就闹鬼”的高频振荡。我印象最深的是早年调一块两级共射加射极跟随器的前置放大板增益电位器旋过一大半示波器上立刻浮现出一个约200kHz的稳定正弦波幅度固定、频率稳定输入端接地它也照振不误。后来才明白这就是三极管放大电路的自激振荡——本质是负反馈系统在某一个频率上悄悄变成了正反馈。这篇文章就从根因出发把自激振荡的成因、寄生参数的“隐形贡献”、排查思路和补偿手段一条条拆开讲。不打算停留在“建议加个电容”这种层面而是把背后的相位裕度逻辑、寄生极点叠加关系、以及我实测过的补偿数据完整走一遍。适合正在被高频振荡折磨的硬件工程师、做音频或传感器放大电路的电子爱好者还有学完模电却对“相位裕度”似懂非懂的在校学生。1. 自激振荡的本质负反馈在什么条件下会“翻车”1.1 闭环增益公式背后的隐藏条件所有负反馈放大器的闭环增益都可以写成Af A / (1 Aβ)A是开环增益β是反馈系数。教科书里讲这个公式时通常默认A和β都是实数算出来的分母永远是“1 正实数”一切OK。但在真实电路里A是频率的函数既有幅频特性也有相频特性。晶体管内部有结电容放大级本身就是一个低通网络信号频率升高时A的幅度在下降相位也在滞后。问题就出在这里。当频率升高到某个点Aβ的相移接近180°时分母里那个“1 Aβ”就不再是“1 正数”而会变成“1 − 正数”。如果在这个频率上|Aβ|恰好等于1分母变成0闭环增益趋向无穷大——即使输入端没有任何信号电路自己也能产生输出。巴克豪森判据说的就是这个临界状态|Aβ| ≥ 1且相移 ±180°只要同时满足这两个条件振荡就是必然的。其中任何一个条件不满足振荡都无法维持。这句话听起来简单但实际排查问题时大多数人都只盯着“增益有没有太大”却忽略了第二个条件——相位。有一个非常贴近生活的类比麦克风对着音箱就会啸叫。声音从音箱出来被麦克风重新拾取、放大、再放出来循环往复最终变成尖锐的啸叫。三极管放大电路里的“啸叫”不需要声学路径电信号在电路的内部环路里转一圈回到输入端时已经是同相且幅度不减振荡就成立了。1.2 相位裕度与增益裕度两条“安全红线”工程上我们并不关心“刚好振荡”的临界点而是关心“离振荡还有多远”。这个距离就是用相位裕度Phase Margin和增益裕度Gain Margin来衡量的。相位裕度的定义是在增益交点频率|Aβ| 1也就是0dB的那个频率处系统相移距离-180°还差多少度。设计良好的负反馈放大器相位裕度至少要大于45°最好做到60°以上。增益裕度则是在相移达到-180°的那个频率上|Aβ|比1小多少一般要求大于10dB。这两个裕度不是理论上的“洁癖”而是给不确定性留的缓冲。三极管的结电容会随温度漂移同型号管子换一批β值和Ccb都可能差出30%以上负载阻抗更是随频率起伏不定。如果你把相位裕度设计在临界点上某天温度升高、管子批次一变电路就会从“勉强稳定”掉进“持续振荡”。我在调试中通常会用方波响应来快速判断相位裕度的水位这个方法比扫频快得多相位裕度方波响应表现系统状态大于60°无明显过冲响应干净稳定裕度充足约45°轻微过冲约10%~20%可以接受但不建议再恶化约20°~30°明显振铃多周期衰减振荡接近临界环境变化可能触发自激小于0°无输入也振荡自激已成立可以用阻尼来理解相位裕度相当于系统的“刹车”力度。刹车足扰动来了一下就稳住刹车不够扰动一来就来回晃完全没有刹车车自己就往坡下冲。下面要讨论的正是哪些元件在一点点“偷走”这些刹车。2. 谁在偷走相位裕度三极管放大电路里的“隐形”相移源2.1 第一号元凶结电容和米勒效应三极管不是理想器件。基极-发射极之间有等效电容Cπ基极-集电极之间有Cμ在规格书里通常叫Cob或Ccb集电极-发射极之间还有Cce。这些电容本身只有几pF到几十pF低频时毫无存在感可频率一旦上去它们就会和周围的电阻构成RC低通网络引入相位滞后。最需要提防的是Cμ因为它跨接在输入端和输出端之间。共射极放大器的集电极信号与基极信号反相Cμ两端承受的电压变化是输入变化的(1|Av|)倍所以从输入端看进去Cμ的等效电容被米勒效应放大了C_in_miller Cμ × (1 |Av|)说个具体数字。2N3904的典型Ccb约4pF放大器的中频电压增益|Av| 50倍那么它在输入端的等效电容大约是4pF × (1 50) 204pF如果你的信号源内阻或偏置网络等效阻抗是10kΩ这个输入端低通极点的主频率大约是fp1 1 / (2π × 10kΩ × 204pF) ≈ 78kHz也就是说从78kHz开始每十倍频程就会多贡献45°相移。你听的是20kHz的音频信号可放大器的增益交点可能远在几百kHz之外在那个位置上米勒电容带来的相移早已把相位裕度拖到了危险区。很多看似“莫名其妙”的自激根源就在这一个几pF的结电容上。尤其是增益设得越高的放大级米勒效应越明显相移越早发生。2.2 第二号元凶多级放大器的极点叠加单级共射放大电路在自己的增益带宽积范围内通常只贡献一个主极点最终相位滞后不超过90°。但两级放大就完全不同了——每级贡献接近90°两级叠加就能逼近180°。而这个假设还偏乐观因为每一级的输出阻抗和下一级的输入电容还会构成额外的寄生极点实际的相移比理论计算来得更早、更快。有一个粗略的工程经验N级放大器的高频总相移大约按每级90°累加。两级的极限就是180°三级几乎必然翻车。我自己遇到的三极管放大自激案例绝大多数都是两级以上电路。单级共射放大只要输入输出之间没有直接耦合路径一般很难自激两级及以上才是事故高发区。这里有一个容易忽略的细节即使每一级在增益交点频率处的单独相移只有60°两级加起来就有120°再加上电源耦合、布局寄生和负载电容贡献的30°~50°总相移完全可能超过180°。所以多级放大器不自激反而是需要认真设计才能达到的结果。2.3 第三号元凶电源耦合、地弹与布局寄生参量这一条最容易被入门者忽略但它在我处理过的自激故障里占比至少一半。任何一路电源都不是理想电压源电源线上有内阻也有分布电感。当放大级的输出电流随信号变化时电源线上的压降也在变化这个纹波通过偏置电阻串回前级基极等于在输入回路里注入了一个额外的信号。如果这条路径上的相位和幅度条件合适它就构成了一个独立的负反馈环路或者正反馈环路。地线同样如此。PCB铜箔不是超导体输出级的大电流在地线上产生压降这个压降被前级当作“输入信号”拾取形成地环路。尤其是在手工洞洞板或者布局紧凑的双层板上地线路径稍有不当高频自激几乎是必然的。判断是否是电源耦合或地线问题有几个实战技巧用带接地弹簧的示波器探头测试避免探头地线夹本身形成天线否则你看到的振荡可能根本不在电路里。观察振荡频率是否随电源电压微小变化而漂移。电源耦合导致的自激往往有“电压一动频率就动”的特征。用手或者绝缘体触碰某个节点振荡频率改变或消失说明该节点参与了振荡环路。下面要讲的排查案例恰恰就栽在这一类问题上。3. 一次完整的自激排查过程从示波器波形到元凶落网3.1 先记录故障现象别急着拆元件故障电路是一个两级共射放大加射极跟随器的小型前置放大器供电12V中频增益设计约200倍输入悬空时输出端出现稳定的约180kHz振荡幅度约1.2Vpp。拿到这个现象我第一件事不是去动烙铁而是把振荡特征尽可能完整地记录下来振荡频率约180kHz与外部信号无关输入接地也不消失。振荡幅度约1.2Vpp增益电位器变化时幅度轻微改变但频率基本不变。中间级集电极和末级发射极都能看到振荡波形但相位不同。逐级检查静态工作点集电极电压正常没有进入饱和或截止。这个阶段已经能判断出很多信息。振荡频率远高于有用信号频段说明参与振荡的等效电容不会很大大概率是结电容或者布局寄生电容而不是耦合电解电容和旁路电容。振荡同时出现在多个节点说明振荡环路跨越了两级电路不是单一晶体管内部的局部问题。3.2 试探性实验用“破坏”来缩小范围接下来按排除法走每一步都在示波器上观察振荡幅度的变化。这个环节不需要高深理论关键是逻辑清晰、操作谨慎。第一步把输入端短路到地。振荡纹丝不动。这说明振荡不是从输入端耦合进来的输入级不是振荡环路的“入口”。第二步在输出端接上10Ω假负载。振荡频率略有下降从180kHz降到约160kHz但仍然存在。这说明输出负载参与了振荡路径但不是决定性因素。第三步把末级发射极的旁路电容拆掉。振荡直接消失。这是一个非常重要的线索——末级在失去交流增益之后整个环路增益被拉低到不足以维持振荡说明环路增益刚好过线处于“临界振荡”状态。第四步把旁路电容装回改为在第二级基极串联一个1kΩ电阻。振荡同样消失但高频增益明显下降。这一系列试探说明振荡环路包含了末级的交流增益路径而且环路增益只比振荡阈值高一点。只要做一点“破坏性”改动振荡就会停。这给了我们两个治本方向一是压低环路增益二是补偿相位。这两条后面都会讲到。3.3 开环测量把“幽灵环路”逼出来试探性实验只能定位方向想准确判断还是要做环路测量。我采用的办法是在反馈环路中插入一个电感用高频阻抗把环路断开同时保留直流通道维持静态工作点。具体做法是在末级输出与后级反馈网络之间串入一个1mH电感在180kHz频率下这个电感的阻抗约为Z 2πfL 2π × 180kHz × 1mH ≈ 1130Ω这个阻抗足以切断高频环流而直流下电感阻抗为零静态工作点不受影响。然后在断开点前注入一个扫频正弦信号用示波器X-Y模式观察反馈路径回到断开点处的信号。实测结果非常经典在180kHz附近反馈路径上的信号与注入信号几乎同相且幅度大于注入信号。这正是巴克豪森判据的现场演示——环路增益超过1相位回到0°等效的-360°振荡条件完全满足。如果没有信号发生器和X-Y模式的示波器用LTspice做AC分析也一样。把同样电路搭进仿真断环后插入交流信号源跑一遍幅频和相频曲线就能看到环路增益回到0dB时的相位是否已经逼近-180°。仿真结果通常和实物故障高度吻合前提是模型里包含了晶体管的寄生电容参数。3.4 真正的元凶一个放错位置的去耦电容断开环路后问题回到了“为什么会有这个额外的反馈路径”上。排查到最后发现根源并不在原理图内部而是一颗100nF去耦电容的位置不对。这颗电容在PCB板上离末级电源引脚大约3cm远中间走了一段细长电源线。走线电感和去耦电容构成一个LC串联谐振网络在180kHz附近产生了一个阻抗峰值。结果就是末级电源引脚的实际高频阻抗远高于设计预期输出电流产生的电源纹波通过偏置电阻串回前级形成了前面分析的额外反馈路径。把100nF电容移到末级电源引脚正下方、紧挨集电极负载电阻的位置后振荡消失。再用1kHz方波测试输出波形干净没有任何振铃。这个案子给我留下一个很深的印象自激振荡的根因不一定在原理图内部的元件参数PCB布局和电源走线完全有资格独立构成一条反馈环路。很多时候花一整天查原理图最后发现只是电容摆位差了3cm。4. 稳定化补偿打破振荡环路的几种常用手段4.1 首要思路让增益交点“跑”到第二极点之前弄清楚振荡机理之后补偿思路就明确了。三极管放大电路的高频相位滞后主要来自各级极点那么稳定化的核心就是控制增益交点的位置让它在遇到第二个极点之前就降到0dB以下。这样第二个极点即使贡献大量相移对环路稳定性也起不了决定作用。最经典的做法是在共射极放大级的基极-集电极之间并联一个小电容人为加大米勒电容。以2N3904为例原本Ccb约4pF增益50倍。如果并联一个20pF电容等效输入电容变成(4 20) × (1 50) ≈ 1224pF主极点被大幅压低高频增益提早开始下降。等到原本那个“捣乱”的第二极点出现时环路增益已经低于1振荡条件无法同时满足。这个方法的代价是带宽变窄。我在实际电路里测过一组对比两级共射放大供电12V中频增益约200倍负载10kΩ。未补偿前增益交点频率约450kHz相位裕度只有约12°在180kHz处持续自激。在两级基极-集电极分别并联22pF毫米勒电容后增益交点频率降到约150kHz相位裕度提升到40°以上自激消失了但-3dB带宽也从约120kHz掉到了约40kHz。“稳定”和“带宽”在负反馈放大器里是守恒的。想要更稳就必须让渡一部分带宽或者增益这是物理规律不存在免费的午餐。4.2 滞后-超前补偿用零点“挽留”相位如果对带宽有要求单纯的毫米勒补偿就不够精细了。此时可以用RC滞后-超前网络在相位恶化的频段附近插入一个零点抵消掉某个寄生极点带来的相移。典型做法是在两级之间的耦合路径上先用一个电阻串联到下一级基极再在电阻上并联一个小电容。比如第二级基极的寄生极点约在200kHz我可以在前级输出到基极之间串一个1kΩ电阻再并联一个820pF电容零点频率为fz 1 / (2π × 1kΩ × 820pF) ≈ 194kHz这个零点正好落在寄生极点附近相当于“抵掉”了那个极点带来的相位滞后。实测相位裕度能提升约30°方波响应从明显振铃变为几乎没有过冲。这个方法也有个陷阱补偿电容的值不能拍脑袋。零点放得比极点高太多等于没补放得太低又会在中频段引入额外相移反而恶化稳定性。我在调试时通常会用一个可调电容或者多并几个固定电容一边看方波响应一边微调找到振铃最小的位置后再固化成标准值。4.3 物理层补偿从布局和电源上掐断反馈路径有些自激问题靠加电容是压不下去的因为问题根本不在增益和相位链条上而是布局和电源本身参与了反馈。这时候要在物理层面动手每一个放大级都必须有就近的去耦电容。推荐100nF陶瓷电容和10μF电解电容组合100nF负责高频10μF负责低频稳压两个一起才能覆盖宽频段。输入级的地线单独走不要和末级大电流地线共用同一段铜箔。条件允许就用星型接地所有地线在电源滤波电容的负极单点汇合。反馈网络元件要尽量靠近晶体管引脚。反馈环路包围的面积越小拾取杂散磁场和相邻走线串扰的概率就越低。输入信号走线要和输出走线保持距离避免平行走线。两层板中间有完整地平面时情况会好很多。我处理过一个很极端的案例两块原理图一模一样的板子A板怎么调都自激B板一装就好。最后发现A板是手工洞洞板搭的输入和输出飞线绞在一起超过5cm分布电容直接充当了反馈通路。把那根飞线剪短重走问题立刻消失。布局和走线在稳定性方面的分量有时候比原理图更重。4.4 补偿前后的实测数据对比给一组我自己实测的对比数据方便大家直观感受。电路是两级共射放大器供电12V中频增益200倍负载10kΩ。参数补偿前毫米勒电容补偿后毫米勒RC调零后增益交点频率约450kHz约150kHz约160kHz相位裕度约12°约40°约58°振荡情况持续自激约180kHz无自激无自激方波振铃严重多周期衰减轻微过冲无明显过冲-3dB带宽约120kHz约40kHz约55kHz从表格里能清楚看到补偿方案是可以叠加的。单靠毫米勒电容能把振荡压下去但带宽损失比较大再配合RC零点调零可以把部分带宽“找回来”同时相位裕度还更高。实际项目里我一般先用毫米勒电容建立基本稳定再根据方波响应决定要不要加RC调零。5. 实践沉淀几个识别自激与避免返工的经验5.1 用振荡频率判断“元凶类型”自激振荡的频率特征往往能直接指向问题区域这是我多年排查下来的经验总结振荡频率在几十kHz到几百kHz通常与放大级间极点、电源耦合、去耦电容布局有关。振荡频率在1MHz以上大概率是布局寄生参数、晶体管结电容、探头接地不良造成的。振荡频率随电源电压改变而漂移基本可以锁定电源路径问题。振荡波形有明显谐波失真说明振荡幅度已经大到进入晶体管的非线性区此时必须先降低环路增益否则会掩盖真实的振荡频率。5.2 “换管子管用”是个陷阱有一种很迷惑人的现象换一个型号的管子或者换一批管子自激消失了于是以为问题解决了。但实际上很多国产管和进口管的结电容参数差异很大换管之后只是把工作状态暂时推出了振荡区温度和电压一变自激还会回来。正确的做法是记录换管前后的振荡频率和幅度变化反推参与振荡的等效电容。如果换管让频率明显改变说明结电容确实深度参与了环路这时候应该在补偿上下工夫而不是把希望寄托在“这批管子不振荡”上。5.3 仿真正常不等于实物正常SPICE仿真可以预测绝大多数与极点相关的自激因为它能精确计算晶体管结电容和各级RC极点的相互作用。但仿真建模不了PCB布局、走线电感、地线压降和电源阻抗这些恰恰是现场故障的头号来源。我的做法是仿真阶段先确保相位裕度不低于45°并且把关键的毫米勒补偿电容、RC调零位置预留到PCB上。板子回来后如果出现仿真没预测到的振荡优先怀疑布局和电源路径而不是急着改补偿参数。5.4 补偿的“度”如何把握补偿不是越狠越好。过补偿会让放大器变得“迟钝”瞬态响应变差方波边沿变缓甚至在中频段引入额外的相位畸变影响信号的保真度。对于音频放大这会让声音发闷对于传感器放大会拖慢响应速度。我的原则是补偿以“够用”为准。目标相位裕度设定在50°~60°之间不追求过高的裕度因为过度补偿牺牲的带宽和瞬态性能往往比振荡本身更影响体验。每次调整补偿参数后都用标准方波信号做一次全频段检查确认没有振铃且上升沿没有明显变缓才算真正完成。做完这么多年放大电路我的体会是自激振荡并不可怕可怕的是没有章法地乱试。先理解相位裕度的含义再梳理寄生参数路径然后用排除法和环路测量精确定位最后针对性补偿这四步走下来绝大多数自激问题都能在半天内解决。最后分享一个习惯每次画完板子我都会在示波器上从1Hz扫到10MHz用短路探头放在输出端看看有没有不该出现的峰。这个习惯帮我挡掉了至少三次批量的自激返工值得每位搞模拟电路的朋友一试。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进