學個Antenna是以天線仿真和調試為主,理論原理為輔的干貨天線技術專欄,包括天線入門知識以及各類天線的原理簡介、仿真軟件建模、設計、調試過程及思路。如有想看到的內容或技術問題,可以在文尾寫下留言。
摘要:
上節HFSS-API入門第一彈:畫個Box主要是分享了調用改良hfssapi新建工程和設計文件并插入變量畫一個參數化的Box,本期推文將推送常用的基本形狀和布爾操作函數。歡迎小伙伴們閱讀、分享、再看,轉發給更多有需要的人!喜歡的小伙伴可贊賞下作者哦。
本文使用的軟件為MATLAB2019a和AnsysEM 18.2
簡單介紹
常規模型大家只需要用到畫方塊、柱子、矩形片、圓形,并對其進行Unite和Subtract之類的布爾操作即可。上次推文已經介紹了hfssBox的函數用法,下節將先對hfssCylinder,hfssRectangle,hfssCircle進行函數使用講解,然后介紹hfssUnite和hfssSubtract的加減操作函數。
拉到文末有下載改良后的hfssapi,建議收藏鏈接,后續新出的函數會不定期在該文件夾內更新。文件也不大,幾百kB,每次有更新重新下載覆蓋即可。
- 先提醒下matlab打開有中文注釋代碼亂碼問題,按下圖所示將Editor的Font改為Monospaced即可。
- 對于設置Color,有的人想花里胡哨地配色的話,可以進行RGB三色的顏色查詢:https://www.sojson.com/rgb.html。沒有絕對顏感的人不要輕易嘗試,否則配出來會是下圖這種樣子。可能你覺得很絢麗,但是真的很鄉村風啊!!!本人還是習慣用上次推文的三種配色,極簡最好。
函數使用教程
接下來先介紹三個建模常用的函數:hfssCylinder,hfssRectangle,hfssCircle。
1 % hfssCylinder(fid, CylinderName, Axis, Center, Radius, Height, Units, Color, Material, Transparency, flag) 2 % CylinderName:圓柱的名字;Axis:圓柱建模的中心軸向('X','Y'或'Z',大小寫均可);Center:圓柱底面的圓心坐標; 3 % Radius:圓柱底面的圓半徑;Height:圓柱的高度;Units:單位 4 % Color:圓柱的顏色(RGB);Material:材料名字(不要隨便自己整個名字,必須是HFSS材料庫里的名字); 5 % Transparency:顯示的透明度;flag:值為1時Center, Radius, Height只支持數字,值為2時value支持元胞數組表達式 6 % 實例: 7 % hfssCylinder(fid, 'Cy1', 'Z', {'Cy_dx', 'Cy_dy', 'Cy_dz'}, 'Cy_R','Cy_H', 'mm',... 8 % "(132 132 193)", "FR4_epoxy", 0, 2); 9 % hfssCylinder(fid, 'Cy1', 'Z', [0,0,0], 0.5,2, 'mm',... 10 % "(132 132 193)", "FR4_epoxy", 0, 1); |
1 % hfssRectangle(fid, RectangleName, Axis, Start, Width, Length, Units, Color, Transparency,flag) 2 % RectangleName:矩形片的名字;Axis:矩形片的法向軸向('X','Y'或'Z',大小寫均可); 3 % Start:矩形片的起始基點;% Width:矩形片的寬;Length:矩形片的長;Units:單位 4 % Color:矩形片的顏色(RGB);% Transparency:顯示的透明度; 5 % flag:值為1時Start, Width, Length只支持數字,值為2時value支持元胞數組表達式 6 % HFSS中的Rectangle只可設置邊界條件,不可設置材料屬性 7 % 實例: 8 % hfssRectangle(fid, 'Rec1', 'Z', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',... 9 % "(132 132 193)", 0, 2); 10 % hfssRectangle(fid, 'Rec1', 'Z', [0,0,0], 1, 2, 'mm',... 11% "(132 132 193)", 0, 1)
|
1 % hfssCircle(fid, CircleName, Axis, Center, Radius, Units, Color, Transparency,flag) 2 % CircleName:圓形片的名字;Axis:圓形片的法向軸向('X','Y'或'Z',大小寫均可);Center:圓形片的圓心坐標; 3 % Radius:圓形片的半徑;Units:單位 4 % Color:圓形片的顏色(RGB);% Transparency:顯示的透明度; 5 % flag:值為1時Center, Radius只支持數字,值為2時value支持元胞數組表達式 6 % HFSS中的Circle只可設置邊界條件,不可設置材料屬性 7 % 實例: 8 % hfssCircle(fid, 'Cir1', 'Z',{'Cir_dx', 'Cir_dy', 'Cir_dz'}, 'Cir_R', 'mm',... 9 % "(128 128 128)", 0, 2) 10 % hfssCircle(fid, 'Cir1', 'Z',[0,0,0], 1, 'mm',... 11 % "(128 128 128)", 0, 1) |
需要注意上面的hfssRectangle,當坐標軸分別選取'X','Y'或'Z'時,按下面代碼建立三個Rectangle模型。
1 hfssRectangle(fid, 'Rec1', 'X', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',... 2 "(255 128 0)", 0, 2); 3 hfssRectangle(fid, 'Rec2', 'Y', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',... 4 "(255 128 0)", 0, 2); 5 hfssRectangle(fid, 'Rec3', 'Z', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',... 6 "(255 128 0)", 0, 2) |
逐個點擊這三個Rectangle,查看其屬性會發現:若坐標軸選'X',則'Rec_W','Rec_L'分別賦值給Ysize和Zsize;若坐標軸選'Y',則'Rec_W','Rec_L'分別賦值給Zsize和Xsize;若坐標軸選'Z',則'Rec_W','Rec_L'分別賦值給Xsize和Ysize;即按著'X','Y','Z'順序進行輪換式賦值。
在建模過程中,往往需要Unite和Subtract這兩種加減型的布爾操作,這時候hfssUnite和hfssSubtract函數就派上用場了。
1 % hfssUnite(fid, ObjectList) 2 % ObjectList:待Unite的物體名字 3 % 實例: 4 % hfssUnite(fid, {'Object1Name', 'Object2Name', 'Object3Name'}); |
1 % hfssSubtract(fid, BigParts, SmallParts, KeepOriginals) 2 % BigParts:待減物品名字;SmallParts:被減的物體名字 3 % KeepOriginals:為false時不保留被減物,為true時則保留被減物 4 % 實例: 5 % hfssSubtract(fid, {'Object1Name'}, {'Object2Name'}, false); |
通過下面的視頻可以直觀感受下以上五個函數的建模作用,以及hfssSubtract的KeepOriginals為false和true時的差異:
上面視頻的兩段代碼文件在文末的鏈接內,按個人情況按圖索驥地修改tmpPrjFile,tmpScriptFile ,hfssExePath這幾個路徑和Design_name,將編寫的MATLAB生成vbs腳本的.m文件與下載的hfssapi-by-Jianhui Huang放在同一個總文件夾內,點擊運行即可生成vbs腳本(在自行賦值的tmpScriptFile的這個路徑下)。vbs腳本可以直接點擊運行,或者在HFSS軟件中Run Script。
基礎性地寫代碼編注釋還是挺費時間和精力的,希望大家多點贊分享。
代碼分享區
hfssapi-by-Jianhui Huang
下載鏈接(后續代碼持續在下面鏈接更新):
https://pan.baidu.com/s/1N0EE3Uv7krkypfzi9vxCvg
提取碼:o5p5
代碼已封裝好打包為p文件不可修改,每次重新下載覆蓋,按函數注釋進行掉包即可!
注釋事項:MATLAB生成vbs腳本的.m文件與hfssapi-by-Jianhui Huang放在同一個總文件夾內。不要再examples文件夾內運行.m文件!
END
*本文的圖片部分來自AnsysEM 18.2軟件
*歡迎左側一鍵轉發至朋友圈,同時右側在看與點贊
本期原創工程師:94巨蟹座少年
本文為MWRF.NET原創文章,未經允許不得轉載,如需轉載請聯系market#mwrf.net(#換成@)