Click or drag to resize

LifetimeOrbitPropagator Class

Propagates a set of initial conditions using a long-term propagation technique to determine when the orbit is expected to decay, based on the evolution of the mean orbital elements under the effects of gravitational, atmospheric, and solar perturbations.
Inheritance Hierarchy

Namespace:  AGI.Foundation.Propagators
Assembly:  AGI.Foundation.OrbitPropagation (in AGI.Foundation.OrbitPropagation.dll) Version: 24.3.420.0 (24.3.420.0)
Syntax
public sealed class LifetimeOrbitPropagator : DefinitionalObject

The LifetimeOrbitPropagator type exposes the following members.

Constructors
  NameDescription
Public methodLifetimeOrbitPropagator
Initializes a new instance.
Top
Properties
  NameDescription
Public propertyAtmosphericDensity
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.
Public propertyCentralBody
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.
Public propertyDecayAltitude
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.
Public propertyDragCoefficient
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.
Public propertyDragCrossSectionalArea
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.
Public propertyDurationLimit
Gets or sets the maximum total time to spend propagating, based on the OrbitLimitType. By default, this is set to 10 years.
Public propertyInitialConditions
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.
Public propertyInitialEpoch
Gets or sets the time at which the InitialConditions are valid.
Public propertyIsFrozen
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.)
Public propertyNumberOfGaussianQuadratures
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.
Public propertyOrbitCountLimit
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.
Public propertyOrbitLimitType
Gets or sets the limitation for when the lifetime propagator calculation should stop its iteration.
Public propertyOrbitsPerCalculation
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.
Public propertyReflectiveCrossSectionalArea
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.
Public propertyReflectivityCoefficient
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.
Public propertySatelliteMass
Gets or sets the mass of the satellite, in kilograms.
Public propertyUseRotatingAtmosphere
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.
Public propertyUseSecondOrderOblatenessCorrection
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.
Top
Methods
  NameDescription
Public methodClone
Clones this object using the specified context.
(Overrides DefinitionalObjectClone(CopyContext).)
Public methodComputeLifetime
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.
Public methodComputeLifetime(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.
Public methodEnumerateDependencies
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).)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodFreeze
Freezes this object. Further attempts to modify it will result in an ObjectFrozenException.
(Inherited from DefinitionalObject.)
Public methodGetDefinitionHashCode
Gets a hash code representing the definition of this object.
(Inherited from DefinitionalObject.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIsSameDefinition
Determines if this object has the same definition as another object.
(Inherited from DefinitionalObject.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
See Also