機械翻訳であり、ネイティブスピーカーによる確認は行われていません。英語版が基準です。

軌道GitHub で編集ソース:docs/SGP4-VALIDATION.md

コミュニティの参照に対する SGP4/SDP4 の検証

Kshana の軌道伝搬器は、SGP4/SDP4(SGP4:Simplified General Perturbations 4、SDP4:Simplified Deep-space Perturbations 4)の標準的なコミュニティの参照に対して検証されています。それは、Vallado ほか、"Revisiting Spacetrack Report #3"(AIAA(American Institute of Aeronautics and Astronautics)2006-6753)とともに公開された検証ベクトルで、SGP4-VER.TLE(テスト用の TLE(二行軌道要素))と tcppver.out(各時刻で期待される TEME(真の赤道・平均春分点)の状態)として配布されています。これは、公開されている C++/Python/MATLAB の実装が検証に使うのと同じ参照であるため、ここでの一致は事実上の標準との一致です。

結果#

量 値
比較した参照状態 666 (tcppver.out のすべての行。テストで固定)
位置誤差の最悪値 4.12 mm(4.120e-6 km、衛星 23333。< 2e-5 km の許容差)
速度誤差の最悪値 1.85e-9 km/s(衛星 23333。< 1e-6 km/s の許容差)
対象とするケース 地球近傍の SGP4、深宇宙の SDP4(月・太陽摂動と 12 h/24 h の共鳴)、および意図的なエラーコードのケース

深宇宙のケースと共鳴のケースは、このプロジェクトにとって特に重要です。GNSS(全球測位衛星システム)の衛星は約 12 h の軌道にあり、それは深宇宙で共鳴する軌道であって、二体問題 + J2 永年項のモデルでは再現できませんが、SGP4/SDP4 なら再現できます。

手法#

  • 実装(src/sgp4.rs)は、パブリックドメインの Vallado アルゴリズムを、依存関係なしの Rust に移植したものです。エポックの扱いは 1950 年からの経過日数で、afspc ではなく improved モードを使い、WGS-72(WGS:World Geodetic System)の重力定数は参照の規定どおりに適用します。
  • このテスト(tests/sgp4_verification.rs)は、組み込んだ SGP4-VER.TLE と tcppver.out のフィクスチャ(tests/fixtures/sgp4/)を解析し、各テスト衛星を参照時刻のすべてに伝搬し、TEME の位置と速度が上記の許容差内で一致することをアサートします。比較する行数は正確に 666 に固定されているため、フィクスチャやスキップ動作の退行によって、カバレッジが気づかれないまま減ることはありません。

再現する#

cargo test --test sgp4_verification -- --nocapture

このテストは、比較した行数と、位置・速度の最悪ケースの誤差を出力します。フィクスチャはコミットされているため、検査は完全にオフラインで、決定的です。

sgp4 クレートとの独立したクロスチェック#

公開された参照との一致は、表に対する正しさを示します。独立した実装に対する正しさも示すために、tests/sgp4_crate_comparison.rs は、広く使われている独立した Rust の SGP4 ライブラリである sgp4 クレート(neuromorphicsystems/sgp4、バージョン 2.4)を、同じ 666 個の AIAA ベクトルで実行し、二つのコードベースを直接比較します。どちらも、ベクトルが定義されている WGS72(World Geodetic System 1972)の重力モデルで駆動します(このクレートの既定の from_elements は WGS84(World Geodetic System 1984)を使い、WGS72 の参照とは約 km の差があります。これは誤りではなく、率直に示したモデル化上の選択です)。

領域 kshana ↔ 参照 クレート ↔ 参照 kshana ↔ クレート
地球近傍(LEO/MEO(LEO:低軌道、MEO:中軌道)) 7.3e-9 km 7.3e-9 km 4.4e-10 km
深宇宙(非共鳴) 4.1e-6 km 2.1e-7 km 4.1e-6 km
深宇宙の共鳴(½ 日) 8.1e-9 km 7.7e-9 km 2.2e-9 km
深宇宙の共鳴(1 日) 8.2e-9 km 7.8e-9 km 2.2e-9 km

二つの独立した実装は、地球近傍と共鳴軌道ではサブミクロンで、すべての領域にわたる最悪ケースでは 4.12 mm で一致します。これは Kshana 自身の参照からの乖離と同じ 4.12 mm であり、つまり不一致はまさにその一つの深宇宙のケースにあって、クレートは Kshana と表の間に位置します。領域ごとの行数と、クレートが構築時に拒否する四つの病的なケースを含む完全な表は、tests/fixtures/sgp4_comparison.md にコミットされており、KSHANA_REGEN_FIXTURES=1 cargo test --test sgp4_crate_comparison で再生成されます。

この結果の「公開」の状況#

クロスバリデーション自体は完了しており、ツリー内にあります。結果を外部の場(コミュニティのカタログ、短い報告、DOI(デジタルオブジェクト識別子)でアーカイブされた記録)に提出することは、ロードマップで別に管理されているメンテナーの作業です。このドキュメントは、それらの提出が指し示すリポジトリ内の記録です。