위성 좌표와 시간

GLONASS(Global Navigation Satellite System)의 측위 원리는 GPS와 마찬가지로 위성에서 송신하는 신호를 기반으로 수신기가 자신의 위치를 계산하는 방식이다. 각 GLONASS 위성은 고유의 궤도에 따라 지구 주변을 공전하며, 정밀하게 관리되는 원자시계를 통해 송신 시각과 위성의 정확한 위치(궤도 정보)를 포함한 신호를 지상으로 전송한다.

위성에서 송신된 신호를 수신하면 수신기에서는 다음과 같은 기본 방정식을 통해 위성까지의 거리를 계산한다. 이 거리를 pseudo-range(가상 거리)라 하며, 수신기 시계 오차를 포함한 거리이다.

\rho_i = \sqrt{(x_i - x)^2 + (y_i - y)^2 + (z_i - z)^2} + c \cdot (t_r - t_s)

여기서: - \rho_ii번째 위성까지의 가상 거리, - (x_i, y_i, z_i)i번째 위성의 좌표, - (x, y, z)는 수신기의 미지의 좌표, - c는 빛의 속도, - t_r은 수신기의 수신 시간, - t_s는 위성의 송신 시간이다.

이 방정식은 위성 신호가 수신기에 도달하는 시간을 이용하여 거리를 계산하며, 위성의 위치 정보와 함께 수신기의 위치를 추정하는 데 사용된다.

삼변측량 기법

GLONASS에서의 위치 추정은 삼변측량(trilateration) 기법을 사용하여 이루어진다. 최소한 4개의 위성 신호가 필요하며, 3차원 공간에서 수신기의 위치를 계산하기 위해 다음과 같은 관계를 적용한다.

4개의 위성으로부터의 가상 거리를 계산하여 위치를 추정하는 과정에서 다음과 같은 비선형 방정식 시스템을 풀어야 한다:

\begin{aligned} \rho_1 &= \sqrt{(x_1 - x)^2 + (y_1 - y)^2 + (z_1 - z)^2} + b \\ \rho_2 &= \sqrt{(x_2 - x)^2 + (y_2 - y)^2 + (z_2 - z)^2} + b \\ \rho_3 &= \sqrt{(x_3 - x)^2 + (y_3 - y)^2 + (z_3 - z)^2} + b \\ \rho_4 &= \sqrt{(x_4 - x)^2 + (y_4 - y)^2 + (z_4 - z)^2} + b \end{aligned}

여기서: - \mathbf{x} = (x, y, z)는 수신기의 위치 벡터, - \mathbf{x_i} = (x_i, y_i, z_i)i번째 위성의 위치 벡터, - \rho_ii번째 위성까지의 가상 거리, - b는 수신기의 시계 오차에 따른 보정값이다.

이 시스템을 풀면 수신기의 좌표 \mathbf{x}와 시계 오차 b를 동시에 구할 수 있다.

확장 칼만 필터(EKF)의 적용

GLONASS 측위에서는 삼변측량에 기반한 선형화가 어렵기 때문에 확장 칼만 필터(Extended Kalman Filter, EKF)를 자주 사용한다. EKF는 비선형 시스템에 대한 상태 추정을 위한 필터링 알고리즘으로, 다음과 같은 단계로 이루어진다.

  1. 상태 예측 단계: 이전 시간에 추정된 위치와 속도를 바탕으로 새로운 위치와 속도를 예측한다.
  2. 측정 업데이트 단계: 위성으로부터 수신된 새로운 측정 값을 이용해 상태 추정값을 업데이트한다.

확장 칼만 필터의 예측 과정은 다음과 같이 표현할 수 있다.

\mathbf{x}_{k+1} = f(\mathbf{x}_k, \mathbf{u}_k) + \mathbf{w}_k

여기서: - \mathbf{x}_kk번째 시간의 상태 벡터(위치 및 속도 등), - \mathbf{u}_k는 제어 입력(가속도 등), - \mathbf{w}_k는 시스템 노이즈 벡터이다.

측정 업데이트 과정은 다음과 같이 이루어진다:

\mathbf{z}_k = h(\mathbf{x}_k) + \mathbf{v}_k

여기서: - \mathbf{z}_k는 측정된 벡터(위성으로부터의 가상 거리 등), - \mathbf{v}_k는 측정 잡음 벡터이다.

칼만 이득 \mathbf{K}_k는 예측과 측정의 가중치를 계산하는데 사용된다:

\mathbf{K}_k = \mathbf{P}_k \mathbf{H}_k^T (\mathbf{H}_k \mathbf{P}_k \mathbf{H}_k^T + \mathbf{R}_k)^{-1}

