主要内容

六元八木田天线代理优化设计

本例优化了6单元Yagi-Uda天线的方向性和50度 Ω 输入匹配使用一种称为代理优化的全局优化技术。天线的辐射模式和输入阻抗对定义其形状的参数很敏感。必须在其上执行此类优化的多维曲面具有多个局部最优值。这使得寻找满足优化目标的正确参数集的任务特别具有挑战性,并且需要使用全局优化技术。这Yagi-Uda天线的目的是作为一个中继站的一部分,在一个HAM无线电设置。

设计参数

选择VHF频段中心的初始设计参数。

Fc = 144.5e6;测线仪= 12e-3;C = physconst(“光速”);Lambda = c/fc;Z0 = 50;BW = 0.015*fc;fmin = fc - 2*(BW);fmax = fc + 2*(BW);Nf = 101;freq = linspace(fmin,fmax,Nf);

创建Yagi-Uda天线

Yagi-Uda天线的驱动元件是偶极子。这是这种天线的标准励磁器。调整偶极子的长度和宽度参数。由于我们将圆柱形结构建模为等效的金属条,宽度是使用天线工具箱™中的实用函数计算的。长度选择为近似 λ / 2 在设计频率。

D =偶极子;d.Length = 0.982.*(lambda/2);d.Width = cylinder2strip(测线仪/2);d.倾斜度= 90;d.TiltAxis =“Y”

用激振器作为偶极子创建Yagi-Uda天线。将董事人数设置为4人。元素的长度和元素之间的间距的选择是最初的猜测,将作为优化过程的起点。展示初始设计。

Numdirs = 4;反射= 0.25;dirLength = [0.940 0.910 0.850 0.830];refSpacing = 0.35;dirSpacing = [0.15 0.2 0.3 0.3];initialdesign = [refLength refSpacing].*lambda;yagiddesign = yagiUda;yagidesign。励磁器= d;yagidesign。NumDirectors = Numdirs; yagidesign.ReflectorLength = refLength; yagidesign.DirectorLength = dirLength; yagidesign.ReflectorSpacing = refSpacing*lambda; yagidesign.DirectorSpacing = dirSpacing*lambda; show(yagidesign)

图中设计频率的辐射图

在执行优化过程之前,在3D中绘制初始猜测的辐射模式。

模式(yagidesign、fc);

最初的Yagi-Uda天线在首选方向上没有更高的方向性,这意味着在天顶(仰角= 90度),因此是一个设计很差的散热器。

设置优化

使用以下变量作为优化的控制变量:

  • 反射器长度(1个变量)

  • 反射器间距(1个变量)

  • 导演间距(4个变量)

用一个向量参数表示controlVals,设置

  • 反射器长度=controlVals (1)

  • 反射器间距=controlVals (2)

  • 导演间距=controlVals(三6)

在这方面controlVals,设定目标函数,目标函数的目标是在90度方向上方向性值大,在-90度方向上方向性值小,在仰角波束宽角边界之间的最大功率值大。除了方向性目标外,还包括阻抗匹配条件作为约束。任何违反约束的行为都将惩罚目标。

