본문 바로가기
과학기술

고정밀 궤도 시뮬레이션을 위한 중력 모델의 이해 및 오픈소스 구현 분석

by 리서치가이 2025. 11. 18.

I. 서론: '완벽한 구'의 한계와 고정밀 중력 모델의 필요성

 궤도 역학의 입문 과정은 중심 천체(예: 지구)와 위성이 서로의 질량 중심을 도는 이상적인 '이체 문제(Two-body Problem)'에서 시작한다. 이 모델은 중심 천체를 질량이 한 점에 모인 완벽한 구형의 '점질량(Point Mass)'으로 가정하며, 뉴턴의 만유인력 법칙 F = GMm/r^2 을 기반으로 한다. 이 이상적인 환경에서는 위성의 궤도를 기술하는 6개의 궤도 요소(Keplerian elements)가 영원히 변하지 않는다.

 

 

그러나 현실의 위성 궤도는 이러한 이상적인 모델과 큰 차이를 보이며, 궤도 요소는 지속적으로 변동한다. 그 주된 이유는 이체 문제의 기본 가정이 현실과 다르기 때문이다. 특히, 지구는 완벽한 구가 아니며 질량 분포가 균일하지 않다.1 지구의 자전으로 인한 편평도(적도 부근이 부풀어 오름), 산맥과 해구의 존재, 내부 맨틀의 밀도 불균일 등은 지구의 중력장을 위치(위도, 경도, 고도)에 따라 미세하게 달라지게 만든다.1

 

이러한 불균일성이 위성에 가하는 추가적인 힘을 '섭동(Perturbation)'이라고 한다.3 이 중력 섭동은 궤도에 누적 효과를 일으켜 궤도 평면을 회전시키거나(세차 운동), 이심률과 경사각을 주기적으로 변화시킨다.4 예를 들어, 지구의 편평도로 인해 발생하는 가장 큰 섭동 항인 J_2는 궤도 요소의 장기적인 시간 변화율에 가장 큰 영향을 미친다.2 또한 경도에 의존하는 비대칭 중력장(non-zonal geopotential)은 특정 궤도(특히 정지궤도)와 '공명(resonance)'을 일으켜 위성을 특정 경도 지점으로 끌어당기거나 밀어내는 현상을 유발할 수 있다.4

 

따라서 위성의 장기적인 궤도를 정확하게 예측하고, 원하는 궤도를 유지하기 위한 기동 계획을 수립하기 위해서는 이러한 중력 섭동을 정밀하게 계산할 수 있는 '고정밀 중력 모델'이 필수적이다. 본 보고서는 이러한 고정밀 중력 모델의 수학적 원리, 다양한 모델(JGM, EGM 등)이 존재하는 이유와 그 차이점, 그리고 대표적인 오픈소스 궤도 시뮬레이션 소프트웨어인 GMAT과 Basilisk (BSK)에서 이 모델들이 어떻게 채택되고 구현되는지 심층적으로 분석한다.

 

II. 지구 중력장의 수학적 표현: 구면 조화 함수

 지구의 불균일한 중력장을 물리적으로 가장 정확하게 기술하는 방법은 지구 전체의 밀도 분포를 파악하여 중력 포텐셜을 적분하는 것이지만, 이는 현실적으로 불가능하다.2 대신, 천체동역학에서는 지구 외부의 중력장(지오포텐셜, Geopotential)을 수학적 급수(series)로 표현하는 방식을 사용한다.

 

지구 외부의 중력 포텐셜은 라플라스 방정식을 만족하며, 구면 좌표계에서 이 방정식의 일반해는 '구면 조화 함수(Spherical Harmonics)'의 무한 급수로 표현된다.5 이는 복잡한 3차원 중력장 분포를 '공간 주파수' 성분으로 분해하여 표현하는 표준 기법이다.

 

III. 주요 지구 중력 모델(Geopotential Model) 계열 상세 분석

 궤도 시뮬레이션을 수행할 때, 단일화된 '최고의' 모델이 아닌 JGM, EGM, GGM 등 다양한 이름의 모델이 존재하는 것을 발견하게 된다. 이는 중력 모델이 지속적으로 발전해 온 산물이자, 개발 목적에 따라 특화되었기 때문이다.

 

A. 왜 단일 모델이 아닌 여러 모델이 존재하는가?

  1. 데이터 소스의 발전: 중력 모델은 지구를 공전하는 위성의 추적 데이터(SLR, DORIS, GPS), 위성 고도계(Altimetry) 데이터(예: TOPEX/Poseidon), 지표면에서 측정한 중력 데이터, 그리고 GRACE, GOCE와 같은 전용 중력 탐사 위성 데이터를 '조합(combination)'하여 생성된다.9 기술이 발전하여 더 정밀한 위성 데이터(예: GRACE)가 확보될 때마다, 기존 모델(예: EGM96)의 한계를 극복하는 새로운 모델(예: EGM2008)이 개발된다.13
  2. 특정 임무 최적화 (Tuning): JGM(Joint Gravity Models) 계열은 특정 위성 임무(TOPEX/Poseidon)의 정밀 궤도 결정(Precision Orbit Determination, POD)을 위해 개발되었다.9 이 모델들은 해당 위성의 궤도 고도와 경사각에서 매우 높은 정확도를 보이도록 '조정(tuned)'되었을 수 있다.
  3. 개발 시기 및 기관: NASA, NGA(미국 국가지형정보국), 유럽 우주국(ESA) 등 여러 기관이 서로 다른 시기에, 가용한 최신 데이터를 기반으로 모델을 개발 및 발표한다.

 

