Преобразуйте матрицу направляющего косинуса в кватернион
q = dcm2quat(n)
q = dcm2quat(n,action)
q = dcm2quat(n,action,tolerance)
q = dcm2quat(n)
вычисляет кватернион, q
, для данной матрицы направляющего косинуса, n
. Вход n
является 3 3 m
матрицей ортогональных матриц направляющих косинусов. Матрица направляющего косинуса выполняет координатное преобразование вектора в инерционных осях к вектору в осях тела. q
возвращает m
-by-4 матрица, содержащая кватернионы m
. q
имеет свой скалярный номер как первый столбец.
Эта функция применяется только к матрицам направляющих косинусов, которые являются ортогональными с детерминантом +1.
q = dcm2quat(n,action)
выполняет action
, если матрица направляющего косинуса недопустима (не ортогональный).
Предупреждение — Выводит предупреждение и указывает, что матрица направляющего косинуса недопустима.
Ошибка — ошибка Отображений и указывает, что матрица направляющего косинуса недопустима.
Ни один — не выводит предупреждение или ошибку (значение по умолчанию).
q = dcm2quat(n,action,tolerance)
использует уровень tolerance
, чтобы оценить, если матрица направляющего косинуса, n
, допустима (ортогональный). tolerance
является скаляром, значением по умолчанию которого является eps(2)
(4.4409e-16
). Функция считает матрицу направляющего косинуса допустимой, если эти условия верны:
Транспонирование матричных времен направляющего косинуса само равняется 1
в заданном допуске (transpose(n)*n == 1±tolerance
)
Детерминант матрицы направляющего косинуса равняется 1
в заданном допуске (det(n) == 1±tolerance
).
Определите кватернион из матрицы направляющего косинуса:
dcm = [0 1 0; 1 0 0; 0 0 -1]; q = dcm2quat(dcm) q = 0 0.7071 0.7071 0
Определите кватернионы от нескольких матриц направляющих косинусов:
dcm = [ 0 1 0; 1 0 0; 0 0 -1]; dcm(:,:,2) = [ 0.4330 0.2500 -0.8660; ... 0.1768 0.9186 0.3536; ... 0.8839 -0.3062 0.3536]; q = dcm2quat(dcm) q = 0 0.7071 0.7071 0 0.8224 0.2006 0.5320 0.0223
Определите кватернион из матрицы направляющего косинуса, подтвержденной в допуске:
dcm = [0 1 0; 1 0 0; 0 0 -1]; q = dcm2quat(dcm,'Warning',0.1) q = 0 0.7071 0.7071 0
angle2dcm
| angle2quat
| dcm2angle
| quat2angle
| quat2dcm