ПОЧАТКОВА ОБРОБКА ДАНИХ

Цей додаток надається з історичною та освітньою метою. Описані тут алгоритми обчислення координат супутника, швидкості, ефемерид, альманаху, корекції годинника, псевдодальності та корекції обертання Землі базуються на відкритій технічній літературі з GNSS, включно з Додатком 3 публічного документа контролю інтерфейсу GLONASS, версія 5.0 (2002), який надає приклади алгоритмів для обчислення координат і швидкості супутника на основі параметрів ефемерид і даних альманаху. Ця сторінка не є посібником з експлуатації приймача, сервісом обробки GNSS у реальному часі, керівництвом із розгортання чи специфікацією поточної реалізації навігаційної інфраструктури.

Ключові параметри

Позначення Опис
\(\mu\)Гравітаційний параметр Землі, \(3.986005 \times 10^{14} \, \text{m}^3\text{s}^{-2}\) для GPS (WGS-84), \(398600.44 \, \text{km}^3\text{s}^{-2}\) для GLONASS (PZ-90). Примітка: раніше позначався як \(m\) у деякій документації.
\(A\)Велика піввісь (метри), обчислюється як \( A = (\sqrt{A})^2 \) з трансльованого квадратного кореня великої півосі (\(\sqrt{A}\)).
\(\Delta n\)Трансльована різниця середнього руху (рад/с), коригує теоретичний середній рух для GPS.
\(e_0\)Ексцентриситет орбіти супутника (безрозмірний).
\(\omega\)Аргумент перигею (радіани), частина орбітальних елементів.
\(t_{0E}\)Опорний час епохи ефемерид (секунди), час GPS для ефемерид.
\(\dot{\Omega}\)Швидкість прямого піднесення вузла сходження (рад/с), позначається як OMEGADOT у GPS.
\(I_0\)Кут нахилу на опорну епоху (радіани).
\(\dot{I}\)Швидкість зміни кута нахилу (рад/с), позначається як IDOT у GPS.
\(C_{UC}, C_{US}\)Амплітуда косинусного/синусного гармонічного поправкового члена до аргументу широти (радіани).
\(C_{RC}, C_{RS}\)Амплітуда косинусного/синусного гармонічного поправкового члена до орбітального радіуса (метри).
\(C_{IC}, C_{IS}\)Амплітуда косинусного/синусного гармонічного поправкового члена до кута нахилу (радіани).
\(\omega_3\)Кутова швидкість обертання Землі, \(7.2921151467 \times 10^{-5} \, \text{rad/s}\).
\(a_{f0}, a_{f1}, a_{f2}\)Поліноміальні коефіцієнти моделі корекції годинника супутника GPS (секунди, секунди/с, секунди/с²).
\(\Delta t_R\)Релятивістський поправковий член для зсуву годинника GPS (секунди).
\(T_{GD}\)Загальна диференціальна групова затримка для GPS (секунди), корекція міжчастотного зсуву.
\(\tau_n(t_b)\)Зсув годинника GLONASS на опорний час \(t_b\) (секунди).
\(\gamma_n(t_b)\)Відносний частотний зсув GLONASS на \(t_b\) (безрозмірний).
\(\tau_i\)Інтервал часу GLONASS для перерахунку ефемерид (секунди).
\(C_{20}\)Коефіцієнт другої зональної гармоніки геопотенціалу, \(-1082.63 \times 10^{-6}\) (безрозмірний, PZ-90).
\(a_e\)Екваторіальний радіус Землі, \(6378.136 \, \text{km}\) (PZ-90).
\(h_{max}\)Максимально допустимий крок інтегрування для методу Рунге-Кутти, типово \(60 \, \text{s}\).

1. Отримані дані перевіряються на достовірність шляхом обчислення контрольних сум отриманих повідомлень і порівняння їх із переданими контрольними сумами.

У разі невідповідності отриманий пакет відхиляється. Типи контрольних сум і методи їх обчислення наведено в попередній лекції та її додатку. Якщо параметри достовірні, формуються прапорці їхньої достовірності \(\bigl(Flag_{i,j,k} = 0\bigr)\), де \(i\) — номер навігаційного приймача; \(j\) — номер навігаційного супутника; \(k\) — тип навігаційної системи: 0 — GPS; 1 — GLONASS.

2. Перетворення даних у фізичні величини

Перетворення даних у фізичні величини виконується шляхом множення на відповідні масштабні коефіцієнти (таблиця 1).

Таблиця 1. Поля даних вимірювань

Поле Тип повідомлення Масштабний коефіцієнт
Азимут супутника (одиниці по 2 градуси) Структура даних вимірювань приймача Z18 (MPC) 2
Доплер Структура даних вимірювань приймача Z18 (MPC) 10⁴
Азимут супутника (одиниці по 2 градуси) Структура даних вимірювань приймача GG24 2
Доплер Структура даних вимірювань приймача GG24 10⁴
RCVtime Структура даних вимірювань приймача GG24 10³
Navt Структура даних вимірювань приймача GG24 1/c = 1 / 299792458 м/с
Navtdot Структура даних вимірювань приймача GG24 1/c = 1 / 299792458 м/с
PDOP Структура даних позиції 0.01

3. Дані ефемерид з попередньої лекції та її додатку використовуються для обчислення координат, компонентів вектора швидкості, зсуву годинника та дрейфу супутників GPS і GLONASS відповідно.

Обчислення виконується для часу \(\,t_{\text{tx}}\), розрахованого як:

\[ t_{\text{tx}} = rcvtime - Raw\_range \]

Обчислення часу передачі сигналу. Враховує затримку поширення світла між передаванням сигналу супутником та прийманням сигналу приймачем. Критично важливо для точної інтерполяції орбіти.

