Что такое навигационная задача
Что такое навигационная задача
В морской практике навык решения навигационных задач очень нужен и важен.
Конечно, сейчас существует целая прорва различных навигаторов, картплоттеров и прочего оборудования, НО, НИЧЕГО НАДЁЖНЕЕ БУМАЖНОЙ КАРТЫ ещё не придумано! Ведь любая техника может выйти из строя по множеству причин (а в море их тьма-тьмущая) и тогда спасти Вас, ваше судно и экипаж сможет только Ваше умение по старинке пользоваться картой и компасом.
Такого же мнения и все организации, занимающиеся вопросами безопасности мореплавания, в том числе и Минтранс РФ. Поэтому в экзамены включены задачи по навигации нескольких типов.
4. Задачи на вычисление дальности видимости объектов наблюдения.
И для самых дотошных (или продвинутых)
5. Задачи по учёту дрейфа (под действием ветра) и сноса (под действием водных течений).
В будущем планируется создание статей, в которых автор предполагает рассмотреть и подробно раскрыть тему Навигации, а также вместе с читателем разобраться в понятиях, терминах, формулах и ситуациях в которых пригодится умение решать эти и другие типы навигационных задач.
А сейчас приступим, собственно, к решениям задач из «Дельты»:
1. Решение ПРЯМОЙ задачи, вычисление девиации и ИК, когда известны КК и склонение.
Итак, для примера решим следующую задачу:
КК=003°, d=-2,7° (т.е.W), рассчитать δ по таблице и вычислить ИК. Значение округлить до целого.
Закипели? Но это ещё не всё! Нам же ИК нужно узнать!
А тут уже всё элементарно, для этого у нас есть формулы:
ИК = КК+ΔΚ = ΚΚ+(d+δ) =
3°+(-2,7°- 1,9°)= 358,4°
(на шарике-то у нас где 0°, там и 360°, так что вычисляем правильно)
По условиям задачи округляем до целого, получается ИК=358°
Вуаля!
Теперь вроде всё объяснил.
Р.S. Таблица девиации для предлагаемых задач везде одна и та же, поэтому в дальнейшем рассмотрении дублировать её не буду. Пусть здесь повисит:
Первая навигационная задача
ЗАДАЧИ ОДОМЕТРИЧЕСКИХ НАВИГАЦИОННЫХ СИСТЕМ
1. Первая навигационная задача
Навигационная задача по определению плоских прямоугольных геодезических координат и дирекционного угла объекта
Смотреть что такое «Первая навигационная задача» в других словарях:
Первая — 1.1. Первая группа «исходные данные» включает: длительности интервала планирования (месяц, квартал, полгода, год); срок жизни проекта (число временных интервалов шагов); дату начала проекта (год начала проекта или 0). 1.2. В состав второй группы… … Словарь-справочник терминов нормативно-технической документации
ГОСТ 19156-79: Аппаратура навигационная наземная одометрическая. Термины и определения — Терминология ГОСТ 19156 79: Аппаратура навигационная наземная одометрическая. Термины и определения оригинал документа: 6. Абсолютная погрешность измерения пути Разность значений пути, измеренного одометрической наземной навигационной аппаратурой … Словарь-справочник терминов нормативно-технической документации
Третья — 1.3. Третья группа «инвестиции» состоит из показателей объемов финансовых средств, направляемых в разработку инноваций и внедрение достижений научно технического прогресса дорожной отрасли. Средства могут быть из федерального и региональных… … Словарь-справочник терминов нормативно-технической документации
Аполлон-15 (работа на Луне) — Приложение к статье Аполлон 15 Лунный модуль «Аполлона 15» «Фалкон» (англ. Falcon сокол) совершил посадку на юго восточной окраине Моря Дождей, у отрогов лунных Апеннин, вблизи каньона Хэдли Рилл. Астронавты Дэвид Скотт (командир… … Википедия
Китайская Национальная Нефтегазовая корпорация — (CNPC) Китайская Национальная Нефтегазовая корпорация это одна из крупнейших нефтегазовых компаний мира Китайская Национальная Нефтегазовая корпорация занимается добычей нефти и газа, нефтехимическим производством, продажей нефтепродуктов,… … Энциклопедия инвестора
НАВИГАЦИЯ — раздел науки о способах проведения морских, воздушных судов и космических летательных аппаратов из одной точки пространства в другую. Эта задача решается методами и приборами мореходной, воздушной и космической навигации, которые позволяют… … Энциклопедия Кольера
Югославия — (Jugoslavija, Jyгославиja) Социалистическая Федеративная Республика Югославия, СФРЮ (Socialistička Federativna Republika Jugoslavija, Социjaлистичка Федеративна Република Jyгославиja). I. Общие сведения Ю.… … Большая советская энциклопедия
Галилео (спутниковая система навигации) — Логотип Галилео У этого термина существуют и другие значения, см. Галилео. Галилео (Galileo) совместный проект спутниковой системы навигации Европейского союза и … Википедия
ГЛОНАСС — Запрос «Глонасс» перенаправляется сюда; см. также другие значения. Глобальная навигационная спутниковая система (ГЛОНАСС, GLONASS) советская и российская спутниковая система навигации, разработана по заказу Министерства обороны СССР.… … Википедия
Подводные лодки типа «Редутабль» — ПЛАРБ типа «Редутабль» Le Redoutable … Википедия
Через всю географию: навигационные и геодезические задачи на разных языках
Приветствую вас, глубокоуважаемые!
«… истинное место судна хотя и неизвестно, но оно не случайно, оно есть, но неизвестно в какой точке» Алексишин В. Г. и др. Практическое судовождение, 2006. стр. 71
«С двух краев галактики вышли пешеходы. » (С) Сергей Попов (Астрофизик)
В свете новых тенденций стиля арт-нуво я хотел написать о решении геодезических задач на плоской земле. Но пока еще заявление о том, что форма земли удобно аппроксимируется эллипсоидом не является ересью и крамолой, предлагаю всем интересующимся приобщиться к более консервативным моделям.
А это, релевантная КДПВ:
Для тех, кто спешит (я и сам такой), вот репозиторий на GitHub, где лежат все исходники с тестами и примерами.
Репозиторий организован очень просто: библиотека на данный момент представлена на трех языках и каждая реализация лежит в своей папке:
Чтобы посмотреть, как все работает, с какими параметрами вызывает и что возвращает, и провести разведку боем, есть разные демки и тесты:
Почти всегда углы — в радианах, расстояния в метрах, время в секундах.
Теперь, начнем, пожалуй, с начала:
Геодезические задачи
Есть две типовые геодезические задачи: прямая и обратная.
Если например, я знаю свои текущие координаты (широту и долготу), а потом прошагал 1000 километров строго на северо-восток, ну или на север. Какие теперь у меня будут координаты? — Узнать, какие у меня будут координаты — значит решить прямую геодезическую задачу.
То есть: Прямая геодезическая задача — это нахождение координат точки по известной, дистанции и дирекционному углу.
С обратной задачей все совсем понятно — например, я определил свои координаты, а потом прошагал сколько-то по прямой и снова определил свои координаты. Найти, сколько я прошел — значит решить обратную геодезическую задачу.
То есть: Обратная геодезическая задача — это нахождение расстояния между двумя точками с известными географическими координатами.
Решать эти задачи можно несколькими способами, в зависимости от необходимой точности и времени, которое вы готовы на это потратить.
Самый простой способ — представить что земля плоская — это сфера. Давайте попробуем.
Вот формула для решения прямой задачи (источник):
Здесь ,
— широта и долгота исходной точки,
— дирекционный угол, отсчитывающийся по часовой стрелке от направления на север (если смотреть сверху),
— угловое расстояние d/R. d — измеренное (пройденное) расстояние, а R — радиус земли.
,
— широта и долгота искомой точки (ту, в которую мы пришли).
Для решения обратной задачи есть другая (не менее простая формула):
Где ,
и
,
-координаты точек, R — земной радиус.
Описанные формулы называются Haversine Equations.
Очевидно, что здесь есть какой-то подвох: земля не сфера, а плоскость и это как-то должно отражаться на применимости этих формул и/или на точности решения.
И действительно. Но для того, чтобы определиться с этим, нужно с чем-то сравнивать.
Еще в 1975 году Тадеуш Винценти (Thaddeus Vincenty) опубликовал вычислительно эффективное решение прямой и обратной геодезической задач на поверхности сфероида (известного более под ником Эллипсоид Революции, товарищ! Эллисоид Вращения), ставшее почти стандартом.
Описание устройства метода тянет на отдельную статью, поэтому я ограничусь лишь отсылкой на оригинальную работу Винценти и на онлайн-калькулятор с описанием алгоритма.
В библиотеке UCNLNav решение прямой и обратной геодезической задач по формулам Винценти лежит в следующих функциях:
Самое важное отличие — данные формулы выполняют решение на сфероиде, и его параметры нужно передавать в функции. Для этого есть простая стуктура, которая его описывает.
Во всех реализациях можно в одну строчку получить один из стандартных эллипсоидов. (Сплошь и рядом применяется WGS84 [https://en.wikipedia.org/wiki/World_Geodetic_System] и его приведем в качестве примера):
Для того, чтобы понять, чего нам будет стоить применение решений для сферы вместо эллипса, реализации на Matlab присутствует скрипт.
В Matlab безумно удобно отображать всякое без лишних телодвижений, поэтому я выбрал его для демонстрации.
Логика его работы скрипта:
1. Берем точку с произвольными координатами
и произвольное направление (я выбрал примерно на запад):
2. Шагаем от нее на все увеличивающуюся дистанцию. Для чего сразу задаемся числом шагов и размером шага:
3. Для каждого шага решаем прямую геодезическую задачу на сфере и на эллипсоиде, получая искомую точку:
4. Для каждого шага решаем обратные геодезические задачи — вычисляем расстояния между результатами, полученными на сфере и эллипсоиде:
5. Проверяем прямые решения обратными для обоих методов:
В скрипте эта последовательность выполняется сначала для шага = 1000 м, а потом для шага = 1 метр.
Сначала посмотрим, насколько отличаются результаты прямых решений по координатам (широте и долготе), для чего вычислим векторы «дельт», благо на Matlab все пишется в одну строчку:
По оси абцисс будем отображать в логарифмическом масштабе, т.к. у нас расстояния меняются от 1 до 10000 км:
В результате получаем такие графики для широты:
Я плохо понимаю в градусах, всегда руководствуюсь методом для прикидки «на глазок»:
1° чего-нибудь это в среднем 100-110 км. И если ошибка больше миллионной или хотя бы стотысячной части градуса — это плохие новости.
Дальше посмотрим расстояния между исходной точкой и точкой, получаемой на каждом шаге по формулам для сферы и эллипсоида. Расстояние вычислим по формулам Винценти (как заведомо более точным — автор обещает ошибку в миллиметрах). Графики в метрах и километрах это гораздо более осязаемо и привычно:
В результате получаем такую картину:
Получается, что на дальностях 10000 км методы расходятся на 10 км.
Если теперь все повторить для шага в 1000 раз меньше, т.е. когда весь диапазон по оси Х будет не 10000 км а всего 10 км, то картина выходит следующая:
То есть, на дальности 10 км набегает всего 20 метров, а на 1-2 метра формулы расходятся только на дистанциях порядка 1000 метров.
Вывод капитана очевидность: если для задачи точность формул с решением на сфере достаточна, то используем их — они проще и быстрее.
Ну, а для тех, кому миллиметровой точности недостаточно, в 2013 году была опубликована работа с описанием решения геодезических задач с нанометровой (!) точностью. Не уверен, что могу сходу придумать, где такое может понадобится — разве что при геодезических изысканиях при постройке гравитационно-волновых детекторов или чего-то совершенно фантастического ).
Теперь перейдем к самому вкусному:
Решение навигационных задач
На данный момент библиотека умеет определять:
То, что нужно минимизировать, называется функцией невязки.
Для задач TOA она выглядит так:
Где — значение функции невязки для некоей точки с координатами
; N — число опорных точек, имеющих координаты
,
— измеренные расстояния от опорных точек до позиционируемого объекта.
А для задач TDOA вот так:
Здесь все тоже самое, только рассматриваются разные пары опорных точек и соответствующие времена прихода и
, а
— скорость распространения сигнала.
А вот так эти функции выглядят в коде:
Как можно видеть, обе функции работают с переменным числом опорных точек или линий. Вообще задачи могут быть разные, и функции невязки тоже.
Например, можно решать задачу не только определения местоположения, но и определения ориентации. В этом случае функция невязки будет содержать один или несколько углов.
Остановимся чуть более подробно на внутреннем устройстве библиотеки
На данном этапе библиотека работает с 2D и 3D задачами и сам решатель не знает и не хочет знать как выглядит минимизируемый функционал. Это достигается следующим способом.
У решателя есть две ипостаси: 2D и 3D решатели, основанные на методе Нелдера-Мида или, как еще его называют, метода Симплекса.
Так как этому методу не требуется вычисление производных (т.н. derivative-free minimization), то в идеале пользователь библиотеки может применять свои собственные функции невязки если такое потребуется. Плюс, теоретически нет никакого верхнего ограничения на количество опорных точек, используемых при решении задачи.
В C# и Rust 2D и 3D Решатели — Generic-методы:
Пример вызова самого решателя:
Все идентично, с точностью до синтаксиса языка.
В Matlabe же, с присущим ему волюнтаризмом, сам решатель понятия не имеет что за базовые элементы ему передаются — пользователь сам должен позаботиться, чтобы передаваемые в решатель ссылка на функцию невязки и набор опорных элементов были совместимы:
И соответственно, вызов решателя выглядит так:
Для демонстрации решения TOA и TDOA задач есть специальный скрипт на Matlab.
Демонстрация в 2D выбрана не случайно — я не уверен что могу придумать, как просто и информативно отобразить трехмерную функцию невязки =)
Итак. В начале скрипта есть параметры, которые можно менять:
Положение искомой точки задается случайным образом в указанной области:
Далее, случайно располагаем опорные точки, вычисляем дистанцию от искомой до них и отображаем все:
В итоге получаем такую картинку:
Добавляем к измерениям дистанций случайные ошибки:
Строим функцию невязки для выбранной области с некоей децимацией — иначе расчеты могут занять ощутимое время. Я выбрал размер области 1000 х 1000 метров и считаю функцию невязки по всей области через 10 метров:
Вот так выглядит функция невязки:
Я конечно немного слукавил — взаимные расположения опорных точек и искомой выбираются так, что они всегда образуют выпуклую фигуру с искомой точкой внутри. Во многом благодаря этому поверхность имеет один минимум, который находится без особых проблем.
Въедливый читатель может изменить этот порядок вещей и попробовать расставить опорные точки и искомую совершенно случайно.
Теперь отобразим все вместе. На поверхности это сделать сложно — разные величины по вертикальной оси. Поэтому удобно все нарисовать на двумерном срезе:
В результате получается примерно так:
В заголовке графика отображается радиальная ошибка — корень из финального значения функции невязки. На графике видно, что реальное местоположение и вычисленное хорошо совпадают, но масштаб не позволяет определить насколько хорошо.
Поэтому отобразим вычисленное местоположение искомой точки и реальное ее местоположение отдельно и посчитаем расстояние между ними:
Вот как это выглядит:
Вспомним, что у нас амплитуда случайной ошибки — 1% от дальности, в среднем дальность
200-400 метров, т.е. амплитуда ошибки составляет порядка 2-4 метров. При поиске решения мы ошиблись всего на 70 сантиметров.
Теперь по аналогии попробуем решить задачу TDOA на тех же данных. Для этого притворимся, что нам известны только времена прихода сигналов с искомой точки на опорные (или наоборот — не принципиально) — просто разделим наши дистанции на скорость распространения сигнала — важны лишь их разности а не абсолютные величины.
Строим и рисуем поверхность ошибок:
Получается что-то такое:
И вид «сверху» с опорными точками, реальным и вычисленным положениями искомой точки:
И более детально, расхождение реального и вычисленного местоположения:
В этом конкретном случае решение по TDOA оказалось даже лучше, чем по TOA — абсолютная ошибка составляет 0.3 метра.
Хорошо в модели — всегда точно знаешь, где фактически расположена искомая точка. На воздухе хуже — может быть несколько точек зрения, под водой ты просто что-то вычислил и все — в 99% случаев, чтобы вычислить отклонение от фактического местоположения, его (это местоположение) тоже сначала надо вычислить.
Теперь, в качестве заключения, объединим наши новые знания про геодезические и навигационные задачи.
Финальный аккорд
Максимально приблизим ситуацию к реальной жизни:
Итак, самый последний тест в библиотеке. В качестве координат искомой точки я выбрал место в парке, где часто гуляю с собакой.
В результате имеем:
Реальное местоположение (Lat, Lon, Z): 48.513724 44.553248 25
Вычисленное положение (Lat, Lon, Z): 48.513726 44.553252 45.6
Расстояние между точками по поверхности (м): 0.389
Разность по координате Z (м): 20.6
Совпадение «в плане» — очень хорошее, ошибка составляет всего 40 сантиметров, а по вертикальной координате — 20 метров. Почему так происходит предлагаю подумать читателям =)
Описываемая библиотека — чисто образовательный проект, который я планирую развивать и пополнять дальше. В планах реализация на C и написание всеобъемлющей документации.
На этом разрешите откланяться, спасибо за внимание. Буду бесконечно рад любому feedback.
Надеюсь, статья и библиотека будут полезны.
Про любые ошибки (грамматические и логические) сообщайте — я исправлю.
На всякий случай приведу здесь ссылку на онлайн (и не только) интерпретаторы Matlab/Octave, которыми пользуюсь сам:
Ликбез по кватернионам, часть 12: навигационная задача
Пусть у нас есть набор из N «эталонных» единичных векторов (r – от слова reference – эталон). Это могут быть, к примеру, направления на звёзды, представленные во второй экваториальной системе отсчёта.
Также у нас есть набор из N «измеренных» единичных векторов (b – от слова oBserved, логика, как всегда, безупречна). В нашем примере это будут направления на звёзды в системе координат звёздного датчика (астроориентатора).
Требуется найти такой поворот, который совместит эталонные вектора с измеренными векторами с наименьшей ошибкой.
Сложно сказать, когда впервые появились эти методы (не удивлюсь, что сразу после появления формализма матриц и векторов), но в статье 1964 года [Black, Harold (July 1964). «A Passive System for Determining the Attitude of a Satellite». AIAA Journal. 2 (7): 1350–1351] они уже упоминались.
Если у нас есть 3 звезды и, соответственно, три эталонных и три измеренных вектора, то мы можем записать набор уравнений:
Здесь A – искомая матрица поворота. Те же уравнения мы можем переписать в матричной форме, собирая 3 вектора в матрицу:
Отсюда можно найти A:
где B и R – матрицы, собранные из векторов.
Если звезды всего 2, то условий для нахождения матрицы как будто не хватит, но можно сделать финт ушами. К эталонным векторам и измеренным мы можем добавить «фиктивные» третьи вектора:
после чего задача оказывается сведена к предыдущей. Поскольку эти векторы перпендикулярны плоскостям, образованным их сомножителями, они «по определению» выходят линейно независимыми от них (любая линейная комбинация двух векторов лежит в плоскости, образованной ими), так что уравнение действительно будет иметь решение, если только два эталонных вектора не окажутся диаметрально противоположными.
Наконец, если звёзд больше трёх, то мы решаем задачу по методу наименьших квадратов: находим такую матрицу A, чтобы
Все эти методы очень просты, и если мы подставим туда некоторые «модельные» значения, то будут работать без проблем, выдавать нам матрицу поворота. Иными словами, если все входные данные имеют абсолютную точность, то эти методы выдадут правильное значение.
Но есть одна существенная проблема: если входные данные зашумлены, то результатом работы этих методов будет матрица общего вида, которая выражает не только поворот, но и масштабирование по произвольным осям и скосы, то есть произвольное линейное преобразование в трёхмерном пространстве.
Метод «не знает», что от него просят найти поворот, он считает преобразование общего вида. Там, где можно было увидеть очевидную ошибку (угол между измеренными векторами не совпадает с углом между эталонными, тогда как любой поворот сохраняет углы) и не учитывать её, ошибка попадёт на выход и зачастую будет даже усилена.
Приведём пример наведения по двум звёздам. Эталонные вектора:
то есть, у нас присутствует угловая ошибка по одной оси, величиной в ε радиан, причём в разные стороны (см. рисунок).
Найдём третьи «фиктивные» вектора:
(считаем ε малой величиной и отбрасываем слагаемые второго порядка малости во всех векторах)
Теперь уравнение записывается в виде
Взяв обратную матрицу, находим ответ:
Грубо говоря, мы имеем масштабирование по осям Y и Z на 0,055%. Если мы возьмём вектор, наклонённый к оси X под углом 45°:
и применим к нему матрицу A, то получим вектор
угол наклона которого теперь составляет 45°0’57’’.
Итак, из-за ошибки в 10 угловых секунд в исходных данных мы получаем ошибку наведения почти в 6 раз больше, тогда как более совершенные методы вообще проигнорировали бы «противофазную» ошибку, продемонстрированную здесь, поскольку эта ошибка направлена на увеличение угла между векторами – поворот такого делать «не умеет», а нам нужно было найти именно поворот!
Если расставить эталонные векторы подальше, желательно под прямым углом (α=90°), то эффект будет не столь значительным:
Здесь мы имеем разный масштаб по направлениям, развёрнутым под 45° относительно осей X-Y.
Попробуем повернуть простейший вектор:
то есть, он повернулся на те же самые 10 угловых секунд. Ошибка никуда не делась, но хотя бы не стала усиливаться. В данной ситуации звездный датчик, реализующий «наивные методы», будет давать «всего лишь» вдвое худшую точность в сравнении с методами, рассмотренными далее. Так получается, поскольку ошибки в измерении каждого направления можно разложить на «синфазную» и «противофазную» компоненты, которые независимы друг от друга. С «синфазной» составляющей ничего поделать нельзя: она выглядит в точности как поворот в пространстве. Но вот «противофазную» составляющую правильные алгоритмы в принципе не пропускают на выход!
Совсем неудовлетворительные результаты будут получаться при попытке применить данные методы в узкопольном звёздном датчике, где расстояния между эталонными векторами минимальны, и ctg(α), на который домножается угловая ошибка, приобретает совсем уж неприличные значения!
Формулировка оптимизационной задачи
Чтобы двигаться дальше, надо чётко сформулировать, что мы вообще пытаемся найти. Методы, наиболее распространённые в настоящее время, выводились из следующей формулировки:
Требуется найти матрицу R, такую, что R T R = E, det(R) = 1 (иными словами, это должна быть матрица поворота!) и минимизирующую функцию ошибки:
Здесь wn – весовые коэффициенты, как правило, обратно пропорциональные ожидаемой дисперсии данного измерения. Коэффициент 1/2, разумеется, ни на что не влияет и поставлен сюда пост-фактум, после того, как стало ясно, что из-под суммы «выползет» двойка.
Данная задача в англоязычной литературе называется проблемой Вахбы (Wahba problem) в честь Грейс Вахбы (Grace Wahba), которая сформулировала задачу в 1965 году [Wahba, G., “Problem 65–1: A Least Squares Estimate of Spacecraft Attitude,” SIAM Review, Vol. 7, No. 3, July 1965, pp. 409]. В оригинальной постановке отсутствовали весовые коэффициенты, их добавили позже. Приемлемого решения в статье не содержалось, а год спустя после публикации, Грейс навсегда ушла из задач навигации и ориентации космических аппаратов в математическую статистику. Как говорится, «моё дело – предложить концепцию…».
Начало выкладок, как правило, одинаковое. Вносим знак транспонирования внутрь скобки:
Поскольку R-матрица поворота, имеем R T R=E. Кроме того, поскольку все слагаемые внутри скобки – обычные числа (скаляры), то любое из них можно «транспонировать». Мы транспонируем третье. В результате получаем:
Первое и третье слагаемые не зависят от R, поэтому их можно выкинуть, сведя задачу к нахождению максимума:
Буква L – от слова loss, G – от слова gain, индекс w значит Wahba, поскольку можно поставить оптимизационную задачу и по-другому.
Это были достаточно очевидные выкладки. В исходной формулировке мы брали вектор разности между наблюдаемым направлением и «эталонным», повёрнутым с помощью матрицы R, и пытались минимизировать сумму квадратов длин этих векторов (с определенными весами). Теперь мы показали, что с тем же успехом можно максимизировать сумму скалярных произведений между наблюдаемыми направлениями и «эталонными», повёрнутыми матрицей R, это одна и та же задача.
Можно ещё заметить, что до сих пор мы никак не использовали единичную длину наших векторов. Оказывается, что это и не обязательно. В одной из формулировок задачи, веса вообще не используются, в их роли выступает длина соответствующих векторов, причем в этом случае мы можем задать как точность «измеренных» векторов, так и «эталонных», что не очень полезно в задачах звездной ориентации (точность звёздного каталога, как правило, существенно выше точности звёздного датчика), но может пригодиться в других приложениях.
И всё же, пока мы ушли недалеко – перед нами по-прежнему задача нахождения условного максимума, которую надо как-то решать.
Одним из подходов (видимо, наиболее очевидным) было выписать матрицу R через углы Эйлера:
после чего решать нелинейную задачу оптимизации итеративными методами, так как аналитического решения, скорее всего, не существует. Метод получался отнюдь не простой, и не быстрый. О применении его в бортовых вычислительных машинах и речи не шло, и даже наземным вычислительным машинам он дался бы с огромным трудом.
Читайте в следующей части: Дэвенпорт берёт след!