ПОЧАТКОВА ОБРОБКА ДАНИХ
Цей додаток надається з історичною та освітньою метою. Описані тут алгоритми обчислення координат супутника, швидкості, ефемерид, альманаху, корекції годинника, псевдодальності та корекції обертання Землі базуються на відкритій технічній літературі з 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} \]
якщо \(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 \]
де \(\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, ...\);
\(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}} \]
7) Обчислити релятивістський поправковий член:
\( \Delta t_R = C \cdot \sqrt{A} \cdot e \cdot \sin E \)
де: \(C = -4.442807633 \times 10^{-10}\).
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 \]
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}) \]
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} \)
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}\).
18) Обчислити похідну цього вектора:
\[ X'_{\Phi_K} = r_K' \cos U_K - Y_{\Phi_K} U_K' \]
\[ 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} \]
де \(\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}\),
\(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}\),
\(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} \]
\[ 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} \]
\[ \text{offset}_{L2} = a_{f0} + t_{K} \bigl(a_{f1} + t_{K} a_{f2}\bigr) + \Delta t_{R} - 1.64694\,T_{GD} \]
26) Обчислити дрейф:
\[ drift = a_{f1} \;+\; 2\,a_{f2}\,t_{k} \]
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}, \]
\[ 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});\)
\(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}\)
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;} \]
\[ \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;} \]
де: \( c \) — швидкість світла у вакуумі; \( c = 299792458 \) м/с.
Швидкість зміни псевдодальності обчислюється за формулою:
\[ \dot{S}_{L1(2)} = -\,c \;\cdot\; \frac{F_{d,L1(L2)}}{f^{*}_{L1(2)}} \]
де:
\[ 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;} \]
\[ \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); \]
\[ \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); \]
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, включно з обчисленням координат супутників, розрахунком псевдодальності та корекціями обертання Землі. Ці алгоритми використовують стандартні методи орбітальної механіки, такі як розв’язання рівняння Кеплера та перетворення координат, а також корекції, що враховують ефекти поширення сигналу. Це забезпечує попередню підготовку навігаційних даних для подальшої обробки та аналізу.