B. JGM (Joint Gravity Models) 계열: TOPEX/Poseidon의 유산

 JGM 계열 모델은 1990년대 초 NASA Goddard Space Flight Center (GSFC)와 프랑스 CNES가 공동으로 개발했다. 주 목적은 해수면 고도를 정밀하게 측정하는 TOPEX/Poseidon 위성의 궤도 오차를 cm 수준으로 낮추는 것이었다.11

 

  • JGM-1, JGM-2: JGM-1은 발사 전 모델이며, JGM-2는 TOPEX/Poseidon 발사 후 수집된 위성 레이저 추적(SLR) 및 DORIS 추적 데이터를 반영하여 70x70까지의 계수를 정밀화한 모델이다.9 JGM-2는 당시 TOPEX/Poseidon 위성의 방사상 궤도 오차를 3-4cm RMS 수준으로 낮추는 성과를 달성했다.11
  • JGM-3: JGM-2를 기반으로 추가 데이터를 반영하여 개선한 모델로, 역시 70x70 차수/계수를 제공한다.2 JGM-3는 JGM-2 대비 궤도 오차를 상당히 줄였으며 17, 특히 해양 지오이드 모델링에 강점을 보였다.17

 

C. EGM (Earth Gravitational Models) 계열: NGA의 표준 모델

 EGM 계열은 미국 NIMA(현 NGA)가 NASA GSFC, Ohio State University (OSU) 등과 협력하여 개발한 지구 중력장 표준 모델이다.

 

  • EGM96 (Earth Gravitational Model 1996):
  • EGM96은 최대 360x360 차수/계수까지 제공한다.10
  • JGM-2의 위성 추적 데이터, 지표 중력 데이터, 위성 고도계 데이터를 총망라하여 개발되었다.12
  • EGM96은 전 세계 측지 시스템의 표준인 WGS84 (World Geodetic System 1984)의 공식 지오이드 모델로 채택되어, 오랫동안 가장 널리 사용된 '표준' 중력 모델이었다.10
  • EGM2008 (Earth Gravitational Model 2008):
  • EGM96 이후 약 12년 만에 NGA에 의해 개발된 혁신적인 후속 모델이다.14
  • 핵심 차이 (GRACE): EGM2008의 비약적인 성능 향상은 2002년 발사된 GRACE (Gravity Recovery and Climate Experiment) 위성의 데이터를 핵심적으로 반영했기 때문이다.13 GRACE는 두 위성 간의 미세한 거리 변화를 측정하여 전례 없는 정밀도로 지구 중력장을 매핑했다.15
  • 차수 및 정밀도: 최대 2160x2160 차수/계수까지 확장되었으며(일부 2190까지), 해상도가 EGM96 대비 극적으로 향상되었다.10
  • 성능 비교: EGM2008은 EGM96 대비 정확도가 획기적으로 향상되었다. GPS/Leveling 데이터를 이용한 지오이드고 비교 시, EGM96의 오차(RMSE)가 1.41m인 반면 EGM2008은 0.59m 수준으로 약 2배 이상 향상된 결과를 보였다.20 한반도 지역 연구에서도 EGM2008이 14cm 이내의 정밀도를 보여, EGM96 대비 상당한 수준으로 정확도가 개선되었음을 입증했다.14

 

[표 1: 주요 지구 중력 모델 비교 (JGM-3, EGM96, EGM2008)]

 

항목 JGM-3 (Joint Gravity Model 3) EGM96 (Earth Gravitational Model 1996) EGM2008 (Earth Gravitational Model 2008)
개발 기관 NASA/GSFC, UT/CSR, CNES 9 NGA (NIMA), NASA/GSFC, OSU 12 NGA 13
최대 차수/계수 70 x 70 9 360 x 360 10 2160 x 2160 (2190까지 확장) 10
주요 데이터 소스 위성 추적(SLR, DORIS), TOPEX/Poseidon 데이터 특화 11 JGM-2 데이터, 지표 중력, 위성 고도계 12 GRACE 데이터, 지표 중력, EGM96 데이터 조합 13
주요 사용 분야 TOPEX/Poseidon 정밀 궤도 결정, 해양 지오이드 연구 17 WGS84 표준 지오이드, 범용 궤도 시뮬레이션 (과거 표준) 10 고정밀 지오이드 모델링 (현 표준), LEO 정밀 궤도 예측 14
정밀도 (예시) TOPEX 궤도 오차 0.9cm (예측) 17 지오이드고 RMSE 약 1.4m 20 지오이드고 RMSE 약 0.6m 20, 한반도 14cm 이내 14

 

