我們知道HFSS是一款電磁仿真商用軟件,用其進行天線的設(shè)計十分方便。而該軟件也預(yù)留了可以運行腳本的接口,使用者可以使用腳本對軟件進行控制,實現(xiàn)模型的建立、求解等等。由于后期可能會用到聯(lián)合仿真,而大多數(shù)聯(lián)合仿真的腳本都是使用的Matlab進行編程,網(wǎng)上也有不少現(xiàn)成的api,因為對python比較熟悉,且python除了數(shù)值計算其他的功能也相當(dāng)強大,并且免費開源,于是決定用python寫一個建模的腳本(其實是我matlab學(xué)得太爛了),折騰了兩天,終于把微帶天線的模型建立與仿真的過程搞定了,當(dāng)然是基于有Matthew Radway這位大牛的基礎(chǔ)上。這個例子也是接觸HFSS時手繪天線做的第一個例子,現(xiàn)在用代碼做一遍,也是很有意思的事情。下面分享給大家。
1、連接軟件
第一步當(dāng)然要用腳本實現(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.
Example:
Set oDesktop = oAnsoftApp.GetAppDesktop()
給出了函數(shù)名,參數(shù)值,返回值,以及一個實例(這個幫助文檔寫得很不錯,但是后面閱讀過程中也發(fā)現(xiàn)了一些小錯誤,當(dāng)然很可能是因為我用的是daoban)。這個返回值oAnsoftApp就是后面進行一系列操作要使用的對象,所有的操作的形式都是下面這樣:
oAnsoftApp.
python中編寫了一個接口函數(shù)把這個函數(shù)封裝在里面。代碼如下(不是我寫的):
作者用了win32com.client.Dispatch()這個函數(shù),這個函數(shù)是專門用來連接接口的,返回值中的那個oDesktop就是生成的對象。
實際調(diào)用代碼:
[oAnsoftApp, oDesktop] = hfss.setup_interface()
2、新建一個project
oProject = hfss.new_project(oDesktop)
這里就是用了上面生成的oDesktop對象新建了一個object,具體查閱help文檔和編寫api的工作和上一步一致,并且平時使用時直接使用接口調(diào)用即可。注意,下面進行的操作都在這個project中,所以下面操作的對象就是oProject了。這個時候HFSS里應(yīng)該長這樣了。
3、保存project
養(yǎng)成良好習(xí)慣,新建的文件之后先保存,在編寫過程中因為沒有先保存,生成了一堆臨時文件,挺討厭的。這個傳人的參數(shù)可以包含路徑。
hfss.save_as_project(oDesktop,"E:/dj/test/microstrip_antenna.hfss")
4、新建一個design
這里傳人的參數(shù)為design的名字,設(shè)計模式。
oDesign = hfss.insert_design(oProject, "HFSSDesign1", "DrivenModal")
新建完成后發(fā)現(xiàn)和我們手動操作是一樣的。
5、建立模型
教程中首先新建了一個地板,并設(shè)置為PEC。這里也分別調(diào)用了這兩個函數(shù),尺寸可以用字符串輸入,很方便靈活,不需要自己轉(zhuǎn)換為一堆小數(shù)點的數(shù)字。設(shè)置PEC表面首先需要獲得平面的faceid,再給這個表面設(shè)置邊界條件。
由于建模過程比較類似,這里就不逐個給出了,模型建立完畢如下圖(包括了設(shè)置邊界條件和設(shè)置端口):
6、設(shè)置求解和掃頻
這里求解函數(shù)傳人了中心頻點;掃頻傳入了掃頻方式,起始頻率和終止頻率,頻率間隔。
7、求解
對于每個setup進行求解。是不是和手動操作是一樣的?
hfss.solve(oDesign,setuplist)
8、退出HFSS
hfss.quit_application(oDesktop)
結(jié)束語:今天暫時研究到這兒,還有很多比如查看求解完成后的駐波、增益曲線等等還有設(shè)置主從邊界啦很多的api還沒有編寫,有時間會繼續(xù)完善。
做了個有趣的小玩意兒,分享給大家~
完整主函數(shù)源碼(api部分還不是很完整,哦,相當(dāng)不完整,就先不給出了):
說明:本文中的微帶線設(shè)計案例來自李明洋老師的《HFSS電磁仿真設(shè)計應(yīng)用詳解》一書的第10章----HFSS微帶天線設(shè)計實例。
部分api設(shè)計參考使用了Matthew Radway在github中分享的Interact with ANSYS HFSS via the HFSS Windows COM API。
-
電磁
+關(guān)注
關(guān)注
15文章
1073瀏覽量
51673 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4277瀏覽量
62323 -
hfss
+關(guān)注
關(guān)注
32文章
167瀏覽量
50223
原文標(biāo)題:利用Python與HFSS聯(lián)合仿真設(shè)計一個微帶天線(附詳細代碼)
文章出處:【微信號:mwrfnet,微信公眾號:微波射頻網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論