CLOSE X
Loading Image...
<<<

Мультилатерация (MLAT) ADS-B

  При воспроизведении воздушной обстановки в различных системах визуализации данных возникает проблема отображения воздушных судов, не передающих своё местоположение в режиме Mode-S ADS-B. Практика показывает, что количество таких воздушных судов может доходить до 20% от числа наблюдаемых, таким образом, решение задачи определения местоположения представляется достаточно актуальным. Координаты этих воздушных судов могут быть получены при помощи алгоритмов мультилатерации (MLAT). Алгоритм основан на анализе разницы времени прихода радиосигнала (TDOA) от одного источника до нескольких приёмников. Одна из возможных реализаций решения задачи определения координат рассматривается в этой статье. В процессе разработки потребовалось решить много отдельных задач, таких как разработка декодера ADS-B с синхронизаций GPS-ГЛОНАСС, объединения некоторого количества приёмников в единую сеть, расположение приёмников на местности. Полученный успешный результат позволил расширить функциональные возможности программного обеспечения ADSBox, разработанного автором ранее.

Теория

  Теория вопроса широко представлена в сети и здесь приведена только в справочных целях. Задача решалась в её простейшей постановке - на плоскости. Такая постановка является вполне допустимой, так как положение воздушного судна в пространстве однозначно дополняется его высотой, которая чаще всего передаётся в режиме Mode-S даже при отсутствии координат.
  Рассмотрим решение задачи. Пусть на местности размещены три приёмника ADS-B сигнала. Приёмники 1, 2, 3 находятся в точках с известными координатами (x1, y1), (x2, y2), (x3, y3) соответственно. Воздушное судно, излучающее сигнал ADS-B, находится в точке с неизвестными координататми (x, y). Приёмники 1, 2, 3 находятся на неизвестных расстояниях R1, R2, R3 от воздушного судна (см. рис. 1).

рис. 1. Исходные данные задачи

  Выразим значение расстояний R1, R2, R3 через координаты приёмников и воздушного судна.

R1=√(x−x1)2+(y−y1)2

R2=√(x−x2)2+(y−y2)2

R3=√(x−x3)2+(y−y3)2

  Сигнал ADS-B преодолевает расстояния R1, R2, R3 от воздушного судна до приёмников 1, 2, 3 за время, равное t1, t2, t3 соответственно. Благодаря тому, что отметки времени сигналов синхронизированы, имеется возможность вычислить разницу времени прихода сигнала к двум приёмникам несмотря на то, что время хода сигнала от воздушного судна до приёмников неизвестно. Выразим разницу расстояний между приёмниками и воздушным судном через разницу времени прихода сигнала к различным приёмникам

R1−R2=(t1−t2)c

R2−R3=(t2−t3)c

где с - скорость света, или,

R1−R21 [1]

R2−R32 [2]

где С1 и С2—известные константы. Из геометрии известно, что геометрическое место точек, для которых разница расстояний до двух выбранных точек есть постоянная величина, называется гиперболой. В данной задаче в двух выбранных точках (фокусах гиперболы) располагаются приёмники, а возможные места нахождения воздушного судна располагаются на гиперболе, показанной на рис. 1 синим цветом. Каждое из уравнений [1] и [2] соответствует одной гиперболе. Таким образом, уравнения [1] и [2] образуют систему уравнений, решение которой (точка пересечения гипербол) даёт искомые координаты воздушного судна.
  Перепишем систему уравнений, подставив в неё ранее найденные значения R1, R2, R3.

(x−x1)2+(y−y1)2− √(x−x2)2+(y−y2)2=(t1−t2)c

(x−x2)2+(y−y2)2− √(x−x3)2+(y−y3)2=(t2−t3)c

  Итоговая система уравнений используется в модуле программного обеспечения ADSBox для расчёта координат (x,y) воздушного судна. Более сложный случай нахождения координат не на плоскости, а в пространстве решается аналогично, однако, решение этой задачи не проводилось ввиду ограниченности "парка" приёмников.

