Этот пример анализирует импедансное поведение дипольной антенны с центральным питанием при меняющемся разрешении/размере сетки и при одной частоте операции. Сопротивление и реактивное сопротивление диполя сравнивают с теоретическими результатами. Для импеданса установлена кривая относительной сходимости.
Диполь по умолчанию имеет ширину 10 см. Уменьшите ширину до 1 см и измените параметр dipole Width.
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;
Создайте параметры для хранения импеданса, относительного изменения импеданса и размера сетки.
Zin = Zbaseline; numTri = Nbaseline; Ztemp = Zin(1);
Треугольный mesh подразумевает дискретизацию геометрии поверхности на маленькие плоские треугольники. Все поверхности антенны в Toolbox� Antenna дискретизированы в треугольники. Можно оценить точность результатов симуляции путем равномерного уточнения 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]. Лучшие результаты получаются с помощью адаптивного алгоритма уточнения сетки, который подразумевает избирательное уточнение сетки в области максимальной числовой ошибки. Для этого случая кривая относительной сходимости показана ниже
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] С. Н. Макаров, 'Antenna and EM Modeling with MATLAB,' p.66, Wiley, 2002.
[2] C. A. Balanis, 'Antenna Theory. Analysis and Design, 'p.514, Wiley, New York, 3rd Edition, 2005
[3] R. C. Hansen, «Carter Dipoles and Resonant Dipoles», Proceedings of the Antenna Application Symposium, Allerton Park, Monticello, IL, pp.282-284, Sep. 21-23-го 2010.