record

Запись симуляции радиолокационного сценария

Описание

пример

rec = record(scenario) возвращает запись, rec, эволюции симуляции радиолокационного сценария, scenario. Функция начинается с начала симуляции и сохраняет запись до конца симуляции. Симуляция сценария заканчивается, когда либо StopTime достигается сценарий или какая-либо платформа в сценарии завершила свою траекторию в соответствии с Trajectory свойство.

Примечание

record функция записывает только обнаружения, сгенерированные датчиками, содержащимися в сценарии, и не записывает треки, сгенерированные из radarDataGenerator объект, содержащийся в сценарии. radarDataGenerator генерирует обнаружения, когда вы устанавливаете его TargetReportFormat свойство к 'Detections' или 'Clustered Detections' и генерирует дорожки, когда вы устанавливаете ее TargetReportFormat свойство к 'Tracks'.

rec = record(scenario,format) также задает формат возвращаемой ориентации платформы.

rec = record(___,Name,Value) задает дополнительные величины записи, используя аргументы имя-значение.

Примеры

свернуть все

Создайте новый радиолокационный сценарий.

scenario = radarScenario;

Добавьте платформу, которая следует по траектории 25 м вдоль оси X со скоростью 20 м/с.

plat = platform(scenario);
plat.Trajectory = waypointTrajectory('Waypoints',[0 0 0; 25 0 0], ...
    'TimeOfArrival',[0 25/20]);

Запустите симуляцию и запишите результаты.

r = record(scenario);

Отображение состояний платформы в начальное время.

r(1)
ans = struct with fields:
    SimulationTime: 0
             Poses: [1x1 struct]

r(1).Poses
ans = struct with fields:
         PlatformID: 1
            ClassID: 0
           Position: [0 0 0]
           Velocity: [20 0 0]
       Acceleration: [0 0 0]
        Orientation: [1x1 quaternion]
    AngularVelocity: [0 0 0]

Отображение состояний платформы в последнее время.

r(end)
ans = struct with fields:
    SimulationTime: 1.2000
             Poses: [1x1 struct]

r(end).Poses
ans = struct with fields:
         PlatformID: 1
            ClassID: 0
           Position: [24 0 0]
           Velocity: [20 0 0]
       Acceleration: [0 0 0]
        Orientation: [1x1 quaternion]
    AngularVelocity: [0 0 0]

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

свернуть все

Радиолокационный сценарий, заданный как radarScenario объект.

Формат ориентации положения, заданный как 'quaternion' или 'rotmat'. Если задано как 'quaternion', а Orientation полем структуры положения платформы является кватернион. Если задано как 'rotmat', а Orientation поле является матрицей поворота.

Типы данных: char | string

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'CoordinateSystem','Geodetic' отчеты регистрируют положения с использованием геодезических координат

Включите запись информации о выбросах, заданную как true или false. Если задано как true, а rec выход содержит Emissions, EmitterConfigurations, EmitterPlatformIDs, и CoverageConfig поля.

Включите запись информации о датчике, заданную как true или false. Если задано как true, а rec выход содержит Detections, SensorConfiguration, SensorPlatformIDs, и CoverageConfig поля.

Начальный случайный seed для записи, заданное как положительное целое число. Если задано положительное целое число, функция присваивает это число генератору случайных чисел «Twister» перед записью и сбрасывает генератор случайных чисел в конце записи.

Включите окклюзию в передаче сигнала, заданную как true или false. Если задано как trueфункция учитывает эффект окклюзии при распространении радиолокационного излучения.

Формат записи, заданный как 'Struct' или 'Recording'. Если задано как 'Struct', а rec выход является массивом структур. Если задано как 'Recording', а rec выход a radarScenarioRecording объект.

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

  • 'Cartesian' - Сообщить о зарегистрированных положениях с использованием Декартовых координат в координатной системе координат Earth-Centered-Earth-Fixed.

  • 'Geodetic' - Сообщить о зарегистрированных положениях с использованием геодезических координат (широта, долгота и высота). Сообщите о зарегистрированной ориентации, скорости и ускорении в локальных системах координат каждой платформы (по умолчанию North-East-Down), соответствующих текущей путевой точке.

Задайте этот аргумент только когда IsEarthCentered свойство радиолокационного сценария, scenario, установлено в true.

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

свернуть все

Записи состояний платформы во время симуляции, возвращенные как M-на-1 массив структур, если RecordingFormat задается как 'struct' (по умолчанию) или radarScenarioRecording объект, если RecordingFormat задается как 'Recording'. M - количество временных шагов в симуляции.

Каждая запись содержит временной шаг симуляции и записанную информацию в то время. Структура записи имеет как минимум два поля: SimulationTime и Poses. Это может также иметь другие необязательные поля в зависимости от значений 'IncludeEmitters'и' IncludeSensors'аргументы имя-значение.

