貼片天線的HFSS和CST仿真對比

2022-01-12 來源:微波射頻網 作者:94巨蟹座少年 字號:

學個Antenna是以天線仿真和調試為主,理論原理為輔的干貨天線技術專欄,包括天線入門知識以及各類天線的原理簡介、仿真軟件建模、設計、調試過程及思路。如有想看到的內容或技術問題,可以在文尾寫下留言。

摘要:

目前常用的電磁仿真軟件有HFSS、CST、FEKO等,HFSS軟件仿真電小物體相對而言要比CST更精確,CST對寬帶天線的求解速度則比HFSS更勝一籌!因為CST是基于時域有限積分法,只需要輸入一個時域脈沖就可以仿真寬帶頻譜結果。

本文使用的軟件為CST2018和AnsysEM 18.2

簡單介紹

·  HFSS里內置的求解算法目前有:有限元算法(FEM),積分方程算法(IE),高頻算法(SBR+ Solver), 混合算法(FEBI,IE-Region),域分解算法(DDM,FA-DDM),時域算法(Transient),特征模算法(CMA),本征模求解器(Eigenmode solver)等
·  https://zhuanlan.zhihu.com/p/11389787

大部分人其實仿真簡單的天線和濾波器等,使用HFSS的有限元算法和軟件自身的自適應網格剖分和加密技術,設置好收斂的Max Mag Delta S(默認0.02)就足以滿足其仿真需求。

對于軟件的使用和其他算法求解器的設置這里就不做過多贅述了。

大部分工程師在使用HFSS軟件時都會發現,其對電腦的配置要求較高,尤其是內存。而且電大尺寸、超寬帶的仿真要求的算力更是難以滿足。

CST恰恰彌補了HFSS仿真超寬帶的短板,但是它在小尺寸、圓形等結構上的仿真精度不高。如下圖所示,HFSS在邊緣部分特別是圓形結構附件的三角網格剖分的特別細膩,而CST的六面體網格的剖分過于規整。

雖然縫隙和圓形等結構附近的剖分雖然可以采用CST的局部網格加密Local Mesh等,但初學者可能還是HFSS的傻瓜式自適應剖分比較人性化。

·  CST軟件采用了電磁場全波時域仿真算法―有限積分法(FIT),對麥克斯韋積分方程進行離散化并迭代求解。由于其所采用的時域算法FIT,只須一步步迭代求解,不用進行矩陣求逆。此內在特性決定了,其適合的仿真結構涵蓋電小、電中和電大,均可取得良好的表現。體矩量法、有限元法和有限積分法三者的計算量(體現在CPU 時間和所需內存)·分別正比于所分網格數N的3次、2次和1.1~1.2次方,可以看出有限積分法對于算力的要求要低于HFSS的有限元法。

對于CST軟件,大家常用的也是Time Domain Solver,除此之外,它還有頻域求解器、本征模求解器、積分方程法、漸進計算、多層介質算法。

下一節我們會對兩種軟件的進行仿真精度對比,主要是看HFSS的FEM+自動網格剖分加密仿真和CST的Time Domain Solver和Frequency Domain Solver。

腳本構建背饋式貼片天線

常見的矩形貼片天線的饋電方式有側饋電和背饋式等,本次推文采用背饋電式進行仿真分析。

先選定基板為0.762mm厚度的Rogers4350B,諧振頻率為5.8GHz。(左右滑動可看完整公式):

經過上面公式計算可得貼片天線的寬度和長度分別為16.9mm和13.3mm。

經過上兩次推文HFSS-API入門第一彈:畫個BoxHFSS-API入門第二彈:基本形狀和操作的教學,現在可以直接擼一個背饋式貼片天線的HFSS vbs腳本(下載鏈接見文末,examples文件夾內):

1  clear;clc;

2  path = mfilename('fullpath');

