radarTransceiver

Моностатический радиолокационный приемопередатчик

Описание

The radarTransceiver Система object™ создает моностатический радиолокационный объект, который генерирует выборки полученного эхо-сигнала цели в радаре.

Чтобы сгенерировать выборки полученного целевого эхо-сигнала:

  1. Создайте radarTransceiver Объекту и установите его свойства.

  2. Вызывайте объект с аргументами, как будто это функция.

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

radarTrans = radarTransceiver создает моностатический радиолокационный объект. Этот объект генерирует выборки полученного эха цели на радаре.

пример

radarTrans = radarTransceiver(Name,Value) создает моностатический объект радиолокационного приемопередатчика с каждым заданным набором свойств на заданное значение. Заключайте каждое имя свойства в одинарные кавычки.

Свойства

расширить все

Если не указано иное, свойства являются нетронутыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируются, когда вы вызываете их, и release функция разблокирует их.

Если свойство настраивается, можно изменить его значение в любой момент.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

Радиолокационная форма волны, используемая в радиолокационной системе, задается как один из следующих объектов:

Передатчик радиолокационной системы, заданный как phased.Transmitter объект.

Радиолокационная передающая антенна, заданная как phased.Radiator объект или phased.WidebandRadiator объект.

Радиолокационная приемная антенна, заданная как phased.Collector объект или phased.WidebandCollector.

Радиолокационный приемник, заданный как phased.ReceiverPreamp объект.

Режим механического скана радара, заданный как один из следующих:

  • 'Circular' - Радар сканирует против часовой стрелки в плоскости азимута. Плоскость азимута задана в плоскости xy.

  • 'Sector' - Радар сканирует назад и вперед в секторе в плоскости азимута, сначала в направлении против часовой стрелки, затем в направлении по часовой стрелке и так далее.

  • 'None'

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

Зависимости

Это свойство применяется только при установке MechanicalScanMode свойство к 'Circular' или 'Sector'.

Типы данных: double

Механический азимутальный охват для секторного сканирования, измеренный в степенях и заданный как двухэлементный вектор-строка.

Зависимости

Это свойство применяется только при установке MechanicalScanMode свойство к 'Sector'.

Типы данных: double

Скорость сканирования азимута для механического скана, измеренная в степенях в секунду и заданная как положительная скалярная величина.

Зависимости

Это свойство применяется только при установке MechanicalScanMode свойство к 'Circular' или 'Sector'.

Типы данных: double

Радиолокационный режим электронного скана, заданный как один из следующих:

  • 'Sector' - Радар сканирует назад и вперед в секторе в плоскости азимута, сначала в направлении против часовой стрелки, затем в направлении по часовой стрелке и так далее.

  • 'Custom'

  • 'None'

Покрытие, измеренное в степенях для электронного секторного сканирования, задается как матрица 2 на 2. Первая строка задает покрытие скана в направлении азимута, а вторая строка задает покрытие скана в направлении повышения.

Зависимости

Чтобы включить это свойство, установите ElectronicScanMode свойство к 'Sector'.

Типы данных: double

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

Зависимости

Чтобы включить это свойство, установите ElectronicScanMode свойство к 'Sector'.

Типы данных: double

Смещение источника радара от источника его монтажной платформы, заданное как вектор 1 на 3 в виде [x, y, z] и измеренное в метрах.

Типы данных: double

Углы, при которых радар установлен относительно ориентации платформы, заданные как вектор 1 на 3 в углах Эйлера вокруг осей [z, y, x]. Эти углы также называются углами [рыскания, тангажа, крена].

Предположим, что ориентация платформы определяется осями Xp, Yp и Zp. Угол крена задает вращение против часовой стрелки вокруг Xp, угол тангажа задает вращение против часовой стрелки вокруг Yp, и угол рыскания задает вращение против часовой стрелки вокруг Zp. Чтобы получить оси ориентации радара Xr, Yr, и Zr от осей ориентации платформы, выполняют внутреннее вращение осей ориентации платформы [Xp, Yp, Zp] в порядке крена, тангажа и рыскания.

