对数周期天线hfss建模_利用Python与HFSS联合仿真设计微带天线(全文共附260多行代码)...

本文转自原创:努力小菜籽

文末有彩蛋代码,原文链接,以及加入HFSS官方共建微信群(最后57个名额满500人)的方法。

部分api设计参考使用了Matthew Radway在github中分享的Interact with ANSYS HFSS via the HFSS Windows COM API。

地址:http://mradway.github.io/hycohanz/

我们知道HFSS是一款电磁仿真商用软件,用其进行天线的设计十分方便。而该软件也预留了可以运行脚本的接口,使用者可以使用脚本对软件进行控制,实现模型的建立、求解等等。由于后期可能会用到联合仿真,而大多数联合仿真的脚本都是使用的Matlab进行编程,网上也有不少现成的api,因为对python比较熟悉,且python除了数值计算其他的功能也相当强大,并且免费开源,于是决定用python写一个建模的脚本(其实是我matlab学得太烂了),折腾了两天,终于把微带天线的模型建立与仿真的过程搞定了,当然是基于有Matthew Radway这位大牛的基础上。这个例子也是接触HFSS时手绘天线做的第一个例子,现在用代码做一遍,也是很有意思的事情。下面分享给大家。

1、连接软件

GetAppDesktop

Use:     GetAppDesktopis a function of    oAnsoftApp. This function does not take an input and it returns an object. The object is assigned to the variable   oDesktop.

Syntax:              GetAppDesktop()

Return Value:    Object.

Parameters:      None

Example:     

Set oDesktop = oAnsoftApp.GetAppDesktop()

给出了函数名,参数值,返回值,以及一个实例(这个帮助文档写得很不错,但是后面阅读过程中也发现了一些小错误,当然很可能是因为我用的是daoban)。这个返回值oAnsoftApp就是后面进行一系列操作要使用的对象,所有的操作的形式都是下面这样:oAnsoftApp.

python中编写了一个接口函数把这个函数封装在里面。代码如下:

  1. from __future__ import division, print_function, unicode_literals, absolute_import

  2. import win32com.client

  3. def setup_interface():

  4.     """

  5.     Set up the COM interface to the running HFSS process.

  6.     Returns

  7.     -------

  8.     oAnsoftApp : pywin32 COMObject

  9.         Handle to the HFSS application interface

  10.     oDesktop : pywin32 COMObject

  11.         Handle to the HFSS desktop interface

  12.     Examples

  13.     --------

  14.     >>> import Hyphasis as hfss

  15.     >>> [oAnsoftApp, oDesktop] = hfss.setup_interface()

  16.     """

  17.     # I'm still looking for a better way to do this.  This attaches to an 

  18.     # existing HFSS process instead of creating a new one.  I would highly 

  19.     # prefer that a new process is created.  Apparently 

  20.     # win32com.client.DispatchEx() doesn't work here either.

  21.     oAnsoftApp = win32com.client.Dispatch('AnsoftHfss.HfssScriptInterface')

  22.     oDesktop = oAnsoftApp.GetAppDesktop()

  23.     return [oAnsoftApp, oDesktop]

作者用了win32com.client.Dispatch()这个函数,这个函数是专门用来连接接口的,返回值中的那个oDesktop就是生成的对象。

实际调用代码:[oAnsoftApp, oDesktop] = hfss.setup_interface()

2、新建一个project

oProject = hfss.new_project(oDesktop)

这里就是用了上面生成的oDesktop对象新建了一个object,具体查阅help文档和编写api的工作和上一步一致,并且平时使用时直接使用接口调用即可。注意,下面进行的操作都在这个project中,所以下面操作的对象就是oProject了。这个时候HFSS里应该长这样了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值