1Department of Electronics Engineering, Chungnam National University, Daejeon 34134, South Korea
2Department of Intelligent System and Robotics, Chungbuk National University, Chungcheongbuk-do 28644, South Korea
3Korea Aerospace Research Institute, Daejeon 34133, South Korea 34133, Korea
4Satellite Systems Laboratory, LIG Nex1, Seongnam 13449, South Korea
†Corresponding Author: JunMin Park, E-mail: jm_park@cnu.ac.kr
Citation: Jeong, J., Ku, J., Park, C., Park, J.-Y., Ko, Y. H., et al. 2025, Prediction Method of Zenith Wet Tropospheric Delay with LSTM Model, Journal of Positioning, Navigation, and Timing, 14, 405-412.
Journal of Positioning, Navigation, and Timing (J Position Navig Timing) 2025 December, Volume 14, Issue 4, pages 405-412. https://doi.org/10.11003/JPNT.2025.14.4.405
Received on Nov 11, 2025, Revised on Nov 21, 2025, Accepted on Nov 27, 2025, Published on Dec 15, 2025.
Copyright © The Institute of Positioning, Navigation, and Timing
License: Creative Commons Attribution Non-Commercial License (https://creativecommons.org/licenses/by-nc/4.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
Monitoring the integrity of global navigation satellite systems is important to continuously and stably operate their navigation systems. KF-RAIM has been developed to guarantee the integrity of high-precision navigation solutions such as PPP. This paper presents a KF-RAIM algorithm with an OpenMP-based parallel structure. Compare with the serial structure, the proposed structure provides the same protection levels and thresholds while reducing the KF-RAIM execution time. The use of a look-up table can further decrease the execution time with only centimeter-level differences in the protection level. The simulation results validate the effectiveness of the proposed structure in the view of the computation time.
KF-RAIM, parallel processing, OpenMP, look-up table
Global Navigation Satellite System (GNSS)은 여러 국가와 지역에서 구축한 위성 항법 시스템을 포함하는 개념으로, 위성 신호를 이용해 사용자에게 위치 및 시각 정보 등을 제공하는 시스템이다. GNSS는 미국의 Global Positioning System (GPS), 러시아의 GLObal NAvigation Satellite System (GLONASS), 유럽 연합의 Galileo, 중국의 BeiDou를 포함하며, 교통, 국방, 측지/측량 및 인명 구조 등 다양한 분야에서 활용되고 있다. GNSS의 활용 범위가 사용자의 안전과 직결된 분야로 확대되면서, GNSS의 항법해를 얼마나 신뢰할 수 있는지를 나타내는 척도인 무결성의 보장이 중요한 과제가 되었다 (Teunissen & Montenbruck 2017).
GNSS의 무결성을 보장하기 위한 방법은 감지된 오류를 사용자에게 제공하는 주체에 따라 크게 Satellite Based Augmentation System, Ground Based Augmentation System, Aircraft Based Augmentation System (ABAS)로 나눌 수 있다 (Lee 1986, Parkinson & Axelrad 1988, Sturza 1988, Walter 2017, Pullen 2017). 이 중 ABAS의 한 종류인 Receiver Autonomous Integrity Monitoring (RAIM)은 추가 인프라 없이 수신기 단독으로 무결성을 감시하는 기법으로 현재까지 많이 연구되고 있다 (Lee 1986, Parkinson & Axelrad 1988, Sturza 1988, Brenner 1996, Joerger et al. 2014, Joerger & Pervan 2016, Gunning et al. 2018, Meng & Hsu 2020, Bhattacharyya & Mute 2020, Wang et al. 2023).
초기 RAIM은 range domain에서 표현되는 측정치의 잔차로부터 검정 통계량을 구하고 오류를 감지하는 Residual Based RAIM (RB-RAIM)이 먼저 연구되었다. RB-RAIM의 대표적인 연구 결과로는 Lee (1986)의 Range Comparison Method, Parkinson & Axelrad (1988)의 Least-Squares Residual Method, Sturza (1988)의 Parity Space Method 등이 있다. 그러나, 무결성 성능 지표는 position domain에서 정의되기에 기존의 RB-RAIM은 range domain의 결과를 position domain으로 변환하는 과정이 필요하고, 이때 보수적인 가정을 사용한다 (Brenner 1996, Joerger et al. 2014, Joerger & Pervan 2016, U.S. DoD 2020, ESA 2021). 이러한 보수적인 변환 과정으로 발생하는 문제를 해결하기 위해, position domain에서 고장 가설에 따라 가시위성을 달리 적용하여 무결성을 감지하는 Solution Separation RAIM (SS-RAIM)에 관한 연구가 발전하였다 (Brenner 1996, Blanch et al. 2012, Joerger et al. 2014, Joerger & Pervan 2016).
위의 연구들의 활용되는 항법해는 GNSS의 코드 측정치를 사용하여 Weighted Least-Squares를 기반으로 사용자의 위치 및 시각 정보 등을 추정하는 Single Point Positioning을 사용하였다. 고정밀 항법해를 제공하기 위해 꾸준한 연구가 진행되어, 반송파 측정치와 Kalman Filter (KF)를 활용하는 Precise Point Positioning (PPP)이 제안되었다. 동시에 PPP의 무결성을 감시하기 위한 추가적인 연구들이 진행되었으며, 최근 기존의 SS-RAIM을 확장한 KF based SS-RAIM (KF-RAIM)에 관한 연구가 진행되고 있다 (Gunning et al. 2018, Meng & Hsu 2020, Bhattacharyya & Mute 2020, Wang et al. 2023).
KF-RAIM은 고정밀 고신뢰 항법해를 제공하지만, 감시할 수 있는 모든 고장 가설에 대한 항법해를 계산해야 하고 항법해 계산에는 KF를 사용하기 때문에 처리 시간이 길다는 문제점이 있다. 최근에는 센티미터 급 고정밀 고신뢰 항법해 제공을 위해서, 추가 GNSS 위성군이나 Regional Navigation Satellite System (RNSS)을 보강하여 사용한다. 이 경우, 고장 가설 조합의 수가 크게 증가하기 때문에 RAIM의 계산시간 관점에서 이를 해결하기 위한 방안의 마련이 필수적이다. 이를 해결하기 위한 선행 연구에서는 수식을 근사하고 상한값을 사용하여 계산량을 경감하는 방법을 사용했다 (Gunning et al. 2018, Meng & Hsu 2020, Bhattacharyya & Mute 2020, Wang et al. 2023). 최근, 항법해 계산 관점에서 동일한 계산량 하에 병렬 처리 방식을 도입하여 처리 시간을 단축한 연구는 있었다 (Choi et al. 2023). 그러나 RAIM 관점에서 병렬 처리 방식을 활용한 연구는 없다. 그렇기에 계속해서 증가하는 처리 능력의 요구치에 부합하기 위해 RAIM의 병렬 처리 방안을 검토할 필요가 있다.
본 논문에서는 KF-RAIM의 관점에서 병렬 처리 방식을 도입해 처리 시간을 단축한 결과를 제시하였다. 제안한 방식은 고장 가설의 수가 증가함에 따라 처리 시간이 길어지는 점에서, 고장 가설 간 독립적으로 계산 가능한 작업을 병렬 구조로 분리하여 처리하였다. 구체적으로 고장 가설마다 계산해야 하는 검정 통계량, threshold 및 protection level (PL)의 최댓값과 최솟값 계산을 병렬 처리하였고, 이진 탐색 알고리즘을 이용한 PL의 계산은 순차 처리하였다. 고장 가설에 대한 병렬 처리를 위해 공유 메모리 병렬 처리 프로그래밍 API인 OpenMP를 사용하였다. 추가적인 계산량 감소를 위해서 표준 가우시안 분포의 꼬리 분포 함수와 그 역함수에 대해 Look-Up Table (LUT)을 사용하였다. 시뮬레이션은 상시 관측소에서 제공하는 GPS L1/L2 측정치를 Ionosphere-Free (IF) 측정 모델에 적용하였다. 시뮬레이션 결과를 통해서 제안하는 병렬 처리 구조가 순차 처리 구조 대비 처리 시간이 더 짧음을 보였다. 본 논문의 구성은 2장에는 KF-RAIM의 수식을 정리하였고, 3장에는 KF-RAIM의 병렬 처리 방안을 나타냈다. 그리고 4장에는 시뮬레이션 결과를 보였고, 5장은 결론으로 구성하였다.
PPP가 측위 기법으로 KF를 사용한다면, 무결성 보장을 위한 수단으로 KF-RAIM을 적용할 수 있다. Fig. 1은 PPP 및 KF-RAIM의 알고리즘 동작 순서를 나타낸 것이다. Fig. 1을 이해하기 위해 필요한 KF-RAIM의 수식을 정리한다.
Fig. 1. Sequence of the PPP and KF-RAIM.
KF를 사용하기 위해서 Eqs. (1, 2)와 같은 프로세스 모델 및 선형화한 측정 모델을 고려한다.
$$\mathbf{x}_{k+1} = \mathbf{F}_k \mathbf{x}_k + \mathbf{w}_k, \quad \mathbf{w}_k \sim \mathcal{N}(\mathbf{0}, \mathbf{Q}_k),$$
$$\mathbf{y}_k = \mathbf{H}_k \mathbf{x}_k + \mathbf{v}_k, \quad \mathbf{v}_k \sim \mathcal{N}(\mathbf{0}, \mathbf{R}_k).$$
여기서, 아래 첨자 $k$는 시간 인덱스, $\mathbf{x}$는 상태 벡터, $\mathbf{F}$는 상태 천이 행렬, $\mathbf{w}$와 $\mathbf{Q}$는 각각 프로세스 잡음 벡터 및 공분산 행렬, $\mathbf{y}$는 측정 벡터, $\mathbf{H}$는 관측 행렬, $\mathbf{v}$와 $\mathbf{R}$은 각각 측정 잡음 벡터 및 공분산 행렬을 나타낸다. 그리고 $N(\mathbf{\mu}, \mathbf{\Sigma})$는 평균 벡터가 $\mathbf{\mu}$이고 공분산 행렬이 $\mathbf{\Sigma}$인 가우시안 분포를 나타낸다.
KF는 재귀적으로 동작하므로, 초기 상태 추정치 $\hat{\mathbf{x}}_{0|0}$와 초기 오차 공분산 행렬 $\mathbf{P}_{0|0}$가 필요하다. KF의 time update는 Eqs. (3, 4)와 같이 진행된다.
$$\hat{\mathbf{x}}_{k|k-1} = \mathbf{F}_k \hat{\mathbf{x}}_{k-1|k-1},$$
$$\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{P}_{k|k-1}$을 사전 오차 공분산 행렬이라고 한다. KF의 measurement update는 Eqs. (5-7)과 같이 수행된다.
$$\mathbf{K}_k = \mathbf{P}_{k|k-1} \mathbf{H}_k^\top (\mathbf{H}_k \mathbf{P}_{k|k-1} \mathbf{H}_k^\top + \mathbf{R}_k)^{-1},$$
$$\hat{\mathbf{x}}_{k|k} = \hat{\mathbf{x}}_{k|k-1} + \mathbf{K}_k (\mathbf{y}_k – h(\hat{\mathbf{x}}_{k|k-1})),$$
$$\mathbf{P}_{k|k} = (\mathbf{I} – \mathbf{K}_k \mathbf{H}_k) \mathbf{P}_{k|k-1}.$$
여기서 $\hat{\mathbf{x}}_{k|k}$를 사후 상태 추정치, $\mathbf{P}_{k|k}$를 사후 오차 공분산 행렬이라고 한다. $\mathbf{K}$는 Kalman gain이고, $h(\cdot)$는 비선형 관측 함수이다. Eq. (2)의 관측 행렬 $\text{H}$는 비선형 관측 함수 $h(\cdot)$의 자코비안 행렬이다.
Eq. (6)과 같이 모든 측정치를 사용하여 구한 상태 추정치를 “all-in-view solution”이라고 하고, 고장 가설에 따라 선택된 측정치만으로 얻은 상태 추정치를 “subset solution”이라고 한다. 고장 가설이란 가시 위성 집합 중 일부가 고장이라고 명시한 가설의 집합이며, 고장 가설에 대응하는 측정치란 모든 측정치 중에서 가설에 따라 정상 위성의 측정치만을 남긴 것이다. 고장 가설에 따른 measurement update는 Eqs. (8-10)과 같이 진행된다.
$$\mathbf{K}_k^{(i)} = \mathbf{P}_{k|k-1} \mathbf{H}_k^{(i)\top} \left( \mathbf{H}_k^{(i)} \mathbf{P}_{k|k-1} \mathbf{H}_k^{(i)\top} + \mathbf{R}_k^{(i)} \right)^{-1},$$
$$\hat{\mathbf{x}}_{k|k}^{(i)} = \hat{\mathbf{x}}_{k|k-1} + \mathbf{K}_k^{(i)} \left( \mathbf{y}_k^{(i)} – h(\hat{\mathbf{x}}_{k|k-1}) \right),$$
$$\mathbf{P}_{k|k}^{(i)} = \left( \mathbf{I} – \mathbf{K}_k^{(i)} \mathbf{H}_k^{(i)} \right) \mathbf{P}_{k|k-1}.$$
여기서 위 첨자 $(i)$는 고장 가설 인덱스이다. $i=0$일 때를 관례상 all-in-view 가설이라고 정의한다. Time update의 결과는 측정치와 관계가 없으므로 Eqs. (3, 4)의 결과를 사용하지만, measurement update의 결과는 고장 가설에 따라 측정치 $\mathbf{y}$, 관측 행렬 $\mathbf{H}$, 측정 잡음 공분산 행렬 $\mathbf{R}$, Kalman gain $\mathbf{K}$가 변하므로 Eqs. (9, 10)과 같이 새로 계산해야 함을 알 수 있다. 여기서 Eq. (9)가 subset solution을 의미한다.
KF-RAIM이 무결성을 감시하기 위한 검정 통계량을 “solution separations”라고 하며, Eq. (11)과 같이 all-in-view solution과 subset solution의 차이로부터 정의할 수 있다.
$$\Delta x_{k,q}^{(i)} := \left| x_{k,q}^{(i)} – x_{k,q}^{(0)} \right|$$
여기서 아래 첨자 $q$는 위치해 인덱스이다. 임의의 위치해 인덱스 $q$에 대한 solution separation의 분산은 Eq. (12)와 같이 계산한다.
$$(\Delta \sigma_{k,q}^{(i)})^2 = (\sigma_{k,q}^{(i)})^2 – (\sigma_{k,q}^{(0)})^2$$
여기서 $(\sigma_{k,q}^{(0)})^2$은 Eq. (7)에 나타낸 all-in-view solution의 사후 오차 공분산 행렬 $\mathbf{P}_{k|k}^{(0)}$에서 $q$번째 행, $q$번째 열의 원소이고, $(\sigma_{k,q}^{(i)})^2$은 Eq. (10)에 나타낸 subset solution의 사후 오차 공분산 행렬 $\mathbf{P}_{k|k}^{(i)}$에서 $q$번째 행, $q$번째 열의 원소임을 나타낸다.
KF-RAIM이 계산한 검정 통계량으로부터 고장 유무를 결정하는 한계치를 “threshold”라고 하며, 본 연구에서는 Blanch et al. (2012)의 연구를 참조하여 Eq. (13)과 같이 계산한 값을 사용한다.
$$T_{k,q}^{(i)} = \bar{\Phi}^{-1} \left( \frac{\Pr\{FA_q\}}{2h} \right) \Delta \sigma_{k,q}^{(i)}$$
여기서 $\bar{\Phi}(\cdot)$는 표준 가우시안 분포의 꼬리 분포 함수이고, $h$는 고장 가설의 수이며, $FA_q$는 위치해 인덱스 $q$에서 실제 위치 오차는 허용 한계 내에 있지만, 검정 통계량은 기준치를 넘어서 고장으로 판단하는 사건을 의미한다. KF-RAIM은 Eq. (11)에 나타낸 solution separation $\Delta x_{k,q}^{(i)}$가 Eq. (13)에 나타낸 threshold $T_{k,q}^{(i)}$보다 크면 고장으로 판단한다.
PL은 위치해가 요구 무결성 위험 한도 이하가 되도록 설정되는 통계적 오차의 상한이다. 실제 위치 오차가 PL을 초과하면서도 고장을 검출하지 못한 사건 (HMI)이 발생할 확률이 시스템이 규정한 무결성 위협 확률을 넘지 않도록 PL을 정의한다. 각각의 무결성 위협 확률은 Eq. (14)와 같이 나타낼 수 있다.
$$\Pr\{HMI_q\}(1 – \Pr\{NM\}) \geq \sum_{i=0}^h \Pr\left\{ |PE_{k,q}| > PL_{k,q} \cap |\Delta x_{k,q}^{(i)}| < T_{k,q}^{(i)} \big| \mathcal{H}^{(i)} \right\} \Pr\{\mathcal{H}^{(i)}\}.$$
여기서 $HMI_q$는 위치해 인덱스 $q$에 대한 HMI 사건, $NM$은 시스템이 감지할 수 없는 사건을 나타낸다. 그리고 $PE_{k,q}$는 위치해 인덱스 $q$의 실제 위치 오차, $PL_{k,q}$는 위치해 인덱스 $q$의 PL, $\mathcal{H}^{(i)}$는 $i$번째 고장 가설을 의미한다. 시스템이 규정한 무결성 위협 확률은 위치해의 수평축과 수직축에 대해 달리 설정할 수 있고, 수평축과 수직축에 대해 구한 PL을 각각 Horizontal PL (HPL)과 Vertical PL (VPL)로 정의한다.
본 연구에서는 Blanch et al. (2012)의 연구를 참고하여 Eq. (14)를 Eq. (15)와 같이 근사한 모델에 대해 이진 탐색 알고리즘으로 PL을 계산했다.
$$\Pr\{HMI_q\}(1 – \Pr\{NM\}) = 2\bar{\Phi}\left( \frac{PL_{k,q}}{\sigma_{k,q}^{(0)}} \right) + \sum_{i=1}^h \bar{\Phi}\left( \frac{PL_{k,q} – T_{k,q}^{(i)}}{\sigma_{k,q}^{(i)}} \right).$$
HPL과 VPL은 각각 Eqs. (16, 17)과 같이 구해진다.
$$HPL_k = \sqrt{PL_{k,(q=1)}^2 + PL_{k,(q=2)}^2}$$
$$VPL_k = PL_{k,(q=3)}$$
여기서 $q=1,2,3$은 각각 NED 좌표축의 N, E, D에 해당한다.
순차 처리 구조의 KF-RAIM은 Fig. 2에서 확인할 수 있다. 먼저 all-in-view solution을 계산한 후, 고장 가설 1 ~ $h$에 대해 subset solution 산출, solution separation 계산, threshold 결정, PL 산정의 과정을 순차적으로 수행한다. 가시 위성 수가 증가할수록 고장 가설 조합의 수가 급격히 증가하므로 순차 처리 방식을 통해 처리 시간을 줄이는데 한계가 있다. 본 논문에서는 Fig. 3에 나타낸 OpenMP를 이용한 KF-RAIM의 병렬 처리 방식을 제안한다.
Fig. 2. Sequential structure of the PPP and KF-RAIM.
Fig. 3. Parallel structure of the PPP and KF-RAIM.
Fig. 3의 “KF-RAIM (A)”는 제안하는 KF-RAIM의 구조에서 병렬 처리하는 영역이고, “KF-RAIM (B)”는 순차 처리하는 영역이며, “ith hyp.”는 i번째 고장 가설을 의미한다. 본 논문에서 제안하는 KF-RAIM의 구조는 (A) 영역의 subset solution, solution separation, threshold 그리고 가설 별 최대/최소 PL의 계산을 고장 가설에 따라서 병렬 처리하고, (B) 영역의 이진 탐색 알고리즘을 이용한 최종 PL의 계산을 순차 처리하는 구조다.
OpenMP를 이용한 병렬화의 조건은 크게 두 가지가 있다. 첫째는 병렬 처리할 알고리즘이 서로 독립적이어야 한다는 것이고, 둘째는 병렬 처리할 알고리즘의 처리 시간이 충분히 길어야 한다는 것이다. 이는 병렬화에 스레드 생성, 동기화, 메모리 배치 등의 고정 오버헤드가 수반되므로, 병렬 처리할 작업의 처리 시간이 충분히 길지 않다면 처리 시간의 감소 폭이 제한되거나 반대로 처리 시간이 증가할 수 있기 때문이다. (A) 영역에서 계산하는 것들은 Eqs. (8-13)과 같이 고장 가설에 독립적이고, subset solution의 산출에는 역행렬 계산이 포함되어 처리 시간이 길다. 이를 통해 (A) 영역의 작업들은 고장 가설에 따라 병렬로 처리하였을 때, 처리 시간이 감소할 가능성이 있음을 알 수 있다.
(B) 영역에는 이진 탐색을 이용한 PL 산정 알고리즘이 있다. Eq. (15)의 우변에서 각 고장 가설이 기여하는 무결성 위협 확률을 계산하는 항이 고장 가설에 따라 병렬로 처리 가능하나, 처리시간이 짧다. 그러므로 (B) 영역의 작업은 고장 가설에 따라 병렬로 처리하였을 때, 처리 시간의 감소가 미미하거나, 병렬처리를 위한 오버헤드로 인하여 처리시간이 증가할 수도 있다.
본 논문에서는 Fig. 3의 (A) 영역만 병렬 처리한 제안하는 구조와, (A)와 (B) 영역을 병렬 처리한 것의 처리 시간을 비교하여 제안하는 구조의 타당성을 보인다. Fig. 3의 (A) 영역은 고장 가설에 따라 subset solution, solution separation, threshold, PL의 최댓값과 최솟값을 계산하는 부분을 병렬 처리했고, Fig. 3의 (B) 영역은 각 고장 가설이 기여하는 무결성 위협 확률을 계산하는 부분을 병렬 처리했다.
본 논문에서는 KF-RAIM의 처리 시간을 경감하기 위한 수단으로, $\bar{Φ}(\cdot)$ 및 $\bar{Φ}^{-1}(\cdot)$의 LUT를 작성하여 사용하였다. $\bar{Φ}(\cdot)$는 0부터 10까지 선형 스케일에서 500 등분하였고, $\bar{Φ}^{-1}(\cdot)$는 1e-16부터 0.5까지 로그 스케일에서 500 등분하였다. 값은 소수점 열째 자리까지 저장하여 사용하였다.
3장에서 제시한 병렬 처리 방안의 효용성을 확인하기 위해 다음과 같은 구조의 KF-RAIM들의 처리 시간을 비교한다: (i) Fig. 2의 순차 처리 KF-RAIM, (ii) Fig. 3의 (A) 영역 병렬 처리 KF-RAIM, (iii) Fig. 3의 (A), (B) 영역 병렬 처리 KF-RAIM. 처리 시간은 KF-RAIM을 수행하는데 걸리는 시간만을 측정하였다. 시뮬레이션을 위한 측정치 파일로 일본의 Shintotsukawa에 위치한 관측소(STK200JPN)에서 수집한 2022년 11월 8일 18:00:00~18:59:59 구간에 해당하는 1초 간격의 GPS L1, L2 RINEX 파일을 사용하였다. 보정 정보는 JAXA에서 제공하는 precise orbit/clock data, Earth rotation parameter, differential code bias를 사용했고, GPS L1/L2 측정치에 IF 선형 조합을 적용하여 전리층 지연으로 인한 오차의 1차항을 보정했다. 그리고 상태 변수로서 수신기의 위치, 속도, 가속도, 시계 오차, zenith tropospheric wet delay, float ambiguity를 추정하였으며, PVA 모델을 적용했다.
Elevation mask angle을 15°로 설정하여 항법을 수행한 결과, 가시 위성 수는 7-8개로 관측되었다. 고장 가설은 GPS 위성의 단일 고장만을 고려했고, 각 위성 별 단일 고장 가설을 독립적으로 병렬 처리하여 처리 시간을 평가했다. 무결성 감시를 위한 파라미터는 Gunning et al. (2018)의 연구를 참조하여 설정했고, 항법 시스템의 가용성을 판단하기 위해 PL과 비교되는 성능 지표인 Alert Limit (AL)은 LPV-200에 따라 HAL로 정의되는 수평축의 AL을 40 m, VAL로 정의되는 수직축의 AL을 35 m로 설정했다. PPP는 MATLAB으로 구현하였고, KF-RAIM은 C++로 구현하여 MEX로 컴파일해 MATLAB 내부에서 호출 및 실행하였다. PPP 및 KF-RAIM의 운용 환경은 Table 1에 나타냈다.
Table 1. Environment of system running PPP and KF-RAIM.
| CPU | AMD Ryzen 9 7900 12-Core Processor |
| GPU | DDR5 16 GB |
| IDE | Visual studio 2022 |
KF-RAIM의 처리 시간을 비교한 결과는 가시 위성 수에 따라 Tables 2-4에 제시하였다. Tables 2, 3에서 LUT와 Exact의 의미는 각각 PL의 계산에 3.2절의 LUT를 사용한 것과 직접 계산한 함수를 사용한 것을 의미한다. Tables 2, 3에 $\tau_1, \tau_2, \tau_3, \tau_{epoch}$를 제시했고, Table 4에 $\tau_{total}$을 정리했다. Tables 2, 3의 $\tau_1, \tau_2, \tau_3$는 각각 Fig. 3에서 (A) 영역의 처리 시간의 평균, (B) 영역에서 “Get min/max protection level (all hyp.)”의 처리 시간의 평균, (B) 영역에서 “Get final protection level”의 처리 시간의 평균을 의미한다. Tables 2, 3의 $\tau_{epoch}$은 KF-RAIM의 한 에폭마다 소요되는 처리 시간의 평균이다. Table 4의 $\tau_{total}$은 시뮬레이션에서 KF-RAIM을 수행하는데 소요된 총 시간이다.
Table 2. Execution time comparison for KF-RAIM (7 visible satellites) [μs].
| Structure | (i)+LUT | (ii)+LUT | (iii)+LUT | (ii)+Exact |
|---|---|---|---|---|
| τ1 | 70.838 | 22.609 | 22.745 | 23.205 |
| τ2 | 0.194 | 0.224 | 0.236 | 0.232 |
| τ3 | 1.869 | 1.935 | 10.323 | 4.244 |
| τepoch | 72.901 | 24.930 | 33.304 | 27.681 |
Table 3. Execution time comparison for KF-RAIM (8 visible satellites) [μs].
| Structure | (i)+LUT | (ii)+LUT | (iii)+LUT | (ii)+Exact |
|---|---|---|---|---|
| τ1 | 100.057 | 27.061 | 27.401 | 27.847 |
| τ2 | 0.184 | 0.181 | 0.202 | 0.219 |
| τ3 | 2.051 | 2.183 | 10.829 | 4.730 |
| τepoch | 102.291 | 29.424 | 38.432 | 32.796 |
Table 4. Total execution time comparison for KF-RAIM [μs].
| Description | (i)+LUT | (ii)+LUT | (iii)+LUT | (ii)+Exact |
|---|---|---|---|---|
| τtotal | 339.767 | 101.365 | 133.196 | 112.534 |
Tables 2, 3을 보면 순차 처리 구조 “(i)+LUT”에서 제안하는 병렬 처리 구조 “(ii)+LUT”로 변경하였을 때, 처리 시간은 약 68.08%, 72.95% 감소함을 확인할 수 있다. 이는 Fig. 3의 (A) 영역이 병렬화에 필요한 오버헤드를 고려하더라도 충분히 처리 시간이 길기 때문에, 병렬 처리 구조를 적용하기 용이하다는 것을 의미하며, 가설 수의 증가와 병렬처리 효과를 볼 수 있다. 반면에 제안하는 병렬 처리 구조 “(ii)+LUT”에서 Fig. 3의 (B) 영역까지 추가로 병렬 처리한 구조 “(iii)+LUT”로 변경하였을 때, 순차 처리 구조 “(i)+LUT”보다 개선된 결과를 보이지만 제안하는 병렬 처리 구조 “(ii)+LUT”보다 처리 시간이 느린 것을 확인할 수 있다. 이는 Fig. 3의 (B) 영역이 고장 가설에 따른 병렬화에 적합하지 않은 구조라는 것을 의미하고, 현재 구조에서는 순차 처리 구조를 사용하는 것이 유리하는 것을 나타낸다. Table 4를 보면 본 논문에서 수행한 시나리오에 대하여 제안하는 병렬 처리 구조 “(ii)+LUT”는 순차 처리 구조 “(i)+LUT” 대비 약 70.17%, 추가 병렬 처리 구조 “(iii)+LUT” 대비 약 23.90% 처리 시간이 감소함을 확인할 수 있다. 고장 가설 별 독립성이 확보되더라도 병렬화는 충분조건이 아니며, 알고리즘별 처리 시간과 예상 오버헤드를 정량 평가해 적용 여부를 결정해야 한다는 것을 알 수 있다.
제안하는 구조 “(ii)+LUT”와 $\bar{Φ}(\cdot)$ 및 $\bar{Φ}^{-1}(\cdot)$을 직접 계산하는 구조 “(ii)+Exact”를 비교한 결과는 Fig. 4와 Tables 2-4에 제시하였다. Fig. 4에서 HPE는 horizontal position error, VPE는 vertical position error를 나타내고, LUT와 exact는 각각 PL의 계산에 LUT를 사용한 것과 직접 계산하는 함수를 사용한 것을 의미한다. 그리고 PL의 궤적 상에 표시한 원을 확대한 것을 상단에 제시했다.
Fig. 4. (a) Horizontal protection level and (b) vertical protection level.
제안하는 구조를 사용하였을 때, 시뮬레이션 시간 18:15:00 이후 기준, HPL과 VPL 모두 LPV-200에 따라 설정한 HAL과 VAL보다 낮음을 확인할 수 있다. 본 논문은 KF-RAIM의 병렬화 구조 제안에 중점을 두었으므로, float solution을 기반으로 미터급의 PL을 제공했다. Integer ambiguity resolution에 성공하여 fixed solution을 구한다면 센티미터급의 PL 제공이 가능하다. LUT 사용 유무에 따른 PL의 정확성 분석한 결과는 LUT를 사용한 결과가 18:57:40 시점에서 수평축에 대해 최대 5.230 cm, 18:39:51 시점에서 수직축에 대해 최대 3.721 cm의 오차가 발생함을 확인할 수 있다. 그러나 제안하는 구조가 $\bar{Φ}(\cdot)$ 및 $\bar{Φ}^{-1}(\cdot)$을 직접 계산하는 구조 대비 처리 에폭 단위 처리 시간이 약 9.94%, 10.28% 빠르고, 본 논문에서 수행한 시나리오 기준의 총 처리 시간은 약 9.93% 빠름을 알 수 있다. 이는 제안하는 KF-RAIM의 구조가 센티미터 급의 PL 오차는 허용 가능하지만 처리 시간의 확보가 중요한 시스템에 적용하기 유리하는 것을 의미한다.
본 논문에서는 OpenMP 기반의 병렬 처리 구조를 적용한 KF-RAIM을 구현하고, 순차 처리 구조와의 처리 시간을 정량적으로 비교하였다. 제안한 병렬 처리 구조는 순차 처리 구조와 비교하여 동일한 threshold와 PL을 산출하면서 전체 처리 시간을 유의미하게 단축했다. 이와 함께 $\bar{Φ}(\cdot)$ 및 $\bar{Φ}^{-1}(\cdot)$의 계산에 LUT를 사용하여 PL 관점에서는 센티미터 급의 오차를 갖지만, 처리 시간을 줄인 결과를 제시하였다. 이러한 결과는 고정밀 항법해의 무결성 확보를 위해 KF-RAIM이 요구되는 환경에서, PL의 엄밀한 정확성보다 실시간 처리 성능이 더 중요한 시스템에 제안 구조가 효과적인 대안이 될 수 있음을 시사한다.
추후 연구로 GNSS와 RNSS를 결합과 더불어 다중 위성 고장을 고려한 병렬처리구조를 임베디드 시스템에 구현하여 실험적 검증을 고려하고 있다.
This research was supported by funding from Korea Government (the Ministry of Land, Infrastructure, and Transport (MOLIT) (Grant number RS-2022-00165915) and the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (No. RS-2024-00355014).
The Manuscript with several authors, a short paragraph specifying their individual contributions must be provided. The following statements should be used “conceptualization, J. Jeong, C. Park and J. Park; methodology, J. Jeong and J. Ku; software, J. Jeong; formal analysis, J-Y. Park, Y.H. Ko, and D. Park; investigation, J. Jeong and J. Ku; writing—original draft preparation, J. Jeong; writing—review and editing, J. Jeong and J. Park; visualization, J. Jeong; supervision, J. Park; funding acquisition, J-Y. Park, Y.H. Ko, and D. Park”. Authorship must be limited to those who have contributed substantially to the work reported.
The authors declare no conflict of interest.
Bhattacharyya, S. & Mute, D. 2020, Kalman filter-based RAIM for reliable aircraft positioning with GPS and NavIC constellations, Sensors, 20, 6606. https://doi.org/10.3390/s20226606
Blanch, J., Walter, T., Enge, P., Lee, Y., Pervan, B., et al. 2012, Advanced RAIM user algorithm description: Integrity support message processing, fault detection, exclusion, and protection level calculation, In Proceedings of the 25th International Technical Meeting of The Satellite Division of the Institute of Navigation (ION GNSS 2012), Nashville, Tennessee, 17-21 September 2012, pp.2828-2849. https://www.ion.org/publications/abstract.cfm?articleID=10462
Brenner, M. 1996, Integrated GPS/inertial fault detection availability, Navigation, 43, 111-130. https://doi.org/10.1002/j.2161-4296.1996.tb01920.x
Choi, Y. S., Seo, H. S., & Kim, Y. B. 2023, Evaluation of GPU Computing Capacity for All-in-view GNSS SDR Implementation, Journal of Positioning, Navigation, and Timing, 12, 75-81. https://doi.org/10.11003/JPNT.2023.12.1.75
ESA, Galileo Open Service, Service Definition Document, Issue 1.2 [Internet], cited 2021 Nov, available from: https://www.gsc-europa.eu/sites/default/files/sites/all/files/Galileo-OS-SDD_v1.2.pdf
Gunning, K., Blanch, J., Walter, T., de Groot, L., & Norman, L. 2018, Design and evaluation of integrity algorithms for PPP in kinematic applications, In Proceedings of the 31st International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2018), Miami, Florida, Sep 24-28 2018, pp.1910-1939. https://doi.org/10.33012/2018.15972
Joerger, M., Chan, F.-C., & Pervan, B. 2014, Solution separation versus residual-based RAIM, NAVIGATION: Journal of the Institute of Navigation, 61, 273-291. https://doi.org/10.1002/navi.71
Joerger, M. & Pervan, B. 2016, Fault detection and exclusion using solution separation and chi-squared ARAIM, IEEE Transactions on Aerospace and electronic systems, 52, 726-742. https://doi.org/10.1109/TAES.2015.140589
Lee, Y. C. 1986, Analysis of range and position comparison methods as a means to provide GPS integrity in the user receiver, In Proceedings of the 42nd Annual Meeting of The Institute of Navigation (1986), Seattle, Washington, 24-26 June 1986, pp.1-4. https://www.ion.org/publications/abstract.cfm?articleID=12197
Meng, Q. & Hsu, L.-T. 2020, Integrity monitoring for all-source navigation enhanced by Kalman filter-based solution separation, IEEE Sensors Journal, 21, 15469-15484. https://doi.org/10.1109/JSEN.2020.3026081
Parkinson, B. W. & Axelrad, P. 1988, Autonomous GPS integrity monitoring using the pseudorange residual, Navigation, 35, 255-274. https://doi.org/10.1002/j.2161-4296.1988.tb00955.x
Pullen, S. 2017, Ground based augmentation systems, In Springer handbook of global navigation satellite systems (Cham: Springer International Publishing), pp.905-932
Sturza, M. A. 1988, Navigation system integrity monitoring using redundant measurements, Navigation, 35, 483-501. https://doi.org/10.1002/j.2161-4296.1988.tb00975.x
Teunissen, P. J. & Montenbruck, O. (Eds.) 2017, Springer handbook of global navigation satellite systems (Switzerland: Springer International Publishing).
U.S. DoD, Global Positioning System Standard Positioning Service Performance Standard [Internet], cited 2020 Apr, available from: https://www.navcen.uscg.gov/sites/default/files/pdf/gps/geninfo/2020SPSPerformanceStandardFINAL.pdf
Walter, T. 2017, Satellite based augmentation systems, In Springer handbook of global navigation satellite systems (Cham: Springer International Publishing), pp.339-361
Wang, S., Zhai, Y., & Zhan, X. 2023, Implementation of solution separation-based Kalman filter integrity monitoring against all-source faults for multi-sensor integrated navigation, GPS Solutions, 27, 103. https://doi.org/10.1007/s10291-023-01423-7