exponenta event banner

Матрица косинусов направления к кватернионам

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

  • Библиотека:
  • Аэрокосмический блок/Преобразования инженерных сетей/осей

  • Direction Cosine Matrix to Quaternions block

Описание

Блок «Матрица косинусов направления к кватернионам» преобразует матрицу косинусов направления 3 на 3 (DCM) в четырехэлементный единичный кватернионный вектор (q0, q1, q2, q3). В аэрокосмической Blockset™ используются кватернионы, определенные с помощью соглашения scalar-first. DCM выполняет координатное преобразование вектора в инерциальных осях в вектор в осях тела. Дополнительные сведения о косинусной матрице направления см. в разделе Алгоритмы.

Порты

Вход

развернуть все

Матрица косинусов направления для преобразования матрицы косинусов направления в кватернионы, заданная как 3 на 3.

Типы данных: double

Продукция

развернуть все

Кватернион возвращен трансформацией как вектор 4 на 1.

Типы данных: double

Параметры

развернуть все

Поведение блока при недопустимой косинусной матрице направления (не ортогональной).

  • Warning - отображает предупреждение о том, что матрица направления косинуса недопустима.

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

  • None - не отображает предупреждения или ошибки (по умолчанию).

Программное использование

Параметр блока: action
Текст: символьный вектор
Значения: 'None' | 'Warning' | 'Error'
По умолчанию: 'None'

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

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

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

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

Программное использование

Параметр блока: tolerance
Текст: символьный вектор
Значения: 'eps(2)' | скаляр
По умолчанию: 'eps(2)'

Типы данных: double

Алгоритмы

DCM определяется как функция единичного кватернионного вектора следующим образом:

DCM = [(q02 + q12 q22 q32) 2 (q1q2 + q0q3) 2 (q1q3 q0q2) 2 (q1q2 q0q3) (q02 q12 + q22 q32) 2 (q2q3 + q0q1) 2 (q1q3 + q0q2) 2 (q2q2)

Используя это представление DCM, ряд вычислений приходит к правильному кватерниону. Первый из них - вычислить трассировку DCM, чтобы определить, какие алгоритмы используются. Если трассировка больше нуля, кватернион может быть вычислен автоматически. Когда трассировка меньше или равна нулю, для определения конечного алгоритма, используемого для вычисления кватерниона, должен быть идентифицирован главный диагональный элемент DCM с наибольшим значением. Как только основной диагональный элемент идентифицирован, вычисляется кватернион.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен до R2006a