• HFSS-API入门第二弹:基本形状和操作


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

    摘要:

    上节HFSS-API入门第一弹:画个Box主要是分享了调用改良hfssapi新建工程和设计文件并插入变量画一个参数化的Box,本期推文将推送常用的基本形状和布尔操作函数。欢迎小伙伴们阅读、分享、再看,转发给更多有需要的人!喜欢的小伙伴可赞赏下作者哦。

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

    简单介绍

    常规模型大家只需要用到画方块、柱子、矩形片、圆形,并对其进行Unite和Subtract之类的布尔操作即可。上次推文已经介绍了hfssBox的函数用法,下节将先对hfssCylinder,hfssRectangle,hfssCircle进行函数使用讲解,然后介绍hfssUnite和hfssSubtract的加减操作函数。

    拉到文末有下载改良后的hfssapi,建议收藏链接,后续新出的函数会不定期在该文件夹内更新。文件也不大,几百kB,每次有更新重新下载覆盖即可。

    • 先提醒下matlab打开有中文注释代码乱码问题,按下图所示将EditorFont改为Monospaced即可。

    • 对于设置Color,有的人想花里胡哨地配色的话,可以进行RGB三色的颜色查询:https://www.sojson.com/rgb.html。没有绝对颜感的人不要轻易尝试,否则配出来会是下图这种样子。可能你觉得很绚丽,但是真的很乡村风啊!!!本人还是习惯用上次推文的三种配色,极简最好。

    函数使用教程

    接下来先介绍三个建模常用的函数:hfssCylinder,hfssRectangle,hfssCircle。

    1 % hfssCylinder(fid, CylinderName, Axis, Center, Radius, Height, Units, Color, Material, Transparency, flag)
    2 % CylinderName:圆柱的名字;Axis:圆柱建模的中心轴向('X','Y'或'Z',大小写均可);Center:圆柱底面的圆心坐标;
    3 % Radius:圆柱底面的圆半径;Height:圆柱的高度;Units:单位
    4 % Color:圆柱的颜色(RGB);Material:材料名字(不要随便自己整个名字,必须是HFSS材料库里的名字);
    5 % Transparency:显示的透明度;flag:值为1时Center, Radius, Height只支持数字,值为2时value支持元胞数组表达式
    6 % 实例:
    7 % hfssCylinder(fid, 'Cy1', 'Z', {'Cy_dx', 'Cy_dy', 'Cy_dz'}, 'Cy_R','Cy_H', 'mm',...
    8 % "(132 132 193)", "FR4_epoxy", 0, 2);
    9 % hfssCylinder(fid, 'Cy1', 'Z', [0,0,0], 0.5,2, 'mm',...
    10 % "(132 132 193)", "FR4_epoxy", 0, 1);
    1 % hfssRectangle(fid, RectangleName, Axis, Start, Width, Length, Units, Color, Transparency,flag)
    2 % RectangleName:矩形片的名字;Axis:矩形片的法向轴向('X','Y'或'Z',大小写均可);
    3 % Start:矩形片的起始基点;% Width:矩形片的宽;Length:矩形片的长;Units:单位
    4 % Color:矩形片的颜色(RGB);% Transparency:显示的透明度;
    5 % flag:值为1时Start, Width, Length只支持数字,值为2时value支持元胞数组表达式
    6 % HFSS中的Rectangle只可设置边界条件,不可设置材料属性
    7 % 实例:
    8 % hfssRectangle(fid, 'Rec1', 'Z', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',...
    9 % "(132 132 193)", 0, 2);
    10 % hfssRectangle(fid, 'Rec1', 'Z', [0,0,0], 1, 2, 'mm',...
    11% "(132 132 193)", 0, 1)
    1 % hfssCircle(fid, CircleName, Axis, Center, Radius, Units, Color, Transparency,flag)
    2 % CircleName:圆形片的名字;Axis:圆形片的法向轴向('X','Y'或'Z',大小写均可);Center:圆形片的圆心坐标;
    3 % Radius:圆形片的半径;Units:单位
    4 % Color:圆形片的颜色(RGB);% Transparency:显示的透明度;
    5 % flag:值为1时Center, Radius只支持数字,值为2时value支持元胞数组表达式
    6 % HFSS中的Circle只可设置边界条件,不可设置材料属性
    7 % 实例:
    8 % hfssCircle(fid, 'Cir1', 'Z',{'Cir_dx', 'Cir_dy', 'Cir_dz'}, 'Cir_R', 'mm',...
    9 % "(128 128 128)", 0, 2)
    10 % hfssCircle(fid, 'Cir1', 'Z',[0,0,0], 1, 'mm',...
    11 % "(128 128 128)", 0, 1)

    需要注意上面的hfssRectangle,当坐标轴分别选取'X','Y'或'Z'时,按下面代码建立三个Rectangle模型。

    1 hfssRectangle(fid, 'Rec1', 'X', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',...
    2 "(255 128 0)", 0, 2);
    3 hfssRectangle(fid, 'Rec2', 'Y', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',...
    4 "(255 128 0)", 0, 2);
    5 hfssRectangle(fid, 'Rec3', 'Z', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',...
    6 "(255 128 0)", 0, 2)

    逐个点击这三个Rectangle,查看其属性会发现:若坐标轴选'X',则'Rec_W','Rec_L'分别赋值给Ysize和Zsize;若坐标轴选'Y',则'Rec_W','Rec_L'分别赋值给Zsize和Xsize;若坐标轴选'Z',则'Rec_W','Rec_L'分别赋值给Xsize和Ysize;即按着'X','Y','Z'顺序进行轮换式赋值。

    在建模过程中,往往需要Unite和Subtract这两种加减型的布尔操作,这时候hfssUnite和hfssSubtract函数就派上用场了。

    1 % hfssUnite(fid, ObjectList)
    2 % ObjectList:待Unite的物体名字
    3 % 实例:
    4 % hfssUnite(fid, {'Object1Name', 'Object2Name', 'Object3Name'});
    1 % hfssSubtract(fid, BigParts, SmallParts, KeepOriginals)
    2 % BigParts:待减物品名字;SmallParts:被减的物体名字
    3 % KeepOriginals:为false时不保留被减物,为true时则保留被减物
    4 % 实例:
    5 % hfssSubtract(fid, {'Object1Name'}, {'Object2Name'}, false);

    通过下面的视频可以直观感受下以上五个函数的建模作用,以及hfssSubtractKeepOriginalsfalsetrue时的差异:

    上面视频的两段代码文件在文末的链接内,按个人情况按图索骥地修改tmpPrjFile,tmpScriptFile ,hfssExePath这几个路径和Design_name,将编写的MATLAB生成vbs脚本的.m文件与下载的hfssapi-by-Jianhui Huang放在同一个总文件夹内,点击运行即可生成vbs脚本(在自行赋值的tmpScriptFile的这个路径下)。vbs脚本可以直接点击运行,或者在HFSS软件中Run Script。

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

    代码分享区

    hfssapi-by-Jianhui Huang

    下载地址(后续代码持续在下面链接更新):射频问问原文末尾自取

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

    来源:HFSS-API入门第二弹:基本形状和操作 - RFASK射频问问

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

    END

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

    作者:微波天线工程师

    应读者朋友们对这个系列文章的喜爱,也为了能够让老师更系统更全面地介绍MATLAB-HFSS-API相关知识,现推出该系列课程,共25课时,欢迎大家加入课程学习!https://www.rfask.net/kc/v/41.html

    关于RFASK射频问问

    射频问问 (http://RFASK.NET) 是在"微波射频网 (http://MWRF.NET)”系列原创技术专栏基础上升级打造的技术问答学习平台,主要围绕射频芯片、微波电路、天线、雷达、卫星等相关技术领域,致力于为无线通信、微波射频、天线、雷达等行业的工程师,提供优质、原创的技术问答、专栏文章、射频课程等学习内容。更多请访问:http://www.rfask.net

  • 相关阅读:
    现网工作中经常遇到却说不出来的技术名词,看看你都知道吗?-思科,华为,网络工程师
    MySql整理(基础|进阶|运维)【黑马程序员视频】
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java教学信息管理辅助系统jszpb
    微信小程序连接蓝牙
    【AIGC调研系列】copilot在自动化测试脚本中的实际应用效果
    idea自动导包操作步骤
    通义灵码-IDEA的使用教程
    大数据架构:字节跳动开源Cloud Shuffle Service简介
    【时间的比较】
    探索现代办公应用系统架构:构建高效、可扩展的工作平台
  • 原文地址:https://blog.csdn.net/qizu/article/details/126099548