Типы данных: double

Источник количества импульсов или разверток в сигнале, заданный как один из следующих:

  • 'Property' - Количество импульсов или разверток в сигнале определяется NumRepetitions свойство.

  • 'Input port' - Количество импульсов или разверток в сигнале задается через вход.

Количество импульсов или разверток в сигнале, заданное как положительное целое число.

Зависимости

Чтобы включить это свойство, установите NumRepetitionsSource свойство к 'Property'.

Типы данных: double

Использование

Описание

пример

y = radarTrans(tgt,t) возвращает целевое эхо, полученное в радаре y, во время t секунд из-за целей в tgt.

Чтобы использовать этот синтаксис, установите NumRepetitionSource на 'Property'.

y = radarTrans(proppaths,t) возвращает целевое эхо, полученное в радаре y во время t (в секундах) из-за путей распространения, заданных в proppaths.

Этот синтаксис применяется при установке NumRepetitionSource на 'Property'.

y = radarTrans(___,N) задает количество импульсов/свипов N в сигнале в виде положительного целого числа.

Этот синтаксис применяется при установке NumRepetitionSource на 'Input port'.

y = radarTrans(___,PRFIDX) задает индекс формы волны радара как положительное целое число.

Этот синтаксис применяется при установке PRFSelectionInputPort свойство к true в радиолокационных Waveform свойство.

y = radarTrans(___,wt) задает веса передачи радиолокационной системы как вектор-столбец.

Этот синтаксис применяется при установке ElectronicScanMode свойство к 'Custom' и WeightsInputPort свойство к true в радиолокационных TransmitAntenna свойство.

y = radarTrans(___,steert) задает угол управления передачей (в степенях) как вектор 2 на 1 в виде [азимута; повышение].

Этот синтаксис применяется при установке ElectronicScanMode свойство к 'Custom'. Используйте подрешетку в передающей антенне и установите его SubarraySteering свойство к 'Phase' или 'Time'.

y = radarTrans(___,wst) задает веса передачи, примененные к каждому элементу, как матрица или массив ячеек.

Этот синтаксис применяется при установке ElectronicScanMode свойство к 'Custom'. Используйте подрешетку в передающей антенне и установите его SubarraySteering свойство к 'Custom'.

y = radarTrans(___,wr) задает веса приема радиолокационной системы как вектор-столбец.

Этот синтаксис применяется при установке ElectronicScanMode свойство к 'Custom' и WeightsInputPort свойство к true в радиолокационных ReceiveAntenna свойство.

y = radarTrans(___,steerr) задает угол управления приемом (в степенях) как вектор 2 на 1 в виде [азимута; повышение].

Этот синтаксис применяется при установке ElectronicScanMode свойство к 'Custom', используйте подрешетку в приемной антенне и установите его SubarraySteering свойство к 'Phase' или 'Time'.

y = radarTrans(___,wsr) задает веса приема, применяемые к каждому элементу, как матрица или массив ячеек.

Этот синтаксис применяется при установке ElectronicScanMode на 'Custom', используйте подрешетку в приемной антенне и установите его SubarraySteering свойство к 'Custom'.

пример

[y,info] = radarTrans(___) также возвращает дополнительные метаданные симуляции в структуре info.

Можно объединить необязательные входные параметры, когда вы задаете свойства, чтобы включить их. Необязательные входы должны быть перечислены в том же порядке, что и активированные свойства.

Пример: [y,info] = radarTrans(TGT,T,N,PRFIDX,WT,STEERT,WR,STEERR);[y,info] = radarTrans(TGT,T,N,PRFIDX,WT,WST,WR,WSR);

Входные параметры

расширить все