The SimulationTime поле содержит время симуляции записи. Poses - N массив структур -by-1, где N - количество платформ. Каждая структура в Poses содержит эти поля.

ОбластьОписание
PlatformID

Уникальный идентификатор для платформы, заданный как положительное целое число. Это обязательное поле без значения по умолчанию.

ClassID

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

Position

Положение цели в координатах сценария, заданное как реальный вектор-строка 1 на 3.

  • Если на coordinateSystem аргумент задается как 'Cartesian', затем Position - трехэлементный вектор Декартовых координат положения в метрах.

  • Если на coordinateSystem аргумент задается как 'Geodetic', затем Position - трехэлементный вектор геодезических координат: широта в степенях, долгота в степенях и высота в метрах.

Velocity

Скорость платформы в координатах сценария, заданная как реальный вектор-строка 1 на 3. Модули - метры в секунду. Значение по умолчанию [0 0 0].

Acceleration

Ускорение платформы в координатах сценария, заданное как вектор-строка 1 на 3 в метрах в секунду за секунду. Значение по умолчанию [0 0 0].

Orientation

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

AngularVelocity

Скорость вращения платформы в координатах сценария, заданная как действительный вектор 1 на 3. Величина вектора задает угловую скорость. Направление задает ось поворота по часовой стрелке. Модулями являются степени в секунду. Значение по умолчанию [0 0 0].

The rec выход содержит эти необязательные поля.

ОбластьОписание
Emissions

Массив ячеек выбросов (таких как radarEmission объекты) в сценарии

EmitterConfigurations

Массив структур строений эмиттера для каждого эмиттера

EmitterPlatformIDs

Числовой массив идентификаторов платформ для каждого эмиттера

Detections

Массив ячеек objectDetection объекты, сгенерированные датчиками в сценарии

SensorConfigurations

Массив структур строений датчиков для каждого датчика

SensorPlatformIDs

Числовой массив идентификаторов платформ для каждого датчика

CoverageConfig

Массив структур строений покрытия для каждого датчика или излучателя

Каждая структура строения эмиттера содержит эти поля.

ОбластьОписание
EmitterIndex

Уникальный индекс эмиттера, возвращенный как положительное целое число.

IsValidTime

Допустимое время излучения, возвращаемое следующим 0 или 1. IsValidTime является 0 когда обновления эмиттера запрашиваются в моменты времени, которые находятся между интервалами обновления, заданными UpdateInterval свойство.

IsScanDone

Завершил ли эмиттер скан, возвращается следующим true или false.

FieldOfView

Поле зрения эмиттера, возвращаемое как двухэлементный вектор [азимут; повышение] в степенях.

MeasurementParameters

Параметры измерения Эмиттера, возвращенные как массив структур, содержащих преобразования координатной системы координат, необходимые для преобразования положений и скоростей в системе координат верхнего уровня в систему координат тока.

Каждая структура строения датчика содержит эти поля.

ОбластьОписание
SensorIndex

Уникальный индекс датчика, возвращенный как положительное целое число.

IsValidTime

Допустимое время обнаружения, возвращаемое как true или false. IsValidTime является false при запросе обновлений обнаружения между интервалами обновления, заданными частотой обновления.

IsScanDone

IsScanDone является true когда датчик завершит скан.

FieldOfView

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

MeasurementParameters

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

Каждая структура строения покрытия содержит эти поля.

ОбластьОписание
IndexУникальное целое число для различения датчиков или излучателей. На практике можно использовать SensorIndex или EmitterIndex свойство объектов датчика или излучателя, соответственно.
LookAngle

Текущие углы boresight датчика или излучателя, заданные как одно из следующих значений:

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

  • Двухэлементный вектор [azimuth; elevation] в степенях при сканировании как в азимутальном, так и в вертикальном направлениях.

FieldOfViewПоле зрения датчика или излучателя, заданное как двухэлементный вектор [azimuth; elevation] в степенях.
ScanLimits

Минимальный и максимальный углы, которые датчик или излучатель может сканировать с его Orientation.

  • Если датчик или излучатель может сканировать только в азимутальном направлении, задайте пределы как вектор-строку 1 на 2 [minAz, maxAz] в степенях.

  • Если датчик или излучатель также может сканировать в повышение направлении, задайте пределы как матрицу 2 на 2 [minAz, maxAz; minEl, maxEl] в степенях.

RangeОбласть значений луча и зоны покрытия датчика или излучателя в метрах.
PositionИсходное положение датчика или излучателя, заданное как трехэлементный вектор [X, Y, Z] на осях театрального графика.
OrientationПреобразование вращения из сценария или глобальной системы координат в монтажную систему датчика или эмиттера, заданное как матрица вращения, кватернион или три угла Эйлера в ZYX последовательности.

Введенный в R2021a