3.1. Обчислення параметрів руху космічного апарата GPS для заданого часу на основі даних ефемерид виконується за наведеним нижче алгоритмом.

Вхідні дані містять параметри, описані в попередній лекції та її додатку.

1) Перетворити всі значення \(M_{0}\), \(\Delta n\), \(\Omega_{0}\), OMEGADOT, \(I_{0}\), IDOT у радіани, помноживши на \(\pi\), де \(\pi = 3.1415926535898\).

2) Обчислити момент \(\,t_{K}\) від епохи GPS, що відповідає часу обчислення \(\,t\):

\[ t_{K} = t - t_{0E} \]

Час, що минув від опорної епохи ефемерид. Має враховувати перехід через тиждень (корекція ±302400с) для коректного вікна дійсності ефемерид.

якщо \(t_{K} > 302400\) с, то \(t_{K} = t_{K} - 604800\) с (для ефемерид);

якщо \(t_{K} < -302400\) с, то \(t_{K} = t_{K} + 604800\) с.

3) Обчислити скоригований середній рух:

\[ n = \sqrt{\frac{\mu}{A^3}} \;+\; \Delta n \]

Скоригований середній рух: \( n_{0}=\sqrt{\mu/A^{3}} \) з двотільної кеплерової динаміки, скоригований трансльованою різницею середнього руху \( \Delta n \) (рад/с). Тут \( \mu \) — гравітаційний параметр Землі, а \( A \) — велика піввісь.

де \(\mu = 3.986005 \times 10^{14} \text{ m}^3\text{s}^{-2}\) — гравітаційна стала.

4) Визначити поточне значення середньої аномалії \(M_{k}\) у момент часу \(t_{k}\):

\[ M_{k} = M_{0} + n \, t_{k} \]

5) Розв’язати рівняння Кеплера для ексцентричної аномалії \(E_{k}\) методом Ньютона:

\( E_{k} \;-\; e_{0}\,\sin E_{k} \;=\; M_{k} \)

Трансцендентне рівняння Кеплера. Не має замкненого розв’язку; потребує ітеративного розв’язання. Зв’язує середню аномалію (рівномірний рух) з ексцентричною аномалією (фактична позиція).

\( E_{k(n+1)} \;=\; E_{k(n)} \;+\; \frac{M_{k} \;-\; E_{k(n)} \;+\; e_{0}\,\sin E_{k(n)}}{1 \;-\; e_{0}\,\cos E_{k(n)}} \)

Ітерація Ньютона-Рафсона для рівняння Кеплера. Збігається квадратично; типово 3–5 ітерацій для ексцентриситетів GPS (e < 0,02).

де \(n = 1, 2, 3, ...\);

\(E_{k1} = M_{k}\);

\(\bigl| E_{k(n+1)} - E_{k(n)} \bigr| < \text{eps}\);

\(\text{eps}\) — необхідна точність.

6) Обчислити похідну \(E_{k}'\):

\[ E_{K}' = \frac{n}{1 - e_{0} \cos E_{Kn}} \]

Швидкість зміни ексцентричної аномалії. Необхідна для обчислень швидкості та екстраполяції орбіти. Сингулярна при e=1 (параболічна орбіта).

7) Обчислити релятивістський поправковий член:

\( \Delta t_R = C \cdot \sqrt{A} \cdot e \cdot \sin E \)

де: \(C = -4.442807633 \times 10^{-10}\).

Релятивістська корекція годинника через ексцентриситет орбіти. Важлива для точності часу супутника GPS.

8) Обчислити істинну аномалію:

\[ \Theta_{K} = \arctan\!\Bigl(\tfrac{\sqrt{1 - e_{0}^{2}} \,\sin E_{K}}{\cos E_{K} \;-\; e_{0}}\Bigr)\! \]

Істинна аномалія: фактична кутова позиція на орбіті. Потрібен чотириквадрантний арктангенс для коректного визначення кута в усіх орбітальних позиціях.

9) Обчислити аргумент широти:

\[ \Phi_{K} = \Theta_{K} \;+\; \omega \]

Аргумент широти: кут від вузла сходження до позиції супутника. Базовий параметр для гармонічних корекцій (Cuc, Cus тощо).

10) Обчислити похідну аргументу широти:

\[ \Phi_{K}' = \tfrac{\sqrt{1 - e_{0}^{2}}\, E_{K}'}{1 \;-\; e_{0} \,\cos E_{K}} \]

Швидкість зміни аргументу широти. Критично важлива для обчислень швидкості та похідних гармонічних корекцій.

11) Обчислити скоригований аргумент широти:

\[ U_{K} = \Phi_{K} + C_{UC}\,\cos(2\Phi_{K}) + C_{US}\,\sin(2\Phi_{K}) \]

Корекції другої гармоніки до аргументу широти. Моделюють орбітальні збурення від сплощення Землі (ефект J2).

12) Обчислити похідну скоригованого аргументу широти:

\[ U_{K}' = \Phi_{K}' \Bigl( 1 \;+\; 2\bigl(C_{US}\cos 2\Phi_{K} \;-\; C_{UC}\,\sin 2\Phi_{K}\bigr)\Bigr). \]

Компонент швидкості аргументу широти, включно з гармонічними членами. Необхідний для точної швидкості супутника в орбітальній площині.

13) Визначити поточне значення скоригованого радіус-вектора:

\( r_{K} = A \,(1 - e_{0}\,\cos E_{K}) + C_{RC}\,\cos(2\Phi_{K}) \;+\; C_{RS}\,\sin(2\Phi_{K}) \)

Орбітальний радіус з гармонічними корекціями. Моделює відхилення від чистого кеплерового еліпса через гравітаційне поле Землі.

14) Обчислити похідну радіус-вектора:

