Classes | Public Member Functions | Static Public Member Functions | Private Attributes | Friends | List of all members
gnsstk::GLOFNavAlm::NumberCruncher Class Reference

Detailed Description

Class to assist in doing all the math to get the XVT.

Definition at line 136 of file GLOFNavAlm.hpp.

#include <GLOFNavAlm.hpp>

Classes

class  Deltas
 

Public Member Functions

bool getXvt (const CommonTime &when, Xvt &xvt, const GLOFNavAlm &alm)
 
 NumberCruncher ()
 Initialize stuff to NaN. More...
 
void setDeltas (double M, double omega, double a, double dt)
 
void setEccArgOfPerigee (double ecc, double omega)
 
void setLambdaBar (double M, double omega, double tau, double n)
 
void setSemiMajorAxisIncl (double deltaT, double deltai, double omega, double ecc)
 

Static Public Member Functions

static double getomegai (double hi, double li, double epsi)
 
static double integrateEin (double Mi, double epsi)
 

Private Attributes

double a
 Semi-major axis (m) More...
 
double cos2lambdaBar
 cos(2*lambdaBar) More...
 
double cos3lambdaBar
 cos(3*lambdaBar) More...
 
double cos4lambdaBar
 cos(4*lambdaBar) More...
 
double cosi
 cos(i) More...
 
double cosi2
 cos(i)**2 More...
 
double coslambdaBar
 cos(lambdaBar) More...
 
Deltas deltas
 Final delta results, not m=1 or m=2. More...
 
double earthvs
 (A_earth/A_SV)**2. More...
 
double ecc2
 ecc**2 More...
 
double ecc2obv
 1-ecc**2 More...
 
double h
 
double i
 Inclination (rad) More...
 
double Jcosi2Term
 JTerm * sini2. More...
 
double Jsini2Term
 JTerm * sini2. More...
 
double JsinTerm
 JTerm * (1-TH*sini2) More...
 
double JTerm
 J * earthvs. More...
 
double l
 
double lambdaBar
 
double n
 2pi/Tdeltap. More...
 
double nu
 
double sin2lambdaBar
 sin(2*lambdaBar) More...
 
double sin3lambdaBar
 sin(3*lambdaBar) More...
 
double sin4lambdaBar
 sin(4*lambdaBar) More...
 
double sini
 sin(i) More...
 
double sini2
 sin(i)**2 More...
 
double sinlambdaBar
 sin(lambdaBar) More...
 
double tau
 
double Tdeltap
 deltaT + half day for some reason. More...
 

Friends

class Deltas
 

Constructor & Destructor Documentation

◆ NumberCruncher()

gnsstk::GLOFNavAlm::NumberCruncher::NumberCruncher ( )

Initialize stuff to NaN.

Definition at line 237 of file GLOFNavAlm.cpp.

Member Function Documentation

◆ getomegai()

double gnsstk::GLOFNavAlm::NumberCruncher::getomegai ( double  hi,
double  li,
double  epsi 
)
static

Get the value for ωi given the already computed values for hi, li and εi.

Parameters
[in]hiValue hi as computed by getXvt().
[in]liValue li as computed by getXvt().
[in]epsiValue εi as computed by getXvt().
Returns
The appropriate value for ωi (see Appendix A.3.2.2, probably the Russian-language version as the formatting in the English version is a mess).

Definition at line 410 of file GLOFNavAlm.cpp.

◆ getXvt()

bool gnsstk::GLOFNavAlm::NumberCruncher::getXvt ( const CommonTime when,
Xvt xvt,
const GLOFNavAlm alm 
)

Definition at line 453 of file GLOFNavAlm.cpp.

◆ integrateEin()

double gnsstk::GLOFNavAlm::NumberCruncher::integrateEin ( double  Mi,
double  epsi 
)
static

Numerically integrate to get E_i^(n).

Parameters
[in]MiValue Mi as computed by getXvt().
[in]epsiValue εi as computed by getXvt().
Returns
The integrated E_i^(n).

