DO-316 / DO-229E インテグリティの compliance マップ
この文書は、RTCA(旧 Radio Technical Commission for Aeronautics)の DO-229E(SBAS(衛星航法補強システム)MOPS(最低運用性能標準))と DO-316(GPS/SBAS(GPS:全地球測位システム)航空機搭載機器)の、保護レベルとインテグリティ監視の要件を、それらを実装する Kshana の機能に対応付けます。これはエンジニアリング上のトレーサビリティの補助であり、いずれかの要件が満たされているという表明ではありません。Kshana は公開されているアルゴリズムを実装したものであり、承認された航空電子機器ではありません。
機械可読な形式は sbas::do316_compliance_map であり、この文章はその補足です(docs/ARAIM_REFERENCE.md に対応)。
重み付き最小二乗の保護レベル(DO-229E 附属書 J)#
ユーザーから見た仰角 Elᵢ、方位角 Azᵢ の各衛星 i について、ローカルレベル(ENU(東・北・上)+時計)の観測行は次のとおりです。
Gᵢ = [ −cos Elᵢ·sin Azᵢ, −cos Elᵢ·cos Azᵢ, −sin Elᵢ, 1 ]
重みは wᵢ = 1/σᵢ²、σᵢ² = σ_flt² + σ_uire² + σ_air² + σ_tropo² です(UDRE(ユーザー差動距離誤差)、GIVE(格子電離圏垂直誤差)、機上、対流圏の誤差配分)。位置共分散は D = (GᵀWG)⁻¹ であり、その ENU ブロックから水平と垂直の保護レベル(HPL、VPL)が得られます。
d_major = √( (d_E² + d_N²)/2 + √( ((d_E² − d_N²)/2)² + d_EN² ) )
d_U = √(d_U²)
HPL = K_H · d_major VPL = K_V · d_U
Kshana は D を、4×4 の正規行列を RAIM(受信機自律型インテグリティ監視)スタックと同じルーチン(orbit::invert4)で反転して計算します。結果は、共分散経由(D[2][2])と射影経由(Σᵢ S_{U,i}²·σᵢ²)が一致すること、さらに独立した numpy の inv(GᵀG) 基準幾何条件との一致という、三通りで検証しています。
K-factors#
| モード | K_H | K_V | 出典 |
|---|---|---|---|
| 航路 → NPA(非精密進入。水平のみ) | 6.18 | — | レイリー √(−2·ln 5e-9) = 6.1829 |
| 精密進入 | 6.0 | 5.33 | DO-229E MOPS |
正直な注記:MOPS は丸めた水平定数 6.0 を使っています。厳密な両側正規分位数 Φ⁻¹(1 − 1e-9/2) は 6.109 です。Kshana はコード中では公表値の 6.0 を使い、K_V = Φ⁻¹(1 − 1e-7/2) = 5.327 は RAIM スタックが使うのと同じ raim::normal_quantile から導出します。これは循環のない相互チェックです(この値は丸めると MOPS の 5.33 になります)。
L1/L5 二周波の電離圏フリー結合(IS-GPS-705)#
f₁ = 1575.42 MHz、f₅ = 1176.45 MHz、γ₁₅ = (f₁/f₅)² = 1.79327 のとき:
ρ_IF = (f₁²·ρ₁ − f₅²·ρ₅) / (f₁² − f₅²) = c₁·ρ₁ + c₅·ρ₅
c₁ = +2.260604, c₅ = −1.260604 (c₁ + c₅ = 1, unit gain)
一次の電離圏遅延(40.3·10¹⁶·TEC/f²)は完全に打ち消されます。これは、さまざまな TEC(全電子数)について、エンジンの独立した timetransfer_adv::iono_delay_m の物理で検証しています。分散が等しい入力に対する雑音の増幅は √(c₁² + c₅²) = 2.588 です。
検証ステータス#
- リポジトリ内、自動(コミットごと):K 係数をその分布としての定義に対して、
γ₁₅と電離圏フリー(IF)係数を IS-GPS-705(IS:インターフェース仕様)の周波数に対して、一次の電離圏の打ち消しを独立した遅延の物理に対して、重み付き最小二乗(WLS)の保護レベルを numpy のinv(GᵀG)基準幾何条件(sbas::tests::wls_pl_matches_numpy_on_five_satellite_geometry)に対して、それぞれ検証します。 - 外部オラクル、自動(
tests/sbas_reference.rs):各衛星の仰角、方位角、合計の 1-σ が与えられたとき、sbas_protection_levelは独立した実装の HPL を再現します。その実装とは、RTKLIB(オープンソースのリアルタイムキネマティック測位ライブラリ)の SBAS 保護レベルのフォークzsiki/rtklib_ws(Siki & Takács 2017)にあるwaasprotlevels()です。ブダペストの BUTE 局での実際の EGNOS(欧州静止衛星航法オーバーレイサービス)の放送メッセージ(静止衛星 PRN(疑似ランダム雑音コード番号)120)と実際の RINEX(受信機非依存交換フォーマット)観測値(2017-02-19)から、そのツールが計算した六つのエポックについて、< 2e-3 m で一致します。オラクルは K_V を 5.33 に丸めているため、垂直は K 係数を含めずに比較しており、d_Uを VPL / 5.33 と比べています。ESA(欧州宇宙機関)の gLAB v6.0.0(core/filter.c)も同じ式を使っています。 - 未実施:衛星ごとの σ はオラクル自身のものです。生の UDRE/GIVE メッセージから σ をモデル化することは対象外であり、公式に公表されている WAAS(広域補強システム)や EGNOS の保護レベルのプロダクトを端から端まで再現したものはありません。DO-229E と DO-316 自体は RTCA の有料文書です。公開されている導出の出典は、ESA Navipedia の ICAO(国際民間航空機関)/EGNOS の SBAS のページです。