Antenna Toolbox pattern() getting stuck (and gobbling memory) for any dielectric other than 'Air'

14 次查看(过去 30 天)
I'm trying a simple patch microstrip element with the following code; execution time is few seconds with dielectric set to 'Air' but if I change the dielectric to anything else such as 'FR4' or 'TMM10', the code will not finish running even after I leave it running overnight (showing 30+ GB memory usage for MATLAB, and full CPU churn); for background this is MATLAB 2016b and latest antenna toolbox running on a MacBook Pro. Any ideas? Thanks.
clear;
tic;
%%basic parameters
fc = 5.8e9; % central frequency (Hz)
analyzedRange = 1.0e9; % analyzed frequency range (Hz)
frequencyPoints = 51; % sets the analysis resolution
fmin = fc - analyzedRange/2;
fmax = fc + analyzedRange/2;
frequencyRange = unique([linspace(fmin, fmax, frequencyPoints) fc]);
lambda = physconst('lightspeed')/fc; % wavelength (m)
%%patch element
substrate = dielectric('Air');
h = 0.01 * lambda;
% initial length and width estimates
% length sets the frequency, width (mostly) sets the bandwidth
l = 0.5 * (1 - 0.03) * lambda / sqrt(substrate.EpsilonR);
w = 1.5 * l;
% default patch antenna geometry has its boresight towards zenith;
% rotate by 90 degrees about y-axis to align boresight with x-axis
% (also boresight direction for arrays in Phased Array System Toolbox)
patchElement = patchMicrostrip( ...
'Substrate', substrate, ...
'Height', h, ...
'Length', l, ...
'Width', w, ...
'GroundPlaneLength', lambda, ...
'GroundPlaneWidth', lambda, ...
'FeedOffset', [l/4 0], ...
'TiltAxis', [0 1 0], ...
'Tilt', 90);
figure; pattern(patchElement,fc);
toc;

回答(1 个)

Nirja Mehta
Nirja Mehta 2017-2-7
That is expected. The default patch is designed for operation at 1.67 GHz. So if you operate it at 5.8 GHz, the wavelength is much smaller, which results in more number of elements in the mesh -(surface and volume discretization of the structure). In a sense you could say the structure itself looks bigger at that frequency by approximately a factor of 5.8/1.67. Bigger mesh, means that the solver takes more time to run to solve it.
You could start off by designing your antenna at 5.8 GHz with a dielectric using "design" function in Antenna toolbox in the following way:
clear;
tic;
%%basic parameters
fc = 5.8e9; % central frequency (Hz)
%%patch element
substrate = dielectric('FR4');
patchElement = patchMicrostrip('Substrate', substrate);
patchElement = design(patchElement,5.8e9);
figure;
pattern(patchElement,fc);
toc;

类别

Help CenterFile Exchange 中查找有关 Patch Antennas 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by