国产专区欧美精品,911国产精品,国产精品人人爽人人做我的可爱,欧美午夜影院一区

利用Python與HFSS聯(lián)合仿真設(shè)計(jì)一個微帶天線

2019-01-13 來源:微波射頻網(wǎng) 作者:CSDN 努力小菜籽 字號:

我們知道HFSS是一款電磁仿真商用軟件,用其進(jìn)行天線的設(shè)計(jì)十分方便。而該軟件也預(yù)留了可以運(yùn)行腳本的接口,使用者可以使用腳本對軟件進(jìn)行控制,實(shí)現(xiàn)模型的建立、求解等等。由于后期可能會用到聯(lián)合仿真,而大多數(shù)聯(lián)合仿真的腳本都是使用的Matlab進(jìn)行編程,網(wǎng)上也有不少現(xiàn)成的api,因?yàn)閷ython比較熟悉,且python除了數(shù)值計(jì)算其他的功能也相當(dāng)強(qiáng)大,并且免費(fèi)開源,于是決定用python寫一個建模的腳本(其實(shí)是我matlab學(xué)得太爛了),折騰了兩天,終于把微帶天線的模型建立與仿真的過程搞定了,當(dāng)然是基于有Matthew Radway這位大牛的基礎(chǔ)上。這個例子也是接觸HFSS時手繪天線做的第一個例子,現(xiàn)在用代碼做一遍,也是很有意思的事情。下面分享給大家。

1、連接軟件

第一步當(dāng)然要用腳本實(shí)現(xiàn)打開軟件了。關(guān)于這個步驟,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()

給出了函數(shù)名,參數(shù)值,返回值,以及一個實(shí)例(這個幫助文檔寫得很不錯,但是后面閱讀過程中也發(fā)現(xiàn)了一些小錯誤,當(dāng)然很可能是因?yàn)槲矣玫氖莇aoban)。這個返回值oAnsoftApp就是后面進(jìn)行一系列操作要使用的對象,所有的操作的形式都是下面這樣:

oAnsoftApp. <CommandName> <args>

python中編寫了一個接口函數(shù)把這個函數(shù)封裝在里面。代碼如下(不是我寫的):

http://www.my-1688.com/uploadfile/2019/0113/20190113120702494.png

作者用了win32com.client.Dispatch()這個函數(shù),這個函數(shù)是專門用來連接接口的,返回值中的那個oDesktop就是生成的對象。

實(shí)際調(diào)用代碼:

[oAnsoftApp, oDesktop] = hfss.setup_interface()

2、新建一個project

oProject = hfss.new_project(oDesktop)

這里就是用了上面生成的oDesktop對象新建了一個object,具體查閱help文檔和編寫api的工作和上一步一致,并且平時使用時直接使用接口調(diào)用即可。注意,下面進(jìn)行的操作都在這個project中,所以下面操作的對象就是oProject了。這個時候HFSS里應(yīng)該長這樣了。

3、保存project

養(yǎng)成良好習(xí)慣,新建的文件之后先保存,在編寫過程中因?yàn)闆]有先保存,生成了一堆臨時文件,挺討厭的。這個傳人的參數(shù)可以包含路徑。

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

4、新建一個design

這里傳人的參數(shù)為design的名字,設(shè)計(jì)模式。

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

新建完成后發(fā)現(xiàn)和我們手動操作是一樣的。

5、建立模型

教程中首先新建了一個地板,并設(shè)置為PEC。這里也分別調(diào)用了這兩個函數(shù),尺寸可以用字符串輸入,很方便靈活,不需要自己轉(zhuǎn)換為一堆小數(shù)點(diǎn)的數(shù)字。設(shè)置PEC表面首先需要獲得平面的faceid,再給這個表面設(shè)置邊界條件。

由于建模過程比較類似,這里就不逐個給出了,模型建立完畢如下圖(包括了設(shè)置邊界條件和設(shè)置端口):

6、設(shè)置求解和掃頻

這里求解函數(shù)傳人了中心頻點(diǎn);掃頻傳入了掃頻方式,起始頻率和終止頻率,頻率間隔。

7、求解

對于每個setup進(jìn)行求解。是不是和手動操作是一樣的?

hfss.solve(oDesign,setuplist)

8、退出HFSS

hfss.quit_application(oDesktop)

結(jié)束語:今天暫時研究到這兒,還有很多比如查看求解完成后的駐波、增益曲線等等還有設(shè)置主從邊界啦很多的api還沒有編寫,有時間會繼續(xù)完善。

做了個有趣的小玩意兒,分享給大家~

完整主函數(shù)源碼(api部分還不是很完整,哦,相當(dāng)不完整,就先不給出了):

說明:本文中的微帶線設(shè)計(jì)案例來自李明洋老師的《HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解》一書的第10章----HFSS微帶天線設(shè)計(jì)實(shí)例。

部分api設(shè)計(jì)參考使用了Matthew Radway在github中分享的Interact with ANSYS HFSS via the HFSS Windows COM API。地址:http://mradway.github.io/hycohanz/
主題閱讀:微帶天線  Python  HFSS
主站蜘蛛池模板: 绩溪县| 乐平市| 腾冲县| 恩施市| 富源县| 开远市| 汝州市| 龙江县| 九寨沟县| 浑源县| 凌云县| 高阳县| 鄢陵县| 齐齐哈尔市| 荃湾区| 什邡市| 保亭| 抚州市| 临高县| 青龙| 浦东新区| 宁德市| 凌云县| 叙永县| 陆丰市| 沐川县| 当阳市| 浦北县| 巩义市| 临澧县| 德清县| 高淳县| 吉木萨尔县| 三门县| 滦平县| 普宁市| 宁化县| 阜康市| 郓城县| 古交市| 西充县|