摘要:
HFSS作為高頻結構設計的首選工具和行業標準,能從幾何結構、材料特性到分析、控制及所有后處理進行全參量化設計。可對于仿真設計相關的工程師來說,利用HFSS軟件進行3D可視化建模容易,但是后期的模型維護和傳閱卻難以為繼。
本文使用的電磁仿真軟件為ANSYS Electronics Desktop Version 2017.2.0
0 1HFSS腳本錄制
下圖所示環形器的HFSS建模不難,但是工程師們建模習慣不同,最后各自的仿真模型在進行傳閱時,其可讀性就難免參差不齊。有的喜歡預估好初始值后進行純數字建模,有的喜歡variables和數字混用,即使是有些人采用全參量化建模,由于大家命名習慣大相徑庭,最終拿到別人的仿真文件進行參數微調時,也會對模型的建立邏輯和某些結構對應的變量有所困惑。
特別是在別人已經建立好的模型上進行調試優化時,面對“一磚一瓦”構成的復雜結構時,想通過Delete Last Operation操作來窺視開發者的模型確實比較麻煩。
這里提供一種最簡單的方法:HFSS自帶的Record Script To File功能進行vbs腳本的錄制。可能大家聽說過這個功能,但是在實施過程中遇到一些困難。比如明明錄制好了,再次Run Script進行重構模型為什么報錯呢?
如下圖所示,隨便建立一個文件進行模型的繪制,對其進行vbs腳本錄制:
Run Script后,HFSS軟件提示報錯,很多人第一次使用這個可能都會遇到這種問題。
其實只需要在錄制腳本前,軟件處于空文件狀態(Project Manager下無Project和Design),這樣從零開始錄制的腳本執行起來就不會報錯。
經過上述操作后錄制的vbs代碼如下(可直接復制到txt文件里,將文件類型后綴改為.vbs,在HFSS軟件中的Tool-》Run Script載入執行即可):
‘ ----------------------------------------------’ Script Recorded by ANSYS Electronics Desktop Version 2017.2.0‘ ----------------------------------------------Dim oAnsoftAppDim oDesktopDim oProjectDim oDesignDim oEditorDim oModuleSet oAnsoftApp = CreateObject(“Ansoft.ElectronicsDesktop”)Set oDesktop = oAnsoftApp.GetAppDesktop()oDesktop.RestoreWindowSet oProject = oDesktop.NewProjectoProject.InsertDesign “HFSS”, “HFSSDesign1”, “DrivenModal”,
“”Set oDesign = oProject.SetActiveDesign(“HFSSDesign1”)Set oEditor = oDesign.SetActiveEditor(“3D Modeler”)oEditor.CreateRegularPolyhedron Array(“NAME:PolyhedronParameters”, “XCenter:=”, _ “-0.4mm”, “YCenter:=”, “-0.4mm”, “ZCenter:=”, “0mm”, “XStart:=”, “0.2mm”, “YStart:=”, _ “0.2mm”, “ZStart:=”, “0mm”, “Height:=”, “1.2mm”,
“NumSides:=”, “12”, “WhichAxis:=”, _ “Z”), Array(“NAME:Attributes”, “Name:=”, “RegularPolyhedron1”, “Flags:=”, “”, “Color:=”, _ “(143 175 143)”, “Transparency:=”, 0, “PartCoordinateSystem:=”, “Global”, “UDMId:=”, _ “”, “MaterialValue:=”, “” & Chr(34) & “vacuum” & Chr(34) & “”, “SurfaceMaterialValue:=”, _ “” & Chr(34) & “” & Chr(34) & “”, “SolveInside:=”, true, “IsMaterialEditable:=”, _ true,
“UseMaterialAppearance:=”, false)oEditor.CreateCylinder Array(“NAME:CylinderParameters”,
“XCenter:=”, “0.8mm”, “YCenter:=”, _ “1.8mm”, “ZCenter:=”, “0mm”, “Radius:=”, “0.2mm”, “Height:=”, “1mm”, “WhichAxis:=”, _ “Z”, “NumSides:=”, “0”), Array(“NAME:Attributes”, “Name:=”, “Cylinder1”, “Flags:=”, _ “”,
“Color:=”, “(143 175 143)”, “Transparency:=”, 0, “PartCoordinateSystem:=”,
_ “Global”, “UDMId:=”, “”, “MaterialValue:=”, “” & Chr(34) & “vacuum” & Chr(34) & “”, “SurfaceMaterialValue:=”, _ “” & Chr(34) & “” & Chr(34) & “”,
“SolveInside:=”, true, “IsMaterialEditable:=”, _ true, “UseMaterialAppearance:=”, false)oEditor.CreateBox Array(“NAME:BoxParameters”, “XPosition:=”,
“0.6mm”, “YPosition:=”, _ “-2.6mm”, “ZPosition:=”, “0mm”, “XSize:=”, “0.8mm”, “YSize:=”, “0.4mm”, “ZSize:=”, _ “0.8mm”), Array(“NAME:Attributes”, “Name:=”, “Box1”, “Flags:=”, “”, “Color:=”, _ “(143 175 143)”,
“Transparency:=”, 0, “PartCoordinateSystem:=”, “Global”, “UDMId:=”, _ “”, “MaterialValue:=”, “” & Chr(34) & “vacuum” & Chr(34) & “”,
“SurfaceMaterialValue:=”, _ “” & Chr(34) & “” & Chr(34) & “”, “SolveInside:=”, true, “IsMaterialEditable:=”, _ true, “UseMaterialAppearance:=”, false)oEditor.CreateCone Array(“NAME:ConeParameters”, “XCenter:=”, “2.2mm”, “YCenter:=”, _ “-0.2mm”,
“ZCenter:=”, “0mm”, “WhichAxis:=”, “Z”, “Height:=”, “0.6mm”, “BottomRadius:=”, _ “0.447213595499958mm”, “TopRadius:=”, “0.4mm”), Array(“NAME:Attributes”, “Name:=”, _ “Cone1”,
“Flags:=”, “”, “Color:=”, “(143 175 143)”, “Transparency:=”, 0, “PartCoordinateSystem:=”, _ “Global”, “UDMId:=”, “”, “MaterialValue:=”, “” & Chr(34) & “vacuum” & Chr(34) & “”,
“SurfaceMaterialValue:=”, _ “” & Chr(34) & “” & Chr(34) & “”, “SolveInside:=”, true, “IsMaterialEditable:=”, _ true, “UseMaterialAppearance:=”, false)
除了錄制建模的腳本,我們還可以進行繁瑣的數據處理、導出步驟的錄制,如下面代碼就是為了實現S11和3D方向圖數據的一鍵式導出。
’ ----------------------------------------------‘ Script Recorded by ANSYS Electronics Desktop Version 2017.2.0’
----------------------------------------------Dim oAnsoftAppDim oDesktopDim oProjectDim oDesignDim oEditorDim oModuleSet oAnsoftApp = CreateObject(“Ansoft.ElectronicsDesktop”)Set oDesktop = oAnsoftApp.GetAppDesktop()oDesktop.RestoreWindow‘dipole_simu:項目名稱 Project NameSet oProject = oDesktop.SetActiveProject(“dipole_simu”)’veeDipole_idealFeed1:設計名稱
Design NameSet oDesign = oProject.SetActiveDesign(“veeDipole_idealFeed1”)Set oModule = oDesign.GetModule(“ReportSetup”)‘oModule.ExportToFile “Results下的報告名稱”, “csv保存路徑+csv文件名”oModule.ExportToFile “S11”, “C:/Users/Administrator/Desktop/S11.csv”oModule.ExportToFile “Gain Plot 1”, _ “C:/Users/Administrator/Desktop/Gain Plot 1.csv”
0 2HFSS API腳本化建模
前文已經介紹了如何錄制腳本,便于模型的重建和數據的導出。但是對方收到vbs文件后,要進行模型的修改,沒有注釋其實看起來也是一團糟的。雖然可以通過多次刪除部分vbs代碼一步步回構到自己想要的節點,不過這種方法也是有點麻煩。
幸運的是,matlab調用hfss的這項工程早已在Github上模塊化并開源了。
最后我們可以選擇排的最靠前的yuip/hfss-api,對其zip文件進行下載。
因為都是英文注釋,需要使用者有一點英文閱讀水平,通過examples里面的示例進行各模塊function的功能以及參量傳入、調用方法的熟練使用。
有了matlab和hfssapi后,能做的事情就多了,比如下面這個就利用matlab讀入圖像并保存各像素點rgb數值,然后再利用hfssapi中的hfssRectangle和hfssSetColor函數進行圖像在HFSS中的重繪。
想更深一步了解hfss腳本,可以在ANSYS Electronics Desktop Version 2017.2.0及以上版本中的Help中打開HFSS Scripting這個幫助文檔,一千多頁的內容特別詳實。
想象一下,你給別人一個vbs腳本,就幾kB,然后對方就能復構你的HFSS模型,是不是特別酷炫,還節省占用空間?
原文標題:學個Antenna:HFSS腳本建模入門
文章出處:【微信公眾號:微波射頻網】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
天線
+關注
關注
68文章
3205瀏覽量
140899 -
仿真
+關注
關注
50文章
4099瀏覽量
133718 -
hfss
+關注
關注
32文章
167瀏覽量
50330
原文標題:學個Antenna:HFSS腳本建模入門
文章出處:【微信號:mwrfnet,微信公眾號:微波射頻網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論