Hi,
When I use pcbstack my top and bottom layers seem to be offset from the dielectric of the board. I tried to make sure they were centered properly and used the MATLAB docs, but I must be missing something. Any help is much appreciated!
Nick
clear all
close all
clc
c = physconst('lightspeed');
f = 2400e6;
lambda = c/f;
% specs
rH = 0.001016; % radiator width
rW = 0.0198628; % radiator length
fW = 0.001016; % feed arm width
sW = fW; % short arm width
sH = 0.0083058; % distance from end of feed to radiator arm
sep = 0.0027686; % separation between feed arm and short arm
fd = 0.0038608; % distance feed arm goes into into ground plane
fo = 0.02379483; % feed offset from left side of ground plane
trSp = 0.00013746; % clearance around feed (trace clearance)
bW = 0.03403599; % board width
bH = 0.010; % board height
bPcbSp = 0.00025897; % ground plane clearance from pcb edge
bAntSp = 0.000508; % antenna clearance from pcb edge
%
% rH = 1; % radiator width
% rW = 10; % radiator length
% fW = 2; % feed arm width
% sW = fW; % short arm width
% sH = 5; % distance from end of feed to radiator arm
% sep = 4; % separation between feed arm and short arm
% fd = 2; % distance feed arm goes into into ground plane
% fo = 12; % feed offset from left side of ground plane
% trSp = 0.5; % clearance around feed (trace clearance)
% bW = 40; % board width
% bH = 50; % board height
% bPcbSp = 1; % ground plane clearance from pcb edge
% bAntSp = 1; % antenna clearance from pcb edge
% rectangle width / length calculations
b1H = bH;
b1W = bW;
b2W = rW + 2*bAntSp;
b2H = sH + rH + bAntSp - bPcbSp;
g1W = bW - 2*bPcbSp;
g1H = bH - 2*bPcbSp;
g2W = fW + 2*trSp;
g2H = fd + trSp;
fH = sH + fd;
% generate metal shape centers: (0,0) is gnd bottom left
g1X = g1W/2;
g1Y = g1H/2;
g2X = fo;
g2Y = g1H - g2H/2;
fX = fo;
fY = g1H - fd + fH/2;
sX = fX + fW/2 + sep + sW/2;
sY = g1H + sH/2;
rX = sX + sW/2 - rW/2;
rY = g1H + sH + rH/2;
% create metal shape
radArm = antenna.Rectangle('Center',[rX,rY],'Width',rH,'Length',rW);
shortArm = antenna.Rectangle('Center',[sX,sY],'Width',sH,'Length',sW);
feedArm = antenna.Rectangle('Center',[fX,fY],'Width',fH,'Length',fW);
gndBtm = antenna.Rectangle('Center',[g1X,g1Y],'Width',g1H,'Length',g1W);
gndNeg = antenna.Rectangle('Center',[g2X,g2Y],'Width',g2H,'Length',g2W);
shapeTop = radArm + shortArm + feedArm + (gndBtm - gndNeg);
gndBtm = translate(gndBtm,[-g1W/2,-(rY+rH/2)/2,0]);
shapeTop = translate(shapeTop,[-g1W/2,-(rY+rH/2)/2,0]);
% create board shape
b1X = b1W/2 - bPcbSp;
b1Y = b1H/2 - bPcbSp;
b2X = rX;
b2Y = b1Y + b1H/2 + b2H/2;
b1 = antenna.Rectangle('Center',[b1X,b1Y],'Width',b1H,'Length',b1W);
b2 = antenna.Rectangle('Center',[b2X,b2Y],'Width',b2H,'Length',b2W);
boardShape = b1 + b2;
boardShape = translate(boardShape,[bPcbSp,bPcbSp,0]);
boardShape = translate(boardShape,[-bW/2,-(b1H+b2H)/2,0]);
figure
show(shapeTop)
figure
show(gndBtm)
figure
show(boardShape)
% boardShape = antenna.Rectangle('Length',0.6,'Width',0.3);
p = pcbStack;
p.BoardShape = boardShape;
p.BoardThickness = 1.61e-3;
d1 = dielectric('FR4');
p.Layers = {shapeTop,d1,gndBtm};
p.FeedDiameter = .02*lambda/2;
p.FeedLocations = [fX fY-fH/2.1 1];
figure
show(p)

댓글 수: 1

Hyma Harish Vallabhapurapu
Hyma Harish Vallabhapurapu 2019년 11월 20일
편집: Steven Lord 2019년 11월 20일
Hi. I'm actually having a similar problem. My ground plane is not aligned with the antenna plane. Very unfortunate. Seems like a bug in Matlab! Happens whenever I take a cut out of the ground plane.
Also, it seems as though the problem disappears with shapes like circles. I think it is related to this bug https://au.mathworks.com/support/bugreports/details/2066356.
Seems like the latest matlab update fixes it. Yet to test...
[SL: fixed typo in link. The trailing period should not have been part of the link.]

댓글을 달려면 로그인하십시오.

 채택된 답변

Steven Lord
Steven Lord 2019년 11월 20일

0 개 추천

This might be related to Bug Report 2066356 as Hyma Harish Vallabhapurapu posted, but it could also be related to Bug Report 2075957. Both those bugs are reported fixed in release R2019b Update 1.

댓글 수: 1

Nick
Nick 2019년 11월 20일
This has been verified that update 1 fixes the issue I was experiencing.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Design, Analysis, Benchmarking, and Verification에 대해 자세히 알아보기

질문:

2019년 11월 8일

댓글:

2019년 11월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by