IV. 시뮬레이션 정밀도: 모델 선택과 연산 비용의 트레이드오프

 EGM2008이 EGM96보다 6배 이상(2160/360) 높은 차수를 제공하므로 항상 EGM2008을 2160x2160 전체로 사용하는 것이 최선일 수 있지만, 현실은 '정밀도'와 '연산 비용' 간의 트레이드오프(trade-off) 관계를 고려해야 한다.

 

A. 모델 차수(Degree)와 연산 비용(Computational Cost)

구면 조화 함수를 이용한 중력 가속도 계산은 차수가 증가함에 따라 연산량이 차수의 제곱에 비례하거나 그 이상으로 기하급수적으로 증가한다.7 EGM2008 모델을 2160x2160 전체 차수로 계산하는 것은 막대한 연산 자원을 소모하며, 특히 장기간의 궤도 전파(propagation)나 실시간 시뮬레이션에서는 비현실적일 수 있다.23

따라서 대부분의 시뮬레이션 소프트웨어(GMAT, Basilisk 포함)는 사용자가 모델의 최대 차수와 계수(예: 70x70, 120x120)를 '절단(Truncate)'하여 사용하도록 설정하는 기능을 제공한다.

 

B. 임무 고도에 따른 모델 민감도 (LEO vs. GEO)

 필요한 중력 모델의 정밀도는 위성의 고도에 따라 크게 달라진다.

 

  • LEO (저궤도, Low Earth Orbit; 고도 150km ~ 2000km):
  • 위성이 지구 표면과 가깝기 때문에, 지구 중력장의 세밀한 불균일성(고차항)에 매우 민감하게 반응한다.22
  • 정밀한 LEO 궤도 예측(예: PNT(항법) 임무)을 위해서는 70x70 이상의 고차수 모델(예: EGM2008)이 필수적이다.22
  • 한 연구22에 따르면, LEO 위성의 궤도 예측 정확도는 중력 모델에 따라 큰 차이를 보이며, 저궤도일수록 요구되는 중력 차수가 더 높아진다. 단기 예측에서는 EGM2008, JGM3 등이 우수했지만, 장기 예측에서는 EGM96이 더 나은 성능을 보이는 경우도 있어 22, 궤도 특성과 예측 기간에 따라 최적 모델이 다를 수 있다.
  • GEO (정지궤도) 및 심우주:
  • 지구로부터의 거리가 매우 멀다 (GEO 고도 약 36,000 km).
  • 고차항의 영향은 거의 무시할 수 있으며, J2 및 비대칭 공명 항 정도만 고려해도 충분한 정확도를 얻는 경우가 많다. GMAT 예제에서도 달 탐사 궤도에서 지구 중력을 8x8로 설정하는 경우가 있다.25
  • 이 영역에서는 지구 중력 섭동보다 태양, 달, 목성 등 다른 천체의 '제3체 중력 섭동(Third-body gravity)'이 궤도에 더 큰 영향을 미친다.4

 

C. 저추력(Low-Thrust) 궤도 시뮬레이션의 특수성

 전기 추진(Solar Electric Propulsion)과 같은 저추력 시스템을 사용하는 궤도는 수개월에서 수년에 걸쳐 나선형으로 궤도를 서서히 변경한다.26 시뮬레이션 기간이 매우 길기 때문에, 고차항에 의한 미세한 섭동이라도 장기간 누적되면 최종 궤도에 큰 오차를 유발할 수 있다.28 이는 '연산 비용'과 '누적 오차' 사이의 심각한 트레이드오프를 발생시킨다. 고정밀 모델(EGM2008 2160x2160)을 쓰면 연산 시간이 비현실적으로 길어지고, 저정밀 모델(JGM3 70x70)을 쓰면 장기 누적 오차가 커질 수 있다.27

 

V. 오픈소스 구현 (1): GMAT의 중력 모델 채택 및 설정

 GMAT (General Mission Analysis Tool)는 NASA에서 개발하여 오픈소스로 제공하는 강력한 궤도 분석 및 임무 설계 도구이다.29 GMAT은 '미션 분석가'의 관점에서 설계되어, 검증된 표준 모델들을 쉽게 교체하고 설정할 수 있도록 '설정 파일(Configuration-driven)' 기반의 아키텍처를 가진다.

 

A. GMAT의 아키텍처: ForceModel 리소스 중심

 GMAT의 시뮬레이션(궤도 전파)은 Propagator 리소스가 담당하며, Propagator는 ForceModel 리소스를 참조하여 위성에 가해지는 힘을 계산한다. 사용자는 ForceModel에 다양한 힘(중력, 대기 항력, 태양 복사압 등)을 '조립'하여 시뮬레이션에 적용한다.30

