Class KnockeRediffusedForceModel

  • All Implemented Interfaces:
    ForceModel, EventDetectorsProvider, ParameterDriversProvider

    public class KnockeRediffusedForceModel
    extends Object
    implements ForceModel
    The Knocke Earth Albedo and IR emission force model.

    This model is based on "EARTH RADIATION PRESSURE EFFECTS ON SATELLITES", 1988, by P. C. Knocke, J. C. Ries, and B. D. Tapley.

    This model represents the effects of radiation pressure coming from the Earth. It considers Solar radiation which has been reflected by Earth (albedo) and Earth infrared emissions. The planet is considered as a sphere and is divided into elementary areas. Each elementary area is considered as a plane and emits radiation according to Lambert's law. The flux the satellite receives is then equal to the sum of the elementary fluxes coming from Earth.

    The radiative model of the satellite, and its ability to diffuse, reflect or absorb radiation is handled by a radiation sensitive model.

    Caution: This model is only suitable for Earth. Using it with another central body is prone to error..

    Since:
    10.3
    Author:
    Thomas Paulet
    • Constructor Detail

      • KnockeRediffusedForceModel

        @DefaultDataContext
        public KnockeRediffusedForceModel​(ExtendedPVCoordinatesProvider sun,
                                          RadiationSensitive spacecraft,
                                          double equatorialRadius,
                                          double angularResolution)
        Default Constructor.

        This constructor uses the default data context

        .
        Parameters:
        sun - Sun model
        spacecraft - the object physical and geometrical information
        equatorialRadius - the Earth equatorial radius in m
        angularResolution - angular resolution in rad
      • KnockeRediffusedForceModel

        public KnockeRediffusedForceModel​(ExtendedPVCoordinatesProvider sun,
                                          RadiationSensitive spacecraft,
                                          double equatorialRadius,
                                          double angularResolution,
                                          TimeScale utc)
        General constructor.
        Parameters:
        sun - Sun model
        spacecraft - the object physical and geometrical information
        equatorialRadius - the Earth equatorial radius in m
        angularResolution - angular resolution in rad
        utc - the UTC time scale to define reference epoch
    • Method Detail

      • dependsOnPositionOnly

        public boolean dependsOnPositionOnly()
        Check if force model depends on position only at a given, fixed date.
        Specified by:
        dependsOnPositionOnly in interface ForceModel
        Returns:
        true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on attitude
      • acceleration

        public Vector3D acceleration​(SpacecraftState s,
                                     double[] parameters)
        Compute acceleration.
        Specified by:
        acceleration in interface ForceModel
        Parameters:
        s - current state information: date, kinematics, attitude
        parameters - values of the force model parameters at state date, only 1 value for each parameterDriver
        Returns:
        acceleration in same frame as state
      • acceleration

        public <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration​(FieldSpacecraftState<T> s,
                                                                                 T[] parameters)
        Compute acceleration.
        Specified by:
        acceleration in interface ForceModel
        Type Parameters:
        T - type of the elements
        Parameters:
        s - current state information: date, kinematics, attitude
        parameters - values of the force model parameters at state date, only 1 value for each parameterDriver
        Returns:
        acceleration in same frame as state
      • computeAlbedo

        public double computeAlbedo​(AbsoluteDate date,
                                    double phi)
        Compute Earth albedo. Albedo value represents the fraction of solar radiative flux that is reflected by Earth. Its value is in [0;1].
        Parameters:
        date - the date
        phi - the equatorial latitude in rad
        Returns:
        the albedo in [0;1]
      • computeAlbedo

        public <T extends CalculusFieldElement<T>> T computeAlbedo​(FieldAbsoluteDate<T> date,
                                                                   T phi)
        Compute Earth albedo. Albedo value represents the fraction of solar radiative flux that is reflected by Earth. Its value is in [0;1].
        Type Parameters:
        T - extends CalculusFieldElement
        Parameters:
        date - the date
        phi - the equatorial latitude in rad
        Returns:
        the albedo in [0;1]
      • computeEmissivity

        public double computeEmissivity​(AbsoluteDate date,
                                        double phi)
        Compute Earth emisivity. Emissivity is used to compute the infrared flux that is emitted by Earth. Its value is in [0;1].
        Parameters:
        date - the date
        phi - the equatorial latitude in rad
        Returns:
        the emissivity in [0;1]
      • computeEmissivity

        public <T extends CalculusFieldElement<T>> T computeEmissivity​(FieldAbsoluteDate<T> date,
                                                                       T phi)
        Compute Earth emisivity. Emissivity is used to compute the infrared flux that is emitted by Earth. Its value is in [0;1].
        Type Parameters:
        T - extends CalculusFieldElement
        Parameters:
        date - the date
        phi - the equatorial latitude in rad
        Returns:
        the emissivity in [0;1]
      • computeSolarFlux

        public double computeSolarFlux​(Vector3D sunPosition)
        Compute total solar flux impacting Earth.
        Parameters:
        sunPosition - the Sun position in an Earth centered frame
        Returns:
        the total solar flux impacting Earth in J/m^3
      • computeSolarFlux

        public <T extends CalculusFieldElement<T>> T computeSolarFlux​(FieldVector3D<T> sunPosition)
        Compute total solar flux impacting Earth.
        Type Parameters:
        T - extends CalculusFieldElement
        Parameters:
        sunPosition - the Sun position in an Earth centered frame
        Returns:
        the total solar flux impacting Earth in J/m^3
      • computeElementaryFlux

        public Vector3D computeElementaryFlux​(SpacecraftState state,
                                              Vector3D elementCenter,
                                              Vector3D sunPosition,
                                              OneAxisEllipsoid earth,
                                              double elementArea)
        Compute elementary rediffused flux on satellite.
        Parameters:
        state - the current spacecraft state
        elementCenter - the position of the considered area center
        sunPosition - the position of the Sun in the spacecraft frame
        earth - the Earth model
        elementArea - the area of the current element
        Returns:
        the rediffused flux from considered element on the spacecraft
      • computeElementaryFlux

        public <T extends CalculusFieldElement<T>> FieldVector3D<T> computeElementaryFlux​(FieldSpacecraftState<T> state,
                                                                                          FieldVector3D<T> elementCenter,
                                                                                          FieldVector3D<T> sunPosition,
                                                                                          OneAxisEllipsoid earth,
                                                                                          T elementArea)
        Compute elementary rediffused flux on satellite.
        Type Parameters:
        T - extends CalculusFieldElement
        Parameters:
        state - the current spacecraft state
        elementCenter - the position of the considered area center
        sunPosition - the position of the Sun in the spacecraft frame
        earth - the Earth model
        elementArea - the area of the current element
        Returns:
        the rediffused flux from considered element on the spacecraft