毛片视频免费观看-毛片视频在线免费观看-毛片手机在线视频免费观看-毛片特级-中文亚洲字幕-中文一级片

零基礎(chǔ)入門智能射頻—— 基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

2022-04-13 來源:微波射頻網(wǎng) 作者:江右射頻 字號(hào):

1  前言

天線是一種變換器,它把傳輸線上傳播的導(dǎo)行波,變換成在無界媒介(通常是自由空間)中傳播的電磁波,或者進(jìn)行相反的變換。在無線電設(shè)備中用來發(fā)射或接收電磁波的部件。凡是利用電磁波來傳遞信息的,都依靠天線來進(jìn)行工作。一般無源天線都具有可逆性,即同一副天線既可用作發(fā)射天線,也可用作接收天線。同一天線作為發(fā)射或接收的基本特性參數(shù)是相同的。這就是天線的互易定理。

本系列將陸續(xù)探究各種類型的天線,通過該系列的學(xué)習(xí)讓剛?cè)胄械男氯擞蓽\到深地掌握天線設(shè)計(jì)理論知識(shí),同時(shí)也有助于不是天線專業(yè)的系統(tǒng)工程師結(jié)合系統(tǒng)指標(biāo)要求,根據(jù)各型天線特點(diǎn)對(duì)天線選型。

2  對(duì)數(shù)周期偶極子天線理論

2.1  概述

偶極子天線是一種經(jīng)典的天線形式,偶極子天線可分為電偶極子和磁偶極子天線兩種形態(tài)。其中,電偶極子天線在其 E 面,輻射方向圖形狀為∞,在 H 面,其輻射方向圖形狀為O形。而磁偶極子在 E 面,H 面的輻射方向圖正好與電偶極子的輻射方向圖相反。理論上,只要增加單個(gè)偶極子的輻射體表面積,便可拓展其帶寬,然而當(dāng)fH/fL>3即實(shí)現(xiàn)3個(gè)倍頻程以上時(shí),此時(shí)需要將一組按照一定比例關(guān)系偶極子天線組合從而實(shí)現(xiàn)超寬帶天線,這便是下面要介紹的對(duì)數(shù)周期偶極子天線(LPDA)。

按照LPDA的實(shí)現(xiàn)形式,可以分為線天線和PCB平面天線兩大類,如圖1所示。LPDA是一種非頻變天線,即天線按照任何比例變動(dòng)后仍等效于其原先的結(jié)構(gòu),那么,其電性能就與頻率不相關(guān),即天線的尺寸與工作的頻帶按相同百分比變化,天線的特征仍舊穩(wěn)定。

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

圖1 對(duì)數(shù)周期偶極子天線

2.2  對(duì)數(shù)周期偶極子天線特點(diǎn)

對(duì)數(shù)周期偶極子天線具有如下特點(diǎn):

a) 具有超寬帶,通常倍頻程可達(dá)3以上;

b) 工作帶寬范圍內(nèi)增益平坦;

c) 增加偶極子的數(shù)量可提高天線增益;

d) 增加偶極子的數(shù)量可擴(kuò)展天線帶寬;

但是對(duì)于相同尺寸的八木等天線而言,LPDA增益要略低。

2.3  對(duì)數(shù)周期偶極子天線結(jié)構(gòu)

傳統(tǒng)的LPDA天線由一對(duì)集合線和N對(duì)偶極子組成,如圖2所示。兩根集合線形成了空氣介質(zhì)的傳輸線,作為偶極子天線的饋源。在天線后端由金屬緊固件固定兩根集合線,同時(shí)也可看作是短路端。因此,集合線間距決定了傳輸線的特征阻抗,也決定了天線的駐波比。

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

圖2 LPDA天線組成

每一對(duì)偶極子均直接與集合線相連,這里的集合線就是偶極子天線的饋源。由偶極子天線工作原理可知,偶極子天線的振子長度為工作頻率的半波長λ/2,此時(shí)LPDA其他振長度如果大于λ/2,則其作用等效于反射器;如果其他振子長度小于λ/2,則其作用等效于導(dǎo)引器,如圖3所示。借由不同長度的偶極子天線組合,LDPA擴(kuò)寬工作頻段。

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

圖3 LPDA不同頻率諧振振子

