学个Antenna是以天线仿真和调试为主,理论原理为辅的干货天线技术专栏,包括天线入门知识以及各类天线的原理简介、仿真软件建模、设计、调试过程及思路。如有想看到的内容或技术问题,可以在文尾写下留言。
摘要:
学个Antenna:HFSS脚本建模入门一文,对HFSS脚本建模进行了入门级的介绍,不过要装上日趋臃肿、动辄十几G的MATLAB软件。幸运的是,HFSS支持VBScript进行二次开发,因此在Excel中对HFSS进行调用不是梦!
本文使用的软件为AnsysEM 18.2和Excel 2013
Excel vba
Microsoft Visual Basic for application,简称为VBA,是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。那这个和HFSS软件有啥联系么?
在HFSS软件中顺着Help文件找到HFSS Scripting(文末有HFSS官方HFSS Scripting Guide下载链接),打开该PDF,在Introduction to VBScript章节,我们可以获得以下信息。
ANSYS Electronics Desktop uses theMicrosoft® Visual Basic® Scripting Edition (VBScript) scripting language to recordmacros. VBScript is based on theMicrosoft Visual Basic programming language
ANSYS Electronics Desktop 使用 Microsoft® Visual Basic® Scripting Edition (VBScript) 脚本语言来记录宏。 VBScript 基于 Microsoft Visual Basic 编程语言
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 fromwithin the ANSYS Electronics Desktop interface. After recording the script fromwithin ANSYS Electronics Desktop, you can thenmodify it if necessary using a text editor.
您可以使用任何文本编辑器编写脚本,也可以从 ANSYS Electronics Desktop 界面中记录脚本。 在 ANSYS Electronics Desktop 中记录脚本后,如有必要,您可以使用文本编辑器对其进行修改。
由于Excel内置了VBA代码编辑器,因此理论上可以用其进行调用HFSS进行建模。
新建一个excel文件,另存为.xlsm格式(扩展名xlsm在打开excel文件时,会自动执行宏代码)。如下图所示,即可打开VBA编辑器。
一个简单的测试代码如下:
1 Sub Hello() |
Excel调用HFSS软件
当上面的步骤都顺畅无阻后,我们可以进入下一环节,即在Excel vba编辑器里面编写代码调用HFSS软件。首先我们要打开HFSS软件,并保证Project Manager下为空,防止后续出现报错现象。
下图是对ANSYS Electronics脚本的各模块概述
1 'oAnsoftApp为VBScript提供了访问Ansys.ElectronicsDesktop的句柄 |
1 'oDesktop用于执行桌面级操作,包括项目管理。 |
1 'Project对象对应于产品中打开的一个项目。它用于操纵项目及其数据。 |
1 'oDesign对象对应于项目中已存在的一个设计实例。该对象用于操纵设计及其数据。 |
1 'oEditor 对象对应于已存在的一个编辑器,例如3D建模器、布局或原理图编辑器。 |
1 'oModule 对象对应设计中的一个模块。Modules 用于处理一组相关功能。 |
当然,看完上面的内容可能会云里雾里,现在直观地解释下:
首先你要创建一个Ansoft.ElectronicsDesktop对象,并获取oDesktop用于执行桌面级操作。这就是你手动打开HFSS软件并获得该软件控制权的那一步
接着oProject和oDesign就是模拟你新建Project和Design,获得其句柄
然后oEditor和oModule主要是获取我们建模、设置边界条件、求解器、建立报告等操作的句柄纸上得来终觉浅,我们可以打开HFSS的脚本录制功能,在录制的代码中来学习:
1 ' ---------------------------------------------- |
从上面的代码中,我们可以很直观地感受到:先进行oAnsoftApp,oDesktop,oProject,oDesign,oEditor,oModule五要素的变量定义;接着对oAnsoftApp,oDesktop配置句柄;然后利用oProject.InsertDesign插入一个"HFSSDesign1"的设计文件。
剩下的oEditor,oModule我们可以根据上面的编程逻辑进行句柄的设置。
1 Set oDesign = oProject.SetActiveDesign("HFSSDesign1") |
到此为止,我们就将调用HFSS需要的句柄全部掌握在手里了,后续在Excel中调用HFSS软件指日可待。
在官方HFSS Scripting Guide的P51:Sample HFSS Script里有一段比较详细的英文教程,建议大家先观摩下。
简单实例演示
以上内容都读懂后,剩下的就是自己录制脚本,分析代码,学习修改代码,封装成function进行调用。
这里给出本人部署好的一段代码,可直接粘贴到Excel vba编辑器进行复现:
1 Sub Training1() |
以上代码的编写还是要有一定vba编程的语法基础,难点在于根据录制的脚本代码找规律,将其封装为普适的Function,便于开发者自行调用。
PDF文件和仿真文件可通过原文底部获取~
原文链接:Excel也能调用HFSS? - RFASK射频问问
-END-
作者:微波天线工程师
应读者朋友们对这个系列文章的喜爱,也为了能够让老师更系统更全面地介绍MATLAB-HFSS-API相关知识,现推出该系列课程,共25课时,欢迎大家加入课程学习!https://www.rfask.net/kc/v/41.html
关于RFASK射频问问
射频问问 (http://RFASK.NET) 是在"微波射频网 (http://MWRF.NET)”系列原创技术专栏基础上升级打造的技术问答学习平台,主要围绕射频芯片、微波电路、天线、雷达、卫星等相关技术领域,致力于为无线通信、微波射频、天线、雷达等行业的工程师,提供优质、原创的技术问答、专栏文章、射频课程等学习内容。更多请访问:http://www.rfask.net