본문 바로가기
항공우주/동역학

방향코사인행렬 (DCM)

by 깊은대학 2021. 2. 6.

DCM은 Direction Cosine Matrix의 약자다. 방향코사인행렬 또는 회전행렬(rotation matrix)이라고 한다. 기호로는 Cba 라고 쓰고 위 첨자와 아래 첨자에 각각 좌표계를 표시한다. 그리고 좌표계 {a}에서 좌표계 {b}로의 DCM이라고 읽는다.

 

 

DCM은 3×3 행렬이다. 그러면 9개의 행렬 성분(element)이 있는데, 각각은 다음과 같이 정의한다.

 

Cba=[a^1b^1a^1b^2a^1b^3a^2b^1a^2b^2a^2b^3a^3b^1a^3b^2a^3b^3]

 

정의에 의하면 DCM 행렬의 i번째 행과 j번째 열은 좌표계 {a}a^i축과 좌표계 {b}b^j축과의 내적이다. 두 축의 내적은

 

a^ib^j=cosα

 

으로 주어지고 α는 두 축사이의 사잇각이므로 '방향코사인' 이라는 이름이 붙었다.

좌표계 {b}에서 좌표계 {a}로의 DCM은 행렬 C의 위 첨자와 아래 첨자를 반대로 써서 Cab로 표현할 수 있다. CbaCab는 서로 역변환 관계다.

 

 

DCM의 정의에 의해서 다음 3가지 성질이 파생된다.

먼저, 벡터 u를 좌표계 {a}로 표현한 벡터 ua와 좌표계 {b}로 표현한 ub는 다음 관계가 있다.

 

ua=Cbaub

 

위 식에 의하면 좌표계 {a}에서 좌표계 {b}로의 DCM Cba는 좌표계 {b}에서 표현한 벡터 ub를 좌표계 {a}에서 표현한 벡터 ua로 변환해 준다.

예제를 통해서 DCM을 계산해보고 좌표변환 관계식이 맞는지 확인해 보자.

다음과 같이 두 좌표계 {a}{b}가 있을 때 DCM 을 구하고, 길이가 2인 벡터 u를 두 좌표계로 표현해 보자. a^3b^1은 화면에서 나오는 방향이다.

 

 

우선 a^1b^1은 직각이므로 사잇각이 90도이다. 따라서

 

a^1b^1=cos90o=0

 

이다. a^1b^2는 사잇각이 30도이다. 따라서

 

a^1b^2=cos30o=32

 

이다. 이런 식으로 다 계산해 보면,

 

Cba=[03/21/201/23/2100]

 

이 된다. 이제, 벡터 u를 좌표계 {a}의 각 축으로 표현하면 다음과 같다.

 

ua=[2cos30o2sin30o0]=[310]

 

좌표계 {b}의 경우는 다행히 벡터 ub^2 방향과 일치하므로,

 

ua=[2cos30o2sin30o0]=[310]

 

이다. DCM Cbaub를 이용하여 ua를 계산하면 다음과 같다.

 

ua=Cbaub=[03/21/201/23/2100][020]=[310]

 

그런데 만약 ua를 이용하여 ub를 계산하려면 어떻게 해야할까. 다음과 같이 역행렬(inverse matrix)을 이용하면 될 것 같다.

 

ub=(Cba)1ua

 

그런데 보통 3×3행렬(행과 열이 각각 3개인 행렬)의 역행렬은 구하기가 어렵다.

 

 

이것을 해결해 줄 DCM의 두번째 성질이 있다. DCM Cba의 역행렬은 전치(transpose) 행렬과같다는 것이다. 즉

 

(Cba)1=(Cba)T

 

전치 행렬은 행렬의 행과 열을 서로 뒤바꾸는 놓은 것이기 때문에 계산이 매우 쉽다. 그러면 ua를 이용하여 ub를 계산해 보자.

 

ub=(Cba)1ua=(Cba)Tua=[0013/21/201/23/20][310]=[020]

 

이제 DCM Cba로 좌표계 {a}에서 표현한 벡터 ua를 좌표계 {b}에서 표현한 벡터 ub로 변환하든가 그 반대로 쉽게 변환할 수 있다.

DCM의 세번째 성질은 연쇄법칙이 성립한다는 것이다. 연쇄법칙은 다음과 같은 것이다.

 

Cca=CbaCcb

 

좌표계 {a}에서 좌표계 {c}로의 DCM을 직접 계산할 수도 있지만 중간 단계의 좌표계 {b}를 두고 각각의 DCM을 계산해서 구할 수도 있다는 이야기다. 즉 {a}에서 {c}로 가는 것은 {a}에서 {b}로, 다시 {b}에서 {c}로 가는 것과 같다는 뜻이다. DCM을 직접 구하기 어려운 경우 매우 유용하다.

 

 

 

 

방향코사인행렬, 오일러각, 그리고 쿼터니언

<b>“좌표계간의 상호 변환관계를 말하다”</b> <b>“물체의 자세 변화를 수학적으로 표현하고 싶은 개발자를 위한 책”</b> 이 책은 방향코사인행렬, 오일러각, 쿼터니언과 이들의 시간 변화율에

digital.kyobobook.co.kr

 

'항공우주 > 동역학' 카테고리의 다른 글

짐벌락 (Gimbal Lock)  (0) 2021.02.07
오일러각 (Euler Angles)  (0) 2021.02.07
벡터를 직교 좌표계로 표현하기  (0) 2021.02.05
직교 좌표계  (0) 2021.02.05
자이로스코프 효과  (1) 2021.01.10

댓글