주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

Direction Cosine Matrix to Quaternions

방향 코사인 행렬을 쿼터니언 벡터로 변환

  • Direction Cosine Matrix to Quaternions block

라이브러리:
Aerospace Blockset / Utilities / Axes Transformations

설명

Direction Cosine Matrix to Quaternions 블록은 3×3 방향 코사인 행렬(DCM)을 4개 요소로 구성된 단위 쿼터니언 벡터(q0, q1, q2, q3)로 변환합니다. Aerospace Blockset™은 스칼라 우선 규칙을 사용하여 정의된 쿼터니언을 사용합니다. 방향 코사인 행렬은 프레임 A에서 프레임 B로의 수동 변환을 나타냅니다. 결과로 얻어지는 쿼터니언은 오른손 법칙에 따른 프레임 A에서 프레임 B로의 일련의 내재적 수동 변환을 나타냅니다. 방향 코사인 행렬에 대한 자세한 내용은 알고리즘 항목을 참조하십시오.

예제

포트

입력

모두 확장

방향 코사인 행렬을 쿼터니언으로 변환하기 위한 행렬로, 3×3 행렬로 지정됩니다.

데이터형: double

출력

모두 확장

변환을 통해 반환되는 4×1 벡터 형태의 쿼터니언.

데이터형: double

파라미터

모두 확장

방향 코사인 행렬이 유효하지 않은(직교가 아닌) 경우의 블록 동작입니다.

  • Warning — 방향 코사인 행렬이 유효하지 않음을 알리는 경고 메시지를 표시합니다.

  • Error — 방향 코사인 행렬이 유효하지 않음을 나타내는 오류를 표시합니다.

  • None — 경고나 오류 메시지를 표시하지 않습니다(디폴트 값).

프로그래밍 방식 사용

블록 파라미터: action
유형: 문자형 벡터
: 'None' | 'Warning' | 'Error'
디폴트 값: 'None'

데이터형: char | string

방향 코사인 행렬 유효성에 대한 허용오차로, 스칼라로 지정됩니다. 이 블록은 다음 조건들이 충족될 때 방향 코사인 행렬을 유효한 것으로 간주합니다:

  • 방향 코사인 행렬의 전치 행렬을 그 행렬 자체와 곱하면, 지정된 허용오차 범위(transpose(n)*n == 1±tolerance) 내에서 1과 같아집니다.

  • 방향 코사인 행렬의 행렬식은 지정된 허용오차 범위(det(n) == 1±tolerance) 내에서 1과 같습니다.

프로그래밍 방식 사용

블록 파라미터: 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의 대각합(trace)을 계산하여 어떤 알고리즘을 사용할지 결정하는 것입니다. 대각합이 0보다 크면, 쿼터니언을 자동으로 계산할 수 있습니다. 대각합이 0 이하일 경우, 쿼터니언을 계산하는 데 사용되는 최종 알고리즘을 결정하기 위해 DCM의 주대각선 요소 중 값이 가장 큰 요소를 식별해야 합니다. 주대각선 요소가 확인되면 쿼터니언이 계산됩니다.

확장 기능

모두 확장

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