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

學(xué)個(gè)Antenna:HFSS腳本建模入門(mén)

2022-01-10 來(lái)源:微波射頻網(wǎng) 作者:94巨蟹座少年 字號(hào):

學(xué)個(gè)Antenna是以天線仿真和調(diào)試為主,理論原理為輔的干貨天線技術(shù)專欄,包括天線入門(mén)知識(shí)以及各類天線的原理簡(jiǎn)介、仿真軟件建模、設(shè)計(jì)、調(diào)試過(guò)程及思路。如有想看到的內(nèi)容或技術(shù)問(wèn)題,可以在文尾寫(xiě)下留言。

摘要:

HFSS作為高頻結(jié)構(gòu)設(shè)計(jì)的首選工具和行業(yè)標(biāo)準(zhǔn),能從幾何結(jié)構(gòu)、材料特性到分析、控制及所有后處理進(jìn)行全參量化設(shè)計(jì)。可對(duì)于仿真設(shè)計(jì)相關(guān)的工程師來(lái)說(shuō),利用HFSS軟件進(jìn)行3D可視化建模容易,但是后期的模型維護(hù)和傳閱卻難以為繼。

本文使用的電磁仿真軟件為ANSYS Electronics Desktop Version 2017.2.0

HFSS腳本錄制

下圖所示環(huán)形器的HFSS建模不難,但是工程師們建模習(xí)慣不同,最后各自的仿真模型在進(jìn)行傳閱時(shí),其可讀性就難免參差不齊。有的喜歡預(yù)估好初始值后進(jìn)行純數(shù)字建模,有的喜歡variables和數(shù)字混用,即使是有些人采用全參量化建模,由于大家命名習(xí)慣大相徑庭,最終拿到別人的仿真文件進(jìn)行參數(shù)微調(diào)時(shí),也會(huì)對(duì)模型的建立邏輯和某些結(jié)構(gòu)對(duì)應(yīng)的變量有所困惑。

特別是在別人已經(jīng)建立好的模型上進(jìn)行調(diào)試優(yōu)化時(shí),面對(duì)“一磚一瓦”構(gòu)成的復(fù)雜結(jié)構(gòu)時(shí),想通過(guò)Delete Last Operation操作來(lái)窺視開(kāi)發(fā)者的模型確實(shí)比較麻煩。

這里提供一種最簡(jiǎn)單的方法:HFSS自帶的Record Script To File功能進(jìn)行vbs腳本的錄制。可能大家聽(tīng)說(shuō)過(guò)這個(gè)功能,但是在實(shí)施過(guò)程中遇到一些困難。比如明明錄制好了,再次Run Script進(jìn)行重構(gòu)模型為什么報(bào)錯(cuò)呢?

如下圖所示,隨便建立一個(gè)文件進(jìn)行模型的繪制,對(duì)其進(jìn)行vbs腳本錄制:

 

Run Script后,HFSS軟件提示報(bào)錯(cuò),很多人第一次使用這個(gè)可能都會(huì)遇到這種問(wèn)題。

其實(shí)只需要在錄制腳本前,軟件處于空文件狀態(tài)(Project Manager下無(wú)Project和Design),這樣從零開(kāi)始錄制的腳本執(zhí)行起來(lái)就不會(huì)報(bào)錯(cuò)。

 

經(jīng)過(guò)上述操作后錄制的vbs代碼如下(可直接復(fù)制到txt文件里,將文件類型后綴改為.vbs,在HFSS軟件中的Tool->Run Script載入執(zhí)行即可):

1    ' ----------------------------------------------

2   ' Script Recorded by ANSYS Electronics Desktop Version 2017.2.0

3   ' ----------------------------------------------

4   Dim oAnsoftApp

5   Dim oDesktop

6   Dim oProject

7   Dim oDesign

8   Dim oEditor

9   Dim oModule

10  Set oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")

11  Set oDesktop = oAnsoftApp.GetAppDesktop()

12  oDesktop.RestoreWindow

13  Set oProject = oDesktop.NewProject

14  oProject.InsertDesign "HFSS", "HFSSDesign1", "DrivenModal", ""

15  Set oDesign = oProject.SetActiveDesign("HFSSDesign1")

16  Set oEditor = oDesign.SetActiveEditor("3D Modeler")

