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