\[ r_{K}' = A\,e_{0}\,E_{K}'\,\sin E_{K} + 2\,\Phi_{K}' \Bigl(C_{RS}\,\cos 2\Phi_{K} - C_{RC}\,\sin 2\Phi_{K}\Bigr). \]

Компонент радіальної швидкості. Поєднує кеплерів рух з швидкостями гармонічних корекцій. Нульовий в апогеї/перигеї для кругових орбіт.

15) Визначити скоригований кут нахилу орбіти:

\( I_{K} = I_{0} + C_{IC}\,\cos(2\Phi_{K}) \;+\; C_{IS}\,\sin(2\Phi_{K}) + IDOT \, t_{K} \)

Нахил орбіти з секулярним дрейфом і періодичними змінами. Член IDOT моделює довгострокову прецесію через J2 Землі.

16) Обчислити похідну скоригованого кута нахилу орбіти:

\[ I_{K}' = IDOT \;+\; 2\,\Phi_{K}'\bigl(C_{IS}\,\cos 2\Phi_{K} - C_{IC}\,\sin 2\Phi_{K}\bigr). \]

17) Обчислити вектор позиції супутника в орбітальній площині:

\(X_{\Phi_{K}} = r_{K}\,\cos U_{K}\),

\(Y_{\Phi_{K}} = r_{K}\,\sin U_{K}\).

Позиція супутника в координатах орбітальної площини. Початок координат у центрі Землі, вісь X спрямована до вузла сходження. Передує перетворенню в ECEF.

18) Обчислити похідну цього вектора:

\[ X'_{\Phi_K} = r_K' \cos U_K - Y_{\Phi_K} U_K' \]

Компоненти швидкості в орбітальній площині. Поєднують радіальний рух (r') з кутовим рухом (U'). Максимальна тангенціальна швидкість у перигеї.

\[ Y'_{\Phi_K} = r_K' \sin U_K - X_{\Phi_K} U_K' \]

19) Обчислити скориговану довготу вузла сходження орбіти:

\[ \Omega_{K} = \Omega_{0} + (OMEGADOT \;-\; \omega_{3})\,t_{K} \;-\; \omega_{3}\,t_{0E} \]

Пряме піднесення вузла сходження в земно-фіксованій системі. Враховує прецесію орбіти (OMEGADOT) та обертання Землі (ω₃) під час поширення сигналу.

де \(\omega_{3} = 7.2921151467 \times 10^{-5}\,\text{rad}\,\cdot\,\text{s}^{-1}\) — швидкість обертання Землі.

20) Обчислити похідну довготи вузла сходження:

\[ \Omega_{K}' = OMEGADOT \;-\; \omega_{3} \]

21) Обчислити координати космічного апарата в момент часу \(t_{K}\):

\(X_{SVK} = X_{\Phi_{K}}\cos \Omega_{K} - Y_{\Phi_{K}}\,\cos I_{K}\,\sin \Omega_{K}\),

Перетворення з орбітальних координат у геоцентричні земнофіксовані координати. Два повороти: на кут вузла (Ω) і нахил (I). Результат у WGS-84.

\(Y_{SVK} = X_{\Phi_{K}}\sin \Omega_{K} - Y_{\Phi_{K}}\,\cos I_{K}\,\cos \Omega_{K}\),

\(Z_{SVK} = Y_{\Phi_{K}}\,\sin I_{K}\).

22) Обчислити швидкості:

