如何用HFSS-API来设计指数渐变传输线?

电子说

1.2w人已加入

描述

上节学个Antenna:HFSS脚本建模入门一文中,对HFSS的脚本录制和利用matlab-hfssapi建模进行了入门介绍,今天我们就利用HFSS-API来设计指数渐变传输线,实现宽带高性能的阻抗匹配。

本文使用的电磁仿真软件为ANSYS Electronics Desktop Version 2017.2.0

0 1微带线尺寸计算

已知基板的厚度,介电常数和微带线的线宽可以利用微波射频网的微带线特征阻抗计算器进行特性阻抗的快速计算。那么已知基板的厚度,介电常数和微带线的特性阻抗,如何计算其对应的线宽呢?

计算机

相应的理论公式已在上面的微波工程一书中详细阐述,现摘取部分关键内容如下:

先计算等效介电常数:对于给定的特性阻抗和介电常数,比值可求得:(公式左右滑动可看全部):

已知基板介电常数、厚度,以及需要得到的微带线阻抗值可以根据上述理论公式进行Matlab代码编写:

function W=microstrip_Zcal(Er,H,Z0)

%Unit:mm,GHz,ohm

%计算中间变量

A=Z0/60*sqrt((Er+1)/2)+(Er-1)/(Er+1)*(0.23+0.11/Er);

B=377*pi/(2*Z0*sqrt(Er)); W_d_A=8*exp(A)/(exp(2*A)-2); W_d_B=2/pi*(B-1-log(2*B-1)+(Er-1)/(2*Er)*(log(B-1)+0.39-0.61/Er));

if(W_d_A《2)

W_d=W_d_A; else W_d=W_d_B; end %计算微带线宽度 W=W_d*H;end

对于介电常数3.66、厚度1mm的基板,100欧姆微带线理论计算的线宽为0.5467mm

对于介电常数2.2、厚度0.508mm的基板,50欧姆微带线理论计算的线宽为1.5652mm

0 2指数渐变传输线理论

多节匹配变换器的理论这里不做过多阐述。如下图所示,若传输线各位置的特性阻抗按一定规律进行渐变,则可以通过改变渐变的类型得到不同的通带特性。本节对指数渐变传输线进行分析和建模。

计算机

对应上述图示,指数渐变传输线满足:

因为,因此有。

结合小反射理论推导出输入端的反射系数:(公式左右滑动可看全部):

计算机

为了降低低频率处的失配,渐变传输线的长度应该大于介质中的半波长,即为。

0 3微带线渐变传输线的HFSS-API快速设计

有了前二节的理论支撑,在限定长度的情况下,已知负载阻抗为,输入端参考阻抗为,微带线各位置的特性阻抗值可以确定,接着反向计算微带线线宽。

代码仅供参考,笔者自行根据个人习惯自行修改过hfssapi文件,参数传入等存在差异

clear;clc;%参数输入Z0=50;ZL=100;%Z0:输入的参考阻抗,ZL:负载阻抗lambda=300/3;%自定义工作频率下限的波长:mmL=50;%渐变传输线的长度:mmL0=linspace(0,L,251);tot_num=length(L0);dL=L0(2)-L0(1);%离散化的传输线,每节的长度%指数渐变传输线a=1/L*log(ZL/Z0);Z=Z0*exp(a*L0);plot(L0,Z);%获取m文件当前路径p1 = mfilename(‘fullpath’);i=findstr(p1,‘’);p1=p1(1:i(end));pp=strcat(p1,‘hfssapi’);%与m文件同级的文件夹中的hfssapi加入到路径中addpath([pp ‘/3dmodeler’]);

addpath([pp ‘/general’]); addpath([pp ‘/analysis’]); addpath([pp ‘/boundary/’]); %vbs脚本路径tmpScriptFile = ‘C:UsersDellDesktopexp_transmissionLine.vbs’;%计算微带线的线宽:mmEr=2.2;H=0.508;

Wcal=zeros(1,tot_num);for num=1:tot_num zcal=Z(num); Wcal(num)=microstrip_Zcal(Er,H,zcal);end

