dcm2angle

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

Описание

Базовый синтаксис

пример

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

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

Ограничение, действие и синтаксис допуска

пример

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

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

[rotationAng1 rotationAng2 rotationAng3] = dcm2angle(dcm,rotationSequence,lim,action,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

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

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

pitch =
     0

roll =
     0

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

dcm = [1 0 0; 0 1 0; 0 0 1];
[yaw, pitch, roll] = dcm2angle( dcm, 'zyx', 'robust', 'warning')
yaw =
     0

pitch =
     0

roll =
     0

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

dcm = [1 0 0; 0 1 0; 0 0 1];
[yaw, pitch, roll] = dcm2angle( dcm, 'zyx', 'robust', 'warning', 0.01)
yaw =
     0

pitch =
     0

roll =
     0

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

свернуть все

Матрицы направляющих косинусов в виде 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' — Возвращает случай по умолчанию R1, R2 и R3. В случае блокировки карданова подвеса используйте 'ZeroR3' или 'Robust'.

  • 'ZeroR3' — В случае блокировки карданова подвеса, R3 наборов к 0 и решает для R1 и R2.

  • 'Robust' — Возвращает R1, R2 и R3 от любого 'Default' или 'ZeroR3' случай, который производит матрицу вращения, которая наиболее тесно совпадает с входной матрицей.

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

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

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

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

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

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

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

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

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

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

Типы данных: 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