\(X'_{SVK} = -\,\Omega_{K}'\,Y_{SVK} + X'_{\Phi_{K}}\,\cos\Omega_{K} - \bigl(Y'_{\Phi_{K}}\,\cos I_{K} - Y_{\Phi_{K}}\,I'_{K}\,\sin I_{K}\bigr)\sin\Omega_{K}\),

Швидкість ECEF з урахуванням членів Коріоліса від обертової системи відліку. Критично важливо для прогнозів Доплера та екстраполяції орбіти поза вікном дійсності ефемерид.

\(Y'_{SVK} = \Omega_{K}'\,X_{SVK} + X'_{\Phi_{K}}\,\sin\Omega_{K} + \bigl(Y'_{\Phi_{K}}\,\cos I_{K} - Y_{\Phi_{K}}\,I'_{K}\,\sin I_{K}\bigr)\cos\Omega_{K}\),

\(Z'_{SVK} = Y_{\Phi_{K}}\,I'_{K}\,\sin I_{K} + Y'_{\Phi_{K}}\,\sin I_{K}\).

23) Обчислити прискорення:

\[ X''_{SVK} = \Bigl(-\frac{\mu}{r_{K}^{3}} + \omega_{3}^{2}\Bigr)\,X_{SVK} \;+\; 2\,Y'_{SVK}\,\omega_{3} \]

Прискорення в обертовій системі ECEF. Включає центральну гравітацію, центрифугальне прискорення та ефект Коріоліса. Використовується для екстраполяції орбіти.

\[ Y''_{SVK} = \Bigl(-\frac{\mu}{r_{K}^{3}} + \omega_{3}^{2}\Bigr)\,Y_{SVK} \;-\; 2\,X'_{SVK}\,\omega_{3} \]

\[ Z''_{SVK} = \frac{\mu}{r_{K}^{3}}\;Z_{SVK} \]

24) Обчислити різницю часу:

\(t_{k} = t - t_{0c}\)

якщо \(t_{k} > 302400\) с, то \(t_{k} = t_{k} - 604800\) с,

якщо \(t_{k} < -302400\) с, то \(t_{k} = t_{k} + 604800\) с.

25) Обчислити поточний зсув годинника космічного апарата для частот L1 та L2:

\[ \text{offset}_{L1} = a_{f0} + t_{K} \bigl(a_{f1} + t_{K} a_{f2}\bigr) + \Delta t_{R} - T_{GD} \]

Модель годинника супутника GPS: поліном + релятивістська корекція (\(\Delta t_R\)) та міжчастотний зсув (\(T_{GD}\)). Усуває помилки часу 2-5 м від ексцентриситету орбіти та апаратних затримок.

\[ \text{offset}_{L2} = a_{f0} + t_{K} \bigl(a_{f1} + t_{K} a_{f2}\bigr) + \Delta t_{R} - 1.64694\,T_{GD} \]

Корекція годинника L2 з масштабованою груповою затримкою. Коефіцієнт 1,64694 = (f_L1/f_L2)² враховує частотно-залежну іоносферну затримку.

26) Обчислити дрейф:

\[ drift = a_{f1} \;+\; 2\,a_{f2}\,t_{k} \]

Частотний зсув годинника супутника («дрейф»): лінійний член \(a_{f1}\) плюс член старіння \(2\,a_{f2}\,t_{k}\). Типовий дрейф: \(10^{-11}\)–\(10^{-12}\) для рубідієвих годинників.

3.2. Обчислення параметрів руху космічного апарата GLONASS для заданого часу на основі даних ефемерид.

Вхідні дані містять параметри, описані в попередній лекції.

Перерахунок ефемерид від моменту часу \(t_{b}\) до моменту часу

\(\bigl|\tau_{i}\bigr| = \bigl|t_{i} - t_{b}\bigr| \leq 15\,\text{min}\)

виконується чисельним інтегруванням диференціальних рівнянь руху космічного апарата, праві частини яких враховують прискорення, визначені гравітаційною сталою Землі, гармонікою \(C_{20}\), що характеризує полярне сплощення Землі, та прискореннями гравітаційних збурень Місяця і Сонця. Рівняння руху космічного апарата інтегруються в прямокутній геоцентричній системі координат PZ-90 методом Рунге-Кутти четвертого порядку та мають вигляд:

\(\frac{dx}{dt} = V_{x},\)

\(\frac{dy}{dt} = V_{y},\)

\(\frac{dz}{dt} = V_{z}.\)

\[ dV_{x} / dt = -\frac{\mu}{r^{3}}x + \frac{3}{2}C_{20} \frac{\mu a_{e}^{2}}{r^{5}} x \left[1 - \frac{5z^{2}}{r^{2}}\right] + \omega_{3}^{2}x + 2\omega_{3}V_{y} + \ddot{x}, \]

Модель динаміки GLONASS: геопотенціал (\(C_{20}\)), обертання Землі (\(\omega_3\)) та місячно-сонячні збурення (\(\ddot{x}\)). Інтегрування методом Рунге-Кутти забезпечує точність орбіти < 5 см на інтервалах 15 хв.

\[ dV_{y} / dt = -\frac{\mu}{r^{3}}y + \frac{3}{2}C_{20} \frac{\mu a_{e}^{2}}{r^{5}} y \left[1 - \frac{5z^{2}}{r^{2}}\right] + \omega_{3}^{2}y + 2\omega_{3}V_{x} + \ddot{y}, \]

\[ dV_{z} / dt = -\frac{\mu}{r^{3}}z + \frac{3}{2}C_{20} \frac{\mu a_{e}^{2}}{r^{5}} z \left[3 - \frac{5z^{2}}{r^{2}}\right] + \ddot{z}. \]

де:

  • \(r = \sqrt{x^{2} + y^{2} + z^{2}}\)
  • \(\mu = 398600.44 \text{ km}^{3}/\text{s}^{2}\) — гравітаційна стала Землі
  • \(a_{e} = 6378.136 \text{ km}\) — екваторіальний радіус Землі
  • \(C_{20} = -1082.63 \times 10^{-6}\) — коефіцієнт другої зональної гармоніки розкладу геопотенціалу в сферичних функціях
  • \(\omega_{3} = 0.7292115 \times 10^{-4}\,\text{s}^{-1}\) — кутова швидкість обертання Землі

Значення \(\mu, a_{e}, C_{20}, \omega_{3}\) прийняті в системі координат PZ-90.

Процедура обчислення:

1) Обчислити інтервал часу, на який виконується прогноз:
\(\tau_{i} = t_{i} - t_{b} \cdot 60.\)

Якщо \(\tau_{i} > 43200\), встановити \(\tau_{i} = t_{i} - 86400\),
Якщо \(\tau_{i} < -43200\), встановити \(\tau_{i} = t_{i} + 86400\).

2) Обчислити кількість кроків інтегрування:

\[ K = \frac{\tau_{i}}{h_{max}} + 1 \]

де \(h_{max}\) — максимально допустимий крок інтегрування, що визначає точність інтеграла; для цього завдання достатньо взяти \(h_{max} = 60\) с.

3) Обчислити крок інтегрування:

\[ h = \frac{\tau_{i}}{K} \]

4) Обчислити коефіцієнти \(K\) разів:

\(K_{0j} = h\,F_{j}(Y_{ji});\)

Перший коефіцієнт RK4. Крок h ≤ 60с забезпечує точність < 5 см на інтервалі дійсності ефемерид GLONASS 15 хвилин з точними початковими умовами та моделями збурень.

\(K_{1j} = h\,F_{j}\bigl(Y_{ji} + \tfrac{1}{3}K_{0j}\bigr);\)

\(K_{2j} = h\,F_{j}\bigl(Y_{ji} + \tfrac{1}{6}K_{0j} + \tfrac{1}{6}K_{1j}\bigr);\)

\(K_{3j} = h\,F_{j}\bigl(Y_{ji} + \tfrac{1}{8}K_{0j} + \tfrac{3}{8}K_{2j}\bigr);\)

\(K_{4j} = h\,F_{j}\bigl(Y_{ji} + \tfrac{1}{2}K_{0j} - \tfrac{3}{2}K_{2j} + 2K_{3j}\bigr).\)

Де:

