В этом примере показано, как оптимизировать конструкцию антенны с помощью суррогатного решателя оптимизации. Диаграммы направленности антенн чувствительно зависят от параметров, определяющих формы антенн. Как правило, признаки диаграммы направленности имеют множество локальных оптимумов. Для вычисления диаграммы направленности в этом примере используются функции Toolbox™ антенны.
Антенна Яги-Уды является широко используемой излучающей структурой для различных применений в коммерческом и военном секторах. Эта антенна может принимать телевизионные сигналы в диапазоне частот ОВЧ-УВЧ [1]. «Яги-Уда» - направленная бегущая антенна с единственным ведомым элементом, обычно сложенным диполем или стандартным диполем, который окружён несколькими пассивными диполями. Пассивные элементы образуют отражатель и директор. Эти имена определяют положения относительно управляемого элемента. Диполь отражателя находится позади ведомого элемента в направлении заднего лепестка антенного излучения. Директорный диполь находится перед ведомым элементом в направлении, в котором образуется главный луч.
Укажите исходные расчетные параметры в центре диапазона УКВ [2].
freq = 165e6;
wirediameter = 19e-3;
c = physconst('lightspeed');
lambda = c/freq;Ведомым элементом для антенны Яги-Уды является сложенный диполь, стандартный возбудитель для этого типа антенны. Отрегулируйте параметры длины и ширины сложенного диполя. Поскольку цилиндрические структуры моделируются как эквивалентные металлические полосы, рассчитайте ширину с помощью cylinder2strip утилита доступна в Toolbox™ Антенна. Длина λ/2 на расчетной частоте.
d = dipoleFolded; d.Length = lambda/2; d.Width = cylinder2strip(wirediameter/2); d.Spacing = d.Length/60;
Создайте антенну Яги-Уды с возбудителем в качестве сложенного диполя. Установите длину отражателя и направляющих элементов λ/2. Установите число директоров равным четырем. Задайте расстояние между отражателем и директором соответственно и . Эти настройки обеспечивают начальное предположение и служат отправной точкой для процедуры оптимизации. Показать начальную конструкцию.
Numdirs = 4; refLength = 0.5; dirLength = 0.5*ones(1,Numdirs); refSpacing = 0.3; dirSpacing = 0.25*ones(1,Numdirs); initialdesign = [refLength dirLength refSpacing dirSpacing].*lambda; yagidesign = yagiUda; yagidesign.Exciter = d; yagidesign.NumDirectors = Numdirs; yagidesign.ReflectorLength = refLength*lambda; yagidesign.DirectorLength = dirLength.*lambda; yagidesign.ReflectorSpacing = refSpacing*lambda; yagidesign.DirectorSpacing = dirSpacing*lambda; show(yagidesign)

Перед выполнением процесса оптимизации постройте график диаграммы направленности для начального предположения в 3-D.
fig1 = figure; pattern(yagidesign,freq);

Эта антенна не имеет более высокой направленности в предпочтительном направлении, в зените (отметка = 90 °). Эта первоначальная конструкция антенны Яги-Уды - плохо спроектированный излучатель.
В качестве управляющих переменных для оптимизации используйте следующие переменные:
Длина отражателя (1 переменная)
Длина директора (4 переменные)
Расстояние между отражателями (1 переменная)
Расстояния между директорами (4 переменные)
В терминах одного векторного параметра parasiticVals, используйте следующие настройки:
Длина отражателя = parasiticVals(1)
Длина директора = parasiticVals(2:5)
Расстояние между отражателями = parasiticVals(6)
Расстояния между директорами = parasiticVals(7:10)
В терминах parasiticValsзадают целевую функцию, которая стремится иметь большое значение в 90-градусном направлении, малое значение в 270-градусном направлении и большое значение максимальной мощности между границами угла ширины луча отметки.
type yagi_objective_function2.mfunction objectivevalue = yagi_objective_function2(y,parasiticVals,freq,elang) % yagi_objective_function2 returns the objective for a 6-element Yagi % objective_value = yagi_objective_function(y,parasiticvals,freq,elang) % assigns the appropriate parasitic dimensions, parasiticvals, to the Yagi % antenna y, and uses the frequency freq and angle pair elang to calculate % the objective function value. % The yagi_objective_function2 function is used for an internal example. % Its behavior might change in subsequent releases, so it should not be % relied upon for programming purposes. % Copyright 2014-2018 The MathWorks, Inc. bw1 = elang(1); bw2 = elang(2); y.ReflectorLength = parasiticVals(1); y.DirectorLength = parasiticVals(2:y.NumDirectors+1); y.ReflectorSpacing = parasiticVals(y.NumDirectors+2); y.DirectorSpacing = parasiticVals(y.NumDirectors+3:end); output = calculate_objectives(y,freq,bw1,bw2); output = output.MaxDirectivity + output.FB; objectivevalue= -output; % To maximize end function output = calculate_objectives(y,freq,bw1,bw2) %calculate_objectives calculate the objective function % output = calculate_objectives(y,freq,bw1,bw2) Calculate the directivity % in az = 90 plane that covers the main beam, sidelobe and backlobe. % Calculate the maximum directivity, sidelobe level and backlobe and store % in fields of the output variable structure. [es,~,el] = pattern(y,freq,90,0:1:270); el1 = el < bw1; el2 = el > bw2; el3 = el>bw1&el<bw2; emainlobe = es(el3); esidelobes =([es(el1);es(el2)]); Dmax = max(emainlobe); SLLmax = max(esidelobes); Backlobe = es(end); F = es(91); B = es(end); F_by_B = F-B; output.MaxDirectivity= Dmax; output.MaxSLL = SLLmax; output.BackLobeLevel = Backlobe; output.FB = F_by_B; end
Установите границы для управляющих переменных.
refLengthBounds = [0.4;
0.6];
dirLengthBounds = [0.35 0.35 0.35 0.35; % lower bound on director length
0.495 0.495 0.495 0.495]; % upper bound on director length
refSpacingBounds = [0.05; % lower bound on reflector spacing
0.30]; % upper bound on reflector spacing
dirSpacingBounds = [0.05 0.05 0.05 0.05; % lower bound on director spacing
0.23 0.23 0.23 0.23]; % upper bound on director spacing
LB = [refLengthBounds(1) dirLengthBounds(1,:) refSpacingBounds(1) dirSpacingBounds(1,:) ].*lambda;
UB = [refLengthBounds(2) dirLengthBounds(2,:) refSpacingBounds(2) dirSpacingBounds(2,:) ].*lambda;Задайте начальную точку для оптимизации и границы угла ширины луча отметки.
parasitic_values = [ yagidesign.ReflectorLength, ... yagidesign.DirectorLength, ... yagidesign.ReflectorSpacing ... yagidesign.DirectorSpacing]; elang = [60 120]; % elevation beamwidth angles at az = 90
Для поиска глобального оптимума целевой функции используйте surrogateopt в качестве решателя. Задайте опции, чтобы разрешить 500 оценок функций, включить начальную точку, использовать параллельные вычисления и использовать 'surrogateoptplot' функция графика. Чтобы понять 'surrogateoptplot' график, см. Интерпретировать суррогатеоптплот..
surrogateoptions = optimoptions('surrogateopt','MaxFunctionEvaluations',500,... 'InitialPoints',parasitic_values,'UseParallel',true,'PlotFcn','surrogateoptplot'); rng(4) % For reproducibility optimdesign = surrogateopt(@(x) yagi_objective_function2(yagidesign,x,freq,elang),... LB,UB,surrogateoptions);

Surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
surrogateopt нашел точку, дающую значение объективной функции -70. Изучите влияние оптимизированных параметров на диаграмму направленности антенны.
Постройте график оптимизированной диаграммы направленности антенны на расчетной частоте.
yagidesign.ReflectorLength = optimdesign(1); yagidesign.DirectorLength = optimdesign(2:5); yagidesign.ReflectorSpacing = optimdesign(6); yagidesign.DirectorSpacing = optimdesign(7:10); fig2 = figure; pattern(yagidesign,freq)

Видимо, антенна теперь излучает значительно больше мощности в зените.
Чтобы лучше понять поведение в двух ортогональных плоскостях, постройте график нормированной величины электрического поля в плоскости Е и плоскости Н, то есть азимут = 0 и 90 ° соответственно.
fig3 = figure; pattern(yagidesign,freq,0,0:1:359);

fig4 = figure; pattern(yagidesign,freq,90,0:1:359);

Оптимизированная конструкция показывает значительное улучшение диаграммы направленности излучения. Более высокая направленность достигается в нужном направлении к зениту. Задний лепесток мал, что приводит к хорошему соотношению «спереди-назад» для этой антенны. Вычислите направленность в зените, отношение спереди к спине и ширину луча в плоскости E и плоскости H.
D_max = pattern(yagidesign,freq,0,90)
D_max = 10.2145
D_back = pattern(yagidesign,freq,0,-90)
D_back = -48.1770
F_B_ratio = D_max - D_back
F_B_ratio = 58.3915
Eplane_beamwidth = beamwidth(yagidesign,freq,0,1:1:360)
Eplane_beamwidth = 54
Hplane_beamwidth = beamwidth(yagidesign,freq,90,1:1:360)
Hplane_beamwidth = 68
Оптимизированная антенна Яги-Уды достигает прямой направленности 10,2 дБи, что переводится в 8,1 дБд (относительно диполя). Этот результат немного меньше значения коэффициента усиления, указанного в таблице в ссылке [2] (8,5 дБд). Отношение спереди/сзади составляет 60 дБ; это часть количества, которое оптимизатор максимизирует. Оптимизированная антенна Яги-Уда имеет ширину луча E-плоскости 54 град, в то время как в спецификации указана ширина луча E-плоскости 56 град. Ширина луча H-плоскости оптимизированной антенны Yagi-Uda составляет 68 град, тогда как значение в таблице данных составляет 63 град. Пример не касается согласования импеданса по полосе.
Сведите в таблицу начальные расчетные предположения и окончательные оптимизированные проектные значения.
yagiparam= {'Reflector Length';
'Director Length - 1'; 'Director Length - 2';
'Director Length - 3'; 'Director Length - 4';
'Reflector Spacing'; 'Director Spacing - 1';
'Director Spacing - 2';'Director Spacing - 3';
'Director Spacing - 4'};
initialdesign = initialdesign';
optimdesign = optimdesign';
T = table(initialdesign,optimdesign,'RowNames',yagiparam)T=10×2 table
initialdesign optimdesign
_____________ ___________
Reflector Length 0.90846 0.92703
Director Length - 1 0.90846 0.71601
Director Length - 2 0.90846 0.7426
Director Length - 3 0.90846 0.68847
Director Length - 4 0.90846 0.75779
Reflector Spacing 0.54508 0.3117
Director Spacing - 1 0.45423 0.28684
Director Spacing - 2 0.45423 0.23237
Director Spacing - 3 0.45423 0.21154
Director Spacing - 4 0.45423 0.27903
[1] Баланис, К. А. Теория антенн: анализ и дизайн. 3-й ред. Нью-Йорк: Уайли, 2005, с. 514.
[2] В Интернете по адресу: https://amphenolprocom.com/products/base-station-antennas/2450-s-6y-165