В программном обеспечении 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