Kepler State Transition Matrix (MEX)

Compute Kepler state transition matrix for an arbitrary number of time steps. M and C++ version.

https://github.com/rodyo/FEX-KeplerSTM

이 제출물을 팔로우합니다

The Kepler State transition matrix provides a way to progress any given state vector for a given time step, without having to perform a lengthy triple-coordinate conversion (from Cartesian coordinates to Kepler elements, progressing, and back). This procedure has been generalized and greatly optimized for computational efficiency by Shepperd (1985)[1], who
used continued fractions to calculate the corresponding solution to Kepler's equation. The resulting algorithm is an order of magnitude faster that mentioned triple coordinate conversion, which makes it very well suited as a basis for a number of other algorithms that require frequent progressing of state vectors.
This procedure implements a robust version of this algorithm. A small correction to the original version was made: instead of Newton's method to update the Kepler-loop, a Halley-step is used. This change makes the algorithm much more robust while increasing the rate of convergence even further. If the algorithm fails however (which SHOULD never occur), the slower triple-coordinate conversion is automatically started.
Both a M-version and a C++-version have been included in this submission. The C++ version can be compiled by issuing
mex progress_orbit.c

at the MATLAB command prompt (when in the correct directory). After compiling (let me know what goes wrong) you can run a small demo (test_STM.m) which will produce something similar to the screenshot on top here; a plot of the factor by which the MEX version outperforms the M-version. On my computer this was 5.5 times faster on average, sometimes peaking to no less than 260 times faster.

References:
[1] S.W. Shepperd, "Universal Keplerian State Transition Matrix". Celestial Mechanics 35(1985) pp. 129--144, DOI: 0008-8714/85.15

인용 양식

Rody Oldenhuis (2026). Kepler State Transition Matrix (MEX) (https://github.com/rodyo/FEX-KeplerSTM/releases/tag/v1.4), GitHub. 검색 날짜: .

카테고리

Help CenterMATLAB Answers에서 Guidance, Navigation, and Control (GNC)에 대해 자세히 알아보기

MATLAB 릴리스 호환 정보

  • 모든 릴리스와 호환

플랫폼 호환성

  • Windows
  • macOS
  • Linux

GitHub 디폴트 브랜치를 사용하는 버전은 다운로드할 수 없음

버전 퍼블리시됨 릴리스 정보 Action
1.4

See release notes for this release on GitHub: https://github.com/rodyo/FEX-KeplerSTM/releases/tag/v1.4

1.3.0.0

[linked to Github]

1.2.0.0

Updated contact info (this time, WITH the file!)

1.1.0.0

Updated contact info

1.0.0.0

이 GitHub 애드온의 문제를 보거나 보고하려면 GitHub 리포지토리로 가십시오.
이 GitHub 애드온의 문제를 보거나 보고하려면 GitHub 리포지토리로 가십시오.