주요 콘텐츠

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

Quaternion Rotation

쿼터니언으로 벡터 회전

  • Quaternion Rotation block

라이브러리:
Aerospace Blockset / Utilities / Math Operations

설명

Quaternion Rotation 블록은 초기 벡터 vec를 쿼터니언 q로 수동 회전한 후의 결과 벡터를 계산하고 회전된 벡터 또는 회전된 벡터의 벡터인 최종 벡터를 반환합니다. Aerospace Blockset™는 스칼라 우선 규칙을 사용하여 정의된 쿼터니언을 사용합니다. 이 블록은 모든 쿼터니언 입력을 정규화합니다. 쿼터니언, 초기 벡터, 최종 벡터에 사용되는 방정식은 알고리즘를 참조하세요.

예제

포트

입력

모두 확장

[q0, r0, ..., q1, r1, ... , q2, r2, ... , q3, r3, ...] 형태의 쿼터니언은 쿼터니언 또는 쿼터니언 벡터로 지정됩니다.

데이터형: double

[v1, u1, ... , v2, u2, ... , v3, u3, ...] 형태의 초기 벡터 또는 벡터의 벡터.

데이터형: double

출력

모두 확장

최종 벡터 또는 회전된 벡터의 벡터.

데이터형: double

알고리즘

정규화된 쿼터니언은 다음과 같은 형태를 갖습니다.

q=q0+iq1+jq2+kq3.

벡터는 다음과 같은 형태를 갖습니다.

v=iv1+jv2+kv3.

Aerospace Blockset는 다음 형식의 수동 쿼터니언 회전을 정의합니다.

v=q1[0v]q,

여기서 Ⓧ는 쿼터니언 곱셈의 연산자입니다.

최종 벡터는

v=[v1v2v3]=[(12q222q32)2(q1q2+q0q3)2(q1q3q0q2)2(q1q2q0q3)(12q122q32)2(q2q3+q0q1)2(q1q3+q0q2)2(q2q3q0q1)(12q122q22)][v1v2v3]

의 형태를 갖습니다.

참고 문헌

[1] Stevens, Brian L., Frank L. Lewis. Aircraft Control and Simulation, Second Edition. Hoboken, NJ: Wiley–Interscience.

[2] Diebel, James. "Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors." Stanford University, Stanford, California, 2006.

확장 기능

모두 확장

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

버전 내역

R2006a 이전에 개발됨