贴片天线的HFSS和CST仿真对比

2022-01-12 来源:微波射频网 作者:94巨蟹座少年 字号:

学个Antenna是以天线仿真和调试为主,理论原理为辅的干货天线技术专栏,包括天线入门知识以及各类天线的原理简介、仿真软件建模、设计、调试过程及思路如有想看到的内容或技术问题,可以在文尾写下留言。

摘要:

目前常用的电磁仿真软件有HFSS、CST、FEKO等,HFSS软件仿真电小物体相对而言要比CST更精确,CST对宽带天线的求解速度则比HFSS更胜一筹!因为CST是基于时域有限积分法,只需要输入一个时域脉冲就可以仿真宽带频谱结果。

本文使用的软件为CST2018和AnsysEM 18.2

简单介绍

·  HFSS里内置的求解算法目前有:有限元算法(FEM),积分方程算法(IE),高频算法(SBR+ Solver), 混合算法(FEBI,IE-Region),域分解算法(DDM,FA-DDM),时域算法(Transient),特征模算法(CMA),本征模求解器(Eigenmode solver)等
·  https://zhuanlan.zhihu.com/p/11389787

大部分人其实仿真简单的天线和滤波器等,使用HFSS的有限元算法和软件自身的自适应网格剖分和加密技术,设置好收敛的Max Mag Delta S(默认0.02)就足以满足其仿真需求。

对于软件的使用和其他算法求解器的设置这里就不做过多赘述了。

大部分工程师在使用HFSS软件时都会发现,其对电脑的配置要求较高,尤其是内存。而且电大尺寸、超宽带的仿真要求的算力更是难以满足。

CST恰恰弥补了HFSS仿真超宽带的短板,但是它在小尺寸、圆形等结构上的仿真精度不高。如下图所示,HFSS在边缘部分特别是圆形结构附件的三角网格剖分的特别细腻,而CST的六面体网格的剖分过于规整。

虽然缝隙和圆形等结构附近的剖分虽然可以采用CST的局部网格加密Local Mesh等,但初学者可能还是HFSS的傻瓜式自适应剖分比较人性化。

·  CST软件采用了电磁场全波时域仿真算法―有限积分法(FIT),对麦克斯韦积分方程进行离散化并迭代求解。由于其所采用的时域算法FIT,只须一步步迭代求解,不用进行矩阵求逆。此内在特性决定了,其适合的仿真结构涵盖电小、电中和电大,均可取得良好的表现。体矩量法、有限元法和有限积分法三者的计算量(体现在CPU 时间和所需内存)·分别正比于所分网格数N的3次、2次和1.1~1.2次方,可以看出有限积分法对于算力的要求要低于HFSS的有限元法。

对于CST软件,大家常用的也是Time Domain Solver,除此之外,它还有频域求解器、本征模求解器、积分方程法、渐进计算、多层介质算法。

下一节我们会对两种软件的进行仿真精度对比,主要是看HFSS的FEM+自动网格剖分加密仿真和CST的Time Domain Solver和Frequency Domain Solver。

脚本构建背馈式贴片天线

常见的矩形贴片天线的馈电方式有侧馈电和背馈式等,本次推文采用背馈电式进行仿真分析。

先选定基板为0.762mm厚度的Rogers4350B,谐振频率为5.8GHz。(左右滑动可看完整公式):

经过上面公式计算可得贴片天线的宽度和长度分别为16.9mm和13.3mm。

经过上两次推文HFSS-API入门第一弹:画个BoxHFSS-API入门第二弹:基本形状和操作的教学,现在可以直接撸一个背馈式贴片天线的HFSS vbs脚本(下载链接见文末,examples文件夹内):

1  clear;clc;

2  path = mfilename('fullpath');

