record

Запустите сценарий отслеживания и запишите платформу, датчик и эмиттерную информацию

Описание

пример

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

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

пример

rec = record(___,Name,Value) задает дополнительные количества записи с помощью пар "имя-значение". Заключите каждый Name в кавычках.

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

развернуть все

Отслеживание сценария в виде trackingScenario объект.

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

Пример: 'rotmat'

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

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

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

Позвольте записать информацию об эмиссии в виде true или false. Когда задано как true, rec выведите содержит Emissions, EmitterConfigurations, EmitterPlatformIDs, и CoverageConfig поля .

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

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

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

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

Система координат, чтобы сообщить о зарегистрированных положениях в виде:

  • 'Cartesian' — Сообщите о зарегистрированных положениях с помощью Декартовых координат в Земле Земля В центре Фиксированная координатная система координат.

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

Можно только использовать этот аргумент когда IsEarthCentered свойство сценария отслеживания, sc, установлен в true.

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

развернуть все

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

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

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

Поле Описание
PlatformID

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

ClassID

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

Position

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

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

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

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].

Дополнительные поля в rec выход:

Поле Описание
Emissions

массив ячеек эмиссии (такой как radarEmission и sonarEmission) в сценарии

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

Текущие пеленги датчика или эмиттера в виде:

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

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

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

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

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

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

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

Примеры

развернуть все

Создайте новый сценарий и добавьте платформу.

scene = trackingScenario;
plat = platform(scene);

Задайте траекторию платформы. Расстояние траектории составляет 25 метров. Скорость траектории составляет 20 м/с в направлении X.

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

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

r = record(scene)
r=13×1 struct array with fields:
    SimulationTime
    Poses

Покажите запись в начальное время.

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]

Загрузите сценарий отслеживания управления воздушным движением.

load ATCScenario scenario

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

r = record(scenario, 'quaternion', 'IncludeEmitters', true,...
    'IncludeSensors', true, 'InitialSeed', 2019)
r=3215×1 struct array with fields:
    SimulationTime
    Poses
    Emissions
    EmitterConfigurations
    EmitterPlatformIDs
    Detections
    PointClouds
    PointCloudClusters
    SensorConfigurations
    SensorPlatformIDs
    CoverageConfig

Покажите запись в начальное время.

r(1)
ans = struct with fields:
           SimulationTime: 0
                    Poses: [4x1 struct]
                Emissions: {0x1 cell}
    EmitterConfigurations: [0x1 struct]
       EmitterPlatformIDs: [0x1 double]
               Detections: {}
              PointClouds: {0x1 cell}
       PointCloudClusters: {0x1 cell}
     SensorConfigurations: [1x1 struct]
        SensorPlatformIDs: 1
           CoverageConfig: [1x1 struct]

Покажите запись в итоговое время.

r(end)
ans = struct with fields:
           SimulationTime: 59.9947
                    Poses: [4x1 struct]
                Emissions: {0x1 cell}
    EmitterConfigurations: [0x1 struct]
       EmitterPlatformIDs: [0x1 double]
               Detections: {}
              PointClouds: {0x1 cell}
       PointCloudClusters: {0x1 cell}
     SensorConfigurations: [1x1 struct]
        SensorPlatformIDs: 1
           CoverageConfig: [1x1 struct]

Смотрите также

|

Введенный в R2018b