dcm2angle

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

Синтаксис

[r1 r2 r3] = dcm2angle(n)
[r1 r2 r3] = dcm2angle(n,s)
[r1 r2 r3] = dcm2angle(n,s,lim)
[r1 r2 r3] = dcm2angle(n,s,lim,action)
[r1 r2 r3] = dcm2angle(n,s,lim,action,tolerance)

Описание

[r1 r2 r3] = dcm2angle(n) вычисляет набор углов поворота, r1, r2, r3, для данной матрицы направляющего косинуса, n. n является 3 3 m матрицей, содержащей матрицы направляющих косинусов m. r1 возвращает массив m первых углов поворота. r2 возвращает массив m вторых углов поворота. r3 возвращает массив m третьих углов поворота. Углы поворота выводятся в радианах. Эта функция применяется только к матрицам направляющих косинусов, которые являются ортогональными с детерминантом +1.

[r1 r2 r3] = dcm2angle(n,s) вычисляет набор углов поворота, r1, r2, r3, для данной матрицы направляющего косинуса, n, и заданной последовательности вращения, s.

Последовательностью вращения по умолчанию является 'ZYX', где r1 является z - вращение оси, r2 является y - вращение оси, и r3 является x - вращение оси.

Поддерживаемыми последовательностями вращения является 'ZYX', 'ZYZ', 'ZXY', 'ZXZ', 'YXZ', 'YXY', 'YZX', 'YZY', 'XYZ', 'XYX', 'XZY' и 'XZX'.

[r1 r2 r3] = dcm2angle(n,s,lim) вычисляет набор углов поворота, r1, r2, r3, для данной матрицы направляющего косинуса, n, заданной последовательности вращения, s, и заданного углового ограничения, lim. lim задает или 'Default' или 'ZeroR3'. Смотрите Предположения и Ограничения для полных определений угловых ограничений.

[r1 r2 r3] = dcm2angle(n,s,lim,action) выполняет action, если матрица направляющего косинуса недопустима (не ортогональный).

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

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

  • Ни один — не выводит предупреждение или ошибку (значение по умолчанию).

[r1 r2 r3] = dcm2angle(n,s,lim,action,tolerance) использует уровень tolerance, чтобы оценить, если матрица направляющего косинуса, n, допустима (ортогональный). tolerance является скаляром, значением по умолчанию которого является eps(2) (4.4409e-16). Функция считает матрицу направляющего косинуса допустимой, если эти условия верны:

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

  • Детерминант матрицы направляющего косинуса равняется 1 в заданном допуске (det(n) == 1±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')

pitch =

         0
    0.3000

roll =

         0
    0.1000

yaw =

         0
    0.5000

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

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

Предположения и ограничения

Ограничения 'Default' для 'ZYX', 'ZXY', 'YXZ', 'YZX', 'XYZ' и реализаций 'XZY' генерируют угол r2, который находится между ±90 градусами, и r1 и углами r3, которые находятся между ±180 градусами.

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

Ограничения 'ZeroR3' для 'ZYX', 'ZXY', 'YXZ', 'YZX', 'XYZ' и реализаций 'XZY' генерируют угол r2, который находится между ±90 градусами, и r1 и углами r3, которые находятся между ±180 градусами. Однако, когда r2 является ±90 градусами, r3 установлен в 0 градусов.

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

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

| | |

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