\(F_{1}(Y_{1i}) = \frac{dx}{dt};\)

\(F_{2}(Y_{2i}) = \frac{dy}{dt};\)

\(F_{3}(Y_{3i}) = \frac{dz}{dt};\)

\(F_{4}(Y_{4i}) = \frac{dV_{x}}{dt};\)

\(F_{5}(Y_{5i}) = \frac{dV_{y}}{dt};\)

\(F_{6}(Y_{6i}) = \frac{dV_{z}}{dt};\)

\(i = 1, \ldots, K;\)

\(j = 1, \ldots, 6.\)

Початкові умови \(Y_{j1}\) — координати та швидкості космічного апарата з даних ефемерид у момент часу \(t_{b}\).

Після кожного циклу за \(i\) отримуються нові значення:

\(Y_{j(i+1)} = Y_{ji} + \tfrac{1}{6}\bigl(K_{0j} + 4K_{3j} + K_{4j}\bigr).\)

Координати та швидкості космічного апарата в момент часу \(t_{i}\) — це значення \(Y_{ji}\) після завершення циклу за \(i\).

5) Обчислити зсув годинника \(n\)-го космічного апарата відносно шкали часу GLONASS:

\(\text{offset} = \tau_{n}(t_{b}) - \gamma_{n}(t_{b}) \cdot \tau_{i}\)

Модель годинника GLONASS: лише лінійна (без квадратичного члена). \( \tau_{n}(t_{b}) \) — зсув годинника; \( \gamma_{n}(t_{b}) \) — відносний частотний зсув; \( \tau_{i} \) — інтервал часу. Простіша за модель GPS.

6) Дрейф годинника \(n\)-го космічного апарата дорівнює параметру \(\gamma_{n}(t_{b})\):

\(\text{drift} = \gamma_{n}(t_{b}).\)

4. Дані альманаху з попередньої лекції та її додатку використовуються для обчислення координат і компонентів вектора швидкості космічних апаратів GPS і GLONASS.

Алгоритми обчислення наведено нижче.

4.1. Обчислення параметрів руху космічного апарата GPS для заданого часу на основі даних альманаху.

Вхідні дані містять параметри, описані в попередній лекції та її додатку.

1) Перетворити всі значення \(M_{0}\), \(\Omega_{0}\), OMEGADOT, \(I_{0}\) у радіани, помноживши на \(\pi\), де \(\pi = 3.1415926535898\).

2) Обчислити момент \(t_{K}\) від епохи GPS, що відповідає часу обчислення \(t\):

\(t_{K} = t - t_{0A};\)

3) Обчислити скоригований середній рух:

\[ n = \sqrt{\frac{\mu}{A^{3}}} \]

де \(\mu = 3.986005 \times 10^{14} \text{ m}^{3}\text{s}^{-2}\) — гравітаційна стала.

4) Визначити поточне значення середньої аномалії \(M_{K}\) у момент часу \(t_{K}\):

\[ M_{K} = M_{0} + n\,t_{K} \]

5) Розв’язати рівняння Кеплера для ексцентричної аномалії \(E_{K}\) методом Ньютона:

\( E_{K} \;-\; e_{0}\,\sin E_{K} \;=\; M_{K} \)

\( E_{K(n+1)} = E_{K(n)} + \frac{M_{K} - E_{K(n)} + e_{0}\,\sin E_{K(n)}}{1 - e_{0}\,\cos E_{K(n)}} \)

де \(n = 1, 2, 3, \ldots\)

\(E_{K1} = M_{K},\)

\(\bigl|E_{K(n+1)} - E_{K(n)}\bigr| < \text{eps},\)

\(\text{eps}\) — необхідна точність.

6) Обчислити похідну \(\,E_{K}'\):

\[ E_{K}' = \frac{n}{1 - e_{0}\,\cos E_{K(n)}} \]

7) Обчислити істинну аномалію:

\[ \Theta_{K} = \arctan\!\Bigl(\frac{\sqrt{1 - e_{0}^{2}}\;\sin E_{K}}{\cos E_{K} - e_{0}}\Bigr)\! \]

8) Обчислити аргумент широти:

\[ \Phi_{K} = \Theta_{K} + \omega \]

9) Обчислити похідну аргументу широти:

\[ \Phi_{K}' = \frac{\sqrt{1 - e_{0}^{2}}\;E_{K}'}{\,1 - e_{0}\,\cos E_{K}\,} \]

10) Визначити поточне значення радіус-вектора:

\[ r_{K} = A \bigl(1 - e_{0}\,\cos E_{K}\bigr) \]

11) Обчислити похідну радіус-вектора:

\[ r_{K}' = A\,e_{0}\,E_{K}'\,\sin E_{K} \]

12) Обчислити вектор позиції супутника в орбітальній площині:

\(X_{\Phi K} = r_{K}\,\cos \Phi_{K}, \quad Y_{\Phi K} = r_{K}\,\sin \Phi_{K}.\)

13) Обчислити похідну цього вектора:

\[ X'_{\Phi_K} = r'_K \cos\Phi_K - Y_{\Phi_K} \Phi'_K, \]

\[ Y'_{\Phi_K} = r'_K \sin\Phi_K - X_{\Phi_K} \Phi'_K. \]

14) Обчислити скориговану довготу вузла сходження орбіти:

\[ \Omega_{K} = \Omega_{0} + \bigl(OMEGADOT - \omega_{3}\bigr)\,t_{K} \;-\; \omega_{3}\,t_{0A} \]

де \(\omega_{3} = 7.2921151467 \times 10^{-5}\,\text{rad}\cdot\text{s}^{-1}\) — швидкість обертання Землі.

15) Обчислити похідну довготи вузла сходження:

\[ \Omega_{K}' = OMEGADOT - \omega_{3} \]

16) Обчислити координати космічного апарата в момент часу \(t_{K}\):

