Use WrapTwoPI. Formatting and wrapping.

feature/19
Daniel Warner 2018-08-27 14:16:14 +01:00 committed by Daniel Warner
parent fc46e6df47
commit 836b67e60c
1 changed files with 25 additions and 21 deletions

View File

@ -704,10 +704,9 @@ void SGP4::DeepSpaceInitialise(
*/ */
const double jday = elements_.Epoch().ToJ2000(); const double jday = elements_.Epoch().ToJ2000();
const double xnodce = 4.5236020 - 9.2422029e-4 * jday; const double xnodce = Util::WrapTwoPI(4.5236020 - 9.2422029e-4 * jday);
const double xnodce_temp = fmod(xnodce, kTWOPI); const double stem = sin(xnodce);
const double stem = sin(xnodce_temp); const double ctem = cos(xnodce);
const double ctem = cos(xnodce_temp);
const double zcosil = 0.91375164 - 0.03568096 * ctem; const double zcosil = 0.91375164 - 0.03568096 * ctem;
const double zsinil = sqrt(1.0 - zcosil * zcosil); const double zsinil = sqrt(1.0 - zcosil * zcosil);
const double zsinhl = 0.089683511 * stem / zsinil; const double zsinhl = 0.089683511 * stem / zsinil;
@ -718,7 +717,7 @@ void SGP4::DeepSpaceInitialise(
double zx = 0.39785416 * stem / zsinil; double zx = 0.39785416 * stem / zsinil;
double zy = zcoshl * ctem + 0.91744867 * zsinhl * stem; double zy = zcoshl * ctem + 0.91744867 * zsinhl * stem;
zx = atan2(zx, zy); zx = atan2(zx, zy);
zx = fmod(gam + zx - xnodce, kTWOPI); zx = gam + zx - xnodce;
const double zcosgl = cos(zx); const double zcosgl = cos(zx);
const double zsingl = sin(zx); const double zsingl = sin(zx);
@ -899,12 +898,12 @@ void SGP4::DeepSpaceInitialise(
deepspace_consts_.del1 = deepspace_consts_.del1 deepspace_consts_.del1 = deepspace_consts_.del1
* f311 * g310 * Q31 * aqnv; * f311 * g310 * Q31 * aqnv;
integrator_consts_.xlamo = elements_.MeanAnomoly() integrator_consts_.xlamo = Util::WrapTwoPI(elements_.MeanAnomoly()
+ elements_.AscendingNode() + elements_.AscendingNode()
+ elements_.ArgumentPerigee() + elements_.ArgumentPerigee()
- deepspace_consts_.gsto; - deepspace_consts_.gsto);
bfact = xmdot + xpidot - kTHDT; bfact = xmdot + xpidot - kTHDT
bfact += deepspace_consts_.ssl + deepspace_consts_.ssl
+ deepspace_consts_.ssg + deepspace_consts_.ssg
+ deepspace_consts_.ssh; + deepspace_consts_.ssh;
} }
@ -1019,31 +1018,36 @@ void SGP4::DeepSpaceInitialise(
double temp = temp1 * ROOT22; double temp = temp1 * ROOT22;
deepspace_consts_.d2201 = temp * f220 * g201; deepspace_consts_.d2201 = temp * f220 * g201;
deepspace_consts_.d2211 = temp * f221 * g211; deepspace_consts_.d2211 = temp * f221 * g211;
temp1 = temp1 * aqnv;
temp1 *= aqnv;
temp = temp1 * ROOT32; temp = temp1 * ROOT32;
deepspace_consts_.d3210 = temp * f321 * g310; deepspace_consts_.d3210 = temp * f321 * g310;
deepspace_consts_.d3222 = temp * f322 * g322; deepspace_consts_.d3222 = temp * f322 * g322;
temp1 = temp1 * aqnv;
temp1 *= aqnv;
temp = 2.0 * temp1 * ROOT44; temp = 2.0 * temp1 * ROOT44;
deepspace_consts_.d4410 = temp * f441 * g410; deepspace_consts_.d4410 = temp * f441 * g410;
deepspace_consts_.d4422 = temp * f442 * g422; deepspace_consts_.d4422 = temp * f442 * g422;
temp1 = temp1 * aqnv;
temp1 *= aqnv;
temp = temp1 * ROOT52; temp = temp1 * ROOT52;
deepspace_consts_.d5220 = temp * f522 * g520; deepspace_consts_.d5220 = temp * f522 * g520;
deepspace_consts_.d5232 = temp * f523 * g532; deepspace_consts_.d5232 = temp * f523 * g532;
temp = 2.0 * temp1 * ROOT54; temp = 2.0 * temp1 * ROOT54;
deepspace_consts_.d5421 = temp * f542 * g521; deepspace_consts_.d5421 = temp * f542 * g521;
deepspace_consts_.d5433 = temp * f543 * g533; deepspace_consts_.d5433 = temp * f543 * g533;
integrator_consts_.xlamo = elements_.MeanAnomoly() integrator_consts_.xlamo = Util::WrapTwoPI(
+ elements_.AscendingNode() elements_.MeanAnomoly()
+ elements_.AscendingNode() + elements_.AscendingNode()
- deepspace_consts_.gsto + elements_.AscendingNode()
- deepspace_consts_.gsto; - deepspace_consts_.gsto
- deepspace_consts_.gsto);
bfact = xmdot bfact = xmdot
+ xnodot + xnodot + xnodot + xnodot
- kTHDT - kTHDT; - kTHDT - kTHDT
bfact = bfact + deepspace_consts_.ssl + deepspace_consts_.ssl
+ deepspace_consts_.ssh + deepspace_consts_.ssh
+ deepspace_consts_.ssh; + deepspace_consts_.ssh;
} }