1. 从零开始:共面波导仿真为什么绕不开色散曲线
搞微波仿真的人,早晚都会撞上共面波导(CPW)这个结构。无论是做毫米波天线馈电、滤波器设计,还是高速数字电路里的信号传输线,CPW 都因为“工艺简单、损耗可控、容易集成”这几个优点,成为高频电路里出场率极高的传输线类型。但真正动手在 CST 里把它的色散曲线画出来,很多人第一次都会卡住——不是模型建不出来,而是参数设置一堆坑,算出来的结果要么是乱的,要么根本不知道对不对。
先说一下色散曲线是什么。简单理解,它就是告诉你“在某个频率下,这个传输线的等效相位常数是多少”的一条曲线,横轴是频率,纵轴是传播常数或者有效介电常数。有了这条曲线,你就能判断这条线有没有色散、工作频带内是不是单模传输、能不能用来做宽带匹配。做天线或者滤波器的人,还能把色散曲线当成“设计标尺”,用来反推结构参数该往哪个方向调。
这篇文章就按我实际跑通的一套流程来讲,从建模开始,到边界条件、端口设置、本征模求解,再到后处理把色散曲线画出来,每个环节该注意什么,哪些地方是新手最容易踩坑的,都会说清楚。你要是已经被 CST 的“结果不对”折磨过,或者正准备上手 CPW 色散曲线,这篇可以当一份“照着做就能跑通”的操作手册。
顺便说一句,下面所有操作,我都是在 CST Studio Suite 2020 以上版本的 Microwave Studio 模块里验证过的,版本不同菜单名可能有点小差别,但核心思路完全一致。你用的如果是 2019 或者 2021,基本也能对上号。
2. 建模型之前,先把这几件事想清楚
很多新手一上来就打开 CST 开始画图,画完之后再跑去设置边界条件,结果发现怎么设都不对,折腾一晚上没进展。实际上,共面波导色散曲线分析的成败,在建模型之前就已经决定了。我建议你开工之前,先在脑子里把下面几个问题过一遍。
2.1 你要的色散曲线,是“理想周期结构”还是“单条实物线”
这是最容易糊涂的地方。色散曲线本质上是针对“无限长周期结构”求解本征模得到的,所以如果你直接建一条有限长的 CPW,用端口去激励,得到的 S 参数是没法直接画出色散曲线的。
正确的做法,是把 CPW 看成一个在传播方向(比如 z 方向)上无限重复的周期单元,然后只建一个单元,用周期边界条件把左右两边“接起来”,再用本征模求解器去扫相位差,从而得到色散关系。
所以第一步就要想清楚:你研究的是纯周期结构,还是一个有限长度传输线?如果目标是画色散曲线,那就必须走“周期单元 + 本征模”这条路。如果你只是要看一条实物的反射损耗,那是端口仿真的范畴,不是本文讨论的内容。
2.2 介质层厚度和金属厚度,直接决定计算量
CPW 的结构参数大概有这几个:中心导带宽度 W、导带与两侧地之间的间隙 G、介质基板厚度 H、金属厚度 t 和基板介电常数。画色散曲线的时候,金属厚度如果远小于趋肤深度可以忽略,但介质厚度不能乱设,因为介质层厚度会影响有效介电常数。
实操层面,介质厚度设成实际值就好,比如 0.508 mm 的 Rogers 板。但如果你只关心趋势,想先快速验证流程,可以把介质厚度暂时调大一点,增加网格率差?不对,是降低网格量,提高仿真速度。等流程跑通了再改回真实厚度。
2.3 求解器选择:本征模求解器是一切的起点
CST 里能用本征模求解器的场景,通常要求模型没有波导端口和离散端口,因为本征模求解器解的是无源结构的谐振模式。所以建 CPW 模型的时候,不要加任何端口,只保留几何本身,再加周期边界条件即可。
这一点很多人忽视:加了端口,本征模求解器要么报错,要么结果完全不靠谱。所以建模型时统一不加端口,这是第一个避坑点。
3. CST 建模实操:一步步把 CPW 周期单元搭出来
理论想清楚了,下面直接进入操作环节。这一节我会按“基板—金属—空气盒—边界条件—网格”的顺序进行,每步都说明为什么这么做。
3.1 建立基板:一切从介质层开始
打开 CST,新建一个 Microwaves & RF / Optical 的 Project,选择 Time Domain 也可以,但后面我们会改用本征模求解器,所以初始模板选哪个影响不大。我一般直接选 Blank Project,然后手动设置单位。
进入建模界面后,第一步先建基板。用 Brick 工具,创建一个长方体,x 方向的长度和 y 方向的长度都没有硬性要求,但要保证两侧的地平面有足够宽度,让场的分布不会被人为边界截断得太厉害。对经典的 CPW 建模,基板尺寸我一般取 4 mm × 4 mm,厚度 H 设成 0.508 mm。坐标中心放在原点,方便后续对称操作。
需要提醒的是,这个 4 mm 不是拍脑袋决定的,它必须远大于 CPW 信号线和地之间的间隙尺寸,否则色散曲线的低频频段会出现人为的“截止”效应,结果看起来会有虚假的谐振。如果你计算的是毫米波频段 CPW,基板横向尺寸更要留足,别想着“越小越好算”,那会让边界条件的影响主导结果。
3.2 画金属层:用布尔运算抠出缝隙
基板建好之后,在基板顶面上画金属层。CPW 本质上是在一个连续的金属地层中间挖一道“槽”,把中心导带和两侧地分开,所以建模思路可以有两种:
- 先画一块覆盖整个顶面的金属片,再用两个细长的矩形框做减法,把两侧间隙 G 挖掉,留下中心导带。
- 或者直接画三块矩形金属片:中间为宽度 W 的中心导带,两侧是两块地平面。
两种方式结果一样,但用布尔运算的好处是“一步操作,自动生成完整形状”,对新手来说比较直观。金属材料选 PEC(理想导体)还是铜?这取决于你要不要考虑金属损耗。只是画色散曲线、看模式分布的话,直接用 PEC 就可以,算得快,而且色散关系跟金属损耗的关系不大;如果你要从色散曲线反推 Q 值或者损耗常数,那就要选真实金属铜,并设置电导率 5.8e7 S/m。
我通常的做法是:初跑用 PEC,确认趋势正确后,再换成铜做验证,这样能把“结构数值设置问题”和“材料损耗影响”分离,排查问题更快。
3.3 空气盒与背景材料:别让计算空间“闷死”
共面波导的场不仅存在于介质基板里,还有相当一部分分布在基板上方的空气中。所以建模时必须加一个空气盒,把结构上方留出足够的空间。CST 默认的背景材料是 vacuum(真空),你在模型里不用显式建空气块,但需要设置好求解区域。
实际操作中,我会在基板上方加一个 Brick,材料选 Vacuum,位置从基板上表面向上延伸,高度一般取 5~10 倍介质厚度。这不是必需的,但在本征模求解器中,指定“背景”和“额外真空包围层”可以让边界条件的设置更直观。
如果你不额外建空气盒,而是直接依靠 CST 的背景材料,那在设置边界条件时需要确保 z 方向的上方边界离结构足够远,至少大于最高工作波长的四分之一,这样表面波模式才不会被人为压缩。
3.4 材料属性检查:介电常数别抄错
基板材料如果是 Rogers RT5880,介电常数一般用 2.2,损耗角正切 0.0009;如果是 Rogers 4350B,介电常数 3.66,损耗角正切 0.0037。新手最容易犯的错,是把厂商标称的“介电常数”和仿真用的“有效介电常数”混在一起。
色散曲线里的纵轴如果换算成有效介电常数,那它是仿真结果,不是材料参数。材料卡片里填的是相对介电常数 εr,这个值要从板材手册里查,不能自己“根据经验估计”。有些板材的介电常数会随频率变化,如果你手里有宽频测试数据,可以在 CST 材料库里用 dispersion 模型定义,但对普通学习用途,常数模型已经足够。
4. 边界条件、端口与求解器设置:色散曲线成败的分水岭
模型建好之后,不少人就直接点仿真,结果要么报错,要么出来的曲线乱七八糟。问题多半就出在边界条件和求解器设置上。这一节是全文的精华,每一个参数我都会解释“为什么这样设”。
4.1 周期边界条件:x 和 y 方向应该怎么给
周期单元的本征模求解,依赖 Floquet 周期边界条件。CPW 结构中,信号沿 z 方向传播,所以周期方向应该设在 z 方向。在 x 方向(横向),由于结构两侧是地平面,且我们建的是单个单元,x 方向可以设成周期性边界,也可以是 PEC/PMC 边界,具体要看结构是否在 x 方向也重复。
经典的 CPW 色散曲线仿真,一般是这么设的:
| 方向 | 边界类型 | 理由 |
|---|---|---|
| x 方向(横向) | Periodic(周期) | 模拟无限宽的地平面阵列,消除横向截断效应 |
| y 方向(厚度方向,上方) | Open(add space) | 允许场向外辐射,模拟开放空间 |
| y 方向(厚度方向,下方) | Electric(E_t=0) | 模拟金属接地板(如果 CPW 底部有完整地)或对称面 |
| z 方向(传播方向) | Periodic(周期,带相位扫描) | 核心周期边界,用来扫相位得到 k 与频率关系 |
这里有一个容易迷惑的点:如果你建的 CPW 是“共面波导+底部接地”的结构(GCPWG),那底部的边界条件设为 Electric 是对的;但如果是纯 CPW(无底部地),底部应该是开放或对称磁壁。所以建模型之前,必须确认自己研究的是哪一种 CPW。
4.2 相位扫描:扫的到底是什么边界相位
本征模求解器扫的是周期边界上的相位差。你可以想想在一根无限长的传输线上,沿着传播方向每隔一个周期距离 p,场会有一个固定的相位延迟。如果我们给边界条件指定相位差 φ,那么对应的传播常数 β 就是 φ / p。
所以,要画色散曲线,本质上是做一系列本征模求解:固定结构,改变 φ(例如从 0° 到 180° 线性扫 20 个点),每个 φ 对应一个模式频率 f,然后以 φ 为横轴、f 为纵轴描点,再把 φ 换算成传播常数 β。
在 CST 本征模求解器的设置界面里,有一个 Phase 的扫描列表。一般把 Phase 最小值设 0°,最大值设 180°,步长设 5° 或 10°,扫描点数就够了。0°~180° 对应的就是第一布里渊区。如果希望看到更高阶模式或折叠效应,也可以扫 0°~360°,但画图时会更复杂。
4.3 本征模数量与求解频率:确保你找的是“想要的模”
本征模求解器每次求出的是一组模式,不是单一频率。对 CPW 来说,我们最关心的是准 TEM 模,也就是类传输线模式。但模型里同时还存在平行板波导模式、表面波模式等,如果不做筛选,画图的时候会出现一大堆杂模。
设置求解模式数时,我一般会要求求解 6~10 个模式,因为第一个模式不一定是 CPW 模。这取决于边界条件和结构比例。为了在结果里准确识别 CPW 主模,你需要切面看电场分布:CPW 模式的电场主要集中在中心导带和两侧地之间的缝隙里,场线是从中心导带横跨缝隙到地;而平行板模式的电场是垂直穿过介质上下表面。通过这个物理图像,就能把对的模式从一堆模式里挑出来。
求解频率设置上,本征模求解器需要给定一个“参考频率”或者“起始频率”,不是截止频率。一般设成你关注频带中心附近的值,比如你要研究 0~30 GHz,参考频率设 20 GHz 即可。这个值主要影响网格加密的判据,设太偏离目标频段会让网格不合理。
4.4 网格设置:不要无脑用它默认的“低精度”
新手最容易图省事,网格精度直接用“低”或者“中”,算完发现色散曲线波动很大,还以为是软件 bug。实际上,对本征模问题,网格密度不足会引入很大的数值误差,尤其对介质基板内部的场分布。
我建议在 Mesh Properties 里,把每波长点数调到 20 以上,同时启用 Adaptive Tetrahedral Mesh Refinement(如果使用的是频域本征模)。自适应网格迭代次数设 3~5 次,每次迭代后比较目标模式的频率变化,变化小于 0.5% 就可以认为收敛了。
这套操作看似费时间,但对色散曲线的“平滑度”提升是质的。很多网上分享的色散曲线断断续续,就是网格太粗导致相位扫描时频率解不连续。
5. 结果后处理:从本征频率到色散曲线的转换
求解跑完之后,CST 的 Results 里会给出一个个“eigenmode”的频率值,但你直接看到的是一个表格:每个模式、每个相位点对应一个频率。要得到色散曲线,还需要自己整理数据或者用宏来提取。
5.1 从结果树里导出原始数据
在 Navigator 里选择 Eigenmode 文件夹,里面会有 Mode 1、Mode 2 等子项。每个模式下面,可以看到不同 Phase 值对应的频率。CST 允许你右键导出为 ASCII 文件,把所有频率-相位对导出成 CSV 或者 TXT。
我一般导出成 CSV 再用 Python 或 Excel 处理,原因很简单:CST 自带的图表功能虽然能直接画“Phase vs Frequency”,但当你需要把横轴从相位转换成波数、或者把纵轴变成有效介电常数时,用外部工具更灵活。
5.2 相位换算:βp/π 作为横轴
在色散曲线里面,一个很常用的横轴是归一化相位 βp/π,它等于 φ/π。这样横轴范围就是 0 到 1,对应第一布里渊区边界。为什么要这么归一化?因为不同周期长度 p 的结构,直接比较“频率 vs β”没法放在一起看,而归一化之后,它能直接反映布里渊区内模式的位置,方便做带隙分析。
转换公式很简单:
βp/π = φ / π
比如你设置 φ 从 0° 扫到 180°,对应的 βp/π 就是从 0 到 1。所以画图时,横轴数据直接就是 phase/180,纵轴是频率。
5.3 有效介电常数的提取:更有工程意义
如果只看频率-相位图,理解起来不够直观。工程上大家更喜欢看“有效介电常数 εeff 随频率的变化”,因为这直接反映了这条传输线在某个频段的色散强弱。
有效介电常数和传播常数之间的关系是:
εeff = (β / k0)²
而 β = φ / p,k0 = 2πf / c。所以只要知道了 f 和 φ,εeff 就能算出来。实际操作中,我会在 Python 里写个十几行的脚本,把导出的 CSV 数据读进去,然后一行代码算出每个点的 εeff:
import pandas as pd import numpy as np data = pd.read_csv('eigenmode_export.csv') phase_deg = data['Phase_deg'] freq_hz = data['Freq_Hz'] period_m = 1e-3 # 你的周期长度,单位米 beta = np.deg2rad(phase_deg) / period_m k0 = 2 * np.pi * freq_hz / 3e8 eps_eff = (beta / k0) ** 2 data['eps_eff'] = eps_eff data.to_csv('cpw_dispersion_epseff.csv', index=False)这段代码很直白,就是用公式把 CST 导出的本征频率数据转换成有效介电常数。如果你不想用 Python,也可以把数据转到 Excel 里用公式处理,不过数据点多了之后 Excel 会有点卡,脚本处理最省心。
5.4 CST 自带模板宏:快速画色散曲线
除了手动导出处理,CST 本身也自带了一些后处理模板,在 Result Templates 里可以找到 Eigenmode Dispersion Diagram 之类的模板。它会自动读取本征模结果,并画出色散曲线。
但我的实际体验是,这个内置模板在复杂模型上经常画出来的线比较乱,因为默认选模式的方式不够智能,容易把不同模式的点混在一条线上。所以我还是推荐手动导出数据再用脚本画图,虽然多几个步骤,但至少有完全的控制权,不会被软件默认逻辑误导。
6. 常见问题与排查技巧:我踩过的坑,不希望你再踩
这一节是从多次实操里总结出来的问题清单,按“出现频率”排序。如果你跑出来的结果不对,先对照下面几条排查一遍,往往会发现问题比想象中简单。
6.1 低频频段出现“截止”假象
很多人画出来的色散曲线,频率从 0 开始不是直线上升,而是先出现一小段“截止”或者曲线往回弯,非常困惑。这个问题十有八九是横向边界太小,或者周期单元内的场分布被边界压缩导致的。
解决方法很简单:把基板横向尺寸扩大两倍再看。如果虚警消失,说明之前的原因是边界截断。另外,把 x 方向的周期边界改成 PEC/PMC 边界也可能改变低频谱的形状,但具体用哪个取决于结构。排查这类问题,建议做一组“变尺寸扫描”,看看曲线对横向尺寸是否敏感。
6.2 模式断裂:同一模式频率随相位变化不连续
如果你画完曲线,发现它是“一段一段”的,中间有跳变,通常是因为本征模求解器在某个相位点上找到了另一个模式,或者网格在不同相位点下质量不一致。
我的处理方法有三个:
- 增加模式数量,让 CPW 模在所有相位点都存在,不去用“最低模”做默认结果;
- 增加网格密度,特别是缝隙区域的局部加密,保证不同相位点下的场分辨率一致;
- 在查看模式时,用“电场分布图”逐点确认哪一条才是 CPW 模式,然后手动去掉杂模的数据点。
其实这种“模式断裂”不只是网格问题,也和边界条件的对称性有关。如果结构在 x 方向完全对称,可能会出现简并模式,这时候需要仔细判断你跟踪的 CPW 模是否与简并模交叉。
6.3 本征模求解器“没有模式找到”或报错
这种情况多发生在空气盒太大、网格数爆炸,或者金属层与基板之间没有正确连接。CST 在建模时,如果两个物体只是“贴在一起”但没有做布尔加(Add),它们之间会存在一个“理想缝隙”,导致电流无法连续流动,本征模求解器就会报错或算出奇怪结果。
解决办法是:金属层画完之后,选中基板和金属层,使用 Tools → Boolean → Add,把它们合并成一个整体。这是我几乎每次都要提醒新手做的事,因为画图软件里“视觉上贴着”和“物理上连通”是完全两码事。
6.4 高频处曲线“上翘”严重,怎么判断是否正常
CPW 色散曲线在高频段出现上翘是正常的,因为有效介电常数随频率升高而增加,场逐渐集中到介质内,准 TEM 模逐渐向类表面波模过渡。但如果上翘幅度太夸张,从 εeff=2.2 直接飙到 5 以上,那大概率是出现了平行板模式耦合,而不是纯 CPW 模式。
这时候请回到电场分布图,看看模式分布:如果电场垂直穿过介质上下表面,那这个模式已经变成“微带模式”或“平行板模式”,已经不是 CPW 准 TEM 模。这时需要考虑设计上是否要抑制这种模式,比如增加接地过孔阵列,但在色散曲线分析阶段,只是识别并排除即可。
6.5 有效介电常数低于 1,明显不合理
看到 εeff 小于 1 的结果,第一反应不要怀疑 CST 坏了,而是考虑是不是算到了截止状态以下的模式,或者把金属 PEC 的色散(金属内部不可能有场)误当作传输线模式。还有一种情况是周期长度 p 设置和实际模型不匹配,导致 β 计算错误。
检查周期长度是否与你在边界条件里设置的“Period”一致,尤其当模型是通过多个单元拼接时,周期长度很容易忘记除以单元数量。
7. 加速收敛的实用技巧:色散曲线也能跑得飞快
本征模求解相对信号完整性仿真,计算量已经算小了,但当你需要做参数扫描(比如扫描缝隙 G 或导带宽 W)来研究色散曲线变化趋势时,每一组都要跑几十个相位点,时间成本还是很可观。下面三个经验,能让扫描效率提高一个量级。
7.1 先跑低频网格,再逐级验证
不用每个参数组都一开始就把网格精度拉满。初筛阶段,用中等网格快速跑一堆参数,看曲线的“整体趋势”是否合理;锁定几个最优参数区间之后,再用高精度网格精算最终结果。这就像你先用粉笔在墙上画草图,确定构图没问题,再上颜料精修,不会浪费时间和素材。
7.2 合理利用对称性,把模型缩小一半
如果 CPW 结构关于中心导带中线左右对称,可以只建一半模型,并在对称面上设置 Magnetic Wall(Ht=0)。这样做可以把计算量减半。但要特别注意,对称面的设置要和你关注的模式类型对应:对类偶模的 CPW 主模,对称面是磁壁;对某些奇模模式,则可能是电壁。如果不确定,建议先用全模型跑一遍,再把对称简化后的结果和全模型对比一次,确认无误后再用简化模型做扫描。
7.3 利用参数扫描和 Copy 功能
在 CST 的 Parameter Sweep 中,你可以把相位点扫描和结构参数扫描一次性设置好,不用手动一次次改模型。我习惯先在参数列表里定义 W、G、H、phase 等变量,这样无论是建模尺寸还是边界相位,都通过变量引用。后续做参数扫描,只需在 Sweep 里定义范围和步进,CST 会自动处理所有组合。
这一点看起来简单,但对后期调参极其重要。千万不要在模型里直接写死数字,哪怕你现在只做一组色散曲线,也要用变量。因为一旦结果不理想,你要调整缝隙宽度,如果没有参数变量,就得回到模型里改尺寸,再重新建网格,效率会低很多。
8. 实操案例复盘:一个 0~30 GHz CPW 色散曲线的完整参数表
最后,我把一套完整的、经过验证的 CPW 色散曲线仿真参数放出来,你可以直接照抄。不管你是想验证流程,还是拿来当基线去调自己的结构,这套参数都是可靠的。
| 参数名称 | 数值 | 说明 |
|---|---|---|
| 基板材料 | Rogers RT5880 | εr=2.2, tanδ=0.0009 |
| 基板厚度 H | 0.508 mm | 常用高频板材厚度 |
| 基板横向尺寸 | 4 mm × 4 mm | 远大于缝隙尺寸 |
| 中心导带宽 W | 0.5 mm | 可参数扫描 |
| 导带-地间隙 G | 0.2 mm | 可参数扫描 |
| 金属 | PEC(初跑)/ Copper(验证) | 厚度 0.035 mm |
| 周期长度 p | 1 mm | 沿 z 方向 |
| 背景 | Vacuum | 上方额外 5 mm 空气 |
| 边界 x | Periodic | 模拟横向无限 |
| 边界 y_min | Electric | 底部接地(GCPWG) |
| 边界 y_max | Open (add space) | 开放辐射 |
| 边界 z | Periodic | 相位扫描 0°~180° |
| 相位步进 | 5° | 共 37 个点 |
| 求解模式数 | 10 | 便于筛选 CPW 主模 |
| 网格 | 自适应,精度高 | 每波长 25 点 |
| 参考频率 | 25 GHz | 网格划分依据 |
这套参数跑出来的典型特征是:有效介电常数在低频接近 2.0~2.1,随着频率升高缓慢增加到 2.3 左右,曲线平滑无突变。如果你跑出来的趋势和这个“低频微升”规律差别很大,先回头检查第 6 节里的排查项。
仿真完成后,把色散曲线和“用公式直接算出的准静态 εeff”做一次对比,也能验证设置是否合理。准静态近似公式是:
εeff ≈ (εr + 1) / 2
对 RT5880,这个值大约 1.6,但实际 CPW 的场要更集中在介质里,所以低频 εeff 会比 1.6 高一些,通常在 1.9~2.1 之间。如果你算出来比 1.6 还低,那基本可以断定边界条件设错了。
最后再说几句实操心得
这套流程我前前后后跑过很多次,给我最大的体会是,CST 里画色散曲线,真正难的从来不是软件操作,而是你要清楚每一步在干什么。边界条件为什么要设成这样,相位扫描到底在扫什么,本征模求解器和端口求解器的区别是什么——把这些物理图景搞清楚,参数设置那些事根本不用背,顺手就能写对。
还有一个建议是,拿到结果别急着导出去画图,先在 CST 里多切几个剖面看看电场矢量分布。色散曲线只是“果”,“因”在模式场分布里。你只有亲眼看到主模的场确实是集中在 CPW 缝隙里的,才能放心地用这条曲线去指导后续设计。仿真软件给的是数字,但做决定靠的是物理直觉,这个习惯越早养成越好。