17 oEditor.CreateRegularPolyhedron Array("NAME:PolyhedronParameters", "XCenter:=",  _ 

18   "-0.4mm", "YCenter:=", "-0.4mm", "ZCenter:=", "0mm", "XStart:=", "0.2mm", "YStart:=",  _ 

19  "0.2mm", "ZStart:=", "0mm", "Height:=", "1.2mm", "NumSides:=", "12", "WhichAxis:=",  _ 

20  "Z"), Array("NAME:Attributes", "Name:=", "RegularPolyhedron1", "Flags:=", "", "Color:=",  _ 

21  "(143 175 143)", "Transparency:=", 0, "PartCoordinateSystem:=", "Global", "UDMId:=",  _ 

22 "", "MaterialValue:=", "" & Chr(34) & "vacuum" & Chr(34) & "", "SurfaceMaterialValue:=",  _ 

23  "" & Chr(34) & "" & Chr(34) & "", "SolveInside:=", true, "IsMaterialEditable:=",  _ 

24   true, "UseMaterialAppearance:=", false)

25 oEditor.CreateCylinder Array("NAME:CylinderParameters", "XCenter:=", "0.8mm", "YCenter:=",  _ 

26  "1.8mm", "ZCenter:=", "0mm", "Radius:=", "0.2mm", "Height:=", "1mm", "WhichAxis:=",  _ 

27 "Z", "NumSides:=", "0"), Array("NAME:Attributes", "Name:=", "Cylinder1", "Flags:=",  _ 

28 "", "Color:=", "(143 175 143)", "Transparency:=", 0, "PartCoordinateSystem:=",  _ 

29  "Global", "UDMId:=", "", "MaterialValue:=", "" & Chr(34) & "vacuum" & Chr(34) & "", "SurfaceMaterialValue:=",  _ 

30  "" & Chr(34) & "" & Chr(34) & "", "SolveInside:=", true, "IsMaterialEditable:=",  _ 

31 true, "UseMaterialAppearance:=", false)

32  oEditor.CreateBox Array("NAME:BoxParameters", "XPosition:=", "0.6mm", "YPosition:=",  _ 

33  "-2.6mm", "ZPosition:=", "0mm", "XSize:=", "0.8mm", "YSize:=", "0.4mm", "ZSize:=",  _ 

34 "0.8mm"), Array("NAME:Attributes", "Name:=", "Box1", "Flags:=", "", "Color:=",  _ 

35  "(143 175 143)", "Transparency:=", 0, "PartCoordinateSystem:=", "Global", "UDMId:=",  _ 

36  "", "MaterialValue:=", "" & Chr(34) & "vacuum" & Chr(34) & "", "SurfaceMaterialValue:=",  _ 

37  "" & Chr(34) & "" & Chr(34) & "", "SolveInside:=", true, "IsMaterialEditable:=",  _ 

38    true, "UseMaterialAppearance:=", false)

39  oEditor.CreateCone Array("NAME:ConeParameters", "XCenter:=", "2.2mm", "YCenter:=",  _ 

40  "-0.2mm", "ZCenter:=", "0mm", "WhichAxis:=", "Z", "Height:=", "0.6mm", "BottomRadius:=",  _  41"0.447213595499958mm", "TopRadius:=", "0.4mm"), Array("NAME:Attributes", "Name:=",  _ 

42 "Cone1", "Flags:=", "", "Color:=", "(143 175 143)", "Transparency:=", 0, "PartCoordinateSystem:=",  _ 

43 "Global", "UDMId:=", "", "MaterialValue:=", "" & Chr(34) & "vacuum" & Chr(34) & "", "SurfaceMaterialValue:=",  _ 

44  "" & Chr(34) & "" & Chr(34) & "", "SolveInside:=", true, "IsMaterialEditable:=",  _ 

45  true, "UseMaterialAppearance:=", false)

除了錄制建模的腳本,我們還可以進(jìn)行繁瑣的數(shù)據(jù)處理、導(dǎo)出步驟的錄制,如下面代碼就是為了實(shí)現(xiàn)S11和3D方向圖數(shù)據(jù)的一鍵式導(dǎo)出。

1  ' ----------------------------------------------'

Script Recorded by ANSYS Electronics Desktop Version 2017.2.0

