exponenta event banner

Суррогатная оптимизация шестиэлементной антенны Яги-Уды

В этом примере показано, как оптимизировать конструкцию антенны с помощью суррогатного решателя оптимизации. Диаграммы направленности антенн чувствительно зависят от параметров, определяющих формы антенн. Как правило, признаки диаграммы направленности имеют множество локальных оптимумов. Для вычисления диаграммы направленности в этом примере используются функции 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. Установите число директоров равным четырем. Задайте расстояние между отражателем и директором соответственно 0,3λ и 0,25λ. Эти настройки обеспечивают начальное предположение и служат отправной точкой для процедуры оптимизации. Показать начальную конструкцию.

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.m
function 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)

Видимо, антенна теперь излучает значительно больше мощности в зените.

Вырезы массива в плоскости E и плоскости H

Чтобы лучше понять поведение в двух ортогональных плоскостях, постройте график нормированной величины электрического поля в плоскости Е и плоскости Н, то есть азимут = 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

См. также

Связанные темы