exponenta event banner

adsbReceiver

Приемник автоматического зависимого наблюдения-вещания (ADS-B)

Описание

adsbReceiver Система object™ моделирует приемник ADS-B. Этот объект можно использовать для получения сообщений ADS-B, созданных adsbTransponder Системные объекты и выходные дорожки.

Для создания дорожек ADS-B:

  1. Создать adsbReceiver и задайте его свойства.

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

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

Создание

Описание

receiver = adsbReceiver создает объект системы приемника ADS-B, receiver, со значениями свойств по умолчанию.

пример

receiver = adsbReceiver(Name,Value) Устанавливает свойства транспондера, используя одну или несколько пар имя-значение. Например, adsbReceiver('ReceiverIndex',1) создает приемник ADS-B, который имеет уникальный идентификатор 1.

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

Максимальное количество дорожек, которое может поддерживать приемник ADS-B, указанное как положительное целое число.

Это свойство доступно только для чтения.

Количество дорожек, поддерживаемых в приемнике ADS-B, указанное как неотрицательное целое число.

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

Описание

tracks = receiver(messages,time) обновляет receiver со списком ADS-B messages в time приема. Каждое сообщение может генерировать не более одной дорожки. Если информация, содержащаяся в сообщении, не составляет состояние полной дорожки, приемник не выводит дорожки на основе этого сообщения.

[tracks,incomplete] = receiver(messages,time) дополнительно возвращает список сообщений, из которых получатель не может получить полное состояние дорожки.

пример

[tracks,incomplete,info] = receiver(messages,time) дополнительно возвращает информацию анализа для ввода messages.

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

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

Сообщения ADS-B, указанные как массив структур сообщений ADS-B. Каждая структура содержит следующие поля:

Структура сообщений ADS-B

Имя поляОписаниеЗначение по умолчанию
ICAOАдрес Международной организации гражданской авиации, определяемый как шестиэлементный символьный вектор или шестизначный строковый скаляр. шестиэлементный пустой символьный вектор
TimeВремя вещания ретранслятора ADS-B, указанное как скаляр. Если ответчик не синхронизирован с надежным источником времени, используйте NaN как значение Time чтобы время приема использовалось в приемнике для сообщения.NaN
CategoryКатегория платформы ответчика, указанная как adsbCategory объект перечисления. adsbCategory(0)
CallsignПозывной платформы ответчика, определяемый как восьмиэлементный символьный вектор или восьмисимвольная строка.восьмиэлементный пустой символьный вектор
LatitudeСообщенная широта ретранслятора вещания, заданная как скаляр между -90 и 90 градусами. Использовать NaN если информация отсутствует.NaN
LongitudeДолгота широковещательного транспондера, заданная как скаляр от -180 до 180 в градусах. Использовать NaN если информация отсутствует.NaN
AltitudeСообщаемая высота ретранслятора вещания, заданная как скаляр в метрах. Представляет высоту над WG84 эллипсоидом. Использовать NaN если информация отсутствует.NaN
VeastКомпонент скорости в восточном направлении, указанный как скаляр в метрах в секунду. Положительным направлением для этого компонента является восточное направление. Использовать NaN если информация отсутствует.NaN
VnorthКомпонент скорости в северном направлении, указанный как скаляр в метрах в секунду. Положительным направлением для этого компонента является направление на север. Использовать NaN если информация отсутствует.NaN
ClimbRateСообщенная скорость набора высоты, заданная как скаляр в метрах в секунду. Положительным направлением для этого компонента является направление вверх. Использовать NaN если информация отсутствует. NaN
HeadingНаправление курса, указанное как скаляр от 0 до 360 в градусах. Угол направления курса на север равен 0 и является положительным по часовой стрелке. Использовать NaN если информация отсутствует.NaN
NACPosition

Категория точности навигации (Navigation Accuracy Category of position), заданная как целое число от 0 до 11. Каждое целое значение определяет границу расчетной неопределенности положения (EPU). Граница EPU является 95% точностью, связанной с горизонтальным положением. Граница определяет окружность, центрированную по указанному положению, так что вероятность фактического положения, лежащего внутри окружности, равна 0,95. Список показывает отношение между целым числом и привязкой:

  • 0: EPU ≥ 18,52 км (10 НМ) или неизвестно

  • 1: EPU < 18,52 км (10 НМ)

  • 2: EPU < 7,408 (4 НМ)

  • 3: EPU < 3,704 (2 НМ)

  • 4: EPU < 1852 м (1 НМ)

  • 5: EPU < 926 м (0,5 НМ)

  • 6: EPU < 555,6 м (0,3 НМ)

  • 7: EPU < 185,2 м (0,1 НМ)

  • 8: EPU < 92,6 м (0,05 НМ)

  • 9: EPU < 30 м

  • 10: EPU < 10 м

  • 11: EPU < 3 м

где NM представляет собой морские мили.

0
GeometricVerticalAccuracy

