From 09f9da3bf9ef9f1d33b984bfe209c4d214da08d2 Mon Sep 17 00:00:00 2001 From: Daniel Warner Date: Tue, 29 Mar 2011 17:52:34 +0100 Subject: [PATCH] Changes to mean motion / semi major axis recovery --- SGDP4.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/SGDP4.cpp b/SGDP4.cpp index c542b40..ab4f948 100644 --- a/SGDP4.cpp +++ b/SGDP4.cpp @@ -91,12 +91,13 @@ void SGDP4::SetTle(const Tle& tle) { double eosq = Eccentricity() * Eccentricity(); double betao2 = 1.0 - eosq; double betao = sqrt(betao2); - double del1 = 1.5 * constants_.CK2 * i_x3thm1_ / (a1 * a1 * betao * betao2); - double ao = a1 * (1.0 - del1 * (0.5 * constants_.TWOTHRD + del1 * (1.0 + 134.0 / 81.0 * del1))); - double delo = 1.5 * constants_.CK2 * i_x3thm1_ / (ao * ao * betao * betao2); + double temp = (1.5 * constants_.CK2) * i_x3thm1_ / (betao * betao2); + double del1 = temp / (a1 * a1); + double a0 = a1 * (1.0 - del1 * (1.0 / 3.0 + del1 * (1.0 + del1 * 134.0 / 81.0))); + double del0 = temp / (a0 * a0); - recovered_mean_motion_ = MeanMotion() / (1.0 + delo); - recovered_semi_major_axis_ = ao / (1.0 - delo); + recovered_mean_motion_ = MeanMotion() / (1.0 + del0); + recovered_semi_major_axis_ = a0 / (1.0 - del0); /* * find perigee and period