exponenta event banner

отчет

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

Описание

пример

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

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

пример

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

Примечание

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

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

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

Сценарий отслеживания, указанный как 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 поля.

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

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

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

Система координат для отчета о зафиксированных позициях, заданная как:

  • 'Cartesian' - Отчет о зафиксированных позах с использованием декартовых координат в кадре координат Земля-Центр-Земля-Фиксированный.

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

Этот аргумент можно использовать только в том случае, если 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 Уникальное целое число для различения датчиков или излучателей.
LookAngle

Текущие углы визирования датчика или излучателя, указанные как:

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

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

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

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

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

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

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

Примеры

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

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

scene = trackingScenario;
plat = platform(scene);

Укажите траекторию платформы. Расстояние траектории - 25 метров. Траекторная скорость составляет 20 м/с в направлении х.

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: {0x1 cell}
              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: {0x1 cell}
              PointClouds: {0x1 cell}
       PointCloudClusters: {0x1 cell}
     SensorConfigurations: [1x1 struct]
        SensorPlatformIDs: 1
           CoverageConfig: [1x1 struct]

Представлен в R2018b