В этом примере показано, как оптимизировать проект антенны с помощью суррогатного решателя оптимизации. Диаграммы направленности антенн зависят ощутимо от параметров, которые задают формы антенны. Как правило, функции диаграммы направленности имеют несколько локальных оптимумов. Чтобы вычислить диаграмму направленности, этот пример использует функции Antenna Toolbox™.
Антенна Яги-Uda является широко используемой структурой излучения для множества приложений в коммерческих и военных секторах. Эта антенна может получить сигналы TV в области значений VHF-UHF частот [1]. Яги-Uda является направленной антенной волны перемещением с одним управляемым элементом, обычно свернутый диполь или стандартный диполь, который окружается несколькими пассивными диполями. Пассивные элементы формируют отражатель и директора. Эти имена идентифицируют положения относительно управляемого элемента. Диполь отражателя находится позади управляемого элемента, в направлении заднего лепестка излучения антенны. Диполь директора перед управляемым элементом в направлении, где основной луч формируется.
Задайте начальные расчетные параметры в центре полосы VHF [2].
freq = 165e6;
wirediameter = 19e-3;
c = physconst('lightspeed');
lambda = c/freq;
Управляемый элемент для антенны Яги-Uda является свернутым диполем, стандартным возбудителем для этого типа антенны. Настройте параметры длины и ширины свернутого диполя. Поскольку цилиндрические структуры моделируются как эквивалентные металлические полосы, вычисляют ширину с помощью cylinder2strip
служебная функция, доступная в Antenna Toolbox™. Длина на частоте проекта.
d = dipoleFolded; d.Length = lambda/2; d.Width = cylinder2strip(wirediameter/2); d.Spacing = d.Length/60;
Создайте антенну Яги-Uda с возбудителем как свернутый диполь. Установите длины отражателя и элементов директора быть . Определите номер директоров к четыре. Задайте отражатель и директора, располагающего с интервалами как и , соответственно. Эти настройки обеспечивают исходное предположение и служат начальной точкой для процедуры оптимизации. Покажите первоначальный проект.
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 градусов). Этот первоначальный проект антенны Яги-Uda является плохо спроектированным теплоотводом.
Используйте следующие переменные в качестве контрольных переменных для оптимизации:
Длина отражателя (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 obbjective 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 may 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; % We intend 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, side lobelevel 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'
функция plot. Изучать '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)
По-видимому, антенна теперь излучает значительно больше степени в зените.
Чтобы получить лучшее понимание поведения в двух ортогональных плоскостях, постройте нормированную величину электрического поля в электронной плоскости и H-плоскости, то есть, азимуте = 0 и 90 градусов, соответственно.
fig3 = figure; pattern(yagidesign,freq,0,0:1:359);
fig4 = figure; pattern(yagidesign,freq,90,0:1:359);
Оптимизированный проект показывает существенное улучшение в диаграмме направленности. Более высокая направленность достигается в желаемом направлении к зениту. Задний лепесток мал, приводя к хорошему коэффициенту защитного действия для этой антенны. Вычислите направленность в зените, коэффициенте защитного действия и ширине луча в электронной плоскости и H-плоскости.
D_max = pattern(yagidesign,freq,0,90)
D_max = 10.2466
D_back = pattern(yagidesign,freq,0,-90)
D_back = -49.4292
F_B_ratio = D_max - D_back
F_B_ratio = 59.6757
Eplane_beamwidth = beamwidth(yagidesign,freq,0,1:1:360)
Eplane_beamwidth = 54
Hplane_beamwidth = beamwidth(yagidesign,freq,90,1:1:360)
Hplane_beamwidth = 68
Оптимизированная антенна Яги-Uda достигает прямой направленности 10.2 dBi, которая переводит в 8.1 dBd (относительно диполя). Этот результат немного меньше значения усиления, о котором сообщает таблица данных в ссылке [2] (8.5 dBd). Коэффициент защитного действия составляет 60 дБ; это - часть количества, которое максимизирует оптимизатор. Оптимизированная антенна Яги-Uda имеет ширину луча электронной плоскости 54 градусов, тогда как таблица данных перечисляет ширину луча электронной плоскости как 56 градусов, ширина луча H-плоскости оптимизированной антенны Яги-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.94828
Director Length - 1 0.90846 0.7754
Director Length - 2 0.90846 0.74557
Director Length - 3 0.90846 0.74142
Director Length - 4 0.90846 0.6885
Reflector Spacing 0.54508 0.25828
Director Spacing - 1 0.45423 0.29157
Director Spacing - 2 0.45423 0.32266
Director Spacing - 3 0.45423 0.25051
Director Spacing - 4 0.45423 0.25265
[1] Balanis, Теория К. А. Антенны: Анализ и проектирование. 3-й редактор Нью-Йорк: Вайли, 2005, p. 514.
[2] Онлайн в: https://amphenolprocom.com/products/base-station-antennas/2450-s-6y-165