nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

Ликбез по кватернионам, часть 10: Интегрирование угловых скоростей, методы 2-го порядка

Часть 1 - история вопроса
Часть 2 - основные операции
Часть 3 - запись вращения через кватернионы
Часть 4 - кватернионы и спиноры; порядок перемножения
Часть 5 - практическая реализация поворота
Часть 5 1/2 - введение метрики, "расстояния" между поворотами
Часть 6 - поворот по кратчайшему пути
Часть 6 1/4 - кратчайший поворот в общем случае
Часть 6 2/4 - поворот, совмещающий два направления
Часть 6 3/4 - кватернион из синуса и косинуса угла
Часть 7 - интегрирование угловых скоростей, углы Эйлера-Крылова
Часть 8 - интегрирование угловых скоростей, матрицы поворота
Часть 8 1/2 - ортонормирование матрицы и уравнения Пуассона
Часть 9 - интегрирование угловых скоростей с помощью кватернионов
Часть 10 - интегрирование угловых скоростей, методы 2-го порядка
Часть 11 - интегрирование угловых скоростей, методы высших порядков (в разработке)
Часть 12 - навигационная задача
Часть 13 - Дэвенпорт берёт след!
Часть 14 - линейный метод Мортари-Маркли
Часть 15 - среднее от двух кватернионов
Часть 15 1/2 - проверка и усреднение кватернионов
Часть 16 - разложение кватерниона на повороты
Интегрирование угловых скоростей с помощью кватернионов

Снова весьма "оригинальный" материал, который найти не так-то просто. Автор поначалу и не нашёл - вывел сам, получил улучшение в 4000 раз, обрадовался, начал писать статью и искать подходящий рецензируемый журнал, а 3 дня спустя всё-таки нашёл этот материал в статье 1986 года. Ну тут сложно обижаться - автор не успел бы опубликоваться раньше при всём своём желании!

Методы второго порядка

Разумеется, нам всегда хочется большего. Попробуем дать чуть лучшую аппроксимацию истинному кватерниону поворота:
p9p2eq1.png

Осторожно, спойлеры!


Снова применим обозначение
p9p2eq2.png
(без него нам было бы совсем туго, с коэффициентами наподобие 3840)

Норма этого кватерниона составит:
p9p2eq3.png

Как мы видим, теперь норма будет возрастать значительно медленнее – ошибка по ней имеет четвёртый порядок вместо второго, как было в предыдущем методе. Тем не менее, норма монотонно растёт, и время от времени её необходимо корректировать.

Отнормируем кватернион:
p9p2eq4.png

Сравнивая с разложением синуса и косинуса в ряд, обнаруживаем, что первой будет проявляться ошибка в синусе – в нашем Μ2норм вообще нет слагаемого с третьей степенью! Ошибка в кватернионе составит:
p9p2eq5.png

Ошибка по углу будет вдвое больше (поскольку в кватернионах используются половинные углы) и составит
p9p2eq6.png

то есть ошибка уменьшилась всего лишь в два раза, сохранив ту же самую кубическую зависимость от шага интегрирования!

При использовании метода «первого порядка» нам было нужно 12 умножений и 12 сложений для перемножения кватернионов. Добавим сюда ещё три умножения на Δt/2 – получится 15m + 12a.

В данном методе 2-го порядка придётся использовать 16 умножений и 12 сложений для перемножения кватернионов, ведь скалярная часть больше не равна единице! К тому же, нам нужно найти квадрат модуля вектора конечного поворота, после чего поделить его на 8 – эти операции требуют ещё 4 умножения и 2 сложения, так что в итоге получаем 23 умножения и 14 сложений, что делает этот метод на 40..50% более затратным, чем предыдущий.

Но если мы, чтобы сохранить то же количество вычислений, увеличим шаг на 40%, то суммарная ошибка как раз и возрастёт в два раза, за которые мы боролись – игра не стоит свеч. Разве что норма почти остаётся на месте, да всё равно не до конца.

