利用Python与HFSS联合仿真设计一个微带天线

分享到:

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

1、连接软件

第一步当然要用脚本实现打开软件了。关于这个步骤,HFSS帮助文档中是这样写的

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. <CommandName> <args>

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

屏幕快照 2019-02-15 上午9.16.06

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

实际调用代码:

[oAnsoftApp, oDesktop] = hfss.setup_interface()

2、新建一个project

oProject = hfss.new_project(oDesktop)

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

屏幕快照 2019-02-15 上午9.16.47

3、保存project

养成良好习惯,新建的文件之后先保存,在编写过程中因为没有先保存,生成了一堆临时文件,挺讨厌的。这个传人的参数可以包含路径。

hfss.save_as_project(oDesktop,"E:/dj/test/microstrip_antenna.hfss")

4、新建一个design

这里传人的参数为design的名字,设计模式。

oDesign = hfss.insert_design(oProject, "HFSSDesign1", "DrivenModal")

新建完成后发现和我们手动操作是一样的。

屏幕快照 2019-02-15 上午9.17.18

5、建立模型
教程中首先新建了一个地板,并设置为PEC。这里也分别调用了这两个函数,尺寸可以用字符串输入,很方便灵活,不需要自己转换为一堆小数点的数字。设置PEC表面首先需要获得平面的faceid,再给这个表面设置边界条件。

屏幕快照 2019-02-15 上午9.20.07

由于建模过程比较类似,这里就不逐个给出了,模型建立完毕如下图(包括了设置边界条件和设置端口):

屏幕快照 2019-02-15 上午9.20.40

6、设置求解和扫频

这里求解函数传人了中心频点;扫频传入了扫频方式,起始频率和终止频率,频率间隔。

屏幕快照 2019-02-15 上午9.22.22

7、求解

对于每个setup进行求解。是不是和手动操作是一样的?
hfss.solve(oDesign,setuplist)

屏幕快照 2019-02-15 上午9.22.56

8、退出HFSS

hfss.quit_application(oDesktop)

结束语:今天暂时研究到这儿,还有很多比如查看求解完成后的驻波、增益曲线等等还有设置主从边界啦很多的api还没有编写,有时间会继续完善。

 

继续阅读
利用Python与HFSS联合仿真设计一个微带天线

我们知道HFSS是一款电磁仿真商用软件,用其进行天线的设计十分方便。而该软件也预留了可以运行脚本的接口,使用者可以使用脚本对软件进行控制,实现模型的建立、求解等等。

基于HFSS的射频微波系统设计仿真平台介绍

射频/微波电路是雷达、导航、测控、制导、通信和电子对抗系统的重要组成部分,对系统 的性能和可靠性有重要影响。

如何用Matlab进行频域分析?

Matlab可以说是一个非常有用且功能齐全的工具,在通信、自控、金融等方面有广泛的应用。

ADS和HFSS仿真微带天线案例

在工程上,微带天线采用传输模法设计,在PCB板上实现,如图1(a)所示:L是微带天线长边,电场正弦变化;W是其宽边,天线的辐射槽便是宽边的边沿;ΔL是由边沿电容引起的边沿延伸。

HFSS求解模式,扫频方式等的说明

单频率解决在单个频率点产生适应性或非适应性解,解决频率在Solution Setup对话框中指定,并且通常是执行频率扫描的第一步。适应性解决指的是建立有限元网格并自动精修错误最高的区域——从而提高了随后的适应性解的精度。