學個Antenna是以天線仿真和調試為主,理論原理為輔的干貨天線技術專欄,包括天線入門知識以及各類天線的原理簡介、仿真軟件建模、設計、調試過程及思路。如有想看到的內容或技術問題,可以在文尾寫下留言。
摘要:
上節學個Antenna:HFSS腳本建模入門一文中,對HFSS的腳本錄制和利用matlab-hfssapi建模進行了入門介紹,今天我們就利用HFSS-API來設計指數漸變傳輸線,實現寬帶高性能的阻抗匹配。
本文使用的電磁仿真軟件為ANSYS Electronics Desktop Version 2017.2.0
微帶線尺寸計算
David M. Pozar. 微波工程[M]. 電子工業出版社, 2006.
已知基板的厚度,介電常數和微帶線的線寬可以利用微波射頻網的微帶線特征阻抗計算器進行特性阻抗的快速計算。那么已知基板的厚度,介電常數和微帶線的特性阻抗,如何計算其對應的線寬呢?
http://www.letsgo8.com.cn/tool/rf/2015/16294.html
相應的理論公式已在上面的微波工程一書中詳細闡述,現摘取部分關鍵內容如下:
- 先計算等效介電常數:
- 對于給定的特性阻抗和介電常數,比值可求得:(公式左右滑動可看全部):
已知基板介電常數、厚度,以及需要得到的微帶線阻抗值可以根據上述理論公式進行Matlab代碼編寫:
1 function W=microstrip_Zcal(Er,H,Z0) 2 %Unit:mm,GHz,ohm 3 %計算中間變量 4 A=Z0/60*sqrt((Er+1)/2)+(Er-1)/(Er+1)*(0.23+0.11/Er); 5 B=377*pi/(2*Z0*sqrt(Er)); 6 W_d_A=8*exp(A)/(exp(2*A)-2); 7 W_d_B=2/pi*(B-1-log(2*B-1)+(Er-1)/(2*Er)*(log(B-1)+0.39-0.61/Er)); 8 if(W_d_A<2) 9 W_d=W_d_A; 10 else 11 W_d=W_d_B; 12 end 13 %計算微帶線寬度 14 W=W_d*H; 15 end |
- 對于介電常數3.66、厚度1mm的基板,100歐姆微帶線理論計算的線寬為0.5467mm
- 對于介電常數2.2、厚度0.508mm的基板,50歐姆微帶線理論計算的線寬為1.5652mm
指數漸變傳輸線理論
多節匹配變換器的理論這里不做過多闡述。如下圖所示,若傳輸線各位置的特性阻抗按一定規律進行漸變,則可以通過改變漸變的類型得到不同的通帶特性。本節對指數漸變傳輸線進行分析和建模。
對應上述圖示,指數漸變傳輸線滿足:
因為,因此有。
結合小反射理論推導出輸入端的反射系數:(公式左右滑動可看全部):
為了降低低頻率處的失配,漸變傳輸線的長度應該大于介質中的半波長,即為。
微帶線漸變傳輸線的HFSS-API快速設計
有了前二節的理論支撐,在限定長度的情況下,已知負載阻抗為,輸入端參考阻抗為,微帶線各位置的特性阻抗值可以確定,接著反向計算微帶線線寬。
代碼僅供參考,筆者自行根據個人習慣自行修改過hfssapi文件,參數傳入等存在差異
1 clear;clc; 2 %參數輸入 3 Z0=50;ZL=100;%Z0:輸入的參考阻抗,ZL:負載阻抗 4 lambda=300/3;%自定義工作頻率下限的波長:mm 5 L=50;%漸變傳輸線的長度:mm 6 L0=linspace(0,L,251);tot_num=length(L0); 7 dL=L0(2)-L0(1);%離散化的傳輸線,每節的長度 8 %指數漸變傳輸線 9 a=1/L*log(ZL/Z0); 10 Z=Z0*exp(a*L0); 11 plot(L0,Z);%獲取m文件當前路徑 13p1=mfilename('fullpath'); 14 i=findstr(p1,'\'); 15 p1=p1(1:i(end)); 16 pp=strcat(p1,'hfssapi'); 17 %與m文件同級的文件夾中的hfssapi加入到路徑中 18 addpath([pp '/3dmodeler']); 19 addpath([pp '/general']); 20 addpath([pp '/analysis']); 21 addpath([pp '/boundary/']); 22 %vbs腳本路徑 23 tmpScriptFile = 'C:\Users\Dell\Desktop\exp_transmissionLine.vbs'; 24 %計算微帶線的線寬:mm 25 Er=2.2;H=0.508;Wcal=zeros(1,tot_num); 26 for num=1:tot_num 27 zcal=Z(num); 28 Wcal(num)=microstrip_Zcal(Er,H,zcal); 29 End 30 31 %vbs腳本建模:此處引用hfssapi為自己修改過后的,參數傳入有差異; 32 %不可直接復制運行,當作偽代碼,僅供參考 33 %建立HFSS模型文件. 34 fid = fopen(tmpScriptFile, 'wt'); 35 % 建立一個新的HFSS project和design. 36 hfssNewProject(fid); 37 hfssInsertDesign(fid, 'gradually_changed_tri_transmissionLine'); 38 % 創建新的Polyline 39 Points=zeros(2*tot_num,3); 40 for num=1:tot_num 41 Points(num,1:3)=[-Wcal(num)/2,(num-1)*dL,0]; 42 End 43 Points((tot_num+1):end,1)=abs(flipud(Points(1:tot_num,1))); 44 Points((tot_num+1):end,2)=flipud(Points(1:tot_num,2)); 45 Points((tot_num+1):end,3)=flipud(Points(1:tot_num,3)); 46 hfssPolyline(fid, 'exp_transmissionLine', Points, 'mm', 1, 'Line', [255, 255, 0],0) 47 hfssSetColor(fid, 'exp_transmissionLine', [255,255,0]); 48 hfssSetTransparency(fid, {'exp_transmissionLine'}, 0); 49 hfssAssignPE(fid, 'Line', {'exp_transmissionLine'}); 50 51 % Create the substrate 52 hfssBox(fid, 'substrate',[-40/2,0,0],[40,L,-H],'mm',1); 53 hfssAssignMaterial(fid, 'substrate', 'Rogers RT/duroid 5880 (tm)'); 54 hfssSetTransparency(fid, {'substrate'}, 0.2); 55 56 % Create the ground 57 hfssRectangle(fid, 'GroundPlane', 'Z', [-40/2,0,-H],40,L, 'mm',1); 58 hfssSetColor(fid, 'GroundPlane', [192, 192, 192]); 59 hfssSetTransparency(fid, {'GroundPlane'}, 0.4); 60 hfssAssignPE(fid, 'PerfE_Ground', {'GroundPlane'}); 61 62 %------------空氣盒------------% 63 hfssBox(fid, 'AirBox', [-40/2-lambda/4,0,-H-lambda/4],[40+lambda/2, L, H+lambda/2], 'mm',1); 64 hfssSetTransparency(fid, {'AirBox'}, 0.9); 65 hfssAssignRadiation(fid, 'Rad1', 'AirBox'); 66 %-----------設置端口---------------% 67 hfssRectangle(fid, 'waveport1', 'Y', [-Wcal(1)*6/2,0,-H],5*H,Wcal(1)*6, 'mm',1); 68 hfssRectangle(fid, 'waveport2', 'Y', [-Wcal(end)*6/2,L,-H],5*H,Wcal(end)*6, 'mm',1); 69 hfssSetColor(fid, 'waveport1', [255, 0, 0]); hfssSetColor(fid, 'waveport2', [255, 0, 0]); 70 hfssAssignWavePort(fid, 'Port1', 'waveport1', 1, false, [0,0,-H], [0,L,-H], 'mm'); 71 hfssAssignWavePort(fid, 'Port2', 'waveport2', 1, false, [0,0,0], [0,L,0], 'mm'); 72 %-----------改變積分終點--------------% 73 hfssInsertSolution(fid, 'Setup3000MHz', 3, 0.02, 15); 74 hfssInterpolatingSweep(fid, 'Sweep3to10GHz', 'Setup3000MHz',3, 10,351); 75 76 % Close the HFSS Script File. 77 fclose(fid); 78 79 function W=microstrip_Zcal(Er,H,Z0) 80 %Unit:mm,GHz,ohm 81 %計算中間變量 82 A=Z0/60*sqrt((Er+1)/2)+(Er-1)/(Er+1)*(0.23+0.11/Er); 83 B=377*pi/(2*Z0*sqrt(Er)); 84 W_d_A=8*exp(A)/(exp(2*A)-2); 85 W_d_B=2/pi*(B-1-log(2*B-1)+(Er-1)/(2*Er)*(log(B-1)+0.39-0.61/Er)); 86 if(W_d_A<2) 87 W_d=W_d_A; 88 else 89 W_d=W_d_B; 90 end 91 %計算微帶線寬度 92 W=W_d*H; 93 end |
這里直接給出可執行的vbs腳本文件(第四小節-資源分享有下載鏈接),vbs腳本建模的好處就是不管對方是用hfss15還是hfss18,都可以通過下面圖片的操作,Run script進行模型的復構。
微帶線漸變傳輸線HFSS仿真結果
資源分享
上述的vbs腳本文件和后續的仿真模型(HFSS 2018建模)鏈接會在下面的總文件夾進行更新:
識別或掃碼二維碼
下載文件
*本文的圖片部分來自微波工程教材,致謝Markdown Nice提供的公式排版服務
*歡迎左側一鍵轉發至朋友圈,同時右側在看與點贊
以上便是要給大家分享的內容,希望對大家有所幫助~~大家持續關注“微波射頻網”,后續精彩不斷~
本期原創工程師:94巨蟹座少年
本文為MWRF.NET原創文章,未經允許不得轉載,如需轉載請聯系market#mwrf.net(#換成@)