2.4  傳統(tǒng)對(duì)數(shù)周期偶極子天線設(shè)計(jì)

a) 參數(shù)設(shè)計(jì)

目前比較實(shí)用的LPDA設(shè)計(jì)法是由卡雷爾提出的,平行排列且相互對(duì)稱的振子的 N 個(gè)交叉饋電構(gòu)成對(duì)數(shù)周期偶極天線。Ln表示每個(gè)偶極子天線的長度,每個(gè)天線振子的末端用一條線連接,其延長線相較于一點(diǎn),其被稱為虛擬頂點(diǎn),夾角為2α。從虛擬頂點(diǎn)對(duì)每個(gè)天線單元的垂直距離由Rn表示,各偶極子間距為Sn,每個(gè)振子的直徑為dn

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

圖4  LPDA天線結(jié)構(gòu)

LPDA各參數(shù)如下:

頂角α

式中,τ是比例因子,σ是間隔因子。

只要確定了其中的一組振子的直徑,其他振子的直徑便可依據(jù)上述公式得出。但是其計(jì)算結(jié)果并不利于工程實(shí)現(xiàn),主要有以下原因:

·  找不到參數(shù)一樣的型材做振子

·  振子型材種類多不利于控制成本

鑒于此,工程實(shí)現(xiàn)中通常使用同一口徑的振子在保證性能的同時(shí)降低生產(chǎn)成本。

b)  工程實(shí)現(xiàn)

通常而言,LPDA的集合線是空中的鋁材,在集合線的短路端安裝射頻連接器(如N型、SMA型等),同軸線纜此時(shí)穿過空中的其中一個(gè)集合線到達(dá)LPDA的開路端,實(shí)現(xiàn)LPDA的饋電。

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

圖5  LPDA天線饋電方式

2.5  PCB平面對(duì)數(shù)周期偶極子天線設(shè)計(jì)

2.4節(jié)介紹了基于LPDA設(shè)計(jì)理論的線天線設(shè)計(jì),該類型天線受限于加工與裝配工藝,通常設(shè)計(jì)的截至頻率為1GHz。而1GHz以上則采用PCB形態(tài)實(shí)現(xiàn)LPDA,如下圖所示。

PCB印制LPDA天線的設(shè)計(jì)參數(shù)也采用卡雷爾設(shè)計(jì)法。

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

圖6 PCB LPDA

PCB LPDA天線同樣是由一對(duì)集合線和N對(duì)偶極子組成。其中,

集合線做成PCB走線形式分布于介質(zhì)板的上下兩側(cè);

各個(gè)振子可以按照計(jì)算參數(shù)實(shí)現(xiàn);

剛性線纜焊接到一側(cè)的集合線上固定,同軸線纜的一頭裝接插件,另一頭通過PCB上的過孔焊機(jī)至另一側(cè)的集合線上。

3  基于python的對(duì)數(shù)周期偶極子天線聯(lián)合仿真設(shè)計(jì)

3.1  聯(lián)合仿真概述

Python語言依靠強(qiáng)大的社區(qū)支持和各種大量豐富的數(shù)據(jù)分析庫、人工智能庫,使得其在科學(xué)計(jì)算領(lǐng)域的潛力巨大。因此,從本篇起我們將逐步學(xué)習(xí)如何借助Python實(shí)現(xiàn)天線設(shè)計(jì)的自動(dòng)化、智能化設(shè)計(jì)。

目前腳本語言+HFSS聯(lián)合設(shè)計(jì)主要有兩種方法:

a)  HFSS加載腳本語言。該方法需要人工打開HFSS軟件,然后手動(dòng)操作HFSS加載腳本語言。

b)  程序調(diào)用HFSS。該方法可以實(shí)現(xiàn)從打開HFSS、模型建模、參數(shù)設(shè)置、結(jié)果分析等一站式服務(wù)。這也是本學(xué)習(xí)系列的主導(dǎo)方向。

3.2  項(xiàng)目實(shí)例

圖7所示,在HFSS建立一個(gè)PCB LPDA,,PCB選用FR-4材料,PCB頂部和底部均為PCB振子。

a)  參數(shù)計(jì)算

按照2.4節(jié)的計(jì)算公式,首先確定比例因子τ和間隔因子σ,這兩個(gè)參數(shù)同時(shí)決定了設(shè)計(jì)的PCB LPDA天線的尺寸。