\[ X_{SVK} = X_{\Phi_K} \cos\Omega_K - Y_{\Phi_K} \cos I_0 \sin\Omega_K, \]

\[ Y_{SVK} = X_{\Phi_K} \sin\Omega_K - Y_{\Phi_K} \cos I_0 \cos\Omega_K, \]

\[ Z_{SVK} = Y_{\Phi_K} \sin I_0. \]

17) Обчислити швидкості:

\[ X'_{SVK} = -\,\Omega'_K Y_{SVK} + X'_{\Phi_K} \cos\Omega_K - Y'_{\Phi_K} \cos I_0 \sin\Omega_K, \]

\[ Y'_{SVK} = \Omega'_K X_{SVK} + X'_{\Phi_K} \sin\Omega_K + Y'_{\Phi_K} \cos I_0 \cos\Omega_K, \]

\[ Z'_{SVK} = Y'_{\Phi_K} \sin I_0. \]

4.2. Обчислення параметрів руху космічного апарата GLONASS для заданого часу на основі даних альманаху.

Вхідні дані містять параметри, описані в попередній лекції та її додатку.

Заданий момент часу подано у шкалі часу GLONASS, де \(N_{T}\) — номер дня в межах чотирирічного періоду, а \(t_{cur}\) — час у секундах від початку цього дня.

1) Визначити поточні значення кеплерових елементів та деяких інших елементів орбіти:

\(i = i_{cp} + \Delta i;\quad T_{dr} = T_{mean} + \Delta T;\)

\(n = \frac{2\pi}{T_{dr}};\quad p = \sqrt[\,3]{\frac{\mu}{n^{2}}};\)

де

\(n\) – середній рух космічного апарата;

\(p\) – велика піввісь орбіти космічного апарата;

\(\pi = 3.1415926536;\quad \mu = 398600.44;\)

2) Застосувати корекції на несферичність Землі:

\[ \lambda^{*} = \lambda + (\dot{\lambda} - \omega_{3})\,\Delta t_{n},\quad \omega^{*} = \omega + \dot{\omega}\,\Delta t_{n}; \]

\[ \Delta t_{n} = (N_{T} - N^{A}) \cdot 86400 + t_{TEK} - t_{\lambda}; \]

де

\(\dot{\lambda} = -10 \Bigl(\frac{a_{c}}{p}\Bigr)^{\tfrac{7}{2}}\,\cos(i)\,\frac{\pi}{180 \cdot 86400}\);

\(\dot{\omega} = 5 \Bigl(\frac{a_{c}}{p}\Bigr)^{\tfrac{7}{2}} \bigl(5\cos^{2}i - 1\bigr)\,\frac{\pi}{180 \cdot 86400}\);

3) Розв’язати рівняння Кеплера методом Ньютона

\[ E_{k+1} = E_{M} + \varepsilon \sin(E_{k}),\; k = 0, \ldots \text{ доки } \]

\[ \bigl|E_{k+1} - E_{k}\bigr| > 3 \cdot 10^{-8}; \]

\[ E_{0} = E_{M}; \]

\[ E_{M} = n(\Delta t_{n} - \Delta T); \]

\[ \Delta T = \frac{E_{n} - \varepsilon \sin E_{n}}{n} + \begin{cases} 0, & \omega^{*} < \pi; \\ T_{dr}, & \omega^{*} > \pi; \end{cases} \]

\[ E_{\pi} = 2 \arctan \left( \tan \left( \frac{\omega^{*}}{2} \right) \sqrt{\frac{1 - e}{1 + e}} \right) \]

4) Визначити вектор стану космічного апарата в орбітальній системі координат:

\[ X^{0}_{1} = p (\cos E_{k+1} - \varepsilon), \quad \dot{X}^{0}_{1} = -\frac{np \sin E_{k+1}}{1 - \varepsilon \cos E_{k+1}}; \]

\[ X^{0}_{2} = p \sqrt{1 - \varepsilon^{2}} \sin E_{k+1}, \quad \dot{X}^{0}_{2} = \frac{np \sqrt{1 - \varepsilon^{2}} \cos E_{k+1}}{1 - \varepsilon \cos E_{k+1}}; \]

5) Обчислити одиничні вектори орбітальної системи координат у системі координат PZ-90:

\[ e^{0}_{11} = \cos\omega^{*} \cos\lambda^{*} - \sin\omega^{*} \sin\lambda^{*} \cos i; \]

\[ e^{0}_{12} = \cos\omega^{*} \sin\lambda^{*} + \sin\omega^{*} \cos\lambda^{*} \cos i; \]

\[ e^{0}_{13} = \sin\omega^{*} \sin i; \]

\[ e^{0}_{21} = -\sin\omega^{*} \cos\lambda^{*} - \cos\omega^{*} \sin\lambda^{*} \cos i; \]

\[ e^{0}_{22} = -\sin\omega^{*} \sin\lambda^{*} + \cos\omega^{*} \cos\lambda^{*} \cos i; \]

\[ e^{0}_{23} = \cos\omega^{*} \sin i; \]

6) Перетворити вектор стану космічного апарата з орбітальної системи координат у систему координат PZ-90:

\[ \overline{X}^{S} = X^{0}_{1} \overline{e}^{0}_{1} + X^{0}_{2} \overline{e}^{0}_{2}; \]

\[ \dot{\overline{X}}^{S} = \dot{X}^{0}_{1} \overline{e}^{0}_{1} + \dot{X}^{0}_{2} \overline{e}^{0}_{2}; \]

\[ \dot{X}^{S}_{1} = \dot{X}^{S}_{1} + \omega_{1} X^{S}_{2}; \]

\[ \dot{X}^{S}_{2} = \dot{X}^{S}_{2} - \omega_{1} X^{S}_{1}; \]

