В этом примере показано, как оптимизировать треугольную микрополосковую антенну закрашенной фигуры, чтобы максимизировать ее пропускную способность, таким образом, что ее усиление остается постоянным.
Задайте начальную геометрию антенны.
% 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
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 dBi.
% 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]};
Чтобы оптимизировать антенну, используйте оптимизировать функцию.
figure; % Figure to display the convergence trend % Optimize optAnt = optimize(ant, fc, 'maximizeBandwidth', ... propNames, bounds, ... 'Constraints', {'Gain > 8.5'}, ... 'FrequencyRange', freqRange, ... 'UseParallel', true);

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

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

pattern(optAnt, fc)

rfplot(sparameters(optAnt, freqRange))

Наблюдайте пропускную способность антенны после оптимизации.