接著,依次計(jì)算得到各個(gè)振子的寬度、長度。

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

圖7 PLPDA 天線

b)  python建模腳本語言

python腳本語言代碼如下,注意和vbs腳本是有區(qū)別的。這里包含了從建模、參數(shù)設(shè)置以及仿真自動(dòng)運(yùn)行的命令,下列代碼可直接運(yùn)行。

oAnsoftApp = win32com.client.Dispatch('AnsoftHfss.HfssScriptInterface')

oProject = oDesktop.GetActiveProject()

oProject.InsertDesign("HFSS", "HFSSDesign2", "DrivenModal", "" )

oDesign = oProject.SetActiveDesign("HFSSDesign2")

oEditor = oDesign.SetActiveEditor("3D Modeler")

oEditor.Import(

       [

              "NAME:NativeBodyParameters",

              "HealOption:="            , 0,

              "Options:="           , "-1",

              "FileType:="          , "UnRecognized",

              "MaxStitchTol:="    , -1,

              "ImportFreeSurfaces:=" , False,

              "GroupByAssembly:="  , True,

              "CreateGroup:="          , True,

              "SourceFile:="       , "F:\\LPDA.stp"

       ])

oEditor.AssignMaterial(

       [

              "NAME:Selections",

              "Selections:="        , "top_element,top_element_1"

       ],

       [

              "NAME:Attributes",

              "MaterialValue:="  , "\"pec\"",

              "SolveInside:="             , False,

              "IsMaterialEditable:="    , True,

              "UseMaterialAppearance:=", False

       ])

oEditor.AssignMaterial(

       [

              "NAME:Selections",

              "Selections:="        , "substrate"

       ],

       [

              "NAME:Attributes",

              "MaterialValue:="  , "\"FR4_epoxy\"",

              "SolveInside:="             , True,

              "IsMaterialEditable:="    , True,

              "UseMaterialAppearance:=", False

       ])

oEditor = oDesign.SetActiveEditor("3D Modeler")

oEditor.CreateRectangle(

       [

              "NAME:RectangleParameters",

              "IsCovered:="        , True,

              "XStart:="              , "-1.67001336815218mm",

              "YStart:="              , "3mm",

              "ZStart:="              , "915.17837372953mm",

              "Width:="              , "3.34002673630436mm",

              "Height:="             , "-6mm",

              "WhichAxis:="              , "Z"

       ],

       [

              "NAME:Attributes",

              "Name:="              , "Rectangle1",

              "Flags:="        , "",

              "Color:="       , "(143 175 143)",

              "Transparency:="  , 0,

              "PartCoordinateSystem:=", "Global",

              "UDMId:="            , "",

              "MaterialValue:="  , "\"vacuum\"",

              "SurfaceMaterialValue:=", "\"\"",

              "SolveInside:="             , True,

              "IsMaterialEditable:="    , True,

              "UseMaterialAppearance:=", False

       ])

oEditor.CreateRectangle(

       [

              "NAME:RectangleParameters",

              "IsCovered:="        , True,

              "XStart:="              , "1.67001336815218mm",

              "YStart:="              , "-3mm",

              "ZStart:="              , "10.0200802089131mm",

              "Width:="              , "-3.34002673630436mm",

              "Height:="             , "6mm",

              "WhichAxis:="              , "Z"

       ],

       [

              "NAME:Attributes",

              "Name:="              , "Rectangle2",

              "Flags:="        , "",

              "Color:="       , "(143 175 143)",

              "Transparency:="  , 0,

              "PartCoordinateSystem:=", "Global",

              "UDMId:="            , "",

              "MaterialValue:="  , "\"vacuum\"",

              "SurfaceMaterialValue:=", "\"\"",

              "SolveInside:="             , True,

              "IsMaterialEditable:="    , True,

              "UseMaterialAppearance:=", False

       ])

oModule = oDesign.GetModule("BoundarySetup")

oModule.AssignPerfectE(

       [

              "NAME:PerfE1",

              "Objects:="           , ["Rectangle2"],

              "InfGroundPlane:="      , False

       ])

