Малые размеры наноспутников и требуемое малое энергопотребление их составляющих диктуют новые требования к технике, в частности, навигационной. На эти требования также накладываются внешние условия и характер движения наноспутника.
Сегодня мы сосредоточимся на спутниковых навигационных приемниках для наноспутников. Несмотря на то, что принципиально задача решена, и на рынке есть приемники, способные работать на низких орбитах, вопрос создания таких приемников еще остается актуальным. Текущие их стоимость, энергопотребление, помехозащищенность, способность работать в высокоточных режимах пока дают возможность создавать конкурентные изделия.
Для нашей страны создание таких приемников является еще более актуальной задачей, ввиду ограничений на поставку приемников, работающих на больших высотах и на больших скоростях. Госдеп США не отличает баллистические ракеты от наноспутников для связи или ДЗЗ.
Предположим, вы решили взяться за задачу создания навигационного приемника для наноспутника. С чего начать? Конечно же, с математического моделирования.
С точки зрения математики основное отличие в условиях приема на наноспутнике и на Земле - скорость движения. Скорость движения спутника по низким орбитам составляет единицы километров в секунду. Радиальная относительно источника сигнала скорость выражается в частотном смещении принимаемого сигнала, эффекте Допплера. Давайте посмотрим на поведение приемника, рассчитанного для работы на Земле, при скоростях движения, характерных для наноспутника.
Проверять будем программный приемник prof. Akos, который мы использовали во многих предыдущий статьях. Для начала проверим приемник на обычной для Земли самолетной скорости. Для этого создадим на нашем облачном GPS-имитаторе файл с сигналом. Имитатор мы раньше подробно описывали здесь. Конфигурация имитатора задается JSON-файлом. Для упрощения уберем все лишнее:
{
"Gps": {
"Enable": true,
"Snr_dbhz": 50
},
"JammingSources": [
],
"Receiver_llh": [
59,
30,
350
],
"SpeedRx_m_s": [
300,
0,
0
],
"SamplesFreq_hz": 5000000,
"Duration_s": 1,
"Antennas_m": [
[
0,
1,
0
]
]
}
Уберем источники помех, оставим одну антенну. В файле конфигурации появился новый раздел SpeedRx_m_s. Описание этого раздела очень простое: это составляющие вектора скорости в метрах в секунду. Сначала, для проверки приемника, зададим скорость по одной из осей 300 метров в секунду. Нажмем "Generate GPS", подождем и получим файл с сигналом. Пропишем файл в код программного приемника (файл initSettings.m):
settings.fileName = 'C:\Users\itsar\Downloads\iqdata_ant_0.bin';
Запускаем. Что же выдаст процедура обнаружения? Все в порядке, найдено много сигналов спутников.
Рассмотрим подробнее отладочную информацию приемника по спутнику со средним уровнем корреляции - номер 8. Все замечательно!
Теперь давайте увеличим скорость.
"SpeedRx_m_s": [
1000,
0,
0
],
Следует заметить, что углы прихода сигналов спутников в точку приема разные, смещение частоты приема будет происходить по-разному для каждого сигнала. Может даже так оказаться, что радиальная составляющая скорости будет равна нулю и смещения частоты для этого спутника не будет. Понадеемся на русский авось.
Как видно, скорость 1000 метров в секунду приемнику нипочем.
Идем дальше, 7000 метров в секунду.
Здесь уже приемник плохо справляется. Поиск сигнала работает нормально, захват происходит и приемник начинает следить за сигналом, но петля слежения по задержке (Delay Locked Loop, DLL) не успевает следить за максимумом корреляции.
С коде приемника (файл initSettings.m) находим такие параметры:
%% Tracking loops settings ================================================
% Code tracking loop parameters
settings.dllDampingRatio = 0.7;
settings.dllNoiseBandwidth = 2; %[Hz]
settings.dllCorrelatorSpacing = 0.5; %[chips]
% Carrier tracking loop parameters
settings.pllDampingRatio = 0.7;
settings.pllNoiseBandwidth = 25; %[Hz]
Пробуем увеличить шумовую полосу в два раза, до четырех Герц.
settings.dllNoiseBandwidth = 4; %[Hz]
И видим, что приемник пришел в норму.
Вы можете проделать все это сами, не вставая из-за стола. Чистая математика.
Комментарии (14)
Buhram
15.11.2021 23:37+1Распространенные приемники на чипсете MT3333 подходят для работы на подобных скоростях, при условии переработки софта?
itsar Автор
18.11.2021 09:00Я думаю, что принципиальных препятствий нет. Один только вопрос: а исходники софта открыты для модификации?
Jef239
18.11.2021 13:21+1Скорее всего закрыты, там вполне себе готовый приёмник, а не чипсет. Может кому из производителей и разрешат их модифицировать, но для покупателей - явно не выложат.
Buhram
18.11.2021 14:55+1Это так, чисто гипотетический вопрос :)
Скорее всего, в исходниках вообще есть конструкция типа:if ((speed >= 500) || (altitude >= 18000)
{
output_data.validity = FALSE;
output_data.speed = 0;
output_data.altitude = 0;
}
Столкнулся с ситуацией, когда приёмник перестал работать на определенной высоте. После уточнения у производителя оказалось что действительно, у него есть не задокументированные ограничения. Проблема решилась новым бинарником прошивки от производителя.
vasimv
А на восьми километрах в секунду какая точность будет? И какая вообще должна быть аппаратная часть, обычный SDR?
itsar Автор
Про точность я не могу сказать. Это вы можете сами промоделировать. Навскидку, точность будет не сильно хуже, чем на Земле.
Обычный SDR подойдет для аппаратной части, но есть специализированные.
Jef239
Навскидку точность повыше будет, ибо спутников больше, нет тропосферы и ионосферы.
Другой момент, что точность какого момента измерений? Спутник на низкой орбите за 1 мс пролетает 8 метров. Так что тут овпрос о задаче... Если узнать кооординаты и передать на Землю - ну вычислили координаты и момент измеренйи с тоность 3 нс относительно шкалы GPS, ну так и передали. На Земле так и учли.
А если речь о сближении двух КА - ну надо понимать, что расхождение моментов измерения на двух космических аппаратах может быть 2 мс, то есть 16 метров вдоль орбиты. И как-то компенсировать это.
Sheferino
Практически не имею опыта в теме ГНСС на спутниках, но естественно готов порассуждать, как и всякий дилетант. На мой дилетантский взгляд точность лучше не будет.
Да, тропосфера и ионосфера пропадут. А взамен получаем проблему релятивистских эффектов на потребителе . На земле они почти отсутствуют, их никто не учитывает, а вот на спутнике и скорость большая и гравипотенциал существенно меняется. А если ещё и эксцентриситет орбиты большой, то всё становится ещё сложнее.
Также расширение полосы слежения ведь не бесплатное. За него придётся наверное шумом измерений расплачиваться. Интересно, скомпенсируется ли повышением сигнал/шума.
Да плюс упомянутая проблема с привязкой измерений к шкале времени. Хотя наверное проблема невеликая, пусть 3 нс никакой приёмник не выдаст, но на 1 мкс можно рассчитывать смело, а это всего 8 мм, мелочь на фоне остального.
Jef239
Ну как не учитывают. Взгляньте в ICD GPS. В 3.1.1.1 - учет релятивистских эфектов от скорости спутника путём изменения частоты передатчика. В 20.3.3.3.3.1 - учет релятивистских эффектов от экцентриситета орбиты спутника.
А с приёмником на спутнике все ещё проще. Дело в том, что релятивистский эфект это 4E-10 от частоты. А точность кварца в приёнике - 1E-5, ну 1E-6. То есть по сравнению с нестабильностью кварца - это мизер.
Расширение полосы нужно лишь до момента определения векторов скорости и ускорения. Как только мы их вычислили - мы можем сузить полосу, просто перестаривать её по движению спутника.
Тут самое тяжкое - не пассажирский самолет и не ракета, а автомобиль и мачта судна. На мачте в шторм вообще ускорения порядка 2g, причем с точки зрения приёмника - не предсказуемое. А на автобиле есть такая вещь, как дрифт, с тем же ускорением до 2g. И чтобы во время дрифта приёмн не срывался - приходится ставить самолетную динамику, рассчитанную на истребители.
Так что спутник, летящий абсолбтно прелшсказуемым образом по орбите - это очень простая дмнамика. Её вполне можно учесь в кольцах слежения.
Да плюс упомянутая проблема с привязкой измерений к шкале времени. Хотя наверное проблема невеликая, пусть 3 нс никакой приёмник не выдаст, но на 1 мкс можно рассчитывать смело
Ну внутри кода (RTK) у нас точность порядка 15-20 пикосекунд СКО, вопрос лишь как выдать её наружу.
А насчет 1мкс - это вы не поняли проблему, батенька.
Вот смотрите. Приёмник измеряет координаты и время 1 раз в секунду. Тут есть два разных параметра. Первый - насколько точно мы узнаем момент измерений. А вот второе - какое расхождение между моментами приёма двух приёмников.
Так вот, типовая схема - это вычисления момена приёма по собственному кварцу, а потом, после отклоеения на 1-2 мс - скачок с перестройкой шкалы до упора в обратную сторону. То есть у нас будут измерения в 1.99992, 2.99991, 3.99990, а потом в 5.00100, 6.00099, 7.00098.
Как видите - тут уход кварца 10 мкс за секунду, то есть 1E-5. Скчаок шкалы при этом будет примерно раз в 200 секунд.
Примерно по такой схеме работают приёмники НАВИС, НИИКП, Ublox....
Это не так страшно, просто коооординаты, выданные прёимником, нужно корректировать при помощи вектора скорости на нужный момент времени.
Sheferino
Да про релятивизм на НКА понятно, я про релятивистские эффекты на потребителе говорю. Но я тут на пальцах прикинул, ошибка частоты из-за эксцентриситета орбиты 1е-10, что конечно несущественно для обычных ширпотребных опорных генераторов.
По полосе слежения согласен, можно жить и с такой динамикой.
Да эта проблема понятная, но что про неё говорить то, это и не проблема вовсе. Во-первых, нет никаких проблем пересчитать положение на нужную эпоху, ведь положение шкалы нам известно. Во-вторых никто не мешает поставить кварц постабильнее (хотя бы в 10е-7) и перестраиваться по порогу 10 мкс. Это недорого и решает проблему в корне. Я говорил про другое.
Я говорил о том, что траектория в широком смысле - это не только точки (x,y,z), это ещё и момент времени, в который объект в этой точке находился. Так вот, если вы ошибаетесь по шкале на 1 мс (именно ошибаетесь, без возможности оценить эту ошибку изнутри системы, например из-за ГВЗ в тракте от антенны до АЦП), то получив координаты в момент t0 как (x0,y0,z0), вы на самом деле получаете координаты в момент времени t1 = t0 -1 мс. А координаты в момент времени t0 отличаются от вычисленных на 7 м при скорости 7 км/с. Существенная ошибка, которую вы с точки зрения приёмника не можете оценить самостоятельно, никакое RTK не поможет. Другое дело, что если всё правильно делать, то 1 мс это очень много, вполне реально добиться погрешности на два-три порядка меньше. Поэтому и написал, что тоже мелочь.
itsar Автор
Сделать такую ГВЗ (1мс) в ВЧ-части или в ПЧ даже намеренно очень сложно, а случайно и подавно. 1 мкс уже более близка к физике.
Sheferino
Да можно, сам видел. Понятно, что это или какое-то невероятное стечение обстоятельств, или невероятно кривые руки, но факт остаётся фактом.