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

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

Объект 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'))