CST仿真用在超表面设计上,最刺激也最磨人的一点,就是你处理的不再是一根传输线上传多少功率,而是一整片口径上每个位置的相位怎么排。尤其想玩可调材料,把涡旋与聚焦这类“全空间”功能压进同一块超表面时,画图建模只是基本功,真正花时间的是把材料物理、相位工程、周期边界、场监视器这些环节串成一条能落地的工作流。这篇内容会围绕CST软件仿真全空间超表面的完整过程展开,重点放在可调材料建模、单元级Floquet端口设置、涡旋与聚焦的相位编码,以及最终如何从场图上确认功能真实出现,尽量把能复现的步骤和容易翻车的地方都写清楚。
我自己做过几轮这类从单元到阵列的验证,一开始也以为“无限周期单元仿真跑通相位覆盖就完事”,结果从S参数到阵列排布再到焦平面场图,每一步都筛掉一批错误认识。下面我会用一套反射式圆极化几何相位超表面的例子作为主线,捎带讲透射式思路,带你走一遍完整流程。
1. 先把物理机制摆在桌面上:全空间涡旋与聚焦为什么能压到同一块超表面上
1.1 超表面的电磁响应是一种“空间相位”语言
超表面设计和普通天线阵设计的最大区别,在于你对“口径”的控制粒度。天线阵里你关心每个阵元的激励幅度和相位,超表面本质上也是一样的道理,只是阵元密集到亚波长尺度,且激励往往来自外部平面波,而不是馈电网络。
涡旋波束的特征是波前带有一个螺旋相位因子exp(ilθ),θ是方位角,l是拓扑荷。这种光束中心相位不确定,强度通常为零,形成一个暗核。聚焦功能则更直接,它要求超表面口径上的相位分布近似一个球面波或者抛物面波,把入射平面波汇聚到空间某一点。
如果你只做单一功能,事情很简单:给每个阵元分配一个目标相位就结束了。但“全空间”这个词一旦出现,意味着同一块超表面上同时保留至少两套功能通道,或者在不同状态下能切换出不同功能。最常见的工程形态有三种:
- 反射型超表面利用正交圆极化通道,左旋入射产生涡旋,右旋入射产生聚焦,两套功能互不串扰;
- 透射型超表面让反射半空间和透射半空间各承担一种功能;
- 可调材料动态切换单元状态,让同一通道在不同材料偏置下呈现涡旋相位或聚焦相位。
第三种形态对CST仿真最不友好,因为你得额外处理材料参数随坐标分布的问题。前两种则更适合作为起步项目,先用极化复用或空间分集把功能“解耦”,再引入可调材料优化效率。
1.2 “全空间”的一种工程解释:用状态切换换功能
我在这次仿真里选了一个更稳的设计路线:把“可调材料”和“极化复用”结合起来考虑。
具体而言,先用PB几何相位超表面实现涡旋束和聚焦束,两种功能分别映射到入射左旋圆极化波和右旋圆极化波上。PB相位超表面的一个突出优点是:单元旋转角α和产生的相位差存在2α的关系,绕一圈就能盖满0到2π,不需要你费劲调整每个单元的几何尺寸去凑相位。这个特点对于CST建模仿真非常重要,因为你不需要针对几百个不同尺寸单元逐一建模,所有单元拓扑完全一致,只是绕z轴旋转角度不同。
可调材料在这个方案里可以扮演两个角色:一是作为额外相位偏置,改变某个极化通道的反射相位;二是作为效率调控开关,让同一个双功能超表面在涡旋模式和聚焦模式之间切换。
我给演示案例设定一个便于观察的设计目标:工作频率0.8 THz,自由空间波长λ约375 μm,单元周期p=150 μm,处于亚波长区间。目标是在z正方向反射半空间得到拓扑荷l=1的涡旋波束;如果用另一种圆极化入射,则在设计焦距f附近形成一个聚焦斑。这套指标不需要特别大的口径,21×21个单元就能在CST里全波验证。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 可调材料的CST建模思路:我最后为什么选了VO2作为演示对象
2.1 常见可调机制在CST里的落点完全不同
很多刚接触超表面的朋友一上来就问“CST材料库里有没有可调材料”,答案是基本没有。软件自带库是为常规微波射频和光学材料准备的,相变材料、液晶、石墨烯这类“可调材料”都需要你自己建模。
先梳理一下四种最常见的可调机制在CST里分别怎么落地。
| 可调机制 | 典型材料 | CST中建模方式 | 说明 |
|---|---|---|---|
| 相变材料 | VO2 | 色散材料模型,Drude或Lorentz模型定义介电常数,电导率/等离子体频率随状态改变 | THz以下损耗可控,适合反射式超表面 |
| 电调介质 | 液晶、BST | 把相对介电常数或损耗角正切设成全局参数,直接参数扫描 | 建模最简单,适合趋势验证 |
| 二维导电材料 | 石墨烯 | 表面阻抗边界条件或薄导电层,化学势做参数扫描 | 需要手工换算表面电导率 |
| 微机电/机械可调 | MEMS悬浮结构 | 把机械位移量做成参数,用扫参扫描不同高度 | 几何重建复杂,计算量大 |
从仿真效率角度看,液晶和BST的宏观参数扫描最省事,但这类材料在太赫兹频段的响应往往比较弱。石墨烯的表面电导率模型也挺直观,可如果要仿真真实石墨烯层,网格量和边界条件设置会比较头疼。VO2处于中间位置:它在68℃附近发生绝缘体-金属相变,电导率可以变化四五个数量级,THz频段测试数据很丰富,而且用Drude模型描述已经很成熟。
2.2 Drude色散模型定义相变材料
我建议初学者不要一上来就试图把VO2的温度相变过程完整模拟出来。CST里没有“温度”这个求解变量,你只需要做一件事:把绝缘态和金属态分别建成两份材料,然后扫描中间状态。
VO2在太赫兹频段通常可以用Drude模型描述,相对介电常数公式是:
ε(ω)=ε∞ - ωp²/(ω² - jγω)
其中ε∞是高频介电常数,ωp是等离子体频率,γ是散射率。相变前后变化最大的是等离子体频率。我在模型中用的参数大致是:
- 绝缘态:ε∞=9,ωp=1.2×10^14 rad/s,γ≈1×10^14 rad/s;
- 金属态:ε∞=9,ωp=3×10^15 rad/s,γ≈1×10^14 rad/s。
实际材料参数会跟薄膜制备工艺有关,网上每篇论文给出的都略有出入,关键是记住相变前后ωp跨了两个数量级左右,这会让薄膜从介质性切换到金属性。
CST里操作路径是:在Material库新建材料,类型选Normal,然后在Dispersion Fit里手动输入Drude参数,或者直接用User Material填入频率相关的实部和虚部。我个人习惯先用Dispersion Fit生成材料,因为这样在频域求解器里插值更顺滑,不容易出现个别频点材料参数跳变。
2.3 用宏观扫描替代精细相变过程
还有一档更“粗暴”的做法,在研究初期非常推荐:不建色散模型,直接把VO2薄膜的相对介电常数或电导率当作全局参数。
比如设置一个参数sigma_v,然后在材料属性里把电导率绑定为sigma_v,用Parameter Sweep扫描1 S/m、10 S/m、10² S/m直到10⁵ S/m。这样你能快速看出超表面单元谐振频率和反射相位随材料状态的变化趋势,确定到底哪个状态对设计目标最有利。
这一步跑完,再切换成精细的Drude模型验证两个关键状态。不要一上来就全频段全范围高精度扫参,那会把时间浪费在中间那些物理上毫无意义的中间态上。
2.4 材料库没有直接可用的东西,该怎么办
一个常见疑问是:网上论文里写的材料参数和CST内置材料格式对不上,怎么办?
先检查单位。CST里材料属性支持SI单位,频率相关的复数介电常数需要小心:CST通常要求介电常数虚部的符号约定与物理手册可能不同,你输入的可能是ε‘’-jε‘’或者带负号的形式。建议先在某个频点手算一下损耗角正切,再对比结果树里的材料曲线,确认虚部方向正确。
如果材料是几十纳米厚的薄膜,建模时不要真的画一个几十纳米的薄层再划分网格,那会把网格量搞到不可接受。更合理的做法是:
- 当薄膜作为连续层出现时,使用CST的Thin Layer材料模型,把厚度和材料参数直接赋给一个面;
- 当薄膜只存在于金属图案的局部缝隙里,且厚度远小于趋肤深度时,可以用表面阻抗边界代替实体;
- 如果仿真只是观察相位趋势,PEC背景配合理想集总电阻也能近似,但要注意效率类指标会失真。
3. 单元建模与周期边界:把“一个单元”想成“无限大的口径”
3.1 一个可复现的单元结构
我这次演示采用的单元是一种很成熟的反射式PB单元:矩形金贴片 + 高阻硅介质层 + 金属反射地板。矩形贴片本身的几何尺寸决定各向异性响应,绕z轴旋转后就能产生几何相位。为了方便对比可调材料的影响,建模时可以在矩形贴片旁单独画一块VO2薄膜方块,研究它和贴片之间的耦合。
具体尺寸如下,单位全部使用μm:
| 参数名 | 数值 | 说明 |
|---|---|---|
| 单元周期p | 150 | x/y方向均为150 μm |
| 金贴片长度Lx | 90 | 沿贴片本地方向的长边 |
| 金贴片宽度Ly | 45 | 短边 |
| 金贴片厚度tMetal | 0.2 | 可用PEC近似 |
| 高阻硅厚度tSub | 40 | 相对介电常数11.7 |
| VO2方块尺寸 | 40×20 | 放在贴片旁,厚度0.1 |
| 工作频率 | 0.8 THz | 波长375 μm |
这里多说一句,矩形贴片的尺寸并不是随意定的。它需要保证在0.8 THz附近存在一个各向异性谐振,也就是沿长边的谐振频率和沿短边的谐振频率明显分开。这样圆极化入射波经过反射后交叉极化分量才能携带几何相位,同极化分量不带PB相位。可以先跑一个频率范围0.5~1.2 THz的宽频扫描,看S参数谐振点是否落在目标频段附近。
3.2 Unit Cell边界和Floquet端口设置
单元级仿真几乎只能用频域求解器配合Unit Cell边界,原因很简单:我们要用一对Floquet端口等效无限大周期阵列。反射式结构下,模型本身可以这样处理:
- x和y方向边界面设置为Unit Cell;
- z负方向由金属地板完全覆盖,设置为Electric边界(切向电场为零);
- z正方向设置Floquet端口,端口距离结构表面留出至少半个波长的空气盒;
- 在端口属性中设置入射角theta=0,phi=0,此时Floquet端口对应的就是正入射平面波。
很多新手会把反射式单元也设成上下两个Floquet端口,这也没问题,但下面那个端口只会看到金属地板的反射,参数多了反而容易混淆。地板是完整金属面时,用Electric边界更干净。
透射式全空间超表面的单元则不同,z方向两侧都需要Floquet端口,且边界类型要用Open或Open Add Space,不能直接套反射式结构的地板边界。
3.3 Floquet端口的模式数与圆极化设置
Floquet端口默认输出前几个空间谐波模式。对亚波长单元,主模通常只有两个正交极化模式,在结果树里显示为Mode 1.1和Mode 2.1,也就是两个线极化基。可如果你要做圆极化几何相位超表面,直接在端口里看线极化S参数会绕很多弯,因为几何相位是以圆极化基底下交叉极化分量的相位形式出现的。
CST的新版本支持在Floquet端口属性里选择Circular Polarization。如果版本较老,也可以保留线极化模式跑完,后处理时再用矩阵转换算出圆极化反射系数。我建议能选圆极化就直接选圆极化,仿真结果里S parameter会直接给出RL、LR、RR、LL四类分量,其中RL表示左旋入射反射成右旋的系数,携带几何相位信息。
关键在于:如果单元旋转角为α,那么LCP入射、RCP反射的相位约为2α或者-2α,具体符号取决于坐标定义。验证这一步最快的方法是建一个单元,旋转角分别设成0°、45°、90°,跑完后单独看S_RL的相位,应该呈0°、90°、180°的等差变化。如果相位变化规律不对,多半是圆极化定义方向或者端口模式顺序搞反了。
3.4 网格策略与频域求解器设置
单元模型本身很小,网格策略反而容易忽视。CST频域求解器默认用四面体网格,对超薄金属层和VO2薄膜并不友好。我习惯的做法是:
- 把金属层设为PEC或薄良导体,厚度方向用表面网格;
- 在谐振结构附近设置局部网格,金属贴片长边和短边方向至少保证10个网格;
- VO2薄膜如果以实体存在,厚度0.1 μm会严重拖慢四面体网格,建议直接去掉实体,用Surface Impedance或Thin Layer材料替代;
- 频率范围可以设0.5~1.2 THz,求解器用宽带频域,自适应网格打开,最大pass设为4到6。
CST里时域求解器也有不少文章在用,但超表面单元本身是谐振周期结构,目标频率极窄,时域求解器要么为了精度把网格压得很小,要么容易在周期边界上引入伪振荡。我用下来的体会是:单元级和十来个单元的小阵列,频域求解器是更稳的选择;大阵列全波验证再考虑时域求解器或DDM(域分解)。
4. 从S参数到反射相位:这里最容易把结果弄丢
4.1 相位要提取,但更要做相位缠绕处理
跑完单元仿真后,很多人直接在S参数结果里右键看Phase,发现相位在-180°和180°之间来回跳,生成一条锯齿状曲线,心里就开始慌。这不是仿真错了,是角度相位的自然卷绕。
处理办法有两种:一种是在结果树中右键S参数,选择相位显示时展开Unwrap;另一种是导出S参数到表格,在外部工具里做unwrap。对超表面设计,你需要关注的是某一个频点上的相对相位,不做unwrap也能通过肉眼判断差异,可一旦要扫描多个单元状态或者把单元相位做成数据库,锯齿状相位会直接毁掉后面的相位映射。
还要注意一点,S参数的相位信息是相对于端口参考面而言的。端口参考面到超表面结构表面之间有一段空气盒子,这段空气会带来额外的传播相位。只关心单元相对相位变化时可以忽略,但要和理论公式里的绝对相位比对,就必须在仿真里把端口参考面移到结构表面,或者在结果里扣除这段距离带来的相位延迟。
4.2 VO2状态切换带来的相位差怎么看
我在仿真里分别把VO2设置为绝缘态和金属态,观察交叉极化反射系数S_RL的相位变化。绝缘态时,VO2对单元谐振影响很弱,相位大致停留在某一基准值;金属态时,VO2相当于在矩形贴片旁边引入一个导电桥,谐振频率明显偏移,反射相位会发生几十度级别的跳变。
这个“材料状态相位差”是否够用,取决于你的设计目标。如果只做效率开关,几十度相位差无伤大雅,因为关键是两个状态下增益或聚光效率差异够大。如果打算做动态波前切换,一个状态产生涡旋、另一个状态产生聚焦,那么单元在两个状态下必须都能单独覆盖0到2π,事情就没那么简单了。
要判断相位覆盖够不够,建议在单元库里固定其他尺寸,只扫描矩形贴片的长边Lx从70 μm到110 μm,画出相位随Lx变化的曲线。如果曲线覆盖范围接近360°,说明这个单元结构具备完整的相位表达能力;如果只覆盖到180°左右,就要加大谐振强度、调整介质厚度或改用多层结构。
4.3 单元仿真的常见陷阱:别急着对S参数下结论
还有两个细节容易被忽略。一是Floquet端口模式数不够:如果单元周期过大或工作频率高到出现栅瓣条件,高阶Floquet模式开始传播,但你只保留了两个主模,结果自然是错的。判断方法很简单,看单元周期是否满足p<λ/(1+sinθ),θ是最大入射角。我的150 μm单元在0.8 THz下周期只有0.4λ,高阶模式处于截止状态,保留两个主模足够。
二是自适应网格收敛判据。CST默认的自适应网格比较聪明,但金属贴片边缘的奇异性经常让相位变化不平稳。如果发现某个频率点相位出现毛刺,不要急着调边界,先看网格收敛曲线,增加一两轮自适应迭代再看结果。
最后一个判断技巧:把单元改为完全对称结构,比如正方形贴片,跑出来的交叉极化反射应该为零或极小,这才说明端口基和圆极化定义是准的。如果对称结构居然出现明显的交叉极化,那八成是边界条件或者端口设置有问题,需要先修这一步再往下走。
5. 把涡旋和聚焦写成公式,再映射到CST阵列上
5.1 目标相位分布怎么表达
单元级工作做好以后,接下来是把目标功能翻译成阵列中每个单元的姿态。反射式PB超表面中,单元旋转角α和出射圆极化通道携带的相位近似满足φ=2α,因此只要算出每个位置需要提供的相位,除以2就能得到旋转角。
涡旋相位公式写为:
Φvortex(x,y)=l·atan2(y,x)
其中atan2是带象限判断的反正切函数,l为拓扑荷。这个公式会在平面中心产生相位奇点,相位沿围绕中心一圈累计变化2πl。
聚焦相位公式写为:
Φfocus(x,y)=2π/λ0·(f-√(x²+y²+f²))
这里f是设计焦距,λ0是自由空间波长。这个公式的物理含义是把焦点设置在(0,0,f)处,超表面口径上各点到焦点的光程差转化成了补偿相位。
如果想要“聚焦涡旋”二合一,也就是既带螺旋相位又汇聚到同一个焦点附近,可以把两种相位直接相加:
Φtotal(x,y)=Φvortex(x,y)+Φfocus(x,y)
然后写宏生成阵列时,让每个单元旋转角度α=Φtotal/2即可。这个叠加操作在数学上合法,物理上实现的是“携带涡旋拓扑荷的会聚波前”,在焦平面上会看到一个亮环而不是实心斑,暗核依然存在。
5.2 用CST自带宏还是外部脚本生成阵列
单元旋转角随坐标变化后,阵列建模就是个体力活。CST图形界面上你可以用Transform旋转单个单元,但如果要做21×21甚至更大的阵列,手动操作不现实。
常用的路径有三条:
一是CST宏录制。先手动完成一个单元从旋转到平移复制的操作并录制VBA宏,然后编辑宏,在外层加两个坐标循环。这个方案适合单元数几百量级,操作最直接。需要特别注意的是旋转中心:旋转时要让贴片绕单元中心轴转,不是绕全局原点转,通常做法是先平移单元到全局原点,旋转完再平移到目标位置。
二是走外部CAD脚本。把每个单元的位置坐标和旋转角写进MATLAB或Python脚本,生成带有坐标系的STEP或SAT文件,再导入CST整阵模型。这个方法适合可变单元参数极多的情况,但导入几何容易产生碎面,网格划分前需要做健康检查。
三是直接对单元使用阵列任务。CST的阵列宏可以设置周期和阵元数量,但对“每个阵元独立旋转不同角度”这类需求支持比较弱,通常最后还是得回到前两种方案。
从具体实现角度,我建议第一次做21×21阵列时先用宏录制从复制单元到得到第1行第2列单元的完整操作,把代码里坐标和旋转角改成由两个循环参数驱动,这个小工具以后能反复复用。
5.3 阵列规模到底该取多大
仿真阵列规模不能贪大。设计焦距f取1000 μm,焦点离超表面口径并不远,理论上参与聚焦的口径越大,焦点能量越集中。但21×21阵列口径只到3.15 mm×3.15 mm,约8.4λ口径,已经足以看出清晰的相位涡旋和焦点轮廓。
CST全波仿真21×21贴片阵列时,如果每个单元都带高阻硅衬底和金属地板,模型网格量会比较可观。此时可以用对称面和简化材料降低负担:结构对称时设置磁对称面和电对称面,能把求解域缩到四分之一;把高阻硅衬底当成无耗介质,能减少材料参数插值的开销。
这些优化做完还不够的话,可以退一步:先用一个9×9阵列验证极性,确认拓扑荷方向和焦距正确,再用21×21阵列去出最终场图。小阵列的定量值虽然不够准,但相位涡旋的方向和焦点位置这类拓扑性质与阵列口径大小关系不大,足够用于调试。
6. 用场监视器验证“焦点”和“涡旋”是否真的出现
6.1 监视器设置:不要只在远场里看方向图
超表面涡旋和聚焦的验证最直接、最直观的一定是近场监视器,而不是远场方向图。远场方向图能看到涡旋波束的旁瓣和主瓣,但很难准确判断螺旋相位结构。
在CST中需要在求解器设置里添加场监视器,至少包含以下三个位置:
- 靠近超表面表面的xy平面,用于看单元阵列的初始相位分布;
- 设计焦距附近的xy平面,用于观察聚焦斑或涡旋暗核;
- 沿z轴的yz平面或xz平面,用于观察波束汇聚过程。
频率点必须精确设置在0.8 THz,不要只看某个宽带结果的平均值。超表面相位是强色散的,偏移几十GHz焦点位置就会明显变化。
6.2 涡旋判据:相位旋转和暗核
打开xy平面的电场相位图后,一个真正的涡旋波束应该呈现标准螺旋分布:相位从0到2π沿方位角连续变化,中心处相位突变,幅度图中心是一个暗点。相位图如果出现若干条逆时针或顺时针旋转的“雨刷”条纹,说明波前正在绕轴旋转。
判断拓扑荷正负的方法也很直接:沿着中心逆时针走一圈,如果相位从0增加到2π,说明拓扑荷为正;如果相位减小,就是负值。对拓扑荷绝对值大于1的涡旋,绕中心一圈能数出2|l|个相位周期,这个特征很难被混淆。
最容易被新手误判的情况是:只看电场幅度图,发现中心是暗的,就兴奋地以为是涡旋。事实上聚焦波束经过焦点时,在非焦平面也可能出现环状或旁瓣结构,暗核却不具有螺旋相位。因此一定要同时打开相位图确认螺旋性。
如果相位图中心不是一个干净的奇点,而是出现两条互相交错的相位断层,很可能是阵列相位离散化不足,或者网格精度不够导致中心区域相位混叠。这时优先加密中心附近网格,而不是改动物理结构。
6.3 焦点判据:轴向光强与焦深
聚焦验证更依赖幅度分布。在焦点位置的xy平面上,应该能看到明显的能量集中,光斑的半高全宽可以粗略估算为Δ≈λ/(2NA),NA由口径和焦距决定。在我的设计里,口径半宽约1.575 mm,焦距1 mm,NA约0.84,理想焦点半高全宽大概在0.6λ到0.7λ,也就是225 μm
