Аппаратура потребителей спутниковых радионавигационных систем (дисциплина) — различия между версиями

Материал из SRNS
Перейти к: навигация, поиск
(Календарный план)
(Календарный план)
Строка 78: Строка 78:
 
|}
 
|}
  
[[media:АПСРНС_2017_Списки.ods|Журнал успеваемости]].
+
[[media:АПСРНС_2018_Списки.ods|Журнал успеваемости]].
  
 
== Вопросы к экзамену ==
 
== Вопросы к экзамену ==

Версия 17:57, 17 сентября 2018

Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий учебного плана подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы".

Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект.

По дисциплине подготовлен электронный учебно-методический комплекс.

Содержание

Правила аттестации

Обязательным условием для получения допуска к экзамену является выполнение и защита 4 лабораторных работ.

Календарный план

Неделя Дата Лекция Лабораторная
4 18.09 Сегменты СРНС. Методы позиционирования. Назначение АП СРНС. Обобщённая функциональная схема. Принцип работы АП СРНС. Первичная и вторичная обработка
Антенна АП. Предварительный МШУ. Коэффициент шума. Радиочастотный план.
5 25.09 Ошибки позиционирования в городских условиях
Исследование характеристик МШУ АП СРНС
6 02.10 Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.
Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.
Статистический эквивалент коррелятора
8 16.10 Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.
Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.
Блок быстрого поиска
9 23.10 Исследование коррелятора АП СРНС с помощью имитационной модели
10 30.10 Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.
Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.
12 13.11 Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.
13 20.11 GNSS Planning
Чувствительность навигационных модулей
14 27.11 Демодуляция навигационных данных. Алгоритм демодуляции, статистические характеристики демодуляции.
Декодирование навигационных данных. Алгоритм декодирования, статистические характеристики декодирования.
16 11.12 Погрешности измерения псевдодальности, псевдоскорости и координат АП СРНС.
Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.
17 18.12 Помехоустойчивость навигационных модулей
18 25.12 Контроль целостности

Журнал успеваемости.

Вопросы к экзамену

Экзамен проводится в устной форме и содержит два вопроса (экзаменационные вопросы). При подготовке рекомендуется использовать книги по тематике, конспекты лекций и презентации.

Курсовой проект

Название проекта: Разработка модуля расчёта координат спутника GPS

Журнал успеваемости

Курсовой проект по данной дисциплине выполняется во втором семестре. В рамках проекта студенты знакомятся с рядом инструментов и техник, используемых при разработке АП СРНС:

  • обработка измерений от приемника ГНСС в RTKLIB;
  • обработка данных и моделирование в Matlab/Python;
  • разработка программного модуля на С/С++, включая юнит-тестирование в Check.

Консультации по этапу производятся до наступления соответствующего дедлайна.

Этап 1. Использование

Дедлайн: 05.03.18

На крыше корпуса А МЭИ установлена трехдиапазонная антенна Harxon HX-CSX601A. Она через 20-метровый кабель, сплиттер, bias-tee и усилитель подключена к трем навигационным приемникам:

  • Javad Lexon LGDD,
  • SwiftNavigation Piksi Multi,
  • FPGA-based приемник на основе нашего ядра CoreZh.

Приемники формируют первичные измерения, которые логируются в файлах формата RINEX 2.11. Javad и Piksi - только файлы наблюдений (javad.obs и piksi.obs), CoreZh - и наблюдения (corezh.obs), и файл эфемерид (corezh.nav для GPS и corezh.gnav для ГЛОНАСС). Архив с файлами за 03.02.18 доступен для скачивания по ссылке.

Требуется произвести вторичную обработку измерений, например, с помощью программы RTKLIB. В Matlab или Python построить гистограммы отклонения навигационного решения от эталонного решения (в метрах). В качестве эталона взять средний результат для Javad.

Оформить отчёт по результатам этапа:

  1. Особенности настройки программы вторичной обработки
  2. Средние расчетные положения для разных приемников и разница между ними (в градусах и мм соответственно)
  3. Гистограммы отклонений

Этап 2. Моделирование

Дедлайн: 09.04.18

