비행체의 상태를 표현하기 위해서 기준 좌표계가 필요하다. 기준 좌표계는 설정하는 사람마다 다를 수 있으나, 표현된 물체의 절대 위치는 동일해야 한다. 항공우주 공학에서 사용되는 대표적인 좌표계는 다음과 같다.
- 관성 좌표계(ECI) - Earth Centered Inertial reference frame
- 지구중심좌표계(ECEF) - Earth Centered Earth Fixed frame
- 지리좌표계(NED) - North East Down frame
- 동체좌표계(Body) - Body frame
관성 좌표계(ECI) I-frame
관성 좌표계란, 가속하거나 회전하지 않는 좌표계를 의미한다. 즉 시간에 따라 좌표축의 방향이 변하지 않는 좌표계를 의미한다. 실제 환경에서 이러한 좌표계는 존재하지 않는다. 지구가 회전하고 있기 때문이다. 그러나 다른 좌표계들간 관계를 쉽게 기술하기 위하여 관성 좌표계를 임의로 정의한다. 그러므로 항상 관성 좌표계의 축을 정의해 주어야 한다.
ECI 좌표계의 축은 다음과 같다.
- 좌표계 중심 : 지구 중심
- z축 : 지구 자전축 방향
- x축 : 중심으로부터, 초기 기준 경도선과 적도면이 만나는 점을 향하는 방향
- y축 : x,y축 벡터의 외적방향이 z축이 되도록 하는 y벡터 방향
지구 중심 좌표계(ECEF) e-frame
위의 관성좌표계로부터 지구의 자전으로 인해 회전하는 좌표계이다. 지구에 고정되어 지구와 함계 회전하며 t=0에서 ECI 좌표계와 일치한다.
- 좌표계 중심 : 지구 숭심
- z 축 : 지구 자전축 방향
- x 축 : 중심으로부터, 기준 경도선과 적도면이 만나는 점을 향하는 방향
- y 축 : x,y축 벡터의 외적 방향이 z축이 되도록 하는 y벡터 방향
지리 좌표계(NED) n-frame
NED좌표계 또는 LLA(Latitude-Longitude-Altitude)좌표계 라고 하며, 비행체에 고정되어 비행체와 함께 이동하는 좌표계이다. 북,동,지구중심 방향을 기준으로 비행체의 자세각 표현의 기준 좌표계가 된다.
- 좌표계 중심 : 비행체 무게중심
- N 축 : 진북 방향
- E 축 : 동쪽 방향
- D 축 : 아래 방향(중력 방향)
동체 좌표계(Body) b-frame
비행체에 고정되어 비행체와 함께 이동, 회전하는 좌표계이다. 받음각, 공력변수, 추력 같은 외력을 기술하기 위한 기준 좌표계이다. 동체 좌표계를 기준으로 양력, 항력, 추력을 기술한다.
- 좌표계 중심 : 비행체 무게중심
- x 축 : 비행체의 기수를 향하는 방향
- z 축 : 비행체의 배면을 향하는 방향
- y 축 : x,y 축벡터의 외적이 z축이 되도록 하는 y벡터 방향. (항공기의 경우 오른쪽 날개)
좌표계 변환 - Direction Cosine Matrix
앞에서 언급한대로 벡터로 표현되는 물리량은 기준 좌표계에 따라 표현하는 형태가 달라진다. $($절대적 물리량은 동일하다.$)$ 그러므로 항공기의 상태를 나타내는 표현식은 4개의 Frame별로 1개씩 총 4개가 존재한다. 각기 다른 좌표계에서 물체를 해석하기 위해서 좌표계간 변환식이 필요하다.
i-frame과 s-frame에서 표현된 동일한 벡터 $\overrightarrow{A}$가 있다고 하자.
$$\overrightarrow{A}=\overrightarrow{A^i}=x_i\overrightarrow{i_1}+y_i\overrightarrow{i_2}+z_i\overrightarrow{i_3}$$
$$=\overrightarrow{A^s}=x_s\overrightarrow{s_1}+y_s\overrightarrow{s_2}+z_s\overrightarrow{s_3}$$
동일한 두 벡터 $\overrightarrow{A^i}$와 $\overrightarrow{A^s}$사이의 관계를 계산해보자.
벡터의 내적을 이용하면 서로다른 좌표계 사이의 방향 성분을 알 수 있다.
$$x_s = \overrightarrow{A^i}\cdot\overrightarrow{s_1} = x_i\overrightarrow{i_1}\cdot\overrightarrow{s_1}+y_i\overrightarrow{i_2}\cdot\overrightarrow{s_1}+z_i\overrightarrow{i_3}\cdot\overrightarrow{s_1}$$
$$=x_icos\alpha_{11}+y_icos\alpha_{21}+z_icos\alpha_{31}$$
같은 방법으로 각 성분을 구하면 다음과 같다.
$$\begin{cases}x_s=x_icos\alpha_{11}+y_icos\alpha_{21}+z_icos\alpha_{31}\\ y_s=x_icos\alpha_{12}+y_icos\alpha_{22}+z_icos\alpha_{32}\\ z_s=x_icos\alpha_{13}+y_icos\alpha_{23}+z_icos\alpha_{33}\end{cases}$$
그러므로 아래와 같이 쓸 수 있다.
$$\begin{bmatrix} x_s \\ y_s \\ z_s \end{bmatrix}=\begin{bmatrix} cos\alpha_{11}&cos\alpha_{21}&cos\alpha_{31} \\cos\alpha_{12}&cos\alpha_{22}&cos\alpha_{32} \\ cos\alpha_{13}&cos\alpha_{23}&cos\alpha_{33}\end{bmatrix} \begin{bmatrix} x_i \\ y_i \\ z_i \end{bmatrix}$$
$$\overrightarrow{A^s}=C_i^s\overrightarrow{A_i}$$
$$where\; \overrightarrow{i_j}\cdot\overrightarrow{s_k} = ||\overrightarrow{i_j}||\cdot ||\overrightarrow{s_k}||cos\alpha_{jk}=cos\alpha_{jk}$$
위 행렬식에서 $C_i^s$는 i좌표계에서 표현된 A벡터를 s좌표계에서의 표현식으로 변환해주는 Transformation matrix가 된다. 이를 Direction Cosine Matrix$($DCM$)$라고 한다.
Properties of DCM
i-frame에서 s-frame으로의 변환 행렬을$C_i^s=\begin{bmatrix} cos\alpha_{11}&cos\alpha_{21}&cos\alpha_{31} \\cos\alpha_{12}&cos\alpha_{22}&cos\alpha_{32} \\ cos\alpha_{13}&cos\alpha_{13}&cos\alpha_{13}\end{bmatrix}$ 라고 하면
s-frame에서 i-frame으로의 변환 행렬은 $C_s^i=\begin{bmatrix} cos\alpha_{11}&cos\alpha_{12}&cos\alpha_{13} \\cos\alpha_{21}&cos\alpha_{22}&cos\alpha_{23} \\ cos\alpha_{31}&cos\alpha_{32}&cos\alpha_{33}\end{bmatrix}$이다.
그러므로 $\overrightarrow{A_s}=C_i^s\overrightarrow{A_i}$ 에서
$\overrightarrow{A_i} = C_s^i\overrightarrow{A_s} = [C_i^s]^{\small{-1}}\overrightarrow{A_s}= [C_i^s]^{\small{T}}\overrightarrow{A_s}$를 만족한다
이때 $[C_i^s]^{\small{-1}}=[C_i^s]^{\small{T}}$이므로 $[C_i^s][C_i^s]^{\small{T}}=\mathbf{I}$
$\therefore C_i^s$는 orthogonal matrix이다. 그러므로 아래와 같은 성질이 있다.
- elements of row and colume 의 norm 은 1이다.
$c_{11}^2+c_{12}^2+c_{13}^2=1$
- 서로 다른 두 row, colume 벡터의 내적은 0이다.
$c_{11}c_{21}+c_{12}c_{22}+c_{13}c_{23}=0$
- Each element of the matrix is equal to its minor
$ c_{12} = -\begin{vmatrix} c_{21}&c_{23} \\ c_{31}&c_{32} \end{vmatrix}$
i-frame, s-frame, t-frame 세개의 frame이 있다고 하자. i-frame에서 표현된 벡터를 t-frame으로 표현하고자 한다. 이때 i-frame 에서 t-frame으로 바로 변환하는 것과, s-frame을 거쳐 t-frame으로 변환하는것은 동일한 결과를 갖는다.
$$C_i^t = C_s^tC_i^s$$
마찬가지로 $C_i^t = C_b^pC_a^bC_i^a$라고 할 수 있다.
Single Axis Rotation
기준 좌표계의 한 축을 중심으로 회전하여 생성된 좌표계의 표현식이다.
- s-frame의 첫번째 축을 기준으로 $\phi$만큼 회전할 때의 DCM
$C_s^t=\begin{bmatrix} cos\alpha_{11}&cos\alpha_{21}&cos\alpha_{31} \\cos\alpha_{12}&cos\alpha_{22}&cos\alpha_{32} \\ cos\alpha_{13}&cos\alpha_{13}&cos\alpha_{13}\end{bmatrix} = \begin{bmatrix} 1&0&0 \\ 0&cos\phi&sin\phi \\ 0&-sin\phi&cos\phi\end{bmatrix} = R_1(\phi)$
- s-frame의 두번째 축을 기준으로 $\theta$만큼 회전할 때의 DCM
$C_s^t=\begin{bmatrix} cos\alpha_{11}&cos\alpha_{21}&cos\alpha_{31} \\cos\alpha_{12}&cos\alpha_{22}&cos\alpha_{32} \\ cos\alpha_{13}&cos\alpha_{13}&cos\alpha_{13}\end{bmatrix} = \begin{bmatrix} cos\theta&0&-sin\theta \\ 0&1&0 \\ sin\theta&0&cos\theta\end{bmatrix} = R_2(\theta)$
- s-frame의 세번째 축을 기준으로 $\psi$만큼 회전할 때의 DCM
$C_s^t=\begin{bmatrix} cos\alpha_{11}&cos\alpha_{21}&cos\alpha_{31} \\cos\alpha_{12}&cos\alpha_{22}&cos\alpha_{32} \\ cos\alpha_{13}&cos\alpha_{13}&cos\alpha_{13}\end{bmatrix} = \begin{bmatrix} cos\psi&sin\psi&0 \\ -sin\psi&cos\psi&0 \\ 0&0&1\end{bmatrix} = R_3(\psi)$
I-frame to e-frame
ECI frame에서 ECEF frame으로의 회전은 지구 자전으로 인한 회전과 동일하다. 지구 자전 각속도를 $\Omega_t$라고 하면 t초 후 $\Omega_t t$만큼 3축으로 회전하게 된다. 그러므로 DCM은 다음과 같다.
$$C_i^e = R_3(\Omega_t t) = \begin{bmatrix} cos(\Omega_t t) & sin(\Omega_t t) & 0 \\ -sin(\Omega_tt) & cos(\Omega_tt) & 0 \\ 0&0&1 \end{bmatrix}$$
e-frame to n-frame
ECEF frame에서 NEC frame으로의 회전은 3축으로 경도$(l)$만큼 회전한 후, 2축으로 -$($위도$(\lambda)$+90도$)$만큼 회전한 것과 같다.
$$C_e^n = R_2(-(\lambda+90))R_3(l)$$
$$R_3(l) = \begin{bmatrix} cos(l)&sin(l)&0 \\ -sin(l)&cos(l)&0 \\ 0&0&1 \end{bmatrix}$$
$$R_2(-(\lambda+90)) = \begin{bmatrix} cos(-(\lambda+90))&0&-sin(-(\lambda+90)) \\ 0&1&0 \\ sin(-(\lambda+90))&0&cos(-(\lambda+90))\end{bmatrix} = \begin{bmatrix} -sin(\lambda)&0&cos(\lambda) \\ 0&1&0\\-cos(\lambda)&0&-sin(\lambda)\end{bmatrix}$$
$$\therefore C_e^n = \begin{bmatrix} -sin(\lambda)&0&cos(\lambda) \\ 0&1&0\\-cos(\lambda)&0&-sin(\lambda)\end{bmatrix} \begin{bmatrix} cos(l)&sin(l)&0 \\ -sin(l)&cos(l)&0 \\ 0&0&1 \end{bmatrix} $$
$$= \begin{bmatrix}-sin(\lambda)cos(l)&-sin(\lambda)sin(l)&cos(\lambda) \\ -sin(l)&cos(l)&0 \\ -cos(\lambda)cos(l)&-cos(\lambda)sin(l)&-sin(\lambda) \end{bmatrix}$$
n-frame to b-frame
NED frame에서 body frame으로의 변환은 동체의 회전각만큼 회전한 것과 같다. 그런데 여기서 문제점이 있다.
그것은 동체의 회전을 어떻게 정의하는가에 따라 DCM이 다르다는 점이다. 동체의 회전을 3-2-1축 순서의 3-Axis Transformation으로 정의할 수 있고, 3-1-3축 순서의 2-Axis Transformation으로 정의할 수 있다. 심지어 축의 순서를 바꾸어 2-3-1, 3-2-3 회전으로 정의해도 된다. 즉 총 12$(=3*2*2)$가지의 방법으로 동체의 회전을 정의할 수 있다.
정의하는 방법은 자유지만, 편의를 위해 비행체의 제어 축과 일치시켜 회전을 정의하게 된다. 3,2,1축 제어기가 모두 있을 경우 3-2-1 또는 2-3-1 rotation을, 3,1축 제어기만 존재할 경우 3-1-3 rotation을 주로 사용한다.
Rotation 순서와 축이 다를 경우 DCM의형태는 다르게 도출된다. 그러나 고려할 점은, 두 DCM은 동일한 상태를 표현하는 식 이라는 것이다. 즉, 기호 형태는 달라도 각 축으로부터 정의한 회전 각을 대입할 경우 matrix는 동일해야 한다. 이를 이용하면 서로 다른 회전 정의로부터 측정된 각도를 계산할 수 있다.
3-2-1 Rotation라고 정의하면 다음과 같다.
$$C_n^b = R_1(\psi)R_2(\theta)R_3(\phi)$$
$$R_3(\phi) = \begin{bmatrix} cos(\psi)&sin(\psi)&0 \\ -sin(\psi)&cos(\psi)&0 \\ 0&0&1 \end{bmatrix}$$
$$R_2(\theta) = \begin{bmatrix} cos(\theta)&0&-sin(\theta) \\ 0&1&0 \\ sin(\theta)&0&cos(\theta)\end{bmatrix}$$
$$R_1(\psi) = \begin{bmatrix} 1&0&0 \\ 0&cos(\phi)&sin(\phi) \\ 0&-sin(\phi)&cos(\phi) \end{bmatrix}$$
$$\therefore C_n^b = \begin{bmatrix} c(\theta)c(\psi)&c(\theta)s(\psi)&-sin(\theta) \\ s(\phi)s(\theta)c(\psi)-c(\phi)s(\psi) & s(\phi)s(\theta)s(\psi)+c(\phi)c(\psi) & s(\phi)c(\theta) \\ c(\phi)s(\theta)c(\psi)+s(\phi)s(\psi) &c(\phi)s(\theta)s(\psi)-s(\phi)c(\psi)&c(\phi)c(\theta)\end{bmatrix}$$
Find $\phi, \; \theta, \; \psi$ from DCM
$C_n^b$를 통해 3-2-1 rotation에서 정의된 $\psi, \; \theta, \; \phi$를 구할 수 있다.
$$\begin{cases} \psi=tan^{-1}(\frac{C_{12}}{C_{11}}) \\ \phi=tan^{-1}(\frac{C_{23}}{C_{33}}) \\ \theta=-sin^{-1}(C_{13}) \end{cases} $$
이때 역 삼각함수의 특성상 $\psi, \; \theta \; \phi$가 존재하는 사분면을 정의해 주어야 한다.
Rate of Euler Angles
body-frame 에서 동체의 1,2,3축에 대한 각속도를 P,Q,R이라고 정의한다. 이는 위에서 언급한 $\phi, \; \theta, \; \psi$와는 확실히 다르다는 것을 이해해야 한다.
$\phi, \; \theta, \;psi$는 n-frame에서 b-frame으로 변환하는 과정에서 각 중간 단계 frame의 축을 기준으로 하는 회전 각도 이다. 3-d 공간에서 상상이 잘 안될 수 있다. 쉽게 생각하면, $\phi$는 n-frame에서 1번축에 대한 회전이고, $\theta$는 n-frame을 1번축으로 $\phi$만큼 회전한 frame의 2번축에 대한 회전이다. 마찬가지로 $\psi$는 n-frame을 1번축으로 $\phi$만큼 회전하고, 다시 그 frame의 2번축에 대하여 $\theta$만큼 회전한 frame의 3번 축에 대한 회전이다.
반면 P,Q,R은 b-frame의 1,2,3번축에 대한 회전 각속도를 의미한다. 그러므로 두 각은 서로 다른 기준으로부터 측정되었다는 것을 알 수 있다. 실제로 센서로부터 측정되는 값은 b-frame에서 측정하기 때문에 P,Q,R이다. P,Q,R 값을 $\dot{\phi},\; \dot{\theta}, \; \dot{\psi}$로 변환하여 수치 적분을 하면 $\phi, \; \theta, \; \psi$를 알 수 있다.
수식으로 나타내면 다음과 같다.
$$\begin{bmatrix} P\\Q\\R \end{bmatrix} = R_1(\phi)\begin{bmatrix} \dot{\phi}\\0\\0 \end{bmatrix} + R_1(\phi)R_2(\theta)\begin{bmatrix} 0\\ \dot{\theta}\\ 0 \end{bmatrix} + R_1(\phi)R_2(\theta)R_3(\psi)\begin{bmatrix}0\\0\\\dot{\psi} \end{bmatrix}$$
$$=\begin{bmatrix} 1\\0\\ 0 \end{bmatrix}\dot{\phi}+\begin{bmatrix} 0\\cos(\phi)\\-sin(\phi)\end{bmatrix}\dot{\theta}+\begin{bmatrix} -sin(\theta)\\sin(\phi)cos(\theta)\\cos(\phi)cos(\theta)\end{bmatrix}\dot{\psi}$$
$$=\begin{bmatrix} 1&0&-sin(\theta) \\ 0&cos(\phi)&sin(\phi)cos(\theta) \\ 0&-sin(\phi)&cos(\phi)cos(\theta) \end{bmatrix}\begin{bmatrix} \dot{\psi} \\ \dot{\theta} \\ \dot{\phi} \end{bmatrix}$$
and
$$\begin{bmatrix} \dot{\psi} \\ \dot{\theta} \\ \dot{\phi} \end{bmatrix}=\begin{bmatrix} 1&0&-sin(\theta) \\ 0&cos(\phi)&sin(\phi)cos(\theta) \\ 0&-sin(\phi)&cos(\phi)cos(\theta) \end{bmatrix}^{-1}\begin{bmatrix} P\\Q\\R \end{bmatrix}$$
이때 변환 Matrix는 DCM이 아님을 유의해야 한다. $\phi, \; \theta,\; \psi$성분이 좌표계를 이루고 있는 벡터$($오른손 좌표계를 따르는 벡터$)$가 아니므로 좌표계 변환 Matrix와는 성질이 다르다. 그러므로 이 변환 Matrix는 위에서 설명한 DCM Matirix의 성질을 갖지 않는다.