Программный имитатор сети приёмников ADS-B

  Для начала работы над реализацией алгоритма мультилатерации потребовался источник данных, который бы имитировал поступление данных из сети настоящих приёмников. Для этого был написана программа-имитатор, представляющая собой сетевой сервер, который предоставляет расчётному алгоритму информацию, в точности соответствующую данным реальных декодеров. Имитатор моделирует движение воздушного судна с ответчиком ADS-B относительно нескольких расположенных на земле приёмников. Пакеты данных, генерируемые имитатором снабжаются временны́ми отметками, соответствующими времени прихода пакета данных на приёмник. Удобство программного имитатора состоит в возможности моделировать любое расположения приёмников на местности, задавать произвольное расположение воздушного судна относительно приёмников, а также параметры его движения.
  Реализация алгоритма мультилатерации создавалась в виде модуля к программному обеспечению ADSBox. В январе 2014г были получены первые результаты см. рис. 2.

Имитатор

рис. 2. Работа программы-имитатора

  На карте синими треугольниками отмечены места расположения приёмников (подписаны 1, 2, 3); имеется отметка воздушного судна с изображением траектории его движения. На формуляре слева выведены параметры движения воздушного судна. Эти параметры с достаточной точностью соответствуют значениям, заданным в программе-имитаторе. В данной демонстрации имитатор эмулировал передачу только высоты воздушного судна (пакет DF0). Однако, на формуляре отображены и другие параметры движения (курс, скорость). Такие параметры расчитываются ПО ADSBox косвенным образом на основе изменения координат воздушного судна и показаны на формуляре жёлтым цветом.
  Достигнутый на этом этапе успех позволил продолжить разработку в части практического применения.

Декодер сигналов ADS-B

  Ввиду того, что имеющиеся на рынке подходящие приёмники ADS-B представляют собой коммерческие продукты, имеющие существенные недостатки для решения поставленной задачи (закрытый код, недостаточное документирование, высокая цена), было принято решение разработать собственный декодер ADS-B. Важнейшей задачей, которую необходимо решить являлась синхронизация декодеров по времени.   Для определения разницы времени прихода сигнала от воздушного судна с требуемой (порядка десятков наносекунд) точностью планировалось применить модули GPS-ГЛОНАСС, которые следовало включить в схему декодера. Для синхронизации нескольких декодеров использовался сигнал 1PPS, фронт которого с хорошей точностью (±10нс, согласно паспорту модуля) соответствует началу секунды. Для оценки точности синхронизации двух модулей был собран макет см. рис. 3.

GNSS modules

рис. 3. Модули GPS-ГЛОНАСС

  Сигналы 1PPS с двух модулей подавались на двухканальный осциллограф, отображавший фронты сигналов в режиме накопления. Результат измерения дрейфа фронтов двух сигналов (накопление около 5мин.) представлен на рис. 4.

1PPS

рис. 4. Сигналы 1PPS

  Осциллограф синхронизируется по фронту сигнала 1PPS первого модуля (жёлтая линия), а фронт сигнала второго модуля имеет некоторый сдвиг относительно фронта первого модуля. Проведённый опыт показывает, что расхождение фронтов двух сигналов не превышает 50нс, что является очень хорошим результатом для данной задачи и соответствует погрешности на местности около 15м.
  Конечно, результат опыта достаточно предсказуем, и его можно было бы не проводить, однако, самостоятельное наблюдение точности синхронизации добавило уверенности при разработке декодера ADS-B сигналов.
  За основу конструкции декодера была взята схема на микроконтроллере Atmega, применявшаяся автором ранее при разработке ПО ADSBox. Однако, с учётом новых требований исходный код декодера был существенно доработан—пакеты данных, выдаваемые декодером снабжаются отметками времени, синхронизированными с модулем GPS-ГЛОНАСС. Кроме того, были добавлены некоторые другие возможности. Для отладки программного кода декодера был изготовлен полнофункциональный макет (рис. 5).

Decoder

