Этот пример будет моделировать и анализировать антенну вивальди с внутренней схемой согласования. Вивальди также известен как экспоненциально коническая щелевая антенна. Антенна обладает широкополосными характеристиками, низкой перекрестной поляризацией и сильно директивным шаблоном. Проект будет реализовываем на однослойной диэлектрической подложке с 2 слоями металла; один для плоской щелевой линии и линия питания с соответствующей схемой на другом слое. Подложку выбирают в виде недорогого FR4 материала толщиной 0,8 мм. Проект предназначен для операции по частоте полосы 3,1 - 10,6 ГГц [1].
Антенна vivaldi предназначена для работы в диапазоне от 3 до 11 ГГц с размерностями 45 40 мм. На самой высокой частоте операции конструкция приблизительно. Определите расчётные параметры антенны как предусмотрено.
Lgnd = 45e-3; Wgnd = 40e-3; Ls = 5e-3; Ltaper = 28.5e-3; Wtaper = 39.96e-3; s = 0.4e-3; d = 5e-3; Ka = (1/Ltaper)*(log(Wtaper/s)/log(exp(1)));
Этот проект состоит из трех слоев; верхний слой представляет собой геометрически сужающуюся форму паза. Это та же форма, что и вивальди в каталоге Antenna Toolbox. Нижний слой состоит из подачи и схемы соответствия. Средний слой является FR4 подложкой. Функция pcbStack (муравей) преобразует любую 2D или 2.5D антенну из каталога в антенну pcb для дальнейшего моделирования и анализа. Создайте антенну vivaldi из каталога и визуализируйте ее. После этого переместите подачу и преобразуйте ее в представление стека и получите доступ к геометрии слоя для дальнейших изменений.
vivaldiant = vivaldi('TaperLength',Ltaper, 'ApertureWidth', Wtaper, ... 'OpeningRate', Ka,'SlotLineWidth', s, ... 'CavityDiameter',d,'CavityToTaperSpacing',Ls, ... 'GroundPlaneLength', Lgnd, 'GroundPlaneWidth', Wgnd,... 'FeedOffset',-10e-3); figure show(vivaldiant); vivaldiant.FeedOffset = -14e-3; ewant = pcbStack(vivaldiant); topLayer = ewant.Layers{1}; figure show(topLayer)
Удалите полосу питания из структуры Вивальди Структура антенны по умолчанию вивальди в каталоге имеет внутреннюю подачу и связанную с ней полосу питания, заданную в центре антенны. В этом примере мы используем модель краевой подачи. Удалите полоску из структуры вивальди.
cutout = antenna.Rectangle('Length',1e-3,'Width',4e-3,'Center',[-0.014,0]); topLayer = topLayer-cutout; figure; show(topLayer);
Ступенчатая линия микрополоски используется как совпадающая схема с поворотом на 90 степени, заканчивающимся радиальным заглушкой боути. Используйте примитив прямоугольной формы в Antenna Toolbox™, чтобы создать шаговую линию микрополоски. Операция логического сложения используется среди примитивов формы для этой цели.
L1 = 8e-3; L2 = 4.1e-3; L3 = 9.1e-3; W1 = 1.5e-3; W2 = 1e-3; W3 = 0.75e-3; H = 0.8e-3; fp = 11.2e-3; th = 90; patch1 = antenna.Rectangle('Length',L1,'Width',W1,... 'Center',[-(Lgnd/2 - L1/2), -(Wgnd/2 - fp - W1/2)],... 'NumPoints', [10,2,10,2]); patch2 = antenna.Rectangle('Length',L2,'Width',W2,... 'Center',[-(Lgnd/2 - L1 - L2/2), -(Wgnd/2 - fp - W1/2)],... 'NumPoints', [5,2,5,2]); patch3 = antenna.Rectangle('Length',W3,'Width',L3,... 'Center',[-(Lgnd/2 - L1 - L2 - W3/2), -(Wgnd/2 - fp - W1/2 + W2/2- L3/2)],... 'NumPoints', [2,10,2,10]);
Создайте радиальную схему соответствия заглушек Чтобы создать радиальную схему соответствия заглушек, мы используем функцию makebowtie. Он обеспечивает входы для радиуса, ширины шейки, угла фланца, центра, формы боути и, наконец, числа точек, чтобы создать форму боути.
Bowtie = em.internal.makebowtie(8.55e-3, W3, th, [0 0 0],'rounded',20); rotatedBowtie = em.internal.rotateshape(Bowtie,[0 0 1],[0 0 0],90); p = antenna.Polygon('Vertices', rotatedBowtie'); radialStub = translate(p, [-(Lgnd/2 - L1 - L2 - W3/2) -(Wgnd/2 - fp - W1/2 + W2/2- L3) 0]); bottomLayer = patch1+patch2+patch3+radialStub; figure; show(bottomLayer);
Создайте форму платы для антенны. Плата в этом случае прямоугольной формы и 45 мм x 40 мм в размере.
boardShape = antenna.Rectangle('Length',Lgnd,'Width',Wgnd); figure; hold on; plot(topLayer) plot(bottomLayer) grid on
Определить диэлектрическую подложку Антенна вивальди построена с помощью FR4 подложки с относительной диэлектрической проницаемостью 4,4 и высотой 0,8 мм.
substrate = dielectric('Name','FR4','EpsilonR', 4.4, 'Thickness', H);
Назначьте слои и задайте подачу Присвоения слои, начиная с верхнего слоя, в этом случае структура vivaldi, далее FR4 диэлектрическая подложка и, наконец, самый нижний слой, который является соответствующей схемой. Краевая подача задается между vivaldi и совпадающей схемой на нижнем слое. Наличие линии питания с соответствующей схемой на нижнем слое уменьшает любое паразитное излучение. Определите также место подачи и диаметр подачи.
vivaldi_Notch = pcbStack;
vivaldi_Notch.Name = 'vivaldiNotch';
vivaldi_Notch.BoardThickness = H;
vivaldi_Notch.BoardShape = boardShape;
vivaldi_Notch.Layers = {topLayer,substrate,bottomLayer};
vivaldi_Notch.FeedLocations = [-(Lgnd/2), -(Wgnd/2 - fp - W1/2), 1, 3];
vivaldi_Notch.FeedDiameter = W1/2;
figure;
show(vivaldi_Notch);
Вычислите импеданс антенны в области значений от 2,5 ГГц до 11 ГГц. Для выполнения этого примера анализ импеданса был предварительно вычислен и сохранен в MAT-файле. Анализ был выполнен с генерацией сетки в автоматическом режиме. Выполните информационный метод на антенне, чтобы получить информацию о состоянии решения, частотах анализа и оценке памяти, необходимой для анализа.
freq = linspace(2.5e9, 11e9,41); bandfreqs = [3.1e9, 10.6e9]; freqIndx = nan.*(ones(1,numel(bandfreqs))); for i = 1:numel(bandfreqs) df = abs(freq-bandfreqs(i)); freqIndx(i) = find(df==min(df)); end load vivaldi_Notch_auto_mesh vivaldiInfo = info(vivaldi_Notch) figure; impedance(vivaldi_Notch, freq);
vivaldiInfo = struct with fields: IsSolved: "true" IsMeshed: "true" MeshingMode: "auto" HasSubstrate: "true" HasLoad: "false" PortFrequency: [1×41 double] FieldFrequency: [] MemoryEstimate: "2.2 GB"
Уточните mesh для проверки сходимости с изменением импеданса по полосе. Автоматически сгенерированная mesh имеет максимальную длину ребра приблизительно 2 см и минимальную длину ребра 3 мм. Самая высокая частота в области анализа составляет 11 ГГц, что соответствует длине волны в свободном пространстве 27,3 мм. Принимая во внимание 10 элементов на длину волны даст нам длину ребра приблизительно 2,7 мм, которая ниже, чем как максимальная, так и минимальная длина ребра, выбранная автоматической мешалкой. После нескольких попыток использование максимальной длины рта 5 мм и минимальной длины ребра 0,8 мм привело к хорошему решению.
figure mesh(vivaldi_Notch, 'MaxEdgeLength',5e-3,'MinEdgeLength',0.8e-3); view(0,90)
Из-за размера mesh количество неизвестных увеличивается, чтобы получить точное решение. Как и прежде решенная структура была сохранена в MAT-файле и загружена здесь для последующего анализа.
load vivaldi_Notch_manual_mesh.mat
figure;
impedance(vivaldi_Notch, freq);
Вычислите коэффициент отражения на входе относительно 50-ом опорного импеданса. Коэффициент отражения ниже -10 дБ для частотной области значений от 3,1 ГГц до 11 ГГц. Сохраните коэффициент отражения для использования позже для вычисления реализованного усиления.
figure; s = sparameters(vivaldi_Notch, freq); rfplot(s); gamma = rfparam(s,1,1);
Реализованный коэффициент усиления антенны включает потери в диэлектрике и из-за любого несоответствия импеданса. Постройте график изменения реализованного коэффициента усиления с частотой в центре координат антенны на (az, el) = (0,0) град.
G = zeros(1,numel(freq)); az = 0; el = 0; for i = 1:numel(freq) G(i) = pattern(vivaldi_Notch,freq(i),az,el); end g = figure; plot(freq./1e9,G,'-*','LineWidth',2); xlabel('Frequency (GHz)'); ylabel('Magnitude (dBi)'); grid on; title('Gain Variation With Frequency');
Вычисление несоответствия и вычисление реализованного усиления
mismatchFactor = 10*log10(1 - abs(gamma).^2); Gr = mismatchFactor.' + G; figure(g); hold on plot(freq./1e9,Gr,'r-.'); legend('Gain','Realized Gain','Location','best') title('Variation of Gain and Realized Gain with Frequency') hold off
Широкая полоса сопротивления не обязательно преобразуется в широкую полосу усиления/шаблона. Наивысший коэффициент усиления достигается в области значений 7 - 10,4 ГГц при значении boresight приблизительно 9,5 дБи. Постройте график 3D шаблона в середине этого поддиапазона, чтобы понять общие характеристики излучения.
dfsub = abs(freq - (10.4e9+7e9)/2); subfreqIndx = find(dfsub==min(dfsub)); figure; pattern(vivaldi_Notch, freq(subfreqIndx));
Центр фазы антенны является локальным центром кривизны фронта фазы дальнего поля [2]. Это может варьироваться с частотой и углом наблюдения. Анализ изменения центра фазы очень важен для систем позиционирования. Это связано с тем, что изменения в центре фазы непосредственно преобразуются в изменения временной задержки, что может повлиять на оценки области значений между передатчиком и приемником. Чтобы понять это, вычислите максимально возможное изменение временной задержки из-за гармонического сигнала в f_min и другого в f_max на наборе углов наблюдения в дальнем поле. Выберите углы над 2 ортогональными плоскостями; первый заданный при повышении = 0 степени, т.е. xy-плоскость, а другой при az = 0 степени, т.е. xz-плоскость. В xy-плоскости мы будем использовать компонент электрического поля для анализа, в xz-плоскости мы будем использовать компонент электрического поля.
Создать точки в дальнем поле и вычислить электрическое поле Задайте радиус сферы дальнего поля и набор углов наблюдения в азимуте и повышении. Выберите две частоты гармонического сигнала на 3 и 11 ГГц соответственно.
az = -180:5:180;
el = -90:5:90;
fmin = freq(freqIndx(1));
fmax = freq(freqIndx(2));
R = 100*299792458/fmin;
coord = 'sph';
phi = 0;
theta = 90 - el;
[Points, ~, ~] = em.internal.calcpointsinspace( phi, theta, R,coord);
Вычислите локальное изменение фазы электронного поля Найдите электрическое поле на двух частотах и преобразуйте в сферический компонент. Поскольку нас интересует максимальное изменение временной задержки, мы сначала вычисляем максимальное изменение фазы между двумя частотами для набора точек в XZ-плоскости.
E_at_fmin = EHfields(vivaldi_Notch,fmin,Points); E_at_fmax = EHfields(vivaldi_Notch,fmax,Points); Eth_at_fmin = helperFieldInSphericalCoordinates(E_at_fmin,phi,theta); Eth_at_fmax = helperFieldInSphericalCoordinates(E_at_fmax,phi,theta); phase_at_fmin = angle(Eth_at_fmin); phase_at_fmax = angle(Eth_at_fmax);
Вычислите изменение задержки между двумя гармоническими сигналами
delta_phase = max(phase_at_fmin-phase_at_fmax) - min(phase_at_fmin-phase_at_fmax); delta_omega = 2*pi*(fmax-fmin); delta_time = pi*delta_phase/180/delta_omega; delta_timeXZ = delta_time*1e12; sprintf("The time delay variation in the XZ-plane is: %2.2f %s",delta_timeXZ,'ps')
ans = "The time delay variation in the XZ-plane is: 2.18 ps"
Повторите процесс для точек на XY-плоскости и вычислите изменение временной задержки из-за изменения.
phi = az; theta = 0; delta_omega = 2*pi*(fmax-fmin); [Points, ~, ~] = em.internal.calcpointsinspace( phi, theta, R,coord); E_at_fmin = EHfields(vivaldi_Notch,fmin,Points); E_at_fmax = EHfields(vivaldi_Notch,fmax,Points); [~,Ephi_at_fmin] = helperFieldInSphericalCoordinates(E_at_fmin,phi,theta); [~,Ephi_at_fmax] = helperFieldInSphericalCoordinates(E_at_fmax,phi,theta); phase_at_fmin = angle(Ephi_at_fmin); phase_at_fmax = angle(Ephi_at_fmax); delta_phase = max(phase_at_fmin-phase_at_fmax) - min(phase_at_fmin-phase_at_fmax); delta_time = pi*delta_phase/180/delta_omega; delta_timeXY = delta_time*1e12; sprintf("The time delay variation in the XY-plane is: %2.2f %s",delta_timeXY,'ps')
ans = "The time delay variation in the XY-plane is: 2.71 ps"
Наблюдение Изменение задержки во времени в двух плоскостях, которые расщепляют центр антенны, показывает, что центр фазы относительно стабилен. Среднее изменение временной задержки приблизительно 2 ps переводится к ошибке максимальной области значений менее 1 мм.
Антенна vivaldi может быть изготовлена с помощью возможности генерации файлов gerber в тулбоксе. В данном примере был выбран разъем SMA Edge от Amphenol [3], и в качестве производственной услуги использовались расширенные схемы [4]. В сложение, на объекте PCBWriter, мы решили не включать слой паяльной маски. Изготовленная антенна показана ниже.
Изготовленная антенна была протестирована с помощью настольного сетевого анализатора. Поскольку верхний предел анализатора составлял 6,5 ГГц, мы сравниваем результаты работы антенны с анализом модели.
fLim = 6.5e9; findx = find(freq>fLim); freq2 = freq(1:findx(1)-1); s_model = sparameters(vivaldi_Notch, freq2); rfplot(s_model); s_proto = sparameters('UWB2.s1p'); hold on rfplot(s_proto) legend('Model','Measured','Location','best')
Предлагаемая антенна охватывает Федеральную комиссию по связи, определяющую спектр UWB, и имеет более 3,5: 1 пропускную способность импеданса (от 3 ГГц до более 11 ГГц). Реализованное усиление антенны, достигнутое в полосе 3-10 ГГц при борезайте, очень близко к результату усиления. Сравнение коэффициента отражения в области значений 3 - 6 ГГц изготовленного прототипа и модели показывает приемлемую эффективность. Коэффициент отражения между 4-4,75 ГГц действительно деградирует примерно до -8 дБ.
[1]. High Gain Vivaldi Antenna for Radar and СВЧ Imaging Applications International Journal of Signal Processing Systems Vol. 3, № 1, июнь 2015 Г. К. Панди, Х. С. Сингх, П. К. Бхарти, А. Панди
[2]. Вишванат Айер, Эндрю Кавано, Сергей Макаров, Р. Дж. Дакворт, 'Self-Supporting Coaxial Antenna with a Integrated Balun and a Linear Array', Труды Симпозиума по применению антенны, Allerton Park, Monticello,
[3]. https://www.mouser.com/datasheet/2/18/2985-6037.PDD_0-918701.pdf