В этом примере анализируется поведение импеданса дипольной антенны с центральной подачей питания с изменяющимся разрешением/размером ячейки и с одной частотой работы. Сопротивление и реактивное сопротивление диполя сравнивают с теоретическими результатами. Для импеданса устанавливается кривая относительной сходимости.
Диполь по умолчанию имеет ширину 10 см. Уменьшите ширину до 1 см и измените дипольный параметр Width.
mydipole = dipole; w = 1e-2; mydipole.Width = w;
Рассчитайте и сохраните импеданс и количество треугольных фасетов в сетке при использовании сетки по умолчанию. Так как длина диполя составляет 2 m, выбираем частоту анализа как частоту половины длины волны * l), где c - скорость света.
c = 2.99792458e8; f = c/(2*mydipole.Length); Zbaseline = impedance(mydipole,f); meshdata = mesh(mydipole); Nbaseline = meshdata.NumTriangles; Mbaseline = meshdata.MaxEdgeLength;
Создайте параметры для сохранения импеданса, относительного изменения импеданса и размера сетки.
Zin = Zbaseline; numTri = Nbaseline; Ztemp = Zin(1);
Треугольная поверхностная сетка подразумевает дискретизацию геометрии поверхности в небольшие плоские треугольники. Все антенные поверхности в антенном Toolbox� дискретизируются в треугольники. Точность результатов моделирования можно оценить путем равномерного уточнения сетки. Для задания разрешения сетки перед анализом укажите размер максимальной длины кромки, т.е. самую длинную сторону треугольника среди всех треугольников в сетке.
Для каждого значения максимальной длины кромки обновите сетку, рассчитайте импеданс на заданной рабочей частоте и число треугольников в сетке. Сохраните импеданс и количество треугольников в сетке для последующего анализа. Наконец, вычисляют относительное изменение импеданса антенны между последующими уточнениями сетки до тех пор, пока не будет выполнен требуемый критерий сходимости.
exptol = .002; tolCheck = []; n = 1; nmax = 12; pretol = 1; ShrinkFactor = 0.96; while (n < nmax+1)&&(pretol > exptol) Mbaseline(n+1)=Mbaseline(n)*ShrinkFactor^(n-1); meshdata = mesh(mydipole,'MaxEdgeLength',Mbaseline(n+1)); numTri(n+1) = meshdata.NumTriangles; % Check if mesh has changed and only then calculate impedance if numTri(n+1)~=numTri(n) Zin(n+1) = impedance(mydipole,f); Zchange = abs((Zin(n+1)-Ztemp)/Zin(n+1)); else Zin(n+1) = Zin(n); Zchange = pretol; end tolCheck(n) = Zchange; %#ok<SAGROW> pretol = tolCheck(n); Ztemp = Zin(n+1); n = n+1; end tolValue = exptol.*ones(1,n); tolCheck = [nan tolCheck];
В конце этого анализа сопротивление, реактивное сопротивление Rin ≈84Ωand, Xin≈45Ω. Это значение хорошо согласуется с результатами, приведенными в [1], [3]. Лучшие результаты получаются с адаптивным алгоритмом уточнения сетки, который подразумевает выборочное уточнение сетки в области максимальной числовой ошибки. Для этого случая кривая относительной сходимости показана ниже
figure; loglog(numTri,tolCheck,'-x','LineWidth',2) hold on loglog(numTri,tolValue,'-x','LineWidth',2) axis([min(numTri),max(numTri),10^-4,1]) grid on xlabel('Number of triangles') ylabel('Relative change in impedance') legend('Convergence','Goal') title('Relative convergence curve for Impedance')

[1] С. Н. Макаров, «Моделирование антенны и ЕМ с помощью MATLAB», стр. 66, Wiley, 2002.
[2] К. А. Баланис, 'теория антенны. Анализ и дизайн, "стр. 514, Уайли, Нью-Йорк, 3-е издание, 2005
[3] Р. К. Хансен, «Картер Диполи и резонансные диполи», Труды симпозиума по применению антенны, Аллертон Парк, Монтичелло, IL, pp.282-284, сентябрь 21-23-го 2010.