dcm2angle

Создайте углы поворота из матрицы направляющего косинуса

Описание

пример

[rotationAng1 rotationAng2 rotationAng3] = dcm2angle(dcm) вычисляет углы поворота, rotationAng1, rotationAng2, rotationAng3, для матрицы направляющего косинуса, dcm. Эта функция использует пассивное преобразование между двумя системами координат.

[rotationAng1 rotationAng2 rotationAng3] = dcm2angle(dcm,rotationSequence) вычисляет углы поворота для заданной последовательности вращения, rotationSequence.

[rotationAng1 rotationAng2 rotationAng3] = dcm2angle(___,lim) вычисляет углы поворота для заданного углового ограничения, lim. Задайте lim после всех других входных параметров.

[rotationAng1 rotationAng2 rotationAng3] = dcm2angle(___,action) вычисляет углы поворота и выполняет действие, если матрица направляющего косинуса не является ортогональной. Задайте action после всех других входных параметров.

[rotationAng1 rotationAng2 rotationAng3] = dcm2angle(___,tolerance) вычисляет углы поворота и использует tolerance уровень, чтобы оценить, если матрица направляющего косинуса является ортогональной. Задайте tolerance после всех других входных параметров.

Примеры

свернуть все

Определите углы поворота из матрицы направляющего косинуса:

dcm = [1 0 0; 0 1 0; 0 0 1];
[yaw, pitch, roll] = dcm2angle(dcm)
yaw =
     0

pitch =
     0

roll =
     0

Определите углы поворота из нескольких матриц направляющих косинусов:

dcm        = [ 1 0 0; 0 1 0; 0 0 1];  
dcm(:,:,2) = [ 0.85253103550038   0.47703040785184  -0.21361840626067; ...
              -0.43212157513194   0.87319830445628   0.22537893734811; ...
               0.29404383655186  -0.09983341664683   0.95056378592206];
[pitch, roll, yaw] = dcm2angle(dcm,'YXZ','Default','None',0.1)
pitch =
         0
    0.3000

roll =
         0
    0.1000

yaw =
         0
    0.5000

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

свернуть все

Матрицы направляющих косинусов в виде 3 3 m матрицей, где m количество матриц направляющих косинусов. Матрицы направляющих косинусов должны быть ортогональными с определителем +1.

Последовательность вращения в виде:

  • 'ZYX'

  • 'ZYZ'

  • 'ZXY'

  • 'ZXZ'

  • 'YXZ'

  • 'YXY'

  • 'YZX'

  • 'YZY'

  • 'XYZ'

  • 'XZY'

  • 'XYX'

  • 'XZX'

где rotationAng1 z- вращение оси, rotationAng2 y- вращение оси и rotationAng3 x- вращение оси.

Типы данных: char | string

Угловое ограничение в виде 'Default' или 'ZeroR3'. Для получения дополнительной информации об угловых ограничениях смотрите Ограничения.

Действие для недопустимой матрицы направляющего косинуса в виде:

  • 'Warning' — Выводит предупреждение и указывает, что матрица направляющего косинуса недопустима.

  • 'Error' — Ошибка отображений и указывает, что матрица направляющего косинуса недопустима.

  • 'None' — Не выводит предупреждение или ошибку.

Типы данных: char | string

Уровень терпимости, чтобы оценить, если матрица направляющего косинуса, dcm, является ортогональным в виде скаляра.

Функция считает матрицу направляющего косинуса допустимой, если эти условия верны:

  • Транспонирование матричных времен направляющего косинуса само равняется 1 в заданном допуске tolerance (transpose(dcm)*dcm == 1±tolerance)

  • Определитель матрицы направляющего косинуса равняется 1 в заданном допуске (det(dcm) == 1±tolerance).

Типы данных: char | string

Выходные аргументы

свернуть все

Первые углы поворота, возвращенные как m-by-1 массив, в рад.

Вторые углы поворота, возвращенные как m-by-1 массив, в рад.

Третьи углы поворота, возвращенные как m-by-1 массив, в рад.

Ограничения

  • 'Default' ограничения для 'ZYX', 'ZXY', 'YXZ', 'YZX'x, y, z , и 'XZY' реализации генерируют rotationAng2 угол, который находится между ±90 градусами и rotationAng1 и rotationAng3 углы, которые находятся между ±180 градусами.

  • 'Default' ограничения для 'ZYZ', 'ZXZ', 'YXY', 'YZY', 'XYX', и 'XZX' реализации генерируют rotationAng2 угол, который находится между 0–180 градусами и rotationAng1 и rotationAng3 углы, которые находятся между ±180 градусами.

  • 'ZeroR3' ограничения для 'ZYX', 'ZXY', 'YXZ', 'YZX'x, y, z , и 'XZY' реализации генерируют rotationAng2 угол, который находится между ±90 градусами и rotationAng1 и rotationAng3 углы, которые находятся между ±180 градусами. Однако, когда rotationAng2 ±90 градусов, rotationAng3 установлен в 0 градусов.

  • 'ZeroR3' ограничения для 'ZYZ', 'ZXZ', 'YXY', 'YZY', 'XYX', и 'XZX' реализации генерируют rotationAng2 угол, который находится между 0–180 градусами и rotationAng1 и rotationAng3 углы, которые находятся между ±180 градусами. Однако, когда rotationAng2 0 или ±180 градусов, rotationAng3 установлен в 0 градусов.

Смотрите также

| | |

Представленный в R2006b
Для просмотра документации необходимо авторизоваться на сайте