简介:本资源是面向射频工程师与微波电路设计学习者的ADS仿真工程包,聚焦多级高回退Doherty功率放大器(Multistage Doherty)的理论建模与理想电流源实现方案,重点解决传统Doherty在宽功率回退区效率塌陷问题。资源包含96个文件,以28个XML配置文件、18个DS电路原理图、14个TXT说明文档及4个CFG仿真参数文件为主干,辅以DDS架构定义、PRF布局设置、LOG仿真日志和ADS工程核心库文件(.lib/.oalib/.ads),整体压缩包仅1.87MB,结构紧凑、模块清晰,便于快速加载与对比分析不同拓扑(如Class-B、Asymmetric、Novel Multistage等共7种变体)。已有504人学习下载,提供完整可运行的ADS2023工程环境,涵盖从基础单级Doherty到创新三级联架构的全部仿真数据、网表、状态文件与设计注释,支持用户直接复现效率曲线、增益压缩及负载调制特性,是深入理解高回退Doherty设计原理与ADS实操流程的实用参考。 做Doherty功放的人应该都有这个体会:真正的难点不在电路拓扑本身,而在回退区间的效率能不能撑起来。这两年5G和多载波通信的PAPR越来越高,-8dB、-9dB回退已经不算新鲜,基站功放甚至要覆盖-9.5dB以上的深度回退,传统的两路Doherty在-6dB附近能打,再往深走效率就会断崖式掉下去,于是Multistage Doherty(多路/多级Doherty)的呼声越来越高。我自己在ADS里做这类架构预研时,几乎每次都先用理想电流源把负载调制网络验证一遍,再拿真实晶体管模型去碰。这套路子帮我省下大量调试时间,也把很多“以为器件问题、其实架构问题”的坑提前排掉了。这篇文章就把这套“理想Multistage高回退Doherty + 理想电流源”的ADS仿真流程完整展开,适合正在做Doherty预研、或者被高回退功放设计折磨的朋友直接照着搭。
1. 高回退Doherty为什么非要Multistage
1.1 两路Doherty的天花板
传统两路Doherty的原理大家都清楚:一个载波放大器(Carrier)工作在Class-AB,一个峰值放大器(Peak)工作在Class-C,两者通过输出合路网络并联。低功率时峰值不工作,载波单独给负载供电,由于四分之一波长线的阻抗变换作用,载波看到的负载被抬高到2倍最佳负载,于是提前进入饱和;功率升高到-6dB附近时,峰值开始开启,对合路点做负载调制,把载波的负载逐步拉回最佳负载,整个过程效率峰值会出现在回退点和饱和点两个位置。
但这个架构有个硬伤:它把“高回退效率”集中押在单个峰值放大器上,而峰值放大器一旦开启,载波的负载就被持续拉低,两个放大器的电流分配关系决定了这个拓扑在-6dB附近效率最高,过了这个点,辅助放大器的电流占比太高,载波又早早压缩,整体效率会快速衰减。所以你让两路Doherty去覆盖-9dB、-10dB回退,等于逼它干自己力所不能及的事。我在实际仿真里见过不少设计,两路Doherty的-6dB效率峰做得很漂亮,但拉到-9dB以后直接掉了十几个百分点,这就是拓扑本身的特性,不是调一调偏置就能救回来的。
1.2 三路/多级结构多出的那个效率峰
Multistage Doherty的思路,就是绕过两路Doherty“单峰”的限制,通过增加辅助放大器的个数,把原来一个效率峰变成两个甚至更多。最常见的结构是载波放大器加两个峰值放大器,分别在不同的回退深度开启:峰值1在深度回退时开启(比如-12dB附近),峰值2在中度回退时开启(比如-6dB附近)。这样效率曲线会出现两个明显的峰值,分别对应两个辅助放大器的开启点,整个高效区间被拉宽。
实际工程里对这个结构的称呼有点乱,有人叫3-way Doherty,有人叫Multistage Doherty,还有人叫Cascaded Doherty。严格讲,3-way侧重功率合成级数,Multistage侧重辅助放大器参与调制的次序,但核心思想一样:多个峰值放大器在不同功率回退点做分时负载调制,让载波放大器的工作点始终贴近最佳效率区域。从结果看,设计得当的三路Doherty可以在-12dB到0dB全程维持不低于45%-50%的效率,这个指标是两路构型很难达成的。
1.3 理想电流源仿真在这个环节的价值
很多人一上来就在ADS里挂GaN或LDMOS模型,然后被各种非线性、寄生电容、记忆效应搞得晕头转向。其实对于预研阶段,我们最关心的只有一件事:负载调制网络和开启点设计能不能让效率峰值出现在正确的位置。这时候用理想电流源是性价比最高的办法。
理想电流源模型把放大器简化为“输出电压-电流关系由外部变量控制”的电流源,去掉了晶体管模型里几十个参数带来的不确定性。你只需要定义载波源的最大电流、峰值源的开启阈值、以及各路电流与输入驱动的关系,就能在ADS里快速验证合路网络的特征阻抗、相位补偿和开启点分配。这些验证结论在换真实器件后依然成立,因为负载调制网络的带宽特性、相位敏感性并不会因为器件模型变化而改变。我个人的经验是,理想模型跑出来的效率峰位置,换成真实模型后通常最多偏差1-2dB,绝对值会降,但趋势和峰值位置可参考性很强。
2. 开始仿真前先想清楚负载调制网络
2.1 理想电流源如何模拟放大器
在ADS里用理想电流源模拟Doherty放大器,核心不是找一个叫“理想电流源”的现成元件,而是用受控电流源或VAR变量去表达放大器随输入功率变化的输出特性。我比较常用的是VAR变量定义的三分量模型:
- 载波放大器的基波电流随输入电压线性增长,达到最大值后削波;
- 峰值1放大器的电流在输入电压超过阈值后开始增长;
- 峰值2放大器的电流在另一个更高阈值后开始增长。
这样做的好处是,每个电流源的幅度不再是定值,而是输入功率的函数,仿真时扫描输入功率,就能看到不同功率下各支路电流的分配比例,进而观察负载调制过程。如果你习惯用ADS里的行为级模型,也可以用SDD1P或Verilog-A写同样的公式,效果一致,只是VAR变量更直观、改参数更快。
具体到公式,归一化输入电压幅度可以写成:
v_in = 10**((Pin_dBm - P_sat_dBm)/20)其中Pin_dBm是输入功率扫描变量,P_sat_dBm是饱和输入功率对应的参考值。载波源的基波电流可以定义为:
I_C = if(v_in < 1, I_max_c * v_in, I_max_c)峰值1源在深度回退开启,比如设定阈值0.25(对应-12dB),表达式为:
I_P1 = if(v_in < 0.25, 0, I_max_p1 * (v_in - 0.25)/(1 - 0.25))峰值2源在-6dB回退点开启,阈值0.5,表达式为:
I_P2 = if(v_in < 0.5, 0, I_max_p2 * (v_in - 0.5)/(1 - 0.5))这组表达式的物理含义很直白:载波从输入信号一开始就工作,峰值源则像真实的Class-C功放一样,输入信号幅度不够时完全关断,达到阈值后才开启。这样我们就可以通过调节v_threshold值,控制每个辅助放大器的开启回退深度。
2.2 开启点与回退深度怎么分配
开启点分配直接影响效率峰位置,这也是Multistage Doherty设计的灵魂。首先你要明确目标回退深度,比如系统要求-12dB回退下效率不低于50%,那么你的设计目标就要围绕12dB和0dB两个效率峰展开。三路结构通常把峰值1设置在较深回退处开启(-12dB或-9.5dB),把峰值2设置在较浅回退处开启(-6dB或-3dB),两个开启点之间的区域,负载调制由两个峰值源共同完成,效率曲线就会在这两个点各出现一个峰。
开启点用归一化输入电压阈值来定,换算公式很简单:回退深度 = 20 * log10(v_threshold)。比如你希望峰值1在-12dB处开启,那阈值就是10^(-12/20)=0.25;希望峰值2在-6dB处开启,阈值就是0.5。我习惯在VAR里把这三个阈值单独定义成变量(Vth1、Vth2),这样仿真时调开启点只用改变量,不用重新画图。这个参数在后续优化效率曲线位置时是最关键的旋钮,处理不好,整个Multistage结构的高效区间就会错位。
2.3 合路网络的特征阻抗初值
合路网络是Doherty的骨架,理想电流源仿真阶段最重要的事情,就是把合路网络的阻抗关系验证清楚。两路Doherty的标准接法是这样:载波PA输出端串联一段特征阻抗等于Ropt的四分之一波长线,然后接到合路节点;峰值PA直连合路节点;合路节点再经过一段四分之一波长线接到实际负载。在这套结构里,低功率时峰值PA等效开路,载波输出经过四分之一波长线看到的阻抗被抬高到2Ropt,从而实现回退效率提升。合路节点到负载的那段四分之一波长线特征阻抗,按(Z1^2 * Ropt / 2)^(1/2)之类的变换关系确定,实际常用Z2 = sqrt(RL * Ropt/2)作为初值。
三路Doherty的合路网络比两路多出一路峰值,接法也更多样。我常用的并联三路结构是:载波、峰值1、峰值2分别经过各自的四分之一波长线(特征阻抗可以不同)汇聚到合路节点A,节点A再经过一段四分之一波长线接到负载。每个支路四分之一波长线的特征阻抗,理论上与对应放大器的期望负载阻抗有关,但理想模型阶段不必推得太细,直接用Zopt_c、Zopt_p1、Zopt_p2做初值,合路输出线先用50Ω顶着,跑完效率曲线再用优化工具微调。仿真结果会对阻抗取值非常敏感,如果效率峰位置对但效率值不对,优先检查这几段线的特征阻抗。
2.4 直流功耗与效率公式
用理想电流源仿真时没有真实的晶体管耗电模型,效率计算需要手动建立一套“直流等效”公式。我的做法是假设每个放大器都工作在理想Class-B状态,根据导通角把基波电流幅值换算成等效直流电流:Class-B理想情况下,直流分量与基波幅值之比大约为0.637(即2/π)。这个近似适合载波放大器,峰值放大器工作状态更接近Class-C,比值会更低,但在初步架构验证阶段可以统一按一个系数近似处理,先看效率曲线趋势,绝对值不必太较真。
效率计算公式可以这样写(在ADS后处理中):先测负载上得到的输出功率Pout_W,再算总直流功耗:
P_DC_total = VDD * (I_DC_car + I_DC_p1 + I_DC_p2) DrainEff = Pout_W / P_DC_total * 100其中每个等效直流电流就是基波电流幅值乘以0.637。把这条方程放到ADS的MeasEqn里,仿真结束后就能直接画效率随回退深度变化的曲线。如果后续换成真实晶体管模型,这套公式就不再适用,要改用HB仿真器直接计算Drain Efficiency。
3. ADS里一步步搭理想Multistage Doherty
3.1 建工程、定频率、列清单
打开ADS,新建Workspace,原理图选择Schematic,先定好中心频率。我这里以3.5GHz为例,因为5G中频段很常用,你自己做项目时换成2.14GHz、2.6GHz都行,只需要注意后续所有四分之一波长线的电长度和HB仿真频率保持一致。
搭建前先把元件清单列好,避免边画边找:
- 三个理想电流源(用I_AC源,Mag参数引用VAR变量);
- 三段到四段TLIN(四分之一波长线,Z和E由VAR控制);
- 一段到两段TLIND或TLIN用于相位补偿;
- 一个负载Term,50Ω;
- 一个VAR变量控件,定义所有设计参数;
- 一个HB谐波平衡仿真控件;
- 一个MeasEqn后处理方程控件。
我建议把所有特征阻抗、电长度、阈值参数全部定义在同一个VAR里,别直接写在元件参数栏。这样后面优化变量设置、参数扫描时,只需要引用VAR里的名字,修改一个地方全局生效。
3.2 用VAR表达式定义三路理想电流源
新建VAR控件,在里面输入如下参数(以3.5GHz、目标饱和输出功率约33dBm为例,电流幅度先归一化处理):
Pin_dBm = -20 P_sat_dBm = 0 VDD = 28 I_max_c = 1.0 I_max_p1 = 0.8 I_max_p2 = 0.8 Vth1 = 0.25 Vth2 = 0.5 v_in = 10**((Pin_dBm - P_sat_dBm)/20) I_C = if(v_in < 1, I_max_c * v_in, I_max_c) I_P1 = if(v_in < Vth1, 0, I_max_p1 * (v_in - Vth1)/(1 - Vth1)) I_P2 = if(v_in < Vth2, 0, I_max_p2 * (v_in - Vth2)/(1 - Vth2)) Idc_c = 0.637 * I_C Idc_p1 = 0.637 * I_P1 Idc_p2 = 0.637 * I_P2然后放置三个I_AC元件(交流电流源),分别命名为Carrier、Peak1、Peak2,把Mag参数分别设为I_C、I_P1、I_P2。注意I_AC的Mag参数是电流幅度,默认单位是A,VAR里定义的1.0表示1A量级的归一化电流,真正的绝对电流并不重要,因为我们关注的是相对效率曲线。Phase参数先按0度、90度、180度试初值,后面微调相位补偿时要用。
这里有个容易坑人的地方:ADS的VAR表达式里用if函数条件判断,不同版本对连续分段表达式的支持情况有差异。如果原理图报变量解析错误,不要死磕VAR,改用SDD1P或Verilog-A行为模型来承载同样的分段函数,原理一样,只是写的位置不同。
3.3 拼合路网络和相位补偿
从TLines-Ideal库拖出TLIN,载波支路的TLIN设置Z = Zopt_c(比如25Ω),E = 90,F = 3.5GHz。这里E=90就是四分之一波长线的电长度。峰值1、峰值2也一样各自接一段TLIN,Z可以先用各自的最佳负载阻抗。三路四分之一波长线输出端共同接到合路节点,节点再通过一段TLIN(Z_L,初值50Ω,E=90)接到50Ω负载。
相位对齐是Multistage Doherty里最容易被低估的一环。三个电流源到合路节点的电长度必须完全一样,否则各路电流在合路点不能同相叠加,输出功率和效率都会大打折扣。我的做法是:先在载波支路放一个TLIND变量相位延迟线,Phase初值设为0度,然后在峰值1和峰值2支路上分别放相同的可调相位线,用优化或手动扫描找出使合路点输出功率最大的相位组合。理想源模型下这个问题很干净,相位对了输出功率立刻上去,相位偏了效率曲线马上塌下来,比真实器件容易判断得多。
3.4 设置谐波平衡仿真和后处理方程
在原理图里加入HB仿真控件,主频率设为3.5GHz,谐波阶数给5到7就够用。由于我们用的是理想电流源,谐波成分本身很简单,但保留几次谐波能让HB仿真器求解更稳。扫描设置指向VAR里的Pin_dBm,范围从-20dBm到0dBm,步进0.5dB或1dB,这个区间覆盖了从深度回退到饱和的完整过程。
后处理部分放一个MeasEqn,写如下内容:
Pout_W = real(Z_load) * mag(Vload)^2 / 2 Pout_dBm = 10*log10(Pout_W) + 30 Eff = Pout_W / (VDD * (Idc_c + Idc_p1 + Idc_p2)) * 100 Backoff = Pin_dBm - P_sat_dBm其中Vload是负载两端的电压变量,ADS里可以用探针或电压表直接测。画图时横轴用Backoff(回退深度),纵轴用Eff,这样一眼就能看出效率峰出现在哪个回退点,最直观。
4. 仿真结果:效率峰、负载阻抗轨迹怎么看
4.1 回退效率峰位置判断
仿真跑完,第一件事是看效率-回退深度曲线。理想的三路Doherty在这条曲线上能明显看到两个峰:一个在峰值1开启点附近(-12dB左右),一个在峰值2开启点附近(-6dB左右),加上饱和点还会有一个峰,总共三个局部高点。如果第二个峰值不明显,或者峰值1对应的回退深度没有落在你设计的-12dB位置,优先检查VAR里的Vth1、Vth2设置对不对,然后看合路网络Z值是否需要微调。
效率峰的绝对高度在理想模型下通常偏高(因为没考虑晶体管导通压降、寄生等损耗),我见过一些仿真曲线峰值能到70%甚至80%,这并不意外。你要关注的是“峰在什么回退深度、峰与峰之间的距离是否覆盖了目标回退区间”。这两个信息对后续真实器件设计有直接指导意义。
4.2 负载调制曲线是否真的发生了
效率曲线符合预期后,再深入到合路节点看负载调制轨迹。在载波输出端和两个峰值输出端分别放电压-电流探针,扫描完功率后画出各放大器输出阻抗随回退深度的变化。理想情况下,载波放大器在低功率时看到的阻抗应该接近2倍Ropt(也就是50Ω),随着峰值源逐步开启,这个阻抗被拉回Ropt(25Ω)附近。峰值放大器在未开启时输入阻抗应该是高阻或开路,开启后负载阻抗会回落到合理范围。
如果载波的负载阻抗变化轨迹不明显,说明合路网络的阻抗变换没有按预期工作,常见原因是合路节点到负载的四分之一波长线特征阻抗Z_L设得太随意,或者载波支路四分之一波长线的Z没有匹配Ropt。这一步验证重点在于,负载调制规律对了,后面换真实器件才有意义。
4.3 合路点相位是否对齐
通过电压探针观察合路点各支路电流的相位差。三路Doherty理想工作状态下,各支路电流在合路点应该基本同相(或按照四分之一波长线相位关系互补)。如果看到某一路电流相位明显偏移,输出功率会比各路功率代数和少很多,效率曲线也会比预期低。
相位对齐微调方法很直接:把峰值源的Phase参数或支路里的TLIND相位线参数设成优化变量,目标函数设为合路点输出功率最大或效率峰值最高,ADS的Optimize功能可以一键扫出最佳相位。理想模型阶段把相位关系锁定后,换成真实器件时相位偏移通常来自器件输入输出电容,那是后一阶段的事了。
5. 常见问题与排查实录
5.1 HB不收敛
理想电流源模型通常很容易收敛,但偶尔也会出现HB迭代不收敛的情况。最常见的原因是合路节点缺少直流回路,因为理想电流源在直流下的阻抗是无穷大,节点电压会浮空。解决办法是在合路点或者每个电流源输出端
本文还有配套的精品资源,点击获取