天线的HFSS和CST仿真介绍与对比

摘要:
目前常用的电磁仿真软件有hfss、cst、feko等,hfss软件仿真电小物体相对而言要比cst更精确,cst对宽带天线的求解速度则比hfss更胜一筹!因为cst是基于时域有限积分法,只需要输入一个时域脉冲就可以仿真宽带频谱结果。
本文使用的软件为cst2018和ansysem 18.2
0 1简单介绍
hfss里内置的求解算法目前有:有限元算法(fem),积分方程算法(ie),高频算法(sbr+ solver), 混合算法(febi,ie-region),域分解算法(ddm,fa-ddm),时域算法(transient),特征模算法(cma),本征模求解器(eigenmode solver)等https://zhuanlan.zhihu.com/p/113897875
大部分人其实仿真简单的天线和滤波器等,使用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 2脚本构建背馈式贴片天线
常见的矩形贴片天线的馈电方式有侧馈电和背馈式等,本次推文采用背馈电式进行仿真分析。
先选定基板为0.762mm厚度的rogers4350b,谐振频率为5.8ghz。(左右滑动可看完整公式)
经过上面公式计算可得贴片天线的宽度和长度分别为16.9mm和13.3mm。
经过上两次推文hfss-api入门第一弹:画个box和hfss-api入门第二弹:基本形状和操作的教学,现在可以直接撸一个背馈式贴片天线的hfss vbs脚本(下载链接见文末,examples文件夹内):
clear;clc;path = mfilename(‘fullpath’);i=strfind(path,‘’);path=path(1:i(end));cd(path);addpath(genpath(strcat(path,‘hfssapi-by-jianhui huang’)));try % 填写路径 % tmpprjfile:生成的aedt或者hfss(安装hfss15以下的后缀名为.hfss)项目文件的路径名 % tmpscriptfile:生成的vbs脚本文件的路径名 tmpprjfile = ‘f:vbsscriptpatch_probe_feed.aedt’; tmpscriptfile = ‘f:vbsscriptauto_code.vbs’;
% hfssexepath:hfss软件的路径 hfssexepath = ‘d:softwarehfss15ansysem18.2win64ansysedt.exe’;
% 创建一个可读写vbs脚本文件。 fid = fopen(tmpscriptfile, ‘wt’);
%创建一个新的hfss项目并插入一个新的设计文件。 hfssnewproject(fid); design_name=‘element’; hfssinsertdesign(fid, design_name); patch_w=16.9;patch_l=13.3; sub_w=35;sub_l=30;sub_h=0.762;copper_h=0.035; probe_dy=-4;probe_dx=0; inner_r=0.5;diel_r=exp(50/60*sqrt(1))*inner_r;outer_r=1.5;l0=2; % hfssvariableinsert(fid,designname,variablename, value, units,flag) hfssvariableinsert(fid,design_name,‘patch_w’, patch_w, ‘mm’,1); hfssvariableinsert(fid,design_name,‘patch_l’, patch_l, ‘mm’,1); hfssvariableinsert(fid,design_name,‘sub_w’, sub_w, ‘mm’,1); hfssvariableinsert(fid,design_name,‘sub_l’, sub_l, ‘mm’,1); hfssvariableinsert(fid,design_name,‘sub_h’, sub_h, ‘mm’,1);
hfssvariableinsert(fid,design_name,‘copper_h’, copper_h, ‘mm’,1); hfssvariableinsert(fid,design_name,‘probe_dx’, probe_dx, ‘mm’,1); hfssvariableinsert(fid,design_name,‘probe_dy’, probe_dy, ‘mm’,1); hfssvariableinsert(fid,design_name,‘l0’, l0, ‘mm’,1); hfssvariableinsert(fid,design_name,‘inner_r’, inner_r, ‘mm’,1); hfssvariableinsert(fid,design_name,‘diel_r’, ‘exp(50/60*sqrt(1))*inner_r’, ‘mm’,2); hfssvariableinsert(fid,design_name,‘outer_r’, outer_r, ‘mm’,1); % 画基板 % hfssbox(fid, boxname, start, size, units, color, material, transparency, flag) hfssbox(fid, ‘sub1’, {‘-sub_w/2’, ‘-sub_l/2’, ‘0mm’}, {‘sub_w’, ‘sub_l’, ‘sub_h’}, ‘mm’,... “(0 128 128)”, “rogers ro4350 (tm)”, 0, 2);
% 画贴片 hfssbox(fid, ‘patch’, {‘-patch_w/2’, ‘-patch_l/2’, ‘sub_h’}, {‘patch_w’, ‘patch_l’, ‘copper_h’}, ‘mm’,... “(255 128 0)”, “copper”, 0, 2); % 画gnd hfssbox(fid, ‘gnd’, {‘-sub_w/2’, ‘-sub_l/2’, ‘0mm’}, {‘sub_w’, ‘sub_l’, ‘-copper_h’}, ‘mm’,... “(128 128 128)”, “copper”, 0, 2);
% 画同轴部分 % 画同轴内芯 % hfsscylinder(fid, cylindername, axis, center, radius, height, units, color, material, transparency, flag) hfsscylinder(fid, ‘inner’, ‘z’, {‘probe_dx’, ‘probe_dy’, ‘sub_h+copper_h’}, ‘inner_r’,‘-(sub_h+copper_h*2+l0)’, ‘mm’,... “(128 128 128)”, “copper”, 0, 2);
hfsscylinder(fid, ‘diel’, ‘z’, {‘probe_dx’, ‘probe_dy’, ‘-copper_h’}, ‘diel_r’,‘-l0’, ‘mm’,... “(0 128 128)”, “vacuum”, 0, 2); hfsscylinder(fid, ‘outer’, ‘z’, {‘probe_dx’, ‘probe_dy’, ‘-copper_h’}, ‘outer_r’,‘-l0’, ‘mm’,... “(128 128 128)”, “copper”, 0, 2); % 地板开过孔 hfsscylinder(fid, ‘gnd_hole’, ‘z’, {‘probe_dx’, ‘probe_dy’, ‘0mm’}, ‘diel_r’,‘-copper_h’, ‘mm’,... “(255 128 0)”, “vacuum”, 0, 2);
% 布尔操作 hfsssubtract(fid, {‘outer’}, {‘diel’}, true); hfsssubtract(fid, {‘sub1’,‘patch’,‘diel’}, {‘inner’}, true); hfsssubtract(fid, {‘gnd’}, {‘gnd_hole’}, false);
% 保存项目文件到指定路径 hfsssaveproject(fid, tmpprjfile,1);
% close the hfss script file. fclose(fid); disp(‘vbs脚本已生成!’);catch disp(‘程序出现异常!’); fclose(fid);end
上面的代码按个人情况按图索骥地修改tmpprjfile,tmpscriptfile ,hfssexepath这几个路径和design_name,将编写的matlab生成vbs脚本的.m文件与下载的hfssapi-by-jianhui huang放在同一个总文件夹内,点击运行即可生成vbs脚本(在自行赋值的tmpscriptfile的这个路径下)。vbs脚本可以直接点击运行,或者在hfss软件中run script。建模完成后,自行添加region,设置radiation边界条件和analysis的setup,即可进行仿真(后续boundary和analysis同步上来后可以在脚本中就建立好)。
analysis设置
此时仿真结果可以看出天线谐振频率偏向低频,且输入阻抗偏离50欧姆。
这时候有人肯定就会说,调天线就是玄学,这么多变量我怎么知道调节哪些变量,变量调成多少合适,难道直接用optimization? 其实了解过贴片天线相关原理的就晓得,这时候,只需要调节天线的长度和馈电偏离中心的位置即可,前者影响谐振频率,后者影响天线的匹配。
话不多说直接上图,可以看出当馈电点位置偏离贴片天线中心2.5mm时,其阻抗匹配较优。
不过此时天线的谐振频率还偏向低频5.6ghz,因此适当缩短天线长度即可完成5.8ghz背馈式贴片天线的设置。
矩形贴片天线长度扫参结果
0 3cst和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文件!


电气图分类有哪些
步进电机分哪几种及种类
小米智能电视在印度市场的份额占比持续六连胜
防水连接器定制安装需要注意哪些事项?
通用汽车正在经历深刻的重构 加速自动驾驶的商业化进程
天线的HFSS和CST仿真介绍与对比
智慧农业的市场可能有多大
无人机飞防具备什么优势
IoT赛道又进一位新的“搅局者”无人不知晓的360
IoT网络中集成了很多不同的传感器类型
fireflyAIO-3399C主板电源适配器简介
如何通过优化模块布局解决芯片缩小带来的电气性能挑战
led芯片的类型
suaoki推出一款便携式储能移动电源,支持车充充电,并能够使用太阳能供电
中国航空公司正式启动了LEAP发动机培训项目
最新黑科技:人体内运输细胞的微型机器人
没有大算力的ChatGPT,不是好AIGC
77英寸索尼A1正式开售:14999元仅次于LG OLED77W7P
汇总一些嵌入式打log的一些规则
华为正式宣布推出openEuler 20.3 LTS操作系统 可免费获取LTS版本并商业化