Аппаратура потребителей спутниковых радионавигационных систем (дисциплина) — различия между версиями
Korogodin (обсуждение | вклад) (→Курсовой проект) |
Korogodin (обсуждение | вклад) (→Календарный план) |
||
Строка 17: | Строка 17: | ||
|- align=center | |- align=center | ||
− | | | + | | 4 || 18.09 |
− | | [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]]. Назначение АП СРНС. Обобщённая функциональная схема. Принцип работы АП СРНС. Первичная и вторичная обработка | + | | [[media:Receivers_Segments.pdf|Сегменты СРНС]]. [[media:Receivers_PosMethods.pdf|Методы позиционирования]]. Назначение АП СРНС. Обобщённая функциональная схема. Принцип работы АП СРНС. Первичная и вторичная обработка <br> Антенна АП. Предварительный МШУ. Коэффициент шума. Радиочастотный план. |
| | | | ||
|- align=center | |- align=center | ||
− | + | | 5 || 25.09 | |
− | + | | | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | | 5 || 25.09 | + | |
− | | | + | |
| [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br> <s>Исследование характеристик МШУ АП СРНС</s> | | [https://goo.gl/forms/R7Vos1KsJ1taqqXo2 Ошибки позиционирования в городских условиях] <br> <s>Исследование характеристик МШУ АП СРНС</s> | ||
|- align=center | |- align=center | ||
− | | 6 || 02 | + | | 6 || 02.10 |
− | | [[media: | + | | [[media:20111008_АП_СРНС_Лекция_3_презентация.pdf|Аналогово-цифровое преобразование. Синтезатор частот. План частот АП СРНС.]] <br> [[media:20111005_АП_СРНС_Лекция_4_презентация.pdf|Принципы построения и структура коррелятора. Цифровой генератор гармонического сигнала и дальномерного кода.]] <br> [[media:АП_СРНС_corr.pdf|Статистический эквивалент коррелятора]] |
| | | | ||
|- align=center | |- align=center | ||
− | | | + | | 8 || 16.10 |
− | | [[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска | + | | [[media:20111005_АП_СРНС_Лекция_5_презентация.pdf|Обнаружение сигнала. Алгоритмы, статистические характеристики обнаружения.]] <br> [[media:20111008_АП_СРНС_Лекция_6_презентация.pdf|Поиск сигнала по частоте и задержке. Алгоритмы поиска, быстрый поиск сигнала.]] <br> [[media:20111017_АП_СРНС_Лекция_7_презентация.pdf|Блок быстрого поиска]] |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
| | | | ||
|- align=center | |- align=center | ||
− | | 9 || 23 | + | | 9 || 23.10 |
− | | | + | | |
| [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]] | | [[Исследование_коррелятора_АП_СРНС_ГЛОНАСС_с_помощью_имитационной_модели_(лабораторная_работа)|Исследование коррелятора АП СРНС с помощью имитационной модели]] | ||
|- align=center | |- align=center | ||
− | | 10 || 30.10 | + | | 10 || 30.10 |
− | | [[media: | + | | [[media:20111215_АП_СРНС_Лекция_8_презентация.pdf|Система слежения за фазой сигнала. Структурная схема ССФ, дискриминаторы, следящий фильтр.]] <br> [[media:20111215_АП_СРНС_Лекция_9_презентация.pdf|Система слежения за частотой. Структурная схема ССЧ, дискриминаторы, следящий фильтр.]] |
| | | | ||
|- align=center | |- align=center | ||
− | | | + | | 12 || 13.11 |
− | | [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]] | + | | [[media:20111215_АП_СРНС_Лекция_10_презентация.pdf|Система слежения за задержкой. Структурная схема ССЗ, дискриминаторы, следящий фильтр. Система слежения за задержкой с поддержкой от ФАП. Комплексный фильтр.]] |
| | | | ||
|- align=center | |- align=center | ||
− | + | | 13 || 20.11 | |
− | + | | | |
− | + | ||
− | + | ||
− | + | ||
− | | 13 || 20 | + | |
− | | | + | |
| [https://goo.gl/XruJBM GNSS Planning] <br> <s>Чувствительность навигационных модулей</s> | | [https://goo.gl/XruJBM GNSS Planning] <br> <s>Чувствительность навигационных модулей</s> | ||
− | |||
|- align=center | |- align=center | ||
− | | 14 || 27.11 | + | | 14 || 27.11 |
− | | | + | | [[media:20111215_АП_СРНС_Лекция_11_презентация.pdf|Демодуляция навигационных данных. Алгоритм демодуляции, статистические характеристики демодуляции.]] <br> [[media:20111215_АП_СРНС_Лекция_12_презентация.pdf|Декодирование навигационных данных. Алгоритм декодирования, статистические характеристики декодирования.]] |
| | | | ||
|- align=center | |- align=center | ||
− | | | + | | 16 || 11.12 |
− | | [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] | + | | Погрешности измерения псевдодальности, псевдоскорости и координат АП СРНС. <br> [[media:20111128_АП_СРНС_Лекция_14_презентация.pdf|Вторичная обработка измерений. Одношаговый алгоритм решения навигационной задачи.]] |
| | | | ||
|- align=center | |- align=center | ||
− | + | | 17 || 18.12 | |
− | + | | | |
− | + | ||
− | + | ||
− | + | ||
− | | 17 || 18 | + | |
− | | | + | |
| Помехоустойчивость навигационных модулей | | Помехоустойчивость навигационных модулей | ||
|- align=center | |- align=center | ||
− | | 18 || 25 | + | | 18 || 25.12 |
− | | | + | | [[media:20111215_АП_СРНС_Лекция_16_презентация.pdf|Контроль целостности]] |
| | | | ||
Версия 17:46, 17 сентября 2018
Дисциплина "Аппаратура потребителей спутниковых радионавигационных систем" входит в вариативную часть общенаучного цикла занятий учебного плана подготовки специалистов по направлению 11.05.01 "Радиоэлектронные системы и комплексы".
Преподается осеннем и весеннем семестрах пятого года обучения. В осеннем семестре лекции и лабораторные занятия (итог - экзамен), в весеннем - курсовой проект.
По дисциплине подготовлен электронный учебно-методический комплекс.
Содержание |
Правила аттестации
Обязательным условием для получения допуска к экзамену является выполнение и защита 4 лабораторных работ.
Календарный план
Вопросы к экзамену
Экзамен проводится в устной форме и содержит два вопроса (экзаменационные вопросы). При подготовке рекомендуется использовать книги по тематике, конспекты лекций и презентации.
Курсовой проект
Название проекта: Разработка модуля расчёта координат спутника 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.
Оформить отчёт по результатам этапа:
- Особенности настройки программы вторичной обработки
- Средние расчетные положения для разных приемников и разница между ними (в градусах и мм соответственно)
- Гистограммы отклонений
Этап 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.
Оформить отчет по результатам этапа:
- Реализация в Matlab или Python
- Таблица использованных эфемерид
- Трехмерные графики положений спутника в ECEF и ECI (не забудьте подписать оси, изобразите соответствующую Земле сферу в начале СК)
- Расчётный и полученный в GNSS Planing Online SkyView
- Выводы
Этап 3. Реализация
Дедлайн: 21.05.18
Требуется разработать на языке С/С++ функцию расчета положения спутника GPS на заданное время по шкале GPST, минимизируя время её исполнения и количество затрачиваемой оперативной памяти. Вызов функции не должен приводить к выбросу исключений или утечкам памяти при любом наборе входных данных.
Функция расчета положения спутника в Matlab/Python относительно проста, т.к. доступны библиотеки линейной алгебры и решения уравнений. Но при разработке встраиваемого ПО приходится сохранять лицензионную частоту, минимизировать вычислительную нагрузку и затраты памяти. Поэтому отобразить модель из Matlab/Python в прошивку приемника дословно, как правило, не получается. В рассматриваемом примере потребуется, как минимум, выполнить свою реализацию решения уравнения Кеплера.
Программный модуль должен сопровождаться unit-тестами под check:
- Тесты функции решения уравнения Кеплера
- Тест расчетного положения спутника в сравнении с Matlab/Python с шагом 0.1 секунды.
Во время второго теста должно вычисляться и выводиться средняя длительность исполнения функции. Допускается использовать одни и те же эфемериды на весь рассматриваемый интервал (как на предыдущем этапе).
Требуется провести проверку на утечки памяти с помощью утилиты valgrind.
Оформить отчет по результатам курсового проекта. В качестве первых двух глав использовать отчёты с предыдущих этапов, в третьей главе отразить результаты этого этапа:
- Код реализации
- Вывод тестов, включая анализ времени исполнения
- Вывод valgrind
- Вывод по этапу
- Заключение по проекту
По ссылке доступен архив каркаса программного модуля, представленного в виде подключаемой библиотеки на базе системы сборки CMake. Настроена компиляция статической/динамической библиотек компилятором/кросскомпилятором и выполнение юнит-тестов (проверено в GNU/Linux системах). Для примера в библиотеке реализованы две функции: умножения и сложения.
В функцию сложения add внесена ошибка, на которую указывает результат соответствующего юнит-теста:
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