LifetimeOrbitPropagator Class |
Namespace: AGI.Foundation.Propagators
The LifetimeOrbitPropagator type exposes the following members.
Name | Description | |
---|---|---|
LifetimeOrbitPropagator | Initializes a new instance. |
Name | Description | |
---|---|---|
AtmosphericDensity |
Gets or sets the model for atmospheric density. This includes the data to use for geomagnetic flux
and solar radiation. However, this instance will be copied and the TargetPoint
will be replaced during propagation with the position determined by this propagator.
| |
CentralBody |
Gets or sets the instance to use to define the principal frame and shape of the central body.
By default, this is the EarthCentralBody from the CentralBodiesFacet.
| |
DecayAltitude |
Gets or sets the altitude to use to determine when a satellite will permanently decay.
This is the point at which the orbit has decayed and calculations stop.
By default, this is 65,000 meters.
| |
DragCoefficient |
Gets or sets the coefficient of drag associated with the aerodynamic profile of the satellite.
The propagator takes into account the ScalarAtmosphericDensity and DragCrossSectionalArea
and the drag coefficient provides a proportional measure of how much the body is affected by atmospheric drag.
This value must not be negative and is usually in the range between 2.0 and 2.2.
| |
DragCrossSectionalArea |
Gets or sets the mean area of the satellite which is presented perpendicular to the relative velocity
of the atmosphere and produces drag. The area is measured in square meters and is often different
from the area used for reflectivity.
| |
DurationLimit |
Gets or sets the maximum total time to spend propagating, based on the OrbitLimitType.
By default, this is set to 10 years.
| |
InitialConditions |
Gets or sets the mean elements representing the initial conditions of the orbit. These elements
commonly represent the position in the "True of Date" frame.
| |
InitialEpoch |
Gets or sets the time at which the InitialConditions are valid.
| |
IsFrozen |
Gets a value indicating whether this object is frozen. A frozen object cannot be modified and an
ObjectFrozenException will be thrown if an attempt is made to do so.
(Inherited from DefinitionalObject.) | |
NumberOfGaussianQuadratures |
Gets or sets the number of Gaussian quadratures to use when integrating. Like the OrbitsPerCalculation,
this parameter directly affects the performance of the propagator as well as the accuracy of its results.
The drag integration routine is performed by N 9-point Gaussian quadratures per orbit, where N is the number set here.
By default, this is set to 6 to ensure accuracy, but can be lowered to improve performance. To determine lifetime,
the routine approximately integrates the slowly varying orbit elements over time. It does this by integrating
over one orbit to determine the rate-of-change of each variable, and then assumes this rate is constant for N number of
OrbitsPerCalculation. The integration of 1 orbit is done over N sub-arcs when N is the number of quadratures.
The sub-arcs are of constant angular measure (in true anomaly, not time). To increase accuracy, make N larger.
Each sub-arc is integrated using a 9-point Gaussian quadrature (i.e. there are 9 sample points within each sub-arc).
Highly eccentric satellites, which are in higher drag regimes for very short times compared with their period will need
to take much higher numbers of gaussian quadratures to ensure that drag is sampled adequately.
| |
OrbitCountLimit |
Gets or sets the number of orbits past which to stop propagation. This limits the runtime
of the propagator, based on the OrbitLimitType.
By default, this is set to 100,000 orbits.
| |
OrbitLimitType |
Gets or sets the limitation for when the lifetime propagator calculation should stop its iteration.
| |
OrbitsPerCalculation |
Gets or sets the number of complete orbits to propagate as part of a single iteration of the integration
of the orbital parameters over time. This parameter allows you to control the performance of the propagator directly.
The fewer orbits per calculation, the more precise the estimate will be, but at the expense of computation time. The
higher number of orbits per calculation, the less precise the estimate will be, but calculations complete much faster.
By default, this is set to 1 orbit, but 10 can be used for a faster approximation.
| |
ReflectiveCrossSectionalArea |
Gets or sets the mean area presented to the illuminating body (the Sun) during propagation, in square meters.
This area is often different from the cross section used for drag.
| |
ReflectivityCoefficient |
Gets or sets the coefficient of reflectivity for the satellite. A value of zero indicates the
satellite is transparent to solar radiation. A value of one indicates the satellite completely
absorbs all the solar radiation perfectly. A value of 5/3 means that it is flat and reflects all incoming light diffusely.
A value of 2 means that it is flat and reflects all incoming light specularly.
| |
SatelliteMass |
Gets or sets the mass of the satellite, in kilograms.
| |
UseRotatingAtmosphere |
Gets or sets a value indicating whether to model the atmosphere as rotating rather than static. This models the west-to-east winds
induced by atmospheric rotation over the Earth. By default, this is false.
| |
UseSecondOrderOblatenessCorrection |
Gets or sets a value indicating whether to use second order oblateness (J2) correction when propagating the mean orbital elements.
By default, this is true.
|
Name | Description | |
---|---|---|
Clone |
Clones this object using the specified context.
(Overrides DefinitionalObjectClone(CopyContext).) | |
ComputeLifetime |
Compute the set of metrics describing the time history of the orbit as well
as the number of orbit revolutions and the time at which the orbit is expected to decay.
Note that if the propagation reaches the OrbitCountLimit or DurationLimit
the results will not represent a decayed orbit. This can also happen if there is a problem
with the initial state or something else went wrong during propagation. Check the
Status in order to determine whether the calculation
completed successfully.
| |
ComputeLifetime(ITrackCalculationProgress) |
Compute the set of metrics describing the time history of the orbit as well
as the number of orbit revolutions and the time at which the orbit is expected to decay.
Note that if the propagation reaches the OrbitCountLimit or DurationLimit
the results will not represent a decayed orbit. This can also happen if there is a problem
with the initial state or something else went wrong during propagation. Check the
Status in order to determine whether the calculation
completed successfully.
| |
EnumerateDependencies |
Enumerates the dependencies of this object by calling
EnumerateT(T) for each object that this object directly depends upon.
Derived classes which contain additional dependencies MUST override this method, call the base
implementation, and enumerate dependencies introduced by the derived class.
(Overrides DefinitionalObjectEnumerateDependencies(DependencyEnumerator).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Freeze |
Freezes this object. Further attempts to modify it will result
in an ObjectFrozenException.
(Inherited from DefinitionalObject.) | |
GetDefinitionHashCode |
Gets a hash code representing the definition of this object.
(Inherited from DefinitionalObject.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
IsSameDefinition |
Determines if this object has the same definition as another object.
(Inherited from DefinitionalObject.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |