?
1.?前言Matlab和HFSS相結(jié)合設(shè)計分析天線,不僅發(fā)揮了matlab強大的數(shù)據(jù)分析功能,同時還是實現(xiàn)天線設(shè)計的自動化。這對于復(fù)雜的陣列天線而言無疑是一個十分有用的功能。通過兩者相結(jié)合組成的設(shè)計框架,實現(xiàn)了自動化的建模,降低了軟件使用的難度,同時增強了兩者的耦合度與集成度,提升天線工程師的設(shè)計效率。2. 偶極子天線理論2.1 概述智能天線如圖1所示,可以跟蹤目標(biāo)調(diào)整天線的輻射方向圖。圖中的天線可以是多個偶極子天線組成的陣列,通過一定的相位差合成一個窄波束的方向圖。圖1. 智能天線偶極子天線是一種經(jīng)典的天線形式,偶極子天線可分為電偶極子和磁偶極子天線兩種形態(tài)。其中,電偶極子天線在其 E 面,輻射方向圖形狀為∞,在 H 面,其輻射方向圖形狀為O形。而磁偶極子在 E 面,H 面的輻射方向圖正好與電偶極子的輻射方向圖相反。目前偶極子天線主要朝著寬帶化、小型化發(fā)展。比較新穎的寬帶偶極子天線有以下幾種。2.2 電偶極子天線電偶極子天線的的物理長度遠(yuǎn)小于其波長,此時此導(dǎo)線上各處電流I可看作均勻分布,如圖2所示,通過失位法分析電偶極子產(chǎn)生的電磁場。圖2. 電偶極子模型天線在遠(yuǎn)場的輻射性能見下式。由此可知,此時在遠(yuǎn)場天線只存在上述公式中的兩個分量即Eθ和Hφ,并且相互垂直同向,這些特性表明該天線可以向外傳播能量。圖3. 輻射示意圖2.3 磁偶極子天線磁偶極子是為了類比電偶極子而假想的概念模型,通常將磁偶極子模型等效為一個極小型的載有電流的圓環(huán)。假設(shè)xoy平面上一小圓環(huán)的半徑為a,其遠(yuǎn)小于波長,如圖4所示,使用矢位法分析該天線的電場強度和磁場強度。圖4. 磁偶極子經(jīng)過推導(dǎo)得到下式的電場強度和磁場強度。對比電偶極子的電場強度和磁場強度,兩種偶極子天線存在一定差異,兩種天線存在90°的相位差,即兩種的方向圖正好相反。半波長偶極天線的輸入阻抗是由尋=73+ j42.5歐姆。2.4 寬帶電磁偶極子天線1954年Calvin提出了磁電偶極子天線,下面將以一種寬帶電磁偶極子天線為例,說明其工作原理。該天線主要由E形貼片和折疊垂直短路貼片組成。E 形電偶極子貼片一般具有多個相鄰的諧振頻點,從而實現(xiàn)了擴(kuò)寬工作頻帶;折疊垂直短路貼片與其之間的地板可以等效為磁偶極子。下圖是該天線的表面電流分布圖。圖5. 天線表面電流分布上圖為該寬帶天線在同一周期內(nèi)不同時刻的表面電流分布,當(dāng)t=T/2時,電偶極子處于工作的狀態(tài),天線的電流大部分都存在于E貼片上,折疊垂直端路貼片上只有很少的電流;而在t=T/4時,E形貼片上的電流很少,折疊垂直短路貼片上的表面電流增大,此時天線處于磁偶極子工作狀態(tài)??梢?,其電偶極子和磁偶極子有效結(jié)合在一起,就可以在遠(yuǎn)場實現(xiàn)良好的互補型輻射方向圖,這也是電磁偶極子天線的基本理論依據(jù)。圖6. 電磁偶極子輻射特性兩者的遠(yuǎn)場輻射方向圖存在互補的關(guān)系。通常情況下,電磁偶極子天線由正交放置且同時激勵的電偶極子和磁偶極子組成,電偶極子在 E 面的方向圖是平 8 字,對于磁偶極子,其是 O 字形狀;在 H 面電偶極子的方向圖是 O 字形狀,而對于磁偶極子,其是平 8 字形狀。將電偶極子和磁偶極子采用恰當(dāng)?shù)姆绞浇Y(jié)合在一起,就可以在 E 面和 H 面獲得相似的心形輻射方向圖,電偶極子和磁偶極子在 E 面和 H 面疊加后的輻射方向圖具有良好的相似性,更為關(guān)鍵的是,得到的輻射方向圖后瓣都很小。3. 基于matlab的偶極子天線設(shè)計程序3.1 設(shè)計流程基于Matlab的HFSS天線是指編寫matlab程序并由該程序生成對應(yīng)的腳本文件,接著再由HFSS調(diào)用該腳本文件最終實現(xiàn)天線設(shè)計的自動化過程。與手動進(jìn)行天線設(shè)計相類似,腳本語言設(shè)計天線遵從以下流程,首先使用啟動HFSS命令開啟軟件,接著新建工程,在該工程中建立天線模型,依次設(shè)置各參數(shù)后開始仿真。按照上述流程使用matlab控制HFSS生成的部分腳本內(nèi)容如下:Set oHfssApp = CreateObject("AnsoftHfss.HfssScriptInterface")Set oDesktop = oHfssApp.GetAppDesktop()oDesktop.RestoreWindowoDesktop.NewProjectSet oProject = oDesktop.GetActiveProjectoProject.InsertDesign "HFSS", " dio ", "DrivenModal", ""Set oDesign = oProject.SetActiveDesign("dio")Set oEditor = oDesign.SetActiveEditor("3D Modeler")oEditor.CreateCylinder _Array("NAME:CylinderParameters", _"XCenter:=", "0.00100meter", _"YCenter:=", "0.000000meter", _"ZCenter:=", "0.000000meter", _"Radius:=", "0.020000meter", _"Height:=", "0.028000meter", _"WhichAxis:=", "X"), _Array("NAME:Attributes", _"Name:=", "mydipole_1", _"Flags:=", "", _"Color:=", "(255 255 0)", _"Transparency:=", 0, _"PartCoordinateSystem:=", "Global", _"MaterialName:=", "vacuum", _"SolveInside:=", true)oEditor.CreateCylinder _Array("NAME:CylinderParameters", _"XCenter:=", "-0.001000meter", _"YCenter:=", "0.000000meter", _"ZCenter:=", "0.000000meter", _"Radius:=", "0.020000meter", _"Height:=", "-0.028000meter", _"WhichAxis:=", "X"), _Array("NAME:Attributes", _"Name:=", " mydipole_2", _"Flags:=", "", _"Color:=", "(255 255 0)", _"Transparency:=", 0, _"PartCoordinateSystem:=", "Global", _"MaterialName:=", "vacuum", _"SolveInside:=", true)Set oModule = oDesign.GetModule("BoundarySetup")oModule.AssignPerfectE _Array("NAME:Antennas", _"InfGroundPlane:=", false, _"Objects:=", _Array("mydipole_1"," mydipole_2"))oEditor.CreateRectangle _Array("NAME:RectangleParameters", _"IsCovered:=", true, _"XStart:=", "-0.025000meter", _"YStart:=", "0.000000meter", _"ZStart:=", "-0.020000meter", _"Width:=", "0.040000meter", _"Height:=", "0.050000meter", _"WhichAxis:=", "Y"), _Array("NAME:Attributes", _"Name:=", "GapSource", _"Flags:=", "", _"Color:=", "(255 255 0)", _"Transparency:=", 5.000000e-01, _"PartCoordinateSystem:=", "Global", _"MaterialName:=", "vacuum", _"SolveInside:=", true)oEditor.CreateBox _Array("NAME:BoxParameters", _"XPosition:=", "-1.000000meter", _"YPosition:=", "-0.500000meter", _"ZPosition:=", "-0.500000meter", _"XSize:=", "2.000000meter", _"YSize:=", "1.000000meter", _"ZSize:=", "1.000000meter"), _Array("NAME:Attributes", _"Name:=", "AirBox", _"Flags:=", "", _"Color:=", "(255 255 0)", _"Transparency:=", 0.75, _"PartCoordinateSystem:=", "Global", _"MaterialName:=", "vacuum", _"SolveInside:=", true)Set oModule = oDesign.GetModule("BoundarySetup")oModule.AssignRadiation _Array("NAME:ABC", _"Objects:=", Array("AirBox"))Set oModule = oDesign.GetModule("AnalysisSetup")oModule.InsertSetup "HfssDriven", _Array("NAME:Setup150MHz", _"Frequency:=", "2.50000GHz", _"PortsOnly:=", false, _"maxDeltaS:=", 0.020000, _"UseMatrixConv:=", false, _"MaximumPasses:=", 25, _"MinimumPasses:=", 1, _"MinimumConvergedPasses:=", 1, _"PercentRefinement:=", 20, _"ReducedSolutionBasis:=", false, _"DoLambdaRefine:=", true, _"DoMaterialLambda:=", true, _"Target:=", 0.3333, _"PortAccuracy:=", 2, _"SetPortMinMaxTri:=", false) |
?
?
審核編輯:湯梓紅
評論
查看更多