How do you define the circular mesh feed point on a cylindrical dipole built from primary shapes?

조회 수: 2 (최근 30일)
How do you define the circular mesh feedpoint on a cylindrical dipole built from shapes similar to the "Design And Analyze Spherically Capped Biconical Antenna" example. Want to analyze a tubular dipole with end caps extending over the tubes and cannot define a feed point properly like the standard tubular dipole in the Antenna Toolbox.
The feed point affects the radiation pattern and I am too new to Matlab to fix it. Help?
  댓글 수: 1
Barry
Barry 2024년 5월 30일
Here is the code for it:
tubeRadius = 0.0075;
tubeHeight = 0.080;
discRadius = 0.030;
feedHeight1 = 1.0e-3;
feedWidth1 = tubeRadius*2;
feedDia1 = feedWidth1;
freq = linspace(0.7e9,1e9,30);
tube1 = shape.Cylinder(Cap=[0 0],Height=tubeHeight,Radius=tubeRadius);
translate(tube1,[0 0 tubeHeight/2+feedHeight1/2]);
%show(tube1);
%figure;
feed1 = shape.Cylinder(Cap=[0 0],Height=feedHeight1/2,Radius=feedDia1/2, Color= "r");
feed1 = translate(feed1,[0 0 feedHeight1/4]);
%show(feed1);
%figure;
TubeNfeed1 = add(feed1,tube1);
%show(TubeNfeed1);
%figure;
disc1 = shape.Circle(Radius=discRadius);
disc1 =translate(disc1,[0,0,tubeHeight+feedHeight1/2]);
%show(disc1);
capShape1 = add(TubeNfeed1,disc1);
%show(capShape1);
%figure;
capShape1Copy = copy(capShape1);
[~] = rotate(capShape1Copy,180,[0 0 0],[0 1 0]);
antShape1 = add(capShape1,capShape1Copy,RetainShape=false);
show(antShape1);
ant1 = customAntenna(Shape=antShape1);
%[~] = createFeed(_, FeedShape=shape.Cylinder("Radius",feedDia1/2));
feed = createFeed(ant1,[feedDia1/2 feedDia1/2 0],1);
show(ant1)
%figure;
pattern(ant1,868e6)

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

채택된 답변

Suraj Kumar
Suraj Kumar 2024년 8월 2일
Hi Barry,
From what I gather, you want to set up a circular mesh feed point on a cylindrical dipole antenna constructed from fundamental shapes and ensure proper visualization.
Follow the steps below along with the attached code snippet:
1. Ensure proper translation and positioning of the tube and feed by centering the tube around the origin and placing the feed point correctly at the dipole's center. 
tube1 = shape.Cylinder('Cap', [0 0], 'Height', tubeHeight, 'Radius', tubeRadius);
translate(tube1, [0 0 tubeHeight / 2 + feedHeight1 / 2]);
feed1 = shape.Cylinder('Cap', [0 0], 'Height', feedHeight1 / 2, 'Radius', feedDia1 / 2, 'Color', 'r');
translate(feed1, [0 0 feedHeight1 / 4]);
2. Accurately combine the tube, feed, and disc to form one half of the dipole and then mirror this combination to create the other half.
TubeNfeed1 = add(feed1, tube1);
disc1 = shape.Circle('Radius', discRadius);
translate(disc1, [0 0 tubeHeight + feedHeight1 / 2]);
capShape1 = add(TubeNfeed1, disc1);
capShape1Copy = copy(capShape1);
rotate(capShape1Copy, 180, [0 0 0], [0 1 0]);
% Combine both halves to form the full dipole
antShape1 = add(capShape1, capShape1Copy, 'RetainShape', false);
3. Next, set the feed point at the dipole's center with the ‘createFeed’ function, and include the show and pattern functions to validate the antenna geometry and its radiation pattern.
ant1 = customAntenna('Shape', antShape1);
% Define the feed point at the center of the dipole
feed = createFeed(ant1, [0 0 0], 1);
show(ant1);
pattern(ant1, 868e6);
Refer to the output provided below for better understanding:
For further details, kindly refer to the documentation links below:
I hope this works for you!
  댓글 수: 2
Barry
Barry 2024년 8월 6일
Thank you very much Suraj, this is truly a learning experience and aiding my understanding a lot.One gets stuck in a simple example if it does not do the expected, and it is difficult to make that transition just reading the manual if it does not cover your understanding of the subject.
Thanks for the time spent helping me, it built a bridge.

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

추가 답변 (1개)

Chen Wu
Chen Wu 2025년 7월 25일
Hi Suraj
I copied your code (see following), but cannot get your 3D result. I am using 2025a.
Please check
thanks
Chen
tubeRadius = 0.0075;
tubeHeight = 0.080;
discRadius = 0.030;
feedHeight1 = 1.0e-3;
feedWidth1 = tubeRadius*2;
feedDia1 = feedWidth1;
freq = linspace(0.7e9,1e9,30);
tube1 = shape.Cylinder('Cap', [0 0], 'Height', tubeHeight, 'Radius', tubeRadius);
translate(tube1, [0 0 tubeHeight / 2 + feedHeight1 / 2]);
feed1 = shape.Cylinder('Cap', [0 0], 'Height', feedHeight1 / 2, 'Radius', feedDia1 / 2, 'Color', 'r');
translate(feed1, [0 0 feedHeight1 / 4]);
TubeNfeed1 = add(feed1, tube1);
disc1 = shape.Circle('Radius', discRadius);
translate(disc1, [0 0 tubeHeight + feedHeight1 / 2]);
capShape1 = add(TubeNfeed1, disc1);
capShape1Copy = copy(capShape1);
rotate(capShape1Copy, 180, [0 0 0], [0 1 0]);
% Combine both halves to form the full dipole
antShape1 = add(capShape1, capShape1Copy, 'RetainShape', false);
ant1 = customAntenna('Shape', antShape1);
% Define the feed point at the center of the dipole
feed = createFeed(ant1, [0 0 0], 1);
show(ant1);
pattern(ant1, 868e6);

카테고리

Help CenterFile Exchange에서 Antennas and Electromagnetic Propagation에 대해 자세히 알아보기

제품


릴리스

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by