HFSS-Matlab-API实践体会与HFSS Scripting快速入门: 本帖最后由 tnt74ljb 于 2012-12-26 13:10 编辑
(1) What is HFSS-Matlab-API? Why HFSS-Matlab-API?
HFSS-Matlab-API是用Matlab生成可供HFSS调用的脚本语言的应用程序接口*.m文件源代码包。HFSS-Matlab-API是一个开源代码API,要求在原有代码基础上进行修改时,不要改动文件里的版权信息,或者由原作者添加你的贡献信息。
坦率说,这个API包不能算是完美的,甚至存在错误,也还没有找到可以持续更新的信息。但是,不能不对发起人Vijay Ramasami,贡献者James L. McDonald、YueLiang等人的贡献表示感谢和敬意!因为他们的名字低调地隐藏在*.m文件注释中,找到他们的名字都不容易,如有遗漏,还望海涵!与人玫瑰手有余香,稍后我用发几个文件的方式,表达对他们的感谢和敬意,同时感谢微网和微友提供了这个API的下载渠道。
至于为什么要用HFSS-Matlab-API?简单说,为了实现功能更强的数据后处理,为了更方便地进行任务批处理,为了借助HFSS完成优化设计。也许还有其他好处……总之,这是一件正确的事情,因为有人贡献了它,还有人关注、利用了它。
(2) 怎样快速入门HFSS Scripting?
从本人作为HFSS Scripting初学者的体会来看,如下三步很重要:
第一步,在HFSS界面中反复尝试运行“Tools”菜单下的第三到第五项,尝试HFSS的各种操作,也就是生成(记录、停止记录)、运行、停止、暂停脚本。这一步更多地像是游戏,完成后可以了解HFSS VBScript脚本的特点、熟悉HFSS相关操作。也许正是HFSS的这一功能使得人们失去了继续开发HFSS-Matlab-API的兴趣和动力,因为很多Scripting的过程变得就像是“搬运”。
第二步,设定一些简单任务,进行一些脚本的修改和在HFSS下运行这些脚本,利用帮助深入了解脚本函数里参数的意义与设置。不要成为一个实用主义者,了解参数的意义并不是一件乏味的事情。
第三步,运行HFSS-Matlab-API中的例子,也就是初步实践了。
对于那些经验丰富的开发人员,假如在这之前对VBScript一无所知,但是如果他们已经熟悉了HFSS,实践过三维建模、仿真条件设置、计算、后处理及结果输出等过程,熟悉了Matlab程序编制和调试,那么按照上述三步进行实践,两天甚至更短的时间以内就会掌握利用Matlab进行HFSS脚本编写的技巧。
(3) 本人的编程实践
按照下面的顺序,本人在API包的examples路径下进行了3个*.m文件(附后)的创建、编制、运行和调试:
dipole_test.m——它用于生成对称振子模型,通过迭代调整对称振子长度,使对称振子谐振于工作频率。仅对HFSS-Matlab-API中的dipole_example进行了少量修改,改变了一些路径、更正了原程序中数据结果不能更新的问题。完成这一步后,我在hfssapi文件夹下建立了hfssPrjForTest子文件夹,把前面生成的tmpDipole.hfss拷贝进来并做了修改,主要有两处:一是将振子长度设置为参数L;二是Insert Far Field Setup。
tmpDipole_Open_Run.m——完成tmpDipole.hfss工程的打开、计算和关闭。
tmpDipole_Open_Run_CreatReport_Iterate.m——完成tmpDipole.hfss工程的打开、计算、报告生成、数据输出、关闭程序,以及通过迭代调整对称振子长度,使对称振子谐振于工作频率。
编程时,没有在容错方面做过多努力,因此至少要建立临时目录e:\tmpHFSS才能成功运行下面的文件,调试时再处理吧!
谢谢
谢谢分享
谢谢
不知道楼主有没有详细的用过,网上上传的那个API很多函数都没有,不能完全实现用MATLAB控制。不知道楼主知道不,有没有计划编出其他没有的函数呀。
看看是什么东东哈。
研究了好久,后来觉得效率太低了,就没再用
看看有没有新鲜的东西
xiaobai613 发表于 2012-12-20 19:49
不知道楼主有没有详细的用过,网上上传的那个API很多函数都没有,不能完全实现用MATLAB控制。不知道楼主知道 ...
对我这个初学者要求太高了。
我现在体会,这个API不必要在三维建模、设置方面有任何的函数,应该把重点放在后处理、优化、参数扫描、调整等方面。它的存在主要是为学术研究的方便,同时也可以为一些工程设计提供工具。随着HFSS不停地完善,此API存在的价值会逐渐下降。但是只要HFSS继续支持VB脚本,它总有作为学术研究工具的价值。
我会编制一些程序,但是现阶段只针对研究的实用需要。如果精力有富余,我会完善、补充一些函数。
看看,也好好的学习学习哦!
其实这个软件最大的作用的我觉还是写阵列 和模型固定的东西 速度都很快的。至于后处理,这个还没研究很多。
谢谢 学习了
天与地好烟的
这个要学习!
xiaobai613 发表于 2012-12-21 22:14
其实这个软件最大的作用的我觉还是写阵列 和模型固定的东西 速度都很快的。至于后处理,这个还没研究很多。
是的。说到后处理,我遇到过三个问题:坐标刻度不准;数据过大、时间过长;异常退出。而这些天来发现这些问题可以利用Scripting避开。我现在想在最优化方法上做一点工作,这方面CST貌似走得比HFSS远。
这类API中的基本函数可包括:打开、运行、保存、关闭工程,创建报告、导出数据,设置参数、参数扫描、优化设计、批处理。这些函数是为深度使用而服务的,所谓深度使用包括:数据后处理、批处理、参数扫描和优化设计。从这个角度讲,HFSS的不断完善一定会使这个API存在的价值不断减弱,最后只剩下作为研究工具而存在。
但是任何商业软件都不可能完美无缺,Scripting为研究人员提供了一种工具,这也是商业软件利用他人智力的一种方法。只要HFSS继续支持Scripting,它的发展会更好更快一些。所以应该说,HFSS在开放外围脚本这方面的做法好,API倡导人的概念和开拓性努力也值得尊敬。
其实这个脚本就算最后被弱化,我想也有在自定义阵列的优势。毕竟画图还是人自己定义的比较灵活。
请问一下楼主,运行那个dipole_test.m文件时,只有图形框出来了,里面根本没有图形这是为什么?
楼主能不能把你正常运行的程序上传一下,例子的程序有问题,就是不知道怎么解决,谢谢了!
tangleilei 发表于 2013-1-5 09:59
楼主能不能把你正常运行的程序上传一下,例子的程序有问题,就是不知道怎么解决,谢谢了!
按“Ctrl + D”或者采用其他方式缩放视图试试?既然看到了“图形框”,为什么不把图截下来,更清楚地说明你遇到的问题?
dipole_test.m就是我正常运行的程序,我下载这个API包的时候原版本是“dipole_example.m”。
微网上有李明洋老师写的两本书《HFSS电磁仿真设计应用详解》、《HFSS天线设计》的电子版,如果你还没有看过,建议你同时也买纸版(不仅是对作者的一种尊敬,也是一种更高效率的学习方法),书写得很好,对刚接触HFSS的人很有帮助。
我说的是matlab的图形框,不是hfss当中的,hfss中运行之后是能出来图形的
E:\tmpHFSS
直接用vb script,ultraledit 高亮显示vba语言。这个api都很多年了,有个初步的了解后,就上原始的vb script
我的图形运行出来了,只是在hfssexecuteScript括号里面加了来年个人true,感谢楼主一直以来的帮助
我的图形运行出来了,只是在hfssexecuteScript括号里面加了两个true,感谢楼主一直以来的帮助
号东西 顶
共同学习,共同进步
顶楼主,正在学习。
写的很好,感谢楼主分享
多谢楼主分享。请教一下,API和VBS应该是不一样吧。VBS怎么用呢,
楼主您好,最近在学习hfss_matlab_api,在运行工具箱中的例子dipole_example.m时,执行到hfssExecuteScript(hfssExePath,ScriptFile,true,true);这句时,一开始是hfss软件打不开,后来将hfssExecuteScript函数做了修改之后只能将hfss与脚本文件分别打开,而不能打开hfss后调用脚本文件进行3D建模和仿真。。。冒昧请问一下楼主当时是怎么解决的?先谢谢楼主了!
谢谢楼主分享
楼主,请教一个问题,在矩形贴片天线仿真时,如何用hfssapi实现对substrate assign PE条件呢
谢谢,研究一下,不知是否支持高版本的hfss
好像看看
需要好好了解
谢谢作者的共享,非常有用
谢谢楼主,万分感谢