
聊推挽电路之前先说个我见过的真实场面一位朋友调了大半天的音频功放示波器上正弦波过零点总有那么一小段台阶声音听起来发毛、发干他换了好几款运放、换了耦合电容、甚至怀疑是电源纹波最后发现问题出在输出级——两只互补管在零点附近同时歇了口气。这就是推挽电路最经典的一个坑也是这一节想拆开讲清楚的东西。推挽电路在模拟电路里算是老面孔了从音频功放到电机驱动从线性稳压到开关电源几乎到处都有它的影子但真正把它用稳、用对还是得把几个关键点吃透两只管子怎么分工、偏置怎么给、交越失真怎么消、功率和散热怎么算。这篇内容适合已经认得三极管符号、会看基本放大电路但一上手搭功率级就发怵的朋友也适合做了几年硬件、想把输出级这块重新捋一遍的同行。1. 从一只管子的窘境说起推挽到底在解决什么问题1.1 单管射极跟随器的天花板先用最朴素的射极跟随器做对比。一只NPN管接成共集电极发射极接负载电阻到地基极给偏置输入信号从基极进、从发射极出电压增益接近1输出阻抗低看起来挺美。可一旦负载要的电流大起来问题就来了这只管子只能往上顶也就是只能往负载里灌电流没办法把负载上的电荷吸回来。举个具体场景。负载是8Ω扬声器输出要摆到±12V峰值电流就是1.5A。NPN管在正半周可以拉出这1.5A但到了负半周管子截止负载上的电流得靠别的东西泄放。如果发射极只接一个到地的电阻那这个电阻得一直耗电效率低得离谱如果用电容耦合电容能顶一阵但低频响应和瞬态就被拖累了。这就是单管输出的根本矛盾——它只能单向驱动双向负载玩不转。我早年做过一个小的耳机放大器图省事用了单管射极跟随加输出电容推16Ω的耳塞还行换到32Ω的大耳就明显感觉低频发虚、动态压缩。后来换成互补推挽同样的电源电压下低频的底气立刻不一样了。原因不复杂电容耦合在低频时容抗上升信号被分压掉了而推挽是直接耦合的双向驱动没有这道坎。提示单管输出不是不能用小信号、单向负载、成本极敏感的场合依然有它的位置但只要负载要求双向电流就得考虑推挽。1.2 推挽的本质是接力而不是并联很多人第一次听到推挽会误以为是两只管子并联增大电流其实完全不是。并联是两只管子同时干活、平分电流推挽是轮流干活上半周一只导通、下半周另一只导通像两个人推拉一扇门一个推、一个拉配合着来。这个分工带来两个直接好处。第一静态时两只管子都可以处于近乎截止或者很小的静态电流状态不干活就不耗电效率自然上去了。第二输出摆幅可以接近电源轨因为正半周由上面的管子拉到接近正电源负半周由下面的管子拉到接近负电源摆幅利用率比单管高得多。代价也很明显两只管子的特性必须匹配。上面的管子负责拉高下面的管子负责拉低如果两者的电流增益、开启电压、频率响应不一致输出波形的正负半周就会不对称听感上是上半边亮、下半边闷测出来是偶次谐波变大。这就是为什么互补对管要挑同一批次、同一型号甚至有的设计会做配对筛选。我见过一个案例某开发者为了省成本上管用了一只存货NPN下管用了一只参数接近但不同厂家的PNP静态电流调得挺漂亮可一上大信号正负半周的输出幅度差了将近0.4VTHD直接从0.05%飙到0.8%。换回同型号配对管问题消失。这类坑不写在任何教材里但实际调试时特别容易撞上。2. 两种骨架射极跟随式推挽和反相器式推挽2.1 共集电极推挽电压不放大电流放大最常见的推挽骨架是两只互补管接成射极跟随器NPN的集电极接正电源、PNP的集电极接负电源两只管的发射极连在一起作为输出基极连在一起作为输入。这种结构本质上是电流放大器电压增益接近1输入阻抗高、输出阻抗低。它的好处是稳定、好调、对管子的匹配要求相对宽容。坏处是输出电压摆幅会比电源电压低一到两个Vbe因为输出要跟着基极走而基极电压本身受前级摆幅限制。用±15V供电实际输出摆幅可能只有±13V左右剩下的压在管子的Vce(sat)和驱动级的余量上。这种结构在音频功放的输出级里非常经典。前级电压放大给足摆幅输出级只负责电流放大分工明确。我自己的经验是做小功率耳放或者前级缓冲共集电极推挽几乎是最省心的选择调试重点就落在静态电流和交越失真上。2.2 共射/共源推挽上下管轮流导通的反相器结构另一种骨架是两只管子接成共射或者共源输出从两只管的漏极/集电极连接点取出输入同时驱动两只管的栅极/基极。这就是CMOS反相器的结构也是数字电路里最常见的一级。在这种结构里上管导通时把输出拉到电源正下管导通时把输出拉到地两只管子不会同时完全导通理想情况下。它的电压增益可以很高输出摆幅几乎能到轨到轨但代价是两只管子会同时导通的瞬间产生直通电流尤其在输入信号切换的过渡区。这种结构在开关场景里用得最多比如MOSFET半桥驱动、D类功放的输出级。关键设计点就变成了死区时间的设置——必须保证上管完全关断之后下管才开启反之亦然。死区给太小直通电流能把管子烧了死区给太大输出波形失真、效率下降。2.3 两种结构的选型对照维度共集电极推挽射极跟随共射/共源推挽反相器式电压增益接近1可以很高输出摆幅比电源低1~2个Vbe/Vgs接近轨到轨驱动难度低输入阻抗高中需要考虑米勒效应直通风险很低高必须设死区典型场景音频功放输出级、线性缓冲开关电源、D类功放、电机驱动选哪种取决于你要的是干净的线性放大还是高效率的开关切换。前者选共集电极后者选反相器式。两者不是替代关系是两条不同的路。3. 交越失真乙类放大的原罪与偏置的解法3.1 死区是怎么形成的乙类工作的定义是每只管子导通180度正半周一只干活、负半周另一只干活交界处两只都不干活。问题就出在这个交界处三极管要有大约0.6V的Vbe才刚开始导通信号在±0.6V以内时两只管子都处于截止或者微导通状态输出跟不上输入波形在过零点出现一段平坦的台阶。这个台阶就是交越失真。用示波器看正弦波过零点会有一个明显的折角用频谱看会产生一系列奇次谐波三次、五次谐波尤其明显。听感上小音量时最明显声音发干、发涩像嗓子里有沙子。我做过一个对比测试同样的电路静态电流从0mA调到5mA、20mA、50mA用1kHz正弦波输入测THD。0mA时THD是0.5%左右5mA降到0.08%20mA降到0.02%再往上基本不再改善。这个拐点说明消除交越失真不需要很大的静态电流几十毫安量级就够这也是甲乙类工作点常见的取值区间。3.2 Vbe倍增器一个三极管搞定的偏置要让两只管子在小信号时也处于微导通就得在两只管子的基极之间加一个稳定的偏置电压大约等于两个Vbe约1.2V。最经典的做法是Vbe倍增器一只三极管接成二极管形式基极和集电极之间接两个电阻分压形成 Vbias ≈ Vbe × (1 R1/R2) 的关系。这个结构妙在它有温度补偿作用。当温度升高时输出管的Vbe会下降而偏置管也在同一片环境里它的Vbe同样下降偏置电压跟着降静态电流就被稳住了。如果没有这个补偿温度一升静态电流可能翻倍严重时直接热失控。具体取值上假设目标偏置是1.2V偏置管Vbe约0.65V那么 R1/R2 ≈ 0.85取R18.5k、R210k就差不多。实际调试时不必死抠计算用一个可调电阻代替R1上电后测输出级的静态电流调到设计值再换成固定电阻这是最稳妥的办法。注意Vbe倍增器的偏置管必须和输出管热耦合最好贴在同一块散热片上否则温度补偿形同虚设。3.3 静态电流怎么定实测怎么调静态电流的取值要在失真和效率之间做权衡。太小交越失真消不干净太大静态功耗上去了散热压力变大效率下降。我一般的做法是先按输出管最大集电极电流的1%~5%取一个初值比如峰值电流2A的输出级静态电流取20~100mA。然后上电测用示波器看小信号比如输出1V峰峰值下的波形过零点平滑了就够不用盲目加大。调的时候有个细节容易被忽略要把输入信号断开让输入端接地再测静态电流。如果输入端悬空或者有直流偏移测出来的电流会偏大误导判断。我见过有人调静态电流时输入还接着信号源调完一听声音正常结果待机功耗高得吓人返工重调。另一个细节是热机后再测一遍。冷态调到20mA热机后可能变成35mA如果散热设计没留够余量长时间工作就可能过热。所以最终的静态电流值要以热机稳定后的读数为准。4. 功率、效率与散热纸面计算和真实发热的差距4.1 输出功率与电源电压的关系推挽输出级的最大输出功率在双电源供电、负载为R的情况下理想值是 Pout Vcc² / (2R)这里的Vcc是单边电源电压。比如±24V供电、8Ω负载理论最大功率是 24² / 16 36W。但这是理想值实际会打折扣。输出管的饱和压降、驱动级的摆幅损失、电源本身的跌落都会让实际输出功率低于理论值。经验上打个八折到九折比较靠谱。±24V、8Ω的实际输出功率我测下来通常在28~32W之间。单电源供电的OTL结构公式会变成 Pout Vcc² / (8R)因为输出中点电压是Vcc/2摆幅只有一半。同样的24V单电源、8Ω负载理论最大功率是 24² / 64 9W。这就是为什么大功率功放几乎都用双电源单电源受限于摆幅功率上不去。4.2 效率算出来好看发热为什么还超标乙类放大的理论最大效率是78.5%甲乙类因为多了静态电流实际效率会低一些通常在60%~70%。但很多人算完效率就以为散热没问题结果一上电散热片烫得能煎蛋。问题出在最大功耗点不在最大输出时。乙类输出级的管耗在输出功率约为最大功率的40%左右时达到峰值这时候管子的发热最严重。如果按最大输出功率去算散热反而会低估最恶劣的工况。具体算一下±24V、8Ω的乙类输出级最大输出功率36W最大管耗大约是 Pout_max × 0.4 ≈ 14W分摊到两只管子每只7W左右。这个数字看着不大但加上静态电流的功耗、驱动级的功耗再考虑到散热片的热阻结温很容易逼近极限。我一般的散热设计流程是先算总功耗再根据环境温度和目标结温反推需要的热阻然后留30%以上的余量。比如环境温度40°C目标结温不超过110°C总功耗20W那么允许的热阻是 (110 - 40) / 20 3.5°C/W选散热片时按2.5°C/W以下挑稳一点。4.3 散热片和热阻的粗算方法热阻这条链要从结到环境串起来结到壳Rth_jc、壳到散热片Rth_cs靠导热硅脂或绝缘垫、散热片到环境Rth_sa。总热阻是三者之和。举个实例一只TO-220封装的大功率管Rth_jc大约是1.5°C/W用导热硅脂加云母垫片Rth_cs大约是0.5~1°C/W散热片的Rth_sa选3°C/W。总热阻约5°C/W。功耗7W时温升是35°C环境40°C时结温75°C还算安全。如果换成塑封管、不加绝缘垫、直接用螺丝固定在散热片上Rth_cs能降到0.2°C/W但要注意散热片是否带电、是否需要绝缘。这些细节在大批量生产时都是成本和安全要平衡的点。提示热阻计算只是粗估实际做样机时一定要用热电偶或者红外测温枪实测管壳温度误差可能有三成。5. 实际搭电路时最容易翻车的几个地方5.1 上下管同时导通的瞬间电流在线性推挽里如果偏置给得太大两只管子会在静态时同时导通很多形成较大的静态电流发热加剧。在开关推挽里这个问题更严重——如果上管还没完全关断下管就开了电源会通过两只管子直接短路瞬间电流可能几十安培管子几微秒内就报废。我亲眼见过一块电机驱动板因为驱动芯片的死区时间设置不对上电瞬间就冒烟。事后分析死区给成了零上下管有大概200ns的重叠导通时间母线电压24V回路电阻只有几十毫欧瞬间电流超过300AMOSFET的SOA根本扛不住。修法很简单死区时间根据管子的关断延迟和驱动能力来定一般取管子关断时间的1.5~2倍MOSFET常用100ns~500nsIGBT可以到1~2μs。调的时候用示波器同时看上下管的栅极波形确认没有重叠再上功率。5.2 射极电阻0.22Ω到0.47Ω的取舍大功率推挽输出级的发射极或者源极通常会串一只小电阻典型值0.22Ω到0.47Ω。这只电阻的作用有三个一是提供局部负反馈稳定静态电流二是让多只并联的管子均流三是限制瞬态电流。取值是个权衡。阻值大稳定性和均流效果好但会损失输出摆幅和效率大电流时压降不可忽视。0.47Ω的电阻在2A电流下压降接近1V输出功率直接少一截。阻值小损耗低但均流和稳定效果打折。我一般的做法是单管输出用0.22Ω多管并联用0.33~0.47Ω。音频功放里常见0.22Ω电机驱动里常见0.1Ω甚至更低因为电机驱动更看重效率而且MOSFET的均流特性比三极管好。还有一个容易忽略的点这只电阻的功率额定要留够。峰值电流2A、阻值0.33Ω瞬时功耗是1.3W但平均功耗取决于占空比。选型时按平均功耗的2~3倍留余量别用0.25W的贴片电阻去扛会烧。5.3 驱动能力不足导致的拖尾和交越恶化推挽输出级的管子通常β不高尤其大功率管hFE可能只有20~50。如果驱动级提供的基极电流不够大信号时管子进入放大区边缘输出波形会出现拖尾——本来该快速切换的地方变得圆钝听感上是高频发闷、瞬态变差。算一下输出峰值电流2AhFE取30需要的基极电流是67mA。如果驱动级只能给20mA那大信号时管子根本撑不住输出被压缩。这种情况在低成本设计里特别常见前级用个小运放直接推功率管看着能响实际性能很差。解决办法是加一级驱动缓冲或者用达林顿接法两只管子复合β相乘。达林顿的代价是饱和压降变大、开关速度变慢线性场景问题不大开关场景要慎用。5.4 自激振荡与相位补偿推挽输出级接上容性负载或者长线缆时很容易自激。表现是输出波形上叠加高频振荡声音里有吱吱的杂音严重时管子发热剧增。根因是输出级的多级放大带来了相移加上负载电容形成极点环路增益在某个频率上还没降到1、相位已经转了180度满足振荡条件。解法通常是在反馈路径上加一个小电容做相位补偿或者在输出端串一个小电感隔离容性负载。补偿电容的取值要靠实测从几十皮法开始试看着方波响应的过冲和振铃调。取值太小压不住振荡太大高频响应变差。我一般的习惯是从47pF起步配合10kHz方波观察调到过冲小于10%为止。6. 不同场景下的推挽变形6.1 音频功放的OCL与OTL音频领域是推挽电路最经典的应用。OCL无输出电容用双电源输出直接接扬声器低频响应好是主流方案。OTL无输出变压器用单电源输出串一只大电容隔直成本低但低频受电容容量限制。两者的输出级都是互补推挽区别只在供电和耦合方式。OCL的调试重点是中点电位要精确调到0V偏差超过几十毫伏就会让扬声器有直流流过长期下来音圈发热。OTL的调试重点是输出电容前的直流电位要稳定在Vcc/2。还有一个变种叫准互补输出用两只同极性的NPN管或者NPNPNP复合组成上下臂。这是早年大功率PNP管难做、成本高时的折中方案现在互补管便宜了准互补已经不多见但在一些老电路或者低成本设计里还能看到。6.2 电机驱动的H桥H桥本质上是两组推挽的组合把负载电机接在两个半桥的中点之间通过控制四个开关管的通断实现正转、反转、制动。每个半桥就是一个推挽结构上管接母线正、下管接地。H桥的设计重点和音频完全不同关注的是开关损耗、死区时间、续流路径、母线电容的布局。电机是感性负载关断瞬间会产生反电动势必须有续流二极管或者利用MOSFET的体二极管来泄放否则电压尖峰会击穿管子。我用过不少电机驱动方案踩过最大的坑是母线电容放得太远。电机换向时的大电流脉冲会在母线上产生很大的电压波动电容离得远引线电感大尖峰压不住管子经常莫名其妙地坏。后来把电容挪到紧贴半桥的位置问题就没了。这个经验在书本上不太强调但在实际布板时是生死攸关的。6.3 开关电源里的推挽拓扑开关电源里的推挽拓扑是两只开关管交替导通驱动一个中心抽头变压器的初级。上管导通时电流从中心抽头流向一端下管导通时流向另一端变压器磁芯在正反两个方向交替磁化。这种拓扑适合低压输入、中等功率的场合优点是变压器利用率高、输出功率大缺点是对两只开关管的对称性要求高如果导通时间不一致变压器会偏磁严重时磁芯饱和、管子炸掉。防偏磁的常规做法是加隔直电容或者在控制环里做电流不对称检测。我做过的几个小功率推挽电源都在初级串了一只几微法的隔直电容虽然损失一点效率但稳定性提升明显。这个电容要选耐纹波电流大的型号普通电解扛不住高频纹波容易发热鼓包。推挽电路看着简单两只管子一上一下但真正调起来从偏置、交越、散热到布板、死区、补偿每一个环节都能让人折腾半天。我自己的体会是别急着上大功率、大电流先用小信号、低电压把波形调干净把静态工作点摸透再一步步加大负载。很多烧管子的惨案都是在波形还没看明白的时候就上了满功率。另外手边常备一个能看谐波频谱的工具比单纯看示波器波形更容易发现交越失真和不对称问题这一点我在调音频功放时受益最多。