parent
836b67e60c
commit
a7d72d70e4
|
@ -235,7 +235,7 @@ Eci SGP4::FindPositionSDP4(double tsince) const
|
||||||
double omega;
|
double omega;
|
||||||
double xl;
|
double xl;
|
||||||
double xnode;
|
double xnode;
|
||||||
double xincl;
|
double xinc;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* update for secular gravity and atmospheric drag
|
* update for secular gravity and atmospheric drag
|
||||||
|
@ -254,10 +254,10 @@ Eci SGP4::FindPositionSDP4(double tsince) const
|
||||||
double templ = common_consts_.t2cof * tsq;
|
double templ = common_consts_.t2cof * tsq;
|
||||||
|
|
||||||
double xn = elements_.RecoveredMeanMotion();
|
double xn = elements_.RecoveredMeanMotion();
|
||||||
e = elements_.Eccentricity();
|
double em = elements_.Eccentricity();
|
||||||
xincl = elements_.Inclination();
|
xinc = elements_.Inclination();
|
||||||
|
|
||||||
DeepSpaceSecular(tsince, xmdf, omgadf, xnode, e, xincl, xn);
|
DeepSpaceSecular(tsince, xmdf, omgadf, xnode, em, xinc, xn);
|
||||||
|
|
||||||
if (xn <= 0.0)
|
if (xn <= 0.0)
|
||||||
{
|
{
|
||||||
|
@ -265,18 +265,18 @@ Eci SGP4::FindPositionSDP4(double tsince) const
|
||||||
}
|
}
|
||||||
|
|
||||||
a = pow(kXKE / xn, kTWOTHIRD) * tempa * tempa;
|
a = pow(kXKE / xn, kTWOTHIRD) * tempa * tempa;
|
||||||
e -= tempe;
|
e = em - tempe;
|
||||||
double xmam = xmdf + elements_.RecoveredMeanMotion() * templ;
|
double xmam = xmdf + elements_.RecoveredMeanMotion() * templ;
|
||||||
|
|
||||||
DeepSpacePeriodics(tsince, e, xincl, omgadf, xnode, xmam);
|
DeepSpacePeriodics(tsince, e, xinc, omgadf, xnode, xmam);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* keeping xincl positive important unless you need to display xincl
|
* keeping xinc positive important unless you need to display xinc
|
||||||
* and dislike negative inclinations
|
* and dislike negative inclinations
|
||||||
*/
|
*/
|
||||||
if (xincl < 0.0)
|
if (xinc < 0.0)
|
||||||
{
|
{
|
||||||
xincl = -xincl;
|
xinc = -xinc;
|
||||||
xnode += kPI;
|
xnode += kPI;
|
||||||
omgadf -= kPI;
|
omgadf -= kPI;
|
||||||
}
|
}
|
||||||
|
@ -310,7 +310,7 @@ Eci SGP4::FindPositionSDP4(double tsince) const
|
||||||
double perturbed_x7thm1;
|
double perturbed_x7thm1;
|
||||||
double perturbed_xlcof;
|
double perturbed_xlcof;
|
||||||
double perturbed_aycof;
|
double perturbed_aycof;
|
||||||
RecomputeConstants(xincl,
|
RecomputeConstants(xinc,
|
||||||
perturbed_sinio,
|
perturbed_sinio,
|
||||||
perturbed_cosio,
|
perturbed_cosio,
|
||||||
perturbed_x3thm1,
|
perturbed_x3thm1,
|
||||||
|
@ -328,7 +328,7 @@ Eci SGP4::FindPositionSDP4(double tsince) const
|
||||||
omega,
|
omega,
|
||||||
xl,
|
xl,
|
||||||
xnode,
|
xnode,
|
||||||
xincl,
|
xinc,
|
||||||
perturbed_xlcof,
|
perturbed_xlcof,
|
||||||
perturbed_aycof,
|
perturbed_aycof,
|
||||||
perturbed_x3thm1,
|
perturbed_x3thm1,
|
||||||
|
@ -338,7 +338,7 @@ Eci SGP4::FindPositionSDP4(double tsince) const
|
||||||
perturbed_sinio);
|
perturbed_sinio);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SGP4::RecomputeConstants(const double xincl,
|
void SGP4::RecomputeConstants(const double xinc,
|
||||||
double& sinio,
|
double& sinio,
|
||||||
double& cosio,
|
double& cosio,
|
||||||
double& x3thm1,
|
double& x3thm1,
|
||||||
|
@ -347,8 +347,8 @@ void SGP4::RecomputeConstants(const double xincl,
|
||||||
double& xlcof,
|
double& xlcof,
|
||||||
double& aycof)
|
double& aycof)
|
||||||
{
|
{
|
||||||
sinio = sin(xincl);
|
sinio = sin(xinc);
|
||||||
cosio = cos(xincl);
|
cosio = cos(xinc);
|
||||||
|
|
||||||
const double theta2 = cosio * cosio;
|
const double theta2 = cosio * cosio;
|
||||||
|
|
||||||
|
@ -378,7 +378,7 @@ Eci SGP4::FindPositionSGP4(double tsince) const
|
||||||
double omega;
|
double omega;
|
||||||
double xl;
|
double xl;
|
||||||
double xnode;
|
double xnode;
|
||||||
const double xincl = elements_.Inclination();
|
const double xinc = elements_.Inclination();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* update for secular gravity and atmospheric drag
|
* update for secular gravity and atmospheric drag
|
||||||
|
@ -451,7 +451,7 @@ Eci SGP4::FindPositionSGP4(double tsince) const
|
||||||
omega,
|
omega,
|
||||||
xl,
|
xl,
|
||||||
xnode,
|
xnode,
|
||||||
xincl,
|
xinc,
|
||||||
common_consts_.xlcof,
|
common_consts_.xlcof,
|
||||||
common_consts_.aycof,
|
common_consts_.aycof,
|
||||||
common_consts_.x3thm1,
|
common_consts_.x3thm1,
|
||||||
|
@ -468,7 +468,7 @@ Eci SGP4::CalculateFinalPositionVelocity(
|
||||||
const double omega,
|
const double omega,
|
||||||
const double xl,
|
const double xl,
|
||||||
const double xnode,
|
const double xnode,
|
||||||
const double xincl,
|
const double xinc,
|
||||||
const double xlcof,
|
const double xlcof,
|
||||||
const double aycof,
|
const double aycof,
|
||||||
const double x3thm1,
|
const double x3thm1,
|
||||||
|
@ -600,7 +600,7 @@ Eci SGP4::CalculateFinalPositionVelocity(
|
||||||
+ 0.5 * temp42 * x1mth2 * cos2u;
|
+ 0.5 * temp42 * x1mth2 * cos2u;
|
||||||
const double uk = u - 0.25 * temp43 * x7thm1 * sin2u;
|
const double uk = u - 0.25 * temp43 * x7thm1 * sin2u;
|
||||||
const double xnodek = xnode + 1.5 * temp43 * cosio * sin2u;
|
const double xnodek = xnode + 1.5 * temp43 * cosio * sin2u;
|
||||||
const double xinck = xincl + 1.5 * temp43 * cosio * sinio * cos2u;
|
const double xinck = xinc + 1.5 * temp43 * cosio * sinio * cos2u;
|
||||||
const double rdotk = rdot - xn * temp42 * x1mth2 * sin2u;
|
const double rdotk = rdot - xn * temp42 * x1mth2 * sin2u;
|
||||||
const double rfdotk = rfdot + xn * temp42 * (x1mth2 * cos2u + 1.5 * x3thm1);
|
const double rfdotk = rfdot + xn * temp42 * (x1mth2 * cos2u + 1.5 * x3thm1);
|
||||||
|
|
||||||
|
@ -1178,10 +1178,10 @@ void SGP4::DeepSpacePeriodics(
|
||||||
/*
|
/*
|
||||||
* apply periodics directly
|
* apply periodics directly
|
||||||
*/
|
*/
|
||||||
const double tmp_ph = ph / sinis;
|
ph /= sinis;
|
||||||
|
|
||||||
omgasm += pgh - cosis * tmp_ph;
|
omgasm += pgh - cosis * ph;
|
||||||
xnodes += tmp_ph;
|
xnodes += ph;
|
||||||
xll += pl;
|
xll += pl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -188,7 +188,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
void Initialise();
|
void Initialise();
|
||||||
static void RecomputeConstants(const double xincl,
|
static void RecomputeConstants(const double xinc,
|
||||||
double& sinio,
|
double& sinio,
|
||||||
double& cosio,
|
double& cosio,
|
||||||
double& x3thm1,
|
double& x3thm1,
|
||||||
|
@ -205,7 +205,7 @@ private:
|
||||||
const double omega,
|
const double omega,
|
||||||
const double xl,
|
const double xl,
|
||||||
const double xnode,
|
const double xnode,
|
||||||
const double xincl,
|
const double xinc,
|
||||||
const double xlcof,
|
const double xlcof,
|
||||||
const double aycof,
|
const double aycof,
|
||||||
const double x3thm1,
|
const double x3thm1,
|
||||||
|
|
Loading…
Reference in New Issue