Definition at line 439 of file GLOFNavAlm.cpp.

◆ setDeltas()

void gnsstk::GLOFNavAlm::NumberCruncher::setDeltas ( double  M,
double  omega,
double  a,
double  dt 
)

Set the deltas values.

Parameters
[in]MComputed mean anomaly, I think.
[in]omegaArgument of perigee.
[in]aSatellite orbit semi-major axis.
[in]dtThe delta time in seconds, τ=ti-tλk named dt instead of tau here to avoid confusion with other tau.
Precondition
coslambdaBar, sinlambdaBar, cos2lambdaBar, sin2lambdaBar, cos3lambdaBar, sin3lambdaBar, cos4lambdaBar, sin4lambdaBar, tau, n, l, h, JTerm, JsinTerm, Jsini2Term, Jcosi2term must be set.

Definition at line 383 of file GLOFNavAlm.cpp.

◆ setEccArgOfPerigee()

void gnsstk::GLOFNavAlm::NumberCruncher::setEccArgOfPerigee ( double  ecc,
double  omega 
)

Set terms related to eccentricity and argument of perigee

Parameters
[in]eccThe satellite's orbital eccentricity.
[in]omegaThe satellite's orbital argument of perigee.
Postcondition
h and l are set.

Definition at line 271 of file GLOFNavAlm.cpp.

◆ setLambdaBar()

void gnsstk::GLOFNavAlm::NumberCruncher::setLambdaBar ( double  M,
double  omega,
double  tau,
double  n 
)

Set lambdaBar and related data members according to the given values.

Parameters
[in]MComputed mean anomaly, I think.
[in]omegaArgument of perigee.
[in]tauEither 0 or time between ti and tλk in seconds (see the mess of math in the ICD or the implementation in setDeltas).
[in]nthe value of n (2pi/Tdeltap) as computed by GLOFNavAlm::setSemiMajorAxisIncl.
Postcondition
lambdabar, coslambdaBar, sinlambdaBar, cos2lambdaBar, sin2lambdaBar, cos3lambdaBar, sin3lambdaBar, cos4lambdaBar, sin4lambdaBar are set.

Definition at line 361 of file GLOFNavAlm.cpp.

◆ setSemiMajorAxisIncl()

void gnsstk::GLOFNavAlm::NumberCruncher::setSemiMajorAxisIncl ( double  deltaT,
double  deltai,
double  omega,
double  ecc 
)

Set terms related to the orbit semi-major axis and inclination.

Parameters
[in]deltaTDelta T parameter from broadcast almanac.
[in]deltaiDelta i parameter from broadcast almanac.
[in]omegaomega (lower-case) parameter from broadcast almanac.
[in]eccepsilon (lower-case) parameter from broadcast almanac (eccentricity).

Definition at line 288 of file GLOFNavAlm.cpp.

Friends And Related Function Documentation

◆ Deltas

friend class Deltas
friend

Definition at line 267 of file GLOFNavAlm.hpp.

Member Data Documentation

◆ a

double gnsstk::GLOFNavAlm::NumberCruncher::a
private

Semi-major axis (m)

Definition at line 243 of file GLOFNavAlm.hpp.

◆ cos2lambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::cos2lambdaBar
private

cos(2*lambdaBar)

Definition at line 247 of file GLOFNavAlm.hpp.

◆ cos3lambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::cos3lambdaBar
private

cos(3*lambdaBar)

Definition at line 249 of file GLOFNavAlm.hpp.

◆ cos4lambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::cos4lambdaBar
private

cos(4*lambdaBar)

Definition at line 251 of file GLOFNavAlm.hpp.

◆ cosi

double gnsstk::GLOFNavAlm::NumberCruncher::cosi
private

cos(i)

Definition at line 256 of file GLOFNavAlm.hpp.

◆ cosi2

double gnsstk::GLOFNavAlm::NumberCruncher::cosi2
private

cos(i)**2

Definition at line 257 of file GLOFNavAlm.hpp.

◆ coslambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::coslambdaBar
private

