exponenta event banner

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

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

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 МГц. Настройте массив, задав длину дуги между элементами равной 0,5 λ, где λ - длина волны, соответствующая рабочей частоте. Элементы массива лежат в плоскости x-y. Нормальные направления элемента задаются равными (/n, 0/, где/n - азимутальный угол n-го элемента массива.

Задайте количество элементов и рабочую частоту массива.

N = 60;
fc = 400e6;

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

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

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

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