Этот пример анализирует поведение импеданса питаемой центром дипольной антенны в различном разрешении/размере mesh и на одной частоте операции. Сопротивление и реактивное сопротивление диполя по сравнению с теоретическими результатами. Относительная кривая сходимости устанавливается для импеданса.
Диполь по умолчанию имеет ширину 10 см. Уменьшите ширину до 1 см и внесите изменение в дипольную Ширину параметра.
mydipole = dipole; w = 1e-2; mydipole.Width = w;
Вычислите и сохраните импеданс и количество треугольных фасетов в mesh при использовании mesh по умолчанию. Поскольку дипольная длина составляет 2 м, мы выбираем аналитическую частоту в качестве частоты полудлины волны , где c, скорость света.
c = 2.99792458e8; f = c/(2*mydipole.Length); Zbaseline = impedance(mydipole,f); meshdata = mesh(mydipole); Nbaseline = meshdata.NumTriangles; Mbaseline = meshdata.MaxEdgeLength;
Создайте параметры, чтобы сохранить импеданс, относительное изменение в импедансе и размере mesh.
Zin = Zbaseline; numTri = Nbaseline; Ztemp = Zin(1);
Треугольная поверхностная mesh подразумевает дискретизацию поверхностной геометрии в небольшие плоские треугольники. Все поверхности антенны в Антенне Toolbox� дискретизируются в треугольники. Можно оценить точность результатов симуляции путем универсального совершенствования mesh. Чтобы задать разрешение mesh, обеспечьте размер максимальной длины ребра, т.е. самую длинную сторону треугольника среди всех треугольников в mesh, до анализа.
Для каждого значения максимальной длины ребра обновите mesh, вычислите импеданс на предопределенной рабочей частоте и вычислите количество треугольников в mesh. Сохраните импеданс и количество треугольников в mesh для последующего анализа. Наконец, вычислите относительное изменение в импедансе антенны между последующими улучшениями mesh, пока желаемому критерию сходимости не будут соответствовать.
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];
В конце этого анализа, сопротивления, и реактивное сопротивление, . Это значение находится в хорошем соглашении с результатами, о которых сообщают в [1], [3]. Лучшие результаты получены с адаптивным алгоритмом улучшения mesh, который подразумевает выборочное улучшение mesh в области максимальной числовой ошибки. Для этого случая относительную кривую сходимости показывают ниже
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] С. Н. Макаров, 'Антенна и Моделирование EM с MATLAB', p.66, Вайли, 2002.
[2] К. А. Баланис, 'Теория Антенны. Анализ и проектирование', p.514, Вайли, Нью-Йорк, 3-й Выпуск, 2005
[3] Р. К. Хансен, "Диполи Картера и Резонирующие Диполи", Продолжения Симпозиума Приложения Антенны, Парка Аллертона, Монтичелло, IL, pp.282-284, 21-23-го сентября 2010.