oModule.AssignLumpedPort(

       [

              "NAME:1",

              "Objects:="           , ["Rectangle1"],

              "RenormalizeAllTerminals:=", True,

              "DoDeembed:="          , False,

              [

                     "NAME:Modes",

                     [

                            "NAME:Mode1",

                            "ModeNum:="             , 1,

                            "UseIntLine:="              , True,

                            [

                                   "NAME:IntLine",

                                   "Start:="         , ["0mm","-3mm","915.17837372953mm"],

                                   "End:="                 , ["0mm","3mm","915.17837372953mm"]

                            ],

                            "AlignmentGroup:="    , 0,

                            "CharImp:="          , "Zpi",

                            "RenormImp:="            , "50ohm"

                     ]

              ],

              "ShowReporterFilter:=" , False,

              "ReporterFilter:="  , [True],

              "Impedance:="             , "50ohm"

       ])

oEditor.Delete(

       [

              "NAME:Selections",

              "Selections:="        , "mesh_assist"

       ])

oModule = oDesign.GetModule("AnalysisSetup")

oModule.InsertSetup("HfssDriven",

       [

              "NAME:Setup1",

              "AdaptMultipleFreqs:="       , False,

              "Frequency:="              , "1.2GHz",

              "MaxDeltaS:="              , 0.02,

              "PortsOnly:="        , False,

              "UseMatrixConv:="       , False,

              "MaximumPasses:="     , 10,

              "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

       ])

oModule.InsertFrequencySweep("Setup1",

       [

              "NAME:Sweep",

              "IsEnabled:="        , True,

              "RangeType:="             , "LinearCount",

              "RangeStart:="             , "1GHz",

              "RangeEnd:="       , "2GHz",

              "RangeCount:="           , 10,

              "Type:="        , "Interpolating",

              "SaveFields:="              , False,

              "SaveRadFields:=" , False,

              "InterpTolerance:="      , 0.5,

              "InterpMaxSolns:="       , 250,

              "InterpMinSolns:="       , 0,

              "InterpMinSubranges:="      , 1,

              "ExtrapToDC:="            , False,

              "InterpUseS:="              , True,

              "InterpUsePortImped:="       , False,

              "InterpUsePropConst:="      , True,

              "UseDerivativeConvergence:=", False,

              "InterpDerivTolerance:=", 0.2,

              "UseFullBasis:="    , True,

              "EnforcePassivity:="      , True,

              "PassivityErrorTolerance:=", 0.0001

       ])

oProject.SaveAs("F:\\PLPDA\\Project3.aedt", True)

oDesign.AnalyzeAll()

c)  PLPDA仿真結(jié)果

經(jīng)過HFSS軟件運(yùn)行之后得到圖8所示的運(yùn)行結(jié)果。可以看出該頻點(diǎn)的天線增益9dBi。

零基礎(chǔ)入門智能射頻--基于python的PCB對(duì)數(shù)周期天線設(shè)計(jì)(一)

圖8 PCB LPDA 輻射圖

主題閱讀:PCB  天線
主站蜘蛛池模板: 色妞www精品视频免费看 | 国内特级毛片 | 亚洲人成一区 | 国产精品一区二 | 黄a在线 | 男人天堂一区 | 97成人免费视频 | jizz日本zzz老师水多视频 | 久久精品一区二区三区中文字幕 | 岛田阳子五十路在线观看 | 精品日本三级在线观看视频 | 在线亚州 | 91日韩视频 | 精品精品国产自在香蕉网 | 亚洲一区二区三区高清网 | 一级毛片无毒不卡直接观看 | 国产福利一区二区 | 日本免费无遮挡吸乳视频中文 | 亚洲视频在线一区二区 | 免费逼片 | 欧美性大片免费 | 欧日韩在线不卡视频 | 亚洲youjizz| 欧美日韩一级二级三级 | 97青青青国产在线播放 | 免费观看国产一区二区三区 | 一级欧美一级日韩片 | 免费日本在线视频 | 99精品热视频这里只有精品7 | 日韩a一级欧美一级 | 亚洲 欧美 国产另类首页 | 天天综合天天色 | 欧美中文字幕在线播放 | 亚洲三级免费 | 国产日韩欧美在线一区二区三区 | 黄色一级片网站 | 成都4片p完整版视频在线观看 | 91麻豆极品在线观看 | 国内精品免费久久久久妲己 | 日本久久道一区二区三区 | 亚洲欧美视频在线播放 |