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

2022-04-24 来源:微波射频网 作者:江右射频 字号:

1  前言

上节我们学习了基本的LPDA天线的设计原理,并实现了python与HFSS联合仿真,完成了LPDA的建模、参数设置至仿真运行。下面继续先学习一种新型的LPDA天线获得更宽的带宽与良好的驻波比。

2  Bilog对数周期偶极子天线理论

2.1  BOWTIE天线

蝴蝶结天线可通过简单的加载设计轻松实现工作频段内的阻抗匹配,如图1(a)所示。图中的尾部为这里提到的蝴蝶结天线,它是一种平面天线,其辐射方向为振子平面的法线方向,因此十分合适作为LPDA天线中的加载部分。

蝴蝶结天线最初是由双锥天线演化而言,传统的双锥天线如图1(b)所示,调整夹角可优化电抗部分。

零基础入门智能射频--基于python的PCB对数周期天线设计(一)     

(a)                                         (b)

图1 BOW TIE天线

有限双锥天线的输入阻抗由锥角决定,见下式。

Zin=Zc=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,

                 "Perform Minimal validation:=", False,

                 "EnabledObjects:=" , [],

                 "Port Validation Settings:=", "Standard"

         ],

         [

                 "NAME:Model Validation Settings",

                 "EntityCheckLevel:="       , "Strict",

                 "IgnoreUnclassifiedObjects:=", False,

                 "SkipIntersectionChecks:=", False

         ])

oModule = oDesign.GetModule("RadField")

oModule.InsertFarFieldSphereSetup(

         [

                 "NAME:Infinite Sphere1",

                 "UseCustomRadiationSurface:=", False,

                 "ThetaStart:="             , "0deg",

                 "ThetaStop:="              , "180deg",

                 "ThetaStep:="              , "2deg",

                 "PhiStart:="               , "-180deg",

                 "PhiStop:="                , "180deg",

                 "PhiStep:="                , "2deg",

                 "UseLocalCS:="             , False

         ])

oModule = oDesign.GetModule("ReportSetup")

oModule.CreateReport("S Parameter Plot 1", "Modal Solution Data", "Rectangular Plot", "Setup1 : Sweep",

         [

                 "Domain:="                 , "Sweep"

         ],

         [

                 "Freq:="          , ["All"],

                 "hh:="                    , ["Nominal"]

         ],

         [

                 "X Component:="            , "Freq",

                 "Y Component:="            , ["dB(S(1,1))"]

         ], [])

oModule.CreateReport("Gain Plot 1", "Far Fields", "3D Polar Plot", "Setup1 : LastAdaptive",

         [

                 "Context:="                , "Infinite Sphere1"

         ],

         [

                 "Phi:="                    , ["All"],

                 "Theta:="         , ["All"],

                 "Freq:="          , ["0.5GHz"],

                 "hh:="                    , ["Nominal"]

         ],

         [

                 "Phi Component:=" , "Phi",

                  "Theta Component:="        , "Theta",

                 "Mag Component:=" , ["dB(GainTotal)"]

         ], [])

Save()

AnalyzeAll()

c)  仿真结果

下图为集合线表面电流方向,两者呈现相向流动,也就是我们熟知的传输线模式,如图4所示。

图 4 集合线的电流流向

由下式计算出该传输线的阻抗。

式中,D为两者间距,d为集合线的口径。

图5-图8为LPDA的电场分布情况,可看出不同的频率下,相应频率的振子参与谐振。

图 5 0.3GHz 电场分布

图 6 500MHz在电场分布

图7和图8动态的展现了在低端和高端频率下,电场的分布情况,从中可以直观看出低频段主要是较长振子,在高频段则集中于短振子。

图 7 300MHz电场分布

图 8  1GHz在电场分布图

3.2  小结

对数周期天线加载蝴蝶结天线有效扩展天线的工作频段,并将天线尺寸控制在一定的可接受范围内,该型天线的知识点总结如下:

1) 借助合适的附加天线组合,扩展天线工作频段

2) 调整缩放因子可设置天线的增益

3) 调整集合线间距改变天线的阻抗特性

本节仅给出了示例代码,后续将推出PYTHON与HFSS联合仿真的教学视频,并提供相关调用HFSS的Python接口,供大家学习与讨论。

 

主题阅读:联合仿真