На предыдущем этапе получено решение навигационной задачи с помощью программы вторичной обработки измерений, например, RTKLIB. В процессе работы она рассчитывает положение спутников на соответствующий момент сигнального времени. При этом используются эфемериды - параметры некоторой модели движения спутника. В разных ГНСС эти модели разные, а значит отличается и формат эфемерид, и алгоритмы расчета положения спутника.

Одна из самых простых и удобных моделей - в системе GPS.

Требуется реализовать на языке Matlab или Python функцию расчета положения спутника GPS на заданный момент по шкале GPST. В качестве источника эфемерид использовать предоставленный на предыдущем этапе файл с логами за 03.02.18.

Построить трехмерные графики множества положений спутника GPS с системным номером, соответствующим номеру студента по списку. Графики в двух вариантах: в СК ECEF WGS84 и соответствующей ей инерциальной СК. Положения должны соответствовать временному интервалу с 00:00 03.02.18 до 12:00 03.02.18. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (взять с середины).

Построить SkyView за указанный временной интервал (напоминаю, антенна на крыше корпуса А) и сравнить результат с Trimble GNSS Planning Online.

Оформить отчет по результатам этапа:

  1. Реализация в Matlab или Python
  2. Таблица использованных эфемерид
  3. Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)
  4. Расчётный и полученный в GNSS Planing Online SkyView
  5. Выводы

Этап 3. Реализация

Дедлайн: 21.05.18

Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале GPST, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.

Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения уравнения Кеплера.

Программный модуль должен сопровождаться unit-тестами под check:

  • Тесты функции решения уравнения Кеплера
  • Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды.

Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе).

Требуется провести проверку на утечки памяти с помощью утилиты valgrind.

Оформить отчет по результатам курсового проекта. В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:

  1. Код реализации
  2. Вывод тестов, включая анализ времени исполнения
  3. Вывод valgrind
  4. Вывод по этапу
  5. Заключение по проекту

По ссылке доступен архив каркаса программного модуля, представленного в виде подключаемой библиотеки на базе системы сборки CMake. Настроена компиляция статической/динамической библиотек компилятором/кросскомпилятором и выполнение юнит-тестов (проверено в GNU/Linux системах). Для примера в библиотеке реализованы две функции: умножения и сложения.

В функцию сложения add внесена ошибка, на которую указывает результат соответствующего юнит-теста:

korogodin@KorPC:~/Receivers/RecCourse/project/libgpssvpos$ mkdir build
korogodin@KorPC:~/Receivers/RecCourse/project/libgpssvpos$ cd build/
korogodin@KorPC:~/Receivers/RecCourse/project/libgpssvpos/build$ cmake ..
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- libgpssvpos version: f143b84
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for one of the modules 'check'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/korogodin/Receivers/RecCourse/project/libgpssvpos/build
korogodin@KorPC:~/Receivers/RecCourse/project/libgpssvpos/build$ make
Scanning dependencies of target gpssvpos-static
[ 11%] Building CXX object src/CMakeFiles/gpssvpos-static.dir/gpssvpos.cpp.o
[ 22%] Building CXX object src/CMakeFiles/gpssvpos-static.dir/kepler.cpp.o
[ 33%] Linking CXX static library libgpssvpos-static.a
[ 33%] Built target gpssvpos-static
Scanning dependencies of target gpssvpos
[ 44%] Building CXX object src/CMakeFiles/gpssvpos.dir/gpssvpos.cpp.o
[ 55%] Building CXX object src/CMakeFiles/gpssvpos.dir/kepler.cpp.o
[ 66%] Linking CXX shared library libgpssvpos.so
[ 66%] Built target gpssvpos
Scanning dependencies of target test_gpssvpos
[ 77%] Building CXX object test/CMakeFiles/test_gpssvpos.dir/check_main.cpp.o
[ 88%] Building CXX object test/CMakeFiles/test_gpssvpos.dir/check_position.cpp.o
[100%] Linking CXX executable test_gpssvpos
Running unit tests
Running suite(s): My test suite
50%: Checks: 2, Failures: 1, Errors: 0
/home/korogodin/Receivers/RecCourse/project/libgpssvpos/test/check_position.cpp:11:F:Main tests:test_add:0: 1+2 should be 3
test/CMakeFiles/test_gpssvpos.dir/build.make:121: ошибка выполнения рецепта для цели «test/test_gpssvpos»
make[2]: *** [test/test_gpssvpos] Ошибка 1
Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты