RINEX (Receiver INdependent EXchange format) — набор форматов файлов для распространения данных спутниковых навигационных систем, включая GNSS. Один из этих стандартов, файлы навигации, предоставляют информацию о местоположении спутников.
Стандарт различается для разных спутниковых навигационных систем, но в целом его можно разделить на два типа: те, которые предоставляют векторы состояния в виде элементов орбиты, и те, которые предоставляют векторы состояния в виде декартовых координат (в кадре ECEF). Как представители каждого класса, навигационные файлы RINEX для GPS относятся к типу орбитальных элементов, а файлы для ГЛОНАСС относятся к типу декартовых координат.
В настоящее время я пытаюсь использовать векторы состояния, предоставленные в таких навигационных файлах RINEX, в качестве отправной точки для распространения с помощью высокоточного числового распространителя. Однако я считаю, что для выполнения такой операции важно точно знать, к какому моменту времени относятся предоставленные векторы состояния.
Несколько параметров времени предоставляются в навигационных файлах RINEX, как описано, например, здесь , и в более интерактивном виде здесь для файлов GPS и здесь для файлов GLONASS .
Мой вопрос заключается в том, как из различных предоставленных параметров времени мы можем получить время, которому векторы состояния соответствуют как можно точнее?
Я оставляю ниже краткое изложение того, что мне удалось сделать до сих пор, разбитое на разделы GPS и ГЛОНАСС.
GPS
Формат описан в таблицах A3 и A4 приложения к настоящему документу с примером в таблице A8 того же приложения.
Первая строка каждого сообщения содержит поля для года, месяца, дня, часа, минуты и секунды Эпохи. Однако я не уверен в следующих моментах, касающихся таких полей эпохи:
Заголовок содержит набор параметров, помеченных как Delta-UTC, которые, по-видимому, можно использовать для «вычисления времени в формате UTC» с именами A0, A1, эталонным временем и номером недели. Формула преобразования выглядит следующим образом, согласно разделу 5.4.1 этого документа и разделу 8.2 этого документа :
Где время в формате UTC, это "время космического корабля" и "спутниковое время часов".
В связи с этим я не уверен в следующем:
Сообщения также включают поля «Время эфемерид» (первое поле 4-й строки сообщений) и «Время передачи» (первое поле 8-й строки сообщений), оба в единицах «секунд GPS-недели».
Наконец, 3-е поле 6-й строки сообщений — «Номер недели GPS». Я склонен думать, что это значение потенциально может быть объединено с полем «Время эфемерид», чтобы получить время эпохи для сообщаемых эфемерид.
ГЛОНАСС
Формат описан в таблицах A10 и A11 приложения к настоящему документу с примером в таблице A12 того же приложения.
Ситуация с сообщениями ГЛОНАСС выглядит несколько иначе. Заголовок (который действителен для всех включенных в файл сообщений, которые могут и на самом деле обычно поступают с разных спутников в созвездии) содержит набор параметров, помеченных как «СООТВЕТСТВИЕ СИСТЕМНОМУ ВРЕМЕНИ». Это:
Описано, что эти параметры используются для выполнения «корректировки шкалы системного времени для корректировки системного времени ГЛОНАСС по всемирному координированному времени», применяя формулу, описанную в разделе 5.4.2 этого документа и разделе 8.2 этого документа.
The и параметры, кажется, предоставляются в первой строке каждого сообщения, и я предполагаю, что они снова являются некоторой формой смещения часов и дрейфа часов. Однако мне до сих пор неясны следующие моменты:
Редактировать : я подумал, что было бы неплохо отслеживать здесь разъяснения, которые мы находим для различных вопросов.
Редактировать 2 : я оставил в качестве другого ответа процедуру, которую считаю правильной после разъяснений, предоставленных @NgPh.
Что именно и ?
Первый – это любое время (например, время передачи сообщения), выраженное в системе времени, поддерживаемой конкретным спутником (космическим аппаратом). Второе – это время отсчета для коррекции часов, выраженное в той же системе времени. Коррекция необходима для того, чтобы любое время, объявленное любым спутником, можно было преобразовать в общую систему времени GPS (также называемую GPST). Следовательно, уравнение 2 справочной спецификации GPS (IS-GPS-200M, стр. 95 - которую вы упомянули в комментариях выше) позволяет приемнику исправить ошибки часов в конкретном КА , из навигационных данных, передаваемых этим КА, чтобы получить общий ссылка на время. Эти широковещательные данные вычисляются Операционным центром GPS и регулярно обновляются им. Это объяснение из спецификации GPS (IS-GPS-200M, раздел 20.3.3.3.3.1) более понятно:
Можно ли расширить формулу, включив в нее квадратичный член, например , где будет ли скорость дрейфа часов, также включенная в первую строку каждого сообщения?
Можно, так как поле существует в спецификациях. Возможно, что этот квадратичный член используется редко. Его ненулевое значение будет означать, что частота бортовых часов также дрейфует. Вероятно, они перейдут на запасные атомные часы (если этим не страдают оба часа).
Потребуются ли также релятивистские поправки для правильного получения времени UTC?
Я думаю, что релятивистская поправка зависит от приложения. Я считаю, что для целей локализации вам не нужно UTC, просто чтобы синхронизировать 4 измеренные дельты времени с одной и той же общей ссылкой времени (GPST).
Формула в документе RINEX, раздел 5.4.1 (воспроизведенная здесь) немного озадачивает.
Похоже, что это неполная формула, в которой пропущенные термины заменены на "..." (точки приостановки, которые вы не воспроизвели в своем вопросе). Спецификация GPS, раздел 20.3.3.5.2.4, намного понятнее. Он гласит:
Таким образом, A0 и A1 играют ту же роль, что и af0 и af1. Вместе с дополнительными секундами они служат для коррекции дрейфа GPST относительно UTC, подобно тому, как af0, af1 (и, возможно, af2) служат для корректировки дрейфа времени. по отношению к ГПТ.
Обратите внимание, что опорное время для вычисления поправочного члена для является (а не ссылку на поправочный срок для )
Я не читал спецификации ГЛОНАСС, но думаю, что все корректировки часов GNSS (Galileo, Beidou,...) следуют одному и тому же подходу, с различиями только в обозначениях терминов. Хорошим упражнением будет чтение тех же разделов в их спецификациях (мне лень!).
Благодаря очень проницательному объяснению @NgPh, я думаю, что наконец-то смог понять, как правильно выполнять поправки часов к UTC для навигационных файлов GPS и ГЛОНАСС RINEX. Теперь я завершил свою собственную реализацию и подумал, что было бы неплохо оставить краткое изложение процесса, поскольку я считаю, что оно здесь правильное. Обратите внимание, что описанные здесь процессы относятся к тому, как скорректировать время эфемерид (проще говоря, время, в которое действителен предоставленный вектор состояния спутника).
GPS
Здесь задействованы два этапа: преобразование времени отдельного спутника GPS в общесистемное GPST и преобразование GPST в UTC.
ГЛОНАСС
С файлами ГЛОНАСС ситуация кажется проще, хотя есть еще пара вещей, в которых я не уверен на 100%. Следует отметить, что время ГЛОНАСС привязано к времени UTC, и в любой момент времени будет только небольшое смещение (обычно в диапазоне нескольких сотен наносекунд и в любом случае всегда ниже 1 мс, как указано на стр. 15 спецификации ГЛОНАСС ). Кроме того, навигационные файлы RINEX GLONASS предоставляют эфемериды непосредственно в декартовых координатах в системе координат ECEF. Я считаю, что правильная процедура для получения наиболее точного времени UTC:
Дэвид Хаммен
Рафа
PM 2Кольцо
Рафа
PM 2Кольцо
Рафа
Рафа