主要内容

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

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

设计参数

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

fc = 144.5 e6;wirediameter = 12 e - 3;c = physconst (“光速”);λ= c / fc;Z0 = 50;BW = 0.015 *俱乐部;fmin = fc - 2*(BW);fmax = fc + 2*(BW);Nf = 101;频率= linspace (fmin fmax, Nf);

创建Yagi-Uda天线

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

d =偶极子;d.Length = 0.982 *(λ/ 2);d.Width = cylinder2strip (wirediameter / 2);d.Tilt = 90;d.TiltAxis =“Y”

创建一个以激励器为偶极子的八木田天线。将董事人数设置为4人。元素的长度和元素之间的间距的选择是最初的猜测,将作为优化过程的起点。展示最初的设计。

Numdirs = 4;refLength = 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;yagidesign = 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
% 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);y.ReflectorSpacing = controlVals (2);y.DirectorSpacing = controlVals(3:结束);%解包约束Gmin = constraints.Gmin;Gdev = constraints.Gdeviation;FBmin = constraints.FBmin;S11min = constraints.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.3;驱动器长度的%下限0.7 0.7 0.7];驱动器长度的%上限refSpacingBounds = (0.25;反射器间距的%下限0.65);反射器间距的%上限dirSpacingBounds = [0.01 0.1 0.1 0.1 0.1;导演间距0.2 0.25 0.3 0.3的%下限0.2 0.25 0.35 0.35];%的指针间距上限exciterLengthBounds = (0.45;%激振器长度下限0.6);%激振器长度上限exciterSpacingBounds = [04;.008];LB = [refLengthBounds(1) refSpacingBounds(1) dirSpacingBounds(1,:)].*lambda;UB = [refLengthBounds(2) refSpacingBounds(2) dirSpacingBounds(2,:)].*lambda;parameterBounds。磅=磅;parameterBounds。乌兰巴托=乌兰巴托;Ang = [0 0;90 -90];主波瓣和后波瓣方位角、仰角[z;el]

基于代理的优化

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

%优化器选择优化器=“代孕”如果strcmpi(优化器,“PatternSearch”) optimizerparams = optimoptions(@patternsearch);optimizerparams。UseCompletePoll = true;optimizerparams。PlotFcns = @psplotbestf;optimizerparams。UseParallel = true;optimizerparams。缓存=“上”;optimizerparams。MaxFunctionEvaluations = 1200;optimizerparams。FunctionTolerance = 1飞行;elseifstrcmpi(优化器,“代孕”optimizerparams = optimoptions(@surrogateopt);optimizerparams。UseParallel = true;optimizerparams。MaxFunctionEvaluations = 600;optimizerparams。MinSurrogatePoints = 12;optimizerparams。InitialPoints = initialdesign;其他的错误(优化器不支持的);结束天线设计参数designparams。天线= yagidesign;designparams。边界= parameterBounds;%分析参数analysisparams。CenterFrequency = fc;analysisparams。带宽= BW;analysisparams。ReferenceImpedance = Z0;analysisparams。MainLobeDirection = ang (: 1);analysisparams。BackLobeDirection =盎(:,2);%设置限制约束。S11min = -15;约束。Gmin = 10;约束。Gdeviation = 0.1;约束。FBmin = 20;约束。点球= 75;poolobj =质量;
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。
optimdesign = optimizeAntennaSurrogate (designparams, analysisparams、约束optimizerparams);

surrogateopt停止,因为它超过了'options. maxfunctionevaluments '设置的函数求值限制。

情节优化模式

在设计频率处绘制优化天线图。

yagidesign。ReflectorLength = optimdesign (1);yagidesign。ReflectorSpacing = optimdesign (2);yagidesign。DirectorSpacing = optimdesign(三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 = polarpattern (“gco”);DE_fL = patternElevation (yagidesign fL 0,“高度”, 0:1:359);DE_fU = patternElevation (yagidesign赋0,“高度”, 0:1:359);添加(pE、[DE_fL DE_fU])体育。MagnitudeLim = [-20 15];体育。TitleTop =“E-plane方向性(dBi)”;体育。LegendLabels = {[num2str (fc. / 1 e6),“兆赫”]、[num2str(液体/ 1 e6),“兆赫”]、[num2str (fU. / 1 e6),“兆赫”]};

图;patternElevation (yagidesign fc 90,“高度”, 0:1:359);pH = polarpattern (“gco”);90年,佛罗里达州DH_fL = patternElevation (yagidesign的“高度”, 0:1:359);90年DH_fU =模式(yagidesign,傅,“高度”, 0:1:359);add(pH,[DH_fL, DH_fU]) pH. magnitudelim = [-20 15];pH.TitleTop =“h面方向(dBi) ';pH.LegendLabels = {[num2str (fc. / 1 e6),“兆赫”]、[num2str(液体/ 1 e6),“兆赫”]、[num2str (fU. / 1 e6),“兆赫”]};

优化后的设计在辐射图上有明显的改善。在朝向天顶的理想方向上有较高的方向性。后瓣很小,因此该天线具有良好的前后比。

优化天线的输入反射系数

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

s = sparameters (yagidesign,频率,Z0);图;rfplot(年代);

初步设计与优化设计

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

yagiparam = {反射器长度的“反射器间距”“导演间距- 1”“导演间距- 2”“导演间距- 3”“导演间距- 4”};initialdesign = initialdesign ';optimdesign = optimdesign ';Tgeometry =表(initialdesign optimdesign,“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

制作的天线

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

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

模拟同轴电缆的影响

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

out_radius = 3.51 e - 3;in_radius = 0.91 e - 3;eps_r = 2.95;line_length = 5.05 *λ;coax_cable = rfckt.coaxial;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;

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

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

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

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

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

% %

另请参阅

Baidu
map