Main Content

Design Variations of Microstrip Patch Antenna Using PCB Stack

Use the pcbstack to design basic, parasitic, direct-coupled, and CP patch antennas.

Setup parameters.

vp = physconst("lightspeed");
f = 850e6;
lambda = vp./f;

Design Basic Patch Antenna

Set the length and width of the patch and the groundplane.

Lp = lambda(1)/2;
Wp = lambda(1)/2;
Lgp = 0.75.*lambda(1);
Wgp = 0.75.*lambda(1);
h = 2.e-3; 
p1 = antenna.Rectangle(Length=Lp, Width=Wp, NumPoints=30);
p2 = antenna.Rectangle(Length=Lgp, Width=Wgp);
d1 = dielectric("Air");

Define the properties of the PCB stack.

basicPatch = pcbStack;
basicPatch.Name = "Basic Patch";
basicPatch.BoardThickness = h;
d1.Thickness = h;
basicPatch.BoardShape = p2;
basicPatch.Layers = {p1,d1,p2};
basicPatch.FeedLocations = [-lambda(1)/8 0 1 3];
figure
show(basicPatch)

Plot the impedance of the basic patch antenna.

freq1 = linspace(f(1)-0.05*f(1),f(1) + 0.05*f(1),51);
figure
impedance(basicPatch,freq1)

Plot the radiation pattern of the basic patch antenna.

figure
pattern(basicPatch,f(1))

Design Parasitic Patch Antenna

Set the dimensions for the patch.

L = 0.15;
W = 1.5*L;
stripL = L;
gapx = 0.015;
gapy = 0.01;
r1 = antenna.Rectangle(Center=[0 0], Length=L, Width=W);
r2 = antenna.Rectangle(Center=[L/2+stripL/2+gapx 0], Length=stripL,...
    Width=W, NumPoints=[2 20 2 20]);
r3 = antenna.Rectangle(Center=[-L/2-stripL/2-gapx 0], Length=stripL,...
    Width=W, NumPoints=[2 20 2 20]);
r = r1 + r2 + r3; 
figure
show(r)

Set the dimensions of the groundplane.

Lgp = 0.55;
Wgp = 0.4;
g1  = antenna.Rectangle(Center=[0 0], Length=Lgp, Width=Wgp);

Define the properties of the PCB stack. Create a pcb stack by driving the center radiator.

parasitic_patch = pcbStack;
parasitic_patch.BoardShape = g1;
parasitic_patch.BoardThickness = 0.007;
parasitic_patch.Layers = {r,g1};
parasitic_patch.FeedLocations = [(L)/4 0 1 2];
figure
show(parasitic_patch)

Plot the S-parameters of the parasitic patch antenna.

s = sparameters(parasitic_patch,linspace(0.8e9,1e9,11));
figure
rfplot(s)

Plot the radiation pattern of the parasitic patch antenna.

figure
pattern(parasitic_patch,0.896e9)

Design Direct-coupled Patch Antenna

r2 = copy(r1);
r2.Center = [lambda/1.25 0];
r3 = copy(r1);
r3.Center = [-lambda/1.25 0];
r = r1+ r2 + r3;
figure
show(r)

Strip join the sections.

r4 = antenna.Rectangle(Length=0.65*lambda, Width=0.02*lambda,...
    Center=[lambda/2 0], NumPoints=[20 2 20 2]);
r5 = copy(r4);
r5.Center = [-lambda/2 0];
s = r + r4 + r5;
figure
show(s)

Define the properties of the PCB stack.

g1.Length = 0.8;
series_patch = pcbStack;
series_patch.BoardShape = g1;
series_patch.Layers = {s,g1};
series_patch.FeedLocations = [L/4 0 1 2];
figure
show(series_patch)

Plot the radiation pattern at 1 GHz for the direct-coupled patch antenna.

figure
pattern(series_patch,1e9)

Mesh the antenna using maximum edge length of 0.03 m.

figure
mesh(series_patch, MaxEdgeLength=0.03)

Plot the impedance of the direct-coupled patch antenna for the frequency range, 0.8 GHz to 1.2 GHz.

figure
impedance(series_patch,linspace(0.8e9,1.2e9,81))

Design Circularly Polarized Patch - Truncated Corners

Set the length and width of the patch and the groundplane.

Lp = lambda(1)/2;
Wp = lambda(1)/2;
Lgp = 0.75.*lambda(1);
Wgp = 0.75.*lambda(1);
h = 2.e-3;

Create the base shape for the patch.

p1 = antenna.Rectangle(Length=Lp, Width=Wp, NumPoints=20);

Truncate the corners of the rectangle.

Lcorner = 0.25*Lp;
Wcorner = 0.25*Wp;
cornerCenter1 = [-Lp/2,Wp/2 0];
cornerCenter2 = [Lp/2,-Wp/2 0];
pcorner1 = antenna.Rectangle(Length=Lcorner, Width=Wcorner);
pcorner1 = rotateZ(pcorner1,45);
pcorner1 = translate(pcorner1,cornerCenter1);
pcorner2 = antenna.Rectangle(Length=Lcorner, Width=Wcorner);
pcorner2 = rotateZ(pcorner2,45);
pcorner2 = translate(pcorner2,cornerCenter2);
pradiator = p1 - pcorner1 - pcorner2;

Create the groundplane shape.

p2 = antenna.Rectangle(Length=Lgp, Width=Wgp);

Define the dielectric Layer.

d1 = dielectric("Air");

Define the properties of the PCB stack for the circularly polarized patch.

truncatedCornerPatch = pcbStack;
truncatedCornerPatch.Name = "Basic Patch";
truncatedCornerPatch.BoardThickness = h;
d1.Thickness = h;
truncatedCornerPatch.BoardShape = p2;
truncatedCornerPatch.Layers = {pradiator,d1,p2};
truncatedCornerPatch.FeedLocations = [-lambda(1)/8 0 1 3];
figure
show(truncatedCornerPatch)

Plot impedance of the circularly polarized antenna.

figure
impedance(truncatedCornerPatch,freq1)

See Also