ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于ADS、HFSS与Matlab的平面带通发夹滤波器设计方法

基于ADS、HFSS与Matlab的平面带通发夹滤波器设计方法 不少刚接触射频设计的同学拿到“平面带通发夹滤波器”这个题目时第一反应往往是打开ADS画电路、再去HFSS里建个模型然后就开始漫长而痛苦的“调参之旅”。结果常常是电路仿真通过了HFSS一仿真频率就跑偏HFSS调好了尺寸加工回来实测又对不上。这一连串问题的根源在于没有把ADS、HFSS、Matlab这三个工具放到一条完整的链路里去用而是把它们当成了三个孤立的画图工具。这篇内容我想分享的不是某个单一软件的某个按钮怎么点而是我完整走通“基于ADS、HFSS、Matlab的平面带通发夹滤波器设计”后沉淀下来的一套方法每个软件在哪个阶段介入、数据怎么流转、理论值和仿真值对不上时怎么定位问题。目标读者就是正在做滤波器课程设计、毕业设计或者刚入行需要独立完成第一个微带滤波器的工程师。看完之后你能建立一条从设计指标到加工实测的完整通路而不是继续在三个软件之间来回试错。1. 三个软件各管哪一段发夹滤波器设计的任务拆解1.1 发夹滤波器为什么值得做平面化设计发夹滤波器Hairpin Filter本质上是从平行耦合线滤波器演变来的把半波长谐振器弯折成“U”形像一个发夹所以叫这个名字。这个弯折带来的直接好处就是尺寸大幅缩小在2.4GHz这种常用频段一个普通平行耦合线滤波器可能长达几十毫米但发夹结构在保持性能的前提下能把长度压缩到三分之一左右。对PCB面积敏感的射频前端来说这个优势非常实际。不过弯折也带来了设计上的麻烦谐振器之间不仅存在平行段的耦合还存在弯折区域的寄生耦合和辐射耦合理论计算很难全部覆盖。这就是为什么发夹滤波器比直通的平行耦合线滤波器更依赖全波电磁仿真工具来验证和修正。1.2 ADS、HFSS、Matlab各自擅长的领域我在实际项目中形成的分工认知是这样的ADSAdvanced Design System解决的是“电路拓扑和匹配网络是否合理”的问题。它的电路级仿真速度极快微带线模型、集总元件模型丰富适合在初期快速验证滤波器的阶数、带宽、回波损耗是否满足指标。但它对弯折处、拐角寄生、辐射效应的描述是理想化的精度有限。HFSSHigh Frequency Structure Simulator解决的是“物理结构实际表现如何”的问题。它以三维全波有限元方法求解麦克斯韦方程组能精确还原微带线的电场分布、耦合强度、寄生效应是设计流程中离“真相”最近的一环。代价是建模复杂、仿真时间长。Matlab解决的是“理论计算和数据处理”的问题。从低通原型元件值反查、耦合系数计算出初值到HFSS导出S参数之后的参数提取、误差分析、自动优化Matlab都是效率最高的平台。1.3 完整的数据流是这样的把三个工具串成一条线核心数据流应该是设计指标 → Matlab理论合成得到初始尺寸 → ADS电路仿真验证拓扑 → HFSS全波建模仿真 → 导出S参数到Matlab → 提取实际耦合系数和外部Q值 → 与理论目标对比 → 修正HFSS模型尺寸 → 再次仿真直到收敛 → 生成最终版图 → 加工实测。很多人做设计的时候跳过了“提取实际参数”这一步。仿真结果不对就直接在HFSS里凭感觉微调或者回到ADS里乱扫参数。这样做不是不行但属于盲人摸象。正确做法是每次HFSS仿真之后都把结果拿回Matlab里做一次定量分析搞清楚“理论值和实际值的偏差到底出在耦合系数上还是外部Q值上”这样才能精准地知道下一步该改哪个尺寸。2. 先别急着打开软件Matlab里的理论合成2.1 设计指标怎么定才合理做设计第一步不是打开任何软件而是把指标写清楚。我建议用一种“可验证”的方式写方便后面每步对照中心频率f0 2.45GHz分数带宽FBW 10%即245MHz带宽带内回波损耗优于15dB选这个值是为了匹配常用的0.1dB纹波切比雪夫原型如果指标要求20dB以上低通原型要选更小的纹波带外抑制偏离中心频率两倍带宽处优于30dB这些指标决定了滤波器阶数。用切比雪夫低通原型估算4阶就能满足上述抑制要求。4阶意味着有4个谐振器对应发夹结构里4个U形谐振单元。2.2 耦合系数和外部Q值的理论计算这一步是整个设计的理论基石。带通滤波器的物理实现本质上就是控制两个东西谐振器之间的耦合强度以及谐振器与输入输出馈线之间的外部Q值。对应到理论参数就是M_ij和Q_e。对于切比雪夫带通滤波器归一化耦合系数和外部Q值的计算公式是耦合系数M_ij FBW / sqrt(g_i × g_j)输入外部Q值Q_e1 g0 × g1 / FBW输出外部Q值Q_en g_n × g_(n1) / FBW其中g_i是低通原型元件值。以0.1dB纹波4阶切比雪夫为例查表得到一组g值后代入公式分数带宽FBW0.1的情况下算出来的目标值大致落在这样的量级M12和M34约在0.08左右M23约在0.06左右外Q约在12左右。需要说明的是不同教材上的低通原型表可能略有差异查表版本不同会带来百分之几的偏差这属于正常情况。重点是理解这个量级关系因为后面你在HFSS里提取出来的耦合系数如果和这个量级对不上那肯定不是“微调”能解决的问题而是结构设计本身出错了。2.3 从M值和Qe值到物理尺寸的映射理论值算完之后需要把它映射到物理尺寸。发夹滤波器里有两个关键的物理尺寸映射关系第一个是谐振器长度。发夹滤波器的每个U形谐振器总长度大约是中心频率处的半波长。在微带线上波长要用有效介电常数计算λ_g / 2 c / (2 × f0 × sqrt(ε_eff))以常见的Rogers RO4350B基板为例介电常数3.66厚度0.508mm2.45GHz下微带线的有效介电常数大约在2.9到3.1之间。算出来的半波长大约在34mm左右弯折成U形之后整体占用的长度大约缩小到18到20mm这就是发夹结构带来的尺寸收益。第二个是耦合间距。谐振器之间的间距越近耦合越强、M值越大。对于窄边耦合的微带谐振器间距从0.1mm增加到1.0mm时耦合系数可能从0.1以上下降到0.03左右。初值可以根据“平行耦合线滤波器设计图表”或经验公式估算我的建议是先把间距初值取在0.2mm到0.5mm之间具体到HFSS里去提取验证再修正。2.4 Matlab脚本的骨架理论计算部分完全可以用Matlab脚本完成我习惯这样组织% 设计指标 f0 2.45e9; % 中心频率 FBW 0.1; % 分数带宽 % 低通原型元件值示例请以实际查表结果为准 g1 1.22; g2 1.22; g3 2.20; g4 1.22; g5 1.22; % 耦合系数 M12 FBW / sqrt(g1*g2); M23 FBW / sqrt(g2*g3); M34 FBW / sqrt(g3*g4); % 外部Q值 Qe1 g1 / FBW; Qe2 g4 / FBW; % 微带线半波长估算 eps_r 3.66; h 0.508e-3; W 1.08e-3; % 50ohm线宽估算 eps_eff (eps_r1)/2 (eps_r-1)/2 ./ sqrt(112*h/W); lambda_g_half 3e8 / (2*f0*sqrt(eps_eff)); % 谐振器初始长度发夹U形两侧臂长 底部连接段长度 L_arm lambda_g_half * 0.4; L_connect lambda_g_half * 0.2;这段脚本输出的就是HFSS建模需要的初始尺寸。我特别提醒一点上面g值只是示例不要直接当成标准数据套用。低通原型元件值的精度直接决定初值的可靠性建议用你手边教材的表格或者用能生成g值的射频计算工具校验一次。3. ADS电路仿真在EM仿真之前先验证拓扑3.1 ADS在流程里的定位不是“画图”很多人用ADS画发夹滤波器习惯直接拖一堆微带线模型拼出U形然后仿真S参数。这没问题但我要强调ADS在这一步的核心价值是“快速验证理论拓扑是否可行”不是“得到最终设计结果”。具体来说电路级仿真里微带弯折处用的是理想弯曲模型U形两臂之间的耦合用耦合微带线模型描述。这些模型基于准静态近似无法精确反映拐角处的电磁场畸变和远程耦合。所以ADS结果和HFSS结果之间存在偏差是必然的不必焦虑。3.2 搭建电路模型的关键设置在ADS中搭发夹滤波器电路模型有两个关键设置直接影响仿真可信度第一是基板设置。必须把介质基板的介电常数、厚度、损耗角正切、铜箔厚度和电导率都设对。很多初学者的ADS仿真结果离奇地好查到最后发现基板参数用的是默认的空气或者FR4的典型参数自然和实际加工对不上。设计一个2.45GHz滤波器基板参数就按你实际选型的那款PCB基板来设。第二是耦合线模型的选型。ADS中有理想传输线模型TLIN和物理微带线模型MCLIN、MCFIL等之分。我建议直接使用MCLIN耦合微带线和MCURVE微带弯角这类物理模型它们自带基板参数计算结果更接近实际。虽然仿真速度比理想模型慢一点但对后续HFSS建模有更好的指导意义。3.3 优化目标与优化策略ADS里的优化器是很有价值的工具。在原理图中加入Goal组件设置优化目标S11在通带内小于-15dBS21在通带内大于-1dB带外按照指标设置。优化变量锁定谐振器长度、间距、抽头位置。优化算法上我的经验是先用Random随机算法跑一遍因为随机算法不容易陷入局部最优得到一组可行解之后再切到Gradient梯度或者“Minimax”做局部精细优化。这一步通常能把电路级的S参数优化到满足指标的状态但这套尺寸还只是“电路级最优”不是“电磁场级最优”。3.4 ADS中EM Model与EM Co-Sim到底怎么选这个环节是很多ADS用户的困惑点值得单独说一下。在ADS里处理版图电磁仿真时你会遇到两种模式EM Model模式把版图Layout或某个版图单元作为电磁模型在原理图中以一个封装好的元件形式出现。原理图仿真时这个元件会自动调用Momentum或FEM求解器对这个版图做全波分析然后以S参数元件的形式参与整个电路的仿真。适合“版图加外围集总元件”这类混合场景。EM Co-SimEM Circuit Co-Simulation模式把版图和外围电路放在一个协同仿真环境里原理图和版图同时存在仿真时电磁部分和电路部分作为一个整体被求解。相比EM Model这种方式在涉及多个版图单元互相耦合时更准确。用发夹滤波器举例如果你只仿真滤波器本体全是微带结构没有集总元件用EM Co-Sim更合适因为四个谐振器之间的空间耦合在版图里是自然存在的协同仿真能完整考虑如果滤波器输出端还要再接一个集总参数匹配网络用EM Model把滤波器部分封装成EM模型再和集总网络一起仿真更灵活、更高效。4. HFSS全波建模模型、边界条件和S参数4.1 从ADS尺寸到HFSS三维模型HFSS建发夹滤波器模型的思路本质上就是把ADS里二维版图“拉伸”成三维结构。具体分三步第一步建立介质基板。创建一块长方体表示介质层长度和宽度要能容纳整个滤波器并留出至少3到5倍介质厚度的余量给边界贴片。厚度按实际基板厚度设置。第二步建立微带结构。在介质层顶面创建导体平面然后用“布尔减除”或者“绘制多段线后覆盖”的方式把微带线的图案做出来。这里推荐的做法是先在AutoCAD或ADS Layout里画好版图DXF文件再导入HFSS效率和精度都比在HFSS里一点一点画点连线高得多。第三步设置金属层厚度和材料。铜箔厚度一般设为0.035mm1oz铜材料选copper电导率5.8e7 S/m。介质材料按你实际用的基板创建新材料把介电常数、损耗角正切填准。4.2 端口和边界条件的选择端口设置直接决定仿真结果的可信度。发夹滤波器的输入输出馈线通常是50欧姆微带线这一般用Wave Port波端口激励。设置波端口时要注意端口面要放在微带线末端沿着微带线横截面方向高度取基板厚度的5到6倍宽度取微带线宽度的5到6倍。这个尺寸范围是为了保证端口处能正确激励起微带线的准TEM模式。另一种选择是Lumped Port集总端口它只需要设置在微带线和地之间的一个面上设置简单、计算量小但精度略低于波端口尤其在高频段。对2.45GHz的滤波器来说两种端口差异不大建议初学用波端口和实际测试环境更贴近。辐射边界方面HFSS里可以在求解设置中让软件自动生成辐射边界空气盒子也可以手动创建。空气盒的边界距离模型表面至少四分之一波长自由空间波长2.45GHz下大约30mm以上。这里有个细节发夹滤波器主要能量集中在介质层和微带附近开放空间辐射损耗相对较小但为了和实测更接近还是建议保留辐射边界因为滤波器会有一定的表面波和辐射损耗实测的插入损耗通常比理想PEC边界仿真结果高一点。4.3 求解设置与收敛判断HFSS的求解设置里有几个参数需要重视求解频率Solution Frequency设为f0 2.45GHz自适应网格加密的频率点选中心频率最合理。最大迭代次数设到15到20次收敛判据S参数变化量小于0.02。扫频范围覆盖1.5GHz到3.5GHz以观察带外抑制。需要注意HFSS的收敛是“网格逐次加密后结果不再明显变化”不是简单跑完迭代就算完。每次迭代后查看收敛曲线如果S参数还在明显波动就手动增加迭代次数或者加密网格。4.4 HFSS结果和ADS结果对不上的核心原因这是几乎每个人都会遇到的环节也是设计流程的分水岭。HFSS全波仿真结果和ADS电路仿真结果对不上不外乎三个原因第一弯折寄生效应。U形谐振器拐角处的电流密度分布不规则会引入额外的寄生电容和电感导致谐振频率偏移。发夹滤波器弯折越多、拐角越锐利这个偏移越明显。所以HFSS里建模时建议对拐角做倒角处理在版图导入时直接加45度倒角或圆角和实际PCB加工工艺保持一致。第二谐振器间的远程耦合。ADS的电路模型主要考虑相邻谐振器窄边之间的耦合但发夹结构里非相邻谐振器、U形开口附近以及馈线对内部谐振器的耦合在ADS里无法完全建模这些都会引入额外的耦合路径改变滤波器的带宽和回波损耗响应。第三辐射和表面波损耗。ADS的电路模型默认所有能量都在微带线内传输但实际物理空间里存在辐射损耗。这在插入损耗和带外抑制的仿真中会造成偏差。理解了这三个差异来源你就知道为什么不能指望ADS尺寸直接上HFSS就一步到位——这两个软件的“世界观”不同必须通过“参数提取 修正”的闭环来对齐。5. 参数提取与三工具闭环这才是联合仿真的精髓5.1 为什么必须回到Matlab做参数提取每次HFSS仿真完成后如果只盯着S21曲线看“通带对不对”那和瞎调的差距不大。真正的联合仿真流程是把HFSS的结果拿回Matlab提取出“实际结构实现了多大的耦合系数和外部Q值”再和理论目标值对比定量决定下一步改什么。举个例子理论上M23应该是0.06如果HFSS提取出来是0.05误差约17%这会导致滤波器带宽偏窄通带回波损耗恶化。从M23和间距的关系来看间距需要适当缩小但如果光是回波损耗差、带宽是对的那问题大概率不出在耦合系数上而是外部Q值没对准需要调整抽头位置。这两种情况改动的物理尺寸完全不同。没有参数提取这一步你只能靠运气试。5.2 用HFSS本征模法提取耦合系数提取耦合系数的标准做法是“本征模法”在HFSS中只建立两个相邻谐振器的模型不添加任何端口激励用“Eigenmode”求解类型求解前两个谐振模式的频率f1和f2然后按下式计算耦合系数M_ij (f2² - f1²) / (f2² f1²)这个方法的物理含义是两个谐振器靠在一起后由于耦合的作用原来简并的一个模式分裂成两个模式分裂的间隔越大耦合越强。所以一次本征模求解就能拿到一个M值。实际操作中需要注意求解两个谐振器时要把第三到第五个模式也看一遍确保选的是正确的两个谐振模式而不是高阶模式。另外模型边界如果是辐射边界模式频率会有虚部用实的模式频率计算即可。5.3 从S11群时延提取外部Q值外部Q值的提取也回到HFSS的S参数结果上。对发夹滤波器这种“抽头馈电”结构外部Q值是由抽头的位置和深度决定的提取方法用S11群时延法把HFSS仿真得到的S参数文件Touchstone格式s2p导出。在Matlab中用sparameters函数读取S参数。计算S11的群时延τ -d(angle(S11)) / dω可以用gradient函数对相位求导。找到中心频率处群时延的最大值τ_max外部Q值近似为Q_e ≈ π × f0 × τ_max / 2也有用相位斜率法或S11反射系数法提取的我实测下来群时延法对发夹滤波器最稳定抗噪声能力强。5.4 Matlab读取S2P文件与展示结果从HFSS导出S2P文件时频率范围尽量覆盖通带和邻近阻带。Matlab处理代码如下% 读取HFSS导出的S参数 S sparameters(filter_hfss.s2p); freq S.Frequencies; S11 squeeze(S.Parameters(1,1,:)); S21 squeeze(S.Parameters(2,1,:)); % 绘制S参数曲线 figure; plot(freq/1e9, 20*log10(abs(S11)), r); hold on; plot(freq/1e9, 20*log10(abs(S21)), b); xlabel(频率 (GHz)); ylabel(幅度 (dB)); legend(S11,S21); grid on;然后继续在这个基础上写群时延提取和Qe计算的代码。这样一来每一次HFSS仿真结束后你只需要运行一个Matlab脚本就能得到“当前设计的M值列表和Qe列表”一目了然地看到误差在哪里。5.5 一个真实的迭代修正示例我以一次实际设计为例展示闭环修正的思路。假设理论目标是M120.082M230.061Qe1Qe212.2。HFSS首次仿真后用本征模提取结果是M120.075M230.058Qe115.8Qe211.5。对照理论值分析M12和M23都偏小说明谐振器间距偏大需要把两个耦合间距各缩小0.1mm左右。Qe1偏大15.8 vs 12.2说明输入端抽头耦合偏弱需要把输入馈线往谐振器中心方向更深地插入。Qe2略小11.5 vs 12.2说明输出端抽头耦合偏强输出馈线要稍微往外退一点。一次调整同时改三个尺寸而不是随手乱扫参数。修改后在HFSS里重新建模仿真再次提取通常两到三轮迭代就能收敛到和理论值接近的程度此时滤波器的S参数曲线自然就满足指标了。这里有个工程技巧耦合系数和间距的关系在窄带范围内近似是指数关系所以如果M值偏小15%间距不需要缩小15%可能只需要缩小5%到10%。具体步长可以用Matlab拟合前两轮仿真的“间距-M值”数据插值出目标间距。6. 从仿真到实测介电常数漂移和加工公差的现实修正6.1 介电常数标称值和实际值不一致仿真优化完成版图发出去加工回来一测发现中心频率整体偏低了80到100MHz这是发夹滤波器实测中最常见的问题。绝大多数情况下原因是实际基板的介电常数比仿真用的标称值偏高或者介质层厚度偏厚导致谐振器电气长度变长。以RO4350B这类材料为例不同批次的介电常数在3.48到3.66之间都可能波动。如果测试结果显示频率整体偏低修正方向就是把谐振器的总长度缩短一点。具体缩短多少可以用实测频率和目标频率的比例关系估算频率偏低4%谐振器长度大约缩短4%左右谐振频率近似和长度成反比。对2.45GHz下约34mm的半波长缩短1到1.5mm是合理的起步量。6.2 加工公差对耦合和带宽的影响PCB加工的线宽和间距公差通常在±0.05mm左右。别小看这0.05mm发夹滤波器谐振器之间的耦合间距本来就只有0.2mm到0.5mm的量级0.05mm的偏差会导致耦合系数产生百分之几到百分之十几的变化直接反映为带宽偏宽或偏窄。如果实测带宽比仿真窄说明实际间距比设计值大耦合变弱后续改版的时候把间距适当缩小0.05到0.1mm来预补偿或者直接要求PCB厂家按“负公差”加工关键间距尺寸。6.3 损耗比仿真大别急着怪软件实测插入损耗比HFSS仿真结果大0.3到0.5dB也是常见现象。原因通常是金属铜箔表面粗糙度带来的导体损耗以及介质损耗角正切的实际值比数据手册的典型值偏大。HFSS里导体边界默认是光滑理想导体实际铜箔表面粗糙度在2.45GHz已经会对导体损耗产生明显影响。我的建议是仿真阶段如果追求和实测更接近可以在HFSS的金属边界设置里把表面粗糙度填为实际值例如0.002mm介质损耗角正切也适当填得保守一点。这样仿真的插入损耗会比理想模型高一点但和实测的差距会明显缩小。6.4 实测调试的一些实操经验最后分享几个实测阶段容易被忽略的细节一是网络分析仪校准务必到位。滤波器测试前要做全双端口校准SOLT校准平面要尽量靠近滤波器输入输出端否则接头和转接线的损耗会被算进滤波器里。二是馈线和接头过渡也会影响测量结果。SMA接头到微带线的过渡如果阻抗不连续会在S参数上叠加纹波。测量结果如果出现周期性的波纹先怀疑接头焊接问题不要急着改滤波器设计。三是发夹滤波器实测时微调的手段有限但可以用导电铜箔在谐振器上方“加负载”来微调频率或者轻微刮削谐振器末端缩短电长度。这些方法适合验证“问题是不是出在某一段”但不适合作为量产修正方案。从我个人的角度看发夹滤波器这个题目最值得练的不是某个软件的操作技巧而是“理论、电路、电磁、实测”四个层面的数据如何互相校准的方法论。我见过不少人在HFSS里把尺寸调到吐血也调不出指标本质问题不是建模不熟练而是没有回到Matlab去定量提取误差、判断修正方向。把这套三工具闭环用熟了以后再遇到其他类型的微带滤波器、功分器、耦合器设计思路完全可以直接复用——无非是理论公式换一换提取方法改一改整体流程的骨架是通用的。
返回列表