Direction Cosine Matrix to Quaternions

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

  • Библиотека:
  • Aerospace Blockset / Утилиты / Преобразования Осей

  • Direction Cosine Matrix to Quaternions block

Описание

Блок Direction Cosine Matrix to Quaternions преобразовывает 3х3 матрицу направляющего косинуса (DCM) в четырехэлементный модульный вектор кватерниона (q 0, q 1, q 2, q 3). Aerospace Blockset™ использует кватернионы, которые заданы с помощью скалярного первого соглашения. 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+q12q22q32)2(q1q2+q0q3)2(q1q3q0q2)2(q1q2q0q3)(q02q12+q22q32)2(q2q3+q0q1)2(q1q3+q0q2)2(q2q3q0q1)(q02q12q22+q32)]

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

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