Радиолокационная цель, которая отражает сигнал, заданный как массив структур. Каждая структура описывает цель точки и содержит следующие поля:

  • Position -- Задайте положение цели как вектор 1 на 3 (в метрах) в виде [x y z]. Положение задается в системе координат установочной платформы радара.

    Это обязательное поле, и значение по умолчанию отсутствует.

  • Velocity - Задайте скорость цели как вектор 1 на 3 (в метрах) в виде [x y z]. Скорость задается в системе координат установочной платформы радара. Значение по умолчанию является [0 0 0].

  • Orientation - Задайте ориентацию цели как скалярный кватернион или действительную матрицу поворота ортонормальной системы координат 3 на 3, которая вращает оси установочной платформы радара в выравнивание с осями системы координат цели. Значение по умолчанию является quaternion(1,0,0,0).

  • Signatures -- Задайте сигнатуру радарного сечения (RCS) цели как struct или rcsSignature объект.

    Если Signatures является struct, оно должно иметь следующие поля:

    • Azimuth - Задайте азимутальные углы (в степени), при которых шаблон RCS дискретизируется как вектор length-Q. Значение по умолчанию является [-180 180].

    • Elevation -- Задайте углы возвышения (в степенях), при которых шаблон RCS дискретизируется как вектор с P длиной. Значение по умолчанию является [-90; 90].

    • Frequency - Задайте частоты (в Гц), на которых шаблон RCS дискретизируется как вектор с K длиной. Значение по умолчанию является [0 1e20].

    • Pattern -- Задайте шаблон RCS целевого устройства (в дБм) как P матрицу Q или P массив -by- Q -by- K. Если задан как P -by Q -by - K массив, каждая запись в массиве задает RCS на соответствующей частоте и соответствующем (азимут, повышение) направлении. Если задан как P -by - Q матрица, то шаблон применяется ко всем частотам. Значение по умолчанию является [0 0;0 0].

Пример: tgt1 = struct('Position',[0 5e3 0],'Velocity',[0 0 0]);tgt2 = struct('Position',[10e3 0 0],'Velocity',[0 0 0]);tgt = [tgt1 tgt2];

Типы данных: struct

Путь распространения между передатчиком и приемником, заданный как массив структур. Каждая структура описывает путь распространения между передатчиком и приемником и содержит следующие обязательные поля:

  • PathLength - Задайте длину пути распространения как положительная скалярная величина (в метрах).

  • PathLoss - Задайте потери распространения вдоль пути как скаляр (в дБ).

  • ReflectionCoefficient - Задайте совокупные коэффициенты отражения для всех отражений вдоль пути в виде скаляра. Это включает эффекты, такие как отражения от рассеивателя или цели.

  • AngleOfDeparture - Укажите угол отхода пути (в степенях) в виде двухколоночного вектора в форме [азимут; вертикальный] углы. Угол измеряется в системе координат передающей антенны.

  • AngleOfArrival - Укажите угол прихода пути (в степенях) в виде двухколоночного вектора в форме [азимут; вертикальный] углы. Угол измеряется в системе координат приемной антенны.

  • DopplerShift - Задайте совокупный сдвиг Доплера вдоль пути в виде скаляра (в Гц).

Типы данных: struct

Текущее время, в котором радар получает целевое эхо, заданное в виде неотрицательного скаляра в секундах.

Типы данных: double

Количество импульсов/разверток в сигнале, заданное как положительное целое число.

Вы можете задать этот вход только когда NumRepetitionSource для свойства задано значение 'Input port'.

Типы данных: double

PRF- индекса формы волны радара, заданная в виде положительного целого числа.

Вы можете задать этот вход только, когда вы устанавливаете PRFSelectionInputPort свойство к true в радиолокационных Waveform свойство.

Типы данных: double

Передайте веса радиолокационной системы, заданные как вектор-столбец.

Если для передачи используется регулярная антенная решетка, wt имеет длину NTE где NTE - количество антенных элементов в передающей антенной решетке радара.

Если для передачи используется подрешетка, wt имеет длину NTS где NTS - количество подрешеток в передающей антенной решетке радара.

Вы можете задать этот вход только, когда вы устанавливаете ElectronicScanMode свойство к 'Custom' и WeightsInputPort свойство к true в радиолокационных TransmitAntenna свойство.

Типы данных: double

Передайте угол рулевого управления (в степенях), заданный как вектор 2 на 1 в виде [азимута; повышение].

