The phased.ConformalArray
позволяет моделировать фазированную решетку с произвольной геометрией. Для примера можно использовать phased.ConformalArray
к проектированию:
Плоский массив с непрямоугольной геометрией, такой как округлый массив
Массив с неоднородной геометрией, такой как линейный массив с переменным интервалом
Некомланарный массив
Когда вы используете phased.ConformalArray
необходимо задать следующие аспекты массива:
Элемент датчика массива
Положения элементов
Направление, перпендикулярное каждому элементу массива
Чтобы создать конформный массив со свойствами по умолчанию, используйте эту команду:
array = phased.ConformalArray
array = phased.ConformalArray with properties: Element: [1x1 phased.IsotropicAntennaElement] ElementPosition: [3x1 double] ElementNormal: [2x1 double] Taper: 1
Этот конформный массив по умолчанию состоит из одной phased.IsotropicAntennaElement
антенна, расположенная в источник локальной системы координат. Направление, нормальное к элементу датчика, составляет 0 ° азимута и 0 ° повышения.
В этом примере показано, как создать однородный круговой массив с 60 элементами. При построении равномерного кругового массива можно использовать любой из phased.UCA
или phased.ConformalArray
Системные объекты. Подход conformal array является более общим, потому что он позволяет вам указывать элементы массива в произвольных направлениях. UCA ограничивает направления элемента массива лежать в плоскости массива. Этот пример иллюстрирует, как вы можете использовать phased.ConformalArray
Системный объект для создания любой другой формы массива. Предположим, что рабочая частота 400 МГц. Настройте массив, задав arclength между элементами равным 0,5 где - длина волны, соответствующая рабочей частоте. Элементы массива находятся в плоскости x-y. Для нормальных направлений элемента задано значение где - азимутальный угол, элемент массива.
Установите количество элементов и рабочую частоту массива.
N = 60; fc = 400e6;
Вычислите интервал между элементами в радианах.
theta = 360/N; thetarad = deg2rad(theta);
Выберите радиус так, чтобы межэлементная дуга составляла половину длины волны.
arclength = 0.5*(physconst('LightSpeed')/fc);
radius = arclength/thetarad;
Вычислите углы азимута элемента. Азимутальные углы должны лежать в области значений .
ang = (0:N-1)*theta; ang(ang >= 180.0) = ang(ang >= 180.0) - 360.0; array = phased.ConformalArray; array.ElementPosition = [radius*cosd(ang);... radius*sind(ang);... zeros(1,N)]; array.ElementNormal = [ang;zeros(1,N)];
Отображение геометрии массива UCA.
viewArray(array)
Постройте график диаграммы направленности массива на 1 ГГц.
pattern(array,1e9,[-180:180],0,'PropagationSpeed',physconst('LightSpeed'),... 'CoordinateSystem','polar','Type','powerdb','Normalize',true)
В этом примере показано, как создать и визуализировать пользовательский геометрический массив, содержащую антенные элементы с пользовательской диаграммой направленности излучения. Диаграмма направленности излучения каждого элемента постоянна над каждым азимутальным углом и имеет косинусоидальный рисунок для углов возвышения.
Определите пользовательский антенный элемент и постройте график ее диаграммы направленности излучения.
az = -180:180; el = -90:90; fc = 3e8; elresp = cosd(el); antenna = phased.CustomAntennaElement('AzimuthAngles',az,... 'ElevationAngles',el,... 'MagnitudePattern',repmat(elresp',1,numel(az))); pattern(antenna,3e8,0,el,'CoordinateSystem','polar','Type','powerdb',... 'Normalize',true);
Задайте местоположения и нормальные направления элементов. Все элементы находятся в плоскости z. Элементы расположены на (1; 0; 0), (0; 1; 0), и (0; -1; 0) метрах. Углы нормального азимута элемента составляют 0 °, 120 ° и -120 ° соответственно. Все нормальные углы возвышения равны 0 °.
xpos = [1 0 0]; ypos = [0 1 -1]; zpos = [0 0 0]; normal_az = [0 120 -120]; normal_el = [0 0 0];
Задайте конформный массив с этими элементами.
array = phased.ConformalArray('Element',antenna,... 'ElementPosition',[xpos; ypos; zpos],... 'ElementNormal',[normal_az; normal_el]);
Постройте график положения и нормальных направлений элементов.
viewArray(array,'ShowNormals',true)
view(0,90)
pattern(array,fc,az,el,'CoordinateSystem','polar','Type','powerdb',... 'Normalize',true,'PropagationSpeed',physconst('LightSpeed'))