ForceModel은 중력체를 PrimaryBodies와 PointMasses로 구분한다 30.

 

  • PrimaryBodies: 구면 조화 함수(비대칭 중력장), 대기 항력 등 복잡한 모델을 적용할 중심 천체(보통 1개).30
  • PointMasses: 단순 점질량으로 섭동을 계산할 천체 (예: 태양, 달, 목성 등).25

 

B. GMAT의 중력 모델 지원 및 기본값

 

  • 지원 모델: GMAT은 JGM-2, JGM-3, EGM96, LP165P(달) 등 다양한 표준 모델을 기본적으로 지원한다.25
  • 기본값 (Default):
  • 사용자가 ForceModel을 명시적으로 설정하지 않으면, GMAT은 지구 중심의 4x4 중력 모델을 기본으로 사용할 수 있다.33
  • 사용자가 ForceModel을 생성하고 PrimaryBody를 지구로 설정할 경우, Gravity.PrimaryBody.PotentialFile의 기본값은 JGM2이다.30
  • 모델 파일 형식: GMAT은 중력 계수 파일을 읽기 위해 여러 형식을 지원하지만, 핵심은 .cof (GMAT 고유 텍스트 형식)이다. 또한 STK .grv, .gfc 형식도 지원한다.33 GMAT 배포판의 data/gravity 디렉토리(지구는 data/gravity/earth)에 이 .cof 파일들이 포함되어 있다.35

 

C. GMAT 스크립트를 이용한 중력 모델 설정

 GMAT GUI에서도 설정할 수 있지만, 정밀한 제어와 반복적인 시뮬레이션을 위해 스크립트(Script)를 사용하는 것이 일반적이다.35

 

1. gmat_startup_file.txt 파일 설정

 

EGM96이나 EGM2008(별도 다운로드 필요) 같은 외부 모델을 GMAT에서 쉽게 사용하려면, GMAT 설치 폴더의 data에 있는 gmat_startup_file.txt 파일에 해당 파일의 경로를 미리 정의해야 한다.31

 

코드 스니펫

// gmat_startup_file.txt 내의 예시
EARTH_POT_PATH = DATA_PATH/gravity/earth/
EGM96_FILE     = EARTH_POT_PATH/EGM96.cof
JGM2_FILE      = EARTH_POT_PATH/JGM2.cof
JGM3_FILE      = EARTH_POT_PATH/JGM3.cof
// EGM2008 모델을 C:/MyModels/EGM2008.gfc 에 저장한 경우
EGM2008_FILE   = 'C:/MyModels/EGM2008.gfc'

 

2. GMAT 스크립트에서 ForceModel 설정 예제

 

다음은 GMAT 스크립트에서 EGM96 모델을 70x70으로 절단하여 사용하는 예제이다.

 

코드 스니펫

% 1. ForceModel 리소스 생성
Create ForceModel DefaultProp_ForceModel;
DefaultProp_ForceModel.CentralBody = Earth;
DefaultProp_ForceModel.PrimaryBodies = {Earth}; % 지구를 비대칭 중력체로 설정

% 2. 지구 중력장 설정 (EGM96, 70x70)
DefaultProp_ForceModel.GravityField.Earth.Degree = 70;
DefaultProp_ForceModel.GravityField.Earth.Order = 70;
DefaultProp_ForceModel.GravityField.Earth.PotentialFile = 'EGM96.cof'; % startup 파일에 정의된 이름 [31]

% (대안) JGM3 모델 (70x70)을 사용하려면
% DefaultProp_ForceModel.GravityField.Earth.Degree = 70;
% DefaultProp_ForceModel.GravityField.Earth.Order = 70;
% DefaultProp_ForceModel.GravityField.Earth.PotentialFile = 'JGM3.cof'; [32]

% (대안) EGM2008 모델 (120x120)을 사용하려면
% DefaultProp_ForceModel.GravityField.Earth.Degree = 120;
% DefaultProp_ForceModel.GravityField.Earth.Order = 120;
% DefaultProp_ForceModel.GravityField.Earth.PotentialFile = 'EGM2008.gfc'; % startup 파일에 정의된 이름

% 3. 태양, 달을 점질량(PointMass) 섭동으로 추가
DefaultProp_ForceModel.PointMasses = {Luna, Sun};

% 4. Propagator에 ForceModel 할당
Create Propagator DefaultProp;
DefaultProp.ForceModel = DefaultProp_ForceModel; % 생성한 ForceModel을 Propagator에 연결

이처럼 GMAT은 사용자가 PotentialFile 속성을 변경하고 Degree와 Order를 지정하는 것만으로 시뮬레이션의 충실도(fidelity)를 쉽게 변경할 수 있는 '설정 중심'의 접근 방식을 제공한다.

 

VI. 오픈소스 구현 (2): Basilisk (BSK)의 중력 모델 채택 및 설정

 Basilisk (BSK)는 콜로라도 대학 AVS Lab(Autonomous Vehicle Systems Laboratory)에서 개발한 고속 우주선 시뮬레이션 '프레임워크(Framework)'이다.37 GMAT이 미션 분석 '도구'에 가깝다면, BSK는 실시간 시뮬레이션(Hardware-in-the-Loop, HIL) 및 Monte-Carlo 분석을 위해 C/C++로 작성된 고성능 코어를 Python으로 감싸는(wrapping) 방식을 사용한다.37

 

