Choose number of elements, frequency of operation and the azimuth and elevation angle to steer the main beam of the array.
N = 11; fc = 28e9; az = 30; el = 20;
Design a linear array at the desired frequency. The default element is a dipole. Find the phase shifts to apply on each element of the linear array for controlling the main beam in the azimuthal direction. Note, that the distance of separation is chosen to be half-wavelength to ensure no grating lobes.
l = design(linearArray,fc); elem = l.Element; elem.Tilt = 90; l.NumElements = N; figure show(l)
ps_az = phaseShift(l,fc,[az;0]);
Compute the phase shifts for the steering in elevation. To do this, we modify the geometry of our initial linear array for the echelon configuration along z.
elem.Tilt = 90; elem.TiltAxis = [0 1 0]; l.Tilt = 90; l.TiltAxis = [0 1 0]; l.ElementSpacing = 1.05*(elem.Length) ; figure show(l)
ps_el = phaseShift(l,fc,[0;el]);
Create a N x N rectangular array comprising of N, 1 X N linear arrays stacked along the positive and negative z-directions.
l.Tilt = 0; elem.Tilt = 0; l.PhaseShift = ps_az; c = conformalArray; zposn = fliplr((-N+1)/2:1:(N-1)/2); for i = 1:N c.Element{i} = l; c.ElementPosition(i,:) = [0,0,zposn(i)*l.ElementSpacing]; end figure show(c)
Assign the sub-array level phase shifts and compute pattern
c.PhaseShift = ps_el; figure pattern(c,fc);
figure patternElevation(c,fc,az);
Note the actual peak location varies from the theoretical computed due to mutual coupling
Using the installed antenna capability, allows for an initial approximate analysis of the antenna array by including a large structure in its vicinity. For this example provide an STL file of a large metallic reflector positioned a quarter-wavelength away from the array. The analysis treats the array using a full-wave Method of Moments (MoM) approach and the large reflector is handled using the Physical Optics (PO) approximation.
lambda = physconst('lightspeed')/fc; ref_offset = lambda/4; p = platform; p.FileName = 'GroundPlane.stl'; p.Units = 'm'; p.Tilt = 90; f = installedAntenna; f.Platform = p; f.Element = c.Element; f.ElementPosition = c.ElementPosition; f.ElementPosition(:,2) = ref_offset; f.FeedPhase = ps_el; figure show(f)
figure pattern(f,fc)