3  i=strfind(path,'\');

4  path=path(1:i(end));

5  cd(path);

6  addpath(genpath(strcat(path,'hfssapi-by-Jianhui Huang')));

7  try

8      % 填寫路徑

9      % tmpPrjFile:生成的aedt或者hfss(安裝hfss15以下的后綴名為.hfss)項目文件的路徑名

10    % tmpScriptFile:生成的vbs腳本文件的路徑名

11      tmpPrjFile = 'F:\vbsScript\Patch_Probe_Feed.aedt';

12      tmpScriptFile = 'F:\vbsScript\auto_code.vbs';

13  

14      % hfssExePath:HFSS軟件的路徑

15      hfssExePath = 'D:\software\HFSS15\AnsysEM18.2\Win64\ansysedt.exe';

16  

17      % 創建一個可讀寫vbs腳本文件.

18      fid = fopen(tmpScriptFile, 'wt');

19  

20      %創建一個新的HFSS項目并插入一個新的設計文件.

21      hfssNewProject(fid);

22      Design_name='element';

23      hfssInsertDesign(fid, Design_name);

24      

25      Patch_W=16.9;Patch_L=13.3;

26      Sub_W=35;Sub_L=30;Sub_H=0.762;copper_H=0.035;

27      Probe_dy=-4;Probe_dx=0;

28      Inner_R=0.5;Diel_R=exp(50/60*sqrt(1))*Inner_R;Outer_R=1.5;L0=2;

29     % hfssVariableInsert(fid,DesignName,variableName, value, units,flag)

30      hfssVariableInsert(fid,Design_name,'Patch_W', Patch_W, 'mm',1);

31      hfssVariableInsert(fid,Design_name,'Patch_L', Patch_L, 'mm',1);

32      hfssVariableInsert(fid,Design_name,'Sub_W', Sub_W, 'mm',1);

33      hfssVariableInsert(fid,Design_name,'Sub_L', Sub_L, 'mm',1);

34     hfssVariableInsert(fid,Design_name,'Sub_H', Sub_H, 'mm',1);

35      hfssVariableInsert(fid,Design_name,'copper_H', copper_H, 'mm',1);

36      hfssVariableInsert(fid,Design_name,'Probe_dx', Probe_dx, 'mm',1);

37   hfssVariableInsert(fid,Design_name,'Probe_dy', Probe_dy, 'mm',1);

38    hfssVariableInsert(fid,Design_name,'L0', L0, 'mm',1);

39    hfssVariableInsert(fid,Design_name,'Inner_R', Inner_R, 'mm',1);

40    hfssVariableInsert(fid,Design_name,'Diel_R', 'exp(50/60*sqrt(1))*Inner_R', 'mm',2);

41    hfssVariableInsert(fid,Design_name,'Outer_R', Outer_R, 'mm',1);

42    

43    % 畫基板

44    % hfssBox(fid, BoxName, Start, Size, Units, Color, Material, Transparency, flag)

45   hfssBox(fid, 'Sub1', {'-Sub_W/2', '-Sub_L/2', '0mm'}, {'Sub_W', 'Sub_L', 'Sub_H'}, 'mm',...

46        "(0 128 128)", "Rogers RO4350 (tm)", 0, 2);

47     % 畫貼片

48    hfssBox(fid, 'Patch', {'-Patch_W/2', '-Patch_L/2', 'Sub_H'}, {'Patch_W', 'Patch_L', 'copper_H'}, 'mm',...

49        "(255 128 0)", "copper", 0, 2);

50    % 畫GND

51    hfssBox(fid, 'GND', {'-Sub_W/2', '-Sub_L/2', '0mm'}, {'Sub_W', 'Sub_L', '-copper_H'}, 'mm',...

52        "(128 128 128)", "copper", 0, 2);

53    

54    % 畫同軸部分

55    % 畫同軸內芯

56    % hfssCylinder(fid, CylinderName, Axis, Center, Radius, Height, Units, Color, Material, Transparency, flag)

57    hfssCylinder(fid, 'Inner', 'Z', {'Probe_dx', 'Probe_dy', 'Sub_H+copper_H'}, 'Inner_R','-(Sub_H+copper_H*2+L0)', 'mm',...

58       "(128 128 128)", "copper", 0, 2);

59    hfssCylinder(fid, 'Diel', 'Z', {'Probe_dx', 'Probe_dy', '-copper_H'}, 'Diel_R','-L0', 'mm',...

60       "(0 128 128)", "vacuum", 0, 2);

61    hfssCylinder(fid, 'Outer', 'Z', {'Probe_dx', 'Probe_dy', '-copper_H'}, 'Outer_R','-L0', 'mm',...

62       "(128 128 128)", "copper", 0, 2);

63    

64    % 地板開過孔

65    hfssCylinder(fid, 'GND_hole', 'Z', {'Probe_dx', 'Probe_dy', '0mm'}, 'Diel_R','-copper_H', 'mm',...

66       "(255 128 0)", "vacuum", 0, 2);

67

68    % 布爾操作

69    hfssSubtract(fid, {'Outer'}, {'Diel'}, true);

70    hfssSubtract(fid, {'Sub1','Patch','Diel'}, {'Inner'}, true);

71    hfssSubtract(fid, {'GND'}, {'GND_hole'}, false);

72

73    % 保存項目文件到指定路徑

74    hfssSaveProject(fid, tmpPrjFile,1);

75

76    % Close the HFSS Script File.

77    fclose(fid);

78    disp('vbs腳本已生成!');

79catch

80    disp('程序出現異常!');

81    fclose(fid);

82end

上面的代碼按個人情況按圖索驥地修改tmpPrjFile,tmpScriptFile ,hfssExePath這幾個路徑和Design_name,將編寫的MATLAB生成vbs腳本的.m文件與下載的hfssapi-by-Jianhui Huang放在同一個總文件夾內,點擊運行即可生成vbs腳本(在自行賦值的tmpScriptFile的這個路徑下)。vbs腳本可以直接點擊運行,或者在HFSS軟件中Run Script。建模完成后,自行添加Region,設置Radiation邊界條件和Analysis的Setup,即可進行仿真(后續boundaryanalysis同步上來后可以在腳本中就建立好)。

Analysis設置

此時仿真結果可以看出天線諧振頻率偏向低頻,且輸入阻抗偏離50歐姆。

這時候有人肯定就會說,調天線就是玄學,這么多變量我怎么知道調節哪些變量,變量調成多少合適,難道直接用Optimization? 其實了解過貼片天線相關原理的就曉得,這時候,只需要調節天線的長度和饋電偏離中心的位置即可,前者影響諧振頻率,后者影響天線的匹配。

話不多說直接上圖,可以看出當饋電點位置偏離貼片天線中心2.5mm時,其阻抗匹配較優。

不過此時天線的諧振頻率還偏向低頻5.6GHz,因此適當縮短天線長度即可完成5.8GHz背饋式貼片天線的設置。

矩形貼片天線長度掃參結果

CST和HFSS仿真結果對比

在HFSS上方菜單欄選擇Modeler->Export,保存為step格式。

然后打開CST在Export下選擇導入上面的STEP文件,并刪除Region等無關模型,設置好材料屬性和邊界條件。

采用時域求解器和默認的網格剖分設置,仿真的諧振頻率在5.759GHz,與HFSS仿真結果相差40MHz。

CST時域Meshproperties和S11結果

直接將上述模型的求解器改為頻域求解器并按下圖設置網格剖分,仿真的諧振頻率在5.825GHz,與HFSS仿真結果相差25MHz左右,已經很接近了。

CST頻域Meshproperties和S11結果

總體來說,電小尺寸的微帶貼片天線在HFSS的FEM+自動網格剖分加密仿真和CST的時域和頻域求解器下,仿真結果差異可以接受。畢竟天線設計屬于工科范疇,實際還要考慮加工、焊接容差等,所以還是需要打幾次PCB板進行測試分析、調試優化,死磕這點仿真差異并沒有啥意義。

基礎性地寫代碼編注釋,建模仿真還是挺費時間和精力的,希望大家多點贊分享!

代碼分享區

hfssapi-by-Jianhui Huang

下載鏈接(后續代碼持續在下面鏈接更新):

https://pan.baidu.com/s/1N0EE3Uv7krkypfzi9vxCvg

提取碼:o5p5

代碼已封裝好打包為p文件不可修改,每次重新下載覆蓋,按函數注釋進行掉包即可!

注釋事項:MATLAB生成vbs腳本的.m文件與hfssapi-by-Jianhui Huang放在同一個總文件夾內。不要在examples文件夾內運行.m文件!

END

*本文的圖片部分來自CST2018和AnsysEM 18.2軟件

*歡迎左側一鍵轉發至朋友圈,同時右側在看與點贊

本期原創工程師:94巨蟹座少年

本文為MWRF.NET原創文章,未經允許不得轉載,如需轉載請聯系market#mwrf.net(#換成@)

主題閱讀:腳本構建    側饋電        背饋式