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-на-1 массив, в радах.

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

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

Ограничения

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

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

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

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

См. также

| | |

Введенный в R2006b