삼변측량 원리

GPS(Global Positioning System)의 측위 원리는 삼변측량(trilateration) 기술을 기반으로 한다. 삼변측량은 위성으로부터의 거리를 이용하여 수신기의 위치를 계산하는 방법이다. 이 원리를 이해하기 위해서는 먼저 각각의 위성으로부터 수신기까지의 거리를 계산하는 방법을 알아야 한다.

수신기가 GPS 위성으로부터 받는 신호에는 시간 정보가 포함되어 있다. 수신기는 이 정보를 바탕으로 신호가 전파된 시간을 계산하며, 이를 통해 위성과의 거리를 계산할 수 있다. 이때 거리는 아래의 식으로 계산된다.

d = c \cdot \Delta t

여기서, - d는 수신기와 위성 간의 거리 (미터) - c는 빛의 속도 (약 3 \times 10^8 m/s) - \Delta t는 신호의 전파 시간 (초)

수신기 위치 계산

수신기가 하나의 위성으로부터의 거리만 알고 있다면, 수신기의 위치는 그 위성으로부터의 반지름 d를 갖는 구면 상에 존재한다. 이 경우 수신기의 위치는 무한한 가능성을 갖는다. 하지만, 두 번째 위성으로부터의 거리도 알 수 있다면, 수신기는 두 구면의 교차점에 위치하게 된다. 세 번째 위성까지 추가하면, 수신기의 위치는 두 구의 교차 원과 세 번째 구의 교차점 두 곳 중 하나로 좁혀진다.

세 위성으로부터의 거리 정보만으로도 이론적으로는 수신기의 위치를 결정할 수 있으나, GPS에서는 네 번째 위성으로부터의 정보를 이용하여 수신기의 시계 오차를 보정한다. 이를 통해 위치를 더 정확하게 계산할 수 있다.

수신기 위치는 아래와 같은 방정식 시스템을 통해 구할 수 있다.

\begin{aligned} (x - x_1)^2 + (y - y_1)^2 + (z - z_1)^2 &= (c \cdot \Delta t_1)^2 \\ (x - x_2)^2 + (y - y_2)^2 + (z - z_2)^2 &= (c \cdot \Delta t_2)^2 \\ (x - x_3)^2 + (y - y_3)^2 + (z - z_3)^2 &= (c \cdot \Delta t_3)^2 \\ (x - x_4)^2 + (y - y_4)^2 + (z - z_4)^2 &= (c \cdot \Delta t_4)^2 \end{aligned}

여기서, - (x_1, y_1, z_1), (x_2, y_2, z_2), (x_3, y_3, z_3), (x_4, y_4, z_4)는 각각 네 위성의 좌표 - (x, y, z)는 수신기의 좌표 - \Delta t_1, \Delta t_2, \Delta t_3, \Delta t_4는 수신기와 각 위성 간의 신호 전파 시간

위의 비선형 방정식은 뉴턴-랩슨 방법과 같은 수치 해법을 통해 해결할 수 있다.

위성 좌표 계산

GPS 수신기는 네 개의 위성으로부터의 거리 정보를 바탕으로 자신의 위치를 계산하기 위해 먼저 각 위성의 위치를 정확히 알아야 한다. 위성은 매우 정확한 궤도를 따라 움직이며, 그 궤도 정보는 "방위각"과 "고도각"을 통해 전달된다. 이 궤도 정보는 GPS 위성으로부터 발송되는 메시지에 포함되어 있으며, 수신기는 이 메시지를 해석하여 위성의 정확한 위치를 파악한다.

각 위성의 위치는 천문학적 방정식을 이용해 계산된다. 위성의 궤도 요소는 다음과 같은 정보로 구성된다.

이들 요소를 바탕으로 위성의 위치를 계산하는 과정은 다소 복잡하지만, 수신기는 이러한 데이터를 사용하여 실시간으로 위성의 좌표를 추정한다.

오차 요인

GPS 측위에는 여러 가지 오차 요인이 존재한다. 대표적인 오차 요인으로는 다음이 있다.

1. 시계 오차

GPS 수신기에는 보통 저가형 시계가 탑재되어 있으며, 위성의 원자 시계에 비해 정확도가 떨어진다. 이로 인해 발생하는 시계 오차는 네 번째 위성으로부터의 신호를 통해 보정한다.

2. 전리층과 대류권 지연

GPS 신호가 지구 대기로 통과할 때 전리층과 대류권에서 지연이 발생한다. 이는 신호가 빛의 속도보다 느리게 전달되게 만드는 원인이다. 이러한 지연은 주파수에 따라 다르며, 이중 주파수 GPS 수신기를 사용하면 전리층 지연을 보정할 수 있다.

3. 다중 경로 효과

GPS 신호가 건물, 나무, 산 등의 물체에 반사되어 수신기로 도달하는 경우, 신호가 여러 경로를 통해 들어오게 되며, 이를 다중 경로 효과라고 한다. 다중 경로 신호는 GPS 측정의 정확도를 낮추는 주요 원인 중 하나이다.

4. 위성 궤도 오차

GPS 위성의 궤도는 매우 정확하게 유지되지만, 궤도 예측에 미세한 오차가 발생할 수 있다. 이 오차는 위성의 궤도 데이터를 통해 보정된다.

측위 방정식의 해결

GPS 측위 방정식을 푸는 방법은 기본적으로 위에서 언급한 비선형 방정식 시스템을 해결하는 것이다. 이 방정식을 효율적으로 해결하기 위해서는 일반적으로 수치 해법을 이용한다. 대표적인 해법으로는 뉴턴-랩슨 방법(Newton-Raphson Method)을 들 수 있다.

뉴턴-랩슨 방법은 다음과 같은 방식으로 작동한다.

  1. 임의의 초기 값을 설정한 후, 그 초기 값에서의 함수의 기울기(미분값)를 이용해 함수의 근을 점차적으로 근사한다.
  2. 각 반복 단계에서 새로운 추정치를 구하며, 이 과정은 수렴할 때까지 반복된다.

위의 GPS 측위 방정식에 뉴턴-랩슨 방법을 적용하면 다음과 같은 선형 시스템으로 표현할 수 있다.

\mathbf{J} \Delta \mathbf{p} = \mathbf{r}

여기서, - \mathbf{J}는 야코비 행렬 (Jacobian Matrix) - \Delta \mathbf{p}는 위치 수정 벡터 (correction vector for position) - \mathbf{r}는 잔여 벡터 (residual vector)

야코비 행렬 \mathbf{J}

GPS 측위 방정식을 선형화하기 위해 야코비 행렬 \mathbf{J}을 구성한다. 야코비 행렬은 각 위성으로부터 측정된 거리 방정식에 대해 미분하여 구해진다. 각 방정식에 대한 미분 값은 다음과 같다.

\mathbf{J} = \begin{bmatrix} \frac{\partial f_1}{\partial x} & \frac{\partial f_1}{\partial y} & \frac{\partial f_1}{\partial z} & \frac{\partial f_1}{\partial \Delta t} \\ \frac{\partial f_2}{\partial x} & \frac{\partial f_2}{\partial y} & \frac{\partial f_2}{\partial z} & \frac{\partial f_2}{\partial \Delta t} \\ \frac{\partial f_3}{\partial x} & \frac{\partial f_3}{\partial y} & \frac{\partial f_3}{\partial z} & \frac{\partial f_3}{\partial \Delta t} \\ \frac{\partial f_4}{\partial x} & \frac{\partial f_4}{\partial y} & \frac{\partial f_4}{\partial z} & \frac{\partial f_4}{\partial \Delta t} \end{bmatrix}

여기서, - 각 f_i는 해당 위성으로부터의 거리 방정식 - (x, y, z)는 수신기의 위치 - \Delta t는 수신기의 시계 오차

