logo资料库

HFSS-MATLAB-API使用教程.pdf

第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
资料共32页,剩余部分请下载后查看
HFSS-MATLAB-API使用教程
1.关于HFSS脚本
2.一个最简单的HFSS脚本
3.使用MATLAB生成HFSS脚本:HFSS-MATLAB API
3.1API结构
3.2API的使用
3.3参数化
3.4一个完整的脚本
Contents
the Conical_Horn antenna
Design Variables
Waveguide
Horn
Unit waveguide and horn
WavePort
Air box
fclose
4.一些应用举例
4.1波导缝隙天线及其阵列
Contents
initial design of Slot waveguide
Waveguide
Slot
Waveport
add Local CS
array
编辑馈电导出增益曲线
fclose 关闭文件句柄
4.2不等齿深波纹喇叭的建模
理论基础
建模步骤
程序
Contents
CreateEquationCurve 1
CreateEquationCurve 2
tooth part1
tooth part2
tooth part3
fclose
模型截图
4.3在天线阵列中的应用
Contents
head
模型参数
Edit Source and export data
fclose
5.致谢
Introduction to VBScript
HFSS-MATLAB-API 使用教程 WoodyBuendia 2018-2-26 WOODYBUENDIA@GMAIL.COM tinywoody@126.com
目录 HFSS-MATLAB-API 使用教程 HFSS-MATLAB-API 使用教程 ............................................................................................................................................................... 1 1.关于 HFSS 脚本 ............................................................................................................................................................................. 1 Introduction to VBScript ......................................................................................................................................................................... 2 2.一个最简单的 HFSS 脚本 ........................................................................................................................................................... 2 3.使用 MATLAB 生成 HFSS 脚本:HFSS-MATLAB API ....................................................................................................... 4 3.1API 结构 ............................................................................................................................................................................... 4 3.2API 的使用 ........................................................................................................................................................................... 6 3.3 参数化 ................................................................................................................................................................................. 7 3.4 一个完整的脚本 ............................................................................................................................................................... 9 4.一些应用举例 .............................................................................................................................................................................. 14 4.1 波导缝隙天线及其阵列 ............................................................................................................................................... 14 4.2 不等齿深波纹喇叭的建模 .......................................................................................................................................... 19 4.3 在天线阵列中的应用 .................................................................................................................................................... 29 5.致谢 ................................................................................................................................................................................................. 31 本文除已说明和致谢外,均为原创,未经本人同意,严禁擅自发表,包括但不限于微信、微博公共号或网站和 论坛。如有需求请与本人联系。 相关资源已经上传至 Github,地址为:https://github.com/WoodyBuendia/HFSS-MATLAB-API.git 吴 迪 woodybuendia@gmail.com tinywoody@126.com 20180226 于上海 1.关于 HFSS 脚本 根据 HFSS 15 版本帮助文件介绍,HFSS 软件使用 Microsoft® Visual Basic® Scripting Edition (VBScript)脚本语 言记录宏指令。 一方面,在打开 HFSS 软件进行一些造作时,如果选择 Tools——Record Script to file,新建一个.vbs 后缀的脚 本文件,可以将所有的操作记录在新建的脚本中;另一方面可以编写符合格式的脚本文件,通过 Tools——Run Script 来让 HFSS 软件运行编写好的脚本。
更多关于脚本的介绍可以参考: HFSS-Help-Contents-Scripting 一节,或者点击链接下载 chm 或 pdf 帮助文 件:https://pan.baidu.com/s/1ht4zhBI Introduction to VBScript HFSS uses the Microsoft® Visual Basic® Scripting Edition (VBScript) scripting language to record macros. VBScript is based on the Microsoft Visual Basic programming language. Using scripts is a fast, effective way to accomplish tasks you want to repeat. When you execute a script, the commands in the script are performed. You can write a script using any text editor or you can record a script from within the HFSS interface. After recording the script from within HFSS, you can then modify it if necessary using a text editor. Although HFSS records scripts in VBScript format, it can also execute scripts in JavaScriptTM format. If you are running a script from a command prompt, the script can be written in any language that provides the Microsoft COM methods. The HFSS scripting documentation refers to VBScript format only. This chapter provides an overview of key VBScript components. For more details about VBScript, please see the Recommended VBScript References section at the end of this chapter. ——HFSS Scripting Guide 2.一个最简单的 HFSS 脚本 使用 HFSS 记录造作到脚本的功能,生成一个最简单的 HFSS 脚本文件,具体操作是新建一个 Design project, 选择绘制圆形工具,在 HFSS 新建一个圆形 sheet,脚本如下:
注释段 创建一个圆形,Array()是相关参数; 符号“_”表示未结束换至下一行 表的含义是可以参见下图; 一个 HFSS 脚本总是这样开始,这段代 ' ---------------------------------------------- ' Script Recorded by Ansoft HFSS Version 15.0.0 ' 3:06:58 下午 2 月 24, 2018 ' ---------------------------------------------- Dim oAnsoftApp Dim oDesktop Dim oProject Dim oDesign Dim oEditor Dim oModule Set oAnsoftApp = CreateObject("AnsoftHfss.HfssScriptInterface") Set oDesktop = oAnsoftApp.GetAppDesktop() oDesktop.RestoreWindow Set oProject = oDesktop.SetActiveProject("Project4") oProject.InsertDesign "HFSS", "HFSSDesign2", "DrivenModal", "" Set oDesign = oProject.SetActiveDesign("HFSSDesign2") Set oEditor = oDesign.SetActiveEditor("3D Modeler") oEditor.CreateCircle Array("NAME:CircleParameters", "IsCovered:=", true, "XCenter:=", _ "0mm", "YCenter:=", "0mm", "ZCenter:=", "0mm", "Radius:=", "1.06301458127347mm", "WhichAxis:=", _ "Z", "NumSegments:=", "0"), Array("NAME:Attributes", "Name:=", "Circle1", "Flags:=", _ "", "Color:=", "(132 132 193)", "Transparency:=", 0, "PartCoordinateSystem:=", _ "Global", "UDMId:=", "", "MaterialValue:=", "" & Chr(34) & "vacuum" & Chr(34) & "", "SolveInside:=", _ true) 起始片段的结构: 在一些特定的场景,事先编写脚本让 HFSS 执行相关操作,是非常高效和准确的,可以节省大量的重复性造作; 不仅如此,在有些情况下,由于建模过于复杂或者模型变量需要通过第三方优化算法相互调用,那么只能使用编写 脚本的方法才能完成。 在这个最简单的脚本中,可以看到即使是新建一个圆面的操作,需要的脚本也是比较多和复杂的,如果手动一 行行敲入这些脚本代码,一方面过于冗长难免出现各种错误,另一方面也无法实现提高效率的初衷。 好在前辈们给出了一些简便的方法,可以将重复性的操作变成可以调用的函数,将需要指定的相关参数作为输 入,通过相关编程语言自动完成 vbs 脚本文件。这些操作可以通过 MATLAB 或者 Python 完成,本文介绍的 HFSS- MATLAB API 就是通过 MATLAB 编写一套可调用的程序库,通过编写 MATLAB 代码来生成所需的 vbs 脚本。
3.使用 MATLAB 生成 HFSS 脚本:HFSS-MATLAB API 如前所述,使用 MATLAB 编写程序是生成脚本的一个可行的方法,早在 2004 年,名为 Vijay Ramasami (rvc@ku.edu)的前辈发布了(据我所知)一套基于 MATLAB 的 HFSS-MATLAB API,已经实现了通过编写 MATLAB 程 序来生成 vbs 脚本,之后再通过 HFSS 菜单栏中 tool-run script,选择所生成的 vbs 脚本文件执行。 根据我所下载到的版本,Yueliang (yue_liang423@163.com)对该 API 也有贡献(2008 年)。然而,上述 API 实 现功能还不够,并且不支持参数化。毕竟时过境迁,HFSS 的版本也迭代到了 2018,HFSS 本身的功能也十分复杂, 个人难以开发一个完整脚本接口。但是,HFSS 每一步的操作均可以记录到脚本中,你可以将你的操作记录下来然后 程序化。 在笔者的工作学习过程中,从发现这个 API 之后,就一直在使用这套 API,因为工作的原因需要建模或者联合 仿真一些诸如阵列、波导缝隙以及一些特殊类型天线。我在使用中对下载得到的 API 做了较大的改动,主要有以下 几个方面: 1. 添加定义参数、修改参数; 2. 修改 3dModeler 中常见模型建模的函数,使其支持参数化建模; 3. 添加了一些功能。 3.1API 结构 3dmodeler 中是关于建模的函数,例如建立矩形、圆柱体,以及复制、旋转、布尔加减等等有关 HFSS 模型的 操作函数。
3.2API 的使用 下面以 3dmodeler 为例,选择一些函数介绍使用方法。 hfssSphere: Creates the VB Script necessary to create a sphere in HFSS. 函数如下: 其中 fid 是 matlab 新建并编辑的 vbs 文件 ID,可以通过 fopen 命令产生,代表处于编辑中的文件,如下: 可以直接调用,如下: 生成的 vbs 脚本如下: 这一段就是生成一个球体所需要的所有脚本,SphereParametters 段说明了球体的尺寸和位置参数,Attributes
说明球体的一些通用属性,如:名字、颜色、透明度、坐标系以及材料,SolveInside 是 HFSS 中一个选项,ture 表 明在该球体内求解。 这个函数未做过修改,是由原作者 Vijay Ramasami (rvc@ku.edu)贡献,如果你熟悉 matlab 语言,你一定非常容 易理解。在上面建立球体的过程中,所有的参数都是固定的,如果希望定义一个参变量 R1 = 10mm,并将 R1 作为 半径,在新建球体时使用,是不行的。 3.3 参数化 为了参数化建模,添加了两个关键函数: hfssaddVar(fid,VarName,Vaule,Units) hfssChangeVar(fid,VarName,Vaule,Units) 分别实现新建变量和修改已有变量。请注意:这里编写的函数并没有检查变量名命名规则, 如果使用不恰当的变量名,在编译生成 vbs 文件时不会报错,但是 HFSS 执行脚本是会编译出错,例 如不能建立与系统内变量重复的名字等。 函数 hfssaddVar 如下: 做一些简要说明: 输入变量包括文件 ID(fid)、新建的变量名(VarName)、变量值(Vaule)以及单位。这里的变量名是字符变 量,变量值可以是数字,也可以是事先在 MATLAB 里面定义的变量,这两种情况都是建立一个变量并赋给指定数值; 变量值也可以是一个字符串,前提是 HFSS 对于 project 中以及事先定义好的变量名,也就是新建一个变量等于某个 以及存在的变量。如果输入单位 Units 为空[],则意味着无单位变量。
分享到:
收藏