Этот пример показов, как оптимизировать треугольную микрополоску закрашенной фигуры антенну, чтобы максимизировать ее полосу пропускания так, чтобы ее усиление оставалось постоянным.
Задайте начальную геометрию антенны.
% 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
'as 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))
Наблюдайте пропускную способность антенны после оптимизации.
Моделирование и анализ встроенной Закрашенной фигуры антенны Probe-Fed