\[ \dot{X}^{S}_{3} = \dot{X}^{S}_{3}. \]

5. Обчислення кодових псевдодальностей

\[ \begin{cases} S_{C/A} = \bigl(Raw\_range_{C/A} + offset_{L1}\bigr)\,c,\\ S_{L1(L2)} = \bigl(Raw\_range_{L1(L2)} + offset_{L1(L2)}\bigr)\,c \end{cases} \quad \text{для GPS;} \]

Скоригована псевдодальність: сире кодове вимірювання + зсув годинника супутника. Примітка: GPS додає зсув, GLONASS віднімає. Залишкова похибка: 0,5–1 м RMS.

\[ \begin{cases} S_{C/A} = \bigl(Raw\_range_{C/A} - offset\bigr)\,c,\\ S_{L1(L2)} = \bigl(Raw\_range_{L1(L2)} - offset\bigr)\,c \end{cases} \quad \text{для GLONASS;} \]

Псевдодальність GLONASS з протилежним знаком корекції годинника. Відображає різні визначення систем часу між GPS і GLONASS.

де: \( c \) — швидкість світла у вакуумі; \( c = 299792458 \) м/с.

Швидкість зміни псевдодальності обчислюється за формулою:

\[ \dot{S}_{L1(2)} = -\,c \;\cdot\; \frac{F_{d,L1(L2)}}{f^{*}_{L1(2)}} \]

Швидкість зміни псевдодальності з доплерівського зсуву. Критично важлива для розв’язків швидкості та для згладжування за фазою несучої (точність 0,05 м/с). Знакова конвенція відповідає стандартам RINEX.

де:

\[ F_{d,L1(L2)} \text{ — доплерівська частота, вимірена на } f_{L1} \text{ та } f_{L2} \]

(Структуру даних вимірювань приймача Z18 для GPS і структуру даних вимірювань приймача GG24 для GLONASS детально описано в попередній лекції та її додатку.)

Частота обчислюється за формулою:

\[ f^{*}_{L1(2)} = f_{L1(2)} \;\cdot\; (1 + drift); \]

Частота сигналу супутника з урахуванням дрейфу годинника. Необхідна для точного перетворення доплерівського зсуву на швидкість.

\[ \begin{cases} f_{L1} = 1575.42 \cdot 10^{6}\,\text{Hz}, \\ f_{L2} = 1227.6 \cdot 10^{6}\,\text{Hz}; \end{cases} \quad \text{для GPS;} \] \[ \begin{cases} f_{L1} = 1602 \cdot 10^{6} + n \cdot 562.5 \cdot 10^{3}\,\text{Hz}, \\ f_{L2} = 1246 \cdot 10^{6} + n \cdot 437.5 \cdot 10^{3}\,\text{Hz}; \end{cases} \quad \text{для GLONASS;} \]

\(n\) — номер частотного каналу GLONASS.

Фазові псевдодальності обчислюються за такими формулами:

\[ \begin{cases} \varphi_{L1} = \varphi_{1} \,\frac{c}{f_{L1}} + offset_{L1}\,c, \\ \varphi_{L2} = \varphi_{2} \,\frac{c}{f_{L2}} + offset_{L2}\,c \end{cases} \quad \text{для GPS;} \]

Побудова фазової псевдодальності. Дозволяє позиціонування на рівні міліметрів у поєднанні з розв’язанням цілочисельної неоднозначності (PPP/RTK).

\[ \begin{cases} \varphi_{L1} = \varphi_{1} \,\frac{c}{f_{L1}} - offset\,c, \\ \varphi_{L2} = \varphi_{2} \,\frac{c}{f_{L2}} - offset\,c \end{cases} \quad \text{для GLONASS;} \]

6. Обчислення корекцій, що враховують обертання Землі

Корекції, що враховують обертання Землі, застосовуються лише до параметрів \( S_{C/A}, S_{L1}, S_{L2}, \dot{S}_{L1}, \dot{S}_{L2}, \varphi_{L1}, \varphi_{L2} \), прапорці достовірності яких дорівнюють нулю \( (Flag_{i,j,k} = 0) \), за такими формулами:

\[ \Delta_{\omega} \eta_{i,j,k} = \frac{\omega_3}{c} \cdot \bigl( y_{j} \cdot (x_{j} - X_{i}) - x_{j} \cdot (y_{j} - Y_{i}) \bigr); \]

Компенсує ефект Саньяка в псевдодальностях через обертання Землі під час поширення сигналу. Критично важливо для досягнення точності позиціонування < 10 см у системах PPP.

\[ \Delta_{\omega} \dot{\eta}_{i,j,k} = \frac{\omega_3}{c} \cdot \bigl( -\dot{y}_{j} \cdot X_{i} + \dot{x}_{j} \cdot Y_{i} \bigr); \]

Компенсує доплерівський зсув, спричинений обертанням Землі. Необхідно для точності швидкості < 0,1 мм/с.

де \(i\) — номер навігаційного приймача;
\(j\) — номер навігаційного супутника;
\(k\) — тип навігаційної системи;
\[\eta = S_{C/A}, S_{L1}, S_{L2}, \varphi_{L1}, \varphi_{L2};\]
\[\dot{\eta} = \dot{S}_{L1}, \dot{S}_{L2}.\]
Уточнені значення TNP визначаються як:
\[\eta_{i,j,1,k} = \eta_{i,j,k} + \Delta_{\omega}\eta_{i,j,k},\]
\[\dot{\eta}_{i,j,1,k} = \dot{\eta}_{i,j,k} + \Delta_{\omega}\dot{\eta}_{i,j,k},\]

7. Послідовність обробки вимірювальної інформації. Програмна структура.