3  i=strfind(path,'\');

4  path=path(1:i(end));

5  cd(path);

6  addpath(genpath(strcat(path,'hfssapi-by-Jianhui Huang')));

7  try

8      % 填写路径

9      % tmpPrjFile:生成的aedt或者hfss(安装hfss15以下的后缀名为.hfss)项目文件的路径名

10    % tmpScriptFile:生成的vbs脚本文件的路径名

11      tmpPrjFile = 'F:\vbsScript\Patch_Probe_Feed.aedt';

12      tmpScriptFile = 'F:\vbsScript\auto_code.vbs';

13  

14      % hfssExePath:HFSS软件的路径

15      hfssExePath = 'D:\software\HFSS15\AnsysEM18.2\Win64\ansysedt.exe';

16  

17      % 创建一个可读写vbs脚本文件.

18      fid = fopen(tmpScriptFile, 'wt');

19  

20      %创建一个新的HFSS项目并插入一个新的设计文件.

21      hfssNewProject(fid);

22      Design_name='element';

23      hfssInsertDesign(fid, Design_name);

24      

25      Patch_W=16.9;Patch_L=13.3;

26      Sub_W=35;Sub_L=30;Sub_H=0.762;copper_H=0.035;

27      Probe_dy=-4;Probe_dx=0;

28      Inner_R=0.5;Diel_R=exp(50/60*sqrt(1))*Inner_R;Outer_R=1.5;L0=2;

29     % hfssVariableInsert(fid,DesignName,variableName, value, units,flag)

30      hfssVariableInsert(fid,Design_name,'Patch_W', Patch_W, 'mm',1);

31      hfssVariableInsert(fid,Design_name,'Patch_L', Patch_L, 'mm',1);

32      hfssVariableInsert(fid,Design_name,'Sub_W', Sub_W, 'mm',1);

33      hfssVariableInsert(fid,Design_name,'Sub_L', Sub_L, 'mm',1);

34     hfssVariableInsert(fid,Design_name,'Sub_H', Sub_H, 'mm',1);

35      hfssVariableInsert(fid,Design_name,'copper_H', copper_H, 'mm',1);

36      hfssVariableInsert(fid,Design_name,'Probe_dx', Probe_dx, 'mm',1);

37   hfssVariableInsert(fid,Design_name,'Probe_dy', Probe_dy, 'mm',1);

38    hfssVariableInsert(fid,Design_name,'L0', L0, 'mm',1);

39    hfssVariableInsert(fid,Design_name,'Inner_R', Inner_R, 'mm',1);

40    hfssVariableInsert(fid,Design_name,'Diel_R', 'exp(50/60*sqrt(1))*Inner_R', 'mm',2);

41    hfssVariableInsert(fid,Design_name,'Outer_R', Outer_R, 'mm',1);

42    

43    % 画基板

44    % hfssBox(fid, BoxName, Start, Size, Units, Color, Material, Transparency, flag)

45   hfssBox(fid, 'Sub1', {'-Sub_W/2', '-Sub_L/2', '0mm'}, {'Sub_W', 'Sub_L', 'Sub_H'}, 'mm',...

46        "(0 128 128)", "Rogers RO4350 (tm)", 0, 2);

47     % 画贴片

48    hfssBox(fid, 'Patch', {'-Patch_W/2', '-Patch_L/2', 'Sub_H'}, {'Patch_W', 'Patch_L', 'copper_H'}, 'mm',...

49        "(255 128 0)", "copper", 0, 2);

50    % 画GND

51    hfssBox(fid, 'GND', {'-Sub_W/2', '-Sub_L/2', '0mm'}, {'Sub_W', 'Sub_L', '-copper_H'}, 'mm',...

52        "(128 128 128)", "copper", 0, 2);

53    

54    % 画同轴部分

55    % 画同轴内芯

56    % hfssCylinder(fid, CylinderName, Axis, Center, Radius, Height, Units, Color, Material, Transparency, flag)

57    hfssCylinder(fid, 'Inner', 'Z', {'Probe_dx', 'Probe_dy', 'Sub_H+copper_H'}, 'Inner_R','-(Sub_H+copper_H*2+L0)', 'mm',...

58       "(128 128 128)", "copper", 0, 2);

59    hfssCylinder(fid, 'Diel', 'Z', {'Probe_dx', 'Probe_dy', '-copper_H'}, 'Diel_R','-L0', 'mm',...

60       "(0 128 128)", "vacuum", 0, 2);

61    hfssCylinder(fid, 'Outer', 'Z', {'Probe_dx', 'Probe_dy', '-copper_H'}, 'Outer_R','-L0', 'mm',...

62       "(128 128 128)", "copper", 0, 2);

63    

64    % 地板开过孔

65    hfssCylinder(fid, 'GND_hole', 'Z', {'Probe_dx', 'Probe_dy', '0mm'}, 'Diel_R','-copper_H', 'mm',...

66       "(255 128 0)", "vacuum", 0, 2);

67

68    % 布尔操作

69    hfssSubtract(fid, {'Outer'}, {'Diel'}, true);

70    hfssSubtract(fid, {'Sub1','Patch','Diel'}, {'Inner'}, true);

71    hfssSubtract(fid, {'GND'}, {'GND_hole'}, false);

72

73    % 保存项目文件到指定路径

74    hfssSaveProject(fid, tmpPrjFile,1);

75

76    % Close the HFSS Script File.

77    fclose(fid);

78    disp('vbs脚本已生成!');

79catch

80    disp('程序出现异常!');

81    fclose(fid);

82end

上面的代码按个人情况按图索骥地修改tmpPrjFile,tmpScriptFile ,hfssExePath这几个路径和Design_name,将编写的MATLAB生成vbs脚本的.m文件与下载的hfssapi-by-Jianhui Huang放在同一个总文件夹内,点击运行即可生成vbs脚本(在自行赋值的tmpScriptFile的这个路径下)。vbs脚本可以直接点击运行,或者在HFSS软件中Run Script。建模完成后,自行添加Region,设置Radiation边界条件和Analysis的Setup,即可进行仿真(后续boundaryanalysis同步上来后可以在脚本中就建立好)。

Analysis设置

此时仿真结果可以看出天线谐振频率偏向低频,且输入阻抗偏离50欧姆。

这时候有人肯定就会说,调天线就是玄学,这么多变量我怎么知道调节哪些变量,变量调成多少合适,难道直接用Optimization? 其实了解过贴片天线相关原理的就晓得,这时候,只需要调节天线的长度和馈电偏离中心的位置即可,前者影响谐振频率,后者影响天线的匹配。

话不多说直接上图,可以看出当馈电点位置偏离贴片天线中心2.5mm时,其阻抗匹配较优。

不过此时天线的谐振频率还偏向低频5.6GHz,因此适当缩短天线长度即可完成5.8GHz背馈式贴片天线的设置。

矩形贴片天线长度扫参结果

CST和HFSS仿真结果对比

在HFSS上方菜单栏选择Modeler->Export,保存为step格式。

然后打开CST在Export下选择导入上面的STEP文件,并删除Region等无关模型,设置好材料属性和边界条件。

采用时域求解器和默认的网格剖分设置,仿真的谐振频率在5.759GHz,与HFSS仿真结果相差40MHz。

CST时域Meshproperties和S11结果

直接将上述模型的求解器改为频域求解器并按下图设置网格剖分,仿真的谐振频率在5.825GHz,与HFSS仿真结果相差25MHz左右,已经很接近了。

CST频域Meshproperties和S11结果

总体来说,电小尺寸的微带贴片天线在HFSS的FEM+自动网格剖分加密仿真和CST的时域和频域求解器下,仿真结果差异可以接受。毕竟天线设计属于工科范畴,实际还要考虑加工、焊接容差等,所以还是需要打几次PCB板进行测试分析、调试优化,死磕这点仿真差异并没有啥意义。

基础性地写代码编注释,建模仿真还是挺费时间和精力的,希望大家多点赞分享!

代码分享区

hfssapi-by-Jianhui Huang

下载链接(后续代码持续在下面链接更新):

https://pan.baidu.com/s/1N0EE3Uv7krkypfzi9vxCvg

提取码:o5p5

代码已封装好打包为p文件不可修改,每次重新下载覆盖,按函数注释进行掉包即可!

注释事项:MATLAB生成vbs脚本的.m文件与hfssapi-by-Jianhui Huang放在同一个总文件夹内。不要在examples文件夹内运行.m文件!

END

*本文的图片部分来自CST2018和AnsysEM 18.2软件

*欢迎左侧一键转发至朋友圈,同时右侧在看与点赞

本期原创工程师:94巨蟹座少年

本文为MWRF.NET原创文章,未经允许不得转载,如需转载请联系market#mwrf.net(#换成@)

主题阅读:脚本构建    侧馈电        背馈式