Сравнение передающего и приемного манифольда антенной решетки

Этот пример вычисляет и сравнивает передающий и приемный коллекторы для основного полуволнового диполя антенной решетки. Многообразие массива является фундаментальным свойством антенных решеток как в передающей, так и в приёмных строениях. Передающее и приёмное многообразия теоретически одинаковы из-за теоремы о взаимности. Этот пример подтверждает это равенство, таким образом обеспечивая важную верификацию вычислений, выполненных 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. The axes with title conformalArray of dipole antennas contains 12 objects of type patch, surface. These objects represent PEC, feed.

Вычислительный передающий манифольд массива

Используйте EHfields, чтобы вычислить электрические и магнитные вектора поля в режиме передачи для массива. Расчет поля на частоте 300 МГц выполняется в точках наблюдения, заданных в сфере дальнего поля и учитывающих вклад вертикальной поляризации явно, поскольку ориентация дипола вертикальна. Анализ проводится таким образом, что элемент, подвергаемый возбуждению, имеет 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. Axes 1 with title Tx magnitude pattern, ant 1 contains an object of type image. Axes 2 with title Tx phase pattern, ant 1 contains an object of type image. Axes 3 with title Rx magnitude pattern, ant 1 contains an object of type image. Axes 4 with title Rx phase pattern, ant 1 contains an object of type image.

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

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

Figure contains 4 axes. Axes 1 with title Tx magnitude pattern, ant 4 contains an object of type image. Axes 2 with title Tx phase pattern, ant 4 contains an object of type image. Axes 3 with title Rx magnitude pattern, ant 4 contains an object of type image. Axes 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. The axes with title Normalized error contains an object of type image.

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

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

См. также

|