В описаній тут історичній освітній моделі програмна структура станції контролю та корекції (СКК) представлена такою послідовністю етапів обробки вимірювальної інформації (МІ):

  • Отримання МІ від усіх навігаційних приймальних систем (НПС);
  • Попередня обробка МІ;
  • Фільтрація МІ та обчислення статистичних характеристик;
  • Застосування параметрів корекції, що враховують середовище поширення сигналу;
  • Аналіз МІ та моніторинг цілісності навігаційного поля;
  • Формування даних диференціальної корекції та цілісності (DCI);
  • Перевірка якості DCI та зберігання результатів у базі даних РПКНП.

Програмне забезпечення СКК — це набір модулів, що заповнюють базу даних РПКНП. Основні функції:

  • Введення, перевірка та коригування інформації про стан СКК;
  • Введення, перевірка та коригування інформації про стан зовнішніх систем;
  • Урахування геофізичних полів у географічній зоні СКК;
  • Формування DCI;
  • Моніторинг працездатності та несправностей СКК;
  • Моніторинг працездатності зовнішніх систем;
  • Історичне представлення функцій стану/самоперевірки СКК в межах модуля управління та контролю.
// Програмна структура Координатно-часової навігаційної системи забезпечення України

FUNCTION main():
            // Ініціалізація бази даних
            rpknp_db = INIT_RPKNP_DATABASE()

            WHILE has_new_data_frame():
// Крок 1: отримати та розпакувати сирі дані raw_frame = ACQUIRE_NRS_FRAME() unpacked_data = UNPACK_FRAME(raw_frame) // Крок 2: декодувати DI di_data = DECODE_DI(unpacked_data) // Крок 3: перетворити у фізичні параметри physical_params = CONVERT_DI_TO_PHYSICAL(di_data) // Крок 4: виявити та видалити викиди cleaned_params = DETECT_AND_REMOVE_OUTLIERS(physical_params) REPEAT:
// Крок 5: фільтрація та вирівнювання filtered_data = APPLY_FILTERS(cleaned_params, rpknp_db) statistical_data = PERFORM_STATISTICAL_ANALYSIS(filtered_data) aligned_data = TIME_ALIGN_DI(statistical_data) // Крок 6: корекції вимірювань corrected_data = APPLY_MEASUREMENT_CORRECTIONS(aligned_data, rpknp_db) // Крок 7: перевірка цілісності навігаційного поля integrity_status = NAVIGATION_FIELD_INTEGRITY_MONITOR(corrected_data, rpknp_db) // Крок 8: сформувати оптимальний DCI optimal_dci = GENERATE_OPTIMAL_DCI(corrected_data, integrity_status) // Крок 9: перевірити якість DCI dci_quality_ok = VALIDATE_DCI_QUALITY(optimal_dci, rpknp_db)
UNTIL dci_quality_ok == TRUE // Крок 10: закодувати та доставити DCI encoded_dci = ENCODE_DCI_FOR_USERS(optimal_dci) DELIVER_TO_END_USERS(encoded_dci) // Крок 11: закодувати MI/DI та передати до СКК encoded_midi = ENCODE_MI_DI_FOR_CCS(optimal_dci) TRANSFER_TO_CCS(encoded_midi) // Крок 12: оновити базу даних UPDATE_RPKNP_DATABASE(optimal_dci)
END WHILE CLOSE_DATABASE(rpknp_db) END FUNCTION

Модуль попередньої обробки вимірювальної інформації виконує:

  • Отримання даних від усіх НПС;
  • Керування режимом НПС за командами від модуля управління та контролю;
  • Розпакування та декодування кадрів DI/MI, отриманих від НПС;
  • Перетворення МІ у фізичні параметри;
  • Перевірку достовірності DI/MI.

Модуль обчислення DCI виконує:

  • Фільтрацію МІ та статистичний аналіз;
  • Застосування корекцій середовища поширення сигналу до вимірюваних параметрів;
  • Аналіз МІ;
  • Формування DCI;
  • Перевірку якості DCI.

Модуль кодування DCI наведено як освітнє представлення того, як повідомлення DCI можуть бути закодовані у форматах стилю RTCM SC-104 та збережені в базі даних РПКНП у межах історичної моделі.

// Логіко-програмна структура Координатно-часової навігаційної системи забезпечення України

Begin Координатно-часова навігаційна система забезпечення України
            INITIALIZE RPKNP_DATABASE
            INITIALIZE Control_And_Management_Module

            WHILE system_is_running:
// Модуль управління координує роботу інших модулів Control_And_Management_Module:
▸ Запуск MI_Preprocessing_Module ▸ Запуск DCI_Computation_Module ▸ Запуск DCI_Encoding_Module ▸ Моніторинг стан усіх модулів
// Модуль попередньої обробки вимірювальної інформації MI_Preprocessing_Module:
▸ Вхід сира вимірювальна інформація (MI) ▸ Виконати preprocessing ▸ Запис preprocessed_MI до RPKNP_Database
// Модуль обчислення диференціальної інформації DCI_Computation_Module:
▸ Читання preprocessed_MI з RPKNP_Database ▸ Обчислити DCI ▸ Запис DCI_result до RPKNP_Database
// Модуль кодування диференціальної інформації DCI_Encoding_Module:
▸ Читання DCI_result з RPKNP_Database ▸ Кодувати у формат передавання ▸ Запис encoded_DCI до RPKNP_Database
END WHILE END SYSTEM

Освітній результат: Описані алгоритми забезпечують початкову обробку даних GNSS, включно з обчисленням координат супутників, розрахунком псевдодальності та корекціями обертання Землі. Ці алгоритми використовують стандартні методи орбітальної механіки, такі як розв’язання рівняння Кеплера та перетворення координат, а також корекції, що враховують ефекти поширення сигналу. Це забезпечує попередню підготовку навігаційних даних для подальшої обробки та аналізу.