Проверка на нашем примере позволяет подтвердить изложенные оценки – ошибка действительно снижается в два раза, а норма за 72 шага становится равной 1,000033.

Модифицированный метод второго порядка
Оценивая ошибки двух методов, приведённых выше, можно заметить интересную особенность: введение слагаемого второго порядка не влияет (разве что слагаемым четвёртого порядка) на скалярную (действительную) часть кватерниона после его нормировки, тогда как слагаемое третьего порядка в векторной части явно от него зависит. Так почему бы не найти такое слагаемое, чтобы и его «подогнать» под правильный ответ?

Ответ будем искать в виде:
p9p2eq7.png

Норма будет равна:
p9p2eq8.png

Отнормируем кватернион:
p9p2eq9.png
(здесь мы учитывали слагаемые до третьего порядка включительно)

Как и ожидалось, скалярная компонента не зависит от α, тогда как коэффициент при φ3 в векторной компоненте мы можем задать какой угодно. Выберем его так, чтобы векторная компонента соответствовала разложению синуса в ряд:
p9p2eqA.png

Искомая формула для модифицированного метода второго порядка выглядит так:
p9p2eqB.png

Всё отличие - вместо 1/8 у нас тут стоит 1/12.

И мы уже знаем, что ошибка третьего порядка (связанная с нелинейностью - с угловым ускорением мы здесь ничего сделать не можем!) у нас уйдёт. А как насчёт четвёртого порядка?
Снова запишем норму кватерниона:
p9p2eqC.png

Разложим величину, обратную к норме, в ряд Тэйлора, до 4-го порядка включительно:
p9p2eqD.png

Теперь отнормируем кватернион, оставляя слагаемые до пятого порядка включительно:
p9p2eqE.png

Обнаруживается чудесная вещь: слагаемое четвёртого порядка тоже оказалось абсолютно верным, тогда как расхождение кроется в пятом порядке и составляет:
p9p2eqG.png

Ошибка по углу будет вдвое больше (поскольку в кватернионах используются половинные углы) и составит
p9p2eqH.png

потрясающий результат, ведь не только ошибка интегрирования при уменьшении шага вдвое падает в 16 раз, но и число в знаменателе стоит огромное!

В нашем примере, всё так же используя шаг 5 градусов и сделав 72 шага (полный оборот), получаем ошибку по углу 2,9×10-5 градуса, или 0,1''.

Улучшение по сравнению с методом «первого порядка» составило 7 500 раз (!). Норма кватерниона растёт втрое медленнее, чем в методе «первого порядка», в нашем примере она достигла значения 1,023 за весь оборот. Это не так хорошо, как в обычном методе «второго порядка», рассмотренного выше, но всё равно очень достойно.

Данный метод был предложен в статье [Захарин М.И., Сокол В.Ф., Вычисление координат вектора ориентации при переменном шаге получения квазикоординат // Кибернетика и вычислительная техника - 1986 - Вып. 69. - С. 52-57]. Если она у кого-то есть в бумажном или электронном виде - напишите, пожалуйста, в ЛС.

Эта статья и её основные результаты были упомянуты в книге "Введение в теорию Бесплатформенных Инерциальных Навигационных Систем (БИНС)" Бранца и Шмыглевского, 1992 года.


Осталось обсудить методы интегрирования более высоких порядков, и разобраться: а какой же из них применять? И практические примеры.
Tags: кватернионы-это просто (том 1), математика, моделирование, работа
Subscribe

  • Хотел выпендриться

    Одно из замечаний к моему протоколу информационного обмена: ДОБАВЬ 16-битные заголовки к каждому сообщению! Нам могут прислать командное слово с…

  • Моделирование стыковки с помощью ВидеоИзмерителя

    "Нарисовал"-таки видеоролик, где мы начинаем с весьма неблагоприятных условий: вместо того, чтобы нас поставить ровно "напротив" стыковочного узла,…

  • Более тяжёлые тела падают быстрее!

    Увидел не так давно видео от Flammable Maths с таким заголовком, и подумал поначалу - он опять нас троллит. Это немецкий препод математики…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 9 comments