Подрешетки в массивах

Определение подрешеток

В программном обеспечении Phased Array System Toolbox™ subarray является доступным подмножеством элементов массива. Когда вы используете массив, который содержит подрешетки, можно получить доступ к измерениям из подрешеток, но не из отдельных элементов. Точно так же можно выполнить обработку на уровне подрешетки, но не на уровне отдельных элементов. В результате система имеет меньше степеней свободы, чем если бы вы контролировали систему на уровне отдельных элементов.

Преимущества использования подрешеток

Радиолокационные приложения часто используют подрешетки, потому что операции, такие как перемены фазы и аналого-цифровое преобразование, слишком дороги для реализации для каждого элемента. Менее дорого сгруппировать элементы массива через оборудование, таким образом создавая подрешетки внутри массива. Группировка элементов через оборудование ограничивает доступ к измерениям и обработке до уровня подрешетки.

Поддержка подрешеток в массивах

Чтобы работать с подрешетками, необходимо задать массив и подрешетки в нем. Можно либо определить массив первым, либо начать с подрешетки. Выберите один из следующих подходов:

  • Задайте одну подрешетку, а затем создайте больший массив путем размещения копий подрешетки. Подрешетка может быть ULA, URA или конформным массивом. Копии идентичны, за исключением их расположения и ориентации. Можно расположить копии пространственно в сетке или пользовательском размещении.

    Когда вы используете этот подход, вы создаете большой массив, создавая phased.ReplicatedSubarray Системные object™. Этот объект хранит информацию о подрешетке и о том, как его копии организованы, чтобы сформировать больший массив.

  • Задайте массив, а затем разделите его на подрешетки. Массив может быть ULA, URA или конформным массивом. Подрешетки не должен быть идентичным. Данный элемент массива может быть в более чем одной подрешетке, что приводит к overlapped subarrays.

    Когда вы используете этот подход, вы разбиваете массив, создавая phased.PartitionedArray Системный объект. Этот объект хранит информацию о массиве и его структуре подрешетки.

После создания phased.ReplicatedSubarray или phased.PartitionedArray объект, можно использовать его для выполнения формирования луча, рулевого управления или других операций. Для этого задайте свой объект как значение SensorArray или Sensor свойство в объектах, которые имеют такое свойство и которые поддерживают подрешетки. Объекты, которые поддерживают подрешетки в своих SensorArray или Sensor свойство включает:

  • phased.AngleDopplerResponse

  • phased.ArrayGain

  • phased.ArrayResponse

  • phased.Collector

  • phased.ConstantGammaClutter

  • phased.MVDRBeamformer

  • phased.PhaseShiftBeamformer

  • phased.Radiator

  • phased.STAPSMIBeamformer

  • phased.SteeringVector

  • phased.SubbandPhaseShiftBeamformer

  • phased.WidebandCollector

Прямоугольный массив, разделенный на линейные подрешетки

В этом примере показано, как настроить прямоугольный массив, содержащий линейные подрешетки. Пример также находит центры фаз подрешеток.

Создайте прямоугольный массив 2 на 3.

array = phased.URA('Size',[2 3]);

Постройте график положения элементов массива в yz-плоскости (все координаты X равны нулю.) Включите метки, которые указывают на нумерацию элементов. Нумерация важна для выбора элементов, включенных в каждую подрешетку.

viewArray(array,'ShowIndex','All')

Создайте и просмотрите массив, состоящий из трёх 2-элементных линейных подрешеток, каждый из которых параллелен оси Z. Используйте индексы из графика, чтобы сформировать матрицу для SubarraySelection свойство. The getSubarrayPosition метод возвращает центры фаз трёх подрешеток.

subarray1 = [1 1 0 0 0 0; 0 0 1 1 0 0; 0 0 0 0 1 1];
partitionedarray1 = phased.PartitionedArray('Array',array,...
   'SubarraySelection',subarray1);
viewArray(partitionedarray1)

subarray1pos = getSubarrayPosition(partitionedarray1)
subarray1pos = 3×3

         0         0         0
   -0.5000         0    0.5000
         0         0         0

Создайте и просмотрите другой массив, состоящий из двух 3-элементных линейных подрешеток, параллельных оси Y. Использование getSubarrayPosition метод, найти центры фаз двух подрешеток.

subarray2 = [0 1 0 1 0 1; 1 0 1 0 1 0];
partitionedarray2 = phased.PartitionedArray('Array',array,...
   'SubarraySelection',subarray2);
viewArray(partitionedarray2)

subarraypos2 = getSubarrayPosition(partitionedarray2)
subarraypos2 = 3×2

         0         0
         0         0
   -0.2500    0.2500

Линейная подрешетка, реплицированный в прямоугольный массив

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

Создайте 4-элементный линейный массив, параллельный оси Y.

array = phased.ULA('NumElements',4);

Создайте прямоугольный массив путем размещения двух копий линейного массива.

replsubarray = phased.ReplicatedSubarray('Subarray',array,'GridSize',[2 1]);

Постройте график положения элементов массива (заполненных кругов) и центров фаз подрешеток (незаполненных кругов). Элементы лежат в плоскости yz, потому что все координаты X равны нулю.

viewArray(replsubarray);
hold on;
subarraypos = getSubarrayPosition(replsubarray);
sx = subarraypos(1,:);
sy = subarraypos(2,:);
sz = subarraypos(3,:);
scatter3(sx,sy,sz,'ro')
hold off

Линейная подрешетка, реплицированный в пользовательскую сетку

В этом примере показано, как расположить копии линейной подрешетки в треугольном размещении.

Создайте 4-элементный линейный массив.

antenna = phased.CosineAntennaElement('CosinePower',1);
array = phased.ULA('NumElements',4,'Element',antenna);

Создайте больший массив путем размещения трех копий линейного массива. Определите центры фаз и нормальные направления трех копий явно.

vertex_ang = [60 180 -60];
vertex = 2*[cosd(vertex_ang); sind(vertex_ang); zeros(1,3)];
subarray_pos = 1/2*[...
   (vertex(:,1)+vertex(:,2)) ...
   (vertex(:,2)+vertex(:,3)) ...
   (vertex(:,3)+vertex(:,1))];
replsubarray = phased.ReplicatedSubarray('Subarray',array,...
   'Layout','Custom',...
   'SubarrayPosition',subarray_pos,...
   'SubarrayNormal',[120 0;-120 0;0 0].');

Постройте график положения элементов массива (синий) и центров фаз (красный) подрешеток. График находится в плоскости xy, потому что все координаты z равны нулю.

viewArray(replsubarray,'ShowSubarray',[])
hold on
scatter3(subarray_pos(1,:),subarray_pos(2,:),...
   subarray_pos(3,:),'ro')
hold off

Похожие темы