Руководство по применению матрицы преобразования к системе отсчета для ее поворота из одной ориентации в другую.

Введение

Эта статья призвана продемонстрировать, как применить матрицу преобразования к системе отсчета, чтобы повернуть ее из одной ориентации в другую.

Матрица преобразования – это матрица, выполняющая поворот в евклидовом пространстве.

Для управления летательными аппаратами и космическими аппаратами необходимо преобразование между инерционным и корпусным каркасами. Таким образом, трансформация фреймов является основополагающим элементом динамики отношений и контроля.

Теория

Инерционная система отсчета – это система отсчета, которая не подвергается ускорению. Примером может служить земляно-центрированная инерциальная система (ECI) с началом в центре масс Земли, но не вращающаяся вместе с Землей. Другой важной системой отсчета является рама тела. Набор из трех ортогональных осей, закрепленных на теле, определяет положение тела.

На рис. 1 показаны две системы отсчета: инерциальная система и система отсчета тела.

Хотя это может быть неочевидно, последовательные независимые повороты вокруг каждой оси инерциальной рамы могут привести к ориентации рамы тела.

Углы поворота называются углами Эйлера и обозначаются как фи (ϕ), тета (θ) и psi (ѱ). . По отношению к управлению самолетом эти углы равны крену, тангажу и рысканию, как показано на рис. 2.

Последовательность вращения по крену, тангажу и рысканию представляет собой последовательность E123, поскольку углы Эйлера относятся к 1-й, 2-й и 3-й оси последовательных кадров в этом порядке. Любой порядок вращения действителен. В аэрокосмических приложениях обычно используются последовательности E321: сначала рыскание, вращение по тангажу и крену.

Отдельные маневры вокруг одной из исходных осей (в данном случае инерциальной системы отсчета) называются главными вращениями.

Последовательность E123

Последовательность E123 демонстрирует, как перейти от инерциальной системы отсчета к системе отсчета тела.

Маневр начинается с физического вращения вокруг оси X. Например, на рисунке 3 показано вращение на угол ϕ. После завершения процесса ось становится первым промежуточным кадром. Поскольку поворот происходит вокруг оси X, его направление не меняется.

На рис. 4 показано изменение ориентации первого промежуточного кадра, показанного выше, на угол θ относительно оси Y первого промежуточного кадра. Это преобразование дает второй промежуточный кадр. Оси Y обоих кадров на этом шаге остаются выровненными.

Наконец, как показано на рисунке 5, маневр через ѱ вокруг оси Z второго промежуточного кадра завершает последовательность E123 до каркаса тела. .

Матрица косинуса направления

Стандартный подход к преобразованию вектора из одного кадра в другой состоит в том, чтобы указать базисные векторы второго кадра относительно первого. Затем сложение этих векторов по горизонтали дает матрицу направляющих косинусов (DCM).

Строки DCM – это единичные векторы второго кадра, выраженные в компонентах относительно первого.

Эта матрица может быть получена путем изучения рисунков 3–5 и использования тригонометрических правил для определения осей второго кадра относительно первого.
Уравнение 1–3 показывает соответствующую DCM для каждого из основных поворотов, представленных выше.

  • Первая строка: повернутые компоненты оси X кадра
  • Вторая строка: повернутые компоненты оси Y кадра
  • Третья строка: повернутые компоненты оси Z кадра.

Матрицы, определенные уравнениями 1–3, могут быть связаны вместе. Таким образом, полное преобразование можно выразить как уравнение 4. Обратите внимание на порядок матричных операций.

Для последовательности E123 матричные операции отображаются слева направо как 321 или E123 в обратном порядке.

Любая система отсчета может быть указана относительно первой, используя последовательности углов Эйлера. Порядок вращения имеет решающее значение, то есть последовательность E123 и E321 с углами ϕ = 30°, θ = 45°иѱ = 55° оба дадут разные результаты.

Реализация Python

Во-первых, основные матрицы вращения определяются с помощью массивов NumPy. Gist 1 соответствует первой основной матрице поворота.

Gist 2 соответствует второй основной матрице поворота из уравнения 2.

Наконец, чтобы преобразовать второй промежуточный кадр в целевое тело кадр, используйте функцию из Gist 3.

Вы можете создать любую последовательность Эйлера, используя описанные выше методы.

Затем определите желаемое преобразование. Для этого моделирования: ϕ = 30°, θ = 45°иѱ = 55°. Gist 4 показывает код Python, описывающий последовательность E123 от инерции до каркаса тела.

Для извлечения базисных векторов второго кадра из DCM полезна вспомогательная функция из Gist 5. Напомним, что строки DCM — это компоненты X, Y и Z, описывающие каждый базисный вектор второго кадра.

Моделирование

Обратите внимание, что для преобразования кадра не нужны циклы. Циклы for используются только для создания векторов анимации.

В Gist 6 показан код для вычисления векторов, необходимых для анимации преобразования.

Важным моментом является расчет DCM с использованием правильных углов Эйлера в правильном порядке.

Выполнение моделирования приводит к анимации, показанной на рис. 6. Проверка показывает преобразование инерциальной системы отсчета в систему отсчета с помощью последовательности E123, параметризованной с ϕ = 30°, θ = 45° и ѱ = 55°.

Заключение

Крайне важно признать два критических аспекта преобразований фреймов, представленных здесь:

  1. Понимание того, как DCM может выполнять преобразование между опорными кадрами, указав базисные векторы второго кадра относительно первого.
  2. Порядок основных поворотов в стопке для выполнения последовательности углов Эйлера имеет первостепенное значение.

Общий DCM E123 оценивается с использованием уравнения 4 (проверено здесь) и сравнивается с окончательным DCM из индивидуально сложенных вращений для проверки последовательности вращений. Gist 7 показывает утверждение.

Численно E123 DCM, соответствующий указанной ранее параметризации, показан на рисунке 7.

В этой статье показано, как выполнить преобразование системы отсчета из инерциальной системы отсчета в систему координат тела с помощью Python.





Весь код, необходимый для запуска моделирования, приведен ниже.

Спасибо, что прочитали.

Литература
[1] E123 DCM
[2] Динамика и управление ориентацией космического корабля
[3] Вращения самолетов НАСА

Больше контента на plainenglish.io