Elliptical array using conformalArray function along with the reflector backing is giving error, what could be the reason?

1 view (last 30 days)
Hi,
I am trying to desing an elliptical array, with dipole as array elements with reflector. The show(array) is showing me the geometry of the design, but when I plot the pattern(array,f0), then I am getting error: "Intersection detected in specified geometry."
Attaching the code for your reference.
MATLAB CODE:
%% Design Parameters
f0 = 2.4e9;
c = 3e9;
lam0 = c/f0;
N = 8;
e = 0.5;
ra = 0.05;
rat = sqrt(1-e^2);
rb = ra*rat;
l = 2;
%% Dipole Parameters
dip = dipole;
dip.Length = 0.058709;
dip.Width = 0.0012491;
%% Refelector Parameters
GndPlanelength = 200e-3;
GndPlaneWidth = 200e-3;
r = reflector;
r.Exciter = dip;
r.Spacing = lam0/4;
r.GroundPlaneLength = GndPlanelength;
r.GroundPlaneWidth = GndPlaneWidth;
%% Feed Locations
for n = 1: N
X(n) = ra*rb*cos(2*pi*(n-1)/N)/(sqrt(ra^2*(sin(2*pi*(n-1)/N))^2 + rb^2*(cos(2*pi*(n-1)/N))^2));
Y(n) = ra*rb*sin(2*pi*(n-1)/N)/(sqrt(ra^2*(sin(2*pi*(n-1)/N))^2 + rb^2*(cos(2*pi*(n-1)/N))^2));
pos(n,:) = [X(n) Y(n) lam0/4];
end
%% Feed Phase
phs_element = NaN(N,1);
for n = 1 : N
phs_element(n,:) = (2*pi*n*l/N)*(180/pi);
amp_taper(n,:) = 1;
end
%% Array Parameters
arr = conformalArray;
arr.Element = r;
arr.ElementPosition = pos;
arr.PhaseShift = phs_element;
arr.AmplitudeTaper = amp_taper;
%% Show antenna
figure
show(arr)
%% Antenna Pattern
figure
pattern(arr,f0);
Error using em.EmStructures/checkIntersection
Intersection detected in specified geometry.

Error in conformalArray/meshGenerator (line 417)
checkIntersection(obj);

Error in em.MeshGeometry/updateMesh

Error in em.MeshGeometry/getMesh

Error in em.EmStructures/analyze

Error in em.FieldAnalysisWithFeed/pattern (line 177)
analyze(obj,frequency,ElemNumber,parseobj.Results.Termination);
Thank You,
Biplob Biswas
PhD Research Scholar

Accepted Answer

Pranavkumar Mallela
Pranavkumar Mallela on 6 Jul 2023
Edited: Pranavkumar Mallela on 27 Jul 2023
Hi,
As per my understanding, you are trying to create an elliptical array using the 'conformalArray' function with reflector backing.
While using backing, it is preferred to set the 'Reference' property to the value 'origin' instead of the default value 'feed' in the constructor of 'conformalArray'. This will allow one to catch any intersections in the geometry.
Please find the edited part of the code below:
%% Array Parameters
arr = conformalArray('Reference', 'origin');
arr.Element = r;
arr.ElementPosition = pos;
arr.PhaseShift = phs_element;
arr.AmplitudeTaper = amp_taper;
The intersection in the geometry as follows:
Please go through the following documentation for more information regarding the 'conformalArray' function:
Thanks! Hope this helps!

More Answers (0)

Community Treasure Hunt

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

Start Hunting!