Конформный массив

Поддержка массивов с пользовательской геометрией

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,0) где ϕn угол азимута nth элемент массива.

Установите число элементов и рабочую частоту массива.

N = 60;
fc = 400e6;

Вычислите интервал элемента в радианах.

theta = 360/N;
thetarad = deg2rad(theta);

Выберите радиус так, чтобы межэлементный arclength был половиной длины волны.

arclength = 0.5*(physconst('LightSpeed')/fc);
radius = arclength/thetarad;

Вычислите углы азимута элемента. Углы азимута должны находиться в диапазоне (-180,180).

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'))