基本参数,全用SI单位,方便直接丢CST

张开发
2026/4/4 2:56:17 15 分钟阅读
基本参数,全用SI单位,方便直接丢CST
CST仿真设计 双焦点聚焦透镜昨天改最后一版双焦点的馈网凌晨两点盯着CST监视器里的焦斑从歪瓜裂枣慢慢缩成两个并排的小馒头咖啡渍还在旁边的原理图PDF上晕开半毫米当时差点把键盘甩到天花板——终于不“偏科”只聚一个点了。说起来用CST做双焦点一开始觉得挺简单不就是把单焦点的透镜劈两半或者相位分布直接叠加两个球面波劈两半肯定不行啊边缘会有严重的相位突变电磁波要么反射要么绕射飞了昨天那个歪瓜裂枣第一个版本就是这么作出来的。后来老老实实找了论文看的简化叠加公式别查太前沿的前沿都是超表面单元扫几百次新手先用连续相位试试水熟手再换连续相位的好处是CST里用相位梯度透镜Gradient Index Lens不对不对这里更适合用Binary Phase Zone Plate的简化连续版或者直接叫Phase-Only Lens双球面波叠加不用扫GRIN的介电常数建模型快适合先验证思路。先插一段公式凑凑“专业感”但不啰嗦——新手用Python写个小脚本生成相位分布就行别自己手算到天亮import numpy as np import matplotlib.pyplot as plt freq 10e9 # 中心频率10GHz也就是X波段挺常用的 c 3e8 lambda0 c/freq k0 2*np.pi/lambda0 # 透镜大小边长100mm的方形网格点数取个256×256足够密了 size 0.1 N 256 x np.linspace(-size/2, size/2, N) y np.linspace(-size/2, size/2, N) X, Y np.meshgrid(x, y) # 两个焦点的位置就放同一条Z轴上吧z1150mmz2250mm间隔10cm z1 0.15 z2 0.25 # 单个球面波的相位k0*(sqrt((X-x0)^2 (Y-y0)^2 z^2) - z) # 这里两个焦点都在中心轴x0y00 phi1 k0 * (np.sqrt(X**2 Y**2 z1**2) - z1) phi2 k0 * (np.sqrt(X**2 Y**2 z2**2) - z2) # 相位叠加然后wrap到[-π, π]方便之后做金属贴片或者介质柱的初始设计 phi_total phi1 phi2 phi_wrapped np.mod(phi_total np.pi, 2*np.pi) - np.pi # 先画个图看看相位长啥样 plt.figure(figsize(6,6)) plt.imshow(phi_wrapped, cmaprainbow, extent[-size/2*1000, size/2*1000, -size/2*1000, size/2*1000]) plt.colorbar(labelPhase (rad)) plt.xlabel(x (mm)) plt.ylabel(y (mm)) plt.title(Dual-Focus Lens Wrapped Phase (10GHz)) plt.savefig(dual_phase.png) plt.show()这段代码跑出来的相位图像不像两个漩涡搅在一起的彩色糖纸对搅得越均匀两个焦斑的能量越接近。接下来把这个糖纸丢进CST新手最推荐用Time Domain Solver时域求解器搭配Farfield Monitor 3D Field Monitor at Both Focus Planes远场监视器两个焦平面的近场3D监视器时域算反射快算远场3D焦斑虽然要等一会儿但不用调太多参数选个“Best Accuracy”就行。模型怎么建别一开始就搞超表面先用一个厚度为λ0/4的介电板介电常数选2.2的FR4环氧板就行常见便宜好买实验也能用把刚才wrap到[-π, π]的相位转成介电板的挖空深度或者厚度调制——新手搞厚度调制最直观用CST的Parametric Sweep不对不对用Python生成.txt的点云坐标然后在CST里用“Import Surface from File”再拉伸成厚度就好拉伸厚度就是“相位对应的厚度差 最小介电板厚度”。哦对了厚度怎么对应相位这个是核心别搞错相位变化Δφ (2π/λ0)(n-1)d所以d Δφλ0 / (2π(n-1))CST仿真设计 双焦点聚焦透镜FR4的n√2.2≈1.483那最小介电板厚度d0选0.2mm薄一点方便加工Δφ0的时候就用d0Δφπ的时候就用d0 πλ0/(2π(n-1)) d0 λ0/(2(n-1))算下来10GHz的λ0是30mm那Δφπ的厚度差是30/(20.483)≈31mm不对不对刚才说λ0/4的介电板是简化哦刚才那个简化叠加公式的前提是“理想的相位共轭反射镜”或者“相位透射系数完美覆盖[-π, π]的超表面”现实中如果用介质板的话厚度差31mm太厚了那换成反射型双焦点超表面会不会更薄对哦刚才脑子抽了搞透射反射的话厚度差减半还不用考虑介电板的背面反射新手再搭个接地板就行——介电板厚度λ0/4≈7.5mm接地板在z0介电板背面z7.5mm挖空挖空深度就是Δφ对应的深度正面z0到z7.5mm之间不挖的部分是金属贴片或者直接在介电板正面印“Vivaldi型超表面单元”不对不对先回到简化反射连续模型用Python生成介电板背面的挖空点云然后在CST里用Boolean减运算把挖空的部分去掉正面整个敷铜背面敷铜的地方留挖空的地方不敷这样就是简化的反射型金属相位板了。搭完模型激励用平面波入射Plane Wave Incident从z轴正方向介电板正面方向垂直入射电场方向选x方向线极化远场监视器设置成“从介电板背面中心z≈0往z轴负方向算Farfield RCS不对不对是近场到远场变换选Field Monitor Type为“Near-Field to Far-Field Transformation”然后定义一个Reference Box把介电板背面和前面一点的空气包进去再定义两个Monitor Plane一个在z-150mmz1的反射焦点因为平面波从正方向来反射焦点在接地板的另一侧负方向一个在z-250mm都是x-y平面尺寸比透镜大一点150mm×150mm网格间距0.5mm这样焦斑看的清楚。昨天第二个版本就是平面波方向设反了从z轴负方向入射结果接地板全反射了焦斑都不知道飞哪去了大家一定要注意激励方向啊等了大概20分钟我电脑配置一般i5-1240032G内存CST终于跑完了先看焦平面的电场强度分布图z-150mm的焦斑半功率波束宽度HPBW大概是0.8λ0也就是24mm挺接近衍射极限的z-250mm的焦斑HPBW大概是0.75λ0稍微细一点因为离透镜远了一点相位误差稍微小一丢丢两个焦斑的能量差大概1.2dB算很不错了新手第一次做叠加能到这个地步然后插一段CST后处理的小技巧——怎么算HPBW别自己手点坐标CST有个“1D Result Plot of 2D Field Monitor”先在焦平面上沿x轴电场极化方向切一条线y0x从-75mm到75mm然后生成1D图再在图上右键选“Calculate Markers”→“Half Power Beam Width”CST自动就算出来了省时间。哦对了刚才的糖纸相位图如果能量差超过2dB怎么办可以在Python里给两个球面波加个权重系数比如phi_total 0.95phi1 1.05phi2这样远的那个焦点的权重稍微高一点就能拉平能量差昨天的1.2dB就是加了0.96和1.04的权重调出来的。如果要做实验的话简化的反射型金属相位板加工起来也不难用PCB板厂就行厚度选7.5mm的FR4正面整个敷铜背面的挖空深度就是刚才算的然后把PCB固定在支架上用矢网Vector Network Analyzer加喇叭天线测近场就行喇叭天线当发射另一个小喇叭当接收沿着z轴和x轴扫就能测出焦斑了。其实双焦点透镜的应用挺多的比如5G/6G的多用户MIMOMultiple-Input Multiple-Output一个焦点给用户A一个焦点给用户B还有近场无线充电两个焦点给两个设备同时充甚至生物医学里的微波热疗两个焦点同时加热两个肿瘤部位。好了差不多就这样大家有问题可以在评论区问我尽量回答——哦对了咖啡渍擦不掉了明天去打印店重新打一份原理图。

更多文章