Геометрическая вертикальная точность (GVA) высоты, заданная как целое число от 0 до 2. Каждое целое значение представляет 95% точность, привязанную к сообщаемой высоте. Список показывает отношение между целым числом и привязкой:

  • 0: GVA > 150 м или неизвестно

  • 1: GVA ≤ 150 м

  • 2: GVA < 45 м

0
NACVelocity

Категория скорости точности навигации, заданная как целое число от 0 до 4. Каждое целое число представляет 95% точность, привязанную к сообщенной ошибке горизонтальной скорости (HVE). Список показывает отношение между целым числом и привязкой:

  • 0: HVE ≥ 10 м/с или неизвестно

  • 1: HVE < 10 м/с

  • 2: HVE < 3 м/с

  • 3: HVE < 1 м/с

  • 4: HVE < 0,3 м/с

0

Время приема сообщения, указанное как неотрицательный скаляр в секундах.

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

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

Дорожки, сгенерированные из сообщений, возвращенные в виде массива objectTrack объекты.

Неполные сообщения, возвращаемые в виде массива структур сообщений ADS-B. Неполные сообщения - это сообщения, которые трекер не смог успешно использовать для создания дорожек.

Сведения об анализе, возвращенные в виде структуры. Структура содержит следующие поля:

Имя поляОписание
DiscardedОтброшенные индексы ICAO сообщения, возвращенные в виде массива положительных целых чисел. Каждое целое число представляет соответствующий индекс массива отброшенной структуры сообщений в messages вход.
IcaoToTrackID

Отображение адресов ИКАО для отслеживания идентификаторов, возвращаемых в виде массива структур из K-элементов. Каждая структура содержит два поля:

  • ICAO - ICAO-адрес сообщения, возвращаемый в виде шестиэлементного символьного вектора.

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

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

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

release(obj)

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

deleteTrackУдалить дорожку, управляемую adsbReceiver
stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
isLockedОпределить, используется ли объект System
cloneСоздать повторяющийся объект System
resetСброс внутренних состояний объекта System

Примеры

свернуть все

Создайте приемник ADS-B.

receiver = adsbReceiver;

Определите сообщение ADS-B, сгенерированное из AAF123 транспондер. Предположим, что ответчик не синхронизирован с UTC по настройке Time кому NaN.

airbornePositionMessage = struct('ICAO','AAF123','Time', NaN,...
    'Latitude',70, 'Longitude',30,'Altitude',2000);

Определите время поступления сообщения.

t0 = 0;

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

[tracks,incomplete,info] = receiver(airbornePositionMessage,t0)
tracks = 

  1x0 objectTrack array with properties:

    TrackID
    BranchID
    SourceIndex
    UpdateTime
    Age
    State
    StateCovariance
    StateParameters
    ObjectClassID
    TrackLogic
    TrackLogicState
    IsConfirmed
    IsCoasted
    IsSelfReported
    ObjectAttributes
incomplete = struct with fields:
                         ICAO: 'AAF123'
                         Time: 0
                     Category: No_Category_Information
                     Callsign: '        '
                     Latitude: 70
                    Longitude: 30
                     Altitude: 2000
                        Veast: NaN
                       Vnorth: NaN
                    ClimbRate: NaN
                      Heading: NaN
                  NACPosition: 0
    GeometricVerticalAccuracy: 0
                  NACVelocity: 0
                          Age: 1

info = struct with fields:
        Discarded: [1x0 uint32]
    IcaoToTrackID: [1x1 struct]

Создайте новое сообщение ADS-B из того же ответчика, которое содержит информацию о скорости. Время получения составляет 1 секунду.

airborneVelocityMessage = struct('ICAO','AAF123','Time',NaN, ...
    'Vnorth',250,'Veast',0,'ClimbRate',-1);
t1 = 1;

Добавьте новое сообщение к получателю. Приемник теперь может форматировать комбинацию этих двух сообщений в дорожку.

[tracks,incomplete,info] = receiver(airborneVelocityMessage,t1)
tracks = 
  objectTrack with properties:

             TrackID: 1
            BranchID: 0
         SourceIndex: 0
          UpdateTime: 1
                 Age: 2
               State: [6x1 double]
     StateCovariance: [6x6 double]
     StateParameters: [1x1 struct]
       ObjectClassID: 0
          TrackLogic: 'History'
     TrackLogicState: 1
         IsConfirmed: 1
           IsCoasted: 0
      IsSelfReported: 1
    ObjectAttributes: [1x1 struct]

incomplete = 

  1x0 empty struct array with fields:

    ICAO
    Time
    Category
    Callsign
    Latitude
    Longitude
    Altitude
    Veast
    Vnorth
    ClimbRate
    Heading
    NACPosition
    GeometricVerticalAccuracy
    NACVelocity
    Age
info = struct with fields:
        Discarded: [1x0 uint32]
    IcaoToTrackID: [1x1 struct]

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

.

См. также

|

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