%vbs脚本建模:此处引用hfssapi为自己修改过后的,参数传入有差异;%不可直接复制运行,当作伪代码,仅供参考%建立HFSS模型文件.fid = fopen(tmpScriptFile, ‘wt’);% 建立一个新的HFSS project和design.hfssNewProject(fid);hfssInsertDesign(fid, ‘gradually_changed_tri_transmissionLine’);

% 创建新的PolylinePoints=zeros(2*tot_num,3);for num=1:tot_num Points(num,1:3)=[-Wcal(num)/2,(num-1)*dL,0];endPoints((tot_num+1):end,1)=abs(flipud(Points(1:tot_num,1)));Points((tot_num+1):end,2)=flipud(Points(1:tot_num,2));Points((tot_num+1):end,3)=flipud(Points(1:tot_num,3));hfssPolyline(fid, ‘exp_transmissionLine’, Points, ‘mm’, 1, ‘Line’, [255, 255, 0],0)hfssSetColor(fid, ‘exp_transmissionLine’, [255,255,0]); hfssSetTransparency(fid, {‘exp_transmissionLine’}, 0); hfssAssignPE(fid, ‘Line’, {‘exp_transmissionLine’});

% Create the substratehfssBox(fid, ‘substrate’,[-40/2,0,0],[40,L,-H],‘mm’,1);hfssAssignMaterial(fid, ‘substrate’, ‘Rogers RT/duroid 5880 (tm)’); hfssSetTransparency(fid, {‘substrate’}, 0.2);

% Create the groundhfssRectangle(fid, ‘GroundPlane’, ‘Z’, [-40/2,0,-H],40,L, ‘mm’,1); hfssSetColor(fid, ‘GroundPlane’, [192, 192, 192]); hfssSetTransparency(fid, {‘GroundPlane’}, 0.4); hfssAssignPE(fid, ‘PerfE_Ground’, {‘GroundPlane’});

%------------空气盒------------% hfssBox(fid, ‘AirBox’, [-40/2-lambda/4,0,-H-lambda/4],[40+lambda/2, L, H+lambda/2], ‘mm’,1);

hfssSetTransparency(fid, {‘AirBox’}, 0.9); hfssAssignRadiation(fid, ‘Rad1’, ‘AirBox’); %-----------设置端口---------------% hfssRectangle(fid, ‘waveport1’,

‘Y’, [-Wcal(1)*6/2,0,-H],5*H,Wcal(1)*6, ‘mm’,1); hfssRectangle(fid, ‘waveport2’, ‘Y’, [-Wcal(end)*6/2,L,-H],5*H,Wcal(end)*6, ‘mm’,1); hfssSetColor(fid, ‘waveport1’, [255, 0, 0]); hfssSetColor(fid, ‘waveport2’,

[255, 0, 0]); hfssAssignWavePort(fid, ‘Port1’, ‘waveport1’, 1, false, [0,0,-H], [0,L,-H], ‘mm’);hfssAssignWavePort(fid, ‘Port2’, ‘waveport2’, 1, false, [0,0,0], [0,L,0], ‘mm’);%-----------改变积分终点--------------% hfssInsertSolution(fid, ‘Setup3000MHz’, 3, 0.02, 15);hfssInterpolatingSweep(fid, ‘Sweep3to10GHz’, ‘Setup3000MHz’,3, 10,351);

% Close the HFSS Script File.fclose(fid);

function W=microstrip_Zcal(Er,H,Z0) %Unit:mm,GHz,ohm %计算中间变量 A=Z0/60*sqrt((Er+1)/2)+(Er-1)/(Er+1)*(0.23+0.11/Er); B=377*pi/(2*Z0*sqrt(Er)); W_d_A=8*exp(A)/(exp(2*A)-2);

W_d_B=2/pi*(B-1-log(2*B-1)+(Er-1)/(2*Er)*(log(B-1)+0.39-0.61/Er)); if(W_d_A《2) W_d=W_d_A; else W_d=W_d_B; end %计算微带线宽度 W=W_d*H;end

这里直接给出可执行的vbs脚本文件(第四小节-资源分享有下载链接),vbs脚本建模的好处就是不管对方是用hfss15还是hfss18,都可以通过下面图片的操作,Run script进行模型的复构。

计算机

计算机

 

原文标题:学个Antenna:利用HFSS-API设计指数渐变传输线

文章出处:【微信公众号:微波射频网】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分