잔여 벡터 \mathbf{r}

잔여 벡터 \mathbf{r}는 각 위성으로부터 측정된 거리와 추정된 거리 사이의 차이를 나타낸다.

\mathbf{r} = \begin{bmatrix} d_1 - \hat{d}_1 \\ d_2 - \hat{d}_2 \\ d_3 - \hat{d}_3 \\ d_4 - \hat{d}_4 \end{bmatrix}

여기서, - d_i는 실제 위성으로부터 측정된 거리 - \hat{d}_i는 현재 위치 추정값을 기반으로 계산된 거리

이 방정식을 반복적으로 풀어가며 수신기의 위치와 시계 오차를 점차적으로 보정해 나간다.

확장 칼만 필터 적용

GPS와 같은 비선형 시스템에서는 칼만 필터 대신 확장 칼만 필터(Extended Kalman Filter, EKF)를 적용하는 것이 더 적합하다. 확장 칼만 필터는 시스템의 비선형성을 처리하기 위해 기존의 칼만 필터를 확장한 방식으로, 비선형 방정식을 선형화하여 처리한다.

확장 칼만 필터는 다음과 같은 두 가지 주요 단계로 구성된다:

  1. 예측 단계(Prediction Step): 이전 상태를 바탕으로 현재 상태를 예측한다.
  2. 갱신 단계(Update Step): 새로운 측정 값을 바탕으로 상태를 갱신한다.

확장 칼만 필터의 수식

  1. 예측 단계:
\hat{\mathbf{x}}_{k|k-1} = \mathbf{f}(\hat{\mathbf{x}}_{k-1|k-1}, \mathbf{u}_k)
\mathbf{P}_{k|k-1} = \mathbf{F}_k \mathbf{P}_{k-1|k-1} \mathbf{F}_k^\top + \mathbf{Q}_k

여기서, - \hat{\mathbf{x}}_{k|k-1}는 현재 상태의 예측값 - \mathbf{f}(\cdot)는 상태 전이 함수, GPS 시스템에서는 비선형 함수로 모델링됨 - \mathbf{F}_k는 상태 전이 함수의 야코비 (Jacobian) 행렬로, 다음과 같이 정의된다:

\mathbf{F}_k = \frac{\partial \mathbf{f}}{\partial \mathbf{x}} \bigg|_{\hat{\mathbf{x}}_{k-1|k-1}}
\mathbf{K}_k = \mathbf{P}_{k|k-1} \mathbf{H}_k^\top \left( \mathbf{H}_k \mathbf{P}_{k|k-1} \mathbf{H}_k^\top + \mathbf{R}_k \right)^{-1}
\hat{\mathbf{x}}_{k|k} = \hat{\mathbf{x}}_{k|k-1} + \mathbf{K}_k \left( \mathbf{z}_k - \mathbf{h}(\hat{\mathbf{x}}_{k|k-1}) \right)
\mathbf{P}_{k|k} = \left( \mathbf{I} - \mathbf{K}_k \mathbf{H}_k \right) \mathbf{P}_{k|k-1}

여기서, - \mathbf{K}_k는 칼만 이득 (Kalman Gain) - \mathbf{z}_k는 측정 값 - \mathbf{h}(\cdot)는 측정 함수, 비선형 측정 모델에 따라 정의됨 - \mathbf{H}_k는 측정 함수의 야코비 (Jacobian) 행렬로, 다음과 같이 정의된다:

\mathbf{H}_k = \frac{\partial \mathbf{h}}{\partial \mathbf{x}} \bigg|_{\hat{\mathbf{x}}_{k|k-1}}

확장 칼만 필터에서는 비선형성을 다루기 위해 각 상태와 측정 함수의 야코비 행렬을 계산하여 선형 근사를 사용한다. 이로 인해 시스템의 비선형성을 어느 정도 보정하면서도 상태와 오차를 추정할 수 있다.