BSK는 사용자가 '연구자' 또는 'GNC(유도 항법 제어) 엔지니어'라는 관점에서 설계되어, 시뮬레이션의 모든 구성 요소를 Python 객체로 직접 생성하고 프로그래밍 방식으로 '조립'하도록 한다.39

 

A. Basilisk의 중력 모델 아키텍처

 BSK에서 힘(force)은 DynamicEffector의 하위 클래스들로 구현된다. 중력은 gravityEffector 모듈이 담당한다.41

 

  1. gravityEffector와 GravBodyData: gravityEffector 모듈(또는 객체)은 중력의 영향을 계산할 천체들의 목록(GravBodyData 객체 목록)을 가진다.41
  2. GravBodyData와 GravityModel: GravBodyData 객체는 해당 천체의 질량(mu), 반경(radEquator) 등 물리적 속성과 함께, gravityModel이라는 핵심 속성을 가진다.41 이 gravityModel 속성에 '어떤' 중력 모델을 사용할지(즉, 어떤 C++ 클래스를 사용할지) 지정한다.
  3. 기본값 (Default): GMAT과 달리, GravBodyData 객체는 생성 시 기본적으로 PointMassGravityModel (점질량 모델)을 사용하도록 초기화된다.41
  4. 고정밀 모델: BSK는 GravityModel 추상 클래스를 상속받는 다양한 하위 클래스를 제공한다. 구면 조화를 위해서는 SphericalHarmonicsGravityModel 45, 소행성 등 불규칙한 천체를 위해서는 PolyhedralGravityModel 47 클래스를 제공한다.

 

B. Basilisk Python 스크립트를 이용한 구면 조화 모델 설정

 BSK에서 EGM96이나 EGM2008 같은 구면 조화 모델을 사용하려면, Python 스크립트에서 명시적으로 PointMassGravityModel을 SphericalHarmonicsGravityModel로 교체하고 계수 파일을 로드해야 한다.

 

1. 모듈 임포트 및 GravBodyData 생성

 

Python



import os
from Basilisk.simulation import gravityEffector
from Basilisk.simulation import spacecraft
from Basilisk.utilities import simIncludeGravBody

# BSK 유틸리티를 사용하여 표준 태양계 천체(지구 포함) 생성
gravFactory = simIncludeGravBody.gravBodyFactory()
earth = gravFactory.createEarth()

# 이 시점에서 earth.gravityModel은 <Basilisk.simulation.pointMassGravityModel.PointMassGravityModel...> 입니다.
# earth.isCentralBody = True (지구가 중심 천체임을 명시)

 

2. SphericalHarmonicsGravityModel로 교체 및 계수 로드

 

Python



# 1. 점질량 모델을 구면 조화 모델 객체로 대체
earth.gravityModel = gravityEffector.SphericalHarmonicsGravityModel() [45]

# 2. BSK 지원 데이터(.txt) 파일 경로 설정
# (BSK는 GGM03S, EGM96 등의.txt 파일을 supportData/GravityModels 폴더에 제공함)
bskPath = os.environ.get('BASILISK_PATH')
model_path = bskPath + '/supportData/GravityModels/'

# 3. simIncludeGravBody 유틸리티를 사용하여 계수 파일 로드 [48, 49]
# 예: EGM96 모델을 70x70으로 절단하여 로드
simIncludeGravBody.loadGravFromFile(
    model_path + 'EGM96.txt',           # 로드할 계수 파일
    earth.gravityModel,                 # 계수를 저장할 객체
    maxDeg=70                           # 70x70으로 절단 [49]
)

# (대안) GGM03S 모델(GRACE 기반)을 120x120으로 로드하려면 [50]
# simIncludeGravBody.loadGravFromFile(
#     model_path + 'GGM03S.txt',
#     earth.gravityModel,
#     maxDeg=120
# )

참고: BSK는 EGM96, GGM03S 등을 지원하며 38, EGM2008은 지원 데이터에 포함되어 있지 않을 수 있으나, 사용자가.txt 형식으로 변환하여 로드할 수 있다.

 

3. 시뮬레이션에 gravityEffector 추가

 

Python



# 4. 우주선 객체 생성 및 중력체 목록 할당
scObject = spacecraft.Spacecraft()
scObject.ModelTag = "mySat"

gravBodyList = [earth] # 태양, 달 등을 PointMass로 추가 가능
scObject.gravField.gravBodies = spacecraft.GravBodyVector(gravBodyList) [41]

# 또는 동적으로 추가 (BSK 1.x 방식)
# gravEff = gravityEffector.GravityEffector()
# gravEff.addPlanetName(earth.planetName)
# scObject.addDynamicEffector(gravEff)