类型yagi_objective_function_surrogate.m
function objectivvalue = yagi_objective_function_surrogate(y,controlVals,fc,BW,ang,Z0,constraints) % YAGI_OBJECTIVE_FUNCTION返回一个6元素Yagi的目标% OBJECTIVE_VALUE = % YAGI_OBJECTIVE_FUNCTION(y,controlVals, FREQ, ang,Z0,constraints),将适当的寄生维度,controlVals分配给Yagi天线y, %并使用频率FREQ,角度对,ang,参考阻抗Z0和%约束来计算目标函数值。YAGI_OBJECTIVE_FUNCTION函数用于内部示例。它的行为可能会在后续版本中改变,因此不应该在编程中依赖它。The MathWorks, Inc. . reflectorlength = controlVals(1);. reflectorspacing = controlVals(2);. directorspacing = controlVals(3:end);%解包约束Gmin = constraints.Gmin;Gdev = constraints.Gdeviation;FBmin =约束。FBmin;S11min =约束。S11min; K = constraints.Penalty; % Calculate antenna port and field parameters output = analyzeAntenna(y,fc,BW,ang,Z0); % Form objective function output1 = output.MaxDirectivity+output.MismatchLoss; % Directivity/Gain at zenith Gain1 = output.MaxDirectivity1+output.MismatchLoss1; % Directivity/Gain at zenith Gain2 = output.MaxDirectivity2+output.MismatchLoss2; % Directivity/Gain at zenith % Gain constraint, e.g. G > 10 c1 = 0; if output1Gdev c1_dev_temp = -Gdev + abs(output1-Gmin); end if abs(Gain1-Gmin)>Gdev c1_dev_temp1 = -Gdev + abs(Gain1-Gmin); end if abs(Gain2-Gmin)>Gdev c1_dev_temp2 = -Gdev + abs(Gain2-Gmin); end c1_dev = (c1_dev_temp+c1_dev_temp1+c1_dev_temp2)/3; % Front to Back Ratio constraint, e.g. F/B > 15 c2 = 0; % if output.FB < FBmin % c2 = FBmin-output.FB; % end c2 = (abs(FBmin-output.FB)+abs(FBmin-output.FB1)+abs(FBmin-output.FB2))/3; % Reflection Coefficient, S11 < -10 c3 = 0; if output.S11 > S11min c3 = -S11min + output.S11; end % Form the objective + constraints objectivevalue = -output1 + max(0,(c1+c1_dev+c2+c3))*K; end function output = analyzeAntenna(ant,fc,BW,ang,Z0) %ANALYZEANTENNA calculate the objective function % OUTPUT = ANALYZEANTENNA(Y,FREQ,BW,ANG,Z0) performs analysis on the % antenna ANT at the frequency, FC, and calculates the directivity at the % angles specified by ANG and the front-to-back ratio. The reflection % coefficient relative to reference impedance Z0, and impedance are % computed over the bandwidth BW around FC. fmin = fc - (BW/2); fmax = fc + (BW/2); Nf = 5; freq = unique([fc,linspace(fmin,fmax,Nf)]); fcIdx = freq==fc; fcIdx1 = freq==fmin; fcIdx2 = freq==fmax; s = sparameters(ant,freq,Z0); Z = impedance(ant,fc); Z1 = impedance(ant,fmin); Z2 = impedance(ant,fmax); az = ang(1,:); el = ang(2,:); Dmax = pattern(ant,fc,az(1),el(1)); Dmax1 = pattern(ant,fmin,az(1),el(1)); Dmax2 = pattern(ant,fmax,az(1),el(1)); Dback = pattern(ant,fc,az(2),el(2)); Dback1 = pattern(ant,fmin,az(2),el(2)); Dback2 = pattern(ant,fmax,az(2),el(2)); % Calculate F/B F_by_B = Dmax-Dback; F_by_B1 = (Dmax1-Dback1); F_by_B2 = (Dmax2-Dback2); % Compute S11 and mismatch loss s11 = rfparam(s,1,1); S11 = max(20*log10(abs(s11))); T = mean(10*log10(1 - (abs(s11)).^2)); T1 = max(10*log10(1 - (abs(s11(fcIdx1))).^2)); T2 = max(10*log10(1 - (abs(s11(fcIdx2))).^2)); % Form the output structure output.MaxDirectivity= Dmax; output.BackLobeLevel = Dback; output.MaxDirectivity1= Dmax1; output.BackLobeLevel1 = Dback1; output.MaxDirectivity2= Dmax2; output.BackLobeLevel2 = Dback2; output.FB = F_by_B; output.FB1 = F_by_B1; output.FB2 = F_by_B2; output.S11 = S11; output.MismatchLoss = T; output.MismatchLoss1 = T1; output.MismatchLoss2 = T2; output.Z = Z; output.Z1 = Z1; output.Z2 = Z2; end

设置控制变量的边界。

