adsbReceiver

Автоматический зависимый широковещательный приемник (ADS-B)

Описание

The 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

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

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

  • 1: EPU < 18.52 км (10 NM)

  • 2: ЭПУ < 7.408 (4 НМ)

  • 3: EPU < 3.704 (2 NM)

  • 4: EPU < 1852 м (1 NM)

  • 5: ЭПУ < 926 м (0,5 НМ)

  • 6: ЭПУ < 555,6 м (0,3 НМ)

  • 7: ЭПУ < 185,2 м (0,1 НМ)

  • 8: ЭПУ < 92,6 м (0,05 НМ)

  • 9: ЭПУ < 30 м

  • 10: ЭПУ < 10 м

  • 11: ЭПУ < 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-element массив структур. Каждая структура содержит два поля:

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

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

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

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

release(obj)

расширить все

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

Примеры

свернуть все

Создайте приемник 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