cos(lambdaBar)

Definition at line 245 of file GLOFNavAlm.hpp.

◆ deltas

Deltas gnsstk::GLOFNavAlm::NumberCruncher::deltas
private

Final delta results, not m=1 or m=2.

Definition at line 266 of file GLOFNavAlm.hpp.

◆ earthvs

double gnsstk::GLOFNavAlm::NumberCruncher::earthvs
private

(A_earth/A_SV)**2.

Definition at line 253 of file GLOFNavAlm.hpp.

◆ ecc2

double gnsstk::GLOFNavAlm::NumberCruncher::ecc2
private

ecc**2

Definition at line 264 of file GLOFNavAlm.hpp.

◆ ecc2obv

double gnsstk::GLOFNavAlm::NumberCruncher::ecc2obv
private

1-ecc**2

Definition at line 265 of file GLOFNavAlm.hpp.

◆ h

double gnsstk::GLOFNavAlm::NumberCruncher::h
private

Definition at line 262 of file GLOFNavAlm.hpp.

◆ i

double gnsstk::GLOFNavAlm::NumberCruncher::i
private

Inclination (rad)

Definition at line 244 of file GLOFNavAlm.hpp.

◆ Jcosi2Term

double gnsstk::GLOFNavAlm::NumberCruncher::Jcosi2Term
private

JTerm * sini2.

Definition at line 261 of file GLOFNavAlm.hpp.

◆ Jsini2Term

double gnsstk::GLOFNavAlm::NumberCruncher::Jsini2Term
private

JTerm * sini2.

Definition at line 260 of file GLOFNavAlm.hpp.

◆ JsinTerm

double gnsstk::GLOFNavAlm::NumberCruncher::JsinTerm
private

JTerm * (1-TH*sini2)

Definition at line 259 of file GLOFNavAlm.hpp.

◆ JTerm

double gnsstk::GLOFNavAlm::NumberCruncher::JTerm
private

J * earthvs.

Definition at line 258 of file GLOFNavAlm.hpp.

◆ l

double gnsstk::GLOFNavAlm::NumberCruncher::l
private

Definition at line 263 of file GLOFNavAlm.hpp.

◆ lambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::lambdaBar
private

Definition at line 238 of file GLOFNavAlm.hpp.

◆ n

double gnsstk::GLOFNavAlm::NumberCruncher::n
private

2pi/Tdeltap.

Definition at line 242 of file GLOFNavAlm.hpp.

◆ nu

double gnsstk::GLOFNavAlm::NumberCruncher::nu
private

Definition at line 240 of file GLOFNavAlm.hpp.

◆ sin2lambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::sin2lambdaBar
private

sin(2*lambdaBar)

Definition at line 248 of file GLOFNavAlm.hpp.

◆ sin3lambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::sin3lambdaBar
private

sin(3*lambdaBar)

Definition at line 250 of file GLOFNavAlm.hpp.

◆ sin4lambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::sin4lambdaBar
private

sin(4*lambdaBar)

Definition at line 252 of file GLOFNavAlm.hpp.

◆ sini

double gnsstk::GLOFNavAlm::NumberCruncher::sini
private

sin(i)

Definition at line 254 of file GLOFNavAlm.hpp.

◆ sini2

double gnsstk::GLOFNavAlm::NumberCruncher::sini2
private

sin(i)**2

Definition at line 255 of file GLOFNavAlm.hpp.

◆ sinlambdaBar

double gnsstk::GLOFNavAlm::NumberCruncher::sinlambdaBar
private

sin(lambdaBar)

Definition at line 246 of file GLOFNavAlm.hpp.

◆ tau

double gnsstk::GLOFNavAlm::NumberCruncher::tau
private

Definition at line 239 of file GLOFNavAlm.hpp.

◆ Tdeltap

double gnsstk::GLOFNavAlm::NumberCruncher::Tdeltap
private

deltaT + half day for some reason.

Definition at line 241 of file GLOFNavAlm.hpp.


The documentation for this class was generated from the following files:


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:44