Объект 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
. Конформный подход массивов является более общим, потому что он позволяет вам указывать элементы массива в произвольных направлениях. UCA ограничивает направления элемента массива, чтобы лечь в плоскости массива. Этот пример иллюстрирует, как можно использовать Системный объект phased.ConformalArray
, чтобы создать любую другую форму массивов. Примите рабочую частоту 400 МГц. Настройте массив путем определения arclength между элементами, чтобы быть 0.5 где длина волны, соответствующая рабочей частоте. Элементы массива лежат в x-y-plane. Элемент нормальные направления установлен в где угол азимута элемент массива.
Установите число элементов и рабочую частоту массива.
N = 60; fc = 400e6;
Вычислите интервал элемента в радианах.
theta = 360/N; thetarad = deg2rad(theta);
Выберите радиус так, чтобы межэлементный arclength был половиной длины волны.
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'))