专栏名称: 微波射频网
微波、射频、天线、EMC、无线通信、太赫兹、RFID等电磁波技术门户网站。
51好读  ›  专栏  ›  微波射频网

零基础入门智能射频——Python与HFSS联合仿真之Bilog对数周期天线设计(二)

微波射频网  · 公众号  ·  · 2022-04-25 23:51

正文

《零基础入门智能射频》专栏#使用Python+射频搭建一个射频开发架构,将不同的软件连接起来提供一站式服务,提供接口让设计师更专注于业务开发,不再疲惫于学习软件使用操作,让人工智能与射频来一次邂逅,将碰撞出怎样的火花呢,拭目以待吧。

现货供应|200多款射频转接器 穿墙/法兰/精密型/经济型等各种型号 无起订量要求 当天发货
1  前言
上节我们学习了基本的LPDA天线的设计原理,并实现了Python与HFSS联合仿真,完成了LPDA的建模、参数设置至仿真运行( 基于Python的PCB对数周期天线设计(一) |零基础入门智能射频 )。下面继续先学习一种新型的LPDA天线获得更宽的带宽与良好的驻波比。
2  Bilog对数周期偶极子天线理论
2.1  BOWTIE天线
蝴蝶结天线可通过简单的加载设计轻松实现工作频段内的阻抗匹配,如图1(a)所示。图中的尾部为这里提到的蝴蝶结天线,它是一种平面天线,其辐射方向为振子平面的法线方向,因此十分合适作为LPDA天线中的加载部分。
蝴蝶结天线最初是由双锥天线演化而言,传统的双锥天线如图1(b)所示,调整夹角可优化电抗部分。
(a)                                         (b)
图1 BOW TIE天线
有限双锥天线的输入阻抗由锥角决定,见下式。
Z in =Z c =120lnctg(θ/2)
锥体长度并没有最佳的计算公式,目前可由HFSS辅助设计。
2.2  对数周期偶极子天线设计
从上节可知,目前比较实用的LPDA设计法是由卡雷尔提出的。如图2所示,Ln表示每个偶极子天线的长度,每个天线振子的末端用一条线连接,其延长线相较于一点,其被称为虚拟顶点,夹角为α。从虚拟顶点对每个天线单元的垂直距离由Rn表示,各偶极子间距为Sn,每个振子的直径为dn。
a) 天线结构
b) 增益和τ、σ的关系
图 2 LPDA结构与参数
上图(b)给出了LPDA中增益和τ、σ的关系曲线,可知,调整缩放因子可设置天线的增益,同时高增益必然需要较长的天线。
LPDA各参数如下:
顶角α
式中,τ是比例因子,σ是间隔因子。τ、σ的关系
下式中的频率fn+1与fn是相邻的两个周期, LPDA天线以常数的对数为周期,表明fn+1与fn处天线有相同的性能。
3  Bilog对数周期偶极子天线联合仿真设计
3.1  项目实例
图7所示,在HFSS建立一个300MHz~1000MHz的BilogLPDA。
a)参数计算
按照2.4节的计算公式,首先确定比例因子τ和间隔因子σ,这两个参数同时决定了设计的PCB LPDA天线的尺寸。
步骤如下:
1) τ=0.822、σ=0.149;
2) 计算顶角α;
3) 确定300MHz的波长和1000MHz的波长;
4) 依据上节公式依次计算出各个振子的长度。
将LPDA和双锥天线组合得到最终的天线结构,如图3所示。
图 3 LPDA 天线
b)python建模脚本语言
由计算公式编程python代码,实现复杂的建模过程自动化。本系列将推出视频教程,并结合视频教程提供对应的API接口,供大家学习调用。
部分示例代码如下:
oDesktop = oAnsoftApp.GetAppDesktop()
oProject.InsertDesign("HFSS", "HFSSDesign1", "DrivenModal", "")
oDesign = oProject.SetActiveDesign("HFSSDesign1")
oEditor = oDesign.SetActiveEditor("3D Modeler")
oModule = oDesign.GetModule("BoundarySetup")
oModule = oDesign.GetModule("AnalysisSetup")
oModule.InsertSetup("HfssDriven",
[
"NAME:Setup1",
"AdaptMultipleFreqs:="     , False,
"Frequency:="              , "500MHz",
"MaxDeltaS:="              , 0.02,
"PortsOnly:="              , False,
"UseMatrixConv:=" , False,
"MaximumPasses:=" , 6,
"MinimumPasses:=" , 1,
"MinimumConvergedPasses:=", 1,
"PercentRefinement:="      , 30,
"IsEnabled:="              , True,
"BasisOrder:="             , 1,
"DoLambdaRefine:=" , True,
"DoMaterialLambda:="       , True,
"SetLambdaTarget:="        , False,
"Target:="                 , 0.3333,
"UseMaxTetIncrease:="      , False,
"PortAccuracy:="  , 2,
"UseABCOnPort:="  , False,
"SetPortMinMaxTri:="       , False,
"UseDomains:="             , False,
"UseIterativeSolver:="     , False,
"SaveRadFieldsOnly:="      , False,
"SaveAnyFields:=" , True,
"IESolverType:="  , "Auto",
"LambdaTargetForIESolver:=", 0.15,
"UseDefaultLambdaTgtForIESolver:=", True,
"RayDensityPerWavelength:=", 4,
"MaxNumberOfBounces:="     , 5,
"InfiniteSphereSetup:="    , -1,
"SkipSBRSolveDuringAdaptivePasses:=", True
])
oEditor.Delete(
[
"NAME:Selections",
"Selections:="             , "spacing"
])
oModule = oDesign.GetModule("BoundarySetup")
oModule.AssignPerfectE(
[
"NAME:PerfE1",
"Objects:="                , ["element1"],
"InfGroundPlane:=" , False
])
oDesign.SetDesignSettings(
[
"NAME:Design Settings Data",
"Use Advanced DC Extrapolation:=", False,
"Use Power S:="            , False,
"Export After Simulation:=", False,
"Allow Material Override:=", True,
"Calculate Lossy Dielectrics:=", False,






请到「今天看啥」查看全文