Linear array of cross polarized yagi-uda antennas

13 次查看(过去 30 天)
Hello,
I am trying to generate the radiation pattern for my antenna system which consists of two cross polarized yagi-uda antennas separated by a distance of 31 inches. I have already generated the two identical cross polarized yagi-uda antennas and generated their radiation patterns but I am having trouble joining them into a linear array. I would appreciate any guidance. Below is my code:
% CROSS POLARIZED YAGI-UDA ANTENNAS
% spacing between each cross polarized yagi uda antenna is 31 inches aka
% 0.7874 m
yagiAntenna1 = yagiUda;
yagiAntenna2 = yagiUda;
% setting the exciters of the antennas ( T-Match )
yagiAntenna1.Exciter = dipoleFolded;
yagiAntenna2.Exciter = dipoleFolded;
% setting the space between the exciter
yagiAntenna1.Exciter.Spacing = .0066674;
yagiAntenna2.Exciter.Spacing = .0066674;
% setting the width of the exciters
yagiAntenna1.Exciter.Width = .003;
yagiAntenna2.Exciter.Width = .003;
% setting the lengths of the exciters
yagiAntenna1.Exciter.Length = 0.333375;
yagiAntenna2.Exciter.Length = 0.333375;
% setting the number of directors
yagiAntenna1.NumDirectors = 6;
yagiAntenna2.NumDirectors = 6;
% setting the director lengths
yagiAntenna1.DirectorLength = [.3222752, .3048, .29845, .2921, .2809748, .2809748];
yagiAntenna2.DirectorLength = [.3175, .3048, .29845, .2921, .2809748, .2809748];
% setting the spacing between directors
yagiAntenna1.DirectorSpacing = [.06985, .1397, .2079498, .2238502, .263525, .2667];
yagiAntenna2.DirectorSpacing = [.06985, .1397, .2079498, .2238502, .263525, .2667];
% setting reflector lengths
yagiAntenna1.ReflectorLength = .346075;
yagiAntenna2.ReflectorLength = .346075;
% setting reflector spacing
yagiAntenna1.ReflectorSpacing = .104775;
yagiAntenna2.ReflectorSpacing = .104775;
% setting the tilt angle and axis for the antennas
yagiAntenna1.Tilt = 45;
yagiAntenna2.Tilt = -45;
yagiAntenna1.TiltAxis = 'Z';
yagiAntenna2.TiltAxis = 'Z';
show(yagiAntenna1);
figure;
% combining the antennas into a single antenna
crossPolYagiAntenna1 = conformalArray;
crossPolYagiAntenna1.Element = [yagiAntenna1, yagiAntenna2];
% putting antenna 1 at the origin
crossPolYagiAntenna1.ElementPosition(1,:) = [0 0 0];
crossPolYagiAntenna1.ElementPosition(2,:) = [0 0 .1524];
% applying a 90 degree phase shift between the two antennas
crossPolYagiAntenna1.PhaseShift = [0 90];
show(crossPolYagiAntenna1);figure;
% combining the antennas into a single antenna
crossPolYagiAntenna2 = conformalArray;
crossPolYagiAntenna2.Element = [yagiAntenna1, yagiAntenna2];
% putting antenna 1 at the origin
crossPolYagiAntenna2.ElementPosition(1,:) = [0 0 0];
crossPolYagiAntenna2.ElementPosition(2,:) = [0 0 .1524];
% applying a 90 degree phase shift between the two antennas
crossPolYagiAntenna2.PhaseShift = [0 90];
show(crossPolYagiAntenna2);figure;
frequency = 435e6;
azimuth_range = 0:1:360;
elevation_range = -90:1:90;
% showing the antenna radiation pattern of one of the cross polarized yagi uda antennas at 435 MHz
pattern(crossPolYagiAntenna1,frequency,azimuth_range,elevation_range);figure;
% showing the antenna radiation pattern of the other cross polarized yagi uda antennas at 435 MHz
pattern(crossPolYagiAntenna2,frequency,azimuth_range,elevation_range);

回答(1 个)

Adeline
Adeline 2023-8-18
I understand that you are trying to generate the radiation pattern of an antenna system which consists of two cross polarized yagi-uda antennas separated by 31 inches. The cross polarized yagi-uda in your code has been achieved by combining two yagi-uda antennas using “conformalArray”. Since the required final antenna system would have 4 yagi-uda antennas you can combine them using “phased.HeterogeneousConformalArray” function. The example below illustrates this idea.
Elements =[{yagiAntenna1},{yagiAntenna2},{yagiAntenna1},{yagiAntenna2}];
Comb2crossYagiAntenna = phased.HeterogeneousConformalArray();
Comb2crossYagiAntenna.ElementSet = Elements;
Comb2crossYagiAntenna.ElementIndices = [1 2 3 4];
Comb2crossYagiAntenna.ElementPosition(:,1) = [0; 0; 0];
Comb2crossYagiAntenna.ElementPosition(:,2) = [0; 0; .1524];
Comb2crossYagiAntenna.ElementPosition(:,3) = [.7874; 0; 0];
Comb2crossYagiAntenna.ElementPosition(:,4) = [.7874; 0; .1524];
viewArray(Comb2crossYagiAntenna,'ShowNormals',true);
figure;pattern(Comb2crossYagiAntenna,frequency);

Community Treasure Hunt

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

Start Hunting!

Translated by