В этом примере показано, как оптимизировать треугольную микрополосковую патч-антенну, чтобы максимизировать ее ширину полосы так, чтобы ее усиление оставалось постоянным.
Определите начальную геометрию антенны.
% Define Antenna ant = patchMicrostripTriangular; % Center frequency and frequency range fc = 10e9; % For BW ~20% minFreq = fc * 0.8; maxFreq = fc * 1.2; freqRange = linspace(minFreq, maxFreq, 35); % Initial point ant = design(ant, fc)
ant =
patchMicrostripTriangular with properties:
Side: 0.0210
Height: 0.0012
Substrate: [1×1 dielectric]
GroundPlaneLength: 0.0300
GroundPlaneWidth: 0.0300
PatchCenterOffset: [0 0]
FeedOffset: [0 0.0029]
FeedDiameter: 3.7474e-04
Conductor: [1×1 metal]
Tilt: 0
TiltAxis: [1 0 0]
Load: [1×1 lumpedElement]
Использовать show функция просмотра антенны.
show(ant)

Проанализируйте коэффициент усиления антенны. Запишите максимальный коэффициент усиления антенны перед оптимизацией.
pattern(ant, fc);

Анализ полосы пропускания импеданса антенны с использованием S-параметров.
rfplot(sparameters(ant, freqRange));

Для решения задачи оптимизации потребуются следующие входные данные:
1. Целевая функция: Выбрать 'maximizeBandwidth'в качестве целевой функции. Основная цель этого примера - максимизация полосы пропускания антенны.
2. Конструктивные переменные: выбор длины стороны, высоты треугольной патч-антенны и смещения подачи в качестве управляющих переменных для целевой функции. Длина стороны треугольной накладки будет влиять на усиление переднего лепестка. Высота и местоположение подачи увеличат ширину полосы импеданса антенны и помогут улучшить ее согласование.
3. Ограничения: функция ограничения получает более 8,5 дБи.
% Design Variables % Property Names propNames = {'Side', 'Height', 'FeedOffset'}; % Bounds for the properties {lower bounds; upper bounds} bounds = {0.017 0.001 [0 0.0017]; ... % Specify the FeedOffset vector to move the feed along [x, y] 0.023 0.004 [0.0002 0.0034]};
Для оптимизации антенны используйте optimize функция.
figure; % Figure to display the convergence trend % Optimize optAnt = optimize(ant, fc, 'maximizeBandwidth', ... propNames, bounds, ... 'Constraints', {'Gain > 8.5'}, ... 'FrequencyRange', freqRange, ... 'UseParallel', true);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6).

Установить 'EnableLog'как true, чтобы напечатать номер итерации и наилучшее значение сходимости в командной строке.

Сравните параметры анализа антенны до и после оптимизации.
optAnt
optAnt =
patchMicrostripTriangular with properties:
Side: 0.0190
Height: 0.0029
Substrate: [1×1 dielectric]
GroundPlaneLength: 0.0300
GroundPlaneWidth: 0.0300
PatchCenterOffset: [0 0]
FeedOffset: [2.4368e-05 0.0033]
FeedDiameter: 3.7474e-04
Conductor: [1×1 metal]
Tilt: 0
TiltAxis: [1 0 0]
Load: [1×1 lumpedElement]
show(optAnt)

pattern(optAnt, fc)

rfplot(sparameters(optAnt, freqRange))

После оптимизации проверьте пропускную способность антенны.
Моделирование и анализ комбинированной патч-антенны с зондовым питанием