在B站看到好几个matlab和hfss联合仿真的视频,感觉挺好玩的,为了后续阵列天线的仿真做一个铺垫,参考csdn的两个博客,综合了一下达到了自己想要的结果。
参考的博客:1-matlab和HFSS联合仿真偶极子天线,2-hfss和matlab,matlab-hfss联合仿真教程
我是在2的基础上将1的代码整合来过来,去掉了1的部分功能;
执行的步骤:
1、在matlab中建立一个m文件,编程如下:
(matlab中需要的库函数包:
下载地址:Skipper7大神的CSDN:https://download.csdn.net/download/skipper7/9979773
参考链接2的网盘:https://pan.baidu.com/s/1Sefvcfsmqkwmb4_lAb3ftQ)
%
% date:2021年12月7日18:42:06
% function:利用matlab与HFSS联合仿真
%
%HFSS工程的路径
temPrjFile='U:/hfss_models/Co-simulation/cirPatch.hfss';
%脚本文件名称,该脚本文件和HFSS工程的路径相同
temScriptFile='U:/hfss_models/Co-simulation/temPatch0.vbs';
%为需要用到的m文件添加可识别的路径,即hfss-api的路径(上文提到过):
addpath('U:/hfss_models/hfssapi/hfssapi/3dmodeler/');
addpath('U:/hfss_models/hfssapi/hfssapi/analysis/');
addpath('U:/hfss_models/hfssapi/hfssapi/boundary/');
addpath('U:/hfss_models/hfssapi/hfssapi/general/');
%创建一个新的临时脚本文件
fid=fopen(temScriptFile,'wt');
%创建新的工程和设计文件
hfssNewProject(fid);
hfssInsertDesign(fid,'Basic');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%新加入的程序**********************
%frequency.c=波长*频率
c=3e8;
% solution parameters (GHz)
fSolve=3;
fStart=2;
fStop=4;
nPoints=50;
%dipole天线参数
lam=100*1e-3;
gap=0.24*1e-3;
length=0.48*lam;
dip_length=(length/2-gap/2)*1e-3;
dip_radius=(lam/200)*1e-3;
rad_radius=(dip_radius+lam/4)*1e-3;
rad_height=(length/2+lam/4)*1e-3;
%偶极子天线的两臂
hfssCylinder(fid,'dipole1','Z', [0,0,0.12*1e-3],0.5*1e-3,23.88*1e-3,'meter');
hfssCylinder(fid, 'dipole2','Z', [0,0,-0.12*1e-3],0.5*1e-3,-23.88*1e-3,'meter');
hfssAssignMaterial(fid,'dipole1','pec');
hfssAssignMaterial(fid,'dipole2','pec');
%draw feedport
hfssRectangle(fid,'feedport','X',[0 ,-0.5*1e-3 ,-0.12*1e-3],1*1e-3,0.24*1e-3,'meter');
hfssAssignLumpedPort(fid, 'LumpedPort', 'feedport', [0,0,-0.12*1e-3],[0,0,0.12*1e-3], 'meter');
%draw radiation boundaries.
hfssCylinder(fid, 'AirBox','Z', [0,0,-49*1e-3],25.5*1e-3,98*1e-3, 'meter');
hfssAssignMaterial(fid,'AirBox','air');
hfssSetTransparency(fid,{'AirBox'},0.8);
hfssAssignRadiation(fid,'air','AirBox');
% Add a Solution Setup.
hfssInsertSolution(fid, 'Setup3GHz', fSolve);
hfssInterpolatingSweep(fid, 'Sweep2to4GHz', 'Setup3GHz',fStart, fStop,nPoints);
context='EPlane';
hfssFarFieldSphere(fid,context, -180, 180, 1, 0, 0, 0);
% Save the project to a temporary file and solve it.
hfssSaveProject(fid,tmpPrjFile, true);
hfssSolveSetup(fid, 'Setup3GHz');
% Export the Network data as an m-file.
hfssExportNetworkData(fid, tmpDataFile, 'Setup3GHz', 'Sweep2to4GHz');
%Export the Gain data as an m-file.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%截止***********************************
%保存工程
hfssSaveProject(fid,temPrjFile,true);
%关闭脚本文件
fclose(fid);
2、通过步骤1生成了一个.vbs的脚本文件,启动hfss软件,点击Tools->Run Script…将生成的脚本文件加载进来,然后就会自动完成建模和仿真的工作。效果如下图:
总结:上述操作完成的功能有:建模和设置仿真的一些规则,进行仿真,对于仿真结果的查看、计算暂时没有涉及到,后续有用到在进行学习。因为hfss建模的流程基本都是一致的,这样联合仿真的好处就是减少重复枯燥的操作。