Сравнение передачи антенной решетки и получает коллектор

Этот пример вычисляет и сравнивает передачу, и получите коллекторы для основной антенной решетки полуволнового диполя. Коллектор массивов является основным свойством антенных решеток, и в передаче, и получите настройки. Передача и получает коллекторы, теоретически то же самое из-за теоремы взаимности. Этот пример подтверждает это равенство, таким образом обеспечивающее важную верификацию вычислений, выполняемых Antenna Toolbox™.

Аналитический Setup

Задайте переменные, необходимые для вычисления передачи, и получите коллекторы антенны. Частота для анализа составляет 300 МГц, который приводит к длине волны свободного пространства приблизительно 1. Задайте углы развертки для азимута и вертикального изменения. Эти переменные будут использоваться, чтобы вычислить положения в далеком поле антенны, в которой вычисляются электрические и магнитные поля.

fc     = 3e8;
lambda = physconst('lightspeed')/fc;
R      = 100*lambda;
M      = 4;
ZL     = [];              
phi    = 5:5:175;
psi    = 0:5:80;
nphi   = length(phi);
npsi   = length(psi);
np     = nphi*npsi;
PHI    = kron(ones(1,npsi),pi/180*phi);
PSI    = kron(pi/180*psi,ones(1,nphi));

Создайте декартовы координаты для наблюдения и единичных векторов

Азимут и переменные угла возвышения используются, чтобы вычислить точки на сферу с радиусом 100λ и единичные векторы.

antennapos    = [[-(M-1)/2:(M-1)/2]*lambda/2;zeros(2,M)]';
x    = R*cos(PSI).*cos(PHI);
y    = R*cos(PSI).*sin(PHI);
z    = R*sin(PSI);

Points = [x;y;z];

h = [-sin(PHI);cos(PHI);zeros(size(PHI))];
v = [-cos(PHI).*sin(PSI);-sin(PHI).*sin(PSI);cos(PSI)];
u = [cos(PHI).*cos(PSI);sin(PHI).*cos(PSI);sin(PSI)];

Создайте антенную решетку

Создайте антенну полуволнового диполя, расположенную вертикально вдоль оси z. Используйте этот элемент, чтобы создать конформный массив диполей, расположенных в линейной настройке с интервалом полудлины волны между элементами.

d = dipole('Length',lambda/2,'Width',lambda/200); 
elem = [d,d,d,d];
dA   = conformalArray('Element',elem,'ElementPosition',antennapos);
figure;
show(dA)

Figure contains an axes object. The axes object with title conformalArray of dipole antennas contains 12 objects of type patch, surface. These objects represent PEC, feed.

Вычислите коллектор передачи массивов

Используйте EHfields, чтобы вычислить векторы электрического и магнитного поля в режиме передачи для массива. Полевое вычисление на уровне 300 МГц сделано в наблюдательных постах, заданных на сфере далекого поля и рассмотрении вертикального вклада поляризации явным образом, поскольку дипольная ориентация является вертикальной. Анализ проводится таким образом, что элемент при возбуждении имеет a 50Ω загрузите последовательно с источником напряжения, и все другие элементы, которые не являются объектом возбуждения, не имеют никакого внутреннего импеданса.

nomLoad  = lumpedElement('Impedance',ZL);
actLoad  = lumpedElement('Impedance',50);
for i=[1,1:M]
    % setup loads
    for m=1:M
        dA.Element(m).Load = nomLoad;
    end
    dA.Element(i).Load = actLoad;
    % setup active element
    ampTaper = zeros(1,M);
    ampTaper(i) = 1;
    dA.AmplitudeTaper = ampTaper;
    [E,H]    = EHfields(dA,fc,Points);
    Etx(i,:) = sum(E.*v);
end

Вычислите массив, получают коллектор

Чтобы вычислить получить коллектор, рассмотрите инцидент плоской волны на массив с той же поляризацией электрического поля, но напротив в направлении к режиму передачи. Используйте объект planeWaveExcitation и функцию feedCurrent, чтобы вычислить текущее прохождение через подачу в ответ на посягающую плоскую волну.

nomLoad  = lumpedElement('Impedance',ZL);
for m=1:M
    dA.Element(m).Load = nomLoad;
end

for n = 1:np
    dirVec = -u(:,n);
    polVec =  v(:,n);
    p = planeWaveExcitation('Element',dA,'Direction',dirVec,'Polarization',polVec);
    Erx(:,n) = feedCurrent(p,fc).';
end

Вычислите нормированную ошибку между коллекторами

Вычислите нормированную ошибку между передачей и получите коллекторы для каждого элемента в массиве. Измените ошибку построить в зависимости от азимута и углов возвышения соответственно

for i=1:M
    a(i) = Erx(i,:)/Etx(i,:);
    err(i,:) = abs(Erx(i,:)-a(i)*Etx(i,:));
    mse      = sqrt(mean(abs(a(i)*Etx(i,:)).*abs(Erx(i,:))));
    err(i,:) = err(i,:)/mse;
    Etx(i,:) = a(i)*Etx(i,:);
end

ETX = reshape(Etx,M,nphi,npsi);
ERX = reshape(Erx,M,nphi,npsi);
for i = 1:M
    ETXmag(i,:,:) =  abs(squeeze(ETX(i,:,:)))';
    ETXphase(i,:,:) = 180/pi*angle(squeeze(ETX(i,:,:)))';
    ERXmag(i,:,:) =  abs(squeeze(ERX(i,:,:)))';
    ERXphase(i,:,:) = 180/pi*angle(squeeze(ERX(i,:,:)))';
end
ERR = 20*log10(reshape(mean(err),nphi,npsi));

Постройте передачу, получите коллектор и ошибочный шаблон

Передача и получает коллекторы, показывают большую степень подобия в графиках фазы и величине. Это подтверждено диаграммой погрешностей ошибка имеющая приблизительно-40 дБ по промежутку азимута и углов возвышения.

for i=1:M
    figure;
    subplot(221)
    imagesc(phi,psi,squeeze(ETXmag(i,:,:)));
    colorbar
    colormap('jet')
    xlabel('Azimuth [deg]','LineWidth',6);
    ylabel('Elevation [deg]','LineWidth',6);
    title(['Tx magnitude pattern, ant ',num2str(i)],'FontSize',10)

    subplot(222)
    imagesc(phi,psi,squeeze(ETXphase(i,:,:)));
    colorbar
    colormap('jet')
    xlabel('Azimuth [deg]','LineWidth',6);
    ylabel('Elevation [deg]','LineWidth',6);
    title(['Tx phase pattern, ant ',num2str(i)],'FontSize',10)

    subplot(223)
    imagesc(phi,psi,squeeze(ERXmag(i,:,:)));
    colorbar
    colormap('jet')
    xlabel('Azimuth [deg]','LineWidth',6);
    ylabel('Elevation [deg]','LineWidth',6);
    title(['Rx magnitude pattern, ant ',num2str(i)],'FontSize',10);
    
    subplot(224)
    imagesc(phi,psi,squeeze(ERXphase(i,:,:)));
    colorbar
    colormap('jet')
    xlabel('Azimuth [deg]','LineWidth',6);
    ylabel('Elevation [deg]','LineWidth',6);
    title(['Rx phase pattern, ant ',num2str(i)],'FontSize',10);
end

Figure contains 4 axes objects. Axes object 1 with title Tx magnitude pattern, ant 1 contains an object of type image. Axes object 2 with title Tx phase pattern, ant 1 contains an object of type image. Axes object 3 with title Rx magnitude pattern, ant 1 contains an object of type image. Axes object 4 with title Rx phase pattern, ant 1 contains an object of type image.

Figure contains 4 axes objects. Axes object 1 with title Tx magnitude pattern, ant 2 contains an object of type image. Axes object 2 with title Tx phase pattern, ant 2 contains an object of type image. Axes object 3 with title Rx magnitude pattern, ant 2 contains an object of type image. Axes object 4 with title Rx phase pattern, ant 2 contains an object of type image.

Figure contains 4 axes objects. Axes object 1 with title Tx magnitude pattern, ant 3 contains an object of type image. Axes object 2 with title Tx phase pattern, ant 3 contains an object of type image. Axes object 3 with title Rx magnitude pattern, ant 3 contains an object of type image. Axes object 4 with title Rx phase pattern, ant 3 contains an object of type image.

Figure contains 4 axes objects. Axes object 1 with title Tx magnitude pattern, ant 4 contains an object of type image. Axes object 2 with title Tx phase pattern, ant 4 contains an object of type image. Axes object 3 with title Rx magnitude pattern, ant 4 contains an object of type image. Axes object 4 with title Rx phase pattern, ant 4 contains an object of type image.

figure;
imagesc(phi,psi,ERR');
colorbar
colormap('jet')
xlabel('Azimuth [deg]','LineWidth',6);
ylabel('Elevation [deg]','LineWidth',6);
title('Normalized error','FontSize',10)

Figure contains an axes object. The axes object with title Normalized error contains an object of type image.

Подтверждение

Этот пример был разработан в сотрудничестве с профессором Бенджамином Фридлендером в Калифорнийском университете, Санта-Круз.

Смотрите также

|