여기서: - \mathbf{P}_k는 오차 공분산 행렬, - \mathbf{H}_k는 측정 행렬, - \mathbf{R}_k는 측정 잡음 공분산 행렬이다.

확장 칼만 필터(EKF) 과정의 자세한 설명

칼만 이득을 구한 후, 상태 벡터와 오차 공분산 행렬을 업데이트한다. 상태 벡터의 업데이트는 다음과 같다:

\mathbf{x}_k = \mathbf{x}_k + \mathbf{K}_k (\mathbf{z}_k - h(\mathbf{x}_k))

여기서: - \mathbf{x}_k는 업데이트된 상태 벡터, - \mathbf{z}_k - h(\mathbf{x}_k)는 예측된 측정과 실제 측정의 차이인 잔차(innovation)이다.

오차 공분산 행렬은 다음과 같이 업데이트된다:

\mathbf{P}_k = (\mathbf{I} - \mathbf{K}_k \mathbf{H}_k) \mathbf{P}_k

이때: - \mathbf{P}_k는 상태 추정의 오차 공분산을 나타낸다. 이는 필터가 얼마나 신뢰할 수 있는지를 보여주는 값이다. - \mathbf{I}는 항등 행렬(identity matrix)이다.

이 과정을 반복하여 수신기 위치와 속도의 추정값을 계속 업데이트하게 된다.

GLONASS의 시각 보정

GLONASS의 또 다른 중요한 특징은 각 위성의 시각이 미세하게 다를 수 있기 때문에, 수신기는 각 위성의 시각 차이를 보정해야 한다. 이러한 시각 보정을 통해 보다 정확한 측위를 할 수 있으며, 이를 위해 다양한 보정 인자를 사용한다.

시각 보정은 일반적으로 다음과 같은 형태로 이루어진다:

t_{\text{corr}} = t_{\text{raw}} + \Delta t

여기서: - t_{\text{corr}}는 보정된 시각, - t_{\text{raw}}는 원래의 수신된 시각, - \Delta t는 위성 시계의 오차로 인해 적용해야 할 보정값이다.

GLONASS 시스템에서는 위성의 시계 오차뿐만 아니라 수신기 자체의 시계 오차도 고려해야 한다. 따라서, 수신기의 위치를 정확히 계산하기 위해서는 수신기 시계와 각 위성 시계 간의 차이를 보정해야 한다.

오차 요인 및 보정

GLONASS의 측위 정확도는 다양한 오차 요인에 의해 영향을 받을 수 있다. 이러한 오차는 크게 세 가지로 분류할 수 있다:

  1. 위성 궤도 오차: 위성의 실제 궤도와 예측된 궤도 간의 차이에서 발생하는 오차.
  2. 위성 시계 오차: 위성 시계의 오차로 인해 수신기에서 잘못된 시각을 기반으로 위치를 계산하게 되는 문제.
  3. 전리층 및 대기권 오차: 신호가 대기권과 전리층을 통과하면서 굴절되거나 지연되는 현상으로 인해 발생하는 오차.

이를 보정하기 위해 GLONASS는 다양한 보정 모델과 알고리즘을 사용한다. 대표적으로 전리층 및 대기권의 굴절과 지연을 보정하기 위한 모델이 사용되며, 다중 경로 문제를 해결하기 위한 기술도 적용된다. 또한, 차분 GPS(DGPS)와 같은 보정 시스템을 활용하여 오차를 최소화할 수 있다.

다음 다이어그램은 오차 요인을 시각적으로 표현한 것이다:

graph LR A[위성 궤도 오차] --> B[수신기 오차] A --> C[측위 정확도 저하] D[전리층 오차] --> B E[대기권 오차] --> B F[위성 시계 오차] --> C B --> C

수신기 측정 및 데이터 처리

GLONASS 신호가 수신기에 도달하면, 수신기는 이를 분석하여 신호의 도착 시간을 기반으로 거리를 계산하고, 앞서 언급한 방식으로 자신의 위치를 추정한다. 수신기는 각 위성의 신호를 분석하여 시각 및 위치 정보를 해독하며, 이를 바탕으로 삼변측량을 통해 위치를 결정하게 된다.

특히 수신기는 각 위성으로부터 다수의 주파수 대역에서 신호를 수신하며, 이를 이용하여 전리층 및 대기권에 의한 신호 지연을 보정할 수 있다. 이 과정에서 수신기가 처리하는 데이터는 매우 방대하며, 정밀한 처리 알고리즘이 필요하다. 이를 위해 고성능의 프로세서와 정밀한 필터링 알고리즘이 수신기 내부에서 동작한다.