이처럼 Basilisk는 GMAT보다 초기 설정이 복잡하지만, 이는 '프레임워크'로서의 유연성을 극대화하기 위한 의도적인 설계이다. 사용자는 PointMass 44, SphericalHarmonics 45, Polyhedral 47 등 원하는 GravityModel 객체를 런타임에 자유롭게 교체하고 조립할 수 있다.

 

VII. 결론: 목적에 맞는 중력 모델 선택을 위한 전문가 제언

본 보고서는 궤도 시뮬레이션에서 고정밀 중력 모델이 필수적인 이유, 구면 조화 함수 기반 모델의 수학적 원리, JGM과 EGM 계열 모델의 차이점, 그리고 GMAT과 Basilisk에서의 구현 방법을 분석했다.

 

A. 중력 모델이 다양한 이유 요약

 

  • 데이터의 진화: 중력 모델은 위성 추적 및 측정 데이터의 집약체이다. TOPEX/Poseidon 11에서 GRACE 13, GOCE로 이어지는 새로운 위성 데이터가 가용해짐에 따라, EGM96에서 EGM2008으로 진화하는 등 더 정밀하고 고해상도인 모델이 지속적으로 개발되었다.14
  • 임무 특화: JGM 계열은 TOPEX/Poseidon 임무의 정밀 궤도 결정을 위해 특화되어 개발된 '맞춤형' 모델이다.9
  • 정밀도 vs. 연산 비용: 모든 임무에 EGM2008 2160x2160 모델이 필요한 것은 아니다.23 LEO는 고차항이 중요하지만 22, GEO는 저차항(및 3체 섭동)이 중요하다.25 저추력 임무는 장기 적분을 고려한 '적정' 수준의 절단(예: 70x70)이 필요하다.27

 

B. GMAT과 Basilisk의 철학적 차이 및 모델 선택

 GMAT과 Basilisk는 중력 모델을 채택하고 설정하는 방식에서 두 소프트웨어의 근본적인 설계 철학의 차이를 명확하게 보여준다.

 

  • GMAT (General Mission Analysis Tool):
  • 철학: '미션 분석 도구'. 사용자는 '분석가'이다.29
  • 특징: 표준화된 시나리오, 검증된 모델(JGM2, EGM96) 중심, 설정 파일 기반(.cof, gmat_startup_file.txt)의 쉬운 충실도 변경을 지향한다.30
  • 채택 모델: 기본적으로 JGM2 30 또는 저차수 모델 33을 사용하며, EGM96, JGM3 등을 .cof 파일을 통해 쉽게 설정할 수 있다.31
  • Basilisk (BSK):
  • 철학: '시뮬레이션 프레임워크'. 사용자는 '연구자' 또는 'GNC 개발자'이다.37
  • 특징: C++/Python 기반의 객체 지향적 조립. 사용자가 시뮬레이션의 모든 요소를 코드로 명시적으로 제어해야 한다.41
  • 채택 모델: 기본값은 가장 단순한 PointMass이다.41 사용자가 SphericalHarmonicsGravityModel 객체를 명시적으로 생성(instantiate)하고 loadGravFromFile 유틸리티 48를 통해 계수 파일(.txt)을 직접 로드해야 한다.

 

C. 최종 제언

 시뮬레이션 목적에 맞는 중력 모델을 선택하는 것은 정확도와 효율성 모두에 중요하다.

 

  1. 초기 궤도 설계 및 표준 임무(LEO, GEO, 달 탐사) 분석: GMAT 사용을 권장한다. LEO 임무에는 EGM96(70x70) 또는 EGM2008(70x70)을, GEO 임무에는 J2 또는 4x4~8x8 저차수 모델 25을 사용하여 정밀도와 속도의 균형을 맞추는 것이 효율적이다.
  2. LEO 위성을 이용한 정밀 측위(PNT) 또는 고해상도 지구 관측 시뮬레이션: GMAT 또는 Basilisk에서 EGM2008 모델을 최소 70x70, 권장 120x120 이상으로 절단하여 사용해야 한다.22
  3. 새로운 GNC 알고리즘 개발, HIL/SIL 시뮬레이션, 또는 소행성 등 비표준 천체 탐사: Basilisk 사용이 필수적이다. Basilisk의 프로그래밍적 유연성 37, 고속 성능 38, 그리고 PolyhedralGravityModel 47과 같은 고급 모델링 옵션이 필요하다.

 