3  ' ----------------------------------------------

Dim oAnsoftApp

Dim oDesktop

Dim oProject

7  Dim oDesign

8  Dim oEditor

9  Dim oModule

10 Set oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")

11 Set oDesktop = oAnsoftApp.GetAppDesktop()

12 oDesktop.RestoreWindow

13 'dipole_simu:項(xiàng)目名稱 Project Name

14 Set oProject = oDesktop.SetActiveProject("dipole_simu")

15 'veeDipole_idealFeed1:設(shè)計(jì)名稱 Design Name

16 Set oDesign = oProject.SetActiveDesign("veeDipole_idealFeed1")

17 Set oModule = oDesign.GetModule("ReportSetup")

18 'oModule.ExportToFile "Results下的報(bào)告名稱", "csv保存路徑+csv文件名"

19 oModule.ExportToFile "S11", "C:/Users/Administrator/Desktop/S11.csv"

20 oModule.ExportToFile "Gain Plot 1",  _

21  "C:/Users/Administrator/Desktop/Gain Plot 1.csv"

22

HFSS API腳本化建模
前文已經(jīng)介紹了如何錄制腳本,便于模型的重建和數(shù)據(jù)的導(dǎo)出。但是對(duì)方收到vbs文件后,要進(jìn)行模型的修改,沒(méi)有注釋其實(shí)看起來(lái)也是一團(tuán)糟的。雖然可以通過(guò)多次刪除部分vbs代碼一步步回構(gòu)到自己想要的節(jié)點(diǎn),不過(guò)這種方法也是有點(diǎn)麻煩。

幸運(yùn)的是,matlab調(diào)用hfss的這項(xiàng)工程早已在Github上模塊化并開(kāi)源了。

由于Github在境內(nèi)大概率訪問(wèn)不了,這里貼了一條鏡像的鏈接:

https://github.com.cnpmjs.org/yuip/hfss-api

如果遇到下面問(wèn)題,多刷新幾次就好了:

 最后我們可以選擇排的最靠前的yuip/hfss-api,對(duì)其zip文件進(jìn)行下載。

 

 

因?yàn)槎际怯⑽淖⑨專枰褂谜哂幸稽c(diǎn)英文閱讀水平,通過(guò)examples里面的示例進(jìn)行各模塊function的功能以及參量傳入、調(diào)用方法的熟練使用。

有了matlab和hfssapi后,能做的事情就多了,比如下面這個(gè)就利用matlab讀入圖像并保存各像素點(diǎn)rgb數(shù)值,然后再利用hfssapi中的hfssRectangle和hfssSetColor函數(shù)進(jìn)行圖像在HFSS中的重繪。

想更深一步了解hfss腳本,可以在ANSYS Electronics Desktop Version 2017.2.0及以上版本中的Help中打開(kāi)HFSS Scripting這個(gè)幫助文檔,一千多頁(yè)的內(nèi)容特別詳實(shí)。

 

想象一下,你給別人一個(gè)vbs腳本,就幾kB,然后對(duì)方就能復(fù)構(gòu)你的HFSS模型,是不是特別酷炫,還節(jié)省占用空間?

以上便是要給大家分享的內(nèi)容,希望對(duì)大家有所幫助~~

大家持續(xù)關(guān)注“微波射頻網(wǎng)”,后續(xù)精彩不斷~
本期原創(chuàng)工程師:94巨蟹座少年

本文為MWRF.NET原創(chuàng)文章,未經(jīng)允許不得轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)聯(lián)系market#mwrf.net(#換成@)

主題閱讀:HFSS  API腳本化建模    腳本錄制
主站蜘蛛池模板: 安图县| 谷城县| 鄂伦春自治旗| 旬阳县| 定陶县| 平定县| 泊头市| 报价| 博爱县| 鹤岗市| 苍梧县| 永新县| 灵台县| 秦皇岛市| 乌恰县| 安庆市| 九龙坡区| 昌黎县| 鹿邑县| 长海县| 建宁县| 桂阳县| 元阳县| 武威市| 周至县| 吴桥县| 图片| 喀喇| 搜索| 龙里县| 汝南县| 清流县| 建平县| 柳河县| 鄯善县| 梧州市| 化德县| 灵山县| 南投市| 鄢陵县| 永胜县|