refLengthBounds = [0.1;反射器长度下限%0.6);反射器间距上限%dirLengthBounds = [0.3 0.3 0.3 0.3;导线器长度的%下限0.7 0.7 0.7];总监长度上限%refSpacingBounds = [0.25;反射器间距的%下限0.65);反射器间距上限%dirSpacingBounds = [0.01 0.1 0.1 0.1;导向器间距的%下限0.2 0.25 0.3 0.30.2 0.25 0.35 0.35];%指示符间距的上限exciterLengthBounds = [0.45;励磁器长度下限%0.6);励磁器长度上限%exciterSpacingBounds = [.004;.008];LB = [refLengthBounds(1) refSpacingBounds(1) dirSpacingBounds(1,:)].*lambda;UB = [refLengthBounds(2) refSpacingBounds(2) dirSpacingBounds(2,:)].*lambda;parameterBounds。Lb = Lb;parameterBounds。Ub = Ub;Ang = [0 0;90 -90];主瓣、后瓣方位角、仰角[az;el]

基于代理的优化

全局优化工具箱™提供了一个基于代理的优化函数代理.属性指定的选项使用此函数optimoptions函数。在每次迭代中,绘制目标函数的最佳值,并将总迭代次数限制在300次。通过使用匿名函数以及边界和选项结构将目标函数传递给代理函数。优化过程中所使用的目标函数为代理文件中是否可用yagi_objective_function

%优化选项优化器=“代孕”如果strcmpi(优化器,“PatternSearch”) optimizerparams = optimoptions(@patternsearch);optimizerparams。UseCompletePoll = true;optimizerparams。PlotFcns = @psplotbestf;optimizerparams。UseParallel = true;optimizerparams。缓存=“上”;optimizerparams。maxfunctionassessments = 1200;optimizerparams。FunctionTolerance = 1e-2;elseifstrcmpi(优化器,“代孕”optimizerparams = optimoptions(@surrogateopt);optimizerparams。UseParallel = true;optimizerparams。maxfunctionassessments = 600;optimizerparams。MinSurrogatePoints = 12;optimizerparams。InitialPoints = initialdesign;其他的错误(“不支持优化器”金宝app);结束天线设计参数designparams。天线=天线设计;designparams。Bounds = parameter边界;分析参数analysisparams。中心频率= fc;analysisparams。带宽= BW;analysisparams。参考阻抗= Z0;analysisparams。MainLobeDirection = ang(:,1);analysisparams。BackLobeDirection = ang(:,2);%设置约束约束。S11min = -15;约束。Gmin = 10;约束。Gdeviation = 0.1;约束。FBmin = 20;约束。罚款= 75;Poolobj = gcp;
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数:6)。
optimdesign = optimizeAntennaSurrogate(designparams,analysisparams,constraints,optimizerparams);

surrogateopt停止,因为它超过了'options.MaxFunctionEvaluations'设置的函数计算限制。

地块优化模式

在设计频率处画出优化后的天线图。

yagidesign。ReflectorLength = optimdesign(1);yagidesign。ReflectorSpacing = optimdesign(2);yagidesign。DirectorSpacing = optimdesign(3:6);模式(yagidesign fc)

图案的E、h平面切割

为了更好地了解两个正交平面上的行为,在E和h平面上绘制电场的归一化幅度,即方位角分别为0和90度。在极坐标图上启用天线度量,以建立天顶方向、前后比以及E和h平面的波束宽度。

fU = fc+ BW/2;fL = fc-BW/2;图;patternElevation (yagidesign fc 0,“高度”, 0:1:359);pE =极化图(“gco”);DE_fL = patternElevation(yagiddesign,fL,0,“高度”, 0:1:359);DE_fU = patternElevation(yagiddesign,fU,0,“高度”, 0:1:359);add(pE,[DE_fL, DE_fU]) pE。MagnitudeLim = [-20 15];体育。TitleTop =“e面方向性(dBi)”;体育。LegendLabels = {[num2str(fc./1e6),“兆赫”]、[num2str(液体/ 1 e6),“兆赫”]、[num2str (fU. / 1 e6),“兆赫”]};