참고 자료

  1. 75E와 105W 지점의 지구 "중력 우물"의 본질에 대해 설명해주세요. : r/AskPhysics - Reddit, 11월 16, 2025에 액세스, https://www.reddit.com/r/AskPhysics/comments/1gn67lv/please_explain_the_nature_of_earths_gravity_wells/?tl=ko
  2. Geopotential spherical harmonic model - Wikipedia, 11월 16, 2025에 액세스, https://en.wikipedia.org/wiki/Geopotential_spherical_harmonic_model
  3. J2 섭동에 의한 궤도요소의 시간 변화율 - 1 - Deep Campus, 11월 16, 2025에 액세스, https://pasus.tistory.com/350
  4. 지구 비대칭 중력장이 정지위성에 미치는 효과 - KoreaScience, 11월 16, 2025에 액세스, https://koreascience.kr/article/JAKO199011920191440.pub?&lang=ko&orgId=kosss
  5. 구면 조화 함수 (Spherical Harmonics) :: 게임 엔진 개발, 11월 16, 2025에 액세스, https://xtozero.tistory.com/2
  6. [양자역학] 6.회전 운동(Rotational Motion)과 구면 조화 함수(Spherical Harmonic Function) :: 시드일지, 11월 16, 2025에 액세스, https://sidreco.tistory.com/28
  7. Comparisons of the Cubed-Sphere Gravity Model with the Spherical Harmonics - Applied Mathematics, 11월 16, 2025에 액세스, https://amath.colorado.edu/faculty/beylkin/papers/JO-BO-BE-2010.pdf
  8. Refinement of GRACE Gravity Model Including Earth's Mean Mass Variations, 11월 16, 2025에 액세스, http://jkess.org/journal/article.php?code=16988
  9. Spherical Harmonic Representation of the Gravity Field Potential 1 Introduction 2 Mathematical Model - NASA, 11월 16, 2025에 액세스, https://spsweb.fltops.jpl.nasa.gov/portaldataops/mpg/MPG_Docs/Source%20Docs/gravity-SphericalHarmonics.pdf
  10. Earth Gravitational Model - Wikipedia, 11월 16, 2025에 액세스, https://en.wikipedia.org/wiki/Earth_Gravitational_Model
  11. Gravity model development for TOPEX/POSEIDON: Joint gravity models 1 and 2 - NASA Technical Reports Server (NTRS), 11월 16, 2025에 액세스, https://ntrs.nasa.gov/citations/19950049098
  12. 1.5.4-1. The standard deviations of the EGM96 and JGM-3 models. - ResearchGate, 11월 16, 2025에 액세스, https://www.researchgate.net/figure/4-1-The-standard-deviations-of-the-EGM96-and-JGM-3-models_fig2_24301437
  13. 11월 16, 2025에 액세스, https://en.wikipedia.org/wiki/Earth_Gravitational_Model#:~:text=The%20official%20Earth%20Gravitational%20Model,model%20of%20the%20global%20gravity.
  14. [논문]GPS/leveling 데이터에 의한 EGM2008 지구중력장모델의 평가, 11월 16, 2025에 액세스, https://scienceon.kisti.re.kr/srch/selectPORSrchArticle.do?cn=JAKO200824359115491
  15. Gravimetric Geoid Modeling - National Geodetic Survey, 11월 16, 2025에 액세스, https://www.ngs.noaa.gov/GEOID/PRESENTATIONS/2009_02_20_ACSM/1_NGS_Roman_USGG2009.pdf
  16. THE EVOLUTION OF EARTH GRAVITATIONAL MODELS USED IN ASTRODYNAMICS - Johns Hopkins APL, 11월 16, 2025에 액세스, https://secwww.jhuapl.edu/techdigest/content/techdigest/pdf/V15-N04/15-04-Vetter.pdf
  17. (PDF) The Joint Gravity Model 3 - ResearchGate, 11월 16, 2025에 액세스, https://www.researchgate.net/publication/253159186_The_Joint_Gravity_Model_3
  18. NASA/TP-1998-206861 (SECTION 1) - cddis, 11월 16, 2025에 액세스, https://cddis.nasa.gov/926/egm96/doc/S_1.HTML
  19. Observations of geographically correlated orbit errors for TOPEX/Poseidon using the global positioning system | CU Experts, 11월 16, 2025에 액세스, https://experts.colorado.edu/display/pubid_75794
  20. Evaluation of EGM 2008 with EGM96 and its Utilization in Topographical Mapping Projects, 11월 16, 2025에 액세스, https://www.researchgate.net/publication/251370782_Evaluation_of_EGM_2008_with_EGM96_and_its_Utilization_in_Topographical_Mapping_Projects
  21. Evaluation of EGM96 and EGM08 based on GPS/Levelling Heights in Egypt - AJOL, 11월 16, 2025에 액세스, https://www.ajol.info/index.php/sajg/article/view/242235/229048
  22. ANALYSIS OF THE GRAVITY MODELS IMPACT ON LEO SATELLITE ORBIT PREDICTION, 11월 16, 2025에 액세스, https://d-nb.info/1256352764/34
  23. Computational Efficiency of a Hybrid Mass Concentration and Spherical Harmonic Modeling - DigitalCommons@USU, 11월 16, 2025에 액세스, https://digitalcommons.usu.edu/cgi/viewcontent.cgi?article=1872&context=etd
  24. Gravity Modeling for Variable Fidelity Environments - NASA Technical Reports Server (NTRS), 11월 16, 2025에 액세스, https://ntrs.nasa.gov/api/citations/20060028164/downloads/20060028164.pdf
  25. Using the General Mission Analysis Tool (GMAT), 11월 16, 2025에 액세스, https://ntrs.nasa.gov/api/citations/20170001580/downloads/20170001580.pdf
  26. DESIGN STRATEGIES FOR LOW THRUST TRANSFERS IN THE EARTH-MOON SYSTEM - Purdue Engineering, 11월 16, 2025에 액세스, https://engineering.purdue.edu/people/kathleen.howell.1/Publications/Masters/2024_Fahey.pdf
  27. A Survey on Low-Thrust Trajectory Optimization Approaches - MDPI, 11월 16, 2025에 액세스, https://www.mdpi.com/2226-4310/8/3/88
  28. AAS 17-253 LOW-THRUST MANY-REVOLUTION TRAJECTORY OPTIMIZATION VIA DIFFERENTIAL DYNAMIC PROGRAMMING AND A SUNDMAN TRANSFORMATION, 11월 16, 2025에 액세스, https://ntrs.nasa.gov/api/citations/20170001473/downloads/20170001473.pdf
  29. GMAT Wiki - Confluence - Atlassian, 11월 16, 2025에 액세스, https://gmat.atlassian.net/wiki/spaces/GW/overview
  30. General Mission Analysis Tool (GMAT) User's Guide, 11월 16, 2025에 액세스, https://ntrs.nasa.gov/api/citations/20080047410/downloads/20080047410.pdf
  31. ForceModelSpec - Google Docs, 11월 16, 2025에 액세스, https://docs.google.com/document/d/1tL2fp7NzYW6DZW6qtb0pLZYqV5YRxLy8AskRScsVRoM/
  32. General Mission Analysis Tool (GMAT Acceptance Test Plan, 11월 16, 2025에 액세스, https://ntrs.nasa.gov/api/citations/20080000867/downloads/20080000867.pdf
  33. Propagator - General Mission Analysis Tool Documentation, 11월 16, 2025에 액세스, https://documentation.help/gmat/Propagator.html
  34. Where can I find gravitation model files for outer planets (Jupiter + Pluto) for NASA GMAT, 11월 16, 2025에 액세스, https://www.reddit.com/r/nasa/comments/1lst6p5/where_can_i_find_gravitation_model_files_for/
  35. General Mission Analysis Tool (GMAT) - Documentation & Help, 11월 16, 2025에 액세스, https://documentation.help/GMAT/documentation.pdf
  36. Chapter 4. Configuring GMAT - General Mission Analysis Tool Documentation, 11월 16, 2025에 액세스, https://documentation.help/gmat/ConfiguringGmat.html
  37. Welcome to Basilisk: an Astrodynamics Simulation Framework - GitHub Pages, 11월 16, 2025에 액세스, https://avslab.github.io/basilisk/
  38. Physics-Informed Neural Networks for Gravity Field Modeling, 11월 16, 2025에 액세스, http://hanspeterschaub.info/Papers/grads/JohnMartin.pdf
  39. scenarioBasicOrbit — Basilisk 2.4.0 documentation - Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/basilisk/examples/scenarioBasicOrbit.html
  40. Integrated Example Scripts — Basilisk 2.4.0 documentation - Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/basilisk/examples/index.html
  41. Module: gravityEffector — Basilisk 2.4.0 documentation - Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/basilisk/Documentation/simulation/dynamics/_GeneralModuleFiles/gravityEffector.html
  42. Module: GravityGradientEffector — Basilisk 2.4.0 documentation - Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/basilisk/Documentation/simulation/dynamics/GravityGradientEffector/GravityGradientEffector.html
  43. Module: gravityModel — Basilisk 2.7.35 documentation, 11월 16, 2025에 액세스, https://hanspeterschaub.info/bskOlderDocs/bsk_2_7_35/Documentation/simulation/dynamics/_GeneralModuleFiles/gravityModel.html
  44. Module: pointMassGravityModel — Basilisk 2.6.0 documentation - Dr. Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/bskOlderDocs/bsk_2_6_0/Documentation/simulation/dynamics/_GeneralModuleFiles/pointMassGravityModel.html
  45. Module: sphericalHarmonicsGravityModel — Basilisk 2.2.5 documentation, 11월 16, 2025에 액세스, https://hanspeterschaub.info/bskOlderDocs/bsk_2_2_5/Documentation/simulation/dynamics/gravityEffector/sphericalHarmonicsGravityModel.html
  46. Basilisk - Dr. Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/basilisk/_downloads/0199e14b38d0024b7b738199843c4143/Basilisk-GravityEffector-20170712.pdf
  47. Module: polyhedralGravityModel — Basilisk 2.7.35 documentation - Dr. Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/bskOlderDocs/bsk_2_7_35/Documentation/simulation/dynamics/gravityEffector/polyhedralGravityModel.html
  48. simIncludeGravBody — Basilisk 2.4.0 documentation - Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/basilisk/Documentation/utilities/simIncludeGravBody.html
  49. test_gravityDynEffector — Basilisk 2.4.0 documentation - Dr. Hanspeter Schaub, 11월 16, 2025에 액세스, https://hanspeterschaub.info/basilisk/_modules/test_gravityDynEffector.html