radarTransceiver

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

Описание

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) задает индекс PRF радарной формы волны как положительное целое число.

Этот синтаксис применяется, когда вы устанавливаете 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) как a struct или rcsSignature объект.

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

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

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

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

    • Pattern – Задайте шаблон ЭПР цели (в dBm) или как P-by-Q матрица или как P-by-Q-by-K массив. Если задано как P-by-Q-by-K массив, каждая запись в массиве задает ЭПР на соответствующей частоте и соответствии (азимут, вертикальное изменение) направление. Если задано как 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 – Задайте угол пути отъезда (в градусах) как 2D вектор-столбец в форме [азимут; вертикальное изменение] углы. Угол измеряется в системе координат передающей антенны.

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

  • 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

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

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

  • 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 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

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

Если получить антенна использует a:

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

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

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

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

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

    • 1 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 массив – Если радар использует подрешетку для получения, размерности 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 определить частоту развертки (в градусе/с). Для заданного scanrate и ширины луча, определите частоту обновления.

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 object. The axes object contains 3 objects of type line.

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

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

Введенный в R2021a