Вы можете задать этот вход только, когда вы устанавливаете ElectronicScanMode свойство к 'Custom'. Используйте подрешетку в передающей антенне и установите его SubarraySteering свойство к 'Phase' или 'Time'.

Типы данных: double

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

Если передающая антенна использует:

  • phased.ReplicatedSubarray, wst должна быть NTE -by - NTS матрицей, где NTE - количество элементов в каждой отдельной подрешетке, а NTS - количество подрешеток. Каждый столбец в wst задает веса для элементов соответствующей подрешетки.

  • phased.PartitionedArray и его отдельные подрешеток имеют одинаковое количество элементов, wst должна быть NTE -by - NTS матрицей, где NTE - количество элементов в каждой отдельной подрешетке, а NTS - количество подрешеток. Каждый столбец в wst задает веса для элементов соответствующей подрешетки.

  • phased.PartitionedArray и его подрешетки могут иметь разное количество элементов, wst может быть одним из следующих:

    • NTE -by - NTS матрица, где NTE указывает количество элементов в наибольшей подрешетке, а NTS - количество подрешеток.

      Если wst - матрица, первые KT значения в каждом столбце, где KT - количество элементов в соответствующей подрешетке, задают веса для элементов в соответствующей подрешетке.

    • 1-by - NTS массив ячеек, где NTS - количество подрешеток, и каждая камера содержит вектор-столбец, длина которого совпадает с количеством элементов соответствующей подрешетки.

Вы можете задать этот вход только, когда вы устанавливаете ElectronicScanMode свойство к 'Custom'. Используйте подрешетку в передающей антенне и установите его SubarraySteering свойство к 'Custom'.

Типы данных: double

Принимайте веса радиолокационной системы, заданные как вектор-столбец. Если для приема используется регулярная антенная решетка, wr имеет длину NRE, где NRE - количество антенных элементов в приёмной антенной решетке радара. Если для приема используется подрешетка, wr имеет длину NRS где NRS - количество подрешеток в приёмной антенной решетке радара.

Вы можете задать этот вход только, когда вы устанавливаете ElectronicScanMode свойство к 'Custom' и WeightsInputPort свойство к true в радиолокационных ReceiveAntenna свойство.

Типы данных: double

Получить угол поворота в степенях, заданный как вектор 2 на 1 в виде [азимута; повышение].

Вы можете задать этот вход только, когда вы устанавливаете ElectronicScanMode свойство к 'Custom', используйте подрешетку в приемной антенне и установите его SubarraySteering свойство к 'Phase' или 'Time'.

Типы данных: double

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

Если приемная антенна использует:

  • phased.ReplicatedSubarray объект, wsr должна быть NRE -by - NRS матрицей, где NRE - количество элементов в каждой отдельной подрешетке, а NRS - количество подрешеток. Каждый столбец в wsr задает веса для элементов соответствующей подрешетки.

  • phased.PartitionedArray объект, и его отдельные подрешеток имеют одинаковое количество элементов, wsr должна быть NRE -by - NRS матрицей, где NRE - количество элементов в каждой отдельной подрешетке, а NRS - количество подрешеток. Каждый столбец в wsr задает веса для элементов соответствующей подрешетки.

  • phased.PartitionedArray объект и его подрешетки могут иметь разное количество элементов, wsr может быть одним из следующих:

    • NRE -by - NRS матрица, где NRE указывает количество элементов в наибольшей подрешетке, а NRS - количество подрешеток.

      Если wsr - матрица, первые KR значения в каждом столбце, где KR - количество элементов в соответствующей подрешетке, задают веса для элементов в соответствующей подрешетке.

    • 1-by - NRS массив ячеек, где NRS - количество подрешеток, и каждая камера содержит вектор-столбец, длина которого совпадает с количеством элементов соответствующей подрешетки.

Вы можете задать этот вход только, когда вы устанавливаете ElectronicScanMode на 'Custom', используйте подрешетку в приемной антенне и установите его SubarraySteering свойство к 'Custom'.