рис. 5. Макет декодера ADS-B

  Для сети приёмников было изготовлено несколько экземпляров декодеров. Декодеры выдают принятую от ответчиков воздушных судов информацию на последовательный порт; имеют возможность удалённого обновления прошивки через последовательный порт без отключения от компьютера станции приёма; возможна прямая связь компьютера с модулем GPS-ГЛОНАСС, что полезно, например, для определения местоположения приёмной станции.
  Для проверки правильности работы кода декодера был проведён опыт по синхронному приёму данных на два декодера. Опыт проводился следующим образом. Антенны приёмников располагались рядом. Пакетами данных, принимаемыми парой декодеров заполнялся список. Из списка выбирались одинаковые пакеты, принятые разными декодерами и оценивалось расхождение отметок времени этих пакетов. Анализ показал, что расхождение времени соответствует погрешности на местности 10-20м, что подтвердило правильность работы декодера и позволило приступить к испытаниям на практике.

Станции приёма MLAT

  Для демонстрации результата работы созданной системы потребовалось развернуть на местности три (минимальное необходимое количество) приёмные станции, объединить их в единую ip-сеть и запустить ПО ADSBox на одном из узлов сети.
  Приёмная станция включает в себя следующие элементы: антенна на диапазон 1090МГц, приёмник miniadsb диапазона 1090МГц, декодер ADS-B, управляющий компьютер с ОС Linux. На компьютере необходимо запустить программное обеспечение, которое передаёт данные из последовательного порта в ip-сеть, например, netcat.
  В качестве управляющего компьютера одной из станций приёма была задействована плата Raspberry Pi, помещённая в корпус подходящего размера. Приёмная антенна—коллинеар 8 элементов. Приёмник 1090МГц размещён в корпусе антенны—пластмассовой трубе диаметром 25мм. Это позволило избежать использования коаксиального кабеля между антенной и приёмником, который добавляет потери в принимаемый сигнал. Декодер с модулем GPS-ГЛОНАСС размещается в полиэтиленовой банке с плотной крышкой которая закреплена на корпусе антенны.
  Набор устанавливаемого оборудования показан на рис. 6.

Assembly

рис. 6. Оборудование станции приёма

  Внешний вид установленной антенны показан на рис. 7.

Antenna

рис. 7. Установленная антенна станции приёма

Работа сети приёмников ADS-B

  Развёртывание сети приёмников завершилось в октябре 2015г. Работа с сетью приёмных станций MLAT ничем не отличалась от работы с программным имитатором и первый же запуск программы вскоре показал отметку воздушного судна, координаты которого были получены расчётным путём. Скриншот этого события сохранился (рис. 8). Особенно приятно, что это SSJ-100. Направление расчитанной траектории на карте совпадает с полученным значением курса, что подтверждает правильность расчёта.

Decoders

рис. 8. Первый результат расчёта

  Вид программы в режиме расчёта MLAT показан на рис. 9. Одновременно может наблюдаться несколько отметок воздушных судов, координаты которых получены расчётным путём. Кроме того, показаны две гиперболы, которые графически изображают решение системы уравнений алгоритма мультилатерации.

Decoders

рис. 9. Расчёт координат воздушного судна

  Был проведён опыт по определению точности расчёта получаемых координат. Для этого был модифицирован код программы так, чтобы для одного из воздушных судов, передающих свои координаты, намеренно создавался "фантом", координаты которого необходимо вычислить. Результат сравнения реальных и вычисленных координат воздушного судна представлен на рисунке. Настоящие координаты (маркер с белой меткой) несколько отстоят от вычисленных (жёлтая метка). Точность определения координат составляет около 200м.

Accuracy

рис. 10. Сравнение реальных и вычисленных координат

Выводы

  Выполненная работа позволила решить задачу определения местоположения воздушных судов, не передающих своих координат в режиме Mode-S.
  В качестве рекомендаций по применению системы, повышающих качество работы следует отметить следующее. Приёмные станции MLAT следует размещать в вершинах равностороннего треугольника на расстояниях радиуса приёма (ок. 400км в идеальных условиях) друг от друга для обеспечения максимальной зоны охвата. Приёмники должны обеспечивать приём достаточно большого количества пакетов данных - до сотен в секунду, при этом траектории воздушных судов становятся гладкими. Среда передачи данных, объединяющая приёмные станции в сеть, должна обеспечивать возможность передачи большого количества информации.

При воспроизведении ссылка на первоисточник обязательна.

@tty