图;patternElevation (yagidesign fc 90,“高度”, 0:1:359);pH值=极化图(“gco”);DH_fL = patternElevation(yagiddesign,fL,90,“高度”, 0:1:359);DH_fU =图案(yagiddesign,fU,90,“高度”, 0:1:359);add(pH,[DH_fL, DH_fU]) pH. magnitudelim = [-20 15];pH.TitleTop =h面指向性(dBi);pH.LegendLabels = {[num2str(fc./1e6),“兆赫”]、[num2str(液体/ 1 e6),“兆赫”]、[num2str (fU. / 1 e6),“兆赫”]};

优化后的设计在辐射图上有明显的改善。有更高的方向性达到了所期望的方向向天顶。后瓣很小,这使得天线的前后比例很好。

优化天线的输入反射系数

计算了优化后的Yagi-Uda天线的输入反射系数,并绘制了相对于参考阻抗的图 5 0 Ω .-10 dB或更低的值被认为是良好的阻抗匹配。

s =参数(yagiddesign,freq,Z0);图;rfplot(年代);

初始和优化设计制表

将最初的设计猜想和最终的优化设计值制成表格。

yagiparam = {反射器长度的“反射器间距”'导演间距- 1'“导演间距- 2”“导演间距- 3”“导演间距- 4”};Initialdesign = Initialdesign ';Optimdesign = Optimdesign ';Tgeometry = table(初始设计,优化设计,“RowNames”yagiparam)
Tgeometry =6×2表initialdesign optimdesign _____________ ___________反射器长度0.51867 1.1327反射器间距0.72614 0.87689导演间距- 1 0.3112 0.20547导演间距- 2 0.41494 0.4871导演间距- 3 0.62241 0.66081导演间距- 4 0.62241 0.72399

制作的天线

制作了优化后的八木设计。真正的八木需要一个沿纵轴的支撑元件来赋予机械金宝app刚性。这种支撑元金宝app件称为吊臂,通常由非金属材料制成。在这种情况下,pVC管被用来制造吊杆。请注意,天线工具箱yagiUda元素中没有对这个boom的效果进行建模。分析输入匹配的另一种技术是计算和绘制VSWR(电压驻波比)。根据优化设计计算并绘制预测的驻波比。利用SWR计测量了天线的驻波比。该数据保存在CSV文件中。将测量结果与分析叠加。

Vswr_measured = csvread(“SWR_Values_Sep_15.csv”1 0);图vswr(yagidesign,freq,Z0)稍等情节(vswr_measured (: 1) vswr_measured (:, 2),“k -”。)传说(“分析”“测量”)标题(VSWR比较-分析中没有同轴电缆) ylabel (“级”

模拟同轴电缆的影响

连接到制作的八木天线的同轴电缆是RG-58/U,特性阻抗为50 Ω .使用射频工具箱创建此同轴电缆的模型。

Out_radius = 3.51e-3;In_radius = 0.91e-3;Eps_r = 2.95;Line_length = 5.05*lambda;Coax_cable = rckt .同轴;coax_cable。OuterRadius = out_radius;coax_cable。InnerRadius = in_radius;coax_cable。EpsilonR = eps_r; coax_cable.LossTangent = 2e-4; coax_cable.LineLength = line_length;

分析用于操作的频率范围内的同轴电缆,并使用八木的阻抗作为负载。计算同轴电缆和八木天线的输入驻波比。

Zyagi =阻抗(yagidesign、频率);分析(coax_cable频率,Zyagi);图hline = plot(coax_cable,“VSWRin”“没有”);线。LineWidth = 2;持有情节(vswr_measured (: 1) vswr_measured (:, 2),“k -”。)传说(“分析”“测量”)标题(“与同轴电缆模型的VSWR比较”

同轴天线和八木天线组合的VSWR分析曲线与实测数据比较良好。

优化设计结果与预制天线相比具有良好的性能。该天线将用作工作频率为145兆赫的中继站的一部分。

图yagidesign。倾斜= 90;yagidesign。TiltAxis = [0 10 0];显示(yagidesign)

%%

另请参阅