Antenna Toolbox Directivity Appears To Saturate

2 visualizaciones (últimos 30 días)
mike summerhays
mike summerhays el 12 de Sept. de 2019
Editada: Honglei Chen el 20 de Sept. de 2019
I'm using the Phased Array System Toolbox R2019b.
I'm trying to run a 16x16 element subarray inside a panel of varying size.
--------------------------------------------------------------------------
If I make the panel 3 x 3 subarrays, I get a reported directivity of 40 dBi. This is the right answer.
fc = 8.5 GHz; lambda = 0.0353 m; element seperation = 0.6 lambda; length of one side of panel = 3*16*0.6*0.0353 = 1.0166 m
Area = 1.0335 m^2; Antenna Gain = 4*pi*A / lambda^2 = 4*pi*1.0335 / 0.0353^2 = 1.0422e+04 => 40.1795 dBi
--------------------------------------------------------------------------
If I make the panel 16 x 16 subarrays, I get a reported directivity of 46 dBi.
Antenna Gain = 4*pi*29.3992 / 0.0353^2 = 2.9648e+05 => 54.7200 dBi is what I think it should be.
If I make the panel 20 x 20 subarrays, I still get a reported directivity of 46 dBi. Source code below.
--------------------------------------------------------------------------
%% Control:
fc = 8.5e9; % Frequency of operation (Hz)
Az_Steer = 0; % Az beam steer (deg)
El_Steer = 0; % El beam steer (deg)
Panel_Subarray_Rows = 20; % Number of sub-arrays in row
Panel_Subarray_Cols = 20; % Number of sub-arrays in column
%% Constants & Derived:
c = physconst('LightSpeed'); % Lightspeed (m/s)
Steer_Vec = [Az_Steer; El_Steer]; % Steering Vector (deg)
Lambda = 3e8/fc; % Wavelength (m)
M = 16; % Sub-array number of elements on each row
N = 16; % Sub-array number of elements on each column
dy = 21.5e-3; % Sub-array spacing between elements on each row (m)
dz = 21.5e-3; % Sub-array spacing between elements on each column (m)
%% Element:
Element = phased.CosineAntennaElement('FrequencyRange',[7.75e9 8.5e9], 'CosinePower',1.0);
% Plot Element Pattern Az and El:
figure
subplot(2,1,1)
pattern(Element,fc,-90:0.5:90,0,'Type','powerdb','CoordinateSystem','polar')
title('Element Az Cut (El Angle = 0 deg)')
subplot(2,1,2)
pattern(Element,fc,0,-90:0.5:90,'Type','powerdb','CoordinateSystem','polar')
title('Element El Cut (Az Angle = 0 deg)')
%% Subarray:
% Create Subarray with Triangular Grid:
Subarray = phased.URA([N M],[dz dy],'Lattice','Triangular','Element',Element);
% View Subarray:
figure
viewArray(Subarray,'Title','BFIC Sub-Array with Triangular Grid');
% Steer Subarray:
Steer_Vec_Sub_Arry = phased.SteeringVector('SensorArray',Subarray,'PropagationSpeed',c);
w_sub = Steer_Vec_Sub_Arry(fc,Steer_Vec);
% Plot Steered Subarray - Az and El:
figure
subplot(2,1,1)
pattern(Subarray,fc,-90:0.5:90,0,'Type','directivity','CoordinateSystem','rectangular', ...
'PropagationSpeed',c,'Weights',w_sub);
title(['Subarray Az Cut (El Angle = 0 deg) For Beamsteer = ' num2str(Az_Steer) ' deg'])
subplot(2,1,2)
pattern(Subarray,fc,0,-90:0.5:90,'Type','directivity','CoordinateSystem','rectangular', ...
'PropagationSpeed',c,'Weights',w_sub);
title(['Subarray El Cut (Az Angle = 0 deg) For Beamsteer = ' num2str(El_Steer) ' deg'])
%% Array Panel:
Panel = phased.ReplicatedSubarray('Subarray',Subarray,...
'Layout','Rectangular',...
'GridSize',[Panel_Subarray_Rows Panel_Subarray_Cols], ...
'GridSpacing','Auto', ...
'SubarraySteering','Phase', ...
'PhaseShifterFrequency',fc);
% Steer Panel:
Steer_Vec_Panel = phased.SteeringVector('SensorArray',Panel,'PropagationSpeed',c);
wts_panel = Steer_Vec_Panel(fc,Steer_Vec);
figure
viewArray(Panel,'Title','Panel Using BFIC');
% Directivity:
figure
subplot(2,1,1)
pattern(Panel,fc,-90:0.5:90,0,'Type','directivity','CoordinateSystem','rectangular', ...
'PropagationSpeed',c,'Weights',wts_panel);
title(['Panel Az Cut (El Angle = 0 deg) For Beamsteer = ' num2str(Az_Steer) ' deg'])
subplot(2,1,2)
pattern(Panel,fc,0,-90:0.5:90,'Type','directivity','CoordinateSystem','rectangular', ...
'PropagationSpeed',c,'Weights',wts_panel);
title(['Panel El Cut (Az Angle = 0 deg) For Beamsteer = ' num2str(El_Steer) ' deg'])

Respuestas (1)

Honglei Chen
Honglei Chen el 20 de Sept. de 2019
Editada: Honglei Chen el 20 de Sept. de 2019
Your array has more than 100 thousand elements so it's very large. Therefore, the calculation probably missed the narrow beam. Are you trying to plot the entire pattern or you just want to compute the directivity at a given direction? I can help provide a workaround offline. I got a directivity of about 58 dB for 16x16 case.
HTH

Categorías

Más información sobre Antennas, Microphones, and Sonar Transducers en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by