Quaternions to Rotation Angles

Определите вектор вращения из кватерниона

  • Библиотека:
  • Aerospace Blockset / Утилиты / Преобразования Осей

  • Quaternions to Rotation Angles block

Описание

Блок Quaternions to Rotation Angles преобразует четырехэлементный вектор кватерниона (q 0, q 1, q 2, q 3), во вращение, описанное этими тремя углами поворота (R1, R2, R3). Блок генерирует преобразование путем сравнения элементов в матрице направляющего косинуса (DCM) в зависимости от углов поворота. Элементами в DCM являются функции модульного вектора кватерниона. Aerospace Blockset™ использует кватернионы, которые заданы с помощью скалярного первого соглашения. Для получения дополнительной информации о матрице направляющего косинуса см. Алгоритмы.

Ограничения

  • Для ZYX, ZXY, YXZ, YZXx, y, z , и XZY вращения, блок генерирует угол R2, который находится между ±pi/2 радианами, и R1 и углами R3, которые находятся между ±pi радианами.

  • Для 'ZYZ', 'ZXZ', 'YXY', 'YZY', 'XYX' и вращений 'XZX', блок генерирует угол R2, который находится между 0 и радианы пи, и R1 и углы R3, которые находятся между ±pi радианами. Однако в последнем случае, когда R2 0, R3 установлен в 0 радианов.

Порты

Входной параметр

развернуть все

Кватернион в виде 4 1 вектора.

Типы данных: double

Вывод

развернуть все

Углы поворота, возвращенный вектор 3 на 1, в радианах.

Типы данных: double

Параметры

развернуть все

Выведите порядок вращения для этих трех углов поворота.

Программируемое использование

Параметры блоков: rotationOrder
Ввод: символьный вектор
Значения: ZYX | ZYZ |ZXY | ZXZ | YXZ | YXY | YZX | YZY | XYZ | XYX | XZY | XZX
Значение по умолчанию: 'ZYX'

Алгоритмы

Элементами в DCM являются функции модульного вектора кватерниона. Например, для вращения заказывают z-y-x, DCM задан как:

DCM=[cosθcosψcosθsinψsinθ(sinϕsinθcosψcosϕsinψ)(sinϕsinθsinψ+cosϕcosψ)sinϕcosθ(cosϕsinθcosψ+sinϕsinψ)(cosϕsinθsinψsinϕcosψ)cosϕcosθ]

DCM, заданный модульным вектором кватерниона:

DCM=[(q02+q12q22q32)2(q1q2+q0q3)2(q1q3q0q2)2(q1q2q0q3)(q02q12+q22q32)2(q2q3+q0q1)2(q1q3+q0q2)2(q2q3q0q1)(q02q12q22+q32)]

От предыдущего уравнения можно вывести следующие отношения между элементами DCM и отдельными углами поворота для порядка вращения ZYX:

ϕ=atan(DCM(2,3),DCM(3,3))=atan(2(q2q3+q0q1),(q02q12q22+q32))θ=asin(DCM(1,3))=asin(2(q1q3q0q2))ψ=atan(DCM(1,2),DCM(1,1))=atan(2(q1q2+q0q3),(q02+q12q22q32))

где Ψ является R1, Θ является R2, и Φ является R3.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представленный в R2007b