Типы данных: double

Выходные аргументы

расширить все

Сигнал, принятый в радиолокационном приемнике, возвращается как один из следующих:

  • NS -by NRE -by - N массив -- Если для приема радар использует регулярную антенную решетку, то размерность y NS -by NRE -by - N, где NRE - количество антенных элементов в приёмной антенной решетке радара, NS - количество выборок в каждом переданном импульсе/свипе, и N - количество переданных импульсов/свипов.

    В этом синтаксисе N задается значением NumRepetition свойство.

  • NS -by- NRS -by- N array -- Если радар использует подрешетку для приема, размерность y NS -by NRS -by - N, где NRS - количество подрешеток в приёмной антенной решетке радара. Когда моделируется несколько импульсов/свипов, предполагается, что цели перемещаются согласно траектории постоянной скорости.

Типы данных: double
Поддержка комплексного числа: Да

Метаданные симуляции, возвращенные как структура, содержащая следующие поля:

  • IsScanDone - Сделан ли один период механического скана.

  • MechanicalAngle -- Токовая антенна, указывающая угол из-за механического скана.

  • Origin - Радиолокационное расположение в системе координат платформы.

  • Orientation - Радиолокационные оси ориентации в системе координат платформы.

Типы данных: struct

Функции объекта

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj, используйте следующий синтаксис:

release(obj)

расширить все

stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Моделируйте эхо цели, полученное моностатическим радаром, используя radarTransceiver объект.

Создайте радиолокационные цели как массив двух структур с заданными положением и скоростью.

tgt1 = struct( ...
    'Position', [0 5e3 0], ...
    'Velocity', [0 0 0]);
tgt2 = struct( ...
    'Position', [10e3 0 0], ...
    'Velocity', [0 0 0]);

Создайте радар наблюдения на 15 метров над землей. Задайте rpm для определения скорости скана (в град/с). Для заданных значения сканрейта и ширины луча определите частоту обновления.

rpm = 12.5;
scanrate = rpm*360/60;       % deg/s
beamw = 1;                   % beamwidth
updaterate = scanrate/beamw; % update at each beam

Создайте phased.CustomAntennaElement объект, который действует как передающий антенный элемент и приемный антенный элемент в radarTransceiver объект.

az = -180:0.5:180;
el = -90:0.5:90;
pat = zeros(numel(el),numel(az));
pat(-0.5<=el&el<=0.5,-0.5<=az&az<=0.5) = 1;
ant = phased.CustomAntennaElement('AzimuthAngles',az,...
    'ElevationAngles',el,'MagnitudePattern',mag2db(abs(pat)),...
    'PhasePattern',zeros(size(pat)));

Создайте radarTransceiver объект. Задайте прямоугольную форму волны для радара, используя phased.RectangularWaveform объект. Задайте передающую антенну и приемную антенну. Режим механического скана установлен в 'Circular' с определенной частотой скана.

wav = phased.RectangularWaveform('PulseWidth',1e-5);
sensor = radarTransceiver(...
    'Waveform',wav, ...
    'TransmitAntenna',phased.Radiator('Sensor',ant), ...
    'ReceiveAntenna',phased.Collector('Sensor',ant), ...
    'MechanicalScanMode','Circular', ...
    'MechanicalScanRate',scanrate);

Сгенерируйте обнаружения от полного скана радара.

simTime = 0;
sigi = 0;
while true
    [sig, info] = sensor([tgt1 tgt2], simTime);
    sigi = sigi+abs(sig);

    % Is full scan complete?
    if info.IsScanDone
        break % yes
    end
    simTime = simTime+1/updaterate;
end
r = (0:size(sigi,1)-1)/sensor.Waveform.SampleRate*...
    sensor.TransmitAntenna.PropagationSpeed/2;
plot(r,sigi);
hold on;
plot([5e3 5e3],ylim,'r--',[10e3 10e3],ylim,'r--');
xlabel('Range (m)');
ylabel('Magnitude');

Figure contains an axes. The axes contains 3 objects of type line.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

Объекты

Введенный в R2021a