Задача
Спутниковая навигация пропадает по разным причинам: помехи, экранирование, отказ оборудования, внешнее воздействие. Для морского судна это не должно означать потерю маршрута.
Подменить GPS одной приближённой формулой нельзя: счисление пути накапливает ошибку, и настоящий вопрос не в том, чтобы выдать координату, а в том, чтобы честно показать, насколько ей можно верить сейчас и насколько — через полчаса хода. Автономный контур должен был работать на данных, которые на борту уже есть, явно показывать точность оценки и удерживать судно на маршруте до восстановления надёжной спутниковой фиксации.
Решение
Что читает система. Адаптеры принимали координаты GNSS, курс гирокомпаса, скорость по лагу, ускорения и угловые скорости инерциального блока, положение руля, режим работы двигателей и доступные данные о ветре, волнении и течении. Сигналы приводились к общей временной шкале и системе координат, проверялись диапазоны, задержки, пропуски и расхождения между дублирующими датчиками. Электронные карты и маршрут хранились локально, поэтому оставались доступны без внешней связи.
Расширенный фильтр Калмана. Вектор состояния — координаты, скорость, курс и смещения инерциальных датчиков. Пока GPS работает, фильтр связывает абсолютные координаты с относительным движением и оценивает систематический дрейф датчиков. После потери сигнала шаг прогноза продолжает движение модели по данным IMU, лага и курса, а оценённый заранее дрейф вычитается — именно за счёт этого автономный участок «живёт» дольше, чем простое счисление.
Управление и возмущения разделены. Положение руля и режим двигателей задают ожидаемое движение судна, а ветер, течение и волнение входят в модель как внешнее смещение относительно заданного курса. Чем дольше судно идёт без абсолютной фиксации, тем шире расчётный коридор неопределённости — это часть модели, а не оговорка в интерфейсе.
Ведение по маршруту. Оператор задавал последовательность контрольных точек, допустимый коридор отклонения, ограничения по участкам и целевые параметры движения. Система считала поперечное отклонение от линии пути, прогнозировала точку выхода из разрешённого коридора и формировала рекомендацию по курсу и скорости. Возврат на линию не выполнялся резким манёвром: строилась достижимая траектория с учётом текущей скорости, инерции и ограничений по повороту.
Возврат GPS — отдельный сценарий, а не событие «сигнал появился». Новые координаты сначала проверялись на правдоподобие. Если расхождение укладывалось в расчётную погрешность, оценка корректировалась плавно; резкий скачок или подозрительная фиксация не принимались без подтверждения. Это защищало от ситуации, когда одно недостоверное измерение переписывает накопленную оценку положения и уводит судно с маршрута.
Четыре явных режима. Нормальный, деградированный, автономный и восстановление. Переход сопровождался индикацией источников данных и текущей точности. Неисправный или «залипший» датчик исключался из расчёта, а расхождение между компасом, инерциальным блоком и вычисленным движением вызывало предупреждение. На экране — расчётное положение, пройденный путь, плановый маршрут, коридор возможной ошибки, время с момента последней надёжной GPS-фиксации и вклад активных датчиков. Экипаж мог принять рекомендацию, изменить параметры или перейти на ручное управление.
Журнал рейса и симуляция отказов. Все исходные сигналы, переключения режимов, оценки координат и команды писались в журнал. Запись воспроизводилась на берегу: расчётная траектория сравнивалась с фактической, по результатам настраивалась модель судна. Тот же механизм обслуживал испытания — режим симуляции позволял отключить отдельные датчики или GPS на выбранном участке маршрута и посмотреть, как поведёт себя оценка.
Результат
Судно сохраняло непрерывную навигационную картину и возможность следовать маршруту при временной потере спутниковой связи. Система оценивала положение по бортовым датчикам, учитывала снос от ветра, течения и волнения, предупреждала о росте погрешности и корректно возвращалась к спутниковым данным после восстановления сигнала.
Главное для экипажа — не сам факт резервной координаты, а её честность: на мостике видно не одну точку с неизвестной достоверностью, а оценку положения вместе с областью неопределённости, явным режимом работы и временем с последней надёжной фиксации. Отклонения разбирались по журналу рейса, а не по памяти вахты, и та же запись позволяла воспроизвести отказ датчика в симуляторе и уточнить модель судна.