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

Этот пример вычисляет и сравнивает передачу, и получите коллекторы для основной антенной решетки полуволнового диполя. Коллектор массивов является основным свойством антенных решеток, и в передаче, и получите настройки. Передача и получает коллекторы, теоретически то же самое из-за теоремы взаимности. Этот пример подтверждает это равенство, таким образом обеспечивающее важную верификацию вычислений, выполняемых 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)

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

Используйте 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;
imagesc(phi,psi,ERR');
colorbar
colormap('jet')
xlabel('Azimuth [deg]','LineWidth',6);
ylabel('Elevation [deg